예제 #1
0
파일: vdc.py 프로젝트: rdbwebster/vcd-cli
def add(ctx, vdc_name, access_list):
    try:
        client = ctx.obj['client']
        in_use_org_href = ctx.obj['profiles'].get('org_href')
        org = Org(client, in_use_org_href)
        vdc_resource = org.get_vdc(vdc_name)
        vdc = VDC(client, resource=vdc_resource)

        vdc.add_access_settings(
            access_settings_list=acl_str_to_list_of_dict(access_list))
        stdout('Access settings added to vdc \'%s\'.' % vdc_name, ctx)
    except Exception as e:
        stderr(e, ctx)
예제 #2
0
파일: vdc.py 프로젝트: vmware/vca-cli
def add(ctx, vdc_name, access_list):
    try:
        restore_session(ctx)
        client = ctx.obj['client']
        in_use_org_href = ctx.obj['profiles'].get('org_href')
        org = Org(client, in_use_org_href)
        vdc_resource = org.get_vdc(vdc_name)
        vdc = VDC(client, resource=vdc_resource)

        vdc.add_access_settings(
            access_settings_list=acl_str_to_list_of_dict(access_list))
        stdout('Access settings added to vdc \'%s\'.' % vdc_name, ctx)
    except Exception as e:
        stderr(e, ctx)
예제 #3
0
파일: vcd_vdc.py 프로젝트: vmware/pyvcloud
 def test_02_add_vdc_access(self):
     logged_in_org = self.client.get_org()
     org = Org(self.client, resource=logged_in_org)
     vdc_resource = org.get_vdc(self.config['vcd']['vdc'])
     vdc = VDC(self.client, resource=vdc_resource)
     control_access = vdc.add_access_settings(
         access_settings_list=[
             {'name': self.config['vcd']['access_user'], 'type': 'user'},
             {'name': self.config['vcd']['access_user1'], 'type': 'user',
              'access_level': 'ReadOnly'}
         ])
     assert len(control_access.AccessSettings.AccessSetting) == 2
예제 #4
0
 def test_02_add_vdc_access(self):
     logged_in_org = self.client.get_org()
     org = Org(self.client, resource=logged_in_org)
     vdc_resource = org.get_vdc(self.config['vcd']['vdc'])
     vdc = VDC(self.client, resource=vdc_resource)
     control_access = vdc.add_access_settings(
         access_settings_list=[{
             'name': self.config['vcd']['access_user'],
             'type': 'user'
         }, {
             'name': self.config['vcd']['access_user1'],
             'type': 'user',
             'access_level': 'ReadOnly'
         }])
     assert len(control_access.AccessSettings.AccessSetting) == 2
예제 #5
0
 def test_0050_vdc_acl(self):
     """Test the methods related to access control list in vdc.py.
     This test passes if all the acl operations are successful.
     """
     logger = Environment.get_default_logger()
     vdc = VDC(TestOrgVDC._client,
               href=get_non_admin_href(TestOrgVDC._new_vdc_href))
     vdc_name = TestOrgVDC._new_vdc_name
     vapp_user_name = Environment.get_username_for_role_in_test_org(
         CommonRoles.VAPP_USER)
     console_user_name = Environment.get_username_for_role_in_test_org(
         CommonRoles.CONSOLE_ACCESS_ONLY)
     # remove all
     logger.debug('Removing all access control from vdc ' + vdc_name)
     control_access = vdc.remove_access_settings(remove_all=True)
     self.assertFalse(hasattr(control_access, 'AccessSettings'))
     # add
     logger.debug('Adding 2 access control rule to vdc ' + vdc_name)
     vdc.reload()
     control_access = vdc.add_access_settings(
         access_settings_list=[{
             'name': vapp_user_name,
             'type': 'user'
         }, {
             'name': console_user_name,
             'type': 'user',
             'access_level': 'ReadOnly'
         }])
     self.assertEqual(len(control_access.AccessSettings.AccessSetting), 2)
     # get
     logger.debug('Fetching access control rules for vdc ' + vdc_name)
     vdc.reload()
     control_access = vdc.get_access_settings()
     self.assertEqual(len(control_access.AccessSettings.AccessSetting), 2)
     # remove
     logger.debug('Removing 1 access control rule for vdc ' + vdc_name)
     control_access = vdc.remove_access_settings(
         access_settings_list=[{
             'name': vapp_user_name,
             'type': 'user'
         }])
     self.assertEqual(len(control_access.AccessSettings.AccessSetting), 1)
     # share
     logger.debug('Sharing vdc ' + vdc_name + ' with everyone in the org')
     vdc.reload()
     control_access = vdc.share_with_org_members()
     self.assertEqual(control_access.IsSharedToEveryone.text, 'true')
     self.assertEqual(control_access.EveryoneAccessLevel.text, 'ReadOnly')
     # unshare
     logger.debug('Un-sharing vdc ' + vdc_name +
                  ' from everyone in the org')
     vdc.reload()
     control_access = vdc.unshare_from_org_members()
     self.assertEqual(control_access.IsSharedToEveryone.text, 'false')
     # re-share, before performing any other ACL operation to avoid
     # running into https://github.com/vmware/pyvcloud/issues/279
     logger.debug('Re-sharing vdc ' + vdc_name + ' with everyone in the ' +
                  'org')
     vdc.reload()
     control_access = vdc.share_with_org_members()
     self.assertEqual(control_access.IsSharedToEveryone.text, 'true')
     self.assertEqual(control_access.EveryoneAccessLevel.text, 'ReadOnly')
     # remove the last access setting
     logger.debug('Removing the last remaining access control from'
                  ' vdc ' + vdc_name)
     vdc.reload()
     control_access = vdc.remove_access_settings(remove_all=True)
     self.assertFalse(hasattr(control_access, 'AccessSettings'))
예제 #6
0
    def test_0050_vdc_acl(self):
        """Test the methods related to access control list in vdc.py.

        This test passes if all the acl operations are successful.
        """
        logger = Environment.get_default_logger()
        vdc = VDC(TestOrgVDC._client, href=TestOrgVDC._new_vdc_href)
        vdc_name = TestOrgVDC._new_vdc_name

        vapp_user_name = Environment.get_username_for_role_in_test_org(
            CommonRoles.VAPP_USER)
        console_user_name = Environment.get_username_for_role_in_test_org(
            CommonRoles.CONSOLE_ACCESS_ONLY)

        # remove all
        logger.debug('Removing all access control from vdc ' + vdc_name)
        control_access = vdc.remove_access_settings(remove_all=True)
        self.assertFalse(hasattr(control_access, 'AccessSettings'))

        # add
        logger.debug('Adding 2 access control rule to vdc ' + vdc_name)
        vdc.reload()
        control_access = vdc.add_access_settings(
            access_settings_list=[{
                'name': vapp_user_name,
                'type': 'user'
            }, {
                'name': console_user_name,
                'type': 'user',
                'access_level': 'ReadOnly'
            }])
        self.assertEqual(len(control_access.AccessSettings.AccessSetting), 2)

        # get
        logger.debug('Fetching access control rules for vdc ' + vdc_name)
        vdc.reload()
        control_access = vdc.get_access_settings()
        self.assertEqual(len(control_access.AccessSettings.AccessSetting), 2)

        # remove
        logger.debug('Removing 1 access control rule for vdc ' + vdc_name)
        control_access = vdc.remove_access_settings(
            access_settings_list=[{
                'name': vapp_user_name,
                'type': 'user'
            }])
        self.assertEqual(len(control_access.AccessSettings.AccessSetting), 1)

        # share
        logger.debug('Sharing vdc ' + vdc_name + ' with everyone in the org')
        vdc.reload()
        control_access = vdc.share_with_org_members()
        self.assertEqual(control_access.IsSharedToEveryone.text, 'true')
        self.assertEqual(control_access.EveryoneAccessLevel.text, 'ReadOnly')

        # unshare
        logger.debug(
            'Un-sharing vdc ' + vdc_name + ' from everyone in the org')
        vdc.reload()
        control_access = vdc.unshare_from_org_members()
        self.assertEqual(control_access.IsSharedToEveryone.text, 'false')

        # re-share, before performing any other ACL operation to avoid
        # running into https://github.com/vmware/pyvcloud/issues/279
        logger.debug('Re-sharing vdc ' + vdc_name + ' with everyone in the ' +
                     'org')
        vdc.reload()
        control_access = vdc.share_with_org_members()
        self.assertEqual(control_access.IsSharedToEveryone.text, 'true')
        self.assertEqual(control_access.EveryoneAccessLevel.text, 'ReadOnly')

        # remove the last access setting
        logger.debug('Removing the last remaining access control from'
                     ' vdc ' + vdc_name)
        vdc.reload()
        control_access = vdc.remove_access_settings(remove_all=True)
        self.assertFalse(hasattr(control_access, 'AccessSettings'))