Skip to main content

=================== Genie Python Client

This package provides a robust client for interacting with an existing Genie service. Included are modules for the resource models (Application, Command, Cluster, Job, etc), exceptions and retry logic wrappers for API calls.

For more documentation on Genie and its available API's see the Genie GitHub <http://netflix.github.io/genie/>_ page.

Examples

Configuration Service Example


This example shows how to register a new application with a running Genie instance. Similar processes can be followed
for registering clusters and commands as well as relating all three to each other.

::

    import genie2.client.wrapper
    import genie2.model.Application

    # Create a Genie client which proxies API calls through wrapper which retries failures based on various return codes
    genie = genie2.client.wrapper.Genie2("http://localhost:7001/genie", genie2.client.wrapper.RetryPolicy(tries=8, none_on_404=True, no_retry_http_codes=range(400, 500)))

    # Create a new application instance and set required fields
    app = genie2.model.Application.Application()
    app.name = "exampleAppName"
    app.user = "exampleUser"
    app.version = "0.0.1"
    app.status = "ACTIVE"

    # Save the application to the service
    created_app = genie.createApplication(app)
    print created_app.id

    # Retrieve the application by ID
    got_app = genie.getApplication(created_app.id)
    print got_app.name

    # Delete the application by ID
    deleted_app = genie.deleteApplication(got_app.id)
    print deleted_app.id


Execution Service Example
~~~~~~~~~~~~~~~~~~~~~~~~~

This example shows how to execute a job on Genie. In this case it's running a `Presto <http://prestodb.io/>`_ query.
This assumes the Presto cluster has already been configured with Genie and the command registered.

::

    import genie2.client.wrapper
    import genie2.model.Job
    import genie2.model.ClusterCriteria

    # Create a Genie client which proxies API calls through wrapper which retries failures based on various return codes
    genie = genie2.client.wrapper.Genie2("http://localhost:7001/genie", genie2.client.wrapper.RetryPolicy(tries=8, none_on_404=True, no_retry_http_codes=range(400, 500)))

    # Create a job instance and fill in the required parameters
    job = genie2.model.Job.Job()
    job.name = "GeniePythonClientExampleJob"
    job.user = "tgianos"
    job.version = "0.0.1"

    # Create a list of cluster criterias which determine the cluster to run the job on
    cluster_criterias = list()
    cluster_criteria = genie2.model.ClusterCriteria.ClusterCriteria()
    criteria = set()
    criteria.add("presto")
    criteria.add("prod")
    cluster_criteria.tags = criteria
    cluster_criterias.append(cluster_criteria)
    job.clusterCriterias = cluster_criterias

    # Create the set of command criteria which will determine what command Genie executes for the job
    command_criteria = set()
    command_criteria.add("presto")
    job.commandCriteria = command_criteria

    # Any command line arguments to run along with the command. In this case it holds the actual query but this
    # could also be done via an attachment or file dependency.
    job.commandArgs = "--execute \"show tables;\""

    # Submit the job to Genie
    running_job = genie.submitJob(job)

    # Check on the status of the job
    job_status = genie.getJobStatus(running_job.id)
    print job_status


Metadata

Release files for nflx-genie-client 3.6.19

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nflx-genie-client 3.6.19
File Size Uploaded
nflx_genie_client-3.6.19.tar.gz 55.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nflx-genie-client 3.6.19
File Interpreter ABI Platform
nflx_genie_client-3.6.19-py3-none-any.whl Python 3 none any Details

Total release size: 112.0 kB

Release files / nflx_genie_client-3.6.19.tar.gz

Download URL nflx_genie_client-3.6.19.tar.gz
Size 55.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5d901b8dde3d42f4ebc6ab06002becdfeaf8d06de6e818fea42e409d736beb07
BLAKE2b-256 checksum
How to use checksums
f2bd3d46963457e4006af8cf728244a28abd73764eb0f83351f8a941b9abfa86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.9

Release files / nflx_genie_client-3.6.19-py3-none-any.whl

Download URL nflx_genie_client-3.6.19-py3-none-any.whl
Size 56.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
00172b0a36651bf89d0f9e97952aff0d488945205aeaba66f952d8d895d2c618
BLAKE2b-256 checksum
How to use checksums
14950db9f24dbbff1370cfac6e810353b940ecab1a4ac65f744125beeb05f677
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.9

Release history Release notifications | RSS feed

This release

3.6.19 This release

2 release files

3.6.18

2 release files

3.6.17

2 release files

3.6.16

3 release files

3.6.15

3 release files

3.6.14

3 release files

3.6.12

3 release files

3.6.8

3 release files

3.6.6

3 release files

3.6.5

3 release files

3.6.4

3 release files

3.6.3

3 release files

3.6.1

1 release file

3.6.0

1 release file

3.5.8

1 release file

3.5.7

1 release file

3.5.6

1 release file

3.5.5

1 release file

3.5.4

1 release file

3.5.3

1 release file

3.5.2

1 release file

3.5.1

1 release file

3.5.0

1 release file

3.4.11

1 release file

3.4.10

1 release file

3.4.9

1 release file

3.4.8

1 release file

3.4.7

1 release file

3.4.6

1 release file

3.4.5

1 release file

3.4.4

1 release file

3.4.3

1 release file

3.4.2

1 release file

3.4.1

2 release files

3.4.0

2 release files

3.3.3

1 release file

3.3.2

1 release file

3.3.1

1 release file

3.2.3

1 release file

3.2.2

1 release file

3.2.1

1 release file

3.2.0

1 release file

3.1.0

1 release file

3.0.48

1 release file

3.0.47

1 release file

3.0.46

1 release file

3.0.45

1 release file

3.0.44

1 release file

3.0.43

1 release file

3.0.42

1 release file

3.0.41

1 release file

3.0.40

1 release file

3.0.39

1 release file

3.0.38

1 release file

3.0.37

1 release file

3.0.36

1 release file

3.0.35

1 release file

3.0.34

1 release file

3.0.33

1 release file

3.0.32

1 release file

3.0.31

1 release file

3.0.30

1 release file

3.0.29

1 release file

3.0.28

1 release file

3.0.27

1 release file

3.0.26

1 release file

3.0.25

1 release file

3.0.24

1 release file

3.0.23

1 release file

3.0.22

1 release file

3.0.21

1 release file

3.0.20

1 release file

3.0.19

1 release file

3.0.18

1 release file

3.0.17

1 release file

3.0.16

1 release file

3.0.15

1 release file

3.0.14

1 release file

3.0.13

1 release file

3.0.12

1 release file

3.0.11

1 release file

3.0.10

1 release file

3.0.9

1 release file

3.0.8

1 release file

3.0.7

1 release file

3.0.6

1 release file

3.0.5

1 release file

3.0.4

1 release file

3.0.3

1 release file

3.0.2

1 release file

3.0.1

1 release file

3.0.0

1 release file

2.2.0

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page