Пример #1
0
    def aaa_logout(self, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("AaaLogout")

        method.InCookie = self.__cookie

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #2
0
    def event_unsubscribe(self, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("EventUnsubscribe")

        method.Cookie = self.__cookie

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #3
0
    def aaa_get_compute_auth_tokens(self, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("AaaGetComputeAuthTokens")

        method.Cookie = self.__cookie

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #4
0
    def aaa_get_compute_auth_tokens(self, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("AaaGetComputeAuthTokens")

        method.Cookie = self.__cookie

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #5
0
    def aaa_logout(self, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("AaaLogout")

        method.InCookie = self.__cookie

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #6
0
    def event_unsubscribe(self, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("EventUnsubscribe")

        method.Cookie = self.__cookie

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #7
0
    def aaa_login(self, in_name, in_password, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("AaaLogin")

        method.InName = in_name
        method.InPassword = in_password

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #8
0
    def aaa_login(self, in_name, in_password, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("AaaLogin")

        method.InName = in_name
        method.InPassword = in_password

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #9
0
    def config_resolve_parent(self, dn, in_hierarchical=YesOrNo.FALSE, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("ConfigResolveParent")

        method.Cookie = self.__cookie
        method.Dn = dn
        method.InHierarchical = (("false", "true")[in_hierarchical in ImcUtils.AFFIRMATIVE_LIST])

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #10
0
    def config_resolve_parent(self,
                              dn,
                              in_hierarchical=YesOrNo.FALSE,
                              dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("ConfigResolveParent")

        method.Cookie = self.__cookie
        method.Dn = dn
        method.InHierarchical = ((
            "false", "true")[in_hierarchical in ImcUtils.AFFIRMATIVE_LIST])

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #11
0
    def config_resolve_class(self, class_id, in_hierarchical=YesOrNo.FALSE, dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("ConfigResolveClass")

        meta_class_id = CoreUtils.find_class_id_in_mo_meta_ignore_case(class_id)
        if meta_class_id != None:
            class_id = ImcUtils.word_l(meta_class_id)
        else:
            class_id = ImcUtils.word_l(class_id)
        method.ClassId = class_id
        method.Cookie = self.__cookie
        method.InHierarchical = (("false", "true")[in_hierarchical in ImcUtils.AFFIRMATIVE_LIST])

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #12
0
    def config_resolve_children(self,
                                class_id,
                                in_dn,
                                in_hierarchical=YesOrNo.FALSE,
                                dump_xml=None):
        """ Auto-generated IMC XML API Method. """
        method = ExternalMethod("ConfigResolveChildren")

        meta_class_id = CoreUtils.find_class_id_in_mo_meta_ignore_case(
            class_id)
        if meta_class_id != None:
            class_id = ImcUtils.word_l(meta_class_id)
        else:
            class_id = ImcUtils.word_l(class_id)
        method.ClassId = class_id
        method.Cookie = self.__cookie
        method.InDn = in_dn
        method.InHierarchical = ((
            "false", "true")[in_hierarchical in ImcUtils.AFFIRMATIVE_LIST])

        response = self.xml_query(method, WriteXmlOption.DIRTY, dump_xml)

        if response != None:
            return response
        return None
Пример #13
0
    def xml_query(self, method, options, dump_xml=None):
        """
        xml_query method opens a connection to URL, sends the xmlQuery string to URL location,
        and returns result.
        Prepares objects from XML query result and returns external method response.
        """
        #import sys
        #if not sys.version_info < (2, 5):
        #    from functools import partial
        #    import ssl
        #    ssl.wrap_socket = partial(ssl.wrap_socket, ssl_version=ssl.PROTOCOL_TLSv1)

        if dump_xml == None:
            dump_xml = self.__dump_xml

        try:
            #xml_doc = xml.dom.minidom.Document()
            #xml_doc.appendChild(method.write_xml(xml_doc, options))
            #print method.__dict__
            xml_doc = method.write_xml(option=options)

            uri = self.uri() + '/nuova'
            if dump_xml in ImcUtils.AFFIRMATIVE_LIST:
                print '%s ====> %s' % (self.__imc, ET.tostring(xml_doc))

            if self.__proxy is None:
                if self.__nossl:
                    req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                    opener = urllib2.build_opener(
                        ImcUtils.SmartRedirectHandler())
                    resp = opener.open(req)
                    if type(resp) is list:
                        if len(resp) == 2 and (resp[0] == 302
                                               or resp[0] == 301):
                            uri = resp[1]
                            req = urllib2.Request(url=uri,
                                                  data=ET.tostring(xml_doc))
                            resp = urllib2.urlopen(req)
                else:
                    req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                    opener = urllib2.build_opener(ImcUtils.TLS1Handler())
                    resp = opener.open(req)
            else:
                proxy_handler = urllib2.ProxyHandler({
                    'http': self.__proxy,
                    'https': self.__proxy
                })

                if self.__nossl:
                    req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                    opener = urllib2.build_opener(
                        proxy_handler, ImcUtils.SmartRedirectHandler())
                    resp = opener.open(req)

                    if type(resp) is list:
                        if len(resp) == 2 and (resp[0] == 302
                                               or resp[0] == 301):
                            uri = resp[1]
                            req = urllib2.Request(url=uri,
                                                  data=ET.tostring(xml_doc))
                            opener = urllib2.build_opener(proxy_handler)
                            resp = opener.open(req)
                else:
                    req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                    opener = urllib2.build_opener(ImcUtils.TLS1Handler(),
                                                  proxy_handler)
                    resp = opener.open(req)

            rsp = resp.read()

            if dump_xml in ImcUtils.AFFIRMATIVE_LIST:
                print '%s <==== %s' % (self.__imc, rsp)

            response = ExternalMethod(method.prop_mo_meta.name)
            root_element = ET.fromstring(rsp)
            response.load_from_xml(root_element, self)
            return response
        except Exception:
            raise
Пример #14
0
    def xml_query(self, method, options, dump_xml=None):
        """
        xml_query method opens a connection to URL, sends the xmlQuery string to URL location,
        and returns result.
        Prepares objects from XML query result and returns external method response.
        """
        #import sys
        #if not sys.version_info < (2, 5):
        #    from functools import partial
        #    import ssl
        #    ssl.wrap_socket = partial(ssl.wrap_socket, ssl_version=ssl.PROTOCOL_TLSv1)

        
        if dump_xml == None:
            dump_xml = self.__dump_xml

        try:
            #xml_doc = xml.dom.minidom.Document()
            #xml_doc.appendChild(method.write_xml(xml_doc, options))
            #print method.__dict__
            xml_doc=method.write_xml(option=options)
            
            uri = self.uri() + '/nuova'
            if dump_xml in ImcUtils.AFFIRMATIVE_LIST:
                print '%s ====> %s' % (self.__imc, ET.tostring(xml_doc))

            if self.__proxy is None:
                if self.__nossl:
                    req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                    opener = urllib2.build_opener(ImcUtils.SmartRedirectHandler())
                    resp = opener.open(req)
                    if type(resp) is list:
                        if len(resp) == 2 and (resp[0] == 302 or resp[0] == 301):
                            uri = resp[1]
                            req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                            resp = urllib2.urlopen(req)
                else:
                    req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                    opener = urllib2.build_opener(ImcUtils.TLS1Handler())
                    resp = opener.open(req)
            else:
                proxy_handler = urllib2.ProxyHandler({'http': self.__proxy, 'https': self.__proxy})

                if self.__nossl:
                    req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                    opener = urllib2.build_opener(proxy_handler, ImcUtils.SmartRedirectHandler())
                    resp = opener.open(req)

                    if type(resp) is list:
                        if len(resp) == 2 and (resp[0] == 302 or resp[0] == 301):
                            uri = resp[1]
                            req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                            opener = urllib2.build_opener(proxy_handler)
                            resp = opener.open(req)
                else:
                    req = urllib2.Request(url=uri, data=ET.tostring(xml_doc))
                    opener = urllib2.build_opener(ImcUtils.TLS1Handler(),
                                                  proxy_handler)
                    resp = opener.open(req)

            rsp = resp.read()

            if dump_xml in ImcUtils.AFFIRMATIVE_LIST:
                print '%s <==== %s' % (self.__imc, rsp)

            response = ExternalMethod(method.prop_mo_meta.name)
            root_element = ET.fromstring(rsp)
            response.load_from_xml(root_element, self)
            return response
        except Exception:
            raise