Forráskód Böngészése

AMBARI-9058 Rolling Upgrade UI allows "Ignore and Process" when upgrade item is not skippable. (ababiichuk)

aBabiichuk 10 éve
szülő
commit
39aeeb0eee

+ 2 - 2
ambari-web/app/assets/data/stack_versions/upgrade.json

@@ -15,7 +15,7 @@
     "queued_task_count" : 0,
     "request_context" : "Upgrading to 2.2.1.0-2191",
     "request_id" : 26,
-    "request_status" : "FAILED",
+    "request_status" : "IN_PROGRESS",
     "resource_filters" : [ ],
     "start_time" : 1420802576700,
     "task_count" : 21,
@@ -355,7 +355,7 @@
             "skippable" : false,
             "stage_id" : 10,
             "start_time" : 1420803704259,
-            "status" : "IN_PROGRESS"
+            "status" : "HOLDING_FAILED"
           },
           "tasks" : [
             {

+ 1 - 0
ambari-web/app/messages.js

@@ -1335,6 +1335,7 @@ Em.I18n.translations = {
   'admin.stackUpgrade.dialog.operationFailed': "This operation failed.",
   'admin.stackUpgrade.dialog.stop': "Stop Upgrade",
   'admin.stackUpgrade.dialog.continue': "Ignore and Proceed",
+  'admin.stackUpgrade.dialog.cancel': "Cancel Upgrade",
   'admin.stackUpgrade.dialog.inProgress': "Now Running:",
   'admin.stackUpgrade.dialog.keepRunning': "Keep running Upgrade in background",
   'admin.stackUpgrade.dialog.failed': "Failed on:",

+ 5 - 1
ambari-web/app/templates/main/admin/stack_upgrade/stack_upgrade_wizard.hbs

@@ -64,7 +64,11 @@
             </div>
             {{#if view.isHoldingState}}
               <div class="button-row">
-                <button class="btn btn-warning" {{action continue view.failedItem target="view"}}>{{t admin.stackUpgrade.dialog.continue}}</button>
+                {{#if view.isSkipable}}
+                  <button class="btn btn-warning" {{action continue view.failedItem target="view"}}>{{t admin.stackUpgrade.dialog.continue}}</button>
+                {{else}}
+                  <button class="btn btn-danger" {{action cancel view.failedItem target="view"}}>{{t admin.stackUpgrade.dialog.cancel}}</button>
+                {{/if}}
                 <button class="btn" {{action retry view.failedItem target="view"}}>{{t common.retry}}</button>
               </div>
             {{/if}}

+ 16 - 0
ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js

@@ -124,6 +124,14 @@ App.upgradeWizardView = Em.View.extend({
     return Boolean(this.get('failedItem.status') && this.get('failedItem.status').contains('HOLDING'));
   }.property('failedItem.status'),
 
+  /**
+   * indicate whether failed item can be skipped or retried in order to continue Upgrade
+   * @type {boolean}
+   */
+  isSkipable: function () {
+    return this.get('failedItem.skippable');
+  }.property('failedItem.skippable'),
+
   /**
    * @type {boolean}
    */
@@ -257,5 +265,13 @@ App.upgradeWizardView = Em.View.extend({
    */
   complete: function (event) {
     this.setUpgradeItemStatus(event.context, 'COMPLETED');
+  },
+
+  /**
+   * set current upgrade item state to FAILED in order to cancel upgrade
+   * @param {object} event
+   */
+  cancel: function (event) {
+    this.setUpgradeItemStatus(event.context, 'FAILED');
   }
 });

+ 13 - 0
ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js

@@ -161,6 +161,19 @@ describe('App.upgradeWizardView', function () {
     });
   });
 
+  describe("#cancel()", function () {
+    before(function () {
+      sinon.stub(view, 'setUpgradeItemStatus', Em.K);
+    });
+    after(function () {
+      view.setUpgradeItemStatus.restore();
+    });
+    it("cabcel request", function () {
+      view.cancel({context: Em.Object.create({'status': 'HOLDING_FAILED'})});
+      expect(view.setUpgradeItemStatus.calledWith(Em.Object.create({'status': 'HOLDING_FAILED'}), 'FAILED')).to.be.true;
+    });
+  });
+
   describe("#setUpgradeItemStatus()", function () {
     before(function () {
       sinon.stub(App.ajax, 'send', function () {