示例#1
0
        //*********************************************************************
        ///
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        ///
        //*********************************************************************

        public AzureAdminClientLib.HttpResponse ListDisksInSubscription()
        {
            var resp = new AzureAdminClientLib.HttpResponse();

            try
            {
                var req = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(
                    string.Format("https://management.core.windows.net/{0}/services/disks",
                                  _Connection.SubcriptionID));

                req.Headers["x-ms-version"] = "2014-05-01";
                req.ClientCertificates.Add(_Connection.Certificate);

                System.Xml.Linq.XNamespace xmlns = "http://schemas.microsoft.com/windowsazure";

                req.Method = "GET";
                var response   = (System.Net.HttpWebResponse)req.GetResponse();
                var respStream = response.GetResponseStream();

                if (null == respStream)
                {
                    throw new Exception("Unable to create Stream from HttpWebResponse");
                }

                var reader    = new System.IO.StreamReader(respStream);
                var sResponse = reader.ReadToEnd();

                resp.HadError = false;
                resp.Body     = sResponse;
            }
            catch (Exception ex)
            {
                resp.Body = ex.Message;

                if (ex.Message.Contains("409"))
                {
                    resp.HadError = false;
                }
                else
                {
                    resp.HadError = true;
                }
            }

            return(resp);
        }
示例#2
0
        public override object Execute()
        {
            if (AllQueuesBlocked)
            {
                return(0);
            }

            var noCerts      = true;
            var HaltSequence = false;
            var cdb          = new CmpDb(CmpDbConnectionString);

            List <Models.VmDeploymentRequest> vmReqList = null;

            try
            {
                vmReqList = cdb.FetchVmDepRequests(
                    Constants.StatusEnum.ReadyForUploadingServiceCert.ToString(), true);
            }
            catch (Exception ex)
            {
                throw new Exception("Exception in ProcessTransferedSubmissions() " +
                                    CmpCommon.Utilities.UnwindExceptionMessages(ex));
            }

            foreach (var vmReq in vmReqList)
            {
                try
                {
                    var vmc =
                        CmpInterfaceModel.Models.VmConfig.Deserialize(vmReq.Config);

                    noCerts = true;

                    if (null != vmc.ServiceCertList)
                    {
                        foreach (var cf in vmc.ServiceCertList)
                        {
                            if (null == cf.Data)
                            {
                                continue;
                            }

                            if (1 > cf.Data.Length)
                            {
                                continue;
                            }

                            noCerts = false;

                            if (null == vmReq.ServiceProviderAccountID)
                            {
                                throw new Exception("ServiceProviderAccountID == NULL");
                            }

                            var connection =
                                ServProvAccount.GetAzureServiceAccountConnection((int)vmReq.ServiceProviderAccountID, CmpDbConnectionString);

                            AzureAdminClientLib.HttpResponse resp = null;

                            var co = new AzureAdminClientLib.CertOps(connection);
                            resp = co.UploadServiceCert(vmReq.TargetServicename, cf.Data, cf.Password);

                            if (resp.HadError)
                            {
                                vmReq.StatusCode       = Constants.StatusEnum.Exception.ToString();
                                vmReq.StatusMessage    = "Exception";
                                vmReq.ExceptionMessage = resp.Body;
                                Utilities.SetVmReqExceptionType(vmReq,
                                                                CmpInterfaceModel.Constants.RequestExceptionTypeCodeEnum.Admin);
                            }
                            else
                            {
                                vmReq.StatusCode       = Constants.StatusEnum.ReadyForCreatingVM.ToString();
                                vmReq.ExceptionMessage = "";
                                vmReq.StatusMessage    = resp.Body;
                                vmReq.ServiceProviderStatusCheckTag = resp.StatusCheckUrl;
                                System.Threading.Thread.Sleep(HostedServiceCreationDwellTime);
                            }

                            cdb.SetVmDepRequestStatus(vmReq, null);
                        }
                    }

                    if (noCerts)
                    {
                        vmReq.StatusCode       = Constants.StatusEnum.ReadyForCreatingVM.ToString();
                        vmReq.ExceptionMessage = "";
                        vmReq.StatusMessage    = "No Certificates Specified";
                        vmReq.ServiceProviderStatusCheckTag = "";
                        cdb.SetVmDepRequestStatus(vmReq, null);
                    }

                    if (!HaltSequence)
                    {
                        vmReq.CurrentStateStartTime = DateTime.UtcNow;
                    }
                }
                catch (Exception ex)
                {
                    if (null != vmReq)
                    {
                        vmReq.StatusCode       = Constants.StatusEnum.Exception.ToString();
                        vmReq.ExceptionMessage = Utilities.UnwindExceptionMessages(ex);

                        if (vmReq.ExceptionMessage.Contains("Unable to locate VM request record"))
                        {
                        }
                        else
                        {
                            vmReq.StatusMessage = "Exception";
                            Utilities.SetVmReqExceptionType(vmReq,
                                                            CmpInterfaceModel.Constants.RequestExceptionTypeCodeEnum.Admin);
                            cdb.SetVmDepRequestStatus(vmReq, null);
                        }
                    }
                }
            }

            return(0);
        }