public async Task <VmmServer> UpdateVmmServer(VmmServer server, string id)
        {
            try
            {
                Guid stampId = Guid.Parse(id);
                if (stampId != server.StampId)
                {
                    throw new Exception("Bad ID!");
                }

                await this.vmmServerClient.CheckVmmConnectivity(server);

                byte[] encryptionResult = encryptor.EncryptData(server.Password);
                return(await this.configStorageClient.UpdateVmmServerAsync <VmmServer>(
                           server.StampId,
                           server.UserName,
                           encryptionResult,
                           VmmServerMapping.CreateVmmServerWithoutPassword));
            }
            catch (Exception e)
            {
                VmBackupLog.Current.WriteErrorMessage("UpdateVmmServer", VmBackupEventId.UnexpectedAdminException, e);
                throw;
            }
        }
Example #2
0
 public VmmServerModel(VmmServer server)
 {
     this.ServerName = server.ServerName;
     this.StampId    = server.StampId;
     this.State      = server.State;
     this.UserName   = server.UserName;
 }
Example #3
0
        public async Task <JsonResult> UpdateVmmServer(Guid stampId, string serverName, string userName, string password)
        {
            Requires.Argument <Guid>("stampId", stampId).NotNull();
            Requires.Argument <string>("serverName", serverName).NotNullOrEmpty();
            Requires.Argument <string>("userName", userName).NotNullOrEmpty();
            Requires.Argument <string>("password", password).NotNullOrEmpty();

            try
            {
                VmmServer serverToPost = new VmmServer()
                {
                    StampId    = stampId,
                    ServerName = serverName,
                    UserName   = userName,
                    Password   = password
                };
                var server = await ClientFactory.VmBackupClient.UpdateVmmServerAsync(serverToPost);

                VmmServerModel serverModel = new VmmServerModel(server);

                return(Json(serverModel));
            }
            catch (Exception e)
            {
                throw this.HandleException(e);
            }
        }
        public static VmmServer CreateVmmServerWithoutPassword(SqlDataReader sqlDataReader)
        {
            VmmServer server = null;

            if (sqlDataReader.Read())
            {
                server = GenerateVmmServer(sqlDataReader, true);
            }

            return(server);
        }
        public static VmmServer CreateVmmServer(SqlDataReader sqlDataReader)
        {
            VmmServer server = null;

            if (sqlDataReader.Read())
            {
                server = GenerateVmmServer(sqlDataReader, false);
            }

            return(server);
        }
Example #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="resourceToPost"></param>
        /// <returns></returns>
        public Task <VmmServer> UpdateVmmServerAsync(VmmServer resourceToPost)
        {
            if (resourceToPost == null)
            {
                throw new ArgumentNullException("resourceToPost");
            }

            var requestUrl = this.CreateRequestUri(string.Format(CultureInfo.InvariantCulture, VmBackupClient.VmmServer, resourceToPost.StampId));

            return(this.restClient.PutResourceAsync <VmmServer, VmBackupErrorResource>(resourceToPost, requestUrl)
                   .HandleException <VmmServer>(this.HandleAggregateException));
        }
Example #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="resourceToPost"></param>
        /// <returns></returns>
        public Task <VmmServer> CreateVmmServerAsync(VmmServer resourceToPost)
        {
            if (resourceToPost == null)
            {
                throw new ArgumentNullException("resourceToPost");
            }

            var requestUrl = this.CreateRequestUri(VmBackupClient.VmmServers);

            return(this.restClient.PostResourceAsync <VmmServer, VmBackupErrorResource>(resourceToPost, requestUrl)
                   .HandleException <VmmServer>(this.HandleAggregateException));
        }
        private static VmmServer GenerateVmmServer(SqlDataReader sqlDataReader, bool removePassword = true)
        {
            VmmServer server = new VmmServer();

            server.StampId    = (Guid)sqlDataReader["StampId"];
            server.ServerName = (string)sqlDataReader["ServerName"];
            server.UserName   = (string)sqlDataReader["UserName"];

            //Decrypt the password
            byte[] encryptedPassword = (byte[])sqlDataReader["Password"];
            server.Password = removePassword ? string.Empty : encryptor.DecryptData(encryptedPassword);

            server.State = "Registered";

            return(server);
        }
        public async Task <VmmServer> InsertVmmServer(VmmServer server)
        {
            try
            {
                await this.vmmServerClient.CheckVmmConnectivity(server);

                byte[] encryptionResult = encryptor.EncryptData(server.Password);
                return(await this.configStorageClient.InsertVmmServerAsync <VmmServer>(
                           server.StampId,
                           server.ServerName,
                           server.UserName,
                           encryptionResult,
                           VmmServerMapping.CreateVmmServerWithoutPassword));
            }
            catch (Exception e)
            {
                VmBackupLog.Current.WriteErrorMessage("InsertVmmServer", VmBackupEventId.UnexpectedAdminException, e);
                throw;
            }
        }
Example #10
0
 public async Task <VmmServer> UpdateVmmServer(VmmServer server, string stampId)
 {
     return(await this.vmmServersProvider.UpdateVmmServer(server, stampId));
 }
Example #11
0
        public async Task <HttpResponseMessage> InsertVmmSever(VmmServer server)
        {
            VmmServer vmmServer = await this.vmmServersProvider.InsertVmmServer(server);

            return(Request.CreateResponse <VmmServer>(HttpStatusCode.Created, vmmServer));
        }
Example #12
0
 public async Task CheckVmmConnectivity(VmmServer server)
 {
     await this.RunScriptAsync(PowerShellCommandFactory.GetCheckVmmConnectivityScript(server.ServerName), server.ServerName, server.UserName, server.Password);
 }