def private_locations(self): """ :rtype: BZAObjectsList[BZAObject] """ params = {"workspaceId": self['id']} res = self._request(self.address + '/api/v4/private-locations?' + urlencode(params)) return BZAObjectsList([BZAObject(self, x) for x in res['result']])
def get_kpis(self, min_ts): params = [ ("interval", 1), ("from", min_ts), ("master_ids[]", self['id']), ] for item in ('t', 'lt', 'by', 'n', 'ec', 'ts', 'na'): params.append(("kpis[]", item)) labels = self.get_labels()[:100] if len(labels) == 100 and not self.warned_of_too_much_labels: self.log.warn("Using only first 100 labels, while test has more labels") self.warned_of_too_much_labels = True for label in labels: params.append(("labels[]", label['id'])) url = self.address + "/api/v4/data/kpis?" + urlencode(params) res = self._request(url) return res['result']
def projects(self, name=None, ident=None): """ :rtype: BZAObjectsList[Project] """ params = OrderedDict() params.update({"workspaceId": self['id']}) if name: params.update({"name": name}) res = self._request(self.address + '/api/v4/projects?' + urlencode(params)) projects = BZAObjectsList() for item in res['result']: if name is not None and item['name'] != name: continue if ident is not None and item['id'] != ident: continue projects.append(Project(self, item)) return BZAObjectsList(projects)
def multi_tests(self, name=None, ident=None): """ :rtype: BZAObjectsList[MultiTest] """ params = OrderedDict({"projectId": self['id']}) if name is not None: params["name"] = name if ident is not None: params["id"] = ident res = self._request(self.address + '/api/v4/multi-tests?' + urlencode(params)) tests = BZAObjectsList() for item in res['result']: if ident is not None and item['id'] != ident: continue if name is not None and item['name'] != name: continue tests.append(MultiTest(self, item)) return tests
def workspaces(self, ident=None, name=None): """ :rtype: BZAObjectsList[Workspace] """ params = {"accountId": self['id'], 'enabled': 'true', 'limit': 100} params = OrderedDict(sorted(params.items(), key=lambda t: t[0])) res = self._request(self.address + '/api/v4/workspaces?' + urlencode(params)) workspaces = [] for wksp in res['result']: if not wksp['enabled']: continue if name is not None and wksp['name'] != name: continue if ident is not None and wksp['id'] != ident: continue workspaces.append(Workspace(self, wksp)) return BZAObjectsList(workspaces)
def tests(self, name=None, ident=None, test_type=None): """ :rtype: BZAObjectsList[Test] """ params = OrderedDict({"workspaceId": self['id']}) if name is not None: params["name"] = name if ident is not None: params["id"] = ident res = self._request(self.address + '/api/v4/tests?' + urlencode(params)) tests = BZAObjectsList() for item in res['result']: if ident is not None and item['id'] != ident: continue if name is not None and item['name'] != name: continue if test_type is not None and item['configuration']['type'] != test_type: continue tests.append(Test(self, item)) return tests
def get_labels(self, ): url = self.address + "/api/v4/data/labels?" + urlencode({'master_id': self['id']}) res = self._request(url) return res['result']
def get_files(self): path = self.address + "/api/v4/web/elfinder/%s" % self['id'] query = urlencode(OrderedDict({'cmd': 'open', 'target': 's1_Lw'})) url = path + '?' + query response = self._request(url) return response["files"]