|
40 | 40 | import javax.net.ssl.SSLContext; |
41 | 41 | import javax.net.ssl.SSLEngine; |
42 | 42 |
|
| 43 | +import com.cloud.utils.db.GlobalLock; |
43 | 44 | import org.apache.cloudstack.api.ApiErrorCode; |
44 | 45 | import org.apache.cloudstack.api.ServerApiException; |
45 | 46 | import org.apache.cloudstack.api.command.admin.ca.IssueCertificateCmd; |
@@ -295,6 +296,42 @@ public char[] getKeyStorePassphrase() { |
295 | 296 | /////////////// CA Manager Setup /////////////////// |
296 | 297 | //////////////////////////////////////////////////// |
297 | 298 |
|
| 299 | + public static final class DummyBGTask extends ManagedContextRunnable implements BackgroundPollTask { |
| 300 | + |
| 301 | + public DummyBGTask() { |
| 302 | + } |
| 303 | + |
| 304 | + @Override |
| 305 | + protected void runInContext() { |
| 306 | + final GlobalLock lock = GlobalLock.getInternLock("DummyBGTask"); |
| 307 | + try { |
| 308 | + logger.info("DummyBGTask: Grabbing lock to check for DB HA at " + DateTime.now(DateTimeZone.UTC)); |
| 309 | + if (lock.lock(5)) { |
| 310 | + try { |
| 311 | + logger.info("DummyBGTask: Lock acquired, now sleeping for 5 seconds"); |
| 312 | + try { |
| 313 | + Thread.sleep(5 * 1000L); |
| 314 | + } catch (InterruptedException ignore) { |
| 315 | + } |
| 316 | + } finally { |
| 317 | + logger.info("DummyBGTask: Unlocking now"); |
| 318 | + lock.unlock(); |
| 319 | + } |
| 320 | + } else { |
| 321 | + logger.info("DummyBGTask: Could not get lock"); |
| 322 | + } |
| 323 | + logger.info("DummyBGTask: One round of lock-grab for DB HA over at " + DateTime.now(DateTimeZone.UTC)); |
| 324 | + } finally { |
| 325 | + lock.releaseRef(); |
| 326 | + } |
| 327 | + } |
| 328 | + |
| 329 | + @Override |
| 330 | + public Long getDelay() { |
| 331 | + return 2000L; |
| 332 | + } |
| 333 | + } |
| 334 | + |
298 | 335 | public static final class CABackgroundTask extends ManagedContextRunnable implements BackgroundPollTask { |
299 | 336 | private CAManager caManager; |
300 | 337 | private HostDao hostDao; |
@@ -405,6 +442,7 @@ public boolean start() { |
405 | 442 |
|
406 | 443 | @Override |
407 | 444 | public boolean configure(final String name, final Map<String, Object> params) throws ConfigurationException { |
| 445 | + backgroundPollManager.submitTask(new DummyBGTask()); |
408 | 446 | backgroundPollManager.submitTask(new CABackgroundTask(this, hostDao)); |
409 | 447 | return true; |
410 | 448 | } |
|
0 commit comments