Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix failing tests #1

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
184 changes: 93 additions & 91 deletions salt/modules/win_system.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import salt.utils.functools
import salt.utils.locales
import salt.utils.platform
import salt.utils.winapi
from salt.exceptions import CommandExecutionError

# Import 3rd-party Libs
Expand Down Expand Up @@ -527,33 +528,11 @@ def byte_calc(val):
else:
return '{0:.3f}TB'.format(val / 2**40)

# Connect to WMI
pythoncom.CoInitialize()
conn = wmi.WMI()

# Lookup dicts for Win32_OperatingSystem
os_type = {1: 'Work Station',
2: 'Domain Controller',
3: 'Server'}

system = conn.Win32_OperatingSystem()[0]
ret = {'name': get_computer_name(),
'description': system.Description,
'install_date': system.InstallDate,
'last_boot': system.LastBootUpTime,
'os_manufacturer': system.Manufacturer,
'os_name': system.Caption,
'users': system.NumberOfUsers,
'organization': system.Organization,
'os_architecture': system.OSArchitecture,
'primary': system.Primary,
'os_type': os_type[system.ProductType],
'registered_user': system.RegisteredUser,
'system_directory': system.SystemDirectory,
'system_drive': system.SystemDrive,
'os_version': system.Version,
'windows_directory': system.WindowsDirectory}

# lookup dicts for Win32_ComputerSystem
domain_role = {0: 'Standalone Workstation',
1: 'Member Workstation',
Expand All @@ -576,59 +555,82 @@ def byte_calc(val):
6: 'Appliance PC',
7: 'Performance Server',
8: 'Maximum'}
system = conn.Win32_ComputerSystem()[0]
# Get pc_system_type depending on Windows version
if platform.release() in ['Vista', '7', '8']:
# Types for Vista, 7, and 8
pc_system_type = pc_system_types[system.PCSystemType]
else:
# New types were added with 8.1 and newer
pc_system_types.update({8: 'Slate', 9: 'Maximum'})
pc_system_type = pc_system_types[system.PCSystemType]
ret.update({
'bootup_state': system.BootupState,
'caption': system.Caption,
'chassis_bootup_state': warning_states[system.ChassisBootupState],
'chassis_sku_number': system.ChassisSKUNumber,
'dns_hostname': system.DNSHostname,
'domain': system.Domain,
'domain_role': domain_role[system.DomainRole],
'hardware_manufacturer': system.Manufacturer,
'hardware_model': system.Model,
'network_server_mode_enabled': system.NetworkServerModeEnabled,
'part_of_domain': system.PartOfDomain,
'pc_system_type': pc_system_type,
'power_state': system.PowerState,
'status': system.Status,
'system_type': system.SystemType,
'total_physical_memory': byte_calc(system.TotalPhysicalMemory),
'total_physical_memory_raw': system.TotalPhysicalMemory,
'thermal_state': warning_states[system.ThermalState],
'workgroup': system.Workgroup
})
# Get processor information
processors = conn.Win32_Processor()
ret['processors'] = 0
ret['processors_logical'] = 0
ret['processor_cores'] = 0
ret['processor_cores_enabled'] = 0
ret['processor_manufacturer'] = processors[0].Manufacturer
ret['processor_max_clock_speed'] = six.text_type(processors[0].MaxClockSpeed) + 'MHz'
for system in processors:
ret['processors'] += 1
ret['processors_logical'] += system.NumberOfLogicalProcessors
ret['processor_cores'] += system.NumberOfCores
ret['processor_cores_enabled'] += system.NumberOfEnabledCore

system = conn.Win32_BIOS()[0]
ret.update({'hardware_serial': system.SerialNumber,
'bios_manufacturer': system.Manufacturer,
'bios_version': system.Version,
'bios_details': system.BIOSVersion,
'bios_caption': system.Caption,
'bios_description': system.Description})
ret['install_date'] = _convert_date_time_string(ret['install_date'])
ret['last_boot'] = _convert_date_time_string(ret['last_boot'])

# Connect to WMI
with salt.utils.winapi.Com():
conn = wmi.WMI()

system = conn.Win32_OperatingSystem()[0]
ret = {'name': get_computer_name(),
'description': system.Description,
'install_date': system.InstallDate,
'last_boot': system.LastBootUpTime,
'os_manufacturer': system.Manufacturer,
'os_name': system.Caption,
'users': system.NumberOfUsers,
'organization': system.Organization,
'os_architecture': system.OSArchitecture,
'primary': system.Primary,
'os_type': os_type[system.ProductType],
'registered_user': system.RegisteredUser,
'system_directory': system.SystemDirectory,
'system_drive': system.SystemDrive,
'os_version': system.Version,
'windows_directory': system.WindowsDirectory}

system = conn.Win32_ComputerSystem()[0]
# Get pc_system_type depending on Windows version
if platform.release() in ['Vista', '7', '8']:
# Types for Vista, 7, and 8
pc_system_type = pc_system_types[system.PCSystemType]
else:
# New types were added with 8.1 and newer
pc_system_types.update({8: 'Slate', 9: 'Maximum'})
pc_system_type = pc_system_types[system.PCSystemType]
ret.update({
'bootup_state': system.BootupState,
'caption': system.Caption,
'chassis_bootup_state': warning_states[system.ChassisBootupState],
'chassis_sku_number': system.ChassisSKUNumber,
'dns_hostname': system.DNSHostname,
'domain': system.Domain,
'domain_role': domain_role[system.DomainRole],
'hardware_manufacturer': system.Manufacturer,
'hardware_model': system.Model,
'network_server_mode_enabled': system.NetworkServerModeEnabled,
'part_of_domain': system.PartOfDomain,
'pc_system_type': pc_system_type,
'power_state': system.PowerState,
'status': system.Status,
'system_type': system.SystemType,
'total_physical_memory': byte_calc(system.TotalPhysicalMemory),
'total_physical_memory_raw': system.TotalPhysicalMemory,
'thermal_state': warning_states[system.ThermalState],
'workgroup': system.Workgroup
})
# Get processor information
processors = conn.Win32_Processor()
ret['processors'] = 0
ret['processors_logical'] = 0
ret['processor_cores'] = 0
ret['processor_cores_enabled'] = 0
ret['processor_manufacturer'] = processors[0].Manufacturer
ret['processor_max_clock_speed'] = six.text_type(processors[0].MaxClockSpeed) + 'MHz'
for processor in processors:
ret['processors'] += 1
ret['processors_logical'] += processor.NumberOfLogicalProcessors
ret['processor_cores'] += processor.NumberOfCores
ret['processor_cores_enabled'] += processor.NumberOfEnabledCore

bios = conn.Win32_BIOS()[0]
ret.update({'hardware_serial': bios.SerialNumber,
'bios_manufacturer': bios.Manufacturer,
'bios_version': bios.Version,
'bios_details': bios.BIOSVersion,
'bios_caption': bios.Caption,
'bios_description': bios.Description})
ret['install_date'] = _convert_date_time_string(ret['install_date'])
ret['last_boot'] = _convert_date_time_string(ret['last_boot'])
return ret


Expand Down Expand Up @@ -692,9 +694,9 @@ def set_hostname(hostname):

salt 'minion-id' system.set_hostname newhostname
'''
pythoncom.CoInitialize()
conn = wmi.WMI()
comp = conn.Win32_ComputerSystem()[0]
with salt.utils.winapi.Com():
conn = wmi.WMI()
comp = conn.Win32_ComputerSystem()[0]
return comp.Rename(Name=hostname)


Expand Down Expand Up @@ -970,13 +972,13 @@ def get_domain_workgroup():

salt 'minion-id' system.get_domain_workgroup
'''
pythoncom.CoInitialize()
conn = wmi.WMI()
for computer in conn.Win32_ComputerSystem():
if computer.PartOfDomain:
return {'Domain': computer.Domain}
else:
return {'Workgroup': computer.Workgroup}
with salt.utils.winapi.Com():
conn = wmi.WMI()
for computer in conn.Win32_ComputerSystem():
if computer.PartOfDomain:
return {'Domain': computer.Domain}
else:
return {'Workgroup': computer.Workgroup}


def set_domain_workgroup(workgroup):
Expand All @@ -998,14 +1000,14 @@ def set_domain_workgroup(workgroup):
workgroup = _to_unicode(workgroup)

# Initialize COM
pythoncom.CoInitialize()
with salt.utils.winapi.Com():
# Grab the first Win32_ComputerSystem object from wmi
conn = wmi.WMI()
comp = conn.Win32_ComputerSystem()[0]

# Grab the first Win32_ComputerSystem object from wmi
conn = wmi.WMI()
comp = conn.Win32_ComputerSystem()[0]
# Now we can join the new workgroup
res = comp.JoinDomainOrWorkgroup(Name=workgroup.upper())

# Now we can join the new workgroup
res = comp.JoinDomainOrWorkgroup(Name=workgroup.upper())
return True if not res[0] else False


Expand Down
Loading