aurora update info command should print out update metadata
* Metadata is represented as a list of key value pair
Bugs closed: AURORA-1906
Reviewed at https://reviews.apache.org/r/66980/
diff --git a/src/main/python/apache/aurora/client/cli/update.py b/src/main/python/apache/aurora/client/cli/update.py
index 7abc5d1..f9d8417 100644
--- a/src/main/python/apache/aurora/client/cli/update.py
+++ b/src/main/python/apache/aurora/client/cli/update.py
@@ -585,6 +585,11 @@
"instance_update_events": []
}
+ if details.update.summary.metadata is not None:
+ result["metadata"] = [{metadata.key: metadata.value} for metadata in sorted(
+ [update_metadata for update_metadata in details.update.summary.metadata],
+ key=lambda x: (x.key, x.value))]
+
update_events = details.updateEvents
if update_events is not None and len(update_events) > 0:
for event in update_events:
@@ -632,6 +637,13 @@
event.instanceId, format_timestamp(event.timestampMs),
JobUpdateAction._VALUES_TO_NAMES[event.action]
), indent=2)
+ if details.update.summary.metadata is not None:
+ update_metadata = sorted(
+ [metadata for metadata in details.update.summary.metadata],
+ key=lambda x: (x.key, x.value))
+ context.print_out("Metadata:")
+ for metadata in update_metadata:
+ context.print_out("%s: %s" % (metadata.key, metadata.value), indent=2)
return EXIT_OK
diff --git a/src/test/python/apache/aurora/client/cli/test_supdate.py b/src/test/python/apache/aurora/client/cli/test_supdate.py
index a3bb5b9..5dfa38f 100644
--- a/src/test/python/apache/aurora/client/cli/test_supdate.py
+++ b/src/test/python/apache/aurora/client/cli/test_supdate.py
@@ -616,9 +616,13 @@
key=UPDATE_KEY,
user="me",
state=JobUpdateState(
- status=JobUpdateStatus.ROLLING_FORWARD,
- createdTimestampMs=1000,
- lastModifiedTimestampMs=2000))),
+ status=JobUpdateStatus.ROLLING_FORWARD,
+ createdTimestampMs=1000,
+ lastModifiedTimestampMs=2000),
+ metadata={
+ Metadata("issue", "test"),
+ Metadata("country", "America"),
+ Metadata("country", "Canada")})),
updateEvents=[
JobUpdateEvent(
status=JobUpdateStatus.ROLLING_FORWARD,
@@ -671,7 +675,11 @@
Instance 1 at 1970-01-01T00:00:06: INSTANCE_UPDATING
Instance 2 at 1970-01-01T00:00:07: INSTANCE_UPDATING
Instance 1 at 1970-01-01T00:00:08: INSTANCE_UPDATED
- Instance 2 at 1970-01-01T00:00:09: INSTANCE_UPDATED"""
+ Instance 2 at 1970-01-01T00:00:09: INSTANCE_UPDATED
+Metadata:
+ country: America
+ country: Canada
+ issue: test"""
def test_update_info(self):
self._mock_options.id = 'update_id'
@@ -734,6 +742,11 @@
"instance": 2,
"timestamp": 9000
}
+ ],
+ "metadata": [
+ {"country": "America"},
+ {"country": "Canada"},
+ {"issue": "test"}
]
}