# salt.states.rabbitmq_upstream

## Manage RabbitMQ Upstreams

Example:

    rabbit_upstream:
      rabbitmq_upstream.present:
      - name: upstream_1
      - uri: amqp://my_user:my_password@rabbitmq_host
      - trust_user_id: True
      - ack_mode: on-confirm
      - max_hops: 1

New in version 3000.

salt.states.rabbitmq_upstream.absent(name, runas=None)

  Ensure the named upstream is absent.

  Parameters:

    - name (str) -- The name of the upstream to remove

    - runas (str) -- User to run the command

  New in version 3000.

salt.states.rabbitmq_upstream.present(name, uri, prefetch_count=None, reconnect_delay=None, ack_mode=None, trust_user_id=None, exchange=None, max_hops=None, expires=None, message_ttl=None, ha_policy=None, queue=None, runas=None)

  Ensure the RabbitMQ upstream exists.

  Parameters:

    - name (str) -- The name of the upstream connection

    - uri (str) -- The URI to connect to. If upstream is a cluster and can have several URIs, you can enter them here separated by spaces. Examples: - amqp://user:password@server_name - amqp://user:password@server_name/vhost When connecting with SSL, several URI-parameters need also be specified: - cacertfile = /path/to/cacert.pem - certfile = /path/to/cert.pem - keyfile = /part/to/key.pem - verity = verify_peer - fail_if_no_peer_cert = true | false - auth_mechanism = external Example: - amqp://user:password@server_name?cacertfile=/path/to/cacert.pem& certfile=/path/to/cert.pem&keyfile=/path/to/key.pem&verify=verify_peer - amqp://server-name?cacertfile=/path/to/cacert.pem&certfile=/path/to/cert.pem& keyfile=/path/to/key.pem&verify=verify_peer&fail_if_no_peer_cert=true&auth_mechanism=external

    - prefetch_count (int) -- Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default: 1000

    - reconnect_delay (int) -- Time in seconds to wait after a network link goes down before attempting reconnection. Default: 5

    - ack_mode (str) -- The following values are allowed: on-confirm: Messages are acknowledged to the upstream broker after they have been confirmed downstream. Handles network errors and broker failures without losing messages. The slowest option, and the default. on-publish: Messages are acknowledged to the upstream broker after they have been published downstream. Handles network errors without losing messages, but may lose messages in the event of broker failures. no-ack: Message acknowledgements are not used. The fastest option, but you may lose messages in the event of network or broker failures.

    - trust_user_id (bool) -- Set `True` to preserve the "user-id" field across a federation link, even if the user-id does not match that used to republish the message. Set to `False` to clear the "user-id" field when messages are federated. Only set this to `True` if you trust the upstream broker not to forge user-ids.

    - exchange (str) -- The name of the upstream exchange. Default is to use the same name as the federated exchange.

    - max_hops (int) -- Maximum number of federation links that messages can traverse before being dropped. Defaults to 1 if not set.

    - expires (int) -- Time in milliseconds that the upstream should remember about this node for. After this time all upstream state will be removed. Set to `None` (Default) to mean "forever".

    - message_ttl (int) -- Time in milliseconds that undelivered messages should be held upstream when there is a network outage or backlog. Set to `None` (default) to mean "forever".

    - ha_policy (str) -- Determines the "x-ha-policy"-argument for the upstream queue for a federated exchange. Default is "none" meaning the queue is not HA.

    - queue (str) -- The name of the upstream queue. Default is to use the same name as the federated queue.

  New in version 3000.