Add SmartVimStub method to pyVim.connect
The SmartVimStub method is an equivalent of the SmartConnect method. The difference is that it returns a stub and it doesn't actually try to login. It accepts all the arguments the SoapStubAdapter constructor does.
This commit is contained in:
parent
6236159443
commit
e0ca3073b9
@ -34,6 +34,7 @@ import requests
|
||||
from requests.auth import HTTPBasicAuth
|
||||
|
||||
from pyVmomi import vim, vmodl, SoapStubAdapter, SessionOrientedStub
|
||||
from pyVmomi.SoapAdapter import CONNECTION_POOL_IDLE_TIMEOUT_SEC
|
||||
from pyVmomi.VmomiSupport import nsMap, versionIdMap, versionMap, IsChildVersion
|
||||
from pyVmomi.VmomiSupport import GetServiceVersions
|
||||
|
||||
@ -560,6 +561,49 @@ def __FindSupportedVersion(protocol, server, port, path, preferredApiVersions, s
|
||||
return desiredVersion
|
||||
return None
|
||||
|
||||
def SmartStubAdapter(host='localhost', port=443, path='/sdk',
|
||||
url=None, sock=None, poolSize=5,
|
||||
certFile=None, certKeyFile=None,
|
||||
httpProxyHost=None, httpProxyPort=80, sslProxyPath=None,
|
||||
thumbprint=None, cacertsFile=None, preferredApiVersions=None,
|
||||
acceptCompressedResponses=True,
|
||||
connectionPoolTimeout=CONNECTION_POOL_IDLE_TIMEOUT_SEC,
|
||||
samlToken=None, sslContext=None):
|
||||
"""
|
||||
Determine the most preferred API version supported by the specified server,
|
||||
then create a soap stub adapter using that version
|
||||
|
||||
The parameters are the same as for pyVmomi.SoapStubAdapter except for
|
||||
version which is renamed to prefferedApiVersions
|
||||
|
||||
@param preferredApiVersions: Acceptable API version(s) (e.g. vim.version.version3)
|
||||
If a list of versions is specified the versions should
|
||||
be ordered from most to least preferred. If None is
|
||||
specified, the list of versions support by pyVmomi will
|
||||
be used.
|
||||
@type preferredApiVersions: string or string list
|
||||
"""
|
||||
if preferredApiVersions is None:
|
||||
preferredApiVersions = GetServiceVersions('vim25')
|
||||
|
||||
supportedVersion = __FindSupportedVersion('https' if port > 0 else 'http',
|
||||
host,
|
||||
port,
|
||||
path,
|
||||
preferredApiVersions,
|
||||
sslContext)
|
||||
if supportedVersion is None:
|
||||
raise Exception("%s:%s is not a VIM server" % (host, port))
|
||||
|
||||
return SoapStubAdapter(host=host, port=port, path=path,
|
||||
url=url, sock=sock, poolSize=poolSize,
|
||||
certFile=certFile, certKeyFile=certKeyFile,
|
||||
httpProxyHost=httpProxyHost, httpProxyPort=httpProxyPort,
|
||||
sslProxyPath=sslProxyPath, thumbprint=thumbprint,
|
||||
cacertsFile=cacertsFile, version=supportedVersion,
|
||||
acceptCompressedResponses=acceptCompressedResponses,
|
||||
connectionPoolTimeout=connectionPoolTimeout,
|
||||
samlToken=samlToken, sslContext=sslContext)
|
||||
|
||||
def SmartConnect(protocol='https', host='localhost', port=443, user='root', pwd='',
|
||||
service="hostd", path="/sdk",
|
||||
|
Loading…
Reference in New Issue
Block a user