def set_access_token_provider(config, tenant_id): if is_cloudsim(): authorization_provider = NoSecurityAccessTokenProvider(tenant_id) elif is_dev_pod() or is_minicloud(): authorization_provider = KeystoreAccessTokenProvider().set_tenant( tenant_id) elif is_prod_pod(): if credentials_file is None: raise IllegalArgumentException( 'Must specify the credentials file path.') creds_provider = PropertiesCredentialsProvider().set_properties_file( credentials_file) authorization_provider = DefaultAccessTokenProvider( idcs_url=idcs_url(), entitlement_id=entitlement_id, creds_provider=creds_provider, timeout_ms=timeout) elif is_onprem(): if user_name is None and password is None: authorization_provider = StoreAccessTokenProvider() else: if user_name is None or password is None: raise IllegalArgumentException( 'Please set both the user_name and password.') authorization_provider = StoreAccessTokenProvider( user_name, password) else: raise IllegalArgumentException('Please set the test server.') config.set_authorization_provider(authorization_provider)
def check_table_result(self, result, state, table_limits=None, has_schema=True, has_operation_id=True, check_limit=True, check_schema=True, check_operation_id=True): assert isinstance(self, TestCase) # check compartment id if (version is None or is_onprem() or version is not None and is_cloudsim() and compare_version(version, '1.4.0') >= 0): self.assertIsNone(result.get_compartment_id()) else: self.assertEqual(result.get_compartment_id(), tenant_id) # check table name self.assertEqual(result.get_table_name(), table_name) # check state if isinstance(state, str): self.assertEqual(result.get_state(), state) else: self.assertTrue(result.get_state() in state) # check table limits if check_limit: if table_limits is None or is_onprem(): self.assertIsNone(result.get_table_limits()) else: self.assertEqual(result.get_table_limits().get_read_units(), table_limits.get_read_units()) self.assertEqual(result.get_table_limits().get_write_units(), table_limits.get_write_units()) self.assertEqual(result.get_table_limits().get_storage_gb(), table_limits.get_storage_gb()) # check table schema # TODO: For on-prem proxy, TableResult.get_schema() always return None, # This is a known bug, when it is fixed, the test should be change. if check_schema and not_cloudsim() and not is_onprem(): (self.assertIsNotNone(result.get_schema()) if has_schema else self.assertIsNone(result.get_schema())) # check operation id if check_operation_id: operation_id = result.get_operation_id() (self.assertIsNotNone(operation_id) if has_operation_id else self.assertIsNone(operation_id))
def setUpClass(cls): cls.set_up_class() index_name = 'idx_' + table_name create_statement = ( 'CREATE TABLE ' + table_name + '(fld_sid INTEGER, fld_id INTEGER, \ fld_long LONG, fld_float FLOAT, fld_double DOUBLE, fld_bool BOOLEAN, \ fld_str STRING, fld_bin BINARY, fld_time TIMESTAMP(6), fld_num NUMBER, \ fld_json JSON, fld_arr ARRAY(STRING), fld_map MAP(STRING), \ fld_rec RECORD(fld_id LONG, fld_bool BOOLEAN, fld_str STRING), \ PRIMARY KEY(SHARD(fld_sid), fld_id))') limits = TableLimits(100, 100, 1) create_request = TableRequest().set_statement( create_statement).set_table_limits(limits) cls.table_request(create_request) if (version is not None and (is_cloudsim() and compare_version(version, '1.4.0') == -1 or is_onprem() and compare_version(version, '20.2.0') == -1)): create_idx_request = TableRequest() create_idx_statement = ( 'CREATE INDEX ' + index_name + '1 ON ' + table_name + '(fld_long)') create_idx_request.set_statement(create_idx_statement) cls.table_request(create_idx_request) create_idx_statement = ( 'CREATE INDEX ' + index_name + '2 ON ' + table_name + '(fld_str)') create_idx_request.set_statement(create_idx_statement) cls.table_request(create_idx_request) create_idx_statement = ( 'CREATE INDEX ' + index_name + '3 ON ' + table_name + '(fld_bool)') create_idx_request.set_statement(create_idx_statement) cls.table_request(create_idx_request) create_idx_statement = ( 'CREATE INDEX ' + index_name + '4 ON ' + table_name + '(fld_json.location as point)') create_idx_request.set_statement(create_idx_statement) cls.table_request(create_idx_request) global query_statement query_statement = ('SELECT fld_sid, fld_id FROM ' + table_name + ' WHERE fld_sid = 1')
def generate_authorization_provider(tenant_id): if is_cloudsim(): authorization_provider = InsecureAuthorizationProvider(tenant_id) elif is_dev_pod() or is_minicloud(): authorization_provider = TestSignatureProvider(tenant_id) elif is_prod_pod(): if iam_principal() == 'user principal': if credentials_file is None: raise IllegalArgumentException( 'Must specify the credentials file path.') authorization_provider = SignatureProvider( config_file=credentials_file) elif iam_principal() == 'instance principal': if isinstance(endpoint, str): region = Regions.from_region_id(endpoint) else: region = endpoint if region is None: authorization_provider = ( SignatureProvider.create_with_instance_principal()) else: authorization_provider = ( SignatureProvider.create_with_instance_principal( region=region)) elif iam_principal() == 'resource principals': authorization_provider = ( SignatureProvider.create_with_resource_principal()) else: raise IllegalArgumentException('Must specify the principal.') elif is_onprem(): if user_name is None and password is None: authorization_provider = StoreAccessTokenProvider() else: if user_name is None or password is None: raise IllegalArgumentException( 'Please set both the user_name and password.') authorization_provider = StoreAccessTokenProvider( user_name, password) else: raise IllegalArgumentException('Please set the test server.') return authorization_provider
internal_list = internal.split(".") specified_len = len(specified_list) internal_len = len(internal_list) if specified_len < internal_len: for i in range(internal_len - specified_len): specified_list.append("0") for i in range(internal_len): if int(specified_list[i]) > int(internal_list[i]): return 1 if int(specified_list[i]) < int(internal_list[i]): return -1 return 0 if version is not None: if (is_cloudsim() and compare_version(version, '1.2.0') == -1 or is_onprem() and compare_version(version, '20.1.0') == -1): raise IllegalArgumentException( 'The version number for CloudSim should be newer than 1.2.0, for ' + 'on-prem should be newer than 20.1.0.') def get_handle_config(tenant_id): # Creates a NoSQLHandleConfig get_logger() provider = generate_authorization_provider(tenant_id) config = NoSQLHandleConfig(endpoint, provider).set_table_request_timeout( table_request_timeout).set_timeout(timeout).set_default_compartment( tenant_id).set_pool_connections(pool_connections).set_pool_maxsize( pool_maxsize).set_retry_handler(retry_handler).set_consistency( consistency).set_logger(logger)