Exemplo n.º 1
0
    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))
Exemplo n.º 2
0
    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))
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)
Exemplo n.º 6
0
    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))
Exemplo n.º 7
0
    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))
Exemplo n.º 8
0
    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')
Exemplo n.º 9
0
    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)