docs: def connect_amqp_by_unit(self, sentry_unit, ssl=False,
                               port=None, fatal=True,
                               username="testuser1", password="changeme"):
          """Establish and return a pika amqp connection to the rabbitmq service
          running on a rmq juju unit.
  
          :param sentry_unit: sentry unit pointer
          :param ssl: boolean, default to False
          :param port: amqp port, use defaults if None
          :param fatal: boolean, default to True (raises on connect error)
          :param username: amqp user name, default to testuser1
          :param password: amqp user password
          :returns: pika amqp connection pointer or None if failed and non-fatal
          """
          host = sentry_unit.info['public-address']
          unit_name = sentry_unit.info['unit_name']
  
          # Default port logic if port is not specified
          if ssl and not port:
              port = 5671
          elif not ssl and not port:
              port = 5672
  
          self.log.debug('Connecting to amqp on {}:{} ({}) as '
                         '{}...'.format(host, port, unit_name, username))
  
          try:
              credentials = pika.PlainCredentials(username, password)
              parameters = pika.ConnectionParameters(host=host, port=port,
                                                     credentials=credentials,
                                                     ssl=ssl,
                                                     connection_attempts=3,
                                                     retry_delay=5,
                                                     socket_timeout=1)
              connection = pika.BlockingConnection(parameters)
              assert connection.is_open is True
              assert connection.is_closing is False
              self.log.debug('Connect OK')
              return connection
          except Exception as e:
              msg = ('amqp connection failed to {}:{} as '
                     '{} ({})'.format(host, port, username, str(e)))
              if fatal:
                  amulet.raise_status(amulet.FAIL, msg)
              else:
                  self.log.warn(msg)
                  return None