-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/20006/
-----------------------------------------------------------

(Updated April 14, 2014, 9:26 p.m.)


Review request for oozie, Ryota Egashira and Rohini Palaniswamy.


Changes
-------

Review comment.


Bugs: OOZIE-1769
    https://issues.apache.org/jira/browse/OOZIE-1769


Repository: oozie-git


Description
-------

To change the coord definition user can update coord definition in hdfs and 
issue a update command. Existing coordinator definition will be replaced by new 
definition. The refreshed coordinator 
would keep the same coordinator ID, state, and coordinator actions.
User can also provide -dryrun to validate changes.
All created coord action(including in waiting) will use old configuration.
User can rerun actions with -refresh option, -refresh option will use new 
configuration to rerun coord action.
Ex.
1. $ oozie job -update <coordID> -config examples/apps/aggregator/job.properties
Will update coord definition and action.
2. $ oozie job -update <coordID>
Will fetch coord definition path from bundle and update coord definition


Diffs (updated)
-----

  client/src/main/java/org/apache/oozie/cli/OozieCLI.java e1f551d 
  client/src/main/java/org/apache/oozie/client/OozieClient.java 46c4288 
  client/src/main/java/org/apache/oozie/client/rest/JsonTags.java ae391c7 
  client/src/main/java/org/apache/oozie/client/rest/RestConstants.java a7fe06e 
  core/pom.xml f0547a3 
  core/src/main/java/org/apache/oozie/CoordinatorEngine.java 3f10024 
  core/src/main/java/org/apache/oozie/CoordinatorJobBean.java 5eb134b 
  core/src/main/java/org/apache/oozie/ErrorCode.java f69d7a2 
  core/src/main/java/org/apache/oozie/command/coord/CoordSubmitXCommand.java 
9e6a3d5 
  core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java 
e69de29 
  core/src/main/java/org/apache/oozie/executor/jpa/CoordJobQueryExecutor.java 
5f7744c 
  core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java aa43e68 
  core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java 443ab6d 
  core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java ac399e9 
  core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java 2d26599 
  
core/src/test/java/org/apache/oozie/command/coord/TestCoordUpdateXCommand.java 
e69de29 
  core/src/test/resources/coord-update-test.xml e69de29 
  docs/src/site/twiki/DG_CommandLineTool.twiki 351f0f2 
  docs/src/site/twiki/WebServicesAPI.twiki 37c0bc0 
  pom.xml cb10007 

Diff: https://reviews.apache.org/r/20006/diff/


Testing
-------

Invalid xml.
purushah$ 
/Users/purushah/views/coor_swap/oozie/distro/target/oozie-4.1.0-SNAPSHOT-distro/oozie-4.1.0-SNAPSHOT/bin/oozie
 job -oozie http://localhost:11000/oozie -config temp/job.properties -update 
0000005-140402104721140-oozie-puru-C -dryrun
Picked up JAVA_TOOL_OPTIONS: -Djava.awt.headless=true
Error: E1023 : E1023: Coord Job update Error: [E0701: XML schema error, 
cvc-complex-type.2.4.a: Invalid content was found starting with element 
'datasets'. One of '{"uri:oozie:coordinator:0.2":execution, 
"uri:oozie:coordinator:0.2":throttle}' is expected.]
purushah$ 


valid XML.
$ oozie job -oozie http://localhost:11000/oozie -config temp/job.properties 
-update 0000005-140402104721140-oozie-puru-C -dryrun
**********Job definition changes**********
@@ -3,8 +3,8 @@
     <concurrency>1</concurrency>
   </controls>
   <input-events>
-    <data-in name="input" dataset="raw-logs">
-      <dataset name="raw-logs" frequency="20" 
initial-instance="2010-01-01T00:00Z" timezone="UTC" freq_timeunit="MINUTE" 
end_of_duration="NONE">
+    <data-in name="input" dataset="raw-logs-rename">
+      <dataset name="raw-logs-rename" frequency="20" 
initial-instance="2010-01-01T00:00Z" timezone="UTC" freq_timeunit="MINUTE" 
end_of_duration="NONE">
         
<uri-template>hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/</uri-template>
         <done-flag />
       </dataset>
**********************************
**********Job conf changes**********
@@ -8,10 +8,6 @@
     
<value>hdfs://localhost:9000/user/purushah/examples/apps/aggregator/coordinator.xml</value>
   </property>
   <property>
-    <name>aaaaaa</name>
-    <value>b</value>
-  </property>
-  <property>
     <name>user.name</name>
     <value>purushah</value>
   </property>
@@ -28,6 +24,10 @@
     <value>hdfs://localhost:9000</value>
   </property>
   <property>
+    <name>adding</name>
+    <value>new</value>
+  </property>
+  <property>
     <name>jobTracker</name>
     <value>localhost:9001</value>
   </property>
**********************************
$ 

$ 
/Users/purushah/views/coor_swap/oozie/distro/target/oozie-4.1.0-SNAPSHOT-distro/oozie-4.1.0-SNAPSHOT/bin/oozie
 job -oozie http://localhost:11000/oozie -config temp/job.properties -update 
0000000-140408140947673-oozie-puru-C
Picked up JAVA_TOOL_OPTIONS: -Djava.awt.headless=true
Error: E0803 : E0803: IO error, E1023: Coord Job update Error: [Frequency can't 
be changes. Old frqenecy 60 new frequency 180]
$ 

Tested Doc.........
DG_CommandLineTool.html#Updating_coordinator_definition_and_properties

Updating coordinator definition and properties

Existing coordinator definition will be replaced by new definition. The 
refreshed coordinator would keep the same coordinator ID, state, and 
coordinator actions. All created coord action(including in WAITING) will use 
old configuration. One can rerun actions with -refresh option, -refresh option 
will use new configuration to rerun coord action

Update command also verifies coordinator definition like submit command, if 
there is any issue with definition, update will fail. Update command with 
-dryrun will show coordinator definition and properties differences. Config 
option is optional, if not specified existing coordinator property is used to 
find coordinator path.

Update command doesn't update frequency, end time, start time, timzone, name, 
execution order. Update command will fail if any of this element has changed in 
job definition.

$ oozie job -oozie http://localhost:11000/oozie -config job.properties -update 
0000005-140402104721140-oozie-puru-C -dryrun**********Job definition 
changes**********
@@ -3,8 +3,8 @@
     <concurrency>1</concurrency>
   </controls>
   <input-events>
-    <data-in name="input" dataset="raw-logs">
-      <dataset name="raw-logs" frequency="20" 
initial-instance="2010-01-01T00:00Z" timezone="UTC" freq_timeunit="MINUTE" 
end_of_duration="NONE">
+    <data-in name="input" dataset="raw-logs-rename">
+      <dataset name="raw-logs-rename" frequency="20" 
initial-instance="2010-01-01T00:00Z" timezone="UTC" freq_timeunit="MINUTE" 
end_of_duration="NONE">
         
<uri-template>hdfs://localhost:9000/user/purushah/examples/input-data/rawLogs/</uri-template>
         <done-flag />
       </dataset>
**********************************
**********Job conf changes**********
@@ -8,10 +8,6 @@
     
<value>hdfs://localhost:9000/user/purushah/examples/apps/aggregator/coordinator.xml</value>
   </property>
   <property>
-    <name>old</name>
-    <value>test</value>
-  </property>
-  <property>
     <name>user.name</name>
     <value>purushah</value>
   </property>
@@ -28,6 +24,10 @@
     <value>hdfs://localhost:9000</value>
   </property>
   <property>
+    <name>adding</name>
+    <value>new</value>
+  </property>
+  <property>
     <name>jobTracker</name>
     <value>localhost:9001</value>
   </property>
**********************************


WebServicesAPI.html#Updating_coordinator_definition_and_properties

Existing coordinator definition and properties will be replaced by new 
definition and properties. Refer Updating coordinator definition and properties

PUT oozie/v2/job/0000000-140414102048137-oozie-puru-C?action=update
Response:

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{"update":
     {"diff":"**********Job definition 
changes**********\n******************************************\n**********Job 
conf changes****************\n@@ -8,16 +8,12 @@\n
          
<value>hdfs:\/\/localhost:9000\/user\/purushah\/examples\/apps\/aggregator\/coordinator.xml<\/value>\r\n
   <\/property>\r\n   <property>\r\n
          -    <name>user.name<\/name>\r\n
          -    <value>purushah<\/value>\r\n
          -    <\/property>\r\n
          -  <property>\r\n     <name>start<\/name>\r\n
               <value>2010-01-01T01:00Z<\/value>\r\n   <\/property>\r\n   
<property>\r\n
          -    <name>newproperty<\/name>\r\n
          -    <value>new<\/value>\r\n
          +    <name>user.name<\/name>\r\n
          +    <value>purushah<\/value>\r\n   <\/property>\r\n   <property>\r\n
               
<name>queueName<\/name>\r\n******************************************\n"
      }
}


Thanks,

Purshotam Shah

Reply via email to