Source code for ecl.security_order.v1.device

# -*- coding: utf-8 -*-

from ecl.security_order import security_order_service
from ecl import resource2
from ecl import exceptions
from ecl import utils


[docs]class Device(resource2.Resource): resource_key = None resources_key = None base_path = '/API/SoEntryFGS' service = security_order_service.SecurityOrderService() # Capabilities allow_create = True allow_get = True allow_delete = True allow_list = True allow_update = True # Properties #: Tenant ID of the owner (UUID). tenant_id = resource2.Body('tenant_id') #: List of following objects. #: operatingmode: Set "FW" or "UTM" to this value. #: licensekind: Set "02" or "08" as FW/UTM plan. #: azgroup: Availability Zone. gt_host = resource2.Body('gt_host') #: A: Create Single Constitution Device. #: M: Update Single Constitution Device. #: D: Delete Single Constitution Device. sokind = resource2.Body('sokind') #: Messages are displayed in Japanese or English depending on this value. #: ja: Japanese, en: English. Default value is "en". locale = resource2.Body('locale') #: This value indicates normal or abnormal. 1:normal, 2:abnormal. code = resource2.Body('code', alternate_id=True) #: This message is shown when error has occurred. message = resource2.Body('message') #: Identification ID of Service Order. soid = resource2.Body('soId') #: This value indicates normal or abnormal. 1:normal, 2:abnormal. status = resource2.Body('status') #: Number of devices. records = resource2.Body('records') #: Device list. rows = resource2.Body('rows') #: List of device objects. devices = resource2.Body('devices') #: Percentage of Service Order Progress Status. progress_rate = resource2.Body('progressRate')
[docs] def get_order_status(self, session, soid, locale=None): tenant_id = session.get_project_id() uri = '/API/ScreenEventFGSOrderProgressRate?tenant_id=%s&soid=%s' \ % (tenant_id, soid) if locale is not None: uri += '&locale=%s' % locale headers = {'Content-Type': 'application/json'} resp = session.get(uri, endpoint_filter=self.service, headers=headers) self._translate_response(resp, has_body=True) return self
[docs] def update(self, session, **body): uri = self.base_path resp = session.post(uri, endpoint_filter=self.service, json=body) self._translate_response(resp, has_body=True) return self
[docs] def delete(self, session, body, locale=None): uri = self.base_path resp = session.post(uri, endpoint_filter=self.service, json=body) self._translate_response(resp, has_body=True) return self
[docs] def list(self, session, locale=None): tenant_id = session.get_project_id() uri = '/API/ScreenEventFGSDeviceGet?tenant_id=%s' % tenant_id if locale is not None: uri += '&locale=%s' % locale headers = {'Content-Type': 'application/json'} resp = session.get(uri, endpoint_filter=self.service, headers=headers) body = resp.json() devices = [] for row in body['rows']: device = { 'internal_use': row['cell'][0], 'rows': row['cell'][1], 'hostname': row['cell'][2], 'menu': row['cell'][3], 'plan': row['cell'][4], 'redundancy': row['cell'][5], 'availability_zone': row['cell'][6], 'zone_name': row['cell'][7], } devices.append(device) body.update({'devices': devices}) self._translate_list_response(resp, body, has_body=True) return self
def _translate_list_response(self, response, body, has_body=True): if has_body: if self.resource_key and self.resource_key in body: body = body[self.resource_key] body = self._filter_component(body, self._body_mapping()) self._body.attributes.update(body) self._body.clean() headers = self._filter_component(response.headers, self._header_mapping()) self._header.attributes.update(headers) self._header.clean()