示例#1
0
        internal AmDatabaseMoveResult ConvertDetailedStatusToRpcMoveResult(AmDbOperationDetailedStatus detailedStatus)
        {
            Guid            guid                  = detailedStatus.Database.Guid;
            string          name                  = detailedStatus.Database.Name;
            string          fromServerFqdn        = string.Empty;
            string          finalActiveServerFqdn = string.Empty;
            AmDbMountStatus dbMountStatusAtStart  = AmDbMountStatus.Unknown;
            AmDbMountStatus dbMountStatusAtEnd    = AmDbMountStatus.Unknown;

            if (detailedStatus.InitialDbState != null)
            {
                fromServerFqdn       = detailedStatus.InitialDbState.ActiveServer.Fqdn;
                dbMountStatusAtStart = AmDbOperation.ConvertMountStatusToRpcMountStatus(detailedStatus.InitialDbState.MountStatus);
            }
            if (detailedStatus.FinalDbState != null)
            {
                finalActiveServerFqdn = detailedStatus.FinalDbState.ActiveServer.Fqdn;
                dbMountStatusAtEnd    = AmDbOperation.ConvertMountStatusToRpcMountStatus(detailedStatus.FinalDbState.MountStatus);
            }
            Exception                        lastException = this.LastException;
            RpcErrorExceptionInfo            errorInfo     = AmRpcExceptionWrapper.Instance.ConvertExceptionToErrorExceptionInfo(lastException);
            AmDbMoveStatus                   dbMoveStatus  = AmDbOperation.TranslateExceptionIntoMoveStatusEnum(lastException);
            List <AmDbRpcOperationSubStatus> attemptedServerSubStatuses = (from opSubStatus in detailedStatus.GetAllSubStatuses()
                                                                           select opSubStatus.ConvertToRpcSubStatus()).ToList <AmDbRpcOperationSubStatus>();

            return(new AmDatabaseMoveResult(guid, name, fromServerFqdn, finalActiveServerFqdn, dbMoveStatus, dbMountStatusAtStart, dbMountStatusAtEnd, errorInfo, attemptedServerSubStatuses));
        }
        private static MountStatus ConvertToMountStatus(AmDbMountStatus rpcMountStatus)
        {
            switch (rpcMountStatus)
            {
            case AmDbMountStatus.Unknown:
                return(MountStatus.Unknown);

            case AmDbMountStatus.Mounted:
                return(MountStatus.Mounted);

            case AmDbMountStatus.Dismounted:
                return(MountStatus.Dismounted);

            case AmDbMountStatus.Mounting:
                return(MountStatus.Mounting);

            case AmDbMountStatus.Dismounting:
                return(MountStatus.Dismounting);

            default:
                return(MountStatus.Unknown);
            }
        }