¡@

Home 

OpenStack Study: utilsfactory.py

OpenStack Index

**** CubicPower OpenStack Study ****

def _get_windows_version():

    return wmi.WMI(moniker='//./root/cimv2').Win32_OperatingSystem()[0].Version

**** CubicPower OpenStack Study ****

def _check_min_windows_version(major, minor, build=0):

    version_str = _get_windows_version()

    return map(int, version_str.split('.')) >= [major, minor, build]

**** CubicPower OpenStack Study ****

def get_hypervutils():

    # V1 virtualization namespace features are supported up to

    # Windows Server / Hyper-V Server 2012

    # V2 virtualization namespace features are supported starting with

    # Windows Server / Hyper-V Server 2012

    # Windows Server / Hyper-V Server 2012 R2 uses the V2 namespace and

    # introduces additional features

    force_v1_flag = CONF.hyperv.force_hyperv_utils_v1

    if _check_min_windows_version(6, 3):

        if force_v1_flag:

            LOG.warning('V1 virtualization namespace no longer supported on '

                        'Windows Server / Hyper-V Server 2012 R2 or above.')

        cls = utilsv2.HyperVUtilsV2R2

    elif not force_v1_flag and _check_min_windows_version(6, 2):

        cls = utilsv2.HyperVUtilsV2

    else:

        cls = utils.HyperVUtils

    LOG.debug(_("Loading class: %(module_name)s.%(class_name)s"),

              {'module_name': cls.__module__, 'class_name': cls.__name__})

    return cls()