public Uri CurrentSourceUri() { HostUriBuilder helperHostUriBuilder = this._Context.CredentialHelper.ReverseHelperHostUriBuilder; HostUriBuilder hostUriBuilder = new HostUriBuilder(helperHostUriBuilder.Uri); CUtils.CombinUsernameAndDomain(helperHostUriBuilder.Credentials.UserName, helperHostUriBuilder.Credentials.Domain); string password = helperHostUriBuilder.Credentials.Password; if (this._Context.JobInfoWrapper.IsSourceHostCluster) { this._Logger.Information("Finding Owning node for clustered Vm."); ClusteredVirtualMachinesInfo[] clusteredVirtualMachines = this._Context.ServiceResolver.Resolve <IClusterProvider>().GetCluster(helperHostUriBuilder.Uri).GetClusteredVirtualMachines(); ClusteredVirtualMachinesInfo virtualMachinesInfo = ((IEnumerable <ClusteredVirtualMachinesInfo>)clusteredVirtualMachines).Where <ClusteredVirtualMachinesInfo>((Func <ClusteredVirtualMachinesInfo, bool>)(n => ((IEnumerable <VirtualMachine>)n.VirtualMachine).Any <VirtualMachine>((Func <VirtualMachine, bool>)(v => string.Compare(v.Id, this._Context.JobInfoWrapper.SourceVmInfo.Id.ToString("D"), true) == 0)))).FirstOrDefault <ClusteredVirtualMachinesInfo>(); if (virtualMachinesInfo == null) { this._Logger.FormatError("Couldn't find the owning node of {0}", (object)this._Context.JobInfoWrapper.SourceVmInfo.DisplayName); this._Logger.Verbose("The considered nodes were :"); foreach (ClusteredVirtualMachinesInfo data in clusteredVirtualMachines) { this._Logger.Verbose(DataContractUtility.ToXmlString <ClusteredVirtualMachinesInfo>(data)); } throw new OculiServiceException(0, "Couldn't find the owning node for the Vm resource " + this._Context.JobInfoWrapper.SourceVmInfo.DisplayName); } hostUriBuilder.NetworkId = virtualMachinesInfo.OwningNode; } return(hostUriBuilder.Uri); }
public Uri CurrentTargetUri() { HostUriBuilder hostUriBuilder = new HostUriBuilder(this._Context.CredentialHelper.TargetHelperUri); if (this._Context.JobInfoWrapper.TargetIsCluster) { this._Logger.Information("Finding Owning node for clustered Vm."); ClusteredVirtualMachinesInfo[] clusteredVirtualMachines = this._Context.ServiceResolver.Resolve <IClusterProvider>().GetCluster().GetClusteredVirtualMachines(); ClusteredVirtualMachinesInfo virtualMachinesInfo = ((IEnumerable <ClusteredVirtualMachinesInfo>)clusteredVirtualMachines).Where <ClusteredVirtualMachinesInfo>((Func <ClusteredVirtualMachinesInfo, bool>)(n => ((IEnumerable <VirtualMachine>)n.VirtualMachine).Any <VirtualMachine>((Func <VirtualMachine, bool>)(v => string.Compare(v.Id, this._Context.JobInfoWrapper.VmUuid.ToString("D"), true) == 0)))).FirstOrDefault <ClusteredVirtualMachinesInfo>(); if (virtualMachinesInfo == null) { this._Logger.FormatError("Couldn't find the owning node of vm with uuid {0}", (object)this._Context.JobInfoWrapper.VmUuid); this._Logger.Verbose("The considered nodes were :"); foreach (ClusteredVirtualMachinesInfo data in clusteredVirtualMachines) { this._Logger.Verbose(DataContractUtility.ToXmlString <ClusteredVirtualMachinesInfo>(data)); } throw new OculiServiceException(0, "Couldn't find the owning node for the Vm with uuid " + (object)this._Context.JobInfoWrapper.VmUuid); } hostUriBuilder.NetworkId = virtualMachinesInfo.OwningNode; } return(hostUriBuilder.Uri); }