Support for build-time versions in pyVmomi
Since introduction of meta-versions and related generated versions, we need facility, allowing code to specify those versions during run-time. (Note that although version classes are well- defined, the particular versions that correspond to a class change from build to build, depending on meta-version state.)
This commit is contained in:
@@ -1241,6 +1241,28 @@ def GetCompatibleType(type, version):
|
||||
def InverseMap(map):
|
||||
return dict([ (v, k) for (k, v) in iteritems(map) ])
|
||||
|
||||
## Support for build-time versions
|
||||
class _BuildVersions:
|
||||
def __init__(self):
|
||||
self._verMap = {}
|
||||
self._nsMap = {}
|
||||
|
||||
def Add(self, version):
|
||||
vmodlNs = version.split(".",1)[0]
|
||||
if not (vmodlNs in self._verMap):
|
||||
self._verMap[vmodlNs] = version
|
||||
if not (vmodlNs in self._nsMap):
|
||||
self._nsMap[vmodlNs] = GetVersionNamespace(version)
|
||||
|
||||
def Get(self, vmodlNs):
|
||||
return self._verMap[vmodlNs]
|
||||
|
||||
def GetNamespace(self, vmodlNs):
|
||||
return self._nsMap[vmodlNs]
|
||||
|
||||
def GetInternalNamespace(self, vmodlNs):
|
||||
return "internal%s" % self.GetNamespace(vmodlNs)
|
||||
|
||||
types = Object()
|
||||
nsMap = {}
|
||||
versionIdMap = {}
|
||||
@@ -1248,6 +1270,13 @@ versionMap = {}
|
||||
serviceNsMap = { BASE_VERSION : XMLNS_VMODL_BASE.split(":")[-1] }
|
||||
parentMap = {}
|
||||
|
||||
newestVersions = _BuildVersions()
|
||||
currentVersions = _BuildVersions()
|
||||
stableVersions = _BuildVersions()
|
||||
matureVersions = _BuildVersions()
|
||||
publicVersions = _BuildVersions()
|
||||
oldestVersions = _BuildVersions()
|
||||
|
||||
from pyVmomi.Version import AddVersion, IsChildVersion
|
||||
|
||||
if not isinstance(bool, type): # bool not a type in python <= 2.2
|
||||
|
Reference in New Issue
Block a user