public SystemInfoResponseMessage GetSystemInfo(SystemInfoRequestMessage request) { //TODO 现在是模拟数据 SystemInfoResponseMessage response = new SystemInfoResponseMessage(); foreach (string vmSystemName in request.Names) { SystemInfoResponseMessage.VMSystem vmSystem = new SystemInfoResponseMessage.VMSystem(); vmSystem.Status = true; vmSystem.Name = vmSystemName; vmSystem.CreateTime = "2012/12/12"; vmSystem.LastOperationTime = "2013/11/11"; response.VMSystyems.Add(vmSystem); } return response; }
public List<SystemInfoResponseMessage.VMSystem> GetVMSystems() { ConnectionOptions co = new ConnectionOptions(); co.Username = this.mUsername; co.Password = this.mPassword; ManagementScope scope = new ManagementScope(String.Format(@"\\{0}\root\virtualization", this.mAddress), co); scope.Connect(); ObjectQuery query = new ObjectQuery("SELECT * FROM MsVM_ComputerSystem WHERE Caption LIKE 'Virtual%' "); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); var systemObject = searcher.Get(); List<SystemInfoResponseMessage.VMSystem> systems = new List<SystemInfoResponseMessage.VMSystem>(); foreach (var obj in systemObject) { SystemInfoResponseMessage.VMSystem system = new SystemInfoResponseMessage.VMSystem() { Name = obj.GetPropertyValue("ElementName") as string, Status = obj.GetPropertyValue("Status") as string, CreateTime = (obj.GetPropertyValue("InstallDate") as DateTime?).ToString(), LastOperationTime = (obj.GetPropertyValue("TimeOfLastConfigurationChange") as DateTime?).ToString() }; systems.Add(system); } return systems; }
public List<SystemInfoResponseMessage.VMSystem> GetVMSystems() { List<EntityViewBase> virtualMachines = this.mVimClient.FindEntityViews(typeof(VirtualMachine), null, null, null); List<SystemInfoResponseMessage.VMSystem> systems = new List<SystemInfoResponseMessage.VMSystem>(); foreach (VirtualMachine virtualMachine in virtualMachines) { SystemInfoResponseMessage.VMSystem system = new SystemInfoResponseMessage.VMSystem() { Name = virtualMachine.Name, Cpu = string.Format("CPU 使用率: {0} CPU, 已用{1} MHz", virtualMachine.Summary.Config.NumCpu.Value, virtualMachine.Summary.QuickStats.OverallCpuUsage), Memory = string.Format("内存 使用率: {0} MB, 已用{1} MB", virtualMachine.Summary.Config.MemorySizeMB.Value, virtualMachine.Summary.QuickStats.GuestMemoryUsage) }; systems.Add(system); } //ManagedObjectReference usecoll = this.mContext.propertyCollector; //TraversalSpec tSpec = GetVmTraversalSpec(); //PropertySpec propertySpec = new PropertySpec(); //propertySpec.all = false; //propertySpec.pathSet = new string[] { "name" }; //propertySpec.type = "VirtualMachine"; //ObjectSpec objectSpec = new ObjectSpec(); //objectSpec.obj = this.mContext.rootFolder; //objectSpec.skip = true; //objectSpec.selectSet = new SelectionSpec[] { tSpec }; //PropertyFilterSpec propertyFilterSpec = new PropertyFilterSpec(); //propertyFilterSpec.propSet = new PropertySpec[] { propertySpec }; //propertyFilterSpec.objectSet = new ObjectSpec[] { objectSpec }; //List<PropertyFilterSpec> listpfs = new List<PropertyFilterSpec>(1); //listpfs.Add(propertyFilterSpec); //RetrieveResult listobjcont = this.mService.RetrievePropertiesEx(this.mContext.propertyCollector, listpfs.ToArray(), new RetrieveOptions() { maxObjects = 0, maxObjectsSpecified = false }); //List<SystemInfoResponseMessage.VMSystem> systems = new List<SystemInfoResponseMessage.VMSystem>(); //if (listobjcont != null) //{ // foreach (ObjectContent oc in listobjcont.objects) // { // String vmnm = null; // List<DynamicProperty> dps = oc.propSet.ToList(); // if (dps != null) // { // vmnm = (String)dps[0].val; // if (vmnm != null) // { // SystemInfoResponseMessage.VMSystem vm = new SystemInfoResponseMessage.VMSystem() // { // Name = (String)dps[0].val, // Status = GetVmCpuEntitlementByVmName((String)dps[0].val).ToString(), // CreateTime = "", // LastOperationTime = "" // }; // systems.Add(vm); // } // } // } //} return systems; }