コード例 #1
0
 def setUpClass(cls):
     """Import some parametrized puppet classes. This is required to make
     sure that we have smart class variable available.
     Read all available smart class parameters for imported puppet class to
     be able to work with unique entity for each specific test.
     """
     super(SmartClassParametersTestCase, cls).setUpClass()
     cls.puppet_modules = [
         {'author': 'robottelo', 'name': 'cli_test_classparameters'},
     ]
     cls.org = make_org()
     cv = publish_puppet_module(
         cls.puppet_modules, CUSTOM_PUPPET_REPO, cls.org['id'])
     cls.env = Environment.list({
         'search': u'content_view="{0}"'.format(cv['name'])
     })[0]
     cls.puppet_class = Puppet.info({
         'name': cls.puppet_modules[0]['name'],
         'environment': cls.env['name'],
     })
     cls.sc_params_list = SmartClassParameter.list({
         'environment': cls.env['name'],
         'search': u'puppetclass="{0}"'.format(cls.puppet_class['name'])
     })
     cls.sc_params_ids_list = [
         sc_param['id'] for sc_param in cls.sc_params_list]
コード例 #2
0
    def test_positive_list_scparams_by_id(self):
        """List all overridden smart class parameters using hostgroup id

        :id: 42a24060-2ed7-427e-8396-86d73bbe5f69

        :expectedresults: Overridden sc-param from puppet class is listed

        :Caselevel: Integration
        """
        # Create hostgroup with associated puppet class
        hostgroup = make_hostgroup({
            'puppet-classes': self.puppet_classes[0]['name'],
            'environment': self.env['name'],
            'content-view': self.cv['name'],
            'query-organization': self.org['name'],
        })
        # Override one of the sc-params from puppet class
        sc_params_list = SmartClassParameter.list({
            'environment': self.env['name'],
            'search': u'puppetclass="{0}"'.format(
                self.puppet_classes[0]['name'])
        })
        scp_id = choice(sc_params_list)['id']
        SmartClassParameter.update({'id': scp_id, 'override': 1})
        # Verify that affected sc-param is listed
        hg_scparams = HostGroup.sc_params({'hostgroup-id': hostgroup['id']})
        self.assertIn(scp_id, [scp['id'] for scp in hg_scparams])
コード例 #3
0
    def test_positive_list_parameters_by_puppetclass_id(self):
        """List all the parameters for specific puppet class by id.

        @id: a7a8af1a-514b-4910-9e19-75306f634041

        @assert: Parameters listed for specific Puppet class.
        """
        sc_params_list = SmartClassParameter.list(
            {"environment": self.env["name"], "puppet-class-id": self.puppet["id"]}
        )
        self.assertGreater(len(sc_params_list), 0)
コード例 #4
0
    def test_positive_list_parameters_by_puppetclass_name(self):
        """List all the parameters for specific puppet class by name.

        @id: 6d62968f-dc5b-4d7f-ac21-c1335a827960

        @assert: Parameters listed for specific Puppet class.
        """
        sc_params_list = SmartClassParameter.list(
            {"environment": self.env["name"], "puppet-class": self.puppet["name"]}
        )
        self.assertGreater(len(sc_params_list), 0)
コード例 #5
0
 def setUpClass(cls):
     """Import some parametrized puppet classes. This is required to make
     sure that we have smart class variable available.
     Read all available smart class parameters for imported puppet class to
     be able to work with unique entity for each specific test. Raise an
     exception and skip all tests in case not enough parameters returned.
     """
     super(SmartClassParametersTestCase, cls).setUpClass()
     cls.host_name = settings.server.hostname
     ssh.command("puppet module install --force puppetlabs/ntp")
     cls.env = Environment.info({u"name": "production"})
     Proxy.importclasses({u"environment": cls.env["name"], u"name": cls.host_name})
     cls.puppet = Puppet.info({u"name": "ntp"})
     sc_params_list = SmartClassParameter.list({"environment": cls.env["name"], "search": "puppetclass=ntp"})
     if len(sc_params_list) < 45:
         raise RuntimeError("There are not enough smart class parameters to" " work with in provided puppet class")
     cls.sc_params_ids_list = [sc_param["id"] for sc_param in sc_params_list]
コード例 #6
0
ファイル: test_environment.py プロジェクト: elyezer/robottelo
    def test_positive_sc_params_by_name(self):
        """Check if environment sc-param subcommand works passing
        an environment name

        :id: e2fdd262-9b09-4252-8a5a-4e578e3b8547

        :expectedresults: The command runs without raising an error

        :CaseImportance: Critical
        """
        sc_params_list = SmartClassParameter.list({
            'environment': self.env['name'],
            'search': u'puppetclass="{0}"'.format(self.puppet_class['name'])
        })
        scp_id = choice(sc_params_list)['id']
        SmartClassParameter.update({'id': scp_id, 'override': 1})
        # Verify that affected sc-param is listed
        env_scparams = Environment.sc_params(
            {'environment': self.env['name']})
        self.assertIn(scp_id, [scp['id'] for scp in env_scparams])
コード例 #7
0
ファイル: test_environment.py プロジェクト: elyezer/robottelo
    def test_positive_sc_params_by_id(self):
        """Check if environment sc-param subcommand works passing
        an environment id

        :id: 32de4f0e-7b52-411c-a111-9ed472c3fc34

        :expectedresults: The command runs without raising an error

        :CaseImportance: Critical
        """
        # Override one of the sc-params from puppet class
        sc_params_list = SmartClassParameter.list({
            'environment': self.env['name'],
            'search': u'puppetclass="{0}"'.format(self.puppet_class['name'])
        })
        scp_id = choice(sc_params_list)['id']
        SmartClassParameter.update({'id': scp_id, 'override': 1})
        # Verify that affected sc-param is listed
        env_scparams = Environment.sc_params(
            {'environment-id': self.env['id']})
        self.assertIn(scp_id, [scp['id'] for scp in env_scparams])
コード例 #8
0
    def test_positive_sc_params_by_id(self):
        """Check if environment sc-param subcommand works passing
        an environment id

        :id: 32de4f0e-7b52-411c-a111-9ed472c3fc34

        :expectedresults: The command runs without raising an error

        :CaseImportance: Critical
        """
        # Override one of the sc-params from puppet class
        sc_params_list = SmartClassParameter.list({
            'environment':
            self.env['name'],
            'search':
            u'puppetclass="{0}"'.format(self.puppet_class['name'])
        })
        scp_id = choice(sc_params_list)['id']
        SmartClassParameter.update({'id': scp_id, 'override': 1})
        # Verify that affected sc-param is listed
        env_scparams = Environment.sc_params(
            {'environment-id': self.env['id']})
        self.assertIn(scp_id, [scp['id'] for scp in env_scparams])
コード例 #9
0
 def setUpClass(cls):
     """Import some parametrized puppet classes. This is required to make
     sure that we have smart class variable available.
     Read all available smart class parameters for imported puppet class to
     be able to work with unique entity for each specific test.
     """
     super(SmartClassParametersTestCase, cls).setUpClass()
     cls.puppet_modules = [{'author': 'robottelo', 'name': 'cli_test_classparameters'}]
     cls.org = make_org()
     cls.loc = make_location()
     cv = publish_puppet_module(cls.puppet_modules, CUSTOM_PUPPET_REPO, cls.org['id'])
     cls.env = Environment.list({'search': 'content_view="{0}"'.format(cv['name'])})[0]
     Environment.update(
         {
             'name': cls.env['name'],
             'organization-ids': cls.org['id'],
             'location-ids': cls.loc['id'],
         }
     )
     cls.puppet_class = Puppet.info(
         {'name': cls.puppet_modules[0]['name'], 'environment': cls.env['name']}
     )
     cls.sc_params_list = SmartClassParameter.list(
         {
             'environment': cls.env['name'],
             'search': 'puppetclass="{0}"'.format(cls.puppet_class['name']),
         }
     )
     cls.sc_params_ids_list = [sc_param['id'] for sc_param in cls.sc_params_list]
     cls.host = entities.Host(
         organization=cls.org['id'], location=cls.loc['id'], environment=cls.env['name']
     ).create()
     cls.host.add_puppetclass(data={'puppetclass_id': cls.puppet_class['id']})
     cls.hostgroup = make_hostgroup(
         {'environment-id': cls.env['id'], 'puppet-class-ids': cls.puppet_class['id']}
     )
コード例 #10
0
    def test_positive_list(self, module_org, module_location, module_puppet,
                           module_sc_params):
        """List all the parameters included in specific elements.

        :id: 9fcfbe32-d388-435d-a629-6969a50a4243

        :expectedresults: Parameters listed for specific Environment
            (by name and id), Host (name, id), Hostgroup (name, id),
            and puppetclass (name)

        :CaseImportance: Medium
        """
        host = entities.Host(
            organization=module_org.id,
            location=module_location.id,
            environment=module_puppet['env']['name'],
        ).create()
        host.add_puppetclass(
            data={'puppetclass_id': module_puppet['class']['id']})
        hostgroup = make_hostgroup({
            'environment-id':
            module_puppet['env']['id'],
            'puppet-class-ids':
            module_puppet['class']['id'],
        })

        list_queries = [
            {
                'environment': module_puppet['env']['name']
            },
            {
                'environment-id': module_puppet['env']['id']
            },
            {
                'host': host.name
            },
            {
                'host-id': host.id
            },
            {
                'hostgroup': hostgroup["name"]
            },
            {
                'hostgroup-id': hostgroup["id"]
            },
            {
                'puppet-class': module_puppet['class']['name']
            },
        ]

        # override an example parameter
        sc_param_id = module_sc_params['ids'].pop()
        SmartClassParameter.update({'id': sc_param_id, 'override': 1})
        sc_param = SmartClassParameter.info({
            'puppet-class':
            module_puppet['class']['name'],
            'id':
            sc_param_id
        })
        assert sc_param['override'] is True

        # check listing parameters for selected queries
        for query in list_queries:
            sc_params = SmartClassParameter.list(query)
            assert len(
                sc_params) > 0, f"Failed to list parameters for query: {query}"
            assert sc_param_id in [scp['id'] for scp in sc_params]
            # Check that only unique results are returned
            assert len(sc_params) == len({
                scp['id']
                for scp in sc_params
            }), f'Not only unique results returned for query: {query}'
コード例 #11
0
    def test_positive_list(self):
        """List all the parameters included in specific elements.

        :id: 9fcfbe32-d388-435d-a629-6969a50a4243

        :expectedresults: Parameters listed for specific Environment
            (by name and id), Host (name, id), Hostgroup (name, id),
            and puppetclass (name)

        :CaseImportance: Medium
        """

        list_queries = [
            {
                'environment': self.env['name']
            },
            {
                'environment-id': self.env['id']
            },
            {
                'host': self.host.name
            },
            {
                'host-id': self.host.id
            },
            {
                'hostgroup': self.hostgroup["name"]
            },
            {
                'hostgroup-id': self.hostgroup["id"]
            },
            {
                'puppet-class': self.puppet_class['name']
            },
        ]

        # override an example parameter
        sc_param_id = self.sc_params_ids_list.pop()
        SmartClassParameter.update({
            'id': sc_param_id,
            'override': 1,
        })
        sc_param = SmartClassParameter.info({
            'puppet-class':
            self.puppet_class['name'],
            'id':
            sc_param_id,
        })
        self.assertEqual(sc_param['override'], True)

        # check listing parameters for selected queries
        for query in list_queries:
            with self.subTest(query):
                sc_params = SmartClassParameter.list(query)
                self.assertGreater(
                    len(sc_params), 0,
                    "Failed to list parameters for query: {}".format(query))

                self.assertIn(sc_param_id, [scp['id'] for scp in sc_params])

                # Check that only unique results are returned
                self.assertEqual(
                    len(sc_params), len({scp['id']
                                         for scp in sc_params}),
                    "Not only unique resutls returned for query: {}".format(
                        query))