django-snow is a django app to manage ServiceNow tickets from within a django project.
This project is no longer maintained, and is welcoming new maintainers. If you would like to take over development of this project, please contact oss@godaddy.com.
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_GROUPdjango 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- TheChangeRequestModelpayload- 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- TheChangeRequestModel 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- TheChangeRequestModel 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