def test_network_pool(self): environment = Environment.create('test_env2') self.assertEqual('10.0.0.0/24', str(Network.network_create( environment=environment, name='internal', pool=None).ip_network)) self.assertEqual('10.0.1.0/24', str(Network.network_create( environment=environment, name='external', pool=None).ip_network)) self.assertEqual('10.0.2.0/24', str(Network.network_create( environment=environment, name='private', pool=None).ip_network)) environment = Environment.create('test_env2') self.assertEqual('10.0.3.0/24', str(Network.network_create( environment=environment, name='internal', pool=None).ip_network)) self.assertEqual('10.0.4.0/24', str(Network.network_create( environment=environment, name='external', pool=None).ip_network)) self.assertEqual('10.0.5.0/24', str(Network.network_create( environment=environment, name='private', pool=None).ip_network))
def test_network_model(self): environment = Environment.create('test_env') node = Node.objects.create( group=None, name='test_node', role='default', ) pool = IpNetworksPool(networks=[IPNetwork('10.1.0.0/24')], prefix=24) address_pool = AddressPool.address_pool_create(environment=environment, name='internal', pool=pool) l2_net_dev = L2NetworkDevice.objects.create(group=None, address_pool=address_pool, name='test_l2_dev') interface1 = Interface.interface_create(l2_network_device=l2_net_dev, node=node, label='eth0') assert interface1.model == 'virtio' interface2 = Interface.interface_create(l2_network_device=l2_net_dev, node=node, label='eth0', model='e1000') assert interface2.model == 'e1000'
def test_create_node3(self): environment = Environment.create('test_env3') internal = Network.network_create(environment=environment, name='internal', pool=None) external = Network.network_create(environment=environment, name='external', pool=None) private = Network.network_create(environment=environment, name='private', pool=None) node = Node.node_create(name='test_node', environment=environment) Interface.interface_create(node=node, network=internal) Interface.interface_create(node=node, network=external) Interface.interface_create(node=node, network=private) volume = Volume.volume_get_predefined( '/var/lib/libvirt/images/disk-135824657433.qcow2') v3 = Volume.volume_create_child('test_vp892', backing_store=volume, environment=environment) v4 = Volume.volume_create_child('test_vp891', backing_store=volume, environment=environment) DiskDevice.node_attach_volume(node=node, volume=v3) DiskDevice.node_attach_volume(node, v4) environment.define()
def setUp(self): super(TestLibvirtL2NetworkDevice, self).setUp() self.env = Environment.create('test_env') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.libvirt', connection_string='test:///default') self.ap = self.env.add_address_pool( name='test_ap', net='172.0.0.0/16:24', tag=0, ip_reserved=dict(l2_network_device='172.0.0.1'), ) self.net_pool = self.group.add_network_pool( name='fuelweb_admin', address_pool_name='test_ap', ) self.l2_net_dev = self.group.add_l2_network_device( name='test_l2_net_dev', forward=dict(mode='nat'), address_pool='test_ap', ) self.d = self.group.driver
def test_snapshot_with_existing_name_force_delete(self, mock_has_snapshot, mock_delete_snapshot, mock_create_snapshot): mock_has_snapshot.return_value = True environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) environment.define() snap_name = factories.fuzzy_string('snap_') snap_description = factories.fuzzy_string('description_') node.snapshot( name=snap_name, force=True, description=snap_description, disk_only=True) self.assertEqual(mock_delete_snapshot.called, True) mock_delete_snapshot.assert_called_with(node=node, name=snap_name) mock_create_snapshot.assert_called_with( node=node, name=snap_name, description=snap_description, disk_only=True, external=False)
def test_node_creation(self): environment = Environment.create('test_env3') internal = Network.network_create( environment=environment, name='internal', pool=None) node = Node.node_create(name='test_node', environment=environment) Interface.interface_create(node=node, network=internal) environment.define()
def test_external_snapshot_revert_with_children_revert_present( self, mock_revert_snapshot_recreate_disks, mock_revert_snapshot, mock_get_snapshot, mock_has_snapshot, mock_destroy, mock_update_disks_from_snapshot): revert_postfix = '-revert3' def get_snapshot(node, snapname): if snapname.endswith(revert_postfix): return mock.Mock(get_type='external', children_num=0) else: return mock.Mock(get_type='external', children_num=1) mock_has_snapshot.return_value = True mock_get_snapshot.side_effect = get_snapshot environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) environment.define() snapshot_name = factories.fuzzy_string('snap_') node.revert(name=snapshot_name, destroy=False) revert_snapshot_name = '{0}{1}'.format(snapshot_name, revert_postfix) mock_update_disks_from_snapshot.assert_called_with( revert_snapshot_name) mock_revert_snapshot_recreate_disks.assert_called_with( node, revert_snapshot_name) mock_revert_snapshot.assert_called_with(node=node, name=revert_snapshot_name)
def setUp(self): super(TestLibvirtVolume, self).setUp() self.sleep_mock = self.patch('devops.helpers.retry.sleep') self.open_mock = mock.mock_open(read_data='image_data') self.patch('devops.driver.libvirt.libvirt_driver.open', self.open_mock, create=True) self.os_mock = self.patch('devops.helpers.helpers.os') Size = collections.namedtuple('Size', ['st_size']) self.file_sizes = { '/tmp/admin.iso': Size(st_size=500), } self.os_mock.stat.side_effect = self.file_sizes.get self.env = Environment.create('test_env') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.libvirt.libvirt_driver', connection_string='test:///default', storage_pool_name='default-pool') self.node = self.group.add_node( name='test_node', role='default', architecture='i686', hypervisor='test', ) self.d = self.group.driver
def test_update_disks_from_snapshot_with_children( self, mock_has_snapshot, mock_volume_define, mock_libvirt_version, mock_get_snapshot, mock_create_snapshot): mock_has_snapshot.return_value = False mock_libvirt_version.return_value = 1002012 volume_path_template = '/var/lib/libvirt/images/{0}' environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) vol_volume_name = factories.fuzzy_string() vol = Volume.volume_create(vol_volume_name, capacity=1000000000, format='qcow2', environment=environment) vol.uuid = volume_path_template.format(vol_volume_name) DiskDevice.node_attach_volume(node=node, volume=vol) environment.define() snap_name = factories.fuzzy_string('snap_') snap_description = factories.fuzzy_string('description_') snapshot_volume_name = '{0}.{1}'.format(vol_volume_name, snap_name) mock_get_snapshot.return_value = mock.Mock( get_type='external', children_num=1, disks={'sda': volume_path_template.format(snap_name)}) node.snapshot(name=snap_name, description=snap_description, external=True) vol1 = environment.get_volume(name=snapshot_volume_name) vol1.uuid = volume_path_template.format(snap_name) vol1.save() node._update_disks_from_snapshot(snap_name) self.assertEqual(node.disk_devices[0].volume, vol)
def test_external_snapshot( self, mock_has_snapshot, mock_create_volume, mock_libvirt_version, mock_create_snapshot): mock_has_snapshot.return_value = False mock_libvirt_version.return_value = 1002012 environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) vol_volume_name = factories.fuzzy_string() vol = Volume.volume_create(vol_volume_name, capacity=1000000000, format='qcow2', environment=environment) DiskDevice.node_attach_volume(node=node, volume=vol) environment.define() snap_name = factories.fuzzy_string('snap_') snap_description = factories.fuzzy_string('description_') node.snapshot(name=snap_name, description=snap_description, external=True) mock_create_volume.assert_called_with(snap_name) mock_create_snapshot.assert_called_with( node=node, name=snap_name, description=snap_description, disk_only=False, external=True)
def test_external_snapshot_volume_creation(self, mock_volume_define): mock_volume_define.return_value = None environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) vol_volume_name = factories.fuzzy_string() vol = Volume.volume_create(vol_volume_name, capacity=1000000000, format='qcow2', environment=environment) DiskDevice.node_attach_volume(node=node, volume=vol) environment.define() snapshot_name = factories.fuzzy_string('snap_') snapshot_volume_name = '{0}.{1}'.format(vol_volume_name, snapshot_name) node.snapshot_create_volume(snapshot_name) vol1 = environment.get_volume(name=snapshot_volume_name) self.assertEqual(len(node.disk_devices), 1) self.assertEqual(vol1.name, snapshot_volume_name) self.assertEqual(vol1.format, 'qcow2') self.assertEqual(vol1.environment, environment) self.assertEqual(vol1.backing_store, vol) self.assertEqual(vol1, node.disk_devices[0].volume) mock_volume_define.assert_called_with(vol1)
def setUp(self): super(TestLibvirtDriver, self).setUp() self.env = Environment.create('test_env') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.libvirt.libvirt_driver', connection_string='test:///default') self.ap = self.env.add_address_pool( name='test_ap', net='172.0.0.0/16:24', tag=0, ip_reserved=dict(l2_network_device=1), ) self.net_pool = self.group.add_network_pool( name='fuelweb_admin', address_pool_name='test_ap', ) self.l2_net_dev = self.group.add_l2_network_device( name='test_l2_net_dev', address_pool='test_ap', forward=dict(mode='nat'), ) self.d = self.group.driver
def setUp(self): super(TestCloudImage, self).setUp() self.open_mock = mock.mock_open(read_data='image_data') self.patch('devops.driver.libvirt.libvirt_driver.open', self.open_mock, create=True) self.os_mock = self.patch('devops.helpers.helpers.os') # noinspection PyPep8Naming Size = collections.namedtuple('Size', ['st_size']) self.file_sizes = { '/tmp/test/cloud_settings.iso': Size(st_size=1 * 1024 ** 3), } self.os_mock.stat.side_effect = self.file_sizes.get self.generate_cloud_image_settings_mock = self.patch( 'devops.helpers.cloud_image_settings' '.generate_cloud_image_settings') self.volume_upload_mock = self.patch( 'devops.driver.libvirt.Volume.upload') # Environment with a 'public' network self.env = Environment.create('test') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.libvirt', connection_string='test:///default', storage_pool_name='default-pool') self.pub_ap = self.env.add_address_pool( name='public-pool01', net='10.109.0.0/16:24', tag=0, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.group.add_l2_network_device( name='public', address_pool='public-pool01') # Node connected to the 'public' network self.node = self.group.add_node( name='test-node', role='cloud-node', architecture='x86_64', hypervisor='test', cloud_init_volume_name='iso', cloud_init_iface_up='enp0s3') self.system_volume = self.node.add_volume(name='system', capacity=10) self.iso_volume = self.node.add_volume(name='iso', capacity=5) self.adm_iface = self.node.add_interface( label='enp0s3', l2_network_device_name='public', mac_address='64:b6:87:44:14:17', interface_model='e1000') self.node.add_network_config( label='enp0s3', networks=['public'])
def test_create_volume(self): environment = Environment.create('test_env3') volume = Volume.volume_get_predefined( '/var/lib/libvirt/images/disk-135824657433.qcow2') v3 = Volume.volume_create_child( 'test_vp89', backing_store=volume, environment=environment) v3.define()
def setUp(self): super(TestLibvirtVolume, self).setUp() self.sleep_mock = self.patch('devops.helpers.retry.sleep') self.open_mock = mock.mock_open(read_data='image_data') self.patch('devops.driver.libvirt.libvirt_driver.open', self.open_mock, create=True) self.os_mock = self.patch('devops.helpers.helpers.os') Size = collections.namedtuple('Size', ['st_size']) self.file_sizes = { '/tmp/admin.iso': Size(st_size=500), } self.os_mock.stat.side_effect = self.file_sizes.get self.env = Environment.create('test_env') self.group = self.env.add_group(group_name='test_group', driver_name='devops.driver.libvirt', connection_string='test:///default', storage_pool_name='default-pool') self.node = self.group.add_node( name='test_node', role='default', architecture='i686', hypervisor='test', ) self.d = self.group.driver
def test_external_snapshot_erase( self, mock_has_snapshot, mock_volume_define, mock_libvirt_version, mock_delete_snapshot, mock_get_snapshot, mock_create_snapshot): mock_has_snapshot.return_value = False mock_libvirt_version.return_value = 1002012 mock_get_snapshot.return_value = mock.Mock(get_type='external', children_num=0) environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) vol_volume_name = factories.fuzzy_string() vol = Volume.volume_create(vol_volume_name, capacity=1000000000, format='qcow2', environment=environment) DiskDevice.node_attach_volume(node=node, volume=vol) environment.define() snap_name = factories.fuzzy_string('snap_') snap_description = factories.fuzzy_string('description_') node.snapshot(name=snap_name, description=snap_description, external=True) mock_has_snapshot.return_value = True node.erase_snapshot(snap_name) mock_delete_snapshot.assert_called_with(node=node, name=snap_name) self.assertEqual(node.disk_devices[0].volume, vol)
def setUp(self): super(TestCloudImage, self).setUp() self.open_mock = mock.mock_open(read_data='image_data') self.patch('devops.driver.libvirt.libvirt_driver.open', self.open_mock, create=True) self.os_mock = self.patch('devops.helpers.helpers.os') # noinspection PyPep8Naming Size = collections.namedtuple('Size', ['st_size']) self.file_sizes = { '/tmp/test/cloud_settings.iso': Size(st_size=1 * 1024**3), } self.os_mock.stat.side_effect = self.file_sizes.get self.generate_cloud_image_settings_mock = self.patch( 'devops.helpers.cloud_image_settings' '.generate_cloud_image_settings') self.volume_upload_mock = self.patch( 'devops.driver.libvirt.Volume.upload') # Environment with a 'public' network self.env = Environment.create('test') self.group = self.env.add_group(group_name='test_group', driver_name='devops.driver.libvirt', connection_string='test:///default', storage_pool_name='default-pool') self.pub_ap = self.env.add_address_pool( name='public-pool01', net='10.109.0.0/16:24', tag=0, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.group.add_l2_network_device(name='public', address_pool='public-pool01') # Node connected to the 'public' network self.node = self.group.add_node(name='test-node', role='cloud-node', architecture='x86_64', hypervisor='test', cloud_init_volume_name='iso', cloud_init_iface_up='enp0s3') self.system_volume = self.node.add_volume(name='system', capacity=10) self.iso_volume = self.node.add_volume(name='iso', capacity=5) self.adm_iface = self.node.add_interface( label='enp0s3', l2_network_device_name='public', mac_address='64:b6:87:44:14:17', interface_model='e1000') self.node.add_network_config(label='enp0s3', networks=['public'])
def setUp(self): super(TestLibvirtNodeMultipath, self).setUp() self.sleep_mock = self.patch('devops.helpers.retry.sleep') self.libvirt_sleep_mock = self.patch( 'devops.driver.libvirt.libvirt_driver.sleep') self.env = Environment.create('test_env') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.libvirt', connection_string='test:///default', storage_pool_name='default-pool', vnc_password='******', ) self.ap = self.env.add_address_pool( name='test_ap', net='172.0.0.0/16:24', tag=0, ip_reserved=dict(l2_network_device=1), ) self.net_pool = self.group.add_network_pool( name='fuelweb_admin', address_pool_name='test_ap', ) self.l2_net_dev = self.group.add_l2_network_device( name='test_l2_net_dev', address_pool='test_ap', forward=dict(mode='nat'), ) self.node = self.group.add_node( name='test_node', role='default', architecture='i686', hypervisor='test', ) self.interface = self.node.add_interface( label='eth0', l2_network_device_name='test_l2_net_dev', interface_model='virtio', ) self.interface.mac_address = '64:b6:87:44:14:17' self.interface.save() self.volume = self.node.add_volume( name='test_volume', capacity=5, multipath_count=2, serial='3b16d312420d4adbb2d5b04fcbd5221c', ) self.d = self.group.driver self.l2_net_dev.define()
def test_node_creation(self): environment = Environment.create('test_env3') internal = Network.network_create( environment=environment, name='internal', pool=None) node = Node.node_create( name='test_node', environment=environment) Interface.interface_create(node=node, network=internal) environment.define()
def setUp(self): super(TestLibvirtNodeMultipath, self).setUp() self.sleep_mock = self.patch('time.sleep') self.env = Environment.create('test_env') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.libvirt', connection_string='test:///default', storage_pool_name='default-pool', vnc_password='******', enable_nwfilters=True, ) self.ap = self.env.add_address_pool( name='test_ap', net='172.0.0.0/16:24', tag=0, ip_reserved=dict(l2_network_device=1), ) self.net_pool = self.group.add_network_pool( name='fuelweb_admin', address_pool_name='test_ap', ) self.l2_net_dev = self.group.add_l2_network_device( name='test_l2_net_dev', address_pool='test_ap', forward=dict(mode='nat'), ) self.node = self.group.add_node( name='test_node', role='default', architecture='i686', hypervisor='test', ) self.interface = self.node.add_interface( label='eth0', l2_network_device_name='test_l2_net_dev', interface_model='virtio', ) self.interface.mac_address = '64:b6:87:44:14:17' self.interface.save() self.volume = self.node.add_volume( name='test_volume', capacity=5, multipath_count=2, serial='3b16d312420d4adbb2d5b04fcbd5221c', ) self.d = self.group.driver self.l2_net_dev.define()
def setUp(self): super(TestLibvirtNodeSnapshotBase, self).setUp() self.sleep_mock = self.patch('devops.helpers.retry.sleep') self.libvirt_sleep_mock = self.patch( 'devops.driver.libvirt.libvirt_driver.sleep') self.env = Environment.create('tenv') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.libvirt.libvirt_driver', connection_string='test:///default', storage_pool_name='default-pool', vnc_password='******', ) self.ap = self.env.add_address_pool( name='test_ap', net='172.0.0.0/16:24', tag=0, ip_reserved=dict(l2_network_device='172.0.0.1'), ) self.net_pool = self.group.add_network_pool( name='fuelweb_admin', address_pool_name='test_ap', ) self.l2_net_dev = self.group.add_l2_network_device( name='test_l2_net_dev', address_pool='test_ap', forward=dict(mode='nat'), ) self.node = self.group.add_node( name='tnode', role='default', architecture='i686', hypervisor='test', ) self.interface = self.node.add_interface( label='eth0', l2_network_device_name='test_l2_net_dev', interface_model='virtio', ) self.volume = self.node.add_volume( name='tvol', capacity=5, ) self.d = self.group.driver self.l2_net_dev.define() self.volume.define() self.node.define()
def test_network_model(self): environment = Environment.create('test_env') node = Node.node_create('test_node', environment) network = Network.network_create( environment=environment, name='internal', ip_network='10.1.0.0/24') interface1 = Interface.interface_create(network=network, node=node) self.assertEquals('virtio', interface1.model) interface2 = Interface.interface_create( network=network, node=node, model='e1000') self.assertEquals('e1000', interface2.model)
def test_snapshot_with_existing_name(self, mock_has_snapshot, mock_node_create_snapshot): mock_has_snapshot.return_value = True environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) environment.define() node.snapshot(name='test_name') self.assertEqual(mock_node_create_snapshot.called, False)
def test_network_iterator(self): environment = Environment.create('test_env') node = Node.node_create('test_node', environment) network = Network.network_create( environment=environment, name='internal', ip_network='10.1.0.0/24') interface = Interface.interface_create(network=network, node=node) Address.objects.create(str('10.1.0.1'), interface=interface) network.next_ip() Address.objects.create(str('10.1.0.3'), interface=interface) ip = network.next_ip() self.assertEquals('10.1.0.4', str(ip))
def test_network_iterator(self): environment = Environment.create('test_env') node = Node.node_create('test_node', environment) network = Network.network_create(environment=environment, name='internal', ip_network='10.1.0.0/24') interface = Interface.interface_create(network=network, node=node) Address.objects.create(str('10.1.0.1'), interface=interface) network.next_ip() Address.objects.create(str('10.1.0.3'), interface=interface) ip = network.next_ip() self.assertEquals('10.1.0.4', str(ip))
def setUp(self): # ENVIRONMENT self.env = Environment.create(name='test') # ADRESS POOLS self.admin_ap = self.env.add_address_pool( name='fuelweb_admin-pool01', net='10.109.0.0/16:24', tag=0, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.pub_ap = self.env.add_address_pool( name='public-pool01', net='10.109.0.0/16:24', tag=0, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.stor_ap = self.env.add_address_pool( name='storage-pool01', net='10.109.0.0/16:24', tag=101, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.mng_ap = self.env.add_address_pool( name='management-pool01', net='10.109.0.0/16:24', tag=102, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.priv_ap = self.env.add_address_pool( name='private-pool01', net='10.109.0.0/16:24', tag=103, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) # GROUP self.group = self.env.add_group(group_name='test-group', driver_name='devops.driver.empty') # NETWORK POOLS self.group.add_network_pool(name='fuelweb_admin', address_pool_name='fuelweb_admin-pool01') self.group.add_network_pool(name='public', address_pool_name='public-pool01') self.group.add_network_pool(name='storage', address_pool_name='storage-pool01') self.group.add_network_pool(name='management', address_pool_name='management-pool01') self.group.add_network_pool(name='private', address_pool_name='private-pool01') # L2 NETWORK DEVICES self.group.add_l2_network_device( name='admin', address_pool='fuelweb_admin-pool01') self.group.add_l2_network_device( name='public', address_pool='public-pool01') self.group.add_l2_network_device( name='storage', address_pool='storage-pool01') self.group.add_l2_network_device( name='management', address_pool='management-pool01') self.group.add_l2_network_device( name='private', address_pool='private-pool01')
def test_external_snapshot_incorrect_libvirt_version( self, mock_has_snapshot, mock_libvirt_version, mock_create_snapshot): mock_has_snapshot.return_value = False mock_libvirt_version.return_value = 1002009 environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) environment.define() node.snapshot(name='test_name', external=True) self.assertEqual(mock_create_snapshot.called, False)
def setUp(self): super(TestLibvirtDriverDeviceNames, self).setUp() self.env = Environment.create('test_env') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.libvirt', connection_string='test:///default') self.ap = self.env.add_address_pool( name='test_ap', net='172.0.0.0/16:24', tag=0, ip_reserved=dict(l2_network_device=1), ) self.net_pool = self.group.add_network_pool( name='fuelweb_admin', address_pool_name='test_ap', ) self.l2_net_dev = self.group.add_l2_network_device( name='test_l2_net_dev', address_pool='test_ap', forward=dict(mode='nat'), ) self.d = self.group.driver self.d._device_name_generators = dict() self.dev_mock = mock.Mock(spec=libvirt.virNodeDevice) self.dev_mock.listCaps.return_value = ['net'] self.dev_mock.XMLDesc.return_value = """ <device> <name>net_virnet132_fe_70_74_90_bc_84</name> <path>/sys/devices/virtual/net/virnet132</path> <parent>computer</parent> <capability type='net'> <interface>virnet1</interface> <address>fe:70:74:90:bc:84</address> <link state='unknown'/> <capability type='80203'/> </capability> </device> """ self.dev2_mock = mock.Mock(spec=libvirt.virNodeDevice) self.dev2_mock.listCaps.return_value = ['usb_device'] self.dev2_mock.XMLDesc.return_value = """
def one(): environment = Environment.create('cdrom') internal_pool = Network.create_network_pool( networks=[IPNetwork('10.108.0.0/16')], prefix=24) private_pool = Network.create_network_pool( networks=[IPNetwork('10.108.0.0/16')], prefix=24) external_pool = Network.create_network_pool( networks=[IPNetwork('172.18.95.0/24')], prefix=27) internal = Network.network_create(environment=environment, name='internal', pool=internal_pool) external = Network.network_create(environment=environment, name='external', pool=external_pool, forward='nat') private = Network.network_create(environment=environment, name='private', pool=private_pool) for i in range(1, 2): node = Node.node_create(name='test_node' + str(i), environment=environment) Interface.interface_create(node=node, network=internal) Interface.interface_create(node=node, network=external) Interface.interface_create(node=node, network=private) volume = Volume.volume_get_predefined( '/var/lib/libvirt/images/centos63-cobbler-base.qcow2') v3 = Volume.volume_create_child('test_vp895' + str(i), backing_store=volume, environment=environment) v4 = Volume.volume_create_child('test_vp896' + str(i), backing_store=volume, environment=environment) DiskDevice.node_attach_volume(node=node, volume=v3) DiskDevice.node_attach_volume(node, v4) DiskDevice.node_attach_volume( node, Volume.volume_get_predefined( '/var/lib/libvirt/images/fuel-centos-6.3-x86_64.iso'), device='cdrom', bus='sata') environment.define() environment.start() remotes = [] for node in environment.get_nodes(): node. await ('internal') node.remote('internal', 'root', 'r00tme').check_stderr('ls -la', verbose=True) remotes.append(node.remote('internal', 'root', 'r00tme')) SSHClient.execute_together(remotes, 'ls -la')
def test_external_snapshot_with_children_erase( self, mock_has_snapshot, mock_get_snapshot, mock_delete_snapshot): mock_has_snapshot.return_value = True mock_get_snapshot.return_value = mock.Mock( get_type='external', children_num=1) environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) environment.define() snap_name = factories.fuzzy_string('snap_') node.erase_snapshot(snap_name) self.assertEqual(mock_delete_snapshot.called, False) mock_get_snapshot.assert_called_with(node, snap_name)
def setUp(self): super(TestLibvirtDriverDeviceNames, self).setUp() self.env = Environment.create('test_env') self.group = self.env.add_group(group_name='test_group', driver_name='devops.driver.libvirt', connection_string='test:///default') self.ap = self.env.add_address_pool( name='test_ap', net='172.0.0.0/16:24', tag=0, ip_reserved=dict(l2_network_device=1), ) self.net_pool = self.group.add_network_pool( name='fuelweb_admin', address_pool_name='test_ap', ) self.l2_net_dev = self.group.add_l2_network_device( name='test_l2_net_dev', address_pool='test_ap', forward=dict(mode='nat'), ) self.d = self.group.driver self.d._device_name_generators = dict() self.dev_mock = mock.Mock(spec=libvirt.virNodeDevice) self.dev_mock.listCaps.return_value = ['net'] self.dev_mock.XMLDesc.return_value = """ <device> <name>net_virnet132_fe_70_74_90_bc_84</name> <path>/sys/devices/virtual/net/virnet132</path> <parent>computer</parent> <capability type='net'> <interface>virnet1</interface> <address>fe:70:74:90:bc:84</address> <link state='unknown'/> <capability type='80203'/> </capability> </device> """ self.dev2_mock = mock.Mock(spec=libvirt.virNodeDevice) self.dev2_mock.listCaps.return_value = ['usb_device'] self.dev2_mock.XMLDesc.return_value = """
def one(): environment = Environment.create('cdrom') internal_pool = Network.create_network_pool( networks=[IPNetwork('10.108.0.0/16')], prefix=24 ) private_pool = Network.create_network_pool( networks=[IPNetwork('10.108.0.0/16')], prefix=24 ) external_pool = Network.create_network_pool( networks=[IPNetwork('172.18.95.0/24')], prefix=27 ) internal = Network.network_create( environment=environment, name='internal', pool=internal_pool) external = Network.network_create( environment=environment, name='external', pool=external_pool, forward='nat') private = Network.network_create( environment=environment, name='private', pool=private_pool) for i in range(1, 2): node = Node.node_create( name='test_node' + str(i), environment=environment) Interface.interface_create(node=node, network=internal) Interface.interface_create(node=node, network=external) Interface.interface_create(node=node, network=private) volume = Volume.volume_get_predefined( '/var/lib/libvirt/images/centos63-cobbler-base.qcow2') v3 = Volume.volume_create_child( 'test_vp895' + str(i), backing_store=volume, environment=environment) v4 = Volume.volume_create_child( 'test_vp896' + str(i), backing_store=volume, environment=environment) DiskDevice.node_attach_volume(node=node, volume=v3) DiskDevice.node_attach_volume(node, v4) DiskDevice.node_attach_volume( node, Volume.volume_get_predefined( '/var/lib/libvirt/images/fuel-centos-6.3-x86_64.iso'), device='cdrom', bus='sata') environment.define() environment.start() remotes = [] for node in environment.get_nodes(): node.await('internal') node.remote('internal', 'root', 'r00tme').check_stderr( 'ls -la', verbose=True) remotes.append(node.remote('internal', 'root', 'r00tme')) SSHClient.execute_together(remotes, 'ls -la')
def do_create(self): env_name = self.params.name for env in Environment.list_all(): if env.name == env_name: print("Please, set another environment name") raise SystemExit() self.env = Environment.create(env_name) networks, prefix = self.params.net_pool.split(":") Network.default_pool = Network.create_network_pool(networks=[ipaddr.IPNetwork(networks)], prefix=int(prefix)) networks = Network.create_networks(environment=self.env) admin_node = self.admin_add(networks=networks) self.do_slave_add(force_define=False) self.env.define() admin_node.disk_devices.get(device="cdrom").volume.upload(self.params.iso_path) for net in self.env.get_networks(): net.start()
def test_node_creation(self): environment = Environment.create('test_env3') pool = IpNetworksPool(networks=[IPNetwork('10.1.0.0/24')], prefix=24) address_pool = AddressPool.address_pool_create( environment=environment, name='internal', pool=pool) l2_net_dev = L2NetworkDevice.objects.create( group=None, address_pool=address_pool, name='test_l2_dev') node = Node.objects.create( group=None, name='test_node', role='default', ) Interface.interface_create(l2_network_device=l2_net_dev, node=node, label='eth0') environment.define()
def do_create(self): env_name = self.params.name for env in Environment.list_all(): if env.name == env_name: print("Please, set another environment name") raise SystemExit() self.env = Environment.create(env_name) networks, prefix = self.params.net_pool.split(':') Network.default_pool = Network.create_network_pool( networks=[ipaddr.IPNetwork(networks)], prefix=int(prefix)) networks = Network.create_networks(environment=self.env) admin_node = self.admin_add(networks=networks) self.do_slave_add(force_define=False) self.env.define() admin_node.disk_devices.get(device='cdrom').volume.upload( self.params.iso_path) for net in self.env.get_networks(): net.start()
def test_external_snapshot_revert_no_children( self, mock_revert_snapshot_recreate_disks, mock_revert_snapshot, mock_get_snapshot, mock_has_snapshot, mock_destroy, mock_update_disks_from_snapshot): mock_has_snapshot.return_value = True mock_get_snapshot.return_value = mock.Mock(get_type='external', children_num=0) environment = Environment.create('test_env_extsnap') node = Node.node_create(name='test_node', environment=environment) environment.define() snapshot_name = factories.fuzzy_string('snap_') node.revert(name=snapshot_name, destroy=False) mock_update_disks_from_snapshot.assert_called_with(snapshot_name) mock_revert_snapshot_recreate_disks.assert_called_with( node, snapshot_name) mock_revert_snapshot.assert_called_with(node=node, name=snapshot_name)
def setUp(self): super(TestIpmiNode, self).setUp() # Create Environment self.ipmiclient_mock = self.patch( 'devops.driver.baremetal.ipmi_client.IpmiClient', autospec=True) self.ipmiclient = self.ipmiclient_mock.return_value self.wait_mock = self.patch('devops.helpers.helpers.wait') self.env = Environment.create('test_env') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.baremetal', ) self.ap = self.env.add_address_pool( name='test_ap', net='172.0.0.0/16:24', tag=0, ip_reserved=dict(l2_network_device=1), ) self.net_pool = self.group.add_network_pool( name='fuelweb_admin', address_pool_name='test_ap', ) self.l2_net_dev = self.group.add_l2_network_device( name='test_l2_net_dev', address_pool='test_ap', ) self.node = self.group.add_node( name='test_node', role='default', boot='pxe', force_set_boot=True, ipmi_user='******', ipmi_password='******', ipmi_previlegies='OPERATOR', ipmi_host='ipmi-1.hostaddress.net', ipmi_lan_interface='lanplus', ipmi_port=623, )
def test_node_creation(self): environment = Environment.create('test_env3') pool = IpNetworksPool(networks=[IPNetwork('10.1.0.0/24')], prefix=24) address_pool = AddressPool.address_pool_create(environment=environment, name='internal', pool=pool) l2_net_dev = L2NetworkDevice.objects.create(group=None, address_pool=address_pool, name='test_l2_dev') node = Node.objects.create( group=None, name='test_node', role='default', ) Interface.interface_create(l2_network_device=l2_net_dev, node=node, label='eth0') environment.define()
def test_create_node3(self): environment = Environment.create('test_env3') internal = Network.network_create( environment=environment, name='internal', pool=None) external = Network.network_create( environment=environment, name='external', pool=None) private = Network.network_create( environment=environment, name='private', pool=None) node = Node.node_create(name='test_node', environment=environment) Interface.interface_create(node=node, network=internal) Interface.interface_create(node=node, network=external) Interface.interface_create(node=node, network=private) volume = Volume.volume_get_predefined( '/var/lib/libvirt/images/disk-135824657433.qcow2') v3 = Volume.volume_create_child( 'test_vp892', backing_store=volume, environment=environment) v4 = Volume.volume_create_child( 'test_vp891', backing_store=volume, environment=environment) DiskDevice.node_attach_volume(node=node, volume=v3) DiskDevice.node_attach_volume(node, v4) environment.define()
def test_network_model(self): environment = Environment.create('test_env') node = Node.objects.create( group=None, name='test_node', role='default', ) pool = IpNetworksPool(networks=[IPNetwork('10.1.0.0/24')], prefix=24) address_pool = AddressPool.address_pool_create( environment=environment, name='internal', pool=pool) l2_net_dev = L2NetworkDevice.objects.create( group=None, address_pool=address_pool, name='test_l2_dev') interface1 = Interface.interface_create(l2_network_device=l2_net_dev, node=node, label='eth0') assert interface1.model == 'virtio' interface2 = Interface.interface_create(l2_network_device=l2_net_dev, node=node, label='eth0', model='e1000') assert interface2.model == 'e1000'
def test_network_iterator(self): environment = Environment.create('test_env') node = Node.objects.create( group=None, name='test_node', role='default', ) pool = IpNetworksPool(networks=[IPNetwork('10.1.0.0/24')], prefix=24) address_pool = AddressPool.address_pool_create( environment=environment, name='internal', pool=pool) l2_net_dev = L2NetworkDevice.objects.create( group=None, address_pool=address_pool, name='test_l2_dev') interface = Interface.interface_create(l2_network_device=l2_net_dev, node=node, label='eth0') assert str(address_pool.next_ip()) == '10.1.0.3' Address.objects.create(ip_address=str('10.1.0.3'), interface=interface) assert str(address_pool.next_ip()) == '10.1.0.4' Address.objects.create(ip_address=str('10.1.0.4'), interface=interface) assert str(address_pool.next_ip()) == '10.1.0.5'
def test_network_iterator(self): environment = Environment.create('test_env') node = Node.objects.create( group=None, name='test_node', role='default', ) pool = IpNetworksPool(networks=[IPNetwork('10.1.0.0/24')], prefix=24) address_pool = AddressPool.address_pool_create(environment=environment, name='internal', pool=pool) l2_net_dev = L2NetworkDevice.objects.create(group=None, address_pool=address_pool, name='test_l2_dev') interface = Interface.interface_create(l2_network_device=l2_net_dev, node=node, label='eth0') assert str(address_pool.next_ip()) == '10.1.0.3' Address.objects.create(ip_address=str('10.1.0.3'), interface=interface) assert str(address_pool.next_ip()) == '10.1.0.4' Address.objects.create(ip_address=str('10.1.0.4'), interface=interface) assert str(address_pool.next_ip()) == '10.1.0.5'
def setUp(self): super(TestLibvirtNodeSnapshotBase, self).setUp() self.sleep_mock = self.patch('time.sleep') self.nwfilter = self.libvirt_nwfilter_lookup_mock.return_value self.nwfilter.XMLDesc.return_value = ( '<?xml version="1.0" encoding="utf-8" ?>\n' '<filter name="tenv_test_l2_net_dev_64:5d:8b:a9:ac:ec">\n' ' <filterref filter="tenv_test_l2_net_dev" />\n' ' <rule action="drop" direction="inout" priority="-950">\n' ' <all />\n' ' </rule>\n' '</filter>') self.nwfilter.UUIDString.return_value = \ 'e3db79b5-717c-4b15-9198-ecad569c1ea2' self.env = Environment.create('tenv') self.group = self.env.add_group( group_name='test_group', driver_name='devops.driver.libvirt', connection_string='test:///default', storage_pool_name='default-pool', vnc_password='******', enable_nwfilters=True, ) self.ap = self.env.add_address_pool( name='test_ap', net='172.0.0.0/16:24', tag=0, ip_reserved=dict(l2_network_device='172.0.0.1'), ) self.net_pool = self.group.add_network_pool( name='fuelweb_admin', address_pool_name='test_ap', ) self.l2_net_dev = self.group.add_l2_network_device( name='test_l2_net_dev', address_pool='test_ap', forward=dict(mode='nat'), ) self.node = self.group.add_node( name='tnode', role='default', architecture='i686', hypervisor='test', ) self.interface = self.node.add_interface( label='eth0', l2_network_device_name='test_l2_net_dev', mac_address=None, interface_model='virtio', ) self.interface.mac_address = '64:5d:8b:a9:ac:ec' self.interface.save() self.volume = self.node.add_volume( name='tvol', capacity=5, ) self.d = self.group.driver self.l2_net_dev.define() self.volume.define() self.node.define()
def test_environment_values(self): environment = Environment.create('test_env') print(environment.get_volumes())
def test_node_creationw(self): environment = Environment.create('test_env55') node = Node.node_create( name='test_node4', environment=environment) node.define()
def setUp(self): # ENVIRONMENT self.env = Environment.create(name='test') # ADRESS POOLS self.admin_ap = self.env.add_address_pool( name='fuelweb_admin-pool01', net='10.109.0.0/16:24', tag=0, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.pub_ap = self.env.add_address_pool( name='public-pool01', net='10.109.0.0/16:24', tag=0, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.stor_ap = self.env.add_address_pool( name='storage-pool01', net='10.109.0.0/16:24', tag=101, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.mng_ap = self.env.add_address_pool( name='management-pool01', net='10.109.0.0/16:24', tag=102, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) self.priv_ap = self.env.add_address_pool( name='private-pool01', net='10.109.0.0/16:24', tag=103, ip_reserved=dict(gateway=1, l2_network_device=1), ip_ranges=dict(default=[2, -2])) # GROUP self.group = self.env.add_group(group_name='test-group', driver_name='devops.models') # NETWORK POOLS self.group.add_network_pool(name='fuelweb_admin', address_pool_name='fuelweb_admin-pool01') self.group.add_network_pool(name='public', address_pool_name='public-pool01') self.group.add_network_pool(name='storage', address_pool_name='storage-pool01') self.group.add_network_pool(name='management', address_pool_name='management-pool01') self.group.add_network_pool(name='private', address_pool_name='private-pool01') # L2 NETWORK DEVICES self.group.add_l2_network_device(name='admin', address_pool='fuelweb_admin-pool01') self.group.add_l2_network_device(name='public', address_pool='public-pool01') self.group.add_l2_network_device(name='storage', address_pool='storage-pool01') self.group.add_l2_network_device(name='management', address_pool='management-pool01') self.group.add_l2_network_device(name='private', address_pool='private-pool01')