----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/29082/#review65195 -----------------------------------------------------------
Ship it! Thanks for doing this - this is fantastic! - Nate Cole On Dec. 15, 2014, 11:31 p.m., Tom Beerbower wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/29082/ > ----------------------------------------------------------- > > (Updated Dec. 15, 2014, 11:31 p.m.) > > > Review request for Ambari, Alejandro Fernandez and Nate Cole. > > > Bugs: AMBARI-8643 > https://issues.apache.org/jira/browse/AMBARI-8643 > > > Repository: ambari > > > Description > ------- > > > Notes: > * The HOLDING, HOLDING_FAILED, HOLDING_TIMED_OUT states are new. > * An item in the HOLDING state can be completed by pushing its state to the > COMPLETED state through the API (see below). This will make the next stage > become the current stage and advance from the PENDING state. > * An item in the HOLDING_FAILED state can be skipped by pushing its state to > FAILED state through the API. This will make the next stage become the > current stage and advance it from the PENDING state. > * An item in the HOLDING_FAILED state can be retried by pushing its state to > PENDING state through the API. This will keep the stage as the current stage > and retry the associated tasks. > * An item in the HOLDING_TIMED_OUT state can be skipped by pushing its state > to TIMED_OUT state through the API. This will make the next stage become the > current stage and advance it from the PENDING state. > * An item in the HOLDING_TIMED_OUT can be retried by pushing its state to > PENDING state through the API. This will keep the stage as the current stage > and retry the associated tasks. > > > Updated Proposed API changes: > > > # Determine if an upgrade is holding by checking the upgrade resource's > status. > > GET api/v1/upgrades/1 > { > "href" : "http://c6401.ambari.apache.org:8080/api/v1/upgrades/1", > "Upgrade" : { > ... > "request_status" : "HOLDING", > ... > } > > # To find the upgrade item that is holding for a given upgrade look for the > upgrade item that has a status of HOLDING. Only the current stage should > ever be in the HOLDING state. > > GET api/v1/upgrades/1?upgrade_items/UpgradeItem/status=HOLDING > > { > "href" : > "http://c6401.ambari.apache.org:8080/api/v1/upgrades/1?upgrade_items/UpgradeItem/status=HOLDING", > "Requests" : { > "id" : 1 > }, > "upgrade_items" : [ > { > "href" : > "http://c6401.ambari.apache.org:8080/api/v1/upgrades/1/upgrade_items/10", > "UpgradeItem" : { > "request_id" : 1, > "stage_id" : 10, > "status" : "HOLDING" > } > } > ] > } > > # To release the hold on a upgrade, complete the the stage that is holding by > setting it's status to COMPLETED. > > PUT api/v1/upgrades/1/upgrade_items/10 > > { > "UpgradeItem" : { > "status" : "COMPLETED" > } > } > > # A stage may be marked as 'hold on error' which gives the opportunity to > skip or retry a failure/timeout. If an error occurs while executing the taks > of a 'hold on error' upgrade item its status will be set to HOLDING_FAILED or > HOLDING_TIMED_OUT. To retry the upgrade item, set its status back to to > PENDING. > > PUT api/v1/upgrades/1/upgrade_items/10 > > { > "UpgradeItem" : { > "status" : "PENDING" > } > } > > # A stage item that is HOLDING_FAILED or HOLDING_TIMED_OUT may be skipped. > To skip an item that is in error and holding, set its status back to to > FAILED (for HOLDING_FAILED) or TIMED_OUT (for HOLDING_TIMED_OUT). > > PUT api/v1/upgrades/1/upgrade_items/10 > > { > "UpgradeItem" : { > "status" : "FAILED" > } > } > > > Diffs > ----- > > > ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionDBAccessorImpl.java > af224f0 > > ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ActionScheduler.java > 17e492c > > ambari-server/src/main/java/org/apache/ambari/server/actionmanager/HostRoleStatus.java > 0d5434c > > ambari-server/src/main/java/org/apache/ambari/server/actionmanager/Stage.java > 28d9b8d > > ambari-server/src/main/java/org/apache/ambari/server/actionmanager/StageStatus.java > eaeca3e > > ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StageResourceProvider.java > 3904b4b > > ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java > 9d542b3 > > ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostRoleCommandEntity.java > 599156a > > ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ManualStageAction.java > 4460dbe > > ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog200.java > 487b216 > ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql e09a0c2 > ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 0b3c831 > ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 203b5bb > ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql > e311276 > ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql c044ff6 > > ambari-server/src/test/java/org/apache/ambari/server/actionmanager/HostRoleStatusTest.java > 5e29100 > > ambari-server/src/test/java/org/apache/ambari/server/actionmanager/StageStatusTest.java > 4ed4804 > > ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestResourceProviderTest.java > 172e481 > > ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StageResourceProviderTest.java > 5471b08 > > ambari-server/src/test/java/org/apache/ambari/server/serveraction/ServerActionExecutorTest.java > db08460 > > ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog200Test.java > 4cf1b40 > > Diff: https://reviews.apache.org/r/29082/diff/ > > > Testing > ------- > > Manual testing. New unit tests added. > > Results : > > Tests run: 2427, Failures: 0, Errors: 0, Skipped: 13 > > > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESS > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 26:30 min > [INFO] Finished at: 2014-12-15T23:19:17-05:00 > [INFO] Final Memory: 34M/451M > [INFO] > ------------------------------------------------------------------------ > > > Thanks, > > Tom Beerbower > >
