Пример #1
0
    def set_active(self):
        validate_creds_exists(self.app)
        db = DBWrapper(self.app.creds)
        device_client = APIClient(db.get_configure()).get_device_api_client()
        enterprise_id = db.get_enterprise_id()

        if self.app.pargs.name:
            device_name = self.app.pargs.name
            kwargs = {'name': device_name}
            try:
                search_response = device_client.get_all_devices(enterprise_id,
                                                                limit=1,
                                                                offset=0,
                                                                **kwargs)
                if not search_response.results or len(
                        search_response.results) == 0:
                    self.app.log.debug(
                        f'[device-active] Device does not exist with name {device_name}'
                    )
                    self.app.render(
                        f'Device does not exist with name {device_name}')
                    return
                response = search_response.results[0]
                db.set_device({
                    'id': response.id,
                    'name': response.device_name
                })
            except ApiException as e:
                self.app.log.error(
                    f"[device-active] Failed to list devices: {e}")
                self.app.render(f"ERROR: {parse_error_message(self.app, e)}")
                return
        else:
            device = db.get_device()
            if device is None or device.get('name') is None:
                self.app.log.debug(
                    '[device-active] There is no active device.')
                self.app.render('There is no active device.')
                return

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

        if not self.app.pargs.json:
            renderable = self._device_basic_response(response)
            self.app.render(renderable,
                            format=OutputFormat.TABULATED.value,
                            headers="keys",
                            tablefmt="plain")
        else:
            renderable = self._device_basic_response(response,
                                                     OutputFormat.JSON)
            self.app.render(renderable, format=OutputFormat.JSON.value)
Пример #2
0
    def show(self):
        validate_creds_exists(self.app)
        db = DBWrapper(self.app.creds)
        device_name = self.app.pargs.device_name

        device_client = APIClient(db.get_configure()).get_device_api_client()
        enterprise_id = db.get_enterprise_id()

        kwargs = {'name': device_name}
        try:
            search_response = device_client.get_all_devices(enterprise_id,
                                                            limit=1,
                                                            offset=0,
                                                            **kwargs)
            if not search_response.results or len(
                    search_response.results) == 0:
                self.app.log.debug(
                    f'[device-show] Device does not exist with name {device_name}'
                )
                self.app.render(
                    f'Device does not exist with name {device_name}\n')
                return
            response = search_response.results[0]
        except ApiException as e:
            self.app.log.error(f"[device-show] Failed to list devices: {e}")
            self.app.render(f"ERROR: {parse_error_message(self.app, e)}\n")
            return

        if self.app.pargs.active:
            name, _ = self.get_name_and_tags_from_device(response)
            db.set_device({'id': response.id, 'name': name})

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