Sahina Bose has uploaded a new change for review.

Change subject: tools: [WIP] Expose AutoRecoverySchedule as engine-config 
parameter
......................................................................

tools: [WIP] Expose AutoRecoverySchedule as engine-config parameter

AutoRecoverySchedule parameter controls the frequency
at which a non-responding host is tried to be auto
recovered.
This patch exposes this parameter in the
engine-config tool

Change-Id: Id85897bae3a5d373bf74aa73151bc481a1aef0e3
Bug-Url: https://bugzilla.redhat.com/975399
Signed-off-by: Sahina Bose <[email protected]>
---
M 
backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java
M 
backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
M backend/manager/tools/pom.xml
A 
backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/CronExpressionValueHelper.java
M packaging/etc/engine-config/engine-config.properties
5 files changed, 69 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/21452/1

diff --git 
a/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java
 
b/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java
index b56abf6..4911932 100644
--- 
a/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java
+++ 
b/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java
@@ -169,4 +169,6 @@
             String configurableDelayKeyName,
             TimeUnit timeUnit);
 
+    Boolean isValidCronExpression(String cronExpression);
+
 }
diff --git 
a/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
 
b/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
index 82e5280..075d9ee 100644
--- 
a/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
+++ 
b/backend/manager/modules/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java
@@ -29,6 +29,7 @@
 import org.ovirt.engine.core.utils.ejb.BeanProxyType;
 import org.ovirt.engine.core.utils.ejb.BeanType;
 import org.ovirt.engine.core.utils.ejb.EjbUtils;
+import org.quartz.CronExpression;
 import org.quartz.JobDataMap;
 import org.quartz.JobDetail;
 import org.quartz.Scheduler;
@@ -71,6 +72,7 @@
      * This method is called upon the bean creation as part
      * of the management Service bean lifecycle.
      */
+    @Override
     @PostConstruct
     public void create(){
         setup();
@@ -326,6 +328,7 @@
      * @param newTrigger
      *            - the new Trigger to associate the job with
      */
+    @Override
     public void rescheduleAJob(String oldTriggerName, String oldTriggerGroup, 
Trigger newTrigger) {
         try {
             sched.rescheduleJob(triggerKey(oldTriggerName, oldTriggerGroup), 
newTrigger);
@@ -423,6 +426,7 @@
     /**
      * @return the quartz scheduler wrapped by this SchedulerUtil
      */
+    @Override
     public Scheduler getRawScheduler() {
         return sched;
     }
@@ -447,4 +451,9 @@
         return name;
     }
 
+    @Override
+    public Boolean isValidCronExpression(String cronExpression) {
+        return CronExpression.isValidExpression(cronExpression);
+    }
+
 }
diff --git a/backend/manager/tools/pom.xml b/backend/manager/tools/pom.xml
index 0f8fe63..b197ddd 100644
--- a/backend/manager/tools/pom.xml
+++ b/backend/manager/tools/pom.xml
@@ -33,6 +33,12 @@
     </dependency>
 
     <dependency>
+      <groupId>${engine.groupId}</groupId>
+      <artifactId>scheduler</artifactId>
+      <version>${engine.version}</version>
+    </dependency>
+
+    <dependency>
       <groupId>commons-lang</groupId>
       <artifactId>commons-lang</artifactId>
     </dependency>
diff --git 
a/backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/CronExpressionValueHelper.java
 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/CronExpressionValueHelper.java
new file mode 100644
index 0000000..8944431
--- /dev/null
+++ 
b/backend/manager/tools/src/main/java/org/ovirt/engine/core/config/entity/helper/CronExpressionValueHelper.java
@@ -0,0 +1,50 @@
+package org.ovirt.engine.core.config.entity.helper;
+
+
+import org.ovirt.engine.core.config.EngineConfigCLIParser;
+import org.ovirt.engine.core.config.entity.ConfigKey;
+import org.ovirt.engine.core.utils.timer.SchedulerUtil;
+import org.ovirt.engine.core.utils.timer.SchedulerUtilQuartzImpl;
+
+public class CronExpressionValueHelper extends BaseValueHelper {
+
+    @Override
+    public String getValue(String value) {
+        return value;
+    }
+
+    @Override
+    public String setValue(String value) {
+        return value;
+    }
+
+    @Override
+    public ValidationResult validate(ConfigKey key, String value) {
+        boolean isValid = false;
+        if (key.getValidValues() != null) {
+            isValid = key.getValidValues().contains(value);
+        } else {
+            SchedulerUtil scheduler = SchedulerUtilQuartzImpl.getInstance();
+            isValid = scheduler.isValidCronExpression(value);
+        }
+
+        return new ValidationResult(isValid, getHelpNote(key));
+
+    }
+
+    @Override
+    public void setParser(EngineConfigCLIParser parser) {
+        // NOP
+    }
+
+    @Override
+    public String getHelpNote(ConfigKey key) {
+       return getHelpNoteByType(key, "cron expression")
+               .concat(
+                String.format("%n%n%n" +
+                       "### Examples:%n" +
+                       "### Every 5 minutes = 0 0/5 * * * ? %n" +
+                       "### Every 10 seconds = 0/10 * * * * ? %n"));
+    }
+
+}
diff --git a/packaging/etc/engine-config/engine-config.properties 
b/packaging/etc/engine-config/engine-config.properties
index a41c51d..ecf6c5b 100644
--- a/packaging/etc/engine-config/engine-config.properties
+++ b/packaging/etc/engine-config/engine-config.properties
@@ -345,4 +345,5 @@
 HostPreparingForMaintenanceIdleTime.description="Time to wait in seconds to 
determine if host is idling in status PreparingForMaintenace. When that 
interval is met it triggers another attempt to move the host to Maintenance"
 UseFqdnForRdpIfAvailable.type=Boolean
 UseFqdnForRdpIfAvailable.description="If this option is enabled, the RDP 
console will use the FQDN, which is reported by the Guest Agent, if it is 
available and use this to establish the RDP connection."
-
+AutoRecoverySchedule.type=CronExpression
+AutoRecoverySchedule.description=The frequency at which autorecovery jobs are 
run for non-responsive hosts


-- 
To view, visit http://gerrit.ovirt.org/21452
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id85897bae3a5d373bf74aa73151bc481a1aef0e3
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Sahina Bose <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to