Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }