def info(ctx, catalog_name, item_name): 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) if item_name is None: catalog = org.get_catalog(catalog_name) result = to_dict(catalog) # We don't have a way to know in advance if a user has access to a # catalog's ACL or not. So we try to retrieve it always. If the # call fails due to permission issues, we silently eat the # exception and exclude ACL settings from the output of the current # command. Users who have access to ACL of the catalog will remain # unaffected. Also any other errors/exceptions will bubble up as # usual. try: access_control_settings = access_settings_to_dict( org.get_catalog_access_settings(catalog_name)) result.update(access_control_settings) except AccessForbiddenException as e: pass else: catalog_item = org.get_catalog_item(catalog_name, item_name) result = to_dict(catalog_item) vapp = VApp(client, href=catalog_item.Entity.get('href')) vapp.reload() template = vapp_to_dict(vapp.resource) for k, v in template.items(): result['template-%s' % k] = v stdout(result, ctx) except Exception as e: stderr(e, ctx)
def info(ctx, name): try: restore_session(ctx, vdc_required=True) client = ctx.obj['client'] vdc_href = ctx.obj['profiles'].get('vdc_href') vdc = VDC(client, href=vdc_href) vapp_resource = vdc.get_vapp(name) vapp = VApp(client, resource=vapp_resource) md = vapp.get_metadata() access_control_settings = vapp.get_access_settings() result = vapp_to_dict(vapp_resource, md, access_settings_to_dict(access_control_settings)) stdout(result, ctx) except Exception as e: stderr(e, ctx)
def info(ctx, name): try: client = ctx.obj['client'] in_use_org_name = ctx.obj['profiles'].get('org_in_use') in_use_vdc = ctx.obj['profiles'].get('vdc_in_use') org_href = ctx.obj['profiles'].get('org_href') org = Org(client, href=org_href) vdc_resource = org.get_vdc(name) vdc = VDC(client, resource=vdc_resource) access_settings = None try: access_settings = vdc.get_access_settings() except MissingLinkException: pass result = vdc_to_dict(vdc_resource, access_settings_to_dict(access_settings)) result['in_use'] = in_use_vdc == name result['org'] = in_use_org_name stdout(result, ctx) except Exception as e: stderr(e, ctx)
def get_catalog_access_control_settings(self, catalog_name): """ Get the access control settings of a catalog. :param catalog_name: (str): The name of the catalog. :return: Access control settings of the catalog. """ # NOQA catalog_resource = self.get_catalog(name=catalog_name) control_access = self.client.get_linked_resource( catalog_resource, RelationType.DOWN, EntityType.CONTROL_ACCESS_PARAMS.value) access_settings = [] if hasattr(control_access, 'AccessSettings') and \ hasattr(control_access.AccessSettings, 'AccessSetting') and \ len(control_access.AccessSettings.AccessSetting) > 0: for access_setting in list( control_access.AccessSettings.AccessSetting): access_settings.append(access_settings_to_dict(access_setting)) result = to_dict(control_access) if len(access_settings) > 0: result['AccessSettings'] = access_settings return result
def info(ctx, catalog_name, item_name): try: client = ctx.obj['client'] in_use_org_href = ctx.obj['profiles'].get('org_href') org = Org(client, in_use_org_href) if item_name is None: catalog = org.get_catalog(catalog_name) result = to_dict(catalog) access_control_settings = access_settings_to_dict( org.get_catalog_access_settings(catalog_name)) result.update(access_control_settings) else: catalog_item = org.get_catalog_item(catalog_name, item_name) result = to_dict(catalog_item) vapp = VApp(client, href=catalog_item.Entity.get('href')) vapp.reload() template = vapp_to_dict(vapp.resource) for k, v in template.items(): result['template-%s' % k] = v stdout(result, ctx) except Exception as e: stderr(e, ctx)
def info(ctx, name): try: restore_session(ctx) client = ctx.obj['client'] in_use_org_name = ctx.obj['profiles'].get('org_in_use') in_use_vdc = ctx.obj['profiles'].get('vdc_in_use') org_href = ctx.obj['profiles'].get('org_href') org = Org(client, href=org_href) vdc_resource = org.get_vdc(name) vdc = VDC(client, resource=vdc_resource) access_settings = None try: access_settings = vdc.get_access_settings() except OperationNotSupportedException: pass result = vdc_to_dict(vdc_resource, access_settings_to_dict(access_settings)) result['in_use'] = in_use_vdc == name result['org'] = in_use_org_name stdout(result, ctx) except Exception as e: stderr(e, ctx)