def test_org_notequals_other_org_is_true(self):
        """Test inequality of an Organization to another."""
        id_1 = '1234567890'
        name_1 = 'My org 1'
        org1 = Organization(id_1, org_name=name_1)

        id_2 = '1234567891'
        name_2 = 'My org 2'
        org2 = Organization(id_2, org_name=name_2)

        self.assertTrue(org1 != org2)
    def test_not_equals(self):
        """Test inequality of an Organization to another."""
        id_1 = '1234567890'
        name_1 = 'My org 1'
        org1 = Organization(id_1, display_name=name_1)

        id_2 = '1234567891'
        name_2 = 'My org 2'
        org2 = Organization(id_2, display_name=name_2)

        self.assertTrue(org1 != org2)
Exemplo n.º 3
0
    def setUp(self):
        """Set up."""
        self.maxDiff = None
        self.fake_timestamp = '12345'
        self.org789 = Organization('778899', display_name='My org')
        self.project1 = Project('my-project-1',
                                12345,
                                display_name='My project 1',
                                parent=self.org789)
        self.project2 = Project('my-project-2',
                                12346,
                                display_name='My project 2')

        # patch the daos
        self.org_patcher = mock.patch(
            'google.cloud.security.common.data_access.'
            'org_resource_rel_dao.OrgResourceRelDao')
        self.mock_org_rel_dao = self.org_patcher.start()
        self.mock_org_rel_dao.return_value = None

        self.project_patcher = mock.patch(
            'google.cloud.security.common.data_access.'
            'project_dao.ProjectDao')
        self.mock_project_dao = self.project_patcher.start()
        self.mock_project_dao.return_value = None
Exemplo n.º 4
0
    def setUp(self):
        """Set up."""
        self.fake_timestamp = '12345'
        self.org789 = Organization('778899', display_name='My org')
        self.project1 = Project('my-project-1',
                                12345,
                                display_name='My project 1',
                                parent=self.org789)
        self.project2 = Project('my-project-2',
                                12346,
                                display_name='My project 2')

        self.folder1 = folder.Folder('333',
                                     display_name='Folder 1',
                                     parent=self.org789)
        self.project3 = Project('my-project-3',
                                12347,
                                display_name='My project 3',
                                parent=self.folder1)

        # patch the organization resource relation dao
        self.patcher = mock.patch(
            'google.cloud.security.common.data_access.org_resource_rel_dao.OrgResourceRelDao'
        )
        self.mock_org_rel_dao = self.patcher.start()
        self.mock_org_rel_dao.return_value = None
Exemplo n.º 5
0
    def get_org_iam_policies(self, timestamp):
        """Get the organization policies.

        Args:
            timestamp: The timestamp of the snapshot.

        Returns:
            A dict keyed by the organizations
            (gcp_type.organization.Organization) and their iam policies (dict).
        """
        org_iam_policies = {}
        try:
            cursor = self.conn.cursor()
            cursor.execute(select_data.ORG_IAM_POLICIES.format(timestamp))
            rows = cursor.fetchall()
            for row in rows:
                try:
                    org = Organization(organization_id=row[0])
                    iam_policy = json.loads(row[1])
                    org_iam_policies[org] = iam_policy
                except ValueError as json_error:
                    self.logging.warn('Error parsing json {}'.format(row[2]))
        except (DataError, IntegrityError, InternalError, NotSupportedError,
                OperationalError, ProgrammingError) as e:
            LOGGER.error(MySQLError('organizations', e))
        return org_iam_policies
Exemplo n.º 6
0
 def test_create_resource_is_ok(self):
     """Test the ResourceUtil.create_resource() creates the types."""
     expect_org = Organization(12345, 'Org a')
     actual_org = ResourceUtil.create_resource(12345, 'Org a')
     self.assertEqual(expect_org, actual_org)
     expect_proj = Project('abcd', 'Proj a')
     actual_proj = ResourceUtil.create_resource('abcd', 'Proj a')
     self.assertEqual(expect_proj, expect_proj)
Exemplo n.º 7
0
 def test_project_ancestors_include_self(self):
     """Test Project ancestors when including self."""
     org = Organization('1234567890', org_name='My org name')
     project = Project('my-project-id',
                       333,
                       project_name='My project',
                       parent=org)
     expected = [project, org]
     actual = [a for a in project.get_ancestors()]
     self.assertEqual(expected, actual)
Exemplo n.º 8
0
 def test_project_in_org_returns_org_ancestor(self):
     """Test that a Project with Org ancestor returns Org ancestor."""
     org = Organization('1234567890', org_name='My org name')
     project = Project('my-project-id',
                       333,
                       project_name='My project',
                       parent=org)
     expected = [org]
     actual = [a for a in project.get_ancestors(include_self=False)]
     self.assertEqual(expected, actual)
Exemplo n.º 9
0
 def test_create_resource_is_ok(self):
     """Test the resource_util.create_resource() creates the types."""
     expect_org = Organization(12345)
     actual_org = resource_util.create_resource(
         12345, ResourceType.ORGANIZATION)
     self.assertEqual(expect_org, actual_org)
     expect_proj = Project('abcd', 54321)
     actual_proj = resource_util.create_resource(
         'abcd', ResourceType.PROJECT, project_number=54321)
     self.assertEqual(expect_proj, actual_proj)
     self.assertEqual(expect_proj.project_number, actual_proj.project_number)
    def test_org_notequals_project_is_true(self):
        """Test inequality of an Organization to a Project."""
        id_1 = 'my-project-1'
        number_1 = 1234567890
        name_1 = 'My project 1'
        project = Project(id_1, number_1, project_name=name_1)

        id_2 = '1234567890'
        name_2 = 'My org 1'
        org = Organization(id_2, org_name=name_2)

        self.assertTrue(project != org)
Exemplo n.º 11
0
    def test_project_notequals_org_is_true(self):
        """Test that a Project != Organization."""
        id_1 = 'my-project-1'
        number_1 = 1234567890
        name_1 = 'My project 1'
        project = Project(id_1, number_1, display_name=name_1)

        id_2 = '1234567890'
        name_2 = 'My org 1'
        org = Organization(id_2, display_name=name_2)

        self.assertTrue(project != org)
 def test_create_org_getters_are_correct(self):
     """Test the Organization getters."""
     my_org_id = '1234567890'
     my_org_name = 'My org name'
     org = Organization(my_org_id,
                        display_name=my_org_name,
                        lifecycle_state=OrgLifecycleState.ACTIVE)
     self.assertEqual(my_org_id, org.id)
     self.assertEqual(my_org_name, org.display_name)
     self.assertEqual(Organization.RESOURCE_NAME_FMT % my_org_id, org.name)
     self.assertEqual(ResourceType.ORGANIZATION, org.type)
     self.assertEqual(None, org.parent)
     self.assertEqual(OrgLifecycleState.ACTIVE, org.lifecycle_state)
 def test_create_org_getters_are_correct(self):
     """Test the Organization getters."""
     my_org_id = '1234567890'
     my_org_name = 'My org name'
     org = Organization(my_org_id,
                        org_name=my_org_name,
                        lifecycle_state=OrgLifecycleState.ACTIVE)
     self.assertEqual(my_org_id, org.get_id())
     self.assertEqual(my_org_name, org.get_name())
     self.assertEqual(ResourceType.ORGANIZATION, org.get_type())
     self.assertEqual(None, org.get_parent())
     self.assertEqual(OrgLifecycleState.ACTIVE, org.get_lifecycle_state())
Exemplo n.º 14
0
 def setUp(self):
     self.org = Organization('1234567890', display_name='My org name')
     self.folder = Folder('55555',
                          display_name='My folder',
                          parent=self.org)
     self.project1 = Project('project-1', 11111, display_name='Project 1')
     self.project2 = Project('project-2',
                             22222,
                             display_name='Project 2',
                             parent=self.org)
     self.project3 = Project('project-3',
                             33333,
                             display_name='Project 3',
                             parent=self.folder)
    def test_org_notequals_project(self):
        """Test that an Organization != Project."""
        proj_id = 'my-project-1'
        proj_num = 1234567890
        proj_name = 'My project 1'
        project1 = Project(proj_id, proj_num, display_name=proj_name)

        folder_id = '88888'
        folder_name = 'My folder'
        folder1 = folder.Folder(folder_id, display_name=folder_name)

        org_id = '1234567890'
        org_name = 'My org 1'
        org1 = Organization(org_id, display_name=org_name)

        self.assertTrue(org1 != project1)
        self.assertTrue(org1 != folder1)
class OrganizationTest(basetest.TestCase):
    def setUp(self):
        self.org1 = Organization('1234567890',
                                 display_name='My org',
                                 lifecycle_state=OrgLifecycleState.ACTIVE)

    def test_create_org_getters_are_correct(self):
        """Test the Organization getters."""
        my_org_id = '1234567890'
        my_org_name = 'My org name'
        org = Organization(my_org_id,
                           display_name=my_org_name,
                           lifecycle_state=OrgLifecycleState.ACTIVE)
        self.assertEqual(my_org_id, org.id)
        self.assertEqual(my_org_name, org.display_name)
        self.assertEqual(Organization.RESOURCE_NAME_FMT % my_org_id, org.name)
        self.assertEqual(ResourceType.ORGANIZATION, org.type)
        self.assertEqual(None, org.parent)
        self.assertEqual(OrgLifecycleState.ACTIVE, org.lifecycle_state)

    def test_org_type_is_organization(self):
        """Test that a created Organization is a ResourceType.ORGANIZATION."""
        self.assertEqual(ResourceType.ORGANIZATION, self.org1.type)

    def test_equality(self):
        """Test equality of an Organization to another is true."""
        id_1 = '1234567890'
        name_1 = 'My org 1'
        org1 = Organization(id_1, display_name=name_1)

        id_2 = '1234567890'
        name_2 = 'My org 1'
        org2 = Organization(id_2, display_name=name_2)

        self.assertTrue(org1 == org2)

    def test_not_equals(self):
        """Test inequality of an Organization to another."""
        id_1 = '1234567890'
        name_1 = 'My org 1'
        org1 = Organization(id_1, display_name=name_1)

        id_2 = '1234567891'
        name_2 = 'My org 2'
        org2 = Organization(id_2, display_name=name_2)

        self.assertTrue(org1 != org2)

    def test_org_notequals_project(self):
        """Test that an Organization != Project."""
        proj_id = 'my-project-1'
        proj_num = 1234567890
        proj_name = 'My project 1'
        project1 = Project(proj_id, proj_num, display_name=proj_name)

        folder_id = '88888'
        folder_name = 'My folder'
        folder1 = folder.Folder(folder_id, display_name=folder_name)

        org_id = '1234567890'
        org_name = 'My org 1'
        org1 = Organization(org_id, display_name=org_name)

        self.assertTrue(org1 != project1)
        self.assertTrue(org1 != folder1)

    @mock.patch.object(CloudResourceManagerClient,
                       'get_organization',
                       autospec=True)
    def test_org_exists(self, mock_crm):
        """Tests that the organization exists."""
        mock_crm.return_value = True
        self.assertTrue(self.org1.exists())
Exemplo n.º 17
0
    def setUp(self):
        """Set up."""
        self.project1 = Project('my-project-1',
                                12345,
                                project_name='My project 1')
        self.project2 = Project('my-project-2',
                                12346,
                                project_name='My project 2')
        self.org789 = Organization('778899', org_name='My org')

        self.RULES1 = {
            'rules': [{
                'name':
                'my rule',
                'mode':
                'whitelist',
                'resource': [{
                    'type': 'organization',
                    'applies_to': 'self_and_children',
                    'resource_ids': ['778899']
                }, {
                    'type': 'project',
                    'applies_to': 'self',
                    'resource_ids': [
                        'my-project-1',
                        'my-project-2',
                    ]
                }],
                'inherit_from_parent':
                False,
                'bindings': [{
                    'role': 'roles/*',
                    'members': ['user:*@company.com']
                }]
            }]
        }

        self.RULES2 = {
            'rules': [{
                'name':
                'my rule',
                'mode':
                'whitelist',
                'resource': [{
                    'type': 'organization',
                    'applies_to': 'self_and_children',
                    'resource_ids': ['778899']
                }, {
                    'type': 'project',
                    'applies_to': 'self',
                    'resource_ids': [
                        'my-project-1',
                        'my-project-2',
                    ]
                }],
                'inherit_from_parent':
                False,
                'bindings': [{
                    'role': 'roles/*',
                    'members': ['user:*@company.com']
                }]
            }, {
                'name':
                'my other rule',
                'mode':
                'blacklist',
                'resource': [{
                    'type': 'project',
                    'applies_to': 'self',
                    'resource_ids': [
                        'my-project-2',
                    ]
                }],
                'inherit_from_parent':
                False,
                'bindings': [{
                    'role': 'roles/*',
                    'members': ['user:[email protected]']
                }]
            }, {
                'name':
                'required rule',
                'mode':
                'required',
                'resource': [{
                    'type': 'project',
                    'applies_to': 'self',
                    'resource_ids': [
                        'my-project-1',
                    ]
                }],
                'inherit_from_parent':
                False,
                'bindings': [{
                    'role': 'roles/viewer',
                    'members': ['user:[email protected]']
                }]
            }]
        }

        self.RULES3 = {
            'rules': [{
                'name':
                'my whitelist rule',
                'mode':
                'whitelist',
                'resource': [{
                    'type': 'organization',
                    'applies_to': 'self_and_children',
                    'resource_ids': ['778899']
                }, {
                    'type': 'project',
                    'applies_to': 'self',
                    'resource_ids': [
                        'my-project-1',
                        'my-project-2',
                    ]
                }],
                'inherit_from_parent':
                False,
                'bindings': [{
                    'role': 'roles/*',
                    'members': ['user:*@company.com']
                }]
            }, {
                'name':
                'my blacklist rule',
                'mode':
                'blacklist',
                'resource': [{
                    'type': 'organization',
                    'applies_to': 'self_and_children',
                    'resource_ids': ['778899']
                }],
                'inherit_from_parent':
                False,
                'bindings': [{
                    'role': 'roles/*',
                    'members': ['user:[email protected]']
                }]
            }, {
                'name':
                'my required rule',
                'mode':
                'required',
                'resource': [{
                    'type': 'project',
                    'applies_to': 'self',
                    'resource_ids': [
                        'my-project-1',
                    ]
                }],
                'inherit_from_parent':
                False,
                'bindings': [{
                    'role': 'roles/viewer',
                    'members': ['user:[email protected]']
                }]
            }]
        }
class OrganizationTest(basetest.TestCase):
    def setUp(self):
        self.org1 = Organization('1234567890',
                                 org_name='My org',
                                 lifecycle_state=OrgLifecycleState.ACTIVE)

    def test_create_org_getters_are_correct(self):
        """Test the Organization getters."""
        my_org_id = '1234567890'
        my_org_name = 'My org name'
        org = Organization(my_org_id,
                           org_name=my_org_name,
                           lifecycle_state=OrgLifecycleState.ACTIVE)
        self.assertEqual(my_org_id, org.get_id())
        self.assertEqual(my_org_name, org.get_name())
        self.assertEqual(ResourceType.ORGANIZATION, org.get_type())
        self.assertEqual(None, org.get_parent())
        self.assertEqual(OrgLifecycleState.ACTIVE, org.get_lifecycle_state())

    def test_org_type_is_organization(self):
        """Test that a created Organization is a ResourceType.ORGANIZATION."""
        self.assertEqual(ResourceType.ORGANIZATION, self.org1.get_type())

    def test_org_equals_other_org_is_true(self):
        """Test equality of an Organization to another is true."""
        id_1 = '1234567890'
        name_1 = 'My org 1'
        org1 = Organization(id_1, org_name=name_1)

        id_2 = '1234567890'
        name_2 = 'My org 1'
        org2 = Organization(id_2, org_name=name_2)

        self.assertTrue(org1 == org2)

    def test_org_notequals_other_org_is_true(self):
        """Test inequality of an Organization to another."""
        id_1 = '1234567890'
        name_1 = 'My org 1'
        org1 = Organization(id_1, org_name=name_1)

        id_2 = '1234567891'
        name_2 = 'My org 2'
        org2 = Organization(id_2, org_name=name_2)

        self.assertTrue(org1 != org2)

    def test_org_notequals_project_is_true(self):
        """Test inequality of an Organization to a Project."""
        id_1 = 'my-project-1'
        number_1 = 1234567890
        name_1 = 'My project 1'
        project = Project(id_1, number_1, project_name=name_1)

        id_2 = '1234567890'
        name_2 = 'My org 1'
        org = Organization(id_2, org_name=name_2)

        self.assertTrue(project != org)

    def test_org_empty_ancestors(self):
        """Test that an Organization has no ancestors."""
        expected = []
        actual = [a for a in self.org1.get_ancestors(include_self=False)]
        self.assertEqual(expected, actual)

    def test_org_ancestors_include_self(self):
        """Test getting ancestry when including self."""
        expected = [self.org1]
        actual = [a for a in self.org1.get_ancestors()]
        self.assertEqual(expected, actual)

    @mock.patch.object(CloudResourceManagerClient,
                       'get_organization',
                       autospec=True)
    def test_org_exists(self, mock_crm):
        """Tests that the organization exists."""
        mock_crm.return_value = True
        self.assertTrue(self.org1.exists())
 def setUp(self):
     self.org1 = Organization('1234567890',
                              display_name='My org',
                              lifecycle_state=OrgLifecycleState.ACTIVE)