Job Tags¶
A job tag identifies similar jobs or job templates, and can be used to easily search and filter jobs and job templates.
Creating a job with tags¶
To specify tags for a streamsets.sdk.sch_models.Job
instance at creation time, you need to supply the
desired tags at the time streamsets.sdk.sch_models.JobBuilder.build()
is called for the pipeline being created:
job_builder = sch.get_job_builder()
pipeline = sch.pipelines.get(id=<pipeline id>)
# Create a list of tags to supply to the builder
tags = ['test/dev', 'test']
job = job_builder.build(job_name='Test job with tags', pipeline=pipeline, tags=tags)
sch.add_job(job)
job.tags
Output:
# job.tags
[<Tag (tag=test/dev)>,
<Tag (tag=test)>]
Fetching jobs using job tag¶
Job tags can be used to search and filter through the available jobs and job templates on Control Hub. To fetch a
particular job or jobs that use a specific job tag, you can supply it via the job_tag
parameter:
sch.jobs.get_all(job_tag='test:admin')
Output:
[<Job (job_id=93084250-ef6f-4c0a-b6f8-aff54f905739:admin, job_name=Test job with tags)>]
Note
The job_tag
you provide is expected to be in a ‘<tag_name>:<organization>’ format.
Adding tags to an existing job¶
You can also add new tags to a streamsets.sdk.sch_models.Job
instance via the
streamsets.sdk.sch_models.Job.add_tag()
method by passing in one or more string
objects to add:
job = sch.jobs.get(job_id=<job_id>)
job.add_tag('prod/dev', 'prod')
sch.update_job(job)
job.tags
Output:
# job.tags
[<Tag (tag=test/dev)>,
<Tag (tag=test)>,
<Tag (tag=prod/dev)>,
<Tag (tag=prod)>]
Removing existing tags for a job¶
Existing tags can also be removed from a streamsets.sdk.sch_models.Job
instance via the
streamsets.sdk.sch_models.Job.remove_tag()
method by passing in one or more string
objects to remove:
job = sch.jobs.get(job_id=<job_id>)
job.remove_tag('test', 'test/dev')
sch.update_job(job)
job.tags
Output:
# job.tags
[<Tag (tag=prod/dev)>,
<Tag (tag=prod)>]]