private static UpdateInventoryCommand VmsToInventory(ISeq <TypedPsObject <MinimizedVirtualMachineInfo> > vms) { var inventory = vms.Map(vm => { var info = new MachineInfo { MachineId = vm.Value.Id, Status = InventoryConverter.MapVmInfoStatusToVmStatus(vm.Value.State), Name = vm.Value.Name, NetworkAdapters = vm.Value.NetworkAdapters?.Map(a => new VirtualMachineNetworkAdapterInfo { AdapterName = a.Name, VirtualSwitchName = a.SwitchName }).ToArray(), Networks = GetNetworksByAdapters(vm.Value.Id, vm.Value.NetworkAdapters) }; //info.IpV4Addresses = GetAddressesByFamily(vm, AddressFamily.InterNetwork); //info.IpV6Addresses = GetAddressesByFamily(vm, AddressFamily.InterNetworkV6); return(info); }).ToList(); return(new UpdateInventoryCommand { AgentName = Environment.MachineName, Inventory = inventory }); }
public Task Handle(VirtualMachineStateChangedEvent message) { return(_bus.Publish(new MachineStateChangedEvent { MachineId = message.VmId, Status = InventoryConverter.MapVmInfoStatusToVmStatus(message.State) })); }