コード例 #1
0
    def test_get_connection_info_env(self, params):
        os.environ['BG_HOST'] = 'bg_host'
        os.environ['BG_PORT'] = '1234'
        os.environ['BG_SSL_ENABLED'] = 'False'
        os.environ['BG_CA_CERT'] = 'ca_cert'
        os.environ['BG_CLIENT_CERT'] = 'client_cert'
        os.environ['BG_URL_PREFIX'] = '/beer/'
        os.environ['BG_CA_VERIFY'] = 'True'

        assert params == brewtils.get_connection_info()
コード例 #2
0
    def test_get_connection_info_env(self, params):
        os.environ["BG_HOST"] = "bg_host"
        os.environ["BG_PORT"] = "1234"
        os.environ["BG_SSL_ENABLED"] = "False"
        os.environ["BG_CA_CERT"] = "ca_cert"
        os.environ["BG_CLIENT_CERT"] = "client_cert"
        os.environ["BG_URL_PREFIX"] = "/beer/"
        os.environ["BG_CA_VERIFY"] = "True"

        assert params == brewtils.get_connection_info()
コード例 #3
0
    def test_get_connection_info_deprecated_kwarg_host(self, params):
        deprecated_params = copy.copy(params)
        deprecated_params["host"] = deprecated_params.pop("bg_host")

        with warnings.catch_warnings(record=True) as w:
            warnings.simplefilter("always")

            assert params == brewtils.get_connection_info(**deprecated_params)

            assert issubclass(w[0].category, DeprecationWarning)
            assert "host" in str(w[0].message)
コード例 #4
0
    def test_get_connection_info_deprecated_env(self, params):
        deprecated_params = copy.copy(params)
        deprecated_params["bg_host"] = None
        deprecated_params["bg_port"] = None
        deprecated_params["ca_cert"] = None
        deprecated_params["client_cert"] = None

        os.environ["BG_SSL_CA_CERT"] = "ca_cert"
        os.environ["BG_SSL_CLIENT_CERT"] = "client_cert"
        os.environ["BG_WEB_HOST"] = "bg_host"
        os.environ["BG_WEB_PORT"] = "1234"

        assert params == brewtils.get_connection_info(**deprecated_params)
コード例 #5
0
    def test_get_connection_info_deprecated_env(self, params):
        deprecated_params = copy.copy(params)
        deprecated_params['bg_host'] = None
        deprecated_params['bg_port'] = None
        deprecated_params['ca_cert'] = None
        deprecated_params['client_cert'] = None

        os.environ['BG_SSL_CA_CERT'] = 'ca_cert'
        os.environ['BG_SSL_CLIENT_CERT'] = 'client_cert'
        os.environ['BG_WEB_HOST'] = 'bg_host'
        os.environ['BG_WEB_PORT'] = '1234'

        assert params == brewtils.get_connection_info(**deprecated_params)
コード例 #6
0
def main():
    connection_params = get_connection_info(sys.argv[1:])

    username = os.getenv("github_username")
    password = os.getenv("github_password")
    token = os.getenv("github_token")

    Plugin(GithubSummary(connection_params,
                         username=username,
                         password=password,
                         token=token),
           name="github-summary",
           version=__version__,
           **connection_params).run()
コード例 #7
0
    def test_cli(self, client, bg_system):
        args = [
            "--bg-host",
            "remotehost",
            "--bg-port",
            "2338",
            "--url-prefix",
            "beer",
            "--no-ssl-enabled",
            "--no-ca-verify",
        ]

        plugin = Plugin(client,
                        system=bg_system,
                        **get_connection_info(cli_args=args))

        assert plugin.bg_host == "remotehost"
        assert plugin.bg_port == 2338
        assert plugin.bg_url_prefix == "/beer/"
        assert plugin.ssl_enabled is False
        assert plugin.ca_verify is False
コード例 #8
0
 def test_get_connection_info_kwargs(self, params):
     assert params == brewtils.get_connection_info(**params)
コード例 #9
0
    def test_normalize_url_prefix(self, params):
        os.environ["BG_WEB_HOST"] = "bg_host"
        os.environ["BG_URL_PREFIX"] = "/beer"

        generated_params = brewtils.get_connection_info()
        assert generated_params["url_prefix"] == params["url_prefix"]
コード例 #10
0
 def test_get_connection_info_no_host(self):
     with pytest.raises(ValidationError):
         brewtils.get_connection_info()
コード例 #11
0
    def __init__(self,
                 client,
                 bg_host=None,
                 bg_port=None,
                 ssl_enabled=None,
                 ca_cert=None,
                 client_cert=None,
                 system=None,
                 name=None,
                 description=None,
                 version=None,
                 icon_name=None,
                 instance_name=None,
                 logger=None,
                 parser=None,
                 multithreaded=None,
                 metadata=None,
                 max_concurrent=None,
                 bg_url_prefix=None,
                 **kwargs):
        # If a logger is specified or the logging module already has additional
        # handlers then we assume that logging has already been configured
        if logger or len(logging.getLogger(__name__).root.handlers) > 0:
            self.logger = logger or logging.getLogger(__name__)
            self._custom_logger = True
        else:
            logging.config.dictConfig(DEFAULT_LOGGING_CONFIG)
            self.logger = logging.getLogger(__name__)
            self._custom_logger = False

        connection_parameters = brewtils.get_connection_info(
            bg_host=bg_host,
            bg_port=bg_port,
            ssl_enabled=ssl_enabled,
            ca_cert=ca_cert,
            client_cert=client_cert,
            url_prefix=bg_url_prefix or kwargs.get("url_prefix", None),
            ca_verify=kwargs.get("ca_verify", None),
            username=kwargs.get("username", None),
            password=kwargs.get("password", None),
            client_timeout=kwargs.get("client_timeout", None),
        )
        self.bg_host = connection_parameters["bg_host"]
        self.bg_port = connection_parameters["bg_port"]
        self.ssl_enabled = connection_parameters["ssl_enabled"]
        self.ca_cert = connection_parameters["ca_cert"]
        self.client_cert = connection_parameters["client_cert"]
        self.bg_url_prefix = connection_parameters["url_prefix"]
        self.ca_verify = connection_parameters["ca_verify"]

        self.max_attempts = kwargs.get("max_attempts", -1)
        self.max_timeout = kwargs.get("max_timeout", 30)
        self.starting_timeout = kwargs.get("starting_timeout", 5)

        self._mq_max_attempts = kwargs.get("mq_max_attempts", -1)
        self._mq_max_timeout = kwargs.get("mq_max_timeout", 30)
        self._mq_starting_timeout = kwargs.get("mq_starting_timeout", 5)
        self._mq_retry_attempt = 0
        self._mq_timeout = self._mq_starting_timeout

        self.max_concurrent = self._setup_max_concurrent(
            multithreaded, max_concurrent)
        self.instance_name = instance_name or os.environ.get(
            "BG_INSTANCE_NAME", "default")
        self.metadata = metadata or {}

        self.instance = None
        self.queue_connection_params = None
        self.admin_consumer = None
        self.request_consumer = None
        self.connection_poll_thread = None
        self.client = client
        self.shutdown_event = threading.Event()
        self.parser = parser or SchemaParser()

        self.system = self._setup_system(
            client,
            self.instance_name,
            system,
            name,
            description,
            version,
            icon_name,
            self.metadata,
            kwargs.get("display_name", None),
            kwargs.get("max_instances", None),
        )

        self.unique_name = "%s[%s]-%s" % (
            self.system.name,
            self.instance_name,
            self.system.version,
        )

        # Tightly manage when we're in an 'error' state, aka Brew-view is down
        self.brew_view_error_condition = threading.Condition()
        self.brew_view_down = False

        self.pool = ThreadPoolExecutor(max_workers=self.max_concurrent)
        self.admin_pool = ThreadPoolExecutor(max_workers=1)

        self.bm_client = EasyClient(logger=self.logger,
                                    parser=self.parser,
                                    **connection_parameters)
コード例 #12
0
    def test_get_connection_info_deprecated_kwargs(self, params):
        deprecated_params = copy.copy(params)
        deprecated_params['host'] = deprecated_params.pop('bg_host')
        deprecated_params['port'] = deprecated_params.pop('bg_port')

        assert params == brewtils.get_connection_info(**deprecated_params)
コード例 #13
0
    def test_normalize_url_prefix(self, params):
        os.environ['BG_WEB_HOST'] = 'bg_host'
        os.environ['BG_URL_PREFIX'] = '/beer'

        generated_params = brewtils.get_connection_info()
        assert generated_params['url_prefix'] == params['url_prefix']
コード例 #14
0
    def test_get_connection_info_deprecated_kwargs(self, params):
        deprecated_params = copy.copy(params)
        deprecated_params["host"] = deprecated_params.pop("bg_host")
        deprecated_params["port"] = deprecated_params.pop("bg_port")

        assert params == brewtils.get_connection_info(**deprecated_params)