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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 095ef5a80e8732ddbc954bb3e741b6fa4a3865cb1ec1a99d0d62806e762287db |
|
MD5 | d1aaf581a361d81a974b06ad0b422b28 |
|
BLAKE2b-256 | 3275937674d6582367716a6c161592a6cb9951c00333876e6a45a800ff6dde67 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f65fe03ffecc6cfeaf97e0176523f4dcb5c0f35f5300f3373e573fbc9caa2e0 |
|
MD5 | 6151dcc5875639f52c239459644879de |
|
BLAKE2b-256 | fd8e21e308af9e14fb6009011da9ed0cadd3830514d0f83e835f9486a155c764 |