def test_positive_delete_rule_with_non_admin_user(self):
        """Delete rule with non-admin user by associating discovery_manager role

        :id: 87ab969b-7d92-478d-a5c0-1c0d50e9bdd6

        :expectedresults: Rule should be deleted successfully.

        :CaseLevel: Integration
        """
        rule_name = gen_string('alpha')
        rule = DiscoveryRule.with_user(
            self.user['login'],
            self.user['password']
        ).create({
            u'name': rule_name,
            u'search': 'cpu_count = 5',
            u'organization-ids': self.org['id'],
            u'location-ids': self.loc['id'],
            u'hostgroup-id': self.hostgroup['id'],
        })
        rule = DiscoveryRule.with_user(
            self.user['login'],
            self.user['password']
        ).info({u'id': rule['id']})
        DiscoveryRule.with_user(
            self.user['login'],
            self.user['password'],
        ).delete({u'id': rule['id']})
        with self.assertRaises(CLIReturnCodeError):
            DiscoveryRule.info({u'id': rule['id']})
    def test_positive_delete(self):
        """Delete existing Discovery Rule

        @id: c9b88a94-13c4-496f-a5c1-c088187250dc

        @Assert: Rule should be successfully deleted
        """
        rule = self._make_discoveryrule()
        DiscoveryRule.delete({u'id': rule['id']})
        with self.assertRaises(CLIReturnCodeError):
            DiscoveryRule.info({u'id': rule['id']})
    def test_positive_delete(self):
        """Delete existing Discovery Rule

        :id: c9b88a94-13c4-496f-a5c1-c088187250dc

        :expectedresults: Rule should be successfully deleted

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule()
        DiscoveryRule.delete({u'id': rule['id']})
        with self.assertRaises(CLIReturnCodeError):
            DiscoveryRule.info({u'id': rule['id']})
    def test_positive_update_org_loc(self):
        """Update org and location of selected discovery rule

        :id: 26da79aa-30e5-4052-98ae-141de071a68a

        :expectedresults: Rule was updated and with given org & location.

        :BZ: 1377990

        :CaseLevel: Integration
        """
        new_org = make_org()
        new_loc = make_location()
        new_hostgroup = make_hostgroup({
            'organization-ids': new_org['id'],
            'location-ids': new_loc['id'],
        })
        rule = self._make_discoveryrule()
        DiscoveryRule.update({
            'id': rule['id'],
            'organization-ids': new_org['id'],
            'location-ids': new_loc['id'],
            'hostgroup-id': new_hostgroup['id'],
        })
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertIn(new_org['name'], rule['organizations'])
        self.assertIn(new_loc['name'], rule['locations'])
Example #5
0
    def test_positive_update_org_loc_by_name(self):
        """Update org and location of selected discovery rule using org/loc
        names

        :id: 7a5d61ac-6a2d-48f6-a00d-df437a7dc3c4

        :expectedresults: Rule was updated and with given org & location.

        :BZ: 1377990

        :CaseLevel: Component

        :CaseImportance: Medium
        """
        new_org = make_org()
        new_loc = make_location()
        new_hostgroup = make_hostgroup({
            'organization-ids': new_org['id'],
            'location-ids': new_loc['id']
        })
        rule = self._make_discoveryrule()
        DiscoveryRule.update({
            'id': rule['id'],
            'organizations': new_org['name'],
            'locations': new_loc['name'],
            'hostgroup-id': new_hostgroup['id'],
        })
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertIn(new_org['name'], rule['organizations'])
        self.assertIn(new_loc['name'], rule['locations'])
Example #6
0
    def test_positive_update_org_loc_by_name(self, discoveryrule_factory):
        """Update org and location of selected discovery rule using org/loc
        names

        :id: 7a5d61ac-6a2d-48f6-a00d-df437a7dc3c4

        :expectedresults: Rule was updated and with given org & location.

        :BZ: 1377990

        :CaseLevel: Component

        :CaseImportance: Medium
        """
        new_org = Box(make_org())
        new_loc = Box(make_location())
        new_hostgroup = Box(
            make_hostgroup({'organization-ids': new_org.id, 'location-ids': new_loc.id})
        )
        rule = discoveryrule_factory()
        DiscoveryRule.update(
            {
                'id': rule.id,
                'organizations': new_org.name,
                'locations': new_loc.name,
                'hostgroup-id': new_hostgroup.id,
            }
        )
        rule = Box(DiscoveryRule.info({'id': rule.id}))
        assert new_org.name in rule.organizations
        assert new_loc.name in rule.locations
Example #7
0
    def test_positive_update_org_loc_by_id(self, discoveryrule_factory):
        """Update org and location of selected discovery rule using org/loc ids

        :id: 26da79aa-30e5-4052-98ae-141de071a68a

        :expectedresults: Rule was updated and with given org & location.

        :BZ: 1377990

        :CaseLevel: Component
        """
        new_org = Box(make_org())
        new_loc = Box(make_location())
        new_hostgroup = Box(
            make_hostgroup({'organization-ids': new_org.id, 'location-ids': new_loc.id})
        )
        rule = discoveryrule_factory()
        DiscoveryRule.update(
            {
                'id': rule.id,
                'organization-ids': new_org.id,
                'location-ids': new_loc.id,
                'hostgroup-id': new_hostgroup.id,
            }
        )
        rule = Box(DiscoveryRule.info({'id': rule.id}))
        assert new_org.name in rule.organizations
        assert new_loc.name in rule.locations
Example #8
0
    def test_positive_update_org_loc(self):
        """Update org and location of selected discovery rule

        :id: 26da79aa-30e5-4052-98ae-141de071a68a

        :expectedresults: Rule was updated and with given org & location.

        :BZ: 1377990

        :CaseLevel: Integration
        """
        new_org = make_org()
        new_loc = make_location()
        new_hostgroup = make_hostgroup({
            'organization-ids': new_org['id'],
            'location-ids': new_loc['id'],
        })
        rule = self._make_discoveryrule()
        DiscoveryRule.update({
            'id': rule['id'],
            'organization-ids': new_org['id'],
            'location-ids': new_loc['id'],
            'hostgroup-id': new_hostgroup['id'],
        })
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertIn(new_org['name'], rule['organizations'])
        self.assertIn(new_loc['name'], rule['locations'])
    def test_positive_update_disable_enable(self):
        """Update discovery rule enabled state. (Disabled->Enabled)

        @id: 64e8b21b-2ab0-49c3-a12d-02dbdb36647a

        @Assert: Rule is successfully enabled
        """
        rule = self._make_discoveryrule({u'enabled': 'false'})
        self.assertEqual(rule['enabled'], 'false')
        DiscoveryRule.update({'id': rule['id'], 'enabled': 'true'})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['enabled'], 'true')
    def test_positive_update_priority(self):
        """Update discovery rule priority value

        @id: 0543cc73-c692-4bbf-818b-37353ec98986

        @Assert: Rule priority is updated
        """
        rule = self._make_discoveryrule({u'priority': 100})
        new_priority = '1'
        DiscoveryRule.update({'id': rule['id'], 'priority': new_priority})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['priority'], new_priority)
    def test_positive_update_limit(self):
        """Update discovery rule limit value

        @id: efa6f5bc-4d56-4449-90f5-330affbcfb09

        @Assert: Rule host limit field is updated
        """
        rule = self._make_discoveryrule({u'hosts-limit': '5'})
        new_limit = '10'
        DiscoveryRule.update({'id': rule['id'], 'hosts-limit': new_limit})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['hosts-limit'], new_limit)
    def test_positive_update_query(self):
        """Update discovery rule search query

        @id: 86943095-acc5-40ff-8e3c-88c76b36333d

        @Assert: Rule search field is updated
        """
        rule = self._make_discoveryrule()
        new_query = 'model = KVM'
        DiscoveryRule.update({'id': rule['id'], 'search': new_query})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['search'], new_query)
    def test_positive_update_hostname(self):
        """Update discovery rule hostname value

        @id: 4c123488-92df-42f6-afe3-8a88cd90ffc2

        @Assert: Rule host name is updated
        """
        new_hostname = gen_string('alpha')
        rule = self._make_discoveryrule()
        DiscoveryRule.update({'id': rule['id'], 'hostname': new_hostname})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['hostname-template'], new_hostname)
    def test_positive_update_name(self):
        """Update discovery rule name

        @id: 1045e2c4-e1f7-42c9-95f7-488fc79bf70b

        @Assert: Rule name is updated
        """
        rule = self._make_discoveryrule()
        new_name = gen_string('numeric')
        DiscoveryRule.update({'id': rule['id'], 'name': new_name})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['name'], new_name)
Example #15
0
    def test_positive_update_name(self):
        """Update discovery rule name

        :id: 1045e2c4-e1f7-42c9-95f7-488fc79bf70b

        :expectedresults: Rule name is updated

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule()
        new_name = gen_string('numeric')
        DiscoveryRule.update({'id': rule['id'], 'name': new_name})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['name'], new_name)
Example #16
0
    def test_positive_update_query(self, discoveryrule_factory):
        """Update discovery rule search query

        :id: 86943095-acc5-40ff-8e3c-88c76b36333d

        :expectedresults: Rule search field is updated

        :CaseLevel: Component
        """
        rule = discoveryrule_factory()
        new_query = 'model = KVM'
        DiscoveryRule.update({'id': rule.id, 'search': new_query})
        rule = AttrDict(DiscoveryRule.info({'id': rule.id}))
        assert rule.search == new_query
Example #17
0
    def test_positive_update_disable_enable(self):
        """Update discovery rule enabled state. (Disabled->Enabled)

        :id: 64e8b21b-2ab0-49c3-a12d-02dbdb36647a

        :expectedresults: Rule is successfully enabled

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule({u'enabled': 'false'})
        self.assertEqual(rule['enabled'], 'false')
        DiscoveryRule.update({'id': rule['id'], 'enabled': 'true'})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['enabled'], 'true')
Example #18
0
    def test_positive_update_priority(self):
        """Update discovery rule priority value

        :id: 0543cc73-c692-4bbf-818b-37353ec98986

        :expectedresults: Rule priority is updated

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule({u'priority': 100})
        new_priority = '1'
        DiscoveryRule.update({'id': rule['id'], 'priority': new_priority})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['priority'], new_priority)
Example #19
0
    def test_positive_update_limit(self):
        """Update discovery rule limit value

        :id: efa6f5bc-4d56-4449-90f5-330affbcfb09

        :expectedresults: Rule host limit field is updated

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule({u'hosts-limit': '5'})
        new_limit = '10'
        DiscoveryRule.update({'id': rule['id'], 'hosts-limit': new_limit})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['hosts-limit'], new_limit)
Example #20
0
    def test_positive_update_disable_enable(self, discoveryrule_factory):
        """Update discovery rule enabled state. (Disabled->Enabled)

        :id: 64e8b21b-2ab0-49c3-a12d-02dbdb36647a

        :expectedresults: Rule is successfully enabled

        :CaseImportance: Critical
        """
        rule = discoveryrule_factory(options={'enabled': 'false'})
        assert rule.enabled == 'false'
        DiscoveryRule.update({'id': rule.id, 'enabled': 'true'})
        rule = AttrDict(DiscoveryRule.info({'id': rule.id}))
        assert rule.enabled == 'true'
Example #21
0
    def test_positive_update_disable_enable(self):
        """Update discovery rule enabled state. (Disabled->Enabled)

        :id: 64e8b21b-2ab0-49c3-a12d-02dbdb36647a

        :expectedresults: Rule is successfully enabled

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule({u'enabled': 'false'})
        self.assertEqual(rule['enabled'], 'false')
        DiscoveryRule.update({'id': rule['id'], 'enabled': 'true'})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['enabled'], 'true')
Example #22
0
    def test_positive_update_name(self):
        """Update discovery rule name

        :id: 1045e2c4-e1f7-42c9-95f7-488fc79bf70b

        :expectedresults: Rule name is updated

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule()
        new_name = gen_string('numeric')
        DiscoveryRule.update({'id': rule['id'], 'name': new_name})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['name'], new_name)
Example #23
0
    def test_positive_update_limit(self):
        """Update discovery rule limit value

        :id: efa6f5bc-4d56-4449-90f5-330affbcfb09

        :expectedresults: Rule host limit field is updated

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule({u'hosts-limit': '5'})
        new_limit = '10'
        DiscoveryRule.update({'id': rule['id'], 'hosts-limit': new_limit})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['hosts-limit'], new_limit)
Example #24
0
    def test_positive_update_hostname(self, discoveryrule_factory):
        """Update discovery rule hostname value

        :id: 4c123488-92df-42f6-afe3-8a88cd90ffc2

        :expectedresults: Rule host name is updated

        :CaseLevel: Component
        """
        new_hostname = gen_string('alpha')
        rule = discoveryrule_factory()
        DiscoveryRule.update({'id': rule.id, 'hostname': new_hostname})
        rule = AttrDict(DiscoveryRule.info({'id': rule.id}))
        assert rule['hostname-template'] == new_hostname
Example #25
0
    def test_positive_update_hostgroup(self, discoveryrule_factory, class_org):
        """Update discovery rule host group

        :id: 07992a3f-2aa9-4e45-b2e8-ef3d2f255292

        :expectedresults: Rule host group is updated

        :CaseLevel: Component
        """
        new_hostgroup = Box(make_hostgroup({'organization-ids': class_org.id}))
        rule = discoveryrule_factory()
        DiscoveryRule.update({'id': rule.id, 'hostgroup': new_hostgroup.name})
        rule = DiscoveryRule.info({'id': rule.id})
        assert rule['host-group'] == new_hostgroup.name
Example #26
0
    def test_positive_update_query(self):
        """Update discovery rule search query

        :id: 86943095-acc5-40ff-8e3c-88c76b36333d

        :expectedresults: Rule search field is updated

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule()
        new_query = 'model = KVM'
        DiscoveryRule.update({'id': rule['id'], 'search': new_query})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['search'], new_query)
Example #27
0
    def test_positive_update_query(self):
        """Update discovery rule search query

        :id: 86943095-acc5-40ff-8e3c-88c76b36333d

        :expectedresults: Rule search field is updated

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule()
        new_query = 'model = KVM'
        DiscoveryRule.update({'id': rule['id'], 'search': new_query})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['search'], new_query)
Example #28
0
    def test_positive_update_hostname(self):
        """Update discovery rule hostname value

        :id: 4c123488-92df-42f6-afe3-8a88cd90ffc2

        :expectedresults: Rule host name is updated

        :CaseImportance: Critical
        """
        new_hostname = gen_string('alpha')
        rule = self._make_discoveryrule()
        DiscoveryRule.update({'id': rule['id'], 'hostname': new_hostname})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['hostname-template'], new_hostname)
Example #29
0
    def test_positive_update_limit(self, discoveryrule_factory):
        """Update discovery rule limit value

        :id: efa6f5bc-4d56-4449-90f5-330affbcfb09

        :expectedresults: Rule host limit field is updated

        :CaseLevel: Component
        """
        rule = discoveryrule_factory(options={'hosts-limit': '5'})
        new_limit = '10'
        DiscoveryRule.update({'id': rule.id, 'hosts-limit': new_limit})
        rule = AttrDict(DiscoveryRule.info({'id': rule.id}))
        assert rule['hosts-limit'] == new_limit
Example #30
0
    def test_positive_update_priority(self):
        """Update discovery rule priority value

        :id: 0543cc73-c692-4bbf-818b-37353ec98986

        :expectedresults: Rule priority is updated

        :CaseImportance: Critical
        """
        rule = self._make_discoveryrule({u'priority': 100})
        new_priority = '1'
        DiscoveryRule.update({'id': rule['id'], 'priority': new_priority})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['priority'], new_priority)
Example #31
0
    def test_positive_update_hostname(self):
        """Update discovery rule hostname value

        :id: 4c123488-92df-42f6-afe3-8a88cd90ffc2

        :expectedresults: Rule host name is updated

        :CaseImportance: Critical
        """
        new_hostname = gen_string('alpha')
        rule = self._make_discoveryrule()
        DiscoveryRule.update({'id': rule['id'], 'hostname': new_hostname})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['hostname-template'], new_hostname)
Example #32
0
    def test_positive_delete_rule_with_non_admin_user(self, class_org,
                                                      class_location,
                                                      class_user_manager,
                                                      class_hostgroup,
                                                      class_user_password):
        """Delete rule with non-admin user by associating discovery_manager role

        :id: 87ab969b-7d92-478d-a5c0-1c0d50e9bdd6

        :expectedresults: Rule should be deleted successfully.

        :CaseLevel: Integration
        """
        rule_name = gen_string('alpha')
        rule = AttrDict(
            DiscoveryRule.with_user(class_user_manager.login,
                                    class_user_password).create({
                                        'name':
                                        rule_name,
                                        'search':
                                        'cpu_count = 5',
                                        'organizations':
                                        class_org.name,
                                        'locations':
                                        class_location.name,
                                        'hostgroup-id':
                                        class_hostgroup.id,
                                    }))
        rule = AttrDict(
            DiscoveryRule.with_user(class_user_manager.login,
                                    class_user_password).info({'id': rule.id}))

        DiscoveryRule.with_user(class_user_manager.login,
                                class_user_password).delete({'id': rule.id})
        with pytest.raises(CLIReturnCodeError):
            DiscoveryRule.info({'id': rule.id})
    def test_positive_update_hostgroup(self):
        """Update discovery rule host group

        @id: 07992a3f-2aa9-4e45-b2e8-ef3d2f255292

        @Assert: Rule host group is updated
        """
        new_hostgroup = make_hostgroup({u'organization-ids': self.org['id']})
        rule = self._make_discoveryrule()
        DiscoveryRule.update({
            'id': rule['id'],
            'hostgroup': new_hostgroup['name']
        })
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['host-group'], new_hostgroup['name'])
Example #34
0
    def test_positive_update_hostgroup(self, discoveryrule_factory, class_org):
        """Update discovery rule host group

        :id: 07992a3f-2aa9-4e45-b2e8-ef3d2f255292

        :expectedresults: Rule host group is updated

        :CaseLevel: Component
        """
        new_hostgroup = AttrDict(
            make_hostgroup({'organization-ids': class_org.id}))
        rule = discoveryrule_factory()
        DiscoveryRule.update({'id': rule.id, 'hostgroup': new_hostgroup.name})
        rule = DiscoveryRule.info({'id': rule.id})
        # AttrDict doesn't support attributized access on key with a hyphen
        assert rule['host-group'] == new_hostgroup.name
Example #35
0
    def test_positive_update_name(self, discoveryrule_factory):
        """Update discovery rule name

        :id: 1045e2c4-e1f7-42c9-95f7-488fc79bf70b

        :expectedresults: Rule name is updated

        :CaseLevel: Component

        :CaseImportance: Medium
        """
        rule = discoveryrule_factory()
        new_name = gen_string('numeric')
        DiscoveryRule.update({'id': rule.id, 'name': new_name})
        rule = AttrDict(DiscoveryRule.info({'id': rule.id}))
        assert rule.name == new_name
Example #36
0
    def test_positive_update_hostgroup(self):
        """Update discovery rule host group

        :id: 07992a3f-2aa9-4e45-b2e8-ef3d2f255292

        :expectedresults: Rule host group is updated

        :CaseLevel: Component
        """
        new_hostgroup = make_hostgroup({'organization-ids': self.org['id']})
        rule = self._make_discoveryrule()
        DiscoveryRule.update({
            'id': rule['id'],
            'hostgroup': new_hostgroup['name']
        })
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['host-group'], new_hostgroup['name'])
Example #37
0
    def test_positive_update_priority(self, discoveryrule_factory):
        """Update discovery rule priority value

        :id: 0543cc73-c692-4bbf-818b-37353ec98986

        :expectedresults: Rule priority is updated

        :CaseImportance: Critical
        """
        available = set(range(1, 1000)) - {Box(r).priority for r in DiscoveryRule.list()}
        rule_priority = random.sample(available, 1)
        rule = discoveryrule_factory(options={'priority': rule_priority[0]})
        assert rule.priority == str(rule_priority[0])
        available = set(range(1, 1000)) - {Box(r).priority for r in DiscoveryRule.list()}
        rule_priority = random.sample(available, 1)
        DiscoveryRule.update({'id': rule.id, 'priority': rule_priority[0]})
        rule = Box(DiscoveryRule.info({'id': rule.id}))
        assert rule.priority == str(rule_priority[0])
Example #38
0
    def test_positive_update_priority(self):
        """Update discovery rule priority value

        :id: 0543cc73-c692-4bbf-818b-37353ec98986

        :expectedresults: Rule priority is updated

        :CaseImportance: Critical
        """
        available = set(range(1, 1000)) - set(
            [r['priority'] for r in DiscoveryRule.list()])
        rule_priority = random.sample(available, 1)
        rule = self._make_discoveryrule({'priority': rule_priority[0]})
        self.assertEqual(rule['priority'], str(rule_priority[0]))
        available = set(range(1, 1000)) - set(
            [r['priority'] for r in DiscoveryRule.list()])
        rule_priority = random.sample(available, 1)
        DiscoveryRule.update({'id': rule['id'], 'priority': rule_priority[0]})
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertEqual(rule['priority'], str(rule_priority[0]))
    def test_positive_update_org_loc(self):
        """Update org and location of selected discovery rule

        @id: 26da79aa-30e5-4052-98ae-141de071a68a

        @Assert: Rule was updated and with given org & location.

        @CaseLevel: Integration
        """
        new_org = make_org()
        new_loc = make_location()
        rule = self._make_discoveryrule()
        DiscoveryRule.update({
            'id': rule['id'],
            'organization-ids': new_org['id'],
            'location-ids': new_loc['id'],
        })
        rule = DiscoveryRule.info({'id': rule['id']})
        self.assertIn(rule['organizations'], new_org['name'])
        self.assertIn(rule['locations'], new_loc['name'])