def run(job, logger=None): if not logger: logger = get_thread_logger(__name__) # if job.status == 'FAILURE': return "", "", "" conn = ConnectionInfo.objects.get(name='servicenow') base_url = "{}://{}:{}".format(conn.protocol, conn.ip, conn.port) for server in job.server_set.all(): job.set_progress('Removing CI {} from ServiceNow'.format( server.hostname)) sysid = lookup_ci_sysid(server.resource_handler_svr_id, base_url, conn, logger) if not sysid: job.set_progress("Unable to locate {} in ServiceNow".format( server.hostname)) return "", "", "" response = delete_ci(sysid, base_url, conn, logger) if 200 < response.status_code >= 300: err = ('Failed to create ServiceNow CI, response from ' 'ServiceNow:\n{}'.format(response.content)) job.set_progress("Unable to remove {} from ServiceNow".format( server.hostname)) logger.error(err) return "", "", ""
def run(job, logger=None): if not logger: logger = get_thread_logger(__name__) # if job.status == 'FAILURE': return "", "", "" conn = ConnectionInfo.objects.get(name='servicenow') base_url = "{}://{}:{}".format(conn.protocol, conn.ip, conn.port) for server in job.server_set.all(): job.set_progress('Removing CI {} from ServiceNow'.format(server.hostname)) sysid = lookup_ci_sysid(server.resource_handler_svr_id, base_url, conn, logger) if not sysid: job.set_progress("Unable to locate {} in ServiceNow".format(server.hostname)) return "", "", "" response = delete_ci(sysid, base_url, conn, logger) if 200 < response.status_code >= 300: err = ( 'Failed to create ServiceNow CI, response from ' 'ServiceNow:\n{}'.format(response.content) ) job.set_progress("Unable to remove {} from ServiceNow".format(server.hostname)) logger.error(err) return "", "", ""
def run(job, logger=None): if not logger: logger = get_thread_logger(__name__) if job.status == 'FAILURE': return "", "", "" conn = ConnectionInfo.objects.get(name='servicenow') assert isinstance(conn, ConnectionInfo) servicenow_url = "{}://{}:{}".format(conn.protocol, conn.ip, conn.port) server = job.server_set.last() # prov job only has one server in set assert isinstance(server, Server) job.set_progress( 'Creating new CI in ServiceNow for server {}'.format(server.hostname)) url = servicenow_url + "/api/now/table/{}".format("cmdb_ci_server") # column names for tables found at System Definition -> Tables table_columns = { 'name': server.hostname, 'company': server.group.name, 'serial_number': server.resource_handler_svr_id, 'asset_tag': server.resource_handler_svr_id, 'operating_system': server.os_build.name, 'os_version': server.os_build.name, 'disk_space': server.disk_size, 'cpu_core_count': server.cpu_cnt, 'u_host_type': 'Virtual Host', 'u_environment': 'No Environment', 'ip_address': server.ip, 'manufacturer': 'VMware', # 'ram': server.mem_size * 1024, 'short_description': 'Created from CloudBolt job ID {}'.format(job.id), } json_data = json.dumps(table_columns) # create the CI response = request_new_ci(json_data, conn, url, logger=logger) if response.status_code != 201: err = ( 'Failed to create ServiceNow CI, response from ' 'ServiceNow:\n{}'.format(response.content) ) return "FAILURE", "", err return "", "", ""
def run(job, logger=None): if not logger: logger = get_thread_logger(__name__) if job.status == 'FAILURE': return "", "", "" conn = ConnectionInfo.objects.get(name='servicenow') assert isinstance(conn, ConnectionInfo) server = job.server_set.last() # prov job only has one server in set assert isinstance(server, Server) job.set_progress( 'Creating new CI in ServiceNow for server {}'.format(server.hostname)) url = servicenow_url + "/api/now/table/{}".format("cmdb_ci_server") # column names for tables found at System Definition -> Tables table_columns = { 'name': server.hostname, 'company': server.group.name, 'serial_number': server.resource_handler_svr_id, 'asset_tag': server.resource_handler_svr_id, 'operating_system': server.os_build.name, 'os_version': server.os_build.name, 'disk_space': server.disk_size, 'cpu_core_count': server.cpu_cnt, 'u_host_type': 'Virtual Host', 'u_environment': 'No Environment', 'ip_address': server.ip, 'manufacturer': 'VMware', # 'ram': server.mem_size * 1024, 'short_description': 'Created from CloudBolt job ID {}'.format(job.id), } json_data = json.dumps(table_columns) # create the CI response = request_new_ci(json_data, conn, url, logger=logger) if response.status_code != 201: err = ( 'Failed to create ServiceNow CI, response from ' 'ServiceNow:\n{}'.format(response.content) ) return "FAILURE", "", err return "", "", ""
""" Functions used by os_info.views """ import json from infrastructure.models import CustomField from utilities.logger import get_thread_logger logger = get_thread_logger(__name__) WIN_SVC_TYPES = { 0x1: ('SERVICE_KERNEL_DRIVER', 'Driver'), 0x2: ('SERVICE_FILE_SYSTEM_DRIVER', 'File System Driver'), 0x10: ('SERVICE_WIN32_OWN_PROCESS', 'Runs in Own Process'), 0x20: ('SERVICE_WIN32_SHARE_PROCESS', 'Shares Process'), 0x100: ('SERVICE_INTERACTIVE_PROCESS', 'Interacts With Desktop') } WIN_SVC_STATES = { 1: ('SERVICE_STOPPED', 'Stopped'), 2: ('SERVICE_START_PENDING', 'Starting'), 3: ('SERVICE_STOP_PENDING', 'Stopping'), 4: ('SERVICE_RUNNING', 'Running'), 5: ('SERVICE_CONTINUE_PENDING', 'Continue Pending'), 6: ('SERVICE_PAUSE_PENDING', 'Pause Pending'), 7: ('SERVICE_PAUSED', 'Paused') } def create_os_info_parameters_if_needed(): """ This UI extension is smart enough to create the CFs it needs. Six fewer steps for admins to do.