Project Deployer

Tutorials

You can find tutorials on this subject in the Developer Guide: Project deployment.
You will find a summary of the used classes and methods at the end of this document. The starting point for the Project Deployer API documentation will be the DSSProjectDeployer class.

Project Deployer

Getting the Project Deployer

project_deployer = client.get_projectdeployer()

Listing deployments

Listing deployments on the Project Deployer.

for deployment in project_deployer.list_deployments():
    print(f"Deployment id {deployment.id}")

Getting a deployment

Getting a handle to interact with a deployment.

DEPLOYMENT_ID = "" # Fill with your deployment id
deployment = project_deployer.get_deployment(DEPLOYMENT_ID)

Exporting a bundle

Exporting a bundle in a specific published project on the Project Deployer.

PROJECT_KEY = "" # Fill with your project key
project = client.get_project(PROJECT_KEY)
BUNDLE_ID = "" # Fill with the unique identifier for the bundle
release_notes = "" # Indicates the changes introduced by this bundle
bundle = project.export_bundle(BUNDLE_ID, release_notes)

Creating a published project

Creating a published project on the Project Deployer.

Creating a published project
PUBLISHED_PROJECT_ID = "" # Fill with the identifier of the published project
published_project = project_deployer.create_project(PUBLISHED_PROJECT_ID)

Getting a published project

Getting a published project from the Project Deployer.

PUBLISHED_PROJECT_ID = "" # Fill with the identifier of the published project
published_project = project_deployer.get_project(PUBLISHED_PROJECT_ID)

Deleting a published project

Deleting a published project on the Project Deployer.

published_project.delete()

Publishing a bundle

Publishing an exported bundle to a published project on the Project Deployer.

PROJECT_KEY = "" # Fill with your project key
project = client.get_project(PROJECT_KEY)
BUNDLE_ID = "" # Fill with the unique identifier for the bundle
PUBLISHED_PROJECT_ID = "" # Fill with the identifier of the published project
published_project = project.publish_bundle(BUNDLE_ID, PUBLISHED_PROJECT_ID)

Creating a deployment

Creating a deployment and return the handle to interact with it.

DEPLOYMENT_ID = "" # Fill with your deployment id
PUBLISHED_PROJECT_ID = "" # Fill with the identifier of the published project
INFRA_ID = "" # Fill with the deployment id you chose
BUNDLE_ID = "" # Fill with the unique identifier for the bundle
deployment = project_deployer.create_deployment(deployment_id=DEPLOYMENT_ID, project_key=PUBLISHED_PROJECT_ID, infra_id=INFRA_ID, bundle_id=BUNDLE_ID, ignore_warnings=True)

# Once created, you need to trigger the update mechanism.
update = deployment.start_update()
update.wait_for_result()
print(f"Deployment state: {update.state}")

Deployment infrastructures

Listing stages

Listing the possible stages for infrastructures.

project_deployer.list_stages()

Listing deployment infrastructures

Listing the infrastructures on the Project Deployer.

Listing deployment infrastructures
for infra in project_deployer.list_infras():
    print(f"Infrastructure id: {infra.id}")

Getting a deployment infrastructure

Getting a handle to interact with an infrastructure.

INFRA_ID = "" # Fill with the unique identifier of the infrastructure
infra = project_deployer.get_infra(INFRA_ID)

Creating a deployment infrastructure

Creating a new infrastructure and returns the handle to interact with it.

INFRA_ID = "" # Fill with the unique identifier of the infrastructure to create
STAGE_ID = "" # Fill with the stage of the infrastructure to create
GOVERN_CHECK_POLICY = "" # Fill with the policy that Govern will apply. possible values: PREVENT, WARN, or NO_CHECK
infra = project_deployer.create_infra(INFRA_ID, STAGE_ID, GOVERN_CHECK_POLICY)

Published Projects

Listing published projects

Listing published projects on the Project Deployer.

for project in project_deployer.list_projects():
    print(f"Published project: {project.id} - {project.project_key}")

Creating a published project

PUBLISHED_ID = "" # Fill with the unique identifier of the published project to create
published_project = project_deployer.create_project(PUBLISHED_ID)

Getting a published project

PUBLISHED_ID = "" # Fill with the unique identifier of the published project to create
published_project = project_deployer.

Deployment status

Getting the status of a deployment

DEPLOYMENT_ID = "" # Fillwith your deployment id
deployment = project_deployer.get_deployment(DEPLOYMENT_ID)
status = deployment.get_status()

Getting details on a deployment status

heavy = status.get_heavy()
deployment_id = heavy.get('deploymentId')
infra_id = heavy.get('infraId')
health = status.get_health()
if health == 'ERROR':
    print(f"The deployment {deployment_id} deployed on infra {infra_id} has an error status.")
    for message in status.get_health_messages().get('messages'):
        print(f"  {message.get('severity')}: {message.get('details')}")

Reference documentation

Classes

dataikuapi.DSSClient(host[, api_key, ...])

Entry point for the DSS API client

dataikuapi.dss.project.DSSProject(client, ...)

A handle to interact with a project on the DSS instance.

dataikuapi.dss.projectdeployer.DSSProjectDeployer(client)

Handle to interact with the Project Deployer.

dataikuapi.dss.projectdeployer.DSSProjectDeployerDeployment(...)

A deployment on the Project Deployer.

dataikuapi.dss.projectdeployer.DSSProjectDeployerDeploymentSettings(...)

The settings of a Project Deployer deployment.

dataikuapi.dss.projectdeployer.DSSProjectDeployerDeploymentStatus(...)

The status of a deployment on the Project Deployer.

dataikuapi.dss.projectdeployer.DSSProjectDeployerInfra(...)

An Automation infrastructure on the Project Deployer.

dataikuapi.dss.projectdeployer.DSSProjectDeployerInfraSettings(...)

The settings of an Automation infrastructure.

dataikuapi.dss.projectdeployer.DSSProjectDeployerInfraStatus(...)

The status of an Automation infrastructure.

dataikuapi.dss.projectdeployer.DSSProjectDeployerProject(...)

A published project on the Project Deployer.

dataikuapi.dss.projectdeployer.DSSProjectDeployerProjectSettings(...)

The settings of a published project.

dataikuapi.dss.projectdeployer.DSSProjectDeployerProjectStatus(...)

The status of a published project.

Functions

create_deployment(deployment_id, ...[, ...])

Create a deployment and return the handle to interact with it.

create_infra(infra_id, stage[, ...])

Create a new infrastructure and returns the handle to interact with it.

get_deployment(deployment_id)

Get a handle to interact with a deployment.

get_health()

Get the health of this deployment.

get_health_messages()

Get messages about the health of this deployment

get_heavy()

Get the 'heavy' (full) status.

get_projectdeployer()

Gets a handle to work with the Project Deployer

get_status()

Get status information about this deployment.

list_deployments([as_objects])

List deployments on the Project Deployer.

list_infras([as_objects])

List the infrastructures on the Project Deployer.

list_stages()

List the possible stages for infrastructures.