Replaces _winreg module with six.moves.winreg
The Python 2.x _winreg module is named winreg in Python 3.x
This commit is contained in:
parent
55d36f2bbc
commit
324aadd4bf
@ -14,7 +14,6 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import _winreg
|
||||
import ctypes
|
||||
import os
|
||||
import re
|
||||
@ -25,6 +24,7 @@ import wmi
|
||||
|
||||
from ctypes import windll
|
||||
from ctypes import wintypes
|
||||
from six.moves import winreg
|
||||
from win32com import client
|
||||
|
||||
from cloudbaseinit.openstack.common import log as logging
|
||||
@ -432,10 +432,10 @@ class WindowsUtils(base.BaseOSUtils):
|
||||
def get_user_home(self, username):
|
||||
user_sid = self.get_user_sid(username)
|
||||
if user_sid:
|
||||
with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\'
|
||||
'Microsoft\\Windows NT\\CurrentVersion\\'
|
||||
'ProfileList\\%s' % user_sid) as key:
|
||||
return _winreg.QueryValueEx(key, 'ProfileImagePath')[0]
|
||||
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\'
|
||||
'Microsoft\\Windows NT\\CurrentVersion\\'
|
||||
'ProfileList\\%s' % user_sid) as key:
|
||||
return winreg.QueryValueEx(key, 'ProfileImagePath')[0]
|
||||
LOG.debug('Home directory not found for user \'%s\'' % username)
|
||||
return None
|
||||
|
||||
@ -561,33 +561,33 @@ class WindowsUtils(base.BaseOSUtils):
|
||||
def set_config_value(self, name, value, section=None):
|
||||
key_name = self._get_config_key_name(section)
|
||||
|
||||
with _winreg.CreateKey(_winreg.HKEY_LOCAL_MACHINE,
|
||||
key_name) as key:
|
||||
with winreg.CreateKey(winreg.HKEY_LOCAL_MACHINE,
|
||||
key_name) as key:
|
||||
if type(value) == int:
|
||||
regtype = _winreg.REG_DWORD
|
||||
regtype = winreg.REG_DWORD
|
||||
else:
|
||||
regtype = _winreg.REG_SZ
|
||||
_winreg.SetValueEx(key, name, 0, regtype, value)
|
||||
regtype = winreg.REG_SZ
|
||||
winreg.SetValueEx(key, name, 0, regtype, value)
|
||||
|
||||
def get_config_value(self, name, section=None):
|
||||
key_name = self._get_config_key_name(section)
|
||||
|
||||
try:
|
||||
with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,
|
||||
key_name) as key:
|
||||
(value, regtype) = _winreg.QueryValueEx(key, name)
|
||||
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
|
||||
key_name) as key:
|
||||
(value, regtype) = winreg.QueryValueEx(key, name)
|
||||
return value
|
||||
except WindowsError:
|
||||
return None
|
||||
|
||||
def wait_for_boot_completion(self):
|
||||
try:
|
||||
with _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,
|
||||
"SYSTEM\\Setup\\Status\\SysprepStatus", 0,
|
||||
_winreg.KEY_READ) as key:
|
||||
with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE,
|
||||
"SYSTEM\\Setup\\Status\\SysprepStatus", 0,
|
||||
winreg.KEY_READ) as key:
|
||||
while True:
|
||||
gen_state = _winreg.QueryValueEx(key,
|
||||
"GeneralizationState")[0]
|
||||
gen_state = winreg.QueryValueEx(key,
|
||||
"GeneralizationState")[0]
|
||||
if gen_state == 7:
|
||||
break
|
||||
time.sleep(1)
|
||||
|
@ -24,13 +24,14 @@ import unittest
|
||||
from oslo.config import cfg
|
||||
|
||||
if sys.platform == 'win32':
|
||||
import _winreg
|
||||
import win32process
|
||||
import win32security
|
||||
import wmi
|
||||
|
||||
from ctypes import windll
|
||||
from ctypes import wintypes
|
||||
from six.moves import winreg
|
||||
|
||||
from cloudbaseinit.osutils import windows as windows_utils
|
||||
|
||||
CONF = cfg.CONF
|
||||
@ -423,18 +424,18 @@ class WindowsUtilsTest(unittest.TestCase):
|
||||
def _test_get_user_home(self, mock_get_user_sid, user_sid):
|
||||
key = mock.MagicMock()
|
||||
mock_get_user_sid.return_value = user_sid
|
||||
_winreg.OpenKey = mock.MagicMock(return_value=key)
|
||||
_winreg.QueryValueEx = mock.MagicMock()
|
||||
winreg.OpenKey = mock.MagicMock(return_value=key)
|
||||
winreg.QueryValueEx = mock.MagicMock()
|
||||
response = self._winutils.get_user_home(self._USERNAME)
|
||||
if user_sid:
|
||||
mock_get_user_sid.assert_called_with(self._USERNAME)
|
||||
_winreg.OpenKey.assert_called_with(
|
||||
_winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Windows '
|
||||
'NT\\CurrentVersion\\ProfileList\\'
|
||||
'%s' % mock_get_user_sid())
|
||||
winreg.OpenKey.assert_called_with(
|
||||
winreg.HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Windows '
|
||||
'NT\\CurrentVersion\\ProfileList\\'
|
||||
'%s' % mock_get_user_sid())
|
||||
self.assertTrue(response is not None)
|
||||
_winreg.QueryValueEx.assert_called_with(
|
||||
_winreg.OpenKey().__enter__(), 'ProfileImagePath')
|
||||
winreg.QueryValueEx.assert_called_with(
|
||||
winreg.OpenKey().__enter__(), 'ProfileImagePath')
|
||||
else:
|
||||
self.assertTrue(response is None)
|
||||
|
||||
@ -608,31 +609,31 @@ class WindowsUtilsTest(unittest.TestCase):
|
||||
._CONFIG_NAME
|
||||
mock_get_config_key_name.return_value = key_name
|
||||
|
||||
_winreg.CreateKey = mock.MagicMock()
|
||||
_winreg.REG_DWORD = mock.Mock()
|
||||
_winreg.REG_SZ = mock.Mock()
|
||||
_winreg.SetValueEx = mock.MagicMock()
|
||||
winreg.CreateKey = mock.MagicMock()
|
||||
winreg.REG_DWORD = mock.Mock()
|
||||
winreg.REG_SZ = mock.Mock()
|
||||
winreg.SetValueEx = mock.MagicMock()
|
||||
|
||||
self._winutils.set_config_value(self._CONFIG_NAME, value,
|
||||
self._SECTION)
|
||||
|
||||
_winreg.CreateKey.__enter__.return_value = key
|
||||
with _winreg.CreateKey as m:
|
||||
winreg.CreateKey.__enter__.return_value = key
|
||||
with winreg.CreateKey as m:
|
||||
assert m == key
|
||||
|
||||
_winreg.CreateKey.__enter__.assert_called_with()
|
||||
_winreg.CreateKey.__exit__.assert_called_with(None, None, None)
|
||||
_winreg.CreateKey.assert_called_with(_winreg.HKEY_LOCAL_MACHINE,
|
||||
key_name)
|
||||
winreg.CreateKey.__enter__.assert_called_with()
|
||||
winreg.CreateKey.__exit__.assert_called_with(None, None, None)
|
||||
winreg.CreateKey.assert_called_with(winreg.HKEY_LOCAL_MACHINE,
|
||||
key_name)
|
||||
mock_get_config_key_name.assert_called_with(self._SECTION)
|
||||
if type(value) == int:
|
||||
_winreg.SetValueEx.assert_called_with(
|
||||
_winreg.CreateKey().__enter__(), self._CONFIG_NAME, 0,
|
||||
_winreg.REG_DWORD, value)
|
||||
winreg.SetValueEx.assert_called_with(
|
||||
winreg.CreateKey().__enter__(), self._CONFIG_NAME, 0,
|
||||
winreg.REG_DWORD, value)
|
||||
else:
|
||||
_winreg.SetValueEx.assert_called_with(
|
||||
_winreg.CreateKey().__enter__(), self._CONFIG_NAME, 0,
|
||||
_winreg.REG_SZ, value)
|
||||
winreg.SetValueEx.assert_called_with(
|
||||
winreg.CreateKey().__enter__(), self._CONFIG_NAME, 0,
|
||||
winreg.REG_SZ, value)
|
||||
|
||||
def test_set_config_value_int(self):
|
||||
self._test_set_config_value(value=1)
|
||||
@ -645,14 +646,14 @@ class WindowsUtilsTest(unittest.TestCase):
|
||||
def _test_get_config_value(self, mock_get_config_key_name, value):
|
||||
key_name = self._winutils._config_key + self._SECTION + '\\'
|
||||
key_name += self._CONFIG_NAME
|
||||
_winreg.OpenKey = mock.MagicMock()
|
||||
_winreg.REG_DWORD = mock.Mock()
|
||||
_winreg.REG_SZ = mock.Mock()
|
||||
winreg.OpenKey = mock.MagicMock()
|
||||
winreg.REG_DWORD = mock.Mock()
|
||||
winreg.REG_SZ = mock.Mock()
|
||||
if type(value) == int:
|
||||
regtype = _winreg.REG_DWORD
|
||||
regtype = winreg.REG_DWORD
|
||||
else:
|
||||
regtype = _winreg.REG_SZ
|
||||
_winreg.QueryValueEx = mock.MagicMock(return_value=(value, regtype))
|
||||
regtype = winreg.REG_SZ
|
||||
winreg.QueryValueEx = mock.MagicMock(return_value=(value, regtype))
|
||||
if value is None:
|
||||
mock_get_config_key_name.side_effect = [WindowsError]
|
||||
self.assertRaises(WindowsError, self._winutils.get_config_value,
|
||||
@ -661,11 +662,11 @@ class WindowsUtilsTest(unittest.TestCase):
|
||||
mock_get_config_key_name.return_value = key_name
|
||||
response = self._winutils.get_config_value(self._CONFIG_NAME,
|
||||
self._SECTION)
|
||||
_winreg.OpenKey.assert_called_with(_winreg.HKEY_LOCAL_MACHINE,
|
||||
key_name)
|
||||
winreg.OpenKey.assert_called_with(winreg.HKEY_LOCAL_MACHINE,
|
||||
key_name)
|
||||
mock_get_config_key_name.assert_called_with(self._SECTION)
|
||||
_winreg.QueryValueEx.assert_called_with(
|
||||
_winreg.OpenKey().__enter__(), self._CONFIG_NAME)
|
||||
winreg.QueryValueEx.assert_called_with(
|
||||
winreg.OpenKey().__enter__(), self._CONFIG_NAME)
|
||||
self.assertEqual(response, value)
|
||||
|
||||
def test_get_config_value_type_int(self):
|
||||
@ -680,17 +681,17 @@ class WindowsUtilsTest(unittest.TestCase):
|
||||
def _test_wait_for_boot_completion(self, ret_val):
|
||||
key = mock.MagicMock()
|
||||
time.sleep = mock.MagicMock()
|
||||
_winreg.OpenKey = mock.MagicMock()
|
||||
_winreg.QueryValueEx = mock.MagicMock()
|
||||
_winreg.QueryValueEx.side_effect = ret_val
|
||||
winreg.OpenKey = mock.MagicMock()
|
||||
winreg.QueryValueEx = mock.MagicMock()
|
||||
winreg.QueryValueEx.side_effect = ret_val
|
||||
self._winutils.wait_for_boot_completion()
|
||||
_winreg.OpenKey.__enter__.return_value = key
|
||||
_winreg.OpenKey.assert_called_with(
|
||||
_winreg.HKEY_LOCAL_MACHINE,
|
||||
"SYSTEM\\Setup\\Status\\SysprepStatus", 0, _winreg.KEY_READ)
|
||||
winreg.OpenKey.__enter__.return_value = key
|
||||
winreg.OpenKey.assert_called_with(
|
||||
winreg.HKEY_LOCAL_MACHINE,
|
||||
"SYSTEM\\Setup\\Status\\SysprepStatus", 0, winreg.KEY_READ)
|
||||
|
||||
_winreg.QueryValueEx.assert_called_with(
|
||||
_winreg.OpenKey().__enter__(), "GeneralizationState")
|
||||
winreg.QueryValueEx.assert_called_with(
|
||||
winreg.OpenKey().__enter__(), "GeneralizationState")
|
||||
|
||||
def test_wait_for_boot_completion(self):
|
||||
ret_val = [[7]]
|
||||
|
@ -12,10 +12,10 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import _winreg
|
||||
import ctypes
|
||||
|
||||
from ctypes import wintypes
|
||||
from six.moves import winreg
|
||||
|
||||
from cloudbaseinit.utils.windows import iphlpapi
|
||||
from cloudbaseinit.utils.windows import kernel32
|
||||
@ -48,13 +48,13 @@ def _socket_addr_to_str(socket_addr):
|
||||
|
||||
|
||||
def _get_registry_dhcp_server(adapter_name):
|
||||
with _winreg.OpenKey(
|
||||
_winreg.HKEY_LOCAL_MACHINE,
|
||||
with winreg.OpenKey(
|
||||
winreg.HKEY_LOCAL_MACHINE,
|
||||
"SYSTEM\\CurrentControlSet\\Services\\" +
|
||||
"Tcpip\\Parameters\\Interfaces\\%s" % adapter_name, 0,
|
||||
_winreg.KEY_READ) as key:
|
||||
winreg.KEY_READ) as key:
|
||||
try:
|
||||
dhcp_server = _winreg.QueryValueEx(key, "DhcpServer")[0]
|
||||
dhcp_server = winreg.QueryValueEx(key, "DhcpServer")[0]
|
||||
if dhcp_server == "255.255.255.255":
|
||||
dhcp_server = None
|
||||
return dhcp_server
|
||||
|
@ -6,7 +6,7 @@ iso8601
|
||||
eventlet
|
||||
pyserial
|
||||
oslo.config
|
||||
six>=1.4.1
|
||||
six>=1.7.0
|
||||
Babel>=1.3
|
||||
oauth
|
||||
netifaces
|
||||
|
Loading…
x
Reference in New Issue
Block a user