###########################################################################
# Basic class : used to extract CIM_OperatingSystem Information
# 

__doc__="""cimCollector


import pywbem

class cimCollector:
    
  name = "cimCollector"
  maptype = "DeviceMap" 
  compname = "os"
  command = 'uname'

  SystemUpTime ="blank"
  LastBootUpTime ="blank"
  TotalVisibleMemorySize ="blank"
  MaxNumberOfProcesses ="blank"
  NumberOfProcesses ="blank"
  Distributed ="blank"
  Version ="blank"
  NumberOfLicensedUsers ="blank"
  CurrentTimeZone ="blank"
  SystemUpTime ="blank"
  Status ="blank"
  MaxProcessMemorySize ="blank"
  MaxProcessesPerUser ="blank"
  Description ="blank"
  LocalDateTime ="blank"
  CSCreationClassName ="blank"
  NumberOfUsers ="blank"
  OSType ="blank"
  CreationClassName ="blank"
  OperatingSystemCapability ="blank"
  FreeVirtualMemory ="blank"
  FreePhysicalMemory ="blank"
  CSName ="blank"
  Caption ="blank"
  TotalVirtualMemorySize ="blank"
  OtherTypeDescription ="blank"
  TotalSwapSpaceSize ="blank"
  wbemUserName = "user"
  wbemPassWord = "password"
  wbemURL = "http://192.168.2.2"
  cimObjectName = "'CIM_OperatingSystem'"

  def __init__(self):
        self.SystemUpTime = 'initial'

  def setUrl(self, url):
        self.wbemURL = url

  def setUsername(self, username):
        self.wbemUserName = username

  def setPassword(self, password):
        self.wbemPassWord = password

  def setObjectName(self, name):
        self.cimObjectName = name

  def getData(self):
  	con = pywbem.WBEMConnection(self.wbemURL,(self.wbemUserName,self.wbemPassWord))
  	names = con.EnumerateInstanceNames(self.cimObjectName)
  	for n in names:
		os = con.GetInstance(n)
		for key, value in os.items():
			if key=='SystemUpTime':
				self.SystemUpTime = value
			if key=='LastBootUpTime':
				self.LastBootUpTime = value
			if key=='TotalVisibleMemorySize':
				self.TotalVisibleMemorySize = value
			if key=='MaxNumberOfProcesses':
				self.MaxNumberOfProcesses = value
			if key=='NumberOfProcesses':
				self.NumberOfProcesses = value
			if key=='Distributed':
				self.Distributed = value
			if key=='Version':
				self.Version = value
			if key=='NumberOfLicensedUsers':			
				self.NumberOfLicensedUsers = value
			if key=='CurrentTimeZone':	
				self.CurrentTimeZone = value
			if key=='Status':
				self.Status = value
			if key=='MaxProcessMemorySize':
				self.MaxProcessMemorySize = value
			if key=='MaxProcessMemorySize':
				self.MaxProcessMemorySize = value
 			if key=='MaxProcessesPerUser':
				self.MaxProcessesPerUser = value
			if key=='Description':
				self.Description = value
			if key=='LocalDateTime':
				self.LocalDateTime = value				
			if key=='CSCreationClassName':
				self.CSCreationClassName = value
			if key=='NumberOfUsers':
				self.NumberOfUsers = value
			if key=='OSType':
				self.OSType = value  
			if key=='CreationClassName':
				self.CreationClassName = value  
			if key=='OperatingSystemCapability':
				self.OperatingSystemCapability = value 
			if key=='FreeVirtualMemory':
				self.FreeVirtualMemory = value 
			if key=='FreePhysicalMemory':
				self.FreePhysicalMemory = value 
			if key=='CSName':
				self.CSName = value 
			if key=='Caption':
				self.Caption = value 
			if key=='TotalVirtualMemorySize':
				self.TotalVirtualMemorySize = value 
			if key=='OtherTypeDescription':
				self.OtherTypeDescription = value 
			if key=='TotalSwapSpaceSize':
				self.TotalSwapSpaceSize = value 

  def printData(self):
	print 'SystemUpTime is:', self.SystemUpTime
	print 'LastBootUpTime is:', self.LastBootUpTime
	print 'TotalVisibleMemorySize is:', self.TotalVisibleMemorySize
	print 'MaxNumberOfProcesses is:', self.MaxNumberOfProcesses
	print 'NumberOfProcesses is:', self.NumberOfProcesses
	print 'Distributed is:', self.Distributed
	print 'Version is:', self.Version 
	print 'NumberOfLicensedUsers is:', self.NumberOfLicensedUsers
	print 'CurrentTimeZone is:', self.CurrentTimeZone 
	print 'SystemUpTime is:', self.SystemUpTime
	print 'Status is:', self.Status 
	print 'MaxProcessMemorySize is:', self.MaxProcessMemorySize
	print 'MaxProcessesPerUser is:', self.MaxProcessesPerUser
	print 'Description is:', self.Description
	print 'LocalDateTime is:', self.LocalDateTime
	print 'CSCreationClassName is:', self.CSCreationClassName
	print 'NumberOfUsers is:', self.NumberOfUsers
	print 'OSType is:', self.OSType
	print 'CreationClassName is:', self.CreationClassName
	print 'OperatingSystemCapability is:', self.OperatingSystemCapability
	print 'FreeVirtualMemory is:', self.FreeVirtualMemory
	print 'FreePhysicalMemory is:', self.FreePhysicalMemory
	print 'CSName is:', self.CSName
	print 'Caption is:', self.Caption
	print 'TotalVirtualMemorySize is:', self.TotalVirtualMemorySize
	print 'OtherTypeDescription is:', self.OtherTypeDescription
	print 'TotalSwapSpaceSize is:', self.TotalSwapSpaceSize

  def getSysTime(self):
        return self.SystemUpTime
