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()])