def create_pbm_session(stub): """ Creates a session with the VMware Storage Policy API Sample Usage: create_pbm_session(service_instance._stub) """ import pyVmomi import ssl # Make compatible with both Python2/3 try: from http import cookies except ImportError: import Cookie as cookies session_cookie = stub.cookie.split('"')[1] http_context = VmomiSupport.GetHttpContext() cookie = cookies.SimpleCookie() cookie["vmware_soap_session"] = session_cookie http_context["cookies"] = cookie VmomiSupport.GetRequestContext()["vcSessionCookie"] = session_cookie hostname = stub.host.split(":")[0] context = None if hasattr(ssl, "_create_unverified_context"): context = ssl._create_unverified_context() pbm_stub = pyVmomi.SoapStubAdapter(host=hostname, version="pbm.version.version1", path="/pbm/sdk", poolSize=0, sslContext=context) pbm_si = pbm.ServiceInstance("ServiceInstance", pbm_stub) return pbm_si
def pbm_connect(stub_adapter, disable_ssl_verification=False): """Connect to the VMware Storage Policy Server :param stub_adapter: The ServiceInstance stub adapter :type stub_adapter: SoapStubAdapter :param disable_ssl_verification: A flag used to skip ssl certificate verification (default is False) :type disable_ssl_verification: bool :returns: A VMware Storage Policy Service content object :rtype: ServiceContent """ if disable_ssl_verification: import ssl if hasattr(ssl, '_create_unverified_context'): ssl_context = ssl._create_unverified_context() else: ssl_context = None else: ssl_context = None VmomiSupport.GetRequestContext()["vcSessionCookie"] = \ stub_adapter.cookie.split('"')[1] hostname = stub_adapter.host.split(":")[0] pbm_stub = SoapStubAdapter(host=hostname, version="pbm.version.version1", path="/pbm/sdk", poolSize=0, sslContext=ssl_context) pbm_si = pbm.ServiceInstance("ServiceInstance", pbm_stub) pbm_content = pbm_si.RetrieveContent() return pbm_content
def get_pbm_connection(self, vpxd_stub): VmomiSupport.GetRequestContext()["vcSessionCookie"] = \ vpxd_stub.cookie.split('"')[1] hostname = vpxd_stub.host.split(":")[0] pbm_stub = SoapStubAdapter( host=hostname, version="pbm.version.version11", path="/pbm/sdk", poolSize=0, sslContext=ssl._create_unverified_context()) pbm_si = pbm.ServiceInstance("ServiceInstance", pbm_stub) pbm_content = pbm_si.RetrieveContent() return pbm_content
def connectToSpbm(stub, context): hostname = stub.host.split(":")[0] sessionCookie = stub.cookie.split('"')[1] VmomiSupport.GetRequestContext()["vcSessionCookie"] = sessionCookie pbmStub = SoapStubAdapter( host=hostname, path="/pbm/sdk", version="pbm.version.version2", sslContext=context, ) pbmStub.cookie = stub.cookie pbmSi = pbm.ServiceInstance("ServiceInstance", pbmStub) return pbmSi
def SetOpId(opId=None, prefix=None, show=False): ''' Set/Generate the opID that will show up in the logs of remote VMODL calls. ''' # If no opId is supplied, generate a new one if not opId: opId = "%x" % random.randint(0, (2**32) - 1) if prefix: opId = prefix + opId if show: print "Using opId: %s" % opId reqCtx = VmomiSupport.GetRequestContext() reqCtx["operationID"] = opId
def GetStorageManager(vcHost): smsStub = None vpxdStub = connect.GetStub() sessionCookie = vpxdStub.cookie.split('"')[1] httpContext = VmomiSupport.GetHttpContext() cookie = Cookie.SimpleCookie() cookie["vmware_soap_session"] = sessionCookie httpContext["cookies"] = cookie VmomiSupport.GetRequestContext()["vcSessionCookie"] = sessionCookie smsStub = SoapStubAdapter(host=vcHost, ns = "sms/4.0", path = "/sms/sdk", poolSize=0) si = Sms.ServiceInstance("ServiceInstance", smsStub) return si.QueryStorageManager()
def connectLocal(): ''' connect and do stuff on local machine ''' global si # # Connect to localhost as dcui # User "dcui" is a local Admin that does not lose permissions # when the host is in lockdown mode. si = pyVim.connect.Connect(host='localhost', user='******') if not si: raise SystemExit("Failed to connect to localhost as 'dcui'.") atexit.register(pyVim.connect.Disconnect, si) # set out ID in context to be used in request - so we'll see it in logs reqCtx = VmomiSupport.GetRequestContext() reqCtx["realUser"] = '******' return si
def GetPbmConnection(stub, context=None): sessionCookie = stub.cookie.split('"')[1] httpContext = VmomiSupport.GetHttpContext() cookie = Cookie.SimpleCookie() cookie["vmware_soap_session"] = sessionCookie httpContext["cookies"] = cookie VmomiSupport.GetRequestContext()["vcSessionCookie"] = sessionCookie hostname = stub.host.split(":")[0] pbmStub = pyVmomi.SoapStubAdapter( host=hostname, version="pbm.version.version1", path="/pbm/sdk", poolSize=0, sslContext=context) pbmSi = pbm.ServiceInstance("ServiceInstance", pbmStub) pbmContent = pbmSi.RetrieveContent() return (pbmSi, pbmContent)
def GetPbmConnection(vpxdStub): import Cookie import pyVmomi sessionCookie = vpxdStub.cookie.split('"')[1] httpContext = VmomiSupport.GetHttpContext() cookie = Cookie.SimpleCookie() cookie["vmware_soap_session"] = sessionCookie httpContext["cookies"] = cookie VmomiSupport.GetRequestContext()["vcSessionCookie"] = sessionCookie hostname = vpxdStub.host.split(":")[0] context = None if hasattr(ssl, "_create_unverified_context"): context = ssl._create_unverified_context() pbmStub = pyVmomi.SoapStubAdapter(host=hostname, version="pbm.version.version1", path="/pbm/sdk", poolSize=0, sslContext=context) pbmSi = pbm.ServiceInstance("ServiceInstance", pbmStub) pbmContent = pbmSi.RetrieveContent() return (pbmSi, pbmContent)
def __exit__(self, *args): reqCtx = VmomiSupport.GetRequestContext() reqCtx['operationID'] = ""
def __enter__(self, name=None): opID = GenOpId(self.name) reqCtx = VmomiSupport.GetRequestContext() reqCtx['operationID'] = opID Log("%s opID=%s" % (self.name, opID))