cloudera.services.ssb_job module – Manage SSB jobs

Note

This module is part of the cloudera.services collection (version 1.0.0).

It is not included in ansible-core. To check whether it is installed, run ansible-galaxy collection list.

To install it, use: ansible-galaxy collection install git+https://github.com/cloudera-labs/cloudera.services.git.

To use it in a playbook, specify: cloudera.services.ssb_job.

New in cloudera.services 1.0.0

Synopsis

  • Create, execute, stop, and delete Cloudera SQL Stream Builder (SSB) jobs.

  • Jobs are scoped to a project identified by project_id.

  • Job names must contain only letters, numbers, and underscores and start with a letter or underscore.

Parameters

Parameter

Comments

client_cert

path

The path to a client certificate for authenticating to the API endpoint.

client_key

path

The path to a client key for authenticating to the API endpoint.

debug

aliases: debug_endpoints

boolean

A flag to enable debug logging of the module’s execution.

Choices:

  • false ← (default)

  • true

force

boolean

A flag to force a refresh of the API request, ignoring any cached results.

Choices:

  • false ← (default)

  • true

force_basic_auth

boolean

A flag to force basic authentication for API requests.

Choices:

  • false ← (default)

  • true

http_agent

aliases: user_agent

string

The User-Agent string to send with API requests.

Default: "cloudera-services-module"

job_id

integer

The unique identifier of an existing job.

Use this to reference an existing job for state=stopped, state=started, state=restarted, or state=absent.

This parameter is mutually exclusive with name.

name

string

The name of the job.

Required when creating a new job (state=present, state=started, or state=restarted).

Job names must contain only letters, numbers, and underscores and start with a letter or underscore.

This parameter is mutually exclusive with job_id.

page_size

aliases: default_page_size

integer

The number of items to return per page in a paginated API response.

Default: 100

project_id

string / required

The unique identifier of the project containing the job.

Required for all operations.

savepoint

boolean

Whether to create a savepoint when stopping the job.

Only used when state=stopped or state=absent.

Choices:

  • false ← (default)

  • true

savepoint_path

string

The path to the savepoint directory.

Only used when savepoint=true.

sql

string

The SQL query to execute for the job.

Required when creating a new job (state=present, state=started, or state=restarted).

state

string

The desired state of the job.

present creates the job if it doesn’t exist but does NOT execute it.

started creates the job if needed and executes it to an active state.

stopped ensures the job exists and stops it if running.

restarted ensures the job exists and executes it (stopping first if needed).

absent stops and deletes the job.

Choices:

  • "present" ← (default)

  • "started"

  • "stopped"

  • "restarted"

  • "absent"

stop_timeout

integer

Timeout in seconds for stopping the job.

Only used when state=stopped or state=absent.

timeout

aliases: timeout_seconds

integer

The timeout in seconds for any API requests.

Default: 60

url

aliases: endpoint, endpoint_url

string / required

The base URL of the API endpoint, including the port if necessary.

url_password

string

The password for authenticating to the API endpoint.

url_username

string

The username for authenticating to the API endpoint.

use_gssapi

boolean

A flag to enable or disable GSSAPI authentication for API requests.

Choices:

  • false ← (default)

  • true

use_proxy

boolean

A flag to enable or disable the use of a proxy for API requests.

Choices:

  • false

  • true ← (default)

validate_certs

boolean

A flag to enable or disable SSL certificate validation for API requests.

Choices:

  • false

  • true ← (default)

Attributes

Attribute

Support

Description

check_mode

Support: full

Can run in check_mode and return changed status prediction without modifying target

diff_mode

Support: full

Will return details on what has changed (or possibly needs changing in check_mode), when in diff mode

platform

Platforms: all

Target OS/families that can be operated against

Examples

- name: Create an SSB job (without executing)
  cloudera.services.ssb_job:
    project_id: "12345"
    name: "my_streaming_job"
    sql: "SELECT * FROM orders WHERE amount > 100"
    state: present

- name: Create and start an SSB job
  cloudera.services.ssb_job:
    project_id: "12345"
    name: "my_streaming_job"
    sql: "SELECT * FROM orders WHERE amount > 100"
    state: started

- name: Stop a running job
  cloudera.services.ssb_job:
    project_id: "12345"
    job_id: 67890
    state: stopped

- name: Stop a running job with savepoint
  cloudera.services.ssb_job:
    project_id: "12345"
    name: "my_streaming_job"
    state: stopped
    savepoint: true
    savepoint_path: "/savepoints/my_job"

- name: Restart a job (stop if running, then start)
  cloudera.services.ssb_job:
    project_id: "12345"
    name: "my_streaming_job"
    state: restarted

- name: Delete a job
  cloudera.services.ssb_job:
    project_id: "12345"
    name: "my_streaming_job"
    state: absent

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

job

dictionary

The job details.

Returned: when state is present, started, stopped, or restarted

autoscaler_config

dictionary

Autoscaler configuration for this job.

Returned: when available

checkpoint_config

dictionary

Checkpoint configuration for this job.

Returned: when available

cluster_id

string

The ID of the cluster running this job.

Returned: when available

created_at

string

Timestamp when the job was created.

Returned: when available

end_time

integer

Timestamp when the job ended (epoch milliseconds).

Returned: when available

string

The Flink job ID associated with this SSB job.

Returned: when available

jm_url

string

The URL to the Flink JobManager for this job.

Returned: when available

job_id

integer

The unique identifier of the job.

Returned: always

kubernetes_config

dictionary

Kubernetes configuration for this job.

Returned: when available

mv_config

dictionary

Materialized view configuration for this job.

Returned: when available

mv_endpoints

list / elements=dictionary

List of materialized view API endpoints for this job.

Returned: when available

name

string

The name of the job.

Returned: always

project_id

string

The ID of the project containing this job.

Returned: when available

sample_id

string

The sample ID for this job.

Returned: when available

savepoint_id

integer

The ID of the savepoint associated with this job.

Returned: when available

sql

string

The SQL query executed by the job.

Returned: always

start_time

integer

Timestamp when the job was started (epoch milliseconds).

Returned: when available

state

string

The current state of the job.

Returned: when available

user_id

string

The ID of the user who created the job.

Returned: when available

username

string

The username of the user who created the job.

Returned: when available

savepoint_id

integer

The savepoint ID created when stopping the job.

Returned: when state=stopped with savepoint=true

sdk_out

string

Returns the captured REST API log.

Returned: when supported

sdk_out_lines

list / elements=string

Returns a list of each line of the captured REST API log.

Returned: when supported

Authors

  • Webster Mudge (@wmudge)