Skip to content

Commit c9c539b

Browse files
committed
Data viz taking in variables
1 parent b772b44 commit c9c539b

5 files changed

Lines changed: 48 additions & 5 deletions

File tree

smsdk/client.py

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -240,9 +240,36 @@ def get_kpis_for_asset(self, **kwargs):
240240
)
241241
return kpis(self.session, base_url).get_kpis_for_asset(**kwargs)
242242

243-
def get_kpi_data_viz(self, **kwargs):
244-
kpis = smsdkentities.get('kpi')
243+
def get_kpi_data_viz(self, machine_source=None, kpis=None, i_vars=None, time_selection=None, **kwargs):
244+
kpi_entity = smsdkentities.get('kpi')
245+
if machine_source:
246+
machine_type = self.get_type_from_machine(machine_source, **kwargs)
247+
kwargs["asset_selection"]= {
248+
"machine_source": [machine_source],
249+
"machine_type": [machine_type]
250+
}
251+
252+
if kpis:
253+
d_vars = []
254+
for kpi in kpis:
255+
d_vars.append({"name": kpi, "aggregate": ["avg"]})
256+
kwargs['d_vars'] = d_vars
257+
258+
if i_vars:
259+
kwargs['i_vars'] = i_vars
260+
261+
if time_selection:
262+
kwargs["time_selection"] = time_selection
263+
245264
base_url = get_url(
246265
self.config["protocol"], self.tenant, self.config["site.domain"]
247266
)
248-
return kpis(self.session, base_url).get_kpi_data_viz(**kwargs)
267+
return kpi_entity(self.session, base_url).get_kpi_data_viz(**kwargs)
268+
269+
def get_type_from_machine(self, machine_source=None, **kwargs):
270+
machine = smsdkentities.get('machine')
271+
base_url = get_url(
272+
self.config["protocol"], self.tenant, self.config["site.domain"]
273+
)
274+
return machine(self.session, base_url).get_type_from_machine_name(machine_source, **kwargs)
275+

smsdk/config/api_endpoints.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@
3232
"task": "/v1/datavis/task/async"
3333
},
3434
"KPI": {
35-
"availible_kpis": "/v1/selector/assets",
3635
"availible_kpis_for_asset": "/v1/selector/datavis/kpi/y_axis"
36+
},
37+
"Assets": {
38+
"url":"/v1/selector/assets"
3739
}
3840
}

smsdk/ma_session.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from json.decoder import JSONDecodeError
2+
from time import sleep
23
from typing import List
34
import json
45
import requests
@@ -229,6 +230,7 @@ def _complete_async_task(
229230
response = self.session.get(
230231
endpoint+'/'+task_id, json=url_params
231232
)
233+
sleep(1)
232234
if response.status_code not in [200, 201]:
233235
raise ValueError("Error - {}".format(response.text))
234236
data = response.json()

smsdk/smsdk_entities/kpi/kpi.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def get_kpis(self, *args, **kwargs):
4545
"""
4646
Returns a list of all KPIs
4747
"""
48-
url = "{}{}".format(self.base_url, ENDPOINTS["KPI"]["availible_kpis"])
48+
url = "{}{}".format(self.base_url, ENDPOINTS["Assets"]["url"])
4949
records = self._get_records_v1(url, method="get", **kwargs)[0]["kpi"]
5050

5151
if not isinstance(records, List):

smsdk/smsdk_entities/machine/machine.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,15 @@ def get_machines(self, *args, **kwargs):
4646
if not isinstance(records, List):
4747
raise ValueError("Error - {}".format(records))
4848
return records
49+
50+
def get_type_from_machine_name(self, machine_source, *args, **kwargs):
51+
"""
52+
Function that gives the name of a machine from it's type
53+
"""
54+
url = "{}{}".format(self.base_url, ENDPOINTS["Assets"]["url"])
55+
records = self._get_records_v1(url, method="get", **kwargs)[0]["machine"]
56+
machine_type = ''
57+
for record in records:
58+
if record['name'] == machine_source:
59+
machine_type = record['type']
60+
return machine_type

0 commit comments

Comments
 (0)