def test_create_group_with_one_simple_rule(self): """ Tests the creation of an OpenStack Security Group with one simple custom rule. """ # Create Security Group sec_grp_rule_settings = list() sec_grp_rule_settings.append( SecurityGroupRuleConfig(sec_grp_name=self.sec_grp_name, direction=Direction.ingress, description='test_rule_1')) sec_grp_settings = SecurityGroupConfig( name=self.sec_grp_name, description='hello group', rule_settings=sec_grp_rule_settings) self.sec_grp_creator = create_security_group.OpenStackSecurityGroup( self.os_creds, sec_grp_settings) self.sec_grp_creator.create() sec_grp = neutron_utils.get_security_group( self.neutron, self.keystone, sec_grp_settings=sec_grp_settings) validation_utils.objects_equivalent( self.sec_grp_creator.get_security_group(), sec_grp) rules = neutron_utils.get_rules_by_security_group( self.neutron, self.sec_grp_creator.get_security_group()) self.assertEqual(len(self.sec_grp_creator.get_rules()), len(rules)) validation_utils.objects_equivalent(self.sec_grp_creator.get_rules(), rules) self.assertTrue( validate_sec_grp(self.neutron, self.keystone, self.sec_grp_creator.sec_grp_settings, self.sec_grp_creator.get_security_group(), rules))
def test_create_group_new_user_to_admin_project(self): """ Tests the creation of an OpenStack Security Group without custom rules. """ # Create Security Group sec_grp_settings = SecurityGroupConfig( name=self.sec_grp_name, description='hello group', project_name=self.os_creds.project_name) self.sec_grp_creator = create_security_group.OpenStackSecurityGroup( self.admin_os_creds, sec_grp_settings) self.sec_grp_creator.create() sec_grp = neutron_utils.get_security_group( self.neutron, self.keystone, sec_grp_settings=sec_grp_settings) self.assertIsNotNone(sec_grp) validation_utils.objects_equivalent( self.sec_grp_creator.get_security_group(), sec_grp) rules = neutron_utils.get_rules_by_security_group( self.neutron, self.sec_grp_creator.get_security_group()) self.assertEqual(len(self.sec_grp_creator.get_rules()), len(rules)) validation_utils.objects_equivalent(self.sec_grp_creator.get_rules(), rules) self.assertTrue( validate_sec_grp(self.neutron, self.keystone, self.sec_grp_creator.sec_grp_settings, self.sec_grp_creator.get_security_group(), rules))
def test_remove_rule_by_setting(self): """ Tests the creation of an OpenStack Security Group with two simple custom rules then removes one by the rule setting object """ # Create Security Group sec_grp_rule_settings = list() sec_grp_rule_settings.append( SecurityGroupRuleConfig(sec_grp_name=self.sec_grp_name, direction=Direction.ingress, description='test_rule_1')) sec_grp_rule_settings.append( SecurityGroupRuleConfig(sec_grp_name=self.sec_grp_name, direction=Direction.egress, protocol=Protocol.udp, ethertype=Ethertype.IPv6, description='test_rule_2')) sec_grp_rule_settings.append( SecurityGroupRuleConfig(sec_grp_name=self.sec_grp_name, direction=Direction.egress, protocol=Protocol.udp, ethertype=Ethertype.IPv4, port_range_min=10, port_range_max=20, description='test_rule_3')) sec_grp_settings = SecurityGroupConfig( name=self.sec_grp_name, description='hello group', rule_settings=sec_grp_rule_settings) self.sec_grp_creator = create_security_group.OpenStackSecurityGroup( self.os_creds, sec_grp_settings) self.sec_grp_creator.create() sec_grp = neutron_utils.get_security_group( self.neutron, self.keystone, sec_grp_settings=sec_grp_settings) validation_utils.objects_equivalent( self.sec_grp_creator.get_security_group(), sec_grp) rules = neutron_utils.get_rules_by_security_group( self.neutron, self.sec_grp_creator.get_security_group()) self.assertEqual(len(self.sec_grp_creator.get_rules()), len(rules)) validation_utils.objects_equivalent(self.sec_grp_creator.get_rules(), rules) self.assertTrue( validate_sec_grp(self.neutron, self.keystone, self.sec_grp_creator.sec_grp_settings, self.sec_grp_creator.get_security_group(), rules)) self.sec_grp_creator.remove_rule(rule_setting=sec_grp_rule_settings[0]) rules_after_del = neutron_utils.get_rules_by_security_group( self.neutron, self.sec_grp_creator.get_security_group()) self.assertEqual(len(rules) - 1, len(rules_after_del))
def test_create_qos_back(self): """ Tests the cinder_utils.create_qos() """ qos_settings = QoSConfig( name=self.qos_name, specs=self.specs, consumer=Consumer.back_end) self.qos = cinder_utils.create_qos(self.cinder, qos_settings) self.assertIsNotNone(self.qos) qos1 = cinder_utils.get_qos(self.cinder, qos_settings=qos_settings) self.assertIsNotNone(qos1) validation_utils.objects_equivalent(self.qos, qos1) qos2 = cinder_utils.get_qos_by_id(self.cinder, qos1.id) self.assertIsNotNone(qos2) validation_utils.objects_equivalent(self.qos, qos2)
def test_create_simple_volume(self): """ Tests the cinder_utils.create_volume() """ volume_settings = VolumeConfig(name=self.volume_name) self.volume = cinder_utils.create_volume( self.cinder, self.keystone, volume_settings) self.assertIsNotNone(self.volume) self.assertEqual(self.volume_name, self.volume.name) self.assertTrue(volume_active(self.cinder, self.volume)) volume = cinder_utils.get_volume( self.cinder, self.keystone, volume_settings=volume_settings, project_name=self.os_creds.project_name) self.assertIsNotNone(volume) validation_utils.objects_equivalent(self.volume, volume)
def test_create_delete_qos(self): """ Tests the cinder_utils.create_qos() """ qos_settings = QoSConfig(name=self.qos_name, consumer=Consumer.both) self.qos = cinder_utils.create_qos(self.cinder, qos_settings) self.assertIsNotNone(self.qos) self.assertEqual(self.qos_name, self.qos.name) qos = cinder_utils.get_qos( self.cinder, qos_settings=qos_settings) self.assertIsNotNone(qos) validation_utils.objects_equivalent(self.qos, qos) cinder_utils.delete_qos(self.cinder, self.qos) self.assertIsNone(cinder_utils.get_qos( self.cinder, qos_settings=qos_settings))
def test_create_delete_volume_type(self): """ Primarily tests the cinder_utils.delete_volume() """ self.volume_type = cinder_utils.create_volume_type( self.cinder, self.volume_type_settings) self.assertIsNotNone(self.volume_type) self.assertEqual(self.volume_type_settings.name, self.volume_type.name) volume_type = cinder_utils.get_volume_type( self.cinder, volume_type_settings=self.volume_type_settings) self.assertIsNotNone(volume_type) validation_utils.objects_equivalent(self.volume_type, volume_type) self.assertIsNone(self.volume_type.encryption) cinder_utils.delete_volume_type(self.cinder, self.volume_type) self.assertIsNone(cinder_utils.get_volume_type_by_id( self.cinder, self.volume_type.id))
def test_create_image_minimal_url(self): """ Tests the glance_utils.create_image() function with a URL unless the self.glance_test_meta has configured a file to be used. """ if 'disk_file' not in self.glance_test_meta: os_image_settings = openstack_tests.cirros_image_settings( name=self.image_name, image_metadata=self.glance_test_meta) self.image = glance_utils.create_image(self.glance, os_image_settings) self.assertIsNotNone(self.image) self.assertEqual(self.image_name, self.image.name) image = glance_utils.get_image(self.glance, image_settings=os_image_settings) self.assertIsNotNone(image) validation_utils.objects_equivalent(self.image, image) else: logger.warn('Test not executed as the image metadata requires ' 'image files')
def test_create_image_minimal_file(self): """ Tests the glance_utils.create_image() function with a file """ if 'disk_file' not in self.glance_test_meta: url_image_settings = openstack_tests.cirros_image_settings( name='foo', image_metadata=self.glance_test_meta) image_file_name = file_utils.download(url_image_settings.url, self.tmp_dir).name else: image_file_name = self.glance_test_meta['disk_file'] file_image_settings = openstack_tests.file_image_test_settings( name=self.image_name, file_path=image_file_name) self.image = glance_utils.create_image(self.glance, file_image_settings) self.assertIsNotNone(self.image) self.assertEqual(self.image_name, self.image.name) image = glance_utils.get_image(self.glance, image_settings=file_image_settings) self.assertIsNotNone(image) validation_utils.objects_equivalent(self.image, image)