示例#1
0
    def _login(self):
        host = self.config['host']
        user = self.config['user']
        passwd = self.config['pass']
        org = self.config['org']
        vdc = self.config.get('vdc')

        # suppress logging
        for name in ['urllib3.connectionpool', 'vcd_pysdk.log']:
            vcd_logger = logging.getLogger(name)
            vcd_logger.propagate = False
            vcd_logger.setLevel(logging.WARNING)

        logging.info("logging in host={}".format(host))
        self.client = vcd.Client(host,
                                 api_version='29.0',
                                 verify_ssl_certs=self.verify_ssl,
                                 log_file='log',
                                 log_requests=False,
                                 log_headers=False,
                                 log_bodies=True)

        self.client.set_highest_supported_version()
        self.client.set_credentials(
            vcd.BasicLoginCredentials(user, org, passwd))
        # TODO: check logged in ?

        org_res = self.client.get_org()
        self.org = vcdOrg(self.client, resource=org_res)
        logging.info("logged in")

        self.vdcName = vdc
        return True
示例#2
0
def get_sys_admin_client(api_version: Optional[str]):
    server_config = get_server_runtime_config()
    if not api_version:
        api_version = server_config.get_value_at('service.default_api_version')
    verify_ssl_certs = server_config.get_value_at('vcd.verify')
    if not verify_ssl_certs:
        requests.packages.urllib3.disable_warnings()
    log_filename = None
    log_wire = str_to_bool(server_config.get_value_at('service.log_wire'))
    if log_wire:
        log_filename = SERVER_DEBUG_WIRELOG_FILEPATH

    client = vcd_client.Client(uri=server_config.get_value_at('vcd.host'),
                               api_version=api_version,
                               verify_ssl_certs=verify_ssl_certs,
                               log_file=log_filename,
                               log_requests=log_wire,
                               log_headers=log_wire,
                               log_bodies=log_wire)
    credentials = vcd_client.BasicLoginCredentials(
        server_config.get_value_at('vcd.username'),
        shared_constants.SYSTEM_ORG_NAME,
        server_config.get_value_at('vcd.password'))
    client.set_credentials(credentials)
    return client
示例#3
0
def get_sys_admin_client():
    server_config = get_server_runtime_config()
    if not server_config['vcd']['verify']:
        SERVER_LOGGER.warning("InsecureRequestWarning: Unverified HTTPS "
                              "request is being made. Adding certificate "
                              "verification is strongly advised.")
        requests.packages.urllib3.disable_warnings()
    log_filename = None
    log_wire = str_to_bool(server_config['service'].get('log_wire'))
    if log_wire:
        log_filename = SERVER_DEBUG_WIRELOG_FILEPATH
    client = vcd_client.Client(
        uri=server_config['vcd']['host'],
        api_version=server_config['vcd']['api_version'],
        verify_ssl_certs=server_config['vcd']['verify'],
        log_file=log_filename,
        log_requests=log_wire,
        log_headers=log_wire,
        log_bodies=log_wire)
    credentials = vcd_client.BasicLoginCredentials(
        server_config['vcd']['username'],
        SYSTEM_ORG_NAME,
        server_config['vcd']['password'])
    client.set_credentials(credentials)
    return client
def connect_vcd_user_via_token(
        tenant_auth_token: str,
        is_jwt_token: bool,
        api_version: Optional[str]):
    server_config = get_server_runtime_config()
    if not api_version:
        api_version = server_config['service']['default_api_version']
    verify_ssl_certs = server_config['vcd']['verify']
    if not verify_ssl_certs:
        requests.packages.urllib3.disable_warnings()
    log_filename = None
    log_wire = str_to_bool(server_config['service'].get('log_wire'))
    if log_wire:
        log_filename = SERVER_DEBUG_WIRELOG_FILEPATH

    client_tenant = vcd_client.Client(
        uri=server_config['vcd']['host'],
        api_version=api_version,
        verify_ssl_certs=verify_ssl_certs,
        log_file=log_filename,
        log_requests=log_wire,
        log_headers=log_wire,
        log_bodies=log_wire)
    client_tenant.rehydrate_from_token(tenant_auth_token, is_jwt_token)
    return client_tenant
示例#5
0
 def _create_client_with_credentials(self, api_version):
     """Create client with[out] explicit API version and login."""
     new_client = client.Client(self._host,
                                api_version=api_version,
                                verify_ssl_certs=False)
     creds = client.BasicLoginCredentials(self._user, self._org, self._pass)
     new_client.set_credentials(creds)
     return new_client
示例#6
0
 def test_0070_flag_invalid_credentials(self):
     """Invalid credentials result in a VcdException."""
     self._logger.debug("TEST: test_0070_flag_invalid_credentials")
     self._client = client.Client(self._host, verify_ssl_certs=False)
     creds = client.BasicLoginCredentials(self._user, self._org, '!!!')
     try:
         self._client.set_credentials(creds)
         self.fail("Login succeeded with bad password")
     except VcdException:
         self._logger.debug("Received expected exception", exc_info=True)
示例#7
0
    def test_0030_server_highest_version(self):
        """User can set connection to highest supported server version."""
        self._client = client.Client(self._host, verify_ssl_certs=False)
        self._client.set_highest_supported_version()
        creds = client.BasicLoginCredentials(self._user, self._org, self._pass)
        self._client.set_credentials(creds)
        server_versions = self._client.get_supported_versions_list()

        self.assertEqual(
            self._client.get_api_version(),
            server_versions[-1],
            msg="Client version must be at highest server version level")
示例#8
0
    def test_0080_flag_invalid_host(self):
        """Invalid host results in an exception."""
        unreachable_code = False
        try:
            self._client = client.Client("invalid.host.com",
                                         verify_ssl_certs=False)
            creds = client.BasicLoginCredentials(self._user, self._org,
                                                 self._pass)
            self._client.set_credentials(creds)
        except Exception:
            # We don't care about the exact exception as request/urllib
            # handling is implementation-dependent and may change.
            self._logger.debug("Received expected exception", exc_info=True)

        if unreachable_code:
            raise Exception("Login succeeded with bad host")
示例#9
0
    def test_0050_set_logging_parameters(self):
        """User can set logging parameters to force request logs.

        Resetting parameters does not change logging because there's only
        a single appender and it's already set by time this case runs. For
        now we just confirm that nothing breaks when these parameters are
        set.
        """
        self._client = client.Client(
            self._host,
            verify_ssl_certs=False,
            log_file='test_0050_set_logging_parameters.log',
            log_requests=True,
            log_headers=True,
            log_bodies=True)
        creds = client.BasicLoginCredentials(self._user, self._org, self._pass)
        self._client.set_credentials(creds)
示例#10
0
def connect_vcd_user_via_token(tenant_auth_token, is_jwt_token):
    server_config = get_server_runtime_config()
    vcd_uri = server_config['vcd']['host']
    version = server_config['vcd']['api_version']
    verify_ssl_certs = server_config['vcd']['verify']
    log_filename = None
    log_wire = str_to_bool(server_config['service'].get('log_wire'))
    if log_wire:
        log_filename = SERVER_DEBUG_WIRELOG_FILEPATH
    client_tenant = vcd_client.Client(uri=vcd_uri,
                                      api_version=version,
                                      verify_ssl_certs=verify_ssl_certs,
                                      log_file=log_filename,
                                      log_requests=log_wire,
                                      log_headers=log_wire,
                                      log_bodies=log_wire)
    client_tenant.rehydrate_from_token(tenant_auth_token, is_jwt_token)
    return client_tenant