def _test_create(self, node, ext_status=False): response = node.copy() del response['pm_password'] response['instance_uuid'] = None self.mox.StubOutWithMock(db, 'bm_node_create') db.bm_node_create(self.context, node).AndReturn(response) self.ext_mgr.is_loaded('os-baremetal-ext-status').AndReturn(ext_status) self.mox.ReplayAll() res_dict = self.controller.create(self.request, {'node': node}) self.assertEqual({'node': response}, res_dict)
def create(self, req, body): context = req.environ['nova.context'] authorize(context) node = db.bm_node_create(context, body['node']) node = _node_dict(node) node['interfaces'] = [] return {'node': node}
def create(self, req, body): if _use_ironic(): _no_ironic_proxy("node-create") context = req.environ['nova.context'] authorize(context) values = body['node'].copy() prov_mac_address = values.pop('prov_mac_address', None) if (prov_mac_address is not None and not is_valid_mac(prov_mac_address)): raise webob.exc.HTTPBadRequest( explanation=_("Must specify address " "in the form of xx:xx:xx:xx:xx:xx")) node = db.bm_node_create(context, values) node = self._node_dict(node) if prov_mac_address: if_id = db.bm_interface_create(context, bm_node_id=node['id'], address=prov_mac_address, datapath_id=None, port_no=None) if_ref = db.bm_interface_get(context, if_id) node['interfaces'] = [_interface_dict(if_ref)] else: node['interfaces'] = [] return {'node': node}
def _create_node(self, node_info=None, nic_info=None): result = {} if node_info is None: node_info = bm_db_utils.new_bm_node(id=123, service_host="test_host", cpus=2, memory_mb=2048) if nic_info is None: nic_info = [ {"address": "01:23:45:67:89:01", "datapath_id": "0x1", "port_no": 1}, {"address": "01:23:45:67:89:02", "datapath_id": "0x2", "port_no": 2}, ] result["node_info"] = node_info result["nic_info"] = nic_info result["node"] = db.bm_node_create(self.context, node_info) for nic in nic_info: db.bm_interface_create( self.context, result["node"]["id"], nic["address"], nic["datapath_id"], nic["port_no"] ) result["instance"] = utils.get_test_instance() result["instance"]["node"] = result["node"]["uuid"] result["spawn_params"] = dict( admin_password="******", block_device_info=None, context=self.context, image_meta=utils.get_test_image_info(None, result["instance"]), injected_files=[("/fake/path", "hello world")], instance=result["instance"], network_info=utils.get_test_network_info(), ) result["destroy_params"] = dict( instance=result["instance"], network_info=result["spawn_params"]["network_info"], block_device_info=result["spawn_params"]["block_device_info"], ) return result
def test_create_with_prov_mac_address(self): node = { 'service_host': "host", 'cpus': 8, 'memory_mb': 8192, 'local_gb': 128, 'pm_address': "10.1.2.3", 'pm_user': "******", 'pm_password': "******", 'terminal_port': 8000, 'interfaces': [], } intf = { 'address': '1a:B2:3C:4d:e5:6f', 'datapath_id': None, 'id': None, 'port_no': None, } request = node.copy() request['prov_mac_address'] = intf['address'] db_node = node.copy() db_node['id'] = 100 response = node.copy() response.update(id=db_node['id'], instance_uuid=None, interfaces=[intf]) del response['pm_password'] self.mox.StubOutWithMock(db, 'bm_node_create') self.mox.StubOutWithMock(db, 'bm_interface_create') self.mox.StubOutWithMock(db, 'bm_interface_get') db.bm_node_create(self.context, node).AndReturn(db_node) self.ext_mgr.is_loaded('os-baremetal-ext-status').AndReturn(False) db.bm_interface_create(self.context, bm_node_id=db_node['id'], address=intf['address'], datapath_id=intf['datapath_id'], port_no=intf['port_no']).AndReturn(1000) db.bm_interface_get(self.context, 1000).AndReturn(intf) self.mox.ReplayAll() res_dict = self.controller.create(self.request, {'node': request}) self.assertEqual({'node': response}, res_dict)
def _create_baremetal_stuff(): context = test_utils.get_test_admin_context() node = db.bm_node_create(context, NODE) for nic in NICS: db.bm_interface_create(context, node['id'], nic['address'], nic['datapath_id'], nic['port_no']) return node
def _create_node(self): self.node = db.bm_node_create(self.context, self.node_info) for nic in self.nic_info: db.bm_interface_create( self.context, self.node['id'], nic['address'], nic['datapath_id'], nic['port_no'], ) self.instance['node'] = self.node['id']
def test_create(self): node = { 'service_host': "host", 'cpus': 8, 'memory_mb': 8192, 'local_gb': 128, 'pm_address': "10.1.2.3", 'pm_user': "******", 'pm_password': "******", 'terminal_port': 8000, 'interfaces': [], } response = node.copy() response['id'] = 100 del response['pm_password'] response['instance_uuid'] = None self.mox.StubOutWithMock(db, 'bm_node_create') db.bm_node_create(self.context, node).AndReturn(response) self.mox.ReplayAll() res_dict = self.controller.create(self.request, {'node': node}) self.assertEqual({'node': response}, res_dict)
def test_create(self): node = { "service_host": "host", "cpus": 8, "memory_mb": 8192, "local_gb": 128, "pm_address": "10.1.2.3", "pm_user": "******", "pm_password": "******", "terminal_port": 8000, "interfaces": [], } response = node.copy() response["id"] = 100 del response["pm_password"] response["instance_uuid"] = None self.mox.StubOutWithMock(db, "bm_node_create") db.bm_node_create(self.context, node).AndReturn(response) self.mox.ReplayAll() res_dict = self.controller.create(self.request, {"node": node}) self.assertEqual({"node": response}, res_dict)
def _create_node(self, node_info=None, nic_info=None, ephemeral=True): result = {} if node_info is None: node_info = bm_db_utils.new_bm_node( id=123, service_host='test_host', cpus=2, memory_mb=2048, ) if nic_info is None: nic_info = [ {'address': '01:23:45:67:89:01', 'datapath_id': '0x1', 'port_no': 1}, {'address': '01:23:45:67:89:02', 'datapath_id': '0x2', 'port_no': 2}, ] result['node_info'] = node_info result['nic_info'] = nic_info result['node'] = db.bm_node_create(self.context, node_info) for nic in nic_info: db.bm_interface_create( self.context, result['node']['id'], nic['address'], nic['datapath_id'], nic['port_no'], ) if ephemeral: result['instance'] = utils.get_test_instance() else: flavor = utils.get_test_instance_type(options={'ephemeral_gb': 0}) result['instance'] = utils.get_test_instance(instance_type=flavor) result['instance']['node'] = result['node']['uuid'] result['spawn_params'] = dict( admin_password='******', block_device_info=None, context=self.context, image_meta=utils.get_test_image_info( None, result['instance']), injected_files=[('/fake/path', 'hello world')], instance=result['instance'], network_info=utils.get_test_network_info(), ) result['destroy_params'] = dict( context=self.context, instance=result['instance'], network_info=result['spawn_params']['network_info'], block_device_info=result['spawn_params']['block_device_info'], ) return result
def _create_node(self): self.node = db.bm_node_create(self.context, self.node_info) for nic in self.nic_info: db.bm_interface_create(self.context, self.node["id"], nic["address"], nic["datapath_id"], nic["port_no"]) self.instance["node"] = self.node["id"] self.spawn_params = dict( admin_password="******", block_device_info=self.test_block_device_info, context=self.context, image_meta=utils.get_test_image_info(None, self.instance), injected_files=[("/fake/path", "hello world")], instance=self.instance, network_info=self.test_network_info, )
def _create_nodes(self): nodes = [ utils.new_bm_node(pm_address="0", service_host="host1", memory_mb=100000, cpus=100, local_gb=10000), utils.new_bm_node( pm_address="1", service_host="host2", instance_uuid="A", memory_mb=100000, cpus=100, local_gb=10000 ), utils.new_bm_node(pm_address="2", service_host="host2", memory_mb=1000, cpus=1, local_gb=1000), utils.new_bm_node(pm_address="3", service_host="host2", memory_mb=1000, cpus=2, local_gb=1000), utils.new_bm_node(pm_address="4", service_host="host2", memory_mb=2000, cpus=1, local_gb=1000), utils.new_bm_node(pm_address="5", service_host="host2", memory_mb=2000, cpus=2, local_gb=1000), ] self.ids = [] for n in nodes: ref = db.bm_node_create(self.context, n) self.ids.append(ref["id"])
def create(self, req, body): context = req.environ["nova.context"] authorize(context) values = body["node"].copy() prov_mac_address = values.pop("prov_mac_address", None) node = db.bm_node_create(context, values) node = _node_dict(node) if prov_mac_address: if_id = db.bm_interface_create( context, bm_node_id=node["id"], address=prov_mac_address, datapath_id=None, port_no=None ) if_ref = db.bm_interface_get(context, if_id) node["interfaces"] = [_interface_dict(if_ref)] else: node["interfaces"] = [] return {"node": node}
def _create_node(self): # File injection is off by default, but we should continue to test it # until it is removed. CONF.set_override("use_file_injection", True, "baremetal") self.node = db.bm_node_create(self.context, self.node_info) for nic in self.nic_info: db.bm_interface_create(self.context, self.node["id"], nic["address"], nic["datapath_id"], nic["port_no"]) self.instance["node"] = self.node["id"] self.spawn_params = dict( admin_password="******", block_device_info=self.test_block_device_info, context=self.context, image_meta=utils.get_test_image_info(None, self.instance), injected_files=[("/fake/path", "hello world")], instance=self.instance, network_info=self.test_network_info, )
def create(self, req, body): context = req.environ['nova.context'] authorize(context) values = body['node'].copy() prov_mac_address = values.pop('prov_mac_address', None) node = db.bm_node_create(context, values) node = _node_dict(node) if prov_mac_address: if_id = db.bm_interface_create(context, bm_node_id=node['id'], address=prov_mac_address, datapath_id=None, port_no=None) if_ref = db.bm_interface_get(context, if_id) node['interfaces'] = [_interface_dict(if_ref)] else: node['interfaces'] = [] return {'node': node}
def _create_nodes(self): nodes = [ utils.new_bm_node(pm_address='0', service_host="host1", memory_mb=100000, cpus=100, local_gb=10000), utils.new_bm_node(pm_address='1', service_host="host2", instance_uuid='A', memory_mb=100000, cpus=100, local_gb=10000), utils.new_bm_node(pm_address='2', service_host="host2", memory_mb=1000, cpus=1, local_gb=1000), utils.new_bm_node(pm_address='3', service_host="host2", memory_mb=1000, cpus=2, local_gb=1000), utils.new_bm_node(pm_address='4', service_host="host2", memory_mb=2000, cpus=1, local_gb=1000), utils.new_bm_node(pm_address='5', service_host="host2", memory_mb=2000, cpus=2, local_gb=1000), ] self.ids = [] for n in nodes: ref = db.bm_node_create(self.context, n) self.ids.append(ref['id'])
def _create_node(self): self.node = db.bm_node_create(self.context, self.node_info) for nic in self.nic_info: db.bm_interface_create( self.context, self.node['id'], nic['address'], nic['datapath_id'], nic['port_no'], ) self.instance['node'] = self.node['id'] self.spawn_params = dict( admin_password='******', block_device_info=self.test_block_device_info, context=self.context, image_meta=utils.get_test_image_info(None, self.instance), injected_files=[('/fake/path', 'hello world')], instance=self.instance, network_info=self.test_network_info, )
def _create_node(self): self.node = db.bm_node_create(self.context, self.node_info) for nic in self.nic_info: db.bm_interface_create( self.context, self.node['id'], nic['address'], nic['datapath_id'], nic['port_no'], ) self.instance['node'] = self.node['id'] self.spawn_params = dict( admin_password='******', block_device_info=self.test_block_device_info, context=self.context, image_meta=utils.get_test_image_info(None, self.instance), injected_files=[('/fake/path', 'hello world')], instance=self.instance, network_info=self.test_network_info, )
def _create_nodes(self): nodes = [ utils.new_bm_node(pm_address='0', service_host="host1", memory_mb=100000, cpus=100, local_gb=10000), utils.new_bm_node(pm_address='1', service_host="host2", instance_uuid='A', memory_mb=100000, cpus=100, local_gb=10000), utils.new_bm_node(pm_address='2', service_host="host2", memory_mb=1000, cpus=1, local_gb=1000), utils.new_bm_node(pm_address='3', service_host="host2", memory_mb=1000, cpus=2, local_gb=1000), utils.new_bm_node(pm_address='4', service_host="host2", memory_mb=2000, cpus=1, local_gb=1000), utils.new_bm_node(pm_address='5', service_host="host2", memory_mb=2000, cpus=2, local_gb=1000), ] self.ids = [] for n in nodes: ref = db.bm_node_create(self.context, n) self.ids.append(ref['id'])
def create(self, req, body): context = req.environ['nova.context'] authorize(context) values = body['node'].copy() prov_mac_address = values.pop('prov_mac_address', None) if (prov_mac_address is not None and not is_valid_mac(prov_mac_address)): raise webob.exc.HTTPBadRequest( explanation=_("Must specify address " "in the form of xx:xx:xx:xx:xx:xx")) node = db.bm_node_create(context, values) node = self._node_dict(node) if prov_mac_address: if_id = db.bm_interface_create(context, bm_node_id=node['id'], address=prov_mac_address, datapath_id=None, port_no=None) if_ref = db.bm_interface_get(context, if_id) node['interfaces'] = [_interface_dict(if_ref)] else: node['interfaces'] = [] return {'node': node}
def _create_node(self): # File injection is off by default, but we should continue to test it # until it is removed. CONF.set_override('use_file_injection', True, 'baremetal') self.node = db.bm_node_create(self.context, self.node_info) for nic in self.nic_info: db.bm_interface_create( self.context, self.node['id'], nic['address'], nic['datapath_id'], nic['port_no'], ) self.instance['node'] = self.node['id'] self.spawn_params = dict( admin_password='******', block_device_info=self.test_block_device_info, context=self.context, image_meta=utils.get_test_image_info(None, self.instance), injected_files=[('/fake/path', 'hello world')], instance=self.instance, network_info=self.test_network_info, )
def _create_node(self): # File injection is off by default, but we should continue to test it # until it is removed. CONF.set_override('use_file_injection', True, 'baremetal') self.node = db.bm_node_create(self.context, self.node_info) for nic in self.nic_info: db.bm_interface_create( self.context, self.node['id'], nic['address'], nic['datapath_id'], nic['port_no'], ) self.instance['node'] = self.node['id'] self.spawn_params = dict( admin_password='******', block_device_info=self.test_block_device_info, context=self.context, image_meta=utils.get_test_image_info(None, self.instance), injected_files=[('/fake/path', 'hello world')], instance=self.instance, network_info=self.test_network_info, )
def test_bm_pxe_ip_associate(self): self._create_pxe_ip() node = db.bm_node_create(self.context, utils.new_bm_node()) ip_id = db.bm_pxe_ip_associate(self.context, node['id']) ref = db.bm_pxe_ip_get(self.context, ip_id) self.assertEqual(ref['bm_node_id'], node['id'])
def _create_node(self): self.node = db.bm_node_create(self.context, self.node_info) for nic in self.nic_info: db.bm_interface_create(self.context, self.node["id"], nic["address"], nic["datapath_id"], nic["port_no"]) self.instance["node"] = self.node["id"]
def test_bm_pxe_ip_associate(self): self._create_pxe_ip() node = db.bm_node_create(self.context, utils.new_bm_node()) ip_id = db.bm_pxe_ip_associate(self.context, node['id']) ref = db.bm_pxe_ip_get(self.context, ip_id) self.assertEqual(ref['bm_node_id'], node['id'])
def _create_node(self, node_info=None, nic_info=None, ephemeral=True): result = {} if node_info is None: node_info = bm_db_utils.new_bm_node( id=123, service_host='test_host', cpus=2, memory_mb=2048, ) if nic_info is None: nic_info = [ { 'address': '01:23:45:67:89:01', 'datapath_id': '0x1', 'port_no': 1 }, { 'address': '01:23:45:67:89:02', 'datapath_id': '0x2', 'port_no': 2 }, ] result['node_info'] = node_info result['nic_info'] = nic_info result['node'] = db.bm_node_create(self.context, node_info) for nic in nic_info: db.bm_interface_create( self.context, result['node']['id'], nic['address'], nic['datapath_id'], nic['port_no'], ) if ephemeral: result['instance'] = utils.get_test_instance() else: flavor = utils.get_test_flavor(options={'ephemeral_gb': 0}) result['instance'] = utils.get_test_instance(flavor=flavor) result['instance']['node'] = result['node']['uuid'] result['spawn_params'] = dict( admin_password='******', block_device_info=None, context=self.context, image_meta=utils.get_test_image_info(None, result['instance']), injected_files=[('/fake/path', 'hello world')], instance=result['instance'], network_info=utils.get_test_network_info(), ) result['destroy_params'] = dict( context=self.context, instance=result['instance'], network_info=result['spawn_params']['network_info'], block_device_info=result['spawn_params']['block_device_info'], ) instance = objects.Instance._from_db_object(self.context, objects.Instance(), result['instance']) instance.node = result['node']['uuid'] result['rebuild_params'] = dict( context=self.context, instance=instance, image_meta=utils.get_test_image_info(None, result['instance']), injected_files=[('/fake/path', 'hello world')], admin_password='******', bdms={}, detach_block_devices=self.mox.CreateMockAnything(), attach_block_devices=self.mox.CreateMockAnything(), network_info=result['spawn_params']['network_info'], block_device_info=result['spawn_params']['block_device_info'], ) return result