Beispiel #1
0
    def test_get_by_name(self):
        """
        Test the get_by_name function.
        """
        Database.create_group('some group')
        Database.create_group('other group')
        group = Group.get_by_name('some group')
        self.assertEqual(group.name, 'some group')

        with self.assertRaises(DoesNotExist):
            Group.get_by_name('not group')
Beispiel #2
0
    def test_add_member(self):
        """
        Test the GetGroup API function.
        """
        Database.create_group('TEST GROUP')
        target = Database.create_target()

        data = APIClient.add_group_member(self.client, 'TEST GROUP',
                                          target.name)
        self.assertEqual(data['error'], False)

        group = Database.get_group('TEST GROUP')
        self.assertListEqual(group.whitelist_members, [target.name])
Beispiel #3
0
    def test_target_rename_association(self):
        """
        Tests the RenameTarget API function, check to make sure Sessions, Targets, and Groups.
        """
        target = Database.create_target()
        target_name = target.name
        session_id = Database.create_session(target_name).session_id
        orig_group = Database.create_group('some_group')
        orig_group.whitelist_member(target.name)
        action_id = Database.create_action(target_name).action_id

        data = APIClient.rename_target(self.client, target_name, 'TEST')
        self.assertEqual(data['error'], False)
        target = Database.get_target('TEST')
        self.assertIsNotNone(target)
        with self.assertRaises(DoesNotExist):
            Database.get_target(target_name)

        self.assertEqual(target.name, 'TEST')

        session = Database.get_session(session_id)
        self.assertEqual(session.target_name, 'TEST')

        action = Database.get_action(action_id)
        self.assertEqual(action.target_name, 'TEST')

        group = Database.get_group(orig_group.name)
        self.assertIn(target.name, group.member_names)
Beispiel #4
0
 def test_list(self):
     """
     Populates the database with sample groups, and calls the list API
     function to ensure that all are returned.
     """
     groups = [
         Database.create_group(),
         Database.create_group(),
         Database.create_group(),
         Database.create_group(),
         Database.create_group(),
     ]
     data = APIClient.list_groups(self.client)
     self.assertEqual(data['error'], False)
     self.assertEqual(sorted(list(data['groups'].keys())),
                      sorted([group.name for group in groups]))
 def test_create(self):
     """
     Attempt to create a GroupAction document
     """
     targets = [
         Database.create_target().name,
         Database.create_target().name,
         Database.create_target().name,
         Database.create_target().name,
         Database.create_target().name,
     ]
     Database.create_group('test_group', targets)
     group_action = Database.create_group_action('test_group', 'exec echo hi')
     self.assertEqual(group_action.cancelled, False)
     self.assertEqual(group_action.action_string, 'exec echo hi')
     for action in group_action.actions:
         self.assertEqual(action.action_string, 'exec echo hi')
         self.assertIn(action.target_name, targets)
Beispiel #6
0
 def test_whitelist_member(self):
     """
     Test the whitelist_member function.
     """
     group = Database.create_group('SOME GROUP')
     target = Database.create_target()
     group.whitelist_member(target.name)
     group = Database.get_group('SOME GROUP')
     self.assertListEqual([target.name], group.whitelist_members)
Beispiel #7
0
    def test_target_groups(self):
        """
        Test the get_target_groups function.
        """
        target = Database.create_target()
        group1 = Database.create_group('group1')
        group2 = Database.create_group('group2')
        Database.create_group('group3')

        group1.whitelist_member(target.name)
        group2.whitelist_member(target.name)
        group_names = [
            group.name for group in Group.get_target_groups(target.name)
        ]

        self.assertIn('group1', group_names)
        self.assertIn('group2', group_names)
        self.assertNotIn('group3', group_names)
Beispiel #8
0
    def test_get(self):
        """
        Test the GetGroup API function.
        """
        targets = [
            Database.create_target(),
            Database.create_target(),
            Database.create_target(),
        ]
        Database.create_group('TEST GROUP',
                              [target.name for target in targets])

        data = APIClient.get_group(self.client, 'TEST GROUP')
        self.assertEqual(data['error'], False)

        self.assertEqual(data['group']['name'], 'TEST GROUP')
        self.assertListEqual(sorted(data['group']['whitelist_members']),
                             sorted([target.name for target in targets]))
Beispiel #9
0
 def test_delete(self):
     """
     Test the DeleteGroup function.
     """
     group = Database.create_group()
     data = APIClient.delete_group(self.client, group.name)
     self.assertEqual(data['error'], False)
     with self.assertRaises(DoesNotExist):
         Database.get_group(group.name)
Beispiel #10
0
    def test_remove_member(self):
        """
        Test the RemoveGroupMember function.
        """
        targets = [
            Database.create_target().name,
            Database.create_target().name,
            Database.create_target().name,
        ]

        Database.create_group('REMOVE GROUP', targets)

        data = APIClient.remove_group_member(self.client, 'REMOVE GROUP',
                                             targets[0])
        self.assertEqual(data['error'], False)

        group = Database.get_group('REMOVE GROUP')

        self.assertListEqual(sorted(targets[1:]), sorted(group.member_names))
Beispiel #11
0
    def test_blacklist_member(self):
        """
        Test the BlacklistGroupMember function.
        """
        targets = [
            Database.create_target().name,
            Database.create_target().name,
            Database.create_target().name,
        ]

        Database.create_group('BLACKLIST GROUP', targets)

        data = APIClient.blacklist_group_member(self.client, 'BLACKLIST GROUP',
                                                targets[0])
        self.assertEqual(data['error'], False)

        group = Database.get_group('BLACKLIST GROUP')

        self.assertListEqual(sorted(targets[1:]), sorted(group.member_names))
        self.assertListEqual([targets[0]], group.blacklist_members)
Beispiel #12
0
    def test_remove_member(self):
        """
        Test the remove_member function.
        """
        target1 = Database.create_target()
        target2 = Database.create_target()
        group = Database.create_group('test_group')
        group.whitelist_member(target1.name)
        group.whitelist_member(target2.name)
        group.remove_member(target2.name)

        self.assertNotIn(target2.name, group.members)
Beispiel #13
0
    def test_members(self):
        """
        Test the members function.
        """
        target1 = Database.create_target()
        target2 = Database.create_target()
        target3 = Database.create_target()
        group = Database.create_group('test_group')
        group.whitelist_member(target1.name)
        group.whitelist_member(target2.name)

        member_names = group.members

        self.assertIn(target1.name, member_names)
        self.assertIn(target2.name, member_names)
        self.assertNotIn(target3.name, member_names)
Beispiel #14
0
 def test_create(self):
     """
     This test will pass if the group action is created and content matches.
     """
     targets = [
         Database.create_target().name,
         Database.create_target().name,
         Database.create_target().name,
         Database.create_target().name,
     ]
     group = Database.create_group('TEST', targets)
     data = APIClient.create_group_action(self.client, group.name,
                                          'exec echo hello | wall')
     self.assertEqual(data['error'], False)
     group_action = Database.get_group_action(data['group_action_id'])
     self.assertIsNotNone(group_action)
     self.assertEqual(group_action.action_string, 'exec echo hello | wall')
     for action in group_action.actions:
         self.assertEqual(action.action_string, 'exec echo hello | wall')
Beispiel #15
0
    def test_group_rules(self):
        """
        Test if group Automember rules are functioning as expected.
        """
        group = Database.create_group()
        targets = [
            Database.create_target(None, None, {'include': 'yes'}),
            Database.create_target(None, None, {'something': {
                'cool': True
            }}),
            Database.create_target(
                None, None, {
                    'interfaces': [{
                        'name': 'eth0',
                        'ip_addrs': ['192.168.1.1', '127.0.0.1']
                    }]
                }),
            Database.create_target(None, None, {
                'include': 'sureyessure',
                'something': {
                    'cool': False
                }
            }),
        ]
        group.membership_rules = [
            Database.create_group_rule(attribute='facts.include',
                                       regex='.*yes.*'),
            Database.create_group_rule(attribute='facts.something.cool',
                                       regex='True'),
            Database.create_group_rule(attribute='facts.interfaces',
                                       regex='.*192.168.1.*'),
        ]
        group.save()

        for target in targets:
            self.assertIn(target.name, group.members)
Beispiel #16
0
 def test_create(self):
     """
     Test to ensure a group can be properly created.
     """
     group = Database.create_group('TEST GROUP')
     self.assertEqual(group.name, 'TEST GROUP')