Sample: create a change request
The following example shows how to create a change request in Python version 3.8.17
Note: Before using this example, replace the username, password, and ticket source values with your own values.
You may have to remove some manual line breaks.
import ssl
from suds.client import Client
AlgoSecServer = '10.20.6.88'
AlgoSecUser = 'user'
AlgoSecPasswd = 'password'
TicketSource = '125.125.22.11'
TicketDest = '10.0.0.0/8'
# Action - 0 for drop, 1 for allow
TicketAction = '0'
TicketService = '*'
ActionStr = 'Allow'
ActionStr = 'Allow' if TicketAction == '1' else 'Drop'
# bypass ssl verification - needed only if using self-signed certificates (demo machine, etc.)
# ssl._create_default_https_context = ssl._create_unverified_context
# ALGOSEC AFF WSDL is available here 'https://AFFIP/WebServices/FireFlow.wsdl'
AFF_WSDL = 'https://%s/WebServices/FireFlow.wsdl' % AlgoSecServer
# Setup client
client = Client(AFF_WSDL)
try:
# Authenticate
authenticate = client.service.authenticate(username=AlgoSecUser, password=AlgoSecPasswd)
# Create ticket and traffic lines objects
print("Creating change request with source <%s> destination <%s> service <%s> and action <%s>" %
(TicketSource, TicketDest, TicketService, ActionStr))
ticket = client.factory.create('ticket')
trafficLine = client.factory.create('trafficLine')
src = client.factory.create('trafficAddress')
src.address = TicketSource
trafficLine.trafficSource.append(src)
dst = client.factory.create('trafficAddress')
dst.address = TicketDest
trafficLine.trafficDestination.append(dst)
srv = client.factory.create('trafficService')
srv.service = TicketService
trafficLine.trafficService.append(srv)
trafficLine.action = TicketAction
ticket.trafficLines.append(trafficLine)
ticket.description = 'Demo Ticket'
ticket.requestor = '[email protected]'
ticket.subject = '%s Traffic from %s to %s' % (ActionStr, TicketSource, TicketDest)
except:
print("A problem occurred")
# Actually create the ticket
try:
ticket_added = client.service.createTicket(sessionId = authenticate.sessionId, ticket = ticket)
except:
print(ticket_added.message)
# Print success message and ticket URL
print(ticket_added.message)
print(ticket_added.ticketDisplayURL)