Idoit-Tests 01
This commit is contained in:
67
idoit_scaleup/dialog.py
Executable file
67
idoit_scaleup/dialog.py
Executable file
@@ -0,0 +1,67 @@
|
||||
from .base import IDoitApiBase
|
||||
|
||||
|
||||
class IDoitDialog(IDoitApiBase):
|
||||
def __init__(self, cfg, obj_type: str, property: str):
|
||||
super().__init__(cfg)
|
||||
self.obj_type = obj_type
|
||||
self.property = property
|
||||
self.cache = {}
|
||||
|
||||
def get_all(self):
|
||||
if self.cache == {}:
|
||||
params = {
|
||||
'category': self.obj_type,
|
||||
'property': self.property
|
||||
}
|
||||
r = self.xml_rpc_call('cmdb.dialog.read', params)
|
||||
# Workaround für Ticket #22087
|
||||
# https://help.i-doit.com/hc/en-us/requests/22087
|
||||
if len(r['result'])==1:
|
||||
if isinstance(r['result'][0],list):
|
||||
r['result']=r['result'][0]
|
||||
self.cache = r
|
||||
else:
|
||||
r = self.cache
|
||||
return self.cache['result']
|
||||
|
||||
def get(self, value: str, parent: int = None):
|
||||
for entry in self.get_all():
|
||||
if parent is None:
|
||||
if value == entry['title']:
|
||||
return int(entry['id'])
|
||||
else:
|
||||
if (value == entry['title'] and
|
||||
entry['parent']['id'] == str(parent)):
|
||||
return int(entry['id'])
|
||||
return None
|
||||
|
||||
def get_ignore_case(self, value: str, parent: int = None):
|
||||
for entry in self.get_all():
|
||||
title=entry['title'].lower()
|
||||
if parent is None:
|
||||
if value.lower() == title:
|
||||
return int(entry['id'])
|
||||
else:
|
||||
if (value.lower() == title and
|
||||
entry['parent']['id'] == str(parent)):
|
||||
return int(entry['id'])
|
||||
return None
|
||||
|
||||
def create(self, value: str, parent: int = None):
|
||||
params = {
|
||||
'category': self.obj_type,
|
||||
'property': self.property,
|
||||
'value': value
|
||||
}
|
||||
self.cache = {}
|
||||
if parent is not None:
|
||||
params['parent'] = parent
|
||||
r = self.xml_rpc_call('cmdb.dialog.create', params)
|
||||
return r['result']['entry_id']
|
||||
|
||||
def create_or_get_id(self, value: str, parent: int = None):
|
||||
id = self.get(value, parent)
|
||||
if id is None:
|
||||
id = self.create(value, parent)
|
||||
return id
|
||||
Reference in New Issue
Block a user