def ListBrokers(self, namespace_full_name): """Returns a list of existing brokers in the given namespace.""" messages = self._client.MESSAGES_MODULE request = messages.AnthoseventsNamespacesBrokersListRequest( parent=namespace_full_name) response = self._client.namespaces_brokers.List(request) return [broker.Broker(item, messages) for item in response.items]
def GetBroker(self, broker_full_name): """Returns the referenced broker. Args: broker_full_name: name of broker to fetch in the form of 'namespaces/<namespace>/brokers/<broker>' """ messages = self._client.MESSAGES_MODULE request = messages.AnthoseventsNamespacesBrokersGetRequest( name=broker_full_name) try: response = self._client.namespaces_brokers.Get(request) except api_exceptions.HttpNotFoundError: return None return broker.Broker(response, messages)
def CreateBroker(self, namespace_name, broker_name): """Creates a broker.""" client = self.ClientFromCrd(_BROKERS_CRD_NAME) messages = client.MESSAGES_MODULE broker_obj = broker.Broker.New(client, namespace_name) broker_obj.name = broker_name # Validation webhook requires a spec to be provided broker_obj.spec = messages.BrokerSpec() namespace_full_name = 'namespaces/' + namespace_name request = messages.AnthoseventsNamespacesBrokersCreateRequest( broker=broker_obj.Message(), parent=namespace_full_name) try: response = client.namespaces_brokers.Create(request) except api_exceptions.HttpConflictError: raise exceptions.BrokerAlreadyExists( 'Broker [{}] already exists.'.format(broker_name)) return broker.Broker(response, messages)