django-snow is a django app to manage ServiceNow tickets from within a django project.
pip install django-snow
django-snow requires the following settings to be set in your Django settings:
SNOW_INSTANCE
- The ServiceNow instance where the tickets should be createdSNOW_API_USER
- The ServiceNow API UserSNOW_API_PASS
- The ServiceNow API User's PasswordSNOW_ASSIGNMENT_GROUP
(Optional) - The group to which the tickets should be assigned. If this is not provided, each call to create the tickets should be provided with an assignment_group argument. See the API documentation for more detailsSNOW_DEFAULT_CHANGE_TYPE
(Optional) - Default Change Request Type. If not provided, standard will considered as the default type.
ChangeRequestHandler.create_change_request
has the following parameters and return value:
Parameters
title
- The title of the change requestdescription
- The description of the change requestassignment_group
- The group to which the change request is to be assigned. This is optional ifSNOW_ASSIGNMENT_GROUP
django settings is available, else, it is mandatorypayload
(Optional) - The payload for creating the Change Request.
Returns
ChangeRequest
model - The model created from the created Change Order.
Example
from django_snow.helpers import ChangeRequestHandler
def change_data(self):
co_handler = ChangeRequestHandler()
change_request = co_handler.create_change_request('Title', 'Description', 'assignment_group')
ChangeRequestHandler.update_change_request
method signature:
Parameters
change_request
- TheChangeRequest
Modelpayload
- The payload to pass to the ServiceNow REST API.
Example
from django_snow.models import ChangeRequest
from django_snow.helpers import ChangeRequestHandler
def change_data(self):
change_request = ChangeRequest.objects.filter(...)
co_handler = ChangeRequestHandler()
payload = {
'description': 'updated description',
'state': ChangeRequest.TICKET_STATE_IN_PROGRESS
}
co_handler.update_change_request(change_request, payload)
ChangeRequestHandler.close_change_request
has the following signature:
Parameters
change_request
- TheChangeRequest
Model representing the Change Order to be closed.
Example
from django_snow.models import ChangeRequest
from django_snow.helpers import ChangeRequestHandler
def change_data(self):
change_request = ChangeRequest.objects.filter(...)
co_handler = ChangeRequestHandler()
co_handler.close_change_request(change_request)
ChangeRequestHandler.close_change_request_with_error
method signature:
Parameters
change_request
- TheChangeRequest
Model representing the Change Order to be closed with errorpayload
- The payload to pass to the ServiceNow REST API.
Example
from django_snow.models import ChangeRequest
from django_snow.helpers import ChangeRequestHandler
def change_data(self):
change_request = ChangeRequest.objects.filter(...)
co_handler = ChangeRequestHandler()
payload = {
'description': 'updated description',
'title': 'foo'
}
co_handler.close_change_request_with_error(change_request, payload)
The ChangeRequest
model has the following attributes:
sys_id
- The sys_id of the Change Request.number
- Change Request Number.title
- The title of the Change Request a.k.a short_description.description
- Description for the change requestassignment_group_guid
- The GUID of the group to which the Change Request is assigned tostate
- The State of the Change Request. Can be any one of the followingChangeRequest
's constants:TICKET_STATE_OPEN
- '1'TICKET_STATE_IN_PROGRESS
- '2'TICKET_STATE_COMPLETE
- '3'TICKET_STATE_COMPLETE_WITH_ERRORS
- '4'
- Change Requests