def _serializer(group): # type: (Dict[str, str]) -> Any ident = group['id'] extensions = {} if "customer" in group: customer_id = group["customer"] extensions[ "customer"] = "global" if customer_id is None else customer_id elif is_managed_edition(): extensions["customer"] = managed.default_customer_id() return constructors.domain_object( domain_type=name, identifier=ident, title=group['alias'], members={ 'title': constructors.object_property( name='title', value=group['alias'], prop_format='string', base=constructors.object_href(name, ident), ), }, extensions=extensions, )
def serialize_password(ident, details): return constructors.domain_object( domain_type="password", identifier=ident, title=details["title"], members={ "title": constructors.object_property( name="title", value=details["title"], prop_format="string", base=constructors.object_href("password", ident), ) }, extensions={ k: v for k, v in complement_customer(details).items() if k in ( "comment", "docu_url", "password", "owned_by", "shared_with", "customer", ) }, )
def serialize_password(details): return constructors.domain_object(domain_type="password", identifier=details["ident"], title=details["title"], members={ "title": constructors.object_property( name='title', value=details["title"], prop_format='string', base=constructors.object_href( 'password', details["ident"]), ) }, extensions={ key: details[key] for key in details if key in ( "comment", "docu_url", "password", "owned_by", "shared_with", ) })
def serialize_service_discovery(host, discovered_services, discovery_state): members = {} for (table_source, check_type, _checkgroup, item, _discovered_params, _check_params, descr, _service_state, _output, _perfdata, _service_labels) in discovered_services: if table_source == SERVICE_DISCOVERY_STATES[discovery_state]: service_hash = checkbox_id(check_type, item) members[service_hash] = { "service_name": descr, "check_plugin_name": check_type, "state": object_property( name=descr, title="The service is currently %s" % discovery_state, value=table_source, prop_format='string', base='', links=[ link_rel( rel="cmk/service.move-monitored", href= "/objects/host/%s/service/%s/action/move/monitored" % (host.ident(), service_hash), method='put', title='Move the service to monitored'), link_rel( rel="cmk/service.move-undecided", href= "/objects/host/%s/service/%s/action/move/undecided" % (host.ident(), service_hash), method='put', title='Move the service to undecided'), link_rel( rel="cmk/service.move-ignored", href= "/objects/host/%s/service/%s/action/move/ignored" % (host.ident(), service_hash), method='put', title='Move the service to ignored'), ]), } return domain_object( domain_type='service_discovery', identifier='%s-services-%s' % (host.ident(), "wato"), title='Services discovery', members=members, extensions={}, )
def serialize_host_tag_group(details: Dict[str, Any]): return constructors.domain_object( domain_type='host_tag_group', identifier=details['id'], title=details['title'], members={ "title": constructors.object_property( name='title', value=details['title'], prop_format='string', base=constructors.object_href('host_tag_group', details['id']), ) }, extensions={key: details[key] for key in details if key in ('topic', 'tags')})
def serialize_host(host): base = '/objects/host/%s' % (host.ident(),) return constructors.domain_object( domain_type='host', identifier=host.id(), title=host.alias(), members={ 'folder': constructors.object_property( name='folder', value=constructors.object_href('folder', host.folder()), prop_format='string', base=base, ), }, extensions={}, )
def _serializer(group): # type: (Dict[str, str]) -> Any ident = group['id'] return constructors.domain_object( domain_type=name, identifier=ident, title=group['alias'], members={ 'title': constructors.object_property( name='title', value=group['alias'], prop_format='string', base=constructors.object_href(name, ident), ), }, extensions={}, )
def _serialize_folder(folder): # type: (CREFolder) -> DomainObject uri = '/objects/folder/%s' % (folder.id(), ) return constructors.domain_object( domain_type='folder', identifier=folder.id(), title=folder.title(), members={ 'hosts': constructors.object_collection( name='hosts', entries=[ constructors.link_rel( rel='.../value;collection="items"', href=constructors.object_href('host', host), ) for host in folder.hosts().values() ], base=uri, ), 'move': constructors.object_action( name='move', base=uri, parameters=dict([ constructors.action_parameter( action='move', parameter='destination', friendly_name= 'The destination folder of this move action', optional=False, pattern="[0-9a-fA-F]{32}|root", ), ]), ), 'title': constructors.object_property( name='title', value=folder.title(), prop_format='string', base=uri, ), }, extensions={ 'attributes': folder.attributes(), }, )
def serialize_host_tag_group(details: Dict[str, Any]): return constructors.domain_object( domain_type="host_tag_group", identifier=details["id"], title=details["title"], members={ "title": constructors.object_property( name="title", value=details["title"], prop_format="string", base=constructors.object_href("host_tag_group", details["id"]), ) }, extensions={ key: details[key] for key in details if key in ("topic", "tags") }, )
def serialize_service_discovery( host: watolib.CREHost, discovered_services: CheckTable, discovery_phases: List[str], ): members = {} host_name = host.name() for entry in discovered_services: (table_source, check_type, _checkgroup, item, _discovered_params, _check_params, descr, _service_phase, _output, _perfdata, _service_labels, _found_on_nodes) = entry if _in_phase(table_source, discovery_phases): service_phase = _lookup_phase_name(table_source) members[f"{check_type}-{item}"] = object_property( name=descr, title=f"The service is currently {service_phase!r}", value=service_phase, prop_format='string', linkable=False, extensions={ "host_name": host_name, "check_plugin_name": check_type, "service_name": descr, "service_item": item, "service_phase": service_phase, }, base='', links=[ link_rel( rel="cmk/service.move-monitored", href=update_service_phase.path.format( host_name=host_name), body_params={ 'target_phase': 'monitored', 'check_type': check_type, 'service_item': item, }, method='put', title='Move the service to monitored', ), link_rel( rel="cmk/service.move-undecided", href=update_service_phase.path.format( host_name=host_name), body_params={ 'target_phase': 'undecided', 'check_type': check_type, 'service_item': item, }, method='put', title='Move the service to undecided', ), link_rel( rel="cmk/service.move-ignored", href=update_service_phase.path.format( host_name=host_name), body_params={ 'target_phase': 'ignored', 'check_type': check_type, 'service_item': item, }, method='put', title='Move the service to ignored', ), ], ) return domain_object( domain_type='service_discovery', identifier=f'{host_name}-services-wato', title='Services discovery', members=members, editable=False, deletable=False, extensions={}, )
def serialize_service_discovery( host: CREHost, discovered_services: Sequence[CheckPreviewEntry], discovery_phases: List[str], ): members = {} host_name = host.name() for entry in discovered_services: if _in_phase(entry.check_source, discovery_phases): service_phase = _lookup_phase_name(entry.check_source) members[ f"{entry.check_plugin_name}-{entry.item}"] = object_property( name=entry.description, title=f"The service is currently {service_phase!r}", value=service_phase, prop_format="string", linkable=False, extensions={ "host_name": host_name, "check_plugin_name": entry.check_plugin_name, "service_name": entry.description, "service_item": entry.item, "service_phase": service_phase, }, base="", links=[ link_rel( rel="cmk/service.move-monitored", href=update_service_phase.path.format( host_name=host_name), body_params={ "target_phase": "monitored", "check_type": entry.check_plugin_name, "service_item": entry.item, }, method="put", title="Move the service to monitored", ), link_rel( rel="cmk/service.move-undecided", href=update_service_phase.path.format( host_name=host_name), body_params={ "target_phase": "undecided", "check_type": entry.check_plugin_name, "service_item": entry.item, }, method="put", title="Move the service to undecided", ), link_rel( rel="cmk/service.move-ignored", href=update_service_phase.path.format( host_name=host_name), body_params={ "target_phase": "ignored", "check_type": entry.check_plugin_name, "service_item": entry.item, }, method="put", title="Move the service to ignored", ), ], ) return domain_object( domain_type="service_discovery", identifier=f"{host_name}-services-wato", title="Services discovery", members=members, editable=False, deletable=False, extensions={}, )