def CreateMonitorScopeFilter(argument = ""): if argument == "": argument = "Health+Inventory+Metrics+ConfigState" monitorfilter = MonitorScopeFilter() for i in argument.split("+"): for j in MonitorScope: if TypeHelper.get_name(j, MonitorScopeMap) == i: monitorfilter.add(j) return monitorfilter
def __init__(self, registry, protofactory, ipaddr, creds): self.ref = registry self.ipaddr = ipaddr self.hostname = None self.creds = creds self.device_type = self.ref.name # Facts self.facts = {} self.facts["HandlesManyDevices"] = False self.facts["IsADevice"] = False # Protocol self.protofactory = protofactory self.cfactory = None # Add commands to this object self._make_all_methods() # Components Map self.ComponentEnum = self.ref.ComponentEnum self.components = {} for comp in self.ref.defs: self.components[comp] = {} for en in MonitorScope: self.components[comp][en] = [] mon = TypeHelper.get_name(en, MonitorScopeMap) if mon in self.ref.defs[comp]: self.components[comp][en] = self.ref.defs[comp][mon] # Entity JSON self.entityjson = {} # SNMP Entity MIB JSON self.emib_json = {} self.supports_entity_mib = False # Reset self.reset()
def _parse_output(self, en, name=None): retval = {} if "Header" in en: rgsp = "http://schemas.xmlsoap.org/ws/2004/09/transfer/GetResponse" if "Action" in en["Header"] and en["Header"]["Action"] == rgsp: retval['Status'] = 'Success' retval['Data'] = en['Body'] if not "Body" in en: retval['Status'] = 'Invalid JSON. Does not have Body!' elif "ClientFault" in en["Body"]: retval['Status'] = 'Found Client (SDK) Side Fault' retval['Fault.Data'] = en["Body"]["ClientFault"] if "Reason" in en["Body"]["ClientFault"] and \ "Text" in en["Body"]["ClientFault"]["Reason"]: retval['Message'] = RestResponse().get_message( en["Body"]["ClientFault"]["Reason"]) elif "Fault" in en["Body"]: retval['Status'] = 'Found Fault' retval['Fault.Data'] = en["Body"]["Fault"] if "Detail" in en["Body"]["Fault"]: retval['Message'] = RestResponse().get_message( en["Body"]["Fault"]["Reason"]) if retval['Message'] == "": retval['Message'] = RestResponse().get_message( en["Body"]["Fault"]["Detail"]) elif "EnumerateResponse" in en["Body"]: retval['Status'] = 'Success' retval['Data'] = en["Body"]["EnumerateResponse"]["Items"] elif "IdentifyResponse" in en["Body"]: retval['Status'] = 'Success' retval['Data'] = en["Body"] else: for entry in en["Body"]: if not entry.endswith("_OUTPUT"): continue retval['Data'] = en["Body"] retval['Status'] = 'Not understood the message. Sorry!' if "Message" in en["Body"][entry]: retval['Status'] = en["Body"][entry]["Message"] retval['Message'] = en["Body"][entry]["Message"] if "MessageID" in en["Body"][entry]: retval['MessageID'] = en["Body"][entry]["MessageID"] if "ReturnValue" in en["Body"][entry]: ret = int(en["Body"][entry]["ReturnValue"]) retval['Return'] = TypeHelper.get_name(ret, ReturnValueMap) retval['Status'] = retval['Return'] if ret == TypeHelper.resolve(ReturnValue.JobCreated): retval['Job'] = {"ResourceURI": "", "JobId": ""} ss = en["Body"][entry] if "Job" in ss: ss = ss["Job"] if "EndpointReference" in ss: ss = ss["EndpointReference"] if "ReferenceParameters" in ss: ss = ss["ReferenceParameters"] if "ResourceURI" in ss: retval['Job']['ResourceURI'] = ss["ResourceURI"] if "SelectorSet" in ss: ss = ss["SelectorSet"] if "Selector" in ss: ss = ss["Selector"] retval['Job']['JobId'] = ss[0] retval['Status'] = 'Success' if not 'Status' in retval: retval['Status'] = 'Dont understand the message' retval['Data'] = en["Body"] return retval