Added initial osTicket files
This commit is contained in:
parent
752944f741
commit
df2a7c03c1
1 changed files with 113 additions and 0 deletions
113
scripts/wk/ost.py
Normal file
113
scripts/wk/ost.py
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
"""WizardKit: osTicket Functions"""
|
||||
# vim: sts=2 sw=2 ts=2
|
||||
|
||||
import atexit
|
||||
import socket
|
||||
|
||||
import mysql.connector as mariadb
|
||||
|
||||
|
||||
# Classes
|
||||
class osTicket(): # pylint: disable=invalid-name
|
||||
"""Class to track osTicket data and functions."""
|
||||
def __init__(self):
|
||||
self.db_connection = None
|
||||
self.db_cursor = None
|
||||
self.disabled = False
|
||||
self.tunnel_proc = None
|
||||
|
||||
def connect(self, silent=True):
|
||||
"""Establish connection to osTicket via SSH tunnel."""
|
||||
# TODO connect
|
||||
|
||||
def convert_report(self, name, report):
|
||||
"""Convert report into an osTicket friendly format, returns list."""
|
||||
out_report = []
|
||||
#TODO: Convert report
|
||||
|
||||
def disconnect(self):
|
||||
"""Close osTicket connection."""
|
||||
# TODO: disconnect
|
||||
|
||||
def get_flag(self, ticket_id, flag_name):
|
||||
"""Get flag for ticket_id from osTicket, returns int."""
|
||||
# TODO Get flag value, is it a consistent type? ^^
|
||||
|
||||
def get_ticket_id(self):
|
||||
"""Get ticket number and name from osTicket DB."""
|
||||
# TODO Get ticket number and name, save to self
|
||||
|
||||
def get_ticket_field(self, ticket_id, field):
|
||||
"""Get field for ticket_id from osTicket, returns str."""
|
||||
# TODO: Get ticket field
|
||||
|
||||
def set_cpu_failed(self, ticket_id):
|
||||
"""Set CPU as failed in osTicket for ticket_id."""
|
||||
# TODO Set CPU failed
|
||||
|
||||
def set_cpu_passed(self, ticket_id):
|
||||
"""Set CPU as passed in osTicket for ticket_id.
|
||||
|
||||
NOTE: This will not overwrite a failed status.
|
||||
"""
|
||||
# TODO Set CPU passed
|
||||
|
||||
def set_disk_failed(self, ticket_id):
|
||||
"""Set disk as failed in osTicket for ticket_id."""
|
||||
# TODO Set disk failed
|
||||
|
||||
def set_disk_passed(self, ticket_id):
|
||||
"""Set disk as passed in osTicket for ticket_id.
|
||||
|
||||
NOTE: This will not overwrite a failed status.
|
||||
"""
|
||||
# TODO Set disk passed
|
||||
|
||||
def set_flag(self, ticket_id, flag_name, flag_value):
|
||||
"""Set flag_name to flag_value for ticket_id in osTicket.
|
||||
|
||||
NOTE: This will overwrite any existing value.
|
||||
"""
|
||||
# TODO: Set flag value
|
||||
|
||||
|
||||
# Functions
|
||||
def get_test_station_name():
|
||||
"""Get test station name from hostname, returns str.
|
||||
|
||||
NOTES: This is quite broad and may include false-positives.
|
||||
If not a test station then an empty string is returned.
|
||||
"""
|
||||
hostname = socket.getfqdn()
|
||||
|
||||
# Check if this is a test station
|
||||
if TEST_STATIONS['Domain'] in hostname:
|
||||
hostname = hostname.replace(TEST_STATIONS['Domain'], '')
|
||||
if hostname.lower() in TEST_STATIONS['Known Names']:
|
||||
hostname = TEST_STATIONS['Known Names'][hostname.lower()]
|
||||
else:
|
||||
hostname = ''
|
||||
|
||||
# Done
|
||||
return hostname
|
||||
|
||||
|
||||
def pad_with_dots(text, pad_right=False):
|
||||
"""Replace space padding with dots, returns str.
|
||||
|
||||
NOTE: This is a dumb hack to better align text in osTicket.
|
||||
"""
|
||||
text = str(text)
|
||||
text = text.replace(' ', '..')
|
||||
if '.' in text:
|
||||
if pad_right:
|
||||
text = f'{text}.'
|
||||
else:
|
||||
text = f'.{text}'
|
||||
|
||||
# Done
|
||||
return text
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print("This file is not meant to be called directly.")
|
||||
Loading…
Reference in a new issue