From 0f58b1d8abf6d6720db160c52225d9dc7de3ee24 Mon Sep 17 00:00:00 2001 From: Suran de Silva Date: Tue, 9 Apr 2024 14:52:31 -0700 Subject: [PATCH] cloudvision/cvlib: do mainline tag pulls at workspace mainline time Closes: BUG928344 Change-Id: I9d601661ca4b5ca0904f19bf8257bd1aa1aa9935 --- cloudvision/cvlib/tags.py | 15 ++++++++++++--- test/cvlib/tags/test_deviceTags.py | 6 ++++++ test/cvlib/tags/test_interfaceTags.py | 6 ++++++ test/cvlib/tags/test_tags.py | 6 ++++++ 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/cloudvision/cvlib/tags.py b/cloudvision/cvlib/tags.py index e26a36f6..63ce5470 100644 --- a/cloudvision/cvlib/tags.py +++ b/cloudvision/cvlib/tags.py @@ -24,10 +24,13 @@ ELEMENT_TYPE_INTERFACE, CREATOR_TYPE_USER ) - +from arista.time.time_pb2 import TimeBounds from .exceptions import ( TagOperationException ) +from .workspace import ( + getWorkspaceLastSynced +) MAINLINE_ID = "" @@ -272,9 +275,12 @@ def _getAllDeviceTagsFromMainline(self): in the mainline. Also sets the local cache to this map. The returned map is of the form: map[deviceId]map[label]=[value1,value2,..] ''' + wsTs = getWorkspaceLastSynced(self.ctx.getApiClient, + self.ctx.getWorkspaceId()) + timeBound = TimeBounds(end=wsTs) self.relevantTagAssigns = {} tagClient = self.ctx.getApiClient(TagAssignmentServiceStub) - tagRequest = TagAssignmentStreamRequest() + tagRequest = TagAssignmentStreamRequest(time=timeBound) tagFilter = TagAssignment() tagFilter.tag_creator_type = CREATOR_TYPE_USER tagFilter.key.element_type = ELEMENT_TYPE_DEVICE @@ -516,9 +522,12 @@ def _getAllInterfaceTagsFromMainline(self): The returned map is of the form: map[deviceId]map[interfaceId]map[label]=[value1,value2,..] ''' + wsTs = getWorkspaceLastSynced(self.ctx.getApiClient, + self.ctx.getWorkspaceId()) + timeBound = TimeBounds(end=wsTs) self.relevantIntfTagAssigns = {} tagClient = self.ctx.getApiClient(TagAssignmentServiceStub) - tagRequest = TagAssignmentStreamRequest() + tagRequest = TagAssignmentStreamRequest(time=timeBound) tagFilter = TagAssignment() tagFilter.tag_creator_type = CREATOR_TYPE_USER tagFilter.key.element_type = ELEMENT_TYPE_INTERFACE diff --git a/test/cvlib/tags/test_deviceTags.py b/test/cvlib/tags/test_deviceTags.py index 04e3e95e..8af1d573 100644 --- a/test/cvlib/tags/test_deviceTags.py +++ b/test/cvlib/tags/test_deviceTags.py @@ -24,6 +24,9 @@ TagAssignmentStreamResponse, TagAssignmentConfigStreamResponse ) +from arista.workspace.v1.services import ( + WorkspaceResponse +) def convertListToStream(assignmentList): @@ -81,6 +84,9 @@ def GetAll(self, request): response.remove(item) return response + def GetOne(self, _): + return WorkspaceResponse() + def SetGetAllResponse(self, response): self.tagResponse = response diff --git a/test/cvlib/tags/test_interfaceTags.py b/test/cvlib/tags/test_interfaceTags.py index 81c42427..38c573b5 100644 --- a/test/cvlib/tags/test_interfaceTags.py +++ b/test/cvlib/tags/test_interfaceTags.py @@ -24,6 +24,9 @@ TagAssignmentStreamResponse, TagAssignmentConfigStreamResponse ) +from arista.workspace.v1.services import ( + WorkspaceResponse +) def convertListToStream(assignmentList): @@ -83,6 +86,9 @@ def GetAll(self, request): response.remove(item) return response + def GetOne(self, _): + return WorkspaceResponse() + def SetGetAllResponse(self, response): self.tagResponse = response diff --git a/test/cvlib/tags/test_tags.py b/test/cvlib/tags/test_tags.py index 2fe571be..78ad7509 100644 --- a/test/cvlib/tags/test_tags.py +++ b/test/cvlib/tags/test_tags.py @@ -24,6 +24,9 @@ TagConfigServiceStub, TagConfigSetSomeResponse ) +from arista.workspace.v1.services import ( + WorkspaceResponse +) def convertListToStream(assignmentList): @@ -100,6 +103,9 @@ def GetAll(self, request): response.remove(item) return response + def GetOne(self, _): + return WorkspaceResponse() + def SetGetAllResponse(self, response): self.tagResponse = response