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):
|
def InverseMap(map):
|
||||||
return dict([ (v, k) for (k, v) in iteritems(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()
|
types = Object()
|
||||||
nsMap = {}
|
nsMap = {}
|
||||||
versionIdMap = {}
|
versionIdMap = {}
|
||||||
@@ -1248,6 +1270,13 @@ versionMap = {}
|
|||||||
serviceNsMap = { BASE_VERSION : XMLNS_VMODL_BASE.split(":")[-1] }
|
serviceNsMap = { BASE_VERSION : XMLNS_VMODL_BASE.split(":")[-1] }
|
||||||
parentMap = {}
|
parentMap = {}
|
||||||
|
|
||||||
|
newestVersions = _BuildVersions()
|
||||||
|
currentVersions = _BuildVersions()
|
||||||
|
stableVersions = _BuildVersions()
|
||||||
|
matureVersions = _BuildVersions()
|
||||||
|
publicVersions = _BuildVersions()
|
||||||
|
oldestVersions = _BuildVersions()
|
||||||
|
|
||||||
from pyVmomi.Version import AddVersion, IsChildVersion
|
from pyVmomi.Version import AddVersion, IsChildVersion
|
||||||
|
|
||||||
if not isinstance(bool, type): # bool not a type in python <= 2.2
|
if not isinstance(bool, type): # bool not a type in python <= 2.2
|
||||||
|
|||||||
Reference in New Issue
Block a user