Beispiel #1
0
 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]
Beispiel #2
0
    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)
Beispiel #3
0
    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)