def GetRevisionsByNonce(self, namespace_ref, nonce): """Return all revisions with the given nonce.""" messages = self._messages_module request = messages.ServerlessNamespacesRevisionsListRequest( parent=namespace_ref.RelativeName(), labelSelector='{} = {}'.format(NONCE_LABEL, nonce)) response = self._client.namespaces_revisions.List(request) return [revision.Revision(item, messages) for item in response.items]
def GetRevision(self, revision_ref): """Get the revision. Args: revision_ref: Resource, revision to get. Returns: A revision.Revision object. """ messages = self._messages_module revision_name = revision_ref.RelativeName() request = messages.ServerlessNamespacesRevisionsGetRequest( name=revision_name) try: with metrics.record_duration(metrics.GET_REVISION): response = self._client.namespaces_revisions.Get(request) return revision.Revision(response, messages) except api_exceptions.HttpNotFoundError: return None
def ListRevisions(self, namespace_ref, service_name): """List all revisions for the given service. Args: namespace_ref: Resource, namespace to list revisions in service_name: str, The service for which to list revisions. Returns: A list of revisions for the given service. """ messages = self._messages_module request = messages.ServerlessNamespacesRevisionsListRequest( parent=namespace_ref.RelativeName(), ) if service_name is not None: # For now, same as the service name, and keeping compatible with # 'service-less' operation. request.labelSelector = 'serving.knative.dev/service = {}'.format( service_name) with metrics.record_duration(metrics.LIST_REVISIONS): response = self._client.namespaces_revisions.List(request) return [revision.Revision(item, messages) for item in response.items]