public static IntPtr CreateTrampoline(Module module, ulong codeAdr, uint key, VMFuncSig sig, uint sigId) { object dm = trampolines[codeAdr]; if (dm != null) { return(getDesc((DynamicMethod)dm).GetFunctionPointer()); } lock (trampolines) { dm = (DynamicMethod)trampolines[codeAdr]; if (dm != null) { return(getDesc((DynamicMethod)dm).GetFunctionPointer()); } if (ShouldBeTyped(sig)) { dm = CreateTrampolineTyped(VMInstance.GetModuleId(module), codeAdr, key, sig, sigId); } else { dm = CreateTrampolineNormal(VMInstance.GetModuleId(module), codeAdr, key, sig, sigId); } trampolines[codeAdr] = dm; return(getDesc((DynamicMethod)dm).GetFunctionPointer()); } }
private void Initialize() { Log("Loading VM data.", true); var vms = VMInstanceData.Select(); foreach (var vm in vms) { Log("Adding " + vm.VMName + " @ " + vm.IPAddress, true); var vmInstance = new VMInstance(vm, mTestServer, mNetworkCredentials); mVMInstanceData.Add(vmInstance); } }
private VMInstance GetVMInstanceData(string ipAddress) { var vmInstance = mVMInstanceData.FirstOrDefault(e => e.IPAddress == ipAddress); if (vmInstance == null) { // This is old code, so you should never get here, since all // VMs are loaded at start up Log("Fetching information for IP " + ipAddress, true); var vmInstanceData = VMInstanceData.SelectByIP(ipAddress); if (vmInstanceData != null) { Log("Adding information for IP " + ipAddress, true); vmInstance = new VMInstance(vmInstanceData, mTestServer, mNetworkCredentials); mVMInstanceData.Add(vmInstance); } } return(vmInstance); }
static void CreateNodes(ClusterLoadRepository repo, string poolName) { Task <IEnumerable <VMInstance> > tVms; var vm1 = new VMInstance() { id = Guid.NewGuid().ToString(), Name = "pinta00s2000000", PoolName = poolName, Status = VMInstanceStatusEnum.Running, JobStatus = VMJobStatusEnum.Free }; repo.CreateVMInstanceAsync(vm1).Wait(); var vm2 = new VMInstance() { id = Guid.NewGuid().ToString(), Name = "pinta00s2000001", PoolName = poolName, Status = VMInstanceStatusEnum.Running, JobStatus = VMJobStatusEnum.Free }; repo.CreateVMInstanceAsync(vm2).Wait(); var vm3 = new VMInstance() { id = Guid.NewGuid().ToString(), Name = "pinta00s2000002", PoolName = poolName, Status = VMInstanceStatusEnum.Running, JobStatus = VMJobStatusEnum.Free }; repo.CreateVMInstanceAsync(vm3).Wait(); var vm4 = new VMInstance() { id = Guid.NewGuid().ToString(), Name = "pinta00s2000004", PoolName = poolName, Status = VMInstanceStatusEnum.Running, JobStatus = VMJobStatusEnum.Free }; repo.CreateVMInstanceAsync(vm4).Wait(); tVms = repo.GetVMInstancesAsync(poolName); var vms = tVms.Result; foreach (var item in vms) { Console.WriteLine($"{item.id} {item.Status}"); } }
public VMContext(VMInstance inst) { Instance = inst; }
public async Task <IEnumerable <VMInstance> > GetVMSSVMStatesAsync(IEnumerable <VMInstance> vmJobStatusList) { var vmList = new List <VMInstance>(); try { // VMs list var vmListUrl = $"subscriptions/{_subscriptionId}/resourceGroups/{_resourceGroup}/providers/Microsoft.Compute/virtualMachineScaleSets/{_vmssName}/virtualMachines?api-version={_vmssApiVersion}"; dynamic dynVmList = await GetResponse(vmListUrl); if (dynVmList.value != null) { foreach (var item in dynVmList.value) { var vm = new VMInstance(); vm.ScaleSetId = item.instanceId; vm.Name = item.properties.osProfile.computerName; vm.PoolName = _vmssName; var vmJobStatus = vmJobStatusList.FirstOrDefault(r => r.Name == vm.Name); if (vmJobStatus != null) { vm.JobStatus = vmJobStatus.JobStatus; } else { vm.JobStatus = VMJobStatusEnum.Unknown; } vmList.Add(vm); } } // VMs status var vmStatusUrl = $"subscriptions/{_subscriptionId}/resourceGroups/{_resourceGroup}/providers/Microsoft.Compute/virtualMachineScaleSets/{_vmssName}/virtualMachines?$expand=instanceView&$select=instanceView&api-version={_vmssApiVersion}"; dynamic dynStatus = await GetResponse(vmStatusUrl); if (dynStatus.value != null) { foreach (var item in dynStatus.value) { string instanceId = item.instanceId; var vm = vmList.FirstOrDefault(v => v.ScaleSetId == instanceId); foreach (var status in item.properties.instanceView.statuses) { string statusCode = status.code; if (statusCode.StartsWith("PowerState")) { string displayStatus = status.displayStatus; if (displayStatus.Contains("running")) { vm.Status = VMInstanceStatusEnum.Running; } else if (displayStatus.Contains("deallocated")) { vm.Status = VMInstanceStatusEnum.Stopped; } } } } } return(vmList); } catch (Exception ex) { OnTraceEvent(ex.ToString()); return(vmList); } }
public async Task CreateVMInstanceAsync(VMInstance v) { var document = await _client.UpsertDocumentAsync(UriFactory.CreateDocumentCollectionUri(_databaseId, _collectionId), v); }
public async Task ReplaceVMInstanceAsync(VMInstance v) { await _client.ReplaceDocumentAsync(UriFactory.CreateDocumentUri(_databaseId, _collectionId, v.id), v); }