You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by dm...@apache.org on 2017/10/26 22:32:20 UTC

aurora git commit: Support updates with no desiredState on Job and Update pages

Repository: aurora
Updated Branches:
  refs/heads/master 8c331b8b5 -> 5a26c8b4b


Support updates with no desiredState on Job and Update pages

When updates only delete instances, desiredState is null.

Reviewed at https://reviews.apache.org/r/63344/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/5a26c8b4
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/5a26c8b4
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/5a26c8b4

Branch: refs/heads/master
Commit: 5a26c8b4bf6ad0ce04296aee7576cfb73d68de20
Parents: 8c331b8
Author: David McLaughlin <da...@dmclaughlin.com>
Authored: Thu Oct 26 15:27:05 2017 -0700
Committer: David McLaughlin <da...@dmclaughlin.com>
Committed: Thu Oct 26 15:27:05 2017 -0700

----------------------------------------------------------------------
 ui/src/main/js/components/UpdateConfig.js     |  6 +++++-
 ui/src/main/js/utils/Update.js                | 12 +++++++-----
 ui/src/main/js/utils/__tests__/Update-test.js | 17 +++++++++++++++++
 3 files changed, 29 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/5a26c8b4/ui/src/main/js/components/UpdateConfig.js
----------------------------------------------------------------------
diff --git a/ui/src/main/js/components/UpdateConfig.js b/ui/src/main/js/components/UpdateConfig.js
index 89dea25..955b2c7 100644
--- a/ui/src/main/js/components/UpdateConfig.js
+++ b/ui/src/main/js/components/UpdateConfig.js
@@ -4,8 +4,12 @@ import PanelGroup, { Container, StandardPanelTitle } from 'components/Layout';
 import TaskConfig from 'components/TaskConfig';
 import UpdateDiff from 'components/UpdateDiff';
 
+import { isNully } from 'utils/Common';
+
 export default function UpdateConfig({ update }) {
-  if (update.update.instructions.initialState.length > 0) {
+  if (isNully(update.update.instructions.desiredState)) {
+    return null;
+  } else if (update.update.instructions.initialState.length > 0) {
     return <UpdateDiff update={update} />;
   }
 

http://git-wip-us.apache.org/repos/asf/aurora/blob/5a26c8b4/ui/src/main/js/utils/Update.js
----------------------------------------------------------------------
diff --git a/ui/src/main/js/utils/Update.js b/ui/src/main/js/utils/Update.js
index dee2393..d10131d 100644
--- a/ui/src/main/js/utils/Update.js
+++ b/ui/src/main/js/utils/Update.js
@@ -1,4 +1,4 @@
-import { sort } from 'utils/Common';
+import { isNully, sort } from 'utils/Common';
 import Thrift, { UPDATE_ACTION } from 'utils/Thrift';
 
 export function isSuccessfulUpdate(update) {
@@ -22,10 +22,12 @@ function getAllInstanceIds(update) {
   const newIds = {};
   const oldIds = {};
 
-  processInstanceIdsFromRanges(update.instructions.desiredState.instances, (id) => {
-    newIds[id] = true;
-    allIds[id] = true;
-  });
+  if (!isNully(update.instructions.desiredState)) {
+    processInstanceIdsFromRanges(update.instructions.desiredState.instances, (id) => {
+      newIds[id] = true;
+      allIds[id] = true;
+    });
+  }
 
   update.instructions.initialState.forEach((task) => {
     processInstanceIdsFromRanges(task.instances, (id) => {

http://git-wip-us.apache.org/repos/asf/aurora/blob/5a26c8b4/ui/src/main/js/utils/__tests__/Update-test.js
----------------------------------------------------------------------
diff --git a/ui/src/main/js/utils/__tests__/Update-test.js b/ui/src/main/js/utils/__tests__/Update-test.js
index 88fa5f7..881ba3a 100644
--- a/ui/src/main/js/utils/__tests__/Update-test.js
+++ b/ui/src/main/js/utils/__tests__/Update-test.js
@@ -268,6 +268,23 @@ describe('updateStats', () => {
     expect(stats).toEqual({totalInstancesToBeUpdated: 10, instancesUpdated: 2, progress: 20});
   });
 
+  it('Should respect when there are exclusively deleted instances', () => {
+    const instructions = UpdateInstructionsBuilder
+      .initialState([InstanceTaskConfigBuilder.instances([{first: 0, last: 1}]).build()])
+      .desiredState(null)
+      .build();
+
+    const update = UpdateDetailsBuilder
+      .update(UpdateBuilder.instructions(instructions).build())
+      .instanceEvents([
+        instanceUpdated.instanceId(0).build(),
+        instanceUpdated.instanceId(1).build()
+      ])
+      .build();
+    const stats = updateStats(update);
+    expect(stats).toEqual({totalInstancesToBeUpdated: 2, instancesUpdated: 2, progress: 100});
+  });
+
   it('Any instances updated should show up in stats, even if rolled back', () => {
     const instructions = UpdateInstructionsBuilder
       .initialState([InstanceTaskConfigBuilder.instances([{first: 0, last: 9}]).build()])