Skip to main content

SNOW JSON API access

Project description

pyfnalsnow

This module provides Python libraries and scripts to interact with Service Now. This was designed to work with a specific instance of SNOW (FNAL), but these scripts and libraries will probably work with other sites, so it's worth sharing.

Scripts

Create: snow-incident-create, snow-ritm-create

Create Incidents and Requests/Requested Items, respectfully. These work directly with the REST API.

Read: snow-incident-list, snow-ritm-list, snow-tkt, snow-tkt-list

Scripts to search and list Incident and Requested Items, respectfully. snow-tkt-list calls both.

snow-tkt takes a ticket name and prints information about that ticket on STDOUT.

Update: many scripts

Most of these do what they say on the tin:

  • snow-tkt-assign - assign a ticket to a user and/or group
  • snow-tkt-journal - record a journal entry or comment to a ticket
  • snow-tkt-pending - set a ticket to status pending (mostly for RITMs)
  • snow-tkt-resolve - resolve a ticket
  • snow-tkt-unassign - assign a ticket back to the Help Desk

Delete: No Such Thing

Data doesn't generally get removed from SNOW, at least not by users.

libraries

pyfnalsnow

Creates and caches the connections to SNOW; caches searches; provides the CRUD interface that the various scripts depend on; provides tools for user/group searches; abstracts out the various ticket types (Incidents, Requests, Tasks, Requested Items, etc); and works with a central configuration file (/etc/snow/config.yaml) so that we can abstract server/authentication data away from the user.

pyfnalsnow.ticket

This mostly provides template functions for the various sub-tables (e.g. Incident): printing functions, mapping some functions to field names, etc.

pyfnalsnow.Incident, pyfnalsnow.Request, pyfnalsnow.RITM

Functions that must be customized per-table are stored here; for instance, RITMs must change state several times to get to a pending or resolved state.

Requirements

This script requires pysnow. I would probably just update it directly except that I don't know for sure what changes we have made locally that don't apply to the "default" instance.

To make this work on RHEL6 and a modern pysnow you probably want to install oauthlib 2.0.7: pip install oauthlib==2.0.7.

Configuration File

/etc/snow/config.yaml looks something like:

servicenow:
    username: '(USERNAME)'
    url:      'https://(SITENAME).servicenowservices.com/'
    password: '(PASSWORD)'
    hostname: '(SITENAME).servicenowservices.com'

ritm_template:
    priority: '3'
    u_categorization: 'Hardware -- Worker Node -- No Item Available'
    urgency: '3'

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfnalsnow-1.4.5.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

pyfnalsnow-1.4.5-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file pyfnalsnow-1.4.5.tar.gz.

File metadata

  • Download URL: pyfnalsnow-1.4.5.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for pyfnalsnow-1.4.5.tar.gz
Algorithm Hash digest
SHA256 095ef5a80e8732ddbc954bb3e741b6fa4a3865cb1ec1a99d0d62806e762287db
MD5 d1aaf581a361d81a974b06ad0b422b28
BLAKE2b-256 3275937674d6582367716a6c161592a6cb9951c00333876e6a45a800ff6dde67

See more details on using hashes here.

File details

Details for the file pyfnalsnow-1.4.5-py3-none-any.whl.

File metadata

  • Download URL: pyfnalsnow-1.4.5-py3-none-any.whl
  • Upload date:
  • Size: 13.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8

File hashes

Hashes for pyfnalsnow-1.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4f65fe03ffecc6cfeaf97e0176523f4dcb5c0f35f5300f3373e573fbc9caa2e0
MD5 6151dcc5875639f52c239459644879de
BLAKE2b-256 fd8e21e308af9e14fb6009011da9ed0cadd3830514d0f83e835f9486a155c764

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page