def autoprov(self, device_id, **kwargs): tenant_uuid = kwargs.pop('tenant_uuid', self._client.tenant()) headers = dict(kwargs.get('headers', self.session.READ_HEADERS)) if tenant_uuid: headers['Wazo-Tenant'] = tenant_uuid url = url_join(self.resource, device_id, 'autoprov') self.session.get(url, headers=headers)
def delete(self, category, tenant_uuid=None): tenant_uuid = tenant_uuid or self._client.tenant() headers = dict(self.session.READ_HEADERS) if tenant_uuid: headers['Wazo-Tenant'] = tenant_uuid url = url_join(self.resource, category) self.session.delete(url, headers=headers)
def download_file(self, category, filename, **kwargs): tenant_uuid = kwargs.pop('tenant_uuid', None) or self._client.tenant() headers = {'Accept': '*/*'} if tenant_uuid: headers['Wazo-Tenant'] = tenant_uuid url = url_join(self.resource, category, 'files', quote(filename, safe='')) response = self.session.get(url, headers=headers, params=kwargs) return response
def get_main_endpoint_sip(self, user_uuid, view=None): url = url_join(self.resource, user_uuid, "lines/main/associated/endpoints/sip") params = {} if view: params['view'] = view response = self.session.get(url, params=params) return response.json()
def update_csv(self, csvdata, encoding='utf-8', timeout=300): url = url_join(self.resource, "import") headers = {'Content-Type': 'text/csv; charset={}'.format(encoding)} response = self.session.put(url, raw=csvdata, check_response=False, timeout=timeout, headers=headers) return response.json()
def export_csv(self, tenant_uuid=None): url = url_join(self.resource, "export") headers = {'Accept': 'text/csv; charset=utf-8'} tenant_uuid = tenant_uuid or self._client.tenant() if tenant_uuid: headers['Wazo-Tenant'] = tenant_uuid response = self.session.get(url, headers=headers) return response.content
def associate(self, call_filter_id, users): url = url_join('callfilters', call_filter_id, 'recipients', 'users') body = {'users': []} for user in users: result = {'uuid': user['uuid']} if user.get('timeout'): result['timeout'] = user['timeout'] body['users'].append(result) self.session.put(url, body)
def associate(self, group_id, extensions): url = url_join('groups', group_id, 'members', 'extensions') body = {'extensions': []} for extension in extensions: result = {'exten': extension['exten'], 'context': extension['context']} if 'priority' in extension: result['priority'] = extension['priority'] body['extensions'].append(result) self.session.put(url, body)
def associate(self, group_id, users): url = url_join('groups', group_id, 'members', 'users') body = {'users': []} for user in users: result = {'uuid': user['uuid']} if 'priority' in user: result['priority'] = user['priority'] body['users'].append(result) self.session.put(url, body)
def get_by_user_line(self, user_uuid, line_id, view=None): url = url_join( 'users', user_uuid, 'lines', line_id, 'associated', 'endpoints', 'sip' ) params = {} if view: params['view'] = view response = self.session.get(url, params=params) return response.json()
def create(self, body, **kwargs): tenant_uuid = kwargs.pop('tenant_uuid', self._client.tenant()) headers = dict(kwargs.get('headers', self.session.WRITE_HEADERS)) if tenant_uuid: headers['Wazo-Tenant'] = tenant_uuid url = url_join(self.resource) response = self.session.post(url, body, headers=headers) return response.json()
def get(self, resource_id, **kwargs): tenant_uuid = kwargs.pop('tenant_uuid', None) headers = dict(self.session.READ_HEADERS) if tenant_uuid: headers['Wazo-Tenant'] = tenant_uuid url = url_join(self.resource, resource_id) response = self.session.get(url, headers=headers, params=kwargs) return response.json()
def get(self, category, tenant_uuid=None): tenant_uuid = tenant_uuid or self._client.tenant() headers = dict(self.session.READ_HEADERS) if tenant_uuid: headers['Wazo-Tenant'] = tenant_uuid url = url_join(self.resource, category) response = self.session.get(url, headers=headers) return response.json()
def update(self, body): resource_id = body.get('uuid') if not resource_id: resource_id = body['id'] url = url_join(self.resource, resource_id) body = { key: value for key, value in six.iteritems(body) if key != "links" } self.session.put(url, body)
def list(self, **kwargs): kwargs.setdefault('recurse', False) tenant_uuid = kwargs.pop('tenant_uuid', self._client.tenant()) headers = dict(kwargs.get('headers', self.session.READ_HEADERS)) if tenant_uuid: headers['Wazo-Tenant'] = tenant_uuid url = url_join(self.resource) response = self.session.get(url, headers=headers, params=kwargs) return response.json()
def import_csv(self, csvdata, encoding='utf-8', timeout=300, tenant_uuid=None): url = url_join(self.resource, "import") headers = {'Content-Type': 'text/csv; charset={}'.format(encoding)} tenant_uuid = tenant_uuid or self._client.tenant() if tenant_uuid: headers['Wazo-Tenant'] = tenant_uuid response = self.session.post(url, raw=csvdata, check_response=False, timeout=timeout, headers=headers) return response.json()
def __call__(self, retry=20, delay=0.2): url = url_join(self.resource) for n in range(retry): try: self.session.get(url, check_response=False) return except HTTPError as e: response = getattr(e, 'response', None) if not response: raise status_code = getattr(response, 'status_code', None) if status_code == '401': return raise except RequestException: if n < retry - 1: time.sleep(delay) else: raise
def list(self): url = url_join(self.resource) response = self.session.get(url) return response.json()
def update(self, body): url = url_join('ha') self.session.put(url, json=body, headers=self.headers)
def create(self, body, timeout=300): url = url_join(self.resource) response = self.session.post(url, body, timeout=timeout) return response.json()
def discover(self): url = url_join(self.resource, "discover") response = self.session.get(url) return response.json()
def create(self, name, body): url = url_join(self.resource, name) response = self.session.post(url, body) return response.json()
def delete(self, resource_id): url = url_join(self.resource, resource_id) self.session.delete(url)
def get_by_line(self, line_id): url = url_join('lines', line_id, 'devices') response = self.session.get(url) return response.json()
def get(self, resource_id): url = url_join(self.resource, resource_id) response = self.session.get(url) return response.json()
def list_by_device(self, device_id): url = url_join('devices', device_id, 'lines') response = self.session.get(url) return response.json()
def associate(self, user_id, line_id): url = url_join('users', user_id, 'lines', line_id) self.session.put(url)
def dissociate(self, line_id, application_uuid): url = url_join('lines', line_id, 'applications', application_uuid) self.session.delete(url)
def associate(self, line_id, extension_id): url = url_join('lines', line_id, 'extensions', extension_id) self.session.put(url)
def get(self): url = url_join('ha') r = self.session.get(url, headers=self.headers) return r.json()