+ if isinstance(query, dict):
+ if constants.CONFD_REQQ_IP in query:
+ instances_list = [query[constants.CONFD_REQQ_IP]]
+ mode = constants.CONFD_REQQ_IP
+ elif constants.CONFD_REQQ_IPLIST in query:
+ instances_list = query[constants.CONFD_REQQ_IPLIST]
+ mode = constants.CONFD_REQQ_IPLIST
+ else:
+ logging.debug("missing IP or IPLIST in query dict")
+ return QUERY_ARGUMENT_ERROR
+
+ if constants.CONFD_REQQ_LINK in query:
+ network_link = query[constants.CONFD_REQQ_LINK]
+ else:
+ network_link = None # default will be used
+ else:
+ logging.debug("Invalid query argument type for: %s", query)
+ return QUERY_ARGUMENT_ERROR
+
+ pnodes_list = []
+
+ for instance_ip in instances_list:
+ if not isinstance(instance_ip, basestring):
+ logging.debug("Invalid IP type for: %s", instance_ip)
+ return QUERY_ARGUMENT_ERROR
+
+ instance = self.reader.GetInstanceByLinkIp(instance_ip, network_link)
+ if not instance:
+ logging.debug("Unknown instance IP: %s", instance_ip)
+ pnodes_list.append(QUERY_UNKNOWN_ENTRY_ERROR)
+ continue