def action(serveros): for uuid in utils.list_xen_events(): event = utils.get_xen_event(uuid) log.info('Event: {0} -> {1}'.format(uuid, event['name'])) returncode = () if hasattr(serveros, event['name']): cmd = getattr(serveros, event['name']) returncode = cmd(event['name'], event['value']) utils.remove_xenhost_event(uuid) if returncode: utils.update_xenguest_event(uuid, { 'message': returncode[1], 'returncode': returncode[0] }) log.info( 'Returning {{"message": "{1}", "returncode": "{0}"}}'.format( *returncode)) else: utils.update_xenguest_event(uuid, { 'message': '', 'returncode': '0' }) log.info('Returning {"message": "", "returncode": ""}') action(serveros)
def test_list_host_xen_events_popen_exception(self): with mock.patch('novaagent.xenstore.xenstore.Popen', side_effect=ValueError): event_list = utils.list_xen_events(None) self.assertEqual(event_list, [], 'Event list should be an empty list with exception')
def action(server_os, client=None): # Return whether or not to trigger init notification trigger_notify = False xen_events = utils.list_xen_events(client) if len(xen_events) == 0: # if no xen_events then trigger the notification trigger_notify = True for uuid in xen_events: event = utils.get_xen_event(uuid, client) log.info('Event: {0} -> {1}'.format(uuid, event['name'])) command_return = ('', '') if hasattr(server_os, event['name']): run_command = getattr(server_os, event['name']) command_return = run_command(event['name'], event['value'], client) utils.remove_xenhost_event(uuid, client) message = command_return[1] return_code = command_return[0] if command_return[0] == '': return_code = '0' utils.update_xenguest_event(uuid, { 'message': message, 'returncode': return_code }, client) log.info('Returning {{"message": "{0}", "returncode": "{1}"}}'.format( message, return_code)) if event['name'] == 'resetnetwork': # If the network has completed setup then trigger the notification trigger_notify = True return trigger_notify
def action(server_os, client=None): for uuid in utils.list_xen_events(client): event = utils.get_xen_event(uuid, client) log.info('Event: {0} -> {1}'.format(uuid, event['name'])) command_return = ('', '') if hasattr(server_os, event['name']): run_command = getattr(server_os, event['name']) command_return = run_command(event['name'], event['value'], client) utils.remove_xenhost_event(uuid, client) message = command_return[1] return_code = command_return[0] if command_return[0] == '': return_code = '0' utils.update_xenguest_event( uuid, {'message': message, 'returncode': return_code}, client ) log.info( 'Returning {{"message": "{0}", "returncode": "{1}"}}'.format( message, return_code ) )
def test_list_host_xen_events_exception(self): client = ClientTest(None) event_list = utils.list_xen_events(client) self.assertEqual( event_list, [], 'Event list should be an empty list with exception' )
def test_list_host_xen_events(self): check_events = ['748dee41-c47f-4ec7-b2cd-037e51da4031'] client = ClientTest(xen_data.get_xen_host_events()) event_list = utils.list_xen_events(client) self.assertEqual( event_list, check_events, 'Event list does not match expected list' )
def test_list_host_xen_events_failure_popen(self): with mock.patch('novaagent.xenstore.xenstore.Popen') as popen: popen.return_value.communicate.return_value = (b'', '') popen.return_value.returncode = 1 event_list = utils.list_xen_events(None) self.assertEqual( event_list, [], 'Event list does not match expected list after failure')
def test_list_host_xen_events_popen(self): check_events = ['748dee41-c47f-4ec7-b2cd-037e51da4031'] with mock.patch('novaagent.xenstore.xenstore.Popen') as popen: popen.return_value.communicate.return_value = ( utils_data.get_xen_host_events()) popen.return_value.returncode = 0 event_list = utils.list_xen_events(None) self.assertEqual(event_list, check_events, 'Event list does not match expected list')
def action(serveros): for uuid in utils.list_xen_events(): event = utils.get_xen_event(uuid) log.info('Event: {0} -> {1}'.format(uuid, event['name'])) returncode = () if hasattr(serveros, event['name']): cmd = getattr(serveros, event['name']) returncode = cmd(event['name'], event['value']) utils.remove_xenhost_event(uuid) if returncode: utils.update_xenguest_event(uuid, {'message': returncode[1], 'returncode': returncode[0]}) log.info('Returning {{"message": "{1}", "returncode": "{0}"}}'.format(*returncode)) else: utils.update_xenguest_event(uuid, {'message': '', 'returncode': '0'}) log.info('Returning {"message": "", "returncode": ""}') action(serveros)