Пример #1
0
    def operation(self, wsmancmds, cmdname, *args):
        ruri = wsmancmds[cmdname]["ResourceURI"]
        act = wsmancmds[cmdname]["Action"]
        sset = {}
        tset = wsmancmds[cmdname]["SelectorSet"]
        for i in tset["w:Selector"]:
            sset[i['@Name']] = i['#text']
        toargs = self._build_ops(wsmancmds, cmdname, *args)

        wsm = RestRequest()
        wsm.set_header(self.endpoint, ruri, (ruri + "/" + act))
        wsm.add_selectors(sset)
        wsm.add_body(ruri, act, toargs['retval'])
        return self._communicate(wsm)
Пример #2
0
 def _communicate(self, wsm, name=None):
     try:
         self.proto.connect()
         self._logger.debug("Sending: " + wsm.get_text())
         result = self.proto.ship_payload(wsm.get_text())
         # Status = 202 - job created successfully
         # Status = 200 - job created successfully
         self._logger.debug("Received: " + str(result))
         en = RestResponse().execute_str(result)
         out = self._parse_output(en, name)
         return out
     except Exception as ex:
         self._logger.debug(str(ex))
         # fake as if the error came from the WSMAN subsystem
         sx = RestRequest()
         sx.add_error(ex)
         self._logger.debug(sx.get_text())
         en = RestResponse().execute_str(sx.get_text())
         out = self._parse_output(en)
         return out
Пример #3
0
 def enumerate(self, clsName, resource, select={}, resetTransport=False):
     wsm = RestRequest()
     wsm.enumerate(to=self.proto.endpoint, ruri=resource, selectors=select)
     return self._communicate(wsm)
Пример #4
0
 def identify(self):
     """ Identifies the target product """
     wsm = RestRequest()
     wsm.identify()
     return self._communicate(wsm)