From 73ef595be62072032335b007fafa128c17ae9048 Mon Sep 17 00:00:00 2001 From: Santiago Gonzalez Toral Date: Fri, 5 Jun 2020 12:57:06 -0500 Subject: [PATCH] Enable local_mode on actions --- actions/actions.py | 27 ++++++++++++++------------ actions/actions_helpdesk.py | 38 ++++++++++++++++++------------------- actions/actions_internal.py | 27 +++++++++++++++----------- 3 files changed, 50 insertions(+), 42 deletions(-) diff --git a/actions/actions.py b/actions/actions.py index 23e266b..2017ccb 100644 --- a/actions/actions.py +++ b/actions/actions.py @@ -16,7 +16,7 @@ logger = logging.getLogger(__name__) glpi_api_uri, glpi_app_token, glpi_auth_token, local_mode = load_glpi_config() -glpi = GLPIService.get_instance(glpi_api_uri, glpi_app_token, glpi_auth_token) +glpi = GLPIService.get_instance(glpi_api_uri, glpi_app_token, glpi_auth_token) if not local_mode else None class ComputeResourceForm(FormAction): @@ -253,19 +253,22 @@ def submit( ] if tracker.get_slot(EntitySlotEnum.CONFIRM): + # priorities = GLPIService.priority_values() + # priority_values = list(priorities.keys()) + # glpi_priority = priorities[priority_values[1]] # media + ticket: Ticket = Ticket({ + 'username': 'normal', # TODO: set the actual logged in user + 'title': 'Peticion de Maquina Virtual', + 'description': remove_accents(request_description), + # 'priority': glpi_priority + 'itilcategories_id': 54 # Equipos de computo + }) if local_mode: - ticket_id: Text = "{:04d}".format(random.randint(1, 1000)) + dispatcher.utter_message(f"This action would create a ticket with params: {ticket}") + # ticket_id: Text = "{:04d}".format(random.randint(1, 1000)) + ticket_id: Text = "DUMMY" + events.append(SlotSet(EntitySlotEnum.TICKET_NO, ticket_id)) else: # TODO: integrate with GLPI - # priorities = GLPIService.priority_values() - # priority_values = list(priorities.keys()) - # glpi_priority = priorities[priority_values[1]] # media - ticket: Ticket = Ticket({ - 'username': 'normal', # TODO: set the actual logged in user - 'title': 'Peticion de Maquina Virtual', - 'description': remove_accents(request_description), - # 'priority': glpi_priority - 'itilcategories_id': 54 # Equipos de computo - }) try: response = glpi.create_ticket(ticket, ticket_type=2) # Solicitud ticket_id = response['id'] diff --git a/actions/actions_helpdesk.py b/actions/actions_helpdesk.py index 11d433e..2f5c665 100644 --- a/actions/actions_helpdesk.py +++ b/actions/actions_helpdesk.py @@ -15,7 +15,7 @@ logger = logging.getLogger(__name__) glpi_api_uri, glpi_app_token, glpi_auth_token, local_mode = load_glpi_config() -glpi = GLPIService.get_instance(glpi_api_uri, glpi_app_token, glpi_auth_token) +glpi = GLPIService.get_instance(glpi_api_uri, glpi_app_token, glpi_auth_token) if not local_mode else None class OpenIncidentForm(FormAction): @@ -155,29 +155,29 @@ def submit( SlotSet(EntitySlotEnum.CONFIRM, None)] if tracker.get_slot(EntitySlotEnum.CONFIRM): + # Check priority and set number value accordingly + # priorities = GLPIService.priority_values() + # priority_values = list(priorities.keys()) + # if priority in priority_values: + # glpi_priority = priorities[priority] + # else: + # logger.warning(f'Priority value not found: {priority}. Setting it to default: (media)') + # glpi_priority = priorities[priority_values[1]] + + ticket: Ticket = Ticket({ + 'username': 'normal', # TODO: set the actual logged in user + 'title': incident_title, + 'description': remove_accents(incident_description), + # 'priority': glpi_priority + 'itilcategories_id': int(itilcategory_id), + 'alternative_email': email # TODO: set as conditional if username is not logged in + }) if local_mode: + dispatcher.utter_message(f"This action would create a ticket with params: {ticket}") ticket_id = "DUMMY" events.append(SlotSet(EntitySlotEnum.TICKET_NO, ticket_id)) else: # TODO: integrate with GLPI - # Check priority and set number value accordingly - # priorities = GLPIService.priority_values() - # priority_values = list(priorities.keys()) - # if priority in priority_values: - # glpi_priority = priorities[priority] - # else: - # logger.warning(f'Priority value not found: {priority}. Setting it to default: (media)') - # glpi_priority = priorities[priority_values[1]] - - ticket: Ticket = Ticket({ - 'username': 'normal', # TODO: set the actual logged in user - 'title': incident_title, - 'description': remove_accents(incident_description), - # 'priority': glpi_priority - 'itilcategories_id': int(itilcategory_id), - 'alternative_email': email # TODO: set as conditional if username is not logged in - }) - # logger.info(f'Ticket to be created: {ticket}') try: response = glpi.create_ticket(ticket) ticket_id = response['id'] diff --git a/actions/actions_internal.py b/actions/actions_internal.py index 6f7af49..ebf790a 100644 --- a/actions/actions_internal.py +++ b/actions/actions_internal.py @@ -16,7 +16,7 @@ logger = logging.getLogger(__name__) glpi_api_uri, glpi_app_token, glpi_auth_token, local_mode = load_glpi_config() -glpi = GLPIService.get_instance(glpi_api_uri, glpi_app_token, glpi_auth_token) +glpi = GLPIService.get_instance(glpi_api_uri, glpi_app_token, glpi_auth_token) if not local_mode else None class BiometricsReportForm(FormAction): @@ -152,16 +152,21 @@ def submit( 'itilcategories_id': 60 # Reporte de datos }) - try: - response = glpi.create_ticket(ticket, ticket_type=2) # Solicitud - ticket_id = response['id'] - # This is not actually required as its value is sent directly to the utter_message + if local_mode: + dispatcher.utter_message(f"This action would create a ticket with params: {ticket}") + ticket_id = 'DUMMY' events.append(SlotSet(EntitySlotEnum.TICKET_NO, ticket_id)) - except GlpiException as e: - logger.error("Error when trying to create a ticket", e) - logger.error(f"Ticket: {ticket}") - dispatcher.utter_message(template=UtteranceEnum.PROCESS_FAILED) - return events + else: + try: + response = glpi.create_ticket(ticket, ticket_type=2) # Solicitud + ticket_id = response['id'] + # This is not actually required as its value is sent directly to the utter_message + events.append(SlotSet(EntitySlotEnum.TICKET_NO, ticket_id)) + except GlpiException as e: + logger.error("Error when trying to create a ticket", e) + logger.error(f"Ticket: {ticket}") + dispatcher.utter_message(template=UtteranceEnum.PROCESS_FAILED) + return events dispatcher.utter_message(template=UtteranceEnum.TICKET_NO, ticket_no=ticket_id) dispatcher.utter_message(template=UtteranceEnum.CONFIRM_REQUEST) # dispatcher.utter_message( @@ -169,4 +174,4 @@ def submit( # + f"ID: {personal_id} BIO_ID: {biometrics_id}" # ) # return [AllSlotsReset()] - return events \ No newline at end of file + return events