def callback_test(ch, method, properties, body):
    body = json.loads(body)
    new_state = body.get('newState')
    prior_state = body.get('data').get('priorState')
    change_type = body.get('changeType')
    resource_uri = body.get('resource').get('uri')
    if new_state == 'Adding' and prior_state == 'Adding':
       LOG.info('ADDED %s ' % resource_uri)
       server_hardware = service_manager.get_server_hardware(resource_uri)
       server_hardware_info = service_manager.parse_server_hardware_to_dict(
                                  server_hardware)
       server_hardware_node = get_ironic_node_by_server_hardware_uri(
                                  resource_uri)
       if server_hardware_node is None:
           try:
               create_server_hardware_as_ironic_node(server_hardware_info)
           except Exception as ex:
               LOG.error(ex.message)
    elif new_state == 'Removing' and prior_state == 'Removing':
       LOG.info('REMOVED %s ' % resource_uri)
       delete_ironic_node(resource_uri)
    elif new_state == 'ProfileApplied' and prior_state == 'ProfileApplied':
       LOG.info('ServerProfile APPLIED to %s' % resource_uri)
       server_hardware = service_manager.get_server_hardware(resource_uri)
       server_hardware_info = service_manager.parse_server_hardware_to_dict(
                                  server_hardware)
       update_ironic_node_maintenance_state(server_hardware_info)
    elif new_state == 'NoProfileApplied' and prior_state == 'NoProfileApplied':
       LOG.info('ServerProfile REMOVED from %s' % resource_uri)
       server_hardware = service_manager.get_server_hardware(resource_uri)
       server_hardware_info = service_manager.parse_server_hardware_to_dict(
                                 server_hardware)
       update_ironic_node_maintenance_state(server_hardware_info)
 def test_delete_ironic_node(self):
     server_hardware_uri = "/rest/server-hardware/31393736-3831-4753-4831-30315837524E"
     server_hardware_json = service_manager.get_server_hardware(server_hardware_uri)
     server_hardware_info = service_manager.parse_server_hardware_to_dict(server_hardware_json)
     node = manage_ironic_nodes.create_ironic_node(server_hardware_info)
     manage_ironic_nodes.delete_ironic_node(server_hardware_uri)
     assert manage_ironic_nodes.get_ironic_node_by_server_hardware_uri(server_hardware_uri) is None
 def test_create_ironic_node(self):
     server_hardware_uri = "/rest/server-hardware/37333036-3831-4753-4831-30305838524E"
     server_hardware_json = service_manager.get_server_hardware(server_hardware_uri)
     server_hardware_info = service_manager.parse_server_hardware_to_dict(server_hardware_json)
     node = manage_ironic_nodes.create_ironic_node(server_hardware_info)
     assert node is not None
     manage_ironic_nodes.delete_ironic_node(server_hardware_uri)
Exemplo n.º 4
0
 def test_create_ironic_node(self):
     server_hardware_uri = '/rest/server-hardware/37333036-3831-4753-4831-30305838524E'
     server_hardware_json = service_manager.get_server_hardware(
         server_hardware_uri)
     server_hardware_info = service_manager.parse_server_hardware_to_dict(
         server_hardware_json)
     node = manage_ironic_nodes.create_ironic_node(server_hardware_info)
     assert node is not None
     manage_ironic_nodes.delete_ironic_node(server_hardware_uri)
Exemplo n.º 5
0
 def test_delete_ironic_node(self):
     server_hardware_uri = '/rest/server-hardware/31393736-3831-4753-4831-30315837524E'
     server_hardware_json = service_manager.get_server_hardware(
         server_hardware_uri)
     server_hardware_info = service_manager.parse_server_hardware_to_dict(
         server_hardware_json)
     node = manage_ironic_nodes.create_ironic_node(server_hardware_info)
     manage_ironic_nodes.delete_ironic_node(server_hardware_uri)
     assert manage_ironic_nodes.get_ironic_node_by_server_hardware_uri(
         server_hardware_uri) is None
 def test_maintenance_state_out(self):
     server_hardware_uri = "/rest/server-hardware/31393736-3831-4753-4831-30305837524E"
     server_hardware_json = service_manager.get_server_hardware(server_hardware_uri)
     server_hardware_info = service_manager.parse_server_hardware_to_dict(server_hardware_json)
     manage_ironic_nodes.create_ironic_node(server_hardware_info)
     manage_ironic_nodes.set_node_maintenance_state(server_hardware_uri, "true")
     node = manage_ironic_nodes.get_ironic_node_by_server_hardware_uri(server_hardware_uri)
     self.assertTrue(node.maintenance)
     manage_ironic_nodes.set_node_maintenance_state(server_hardware_uri, "false")
     node = manage_ironic_nodes.get_ironic_node_by_server_hardware_uri(server_hardware_uri)
     self.assertFalse(node.maintenance)
     manage_ironic_nodes.delete_ironic_node(server_hardware_uri)
def create_ironic_nodes():
    new_server_hardwares = _get_new_ov_server_hardwares()

    for server_hardware in new_server_hardwares:
        server_hardware_info = service_manager.parse_server_hardware_to_dict(
                                   server_hardware)
        create_server_hardware_as_ironic_node(server_hardware_info)
    ironic_client = service_manager.get_ironic_client()
    old_server_hardwares = _get_old_ov_server_hardwares()
    nodes = ironic_client.node.list()

    for server_hardware in old_server_hardwares:
        is_hardware_available = server_hardware_info.get(
                                    'server_profile_uri') is not None
        if is_hardware_available:
            update_ironic_node_maintenance_state(server_hardware, nodes)
Exemplo n.º 8
0
 def test_maintenance_state_out(self):
     server_hardware_uri = '/rest/server-hardware/31393736-3831-4753-4831-30305837524E'
     server_hardware_json = service_manager.get_server_hardware(
         server_hardware_uri)
     server_hardware_info = service_manager.parse_server_hardware_to_dict(
         server_hardware_json)
     manage_ironic_nodes.create_ironic_node(server_hardware_info)
     manage_ironic_nodes.set_node_maintenance_state(server_hardware_uri,
                                                    'true')
     node = manage_ironic_nodes.get_ironic_node_by_server_hardware_uri(
         server_hardware_uri)
     self.assertTrue(node.maintenance)
     manage_ironic_nodes.set_node_maintenance_state(server_hardware_uri,
                                                    'false')
     node = manage_ironic_nodes.get_ironic_node_by_server_hardware_uri(
         server_hardware_uri)
     self.assertFalse(node.maintenance)
     manage_ironic_nodes.delete_ironic_node(server_hardware_uri)
def update_ironic_nodes_maintenance_state():
    old_server_hardwares = _get_old_ov_server_hardwares()
    for server_hardware in old_server_hardwares:
        server_hardware_info = service_manager.parse_server_hardware_to_dict(
                                    server_hardware)
        update_ironic_node_maintenance_state(server_hardware_info)