示例#1
0
 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)
示例#2
0
    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)
示例#3
0
 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
示例#4
0
 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()
示例#5
0
 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()
示例#6
0
    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()
示例#11
0
    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()
示例#12
0
    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()
示例#13
0
    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()
示例#14
0
 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)
示例#15
0
    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()
示例#16
0
    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()
示例#19
0
 def update(self, body):
     url = url_join('ha')
     self.session.put(url, json=body, headers=self.headers)
示例#20
0
 def create(self, body, timeout=300):
     url = url_join(self.resource)
     response = self.session.post(url, body, timeout=timeout)
     return response.json()
示例#21
0
 def discover(self):
     url = url_join(self.resource, "discover")
     response = self.session.get(url)
     return response.json()
示例#22
0
 def create(self, name, body):
     url = url_join(self.resource, name)
     response = self.session.post(url, body)
     return response.json()
示例#23
0
 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()
示例#25
0
 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)
示例#30
0
    def get(self):
        url = url_join('ha')
        r = self.session.get(url, headers=self.headers)

        return r.json()