Other administration tasks#
- class dataikuapi.dss.admin.DSSGeneralSettings(client)#
The general settings of the DSS instance.
Important
Do not instantiate directly, use
dataikuapi.DSSClient.get_general_settings()
instead.- save()#
Save the changes that were made to the settings on the DSS instance
Note
This call requires an API key with admin rights
- get_raw()#
Get the settings as a dictionary
- Returns:
the settings
- Return type:
dict
- add_impersonation_rule(rule, is_user_rule=True)#
Add a rule to the impersonation settings
- Parameters:
rule (object) – an impersonation rule, either a
dataikuapi.dss.admin.DSSUserImpersonationRule
or adataikuapi.dss.admin.DSSGroupImpersonationRule
, or a plain dictis_user_rule (boolean) – when the rule parameter is a dict, whether the rule is for users or groups
- get_impersonation_rules(dss_user=None, dss_group=None, unix_user=None, hadoop_user=None, project_key=None, scope=None, rule_type=None, is_user=None, rule_from=None)#
Retrieve the user or group impersonation rules that match the parameters
- Parameters:
dss_user (string) – a DSS user name
dss_group (string) – a DSS group name
rule_from (string) – a regex (which will be applied to user or group names)
unix_user (string) – a name to match the target UNIX user
hadoop_user (string) – a name to match the target Hadoop user
project_key (string) – a project key
scope (string) – project-scoped (‘PROJECT’) or global (‘GLOBAL’)
type (string) – the rule user or group matching method (‘IDENTITY’, ‘SINGLE_MAPPING’, ‘REGEXP_RULE’)
is_user (boolean) – True if only user-level rules should be considered, False for only group-level rules, None to consider both
- remove_impersonation_rules(dss_user=None, dss_group=None, unix_user=None, hadoop_user=None, project_key=None, scope=None, rule_type=None, is_user=None, rule_from=None)#
Remove the user or group impersonation rules that matches the parameters from the settings
- Parameters:
dss_user (string) – a DSS user name
dss_group (string) – a DSS group name
rule_from (string) – a regex (which will be applied to user or group names)
unix_user (string) – a name to match the target UNIX user
hadoop_user (string) – a name to match the target Hadoop user
project_key (string) – a project key
scope (string) – project-scoped (‘PROJECT’) or global (‘GLOBAL’)
type (string) – the rule user or group matching method (‘IDENTITY’, ‘SINGLE_MAPPING’, ‘REGEXP_RULE’)
is_user (boolean) – True if only user-level rules should be considered, False for only group-level rules, None to consider both
- push_container_exec_base_images()#
Push the container exec base images to their repository
- class dataikuapi.dss.admin.DSSUserImpersonationRule(raw=None)#
An user-level rule items for the impersonation settings
- scope_global()#
Make the rule apply to all projects
- scope_project(project_key)#
Make the rule apply to a given project
- Parameters:
project_key (string) – the project this rule applies to
- user_identity()#
Make the rule map each DSS user to a UNIX user of the same name
- user_single(dss_user, unix_user, hadoop_user=None)#
Make the rule map a given DSS user to a given UNIX user
- Parameters:
dss_user (string) – a DSS user
unix_user (string) – a UNIX user
hadoop_user (string) – a hadoop user (optional, defaults to unix_user)
- user_regexp(regexp, unix_user, hadoop_user=None)#
Make the rule map a DSS users matching a given regular expression to a given UNIX user
- Parameters:
regexp (string) – a regular expression to match DSS user names
unix_user (string) – a UNIX user
hadoop_user (string) – a hadoop user (optional, defaults to unix_user)
- class dataikuapi.dss.admin.DSSGroupImpersonationRule(raw=None)#
A group-level rule items for the impersonation settings
- group_identity()#
Make the rule map each DSS user to a UNIX user of the same name
- group_single(dss_group, unix_user, hadoop_user=None)#
Make the rule map a given DSS user to a given UNIX user
- Parameters:
dss_group (string) – a DSS group
unix_user (string) – a UNIX user
hadoop_user (string) – a hadoop user (optional, defaults to unix_user)
- group_regexp(regexp, unix_user, hadoop_user=None)#
Make the rule map a DSS users matching a given regular expression to a given UNIX user
- Parameters:
regexp (string) – a regular expression to match DSS groups
unix_user (string) – a UNIX user
hadoop_user (string) – a hadoop user (optional, defaults to unix_user)
- class dataikuapi.dss.admin.DSSInstanceVariables(client, variables)#
Dict containing the instance variables.
The variables can be modified directly in the dict and persisted using its
save()
method.Important
Do not instantiate directly, use
dataikuapi.DSSClient.get_global_variables()
instead.- save()#
Save the changes made to the instance variables.
Note
This call requires an API key with admin rights.
- class dataikuapi.dss.future.DSSFuture(client, job_id, state=None, result_wrapper=<function DSSFuture.<lambda>>)#
A future represents a long-running task on a DSS instance. It allows you to track the state of the task, retrieve its result when it is ready or abort it.
Usage example:
# In this example, 'folder' is a DSSManagedFolder future = folder.compute_metrics() # Waits until the metrics are computed metrics = future.wait_for_result()
Note
This class does not need to be instantiated directly. A
dataikuapi.dss.future.DSSFuture
is usually returned by the API calls that are initiating long running-tasks.- static from_resp(client, resp, result_wrapper=<function DSSFuture.<lambda>>)#
Creates a
dataikuapi.dss.future.DSSFuture
from the response of an endpoint that initiated a long-running task.- Parameters:
client (
dataikuapi.dssclient.DSSClient
) – An api client to connect to the DSS backendresp (dict) – The response of the API call that initiated a long-running task.
result_wrapper (callable) – (optional) a function to apply to the result of the future, before it is returned by get_result or wait_for_result methods.
- Returns:
- abort()#
Aborts the long-running task.
- get_state()#
Queries the state of the future, and fetches the result if it’s ready.
- Returns:
the state of the future, including the result if it is ready.
- Return type:
dict
- peek_state()#
Queries the state of the future, without fetching the result.
- Returns:
the state of the future
- Return type:
dict
- get_result()#
Returns the future’s result if it’s ready.
Note
if a custom result_wrapper was provided, it will be applied on the result that will be returned.
- Returns:
the result of the future
- Return type:
object
- Raises:
Exception – if the result is not ready (i.e. the task is still running, or it has failed)
- has_result()#
Checks whether the task is completed successfully and has a result.
- Returns:
True if the task has successfully returned a result, False otherwise
- Return type:
bool
- wait_for_result()#
Waits for the completion of the long-running task, and returns its result.
Note
if a custom result_wrapper was provided, it will be applied on the result that will be returned.
- Returns:
the result of the future
- Return type:
object
- Raises:
Exception – if the task failed
- class dataikuapi.dss.jupyternotebook.DSSJupyterNotebook(client, project_key, notebook_name)#
A handle on a Python/R/scala notebook.
Important
Do not instantiate directly, use
dataikuapi.dss.project.DSSProject.get_jupyter_notebook()
ordataikuapi.dss.project.DSSProject.create_jupyter_notebook()
.- unload(session_id=None)#
Stop this Jupyter notebook and release its resources.
- get_sessions(as_objects=False)#
Get the list of running sessions of this Jupyter notebook.
Usage example:
# list the running notebooks in a project for notebook in project.list_jupyter_notebooks(as_type="object"): if len(notebook.get_sessions()) > 0: print("Notebook %s is running" % notebook.notebook_name)
- Parameters:
as_objects (boolean) – if True, each returned item will be a
dataikuapi.dss.jupyternotebook.DSSNotebookSession
- Returns:
a list of
dataikuapi.dss.jupyternotebook.DSSNotebookSession
if as_objects is True, a list of dict otherwise. The dict holds information about the kernels currently running the notebook, notably a sessionId for the Jupyter session id, and a kernelId for the Jupyter kernel id.- Return type:
list
- get_content()#
Get the full contents of this Jupyter notebook.
The content comprises metadata, cells, notebook format info.
Usage example:
# collect all the source code of a notebook lines = [] for cell in notebook.get_content().get_cells(): if cell["cell_type"] != 'code': continue lines = lines + cell["source"] print('\n'.join(lines))
- Return type:
- delete()#
Delete this Jupyter notebook and stop all of its active sessions.
- clear_outputs()#
Clear this Jupyter notebook’s outputs.
- get_object_discussions()#
Get a handle to manage discussions on the notebook.
- Returns:
the handle to manage discussions
- Return type:
- class dataikuapi.dss.jupyternotebook.DSSJupyterNotebookListItem(client, data)#
An item in a list of Jupyter notebooks.
Important
Do not instantiate directly, use
dataikuapi.dss.project.DSSProject.list_jupyter_notebooks()
- to_notebook()#
Get a handle on the corresponding notebook
- Return type:
- property name#
Get the name of the notebook.
Used as identifier.
- property language#
Get the language of the notebook.
Possible values are ‘python’, ‘R’, ‘toree’ (scala)
- Return type:
string
- property kernel_spec#
Get the raw kernel spec of the notebook.
The kernel spec is internal data for Jupyter, that identifies the kernel.
- Returns:
the Jupyter spec of a Jupyter kernel. Top-level fields are:
name : identifier of the kernel in Jupyter, for example ‘python2’ or ‘python3’
display_name : name of the kernel as shown in the Jupyter UI
language : language of the notebook (informative field)
- Return type:
dict
- class dataikuapi.dss.jupyternotebook.DSSNotebookSession(client, session)#
Metadata associated to the session of a Jupyter Notebook.
Important
Do not instantiate directly, use
dataikuapi.dss.jupyternotebook.DSSJupyterNotebook.get_sessions()
- unload()#
Stop this Jupyter notebook and release its resources.
- class dataikuapi.dss.jupyternotebook.DSSNotebookContent(client, project_key, notebook_name, content)#
The content of a Jupyter Notebook.
This is the actual notebook data, see the nbformat doc .
Important
Do not instantiate directly, use
dataikuapi.dss.jupyternotebook.DSSJupyterNotebook.get_content()
- get_raw()#
Get the raw content of this Jupyter notebook.
The content comprises metadata, cells, notebook format info.
- Returns:
a dict containing the full content of a notebook. Notable fields are:
metadata : the metadata of the notebook, as a dict (see
get_metadata()
)nbformat and nbformat_minor : the version of the notebook format
cells : list of cells, each one a dict (see
get_cells()
)
- Return type:
dict
- get_metadata()#
Get the metadata associated to this Jupyter notebook.
- Returns:
the Jupyter metadata of the notebook, with fields:
kernelspec : identification of the kernel used to run the notebook
creator : name of the user that created the notebook
createdOn : timestamp of creation, in milliseconds
modifiedBy : name of last modifier
language_info : information on the language of the notebook
- Return type:
dict
- get_cells()#
Get the cells of this Jupyter notebook.
- Returns:
a list of cells, as defined by Jupyter. Each cell is a dict, with notable fields:
cell_type : type of cell, for example ‘code’
metadata : notebook metadata in the cell
executionCount : index of the last run of this cell
source : content of the cell, as a list of string
output : list of outputs of the last run of the cell, as a list of dict with fields output_type, name and text. Exact contents and meaning depend on the cell type.
- Return type:
list[dict]
- save()#
Save the content of this Jupyter notebook.
- class dataikuapi.dss.notebook.DSSNotebook(client, project_key, notebook_name, state=None)#
A Python/R/Scala notebook on the DSS instance.
Attention
Deprecated. Use
dataikuapi.dss.jupyternotebook.DSSJupyterNotebook
- unload(session_id=None)#
Stop this Jupyter notebook and release its resources.
Attention
Deprecated. Use
dataikuapi.dss.jupyternotebook.DSSJupyterNotebook
- get_state()#
Get the metadata associated to this Jupyter notebook.
Attention
Deprecated. Use
dataikuapi.dss.jupyternotebook.DSSJupyterNotebook
- get_sessions()#
Get the list of running sessions of this Jupyter notebook.
Attention
Deprecated. Use
dataikuapi.dss.jupyternotebook.DSSJupyterNotebook
- get_object_discussions()#
Get a handle to manage discussions on the notebook.
Attention
Deprecated. Use
dataikuapi.dss.jupyternotebook.DSSJupyterNotebook
- Returns:
the handle to manage discussions
- Return type:
- class dataikuapi.dss.admin.DSSGlobalApiKey(client, key, id_)#
A global API key on the DSS instance
- delete()#
Delete the api key
Note
This call requires an API key with admin rights
- get_definition()#
Get the API key’s definition
Note
This call requires an API key with admin rights
Note
If the secure API keys feature is enabled, the secret key of this API key will not be present in the returned dict
- Returns:
the API key definition, as a dict. The dict additionally contains the definition of the permissions attached to the key.
- Return type:
dict
- set_definition(definition)#
Set the API key’s definition
Note
This call requires an API key with admin rights
Important
You should only
set_definition()
using an object that you obtained throughget_definition()
, not create a new dict. You may not use this method to update the ‘key’ field.Usage example
# make an API key able to create projects key = client.get_global_api_key('my_api_key_secret') definition = key.get_definition() definition["globalPermissions"]["mayCreateProjects"] = True key.set_definition(definition)
- Parameters:
definition (dict) – the definition for the API key
- class dataikuapi.dss.admin.DSSGlobalApiKeyListItem(client, data)#
An item in a list of global API keys.
Important
Do not instantiate directly, use
dataikuapi.DSSClient.list_global_api_keys()
instead.- to_global_api_key()#
Gets a handle corresponding to this item
- Return type:
- property id#
Get the identifier of the API key
- Return type:
string
- property user_for_impersonation#
Get the user associated to the API key
- Return type:
string
- property key#
Get the API key
If the secure API keys feature is enabled, this key field will not be available
- Return type:
string
- property label#
Get the label of the API key
- Return type:
string
- property description#
Get the description of the API key
- Return type:
string
- property created_on#
Get the timestamp of when the API key was created
- Return type:
datetime.datetime
- property created_by#
Get the login of the user who created the API key
- Return type:
string
- class dataikuapi.dss.admin.DSSGlobalUsageSummary(data)#
The summary of the usage of the DSS instance.
Important
Do not instantiate directly, use
dataikuapi.DSSClient.get_global_usage_summary()
instead.- property raw#
Get the usage summary structure
The summary report has top-level fields per object type, like projectSummaries or datasets, each containing counts, usually a all global count, then several XXXXByType dict with counts by object sub-type (for example, for datasets the sub-type would be the type of the connection they’re using)
- Return type:
dict
- property projects_count#
Get the number of projects on the instance
- Return type:
int
- property total_datasets_count#
Get the number of datasets on the instance
- Return type:
int
- property total_recipes_count#
Get the number of recipes on the instance
- Return type:
int
- property total_jupyter_notebooks_count#
Get the number of code nobteooks on the instance
- Return type:
int
- property total_sql_notebooks_count#
Get the number of sql notebooks on the instance
- Return type:
int
- property total_scenarios_count#
Get the number of scenarios on the instance
- Return type:
int
- property total_active_with_trigger_scenarios_count#
Get the number of active scenarios on the instance
- Return type:
int
- class dataikuapi.dss.admin.DSSPersonalApiKey(client, key, id_)#
A personal API key on the DSS instance.
Important
Do not instantiate directly, use
dataikuapi.DSSClient.get_personal_api_key()
instead.- get_definition()#
Get the API key’s definition
- Returns:
the personal API key definition, as a dict. The login of the user of this personal key is in a user field.
- Return type:
dict
- set_definition(definition)#
Set the API key’s definition
Note
Only the label and description of the key can be updated.
Important
You should only
set_definition()
using an object that you obtained throughget_definition()
, not create a new dict. You may not use this method to update the ‘key’ field.Usage example
# update an API key label key = client.get_personal_api_key('my_api_key_id') definition = key.get_definition() definition["label"] = "My New Label" key.set_definition(definition)
- Parameters:
definition (dict) – the definition for the API key
- delete()#
Delete the API key
- class dataikuapi.dss.admin.DSSPersonalApiKeyListItem(client, data)#
An item in a list of personal API key.
Important
Do not instantiate directly, use
dataikuapi.DSSClient.list_personal_api_keys()
ordataikuapi.DSSClient.list_all_personal_api_keys()
instead.- to_personal_api_key()#
Gets a handle corresponding to this item
- Return type:
- property id#
Get the identifier of the API key
- Return type:
string
- property user#
Get the user associated to the API key
- Return type:
string
- property key#
Get the API key
If the secure API keys feature is enabled, this key field will not be available
- Return type:
string
- property label#
Get the label of the API key
- Return type:
string
- property description#
Get the description of the API key
- Return type:
string
- property created_on#
Get the timestamp of when the API key was created
- Return type:
datetime.datetime
- property created_by#
Get the login of the user who created the API key
- Return type:
string