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:
Tianhao He
2015-09-30 20:10:13 -07:00
parent 2ab965007c
commit 45a40c496d

View File

@@ -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