Пример #1
0
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)))
Пример #2
0
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)))
Пример #3
0
    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
Пример #4
0
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)
Пример #5
0
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))
Пример #6
0
    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())
Пример #7
0
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()