From 56049f435adb53d27e3a5cfdea56c6c1ae8411c6 Mon Sep 17 00:00:00 2001 From: "Zhang Rong(Jon)" Date: Wed, 20 Dec 2023 10:23:04 +0800 Subject: [PATCH] Add association_type for association CLI list and detail Given that the non-primary association is automatically generated, it is necessary to introduce a type indicator to differentiate between primary and non-primary associations. This commit aims to incorporate the association type when listing and retrieving details of the association. Test Plan: - PASS: The command "dcmanager peer-group-association list" display the type information of the each association, indicating whether it is primary or non-primary. - PASS: The command "dcmanager peer-group-association show" will include the "association_type" attribute. - PASS: The association add/update/sync commands will include the association_type attribute. Closes-Bug: 2046809 Depends-On: Ia917d0dc7c65fbea1e222fb52dbec79fdbe65b65 Change-Id: I4d55700f85956c785760b2cc0a5e2ea13a180c22 Signed-off-by: Zhang Rong(Jon) --- .../api/v1/peer_group_association_manager.py | 3 +++ .../v1/peer_group_association_manager.py | 26 ++++++++++--------- .../tests/v1/test_peer_group_association.py | 13 +++++++--- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/distributedcloud-client/dcmanagerclient/api/v1/peer_group_association_manager.py b/distributedcloud-client/dcmanagerclient/api/v1/peer_group_association_manager.py index 6943d37..b33b0f3 100644 --- a/distributedcloud-client/dcmanagerclient/api/v1/peer_group_association_manager.py +++ b/distributedcloud-client/dcmanagerclient/api/v1/peer_group_association_manager.py @@ -23,6 +23,7 @@ class PeerGroupAssociation(base.Resource): peer_group_id, system_peer_id, peer_group_priority, + association_type, sync_status, sync_message, created_at, @@ -32,6 +33,7 @@ class PeerGroupAssociation(base.Resource): self.peer_group_id = peer_group_id self.system_peer_id = system_peer_id self.peer_group_priority = peer_group_priority + self.association_type = association_type self.sync_status = sync_status self.sync_message = sync_message self.created_at = created_at @@ -50,6 +52,7 @@ class peer_group_association_manager(base.ResourceManager): peer_group_id=json_object['peer-group-id'], system_peer_id=json_object['system-peer-id'], peer_group_priority=json_object['peer-group-priority'], + association_type=json_object['association-type'], sync_status=json_object['sync-status'], sync_message=sync_message, created_at=json_object['created-at'], diff --git a/distributedcloud-client/dcmanagerclient/commands/v1/peer_group_association_manager.py b/distributedcloud-client/dcmanagerclient/commands/v1/peer_group_association_manager.py index 1e32a89..151baa6 100644 --- a/distributedcloud-client/dcmanagerclient/commands/v1/peer_group_association_manager.py +++ b/distributedcloud-client/dcmanagerclient/commands/v1/peer_group_association_manager.py @@ -15,8 +15,9 @@ def association_format(peer_group_association=None): 'id', 'peer_group_id', 'system_peer_id', - 'peer_group_priority', - 'sync_status' + 'type', + 'sync_status', + 'peer_group_priority' ) if peer_group_association: @@ -24,8 +25,9 @@ def association_format(peer_group_association=None): peer_group_association.association_id, peer_group_association.peer_group_id, peer_group_association.system_peer_id, - peer_group_association.peer_group_priority, - peer_group_association.sync_status + peer_group_association.association_type, + peer_group_association.sync_status, + peer_group_association.peer_group_priority ) else: @@ -41,8 +43,9 @@ def detail_association_format(peer_group_association=None): 'id', 'peer_group_id', 'system_peer_id', - 'peer_group_priority', + 'association_type', 'sync_status', + 'peer_group_priority', 'sync_message', 'created_at', 'updated_at', @@ -53,8 +56,9 @@ def detail_association_format(peer_group_association=None): peer_group_association.association_id, peer_group_association.peer_group_id, peer_group_association.system_peer_id, - peer_group_association.peer_group_priority, + peer_group_association.association_type, peer_group_association.sync_status, + peer_group_association.peer_group_priority, peer_group_association.sync_message, peer_group_association.created_at, peer_group_association.updated_at @@ -88,9 +92,9 @@ class AddPeerGroupAssociation(base.DCManagerShowOne): parser.add_argument( '--peer-group-priority', - required=False, + required=True, type=int, - help='Priority of this peer group. Required when sync is enabled.' + help='Priority of this peer group.' ) return parser @@ -99,11 +103,9 @@ class AddPeerGroupAssociation(base.DCManagerShowOne): peer_group_association_manager kwargs = { 'peer_group_id': parsed_args.peer_group_id, - 'system_peer_id': parsed_args.system_peer_id + 'system_peer_id': parsed_args.system_peer_id, + 'peer_group_priority': parsed_args.peer_group_priority } - if parsed_args.peer_group_priority is not None: - kwargs['peer_group_priority'] = parsed_args.peer_group_priority - return dcmanager_client.peer_group_association_manager.\ add_peer_group_association(**kwargs) diff --git a/distributedcloud-client/dcmanagerclient/tests/v1/test_peer_group_association.py b/distributedcloud-client/dcmanagerclient/tests/v1/test_peer_group_association.py index 3e2758e..810001f 100644 --- a/distributedcloud-client/dcmanagerclient/tests/v1/test_peer_group_association.py +++ b/distributedcloud-client/dcmanagerclient/tests/v1/test_peer_group_association.py @@ -18,6 +18,7 @@ PEER_GROUP_ASSOCIATION_ID = "1" PEER_GROUP_ID = "2" SYSTEM_PEER_ID = "3" PG_GROUP_PRIORITY = "99" +ASSOCIATION_TYPE = "primary" SYNC_STATUS = "synced" SYNC_MESSAGE = "None" PG_GROUP_PRIORITY_UPDATED = "1" @@ -31,6 +32,7 @@ PEER_GROUP_ASSOCIATION = PeerAssociation( PEER_GROUP_ID, SYSTEM_PEER_ID, PG_GROUP_PRIORITY, + ASSOCIATION_TYPE, SYNC_STATUS, SYNC_MESSAGE, CREATED_AT, @@ -40,8 +42,9 @@ PEER_GROUP_ASSOCIATION = PeerAssociation( PEER_GROUP_ASSOCIATION_TUPLE = (PEER_GROUP_ASSOCIATION_ID, PEER_GROUP_ID, SYSTEM_PEER_ID, - PG_GROUP_PRIORITY, - SYNC_STATUS) + ASSOCIATION_TYPE, + SYNC_STATUS, + PG_GROUP_PRIORITY) PEER_GROUP_ASSOCIATION_DETAIL_TUPLE = \ PEER_GROUP_ASSOCIATION_TUPLE + (SYNC_MESSAGE, CREATED_AT, UPDATED_AT) @@ -49,8 +52,9 @@ PEER_GROUP_ASSOCIATION_DETAIL_TUPLE = \ PEER_GROUP_ASSOCIATION_TUPLE_UPDATED = (PEER_GROUP_ASSOCIATION_ID, PEER_GROUP_ID, SYSTEM_PEER_ID, - PG_GROUP_PRIORITY_UPDATED, + ASSOCIATION_TYPE, SYNC_STATUS, + PG_GROUP_PRIORITY_UPDATED, SYNC_MESSAGE, CREATED_AT, UPDATED_AT) @@ -102,8 +106,9 @@ class TestCLIPeerGroupAssociationV1(base.BaseCommandTest): self.assertEqual((PEER_GROUP_ASSOCIATION_ID, PEER_GROUP_ID, SYSTEM_PEER_ID, - PG_GROUP_PRIORITY, + ASSOCIATION_TYPE, SYNC_STATUS, + PG_GROUP_PRIORITY, SYNC_MESSAGE, CREATED_AT, UPDATED_AT), actual_call[1])