Ejemplo n.º 1
0
    def show(self):
        validate_creds_exists(self.app)
        db = DBWrapper(self.app.creds)
        group_client = APIClient(db.get_configure()).get_group_api_client()
        enterprise_id = db.get_enterprise_id()

        group_name = self.app.pargs.group_name
        kwargs = {'name': group_name}
        try:
            search_response = group_client.get_all_groups(enterprise_id, limit=1, offset=0, **kwargs)
            response = None
            for group in search_response.results:
                if group.name == group_name:
                    response = group
                    break

            if not response:
                self.app.log.info(f'[group-show] Group does not exist with name {group_name}')
                self.app.render(f'Group does not exist with name {group_name}')
                return
        except ApiException as e:
            self.app.log.error(f"[group-show] Failed to list groups: {e}")
            self.app.render(f"ERROR: {parse_error_message(self.app, e)}")
            return

        if self.app.pargs.active:
            db.set_group({'id': response.id, 'name': group_name})

        if not self.app.pargs.json:
            renderable = self._group_basic_response(response)
            self.app.render(renderable, format=OutputFormat.TABULATED.value, headers="keys", tablefmt="plain")
        else:
            renderable = self._group_basic_response(response, OutputFormat.JSON)
            self.app.render(renderable, format=OutputFormat.JSON.value)
Ejemplo n.º 2
0
    def set_active(self):
        validate_creds_exists(self.app)
        db = DBWrapper(self.app.creds)
        group_client = APIClient(db.get_configure()).get_group_api_client()
        enterprise_id = db.get_enterprise_id()

        if self.app.pargs.name:
            group_name = self.app.pargs.name
            kwargs = {'name': group_name}
            try:
                search_response = group_client.get_all_groups(enterprise_id,
                                                              limit=1,
                                                              offset=0,
                                                              **kwargs)
                if not search_response.results or len(
                        search_response.results) == 0:
                    self.app.log.info(
                        f'[group-active] Group does not exist with name {group_name}'
                    )
                    self.app.render(
                        f'Group does not exist with name {group_name}')
                    return
                response = search_response.results[0]
                db.set_group({'id': response.id, 'name': group_name})
            except ApiException as e:
                self.app.log.error(
                    f"[group-active] Failed to list groups: {e}")
                self.app.render(f"ERROR: {parse_error_message(self.app, e)}")
                return
        else:
            group = db.get_group()
            if group is None or group.get('name') is None:
                self.app.log.debug('[group-active] There is no active group.')
                self.app.render('There is no active group.')
                return

            group_id = group.get('id')
            try:
                response = group_client.get_group_by_id(
                    group_id, enterprise_id)
            except ApiException as e:
                self.app.log.error(
                    f"[group-active] Failed to show active group: {e}")
                self.app.render(f"ERROR: {parse_error_message(self.app, e)}")
                return

        if not self.app.pargs.json:
            renderable = self._group_basic_response(response)
            self.app.render(renderable,
                            format=OutputFormat.TABULATED.value,
                            headers="keys",
                            tablefmt="plain")
        else:
            renderable = self._group_basic_response(response,
                                                    OutputFormat.JSON)
            self.app.render(renderable, format=OutputFormat.JSON.value)