//********************************************************************* /// /// <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); }
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); }