private static Task <Either <PowershellFailure, TypedPsObject <VirtualMachineInfo> > > EnsureCreated(Option <TypedPsObject <VirtualMachineInfo> > vmInfo, MachineConfig config, VMStorageSettings storageSettings, IPowershellEngine engine) { return(vmInfo.MatchAsync( None: () => Converge.CreateVirtualMachine(engine, config.Name, storageSettings.StorageIdentifier, config.VM.Path, config.VM.Memory.Startup), Some: s => s )); }
private static Task <Either <PowershellFailure, TypedPsObject <VirtualMachineInfo> > > EnsureCreated(Option <TypedPsObject <VirtualMachineInfo> > vmInfo, MachineConfig config, VMStorageSettings storageSettings, IPowershellEngine engine) { return(vmInfo.MatchAsync( None: () => storageSettings.StorageIdentifier.ToEither(new PowershellFailure { Message = "Unknown storage identifier, cannot create new virtual machine" }) .BindAsync(storageIdentifier => Converge.CreateVirtualMachine(engine, config.Name, storageIdentifier, storageSettings.VMPath, config.VM.Memory.Startup)), Some: s => s )); }