def create_datasource(info, name, ds_type, source, provider_id, args): """Create a datasource""" click.echo('Registering datasource {}...'.format(name)) parsed_args = parse_unknown_options(args) api = ce_api.DatasourcesApi(api_client(info)) p_api = ce_api.ProvidersApi(api_client(info)) p_list = api_call(p_api.get_loggedin_provider_api_v1_providers_get) p_uuid = find_closest_uuid(provider_id, p_list) ds = api_call( api.create_datasource_api_v1_datasources_post, DatasourceCreate( name=name, type=ds_type, source=source, provider_id=p_uuid, args=parsed_args, )) declare('Datasource registered with ID: {}'.format( format_uuid(ds.id)))
def set_provider(info, provider_id): user = info[constants.ACTIVE_USER] api = ce_api.ProvidersApi(api_client(info)) p_list = api_call(api.get_loggedin_provider_api_v1_providers_get) p_id = find_closest_uuid(provider_id, p_list) info[user][constants.ACTIVE_PROVIDER] = p_id info.save() declare('Active provider set to id: {id}'.format(id=format_uuid(p_id)))
def get_providers(self, **kwargs) -> List[Provider]: """ Get a list of registered providers """ api = ce_api.ProvidersApi(self.client) p_list = api_utils.api_call( func=api.get_loggedin_provider_api_v1_providers_get) providers = [Provider(**p.to_dict()) for p in p_list] if kwargs: providers = client_utils.filter_objects(providers, **kwargs) return providers
def create_workspace(ctx, info, provider_id, name): """Create a workspace and set it to be active.""" click.echo('Registering the workspace "{}"...'.format(name)) w_api = ce_api.WorkspacesApi(api_client(info)) p_api = ce_api.ProvidersApi(api_client(info)) p_list = api_call(p_api.get_loggedin_provider_api_v1_providers_get) p_uuid = find_closest_uuid(provider_id, p_list) ws = api_call(w_api.create_workspace_api_v1_workspaces_post, WorkspaceCreate(name=name, provider_id=p_uuid)) declare('Workspace registered.') ctx.invoke(set_workspace, workspace_id=ws.id)
def create_provider(info, name, type, args): """Create a provider with a unique name""" parsed_args = parse_unknown_options(args) for k in parsed_args: v = parsed_args[k] if v.endswith('.json') and os.path.isfile(v): parsed_args[k] = json.load(open(v)) if v.endswith('.yaml') and os.path.isfile(v): parsed_args[k] = yaml.load(open(v)) click.echo('Registering the provider.') api = ce_api.ProvidersApi(api_client(info)) api_call(api.create_provider_api_v1_providers_post, ProviderCreate(name=name, type=type, args=parsed_args))
def create_provider(self, name: Text, provider_type: Text, args: Dict) -> Provider: """ Create a new provider in db """ api = ce_api.ProvidersApi(self.client) for k in args: v = args[k] if v.endswith('.json') and os.path.isfile(v): args[k] = json.load(open(v)) if v.endswith('.yaml') and os.path.isfile(v): args[k] = yaml.load(open(v)) p = api_utils.api_call(func=api.create_provider_api_v1_providers_post, body=Provider.creator(name, provider_type, args=args)) return Provider(**p.to_dict())
def list_providers(info): p_api = ce_api.ProvidersApi(api_client(info)) p_list = api_call(p_api.get_loggedin_provider_api_v1_providers_get) declare('You have {count} different providers(s) so ' 'far. \n'.format(count=len(p_list))) user = info[constants.ACTIVE_USER] if constants.ACTIVE_PROVIDER in info[user]: active_p = info[user][constants.ACTIVE_PROVIDER] else: active_p = None if p_list: table = [] for p in p_list: table.append({'Selection': '*' if p.id == active_p else '', 'ID': format_uuid(p.id), 'Name': p.name, 'Type': p.type, 'Created At': p.created_at}) click.echo(tabulate(table, headers='keys', tablefmt='presto')) click.echo()