/// <summary>
        /// Monitors jobs for specific object id.
        /// </summary>
        /// <param name="jobName">Name of the job to monitor.</param>
        /// <param name="startTime">Start time of job</param>
        /// <param name="client">SiteRecovery client.</param>
        /// <param name="requestHeaders">Request headers.</param>
        public static void MonitorJobs(
            string jobName,
            DateTime startTime,
            SiteRecoveryManagementClient client,
            CustomRequestHeaders requestHeaders)
        {
            bool trackingFinished = false;

            while (!trackingFinished)
            {
                if (!trackingFinished)
                {
                    Thread.Sleep(new TimeSpan(0, 1, 0));
                }

                JobQueryParameter queryParam = new JobQueryParameter();
                JobListResponse   jobList    = client.Jobs.List(queryParam, requestHeaders);
                trackingFinished = true;

                foreach (var job in jobList.Jobs)
                {
                    if (job.Properties.ScenarioName.Contains(jobName) &&
                        job.Properties.State.Equals(
                            "InProgress",
                            StringComparison.InvariantCultureIgnoreCase))
                    {
                        trackingFinished = false;
                        break;
                    }
                }
            }
        }
        public void ExportJobTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client = GetSiteRecoveryClient(CustomHttpHandler);

                JobQueryParameter jqp = new JobQueryParameter();

                Stopwatch stopWatch = new Stopwatch();
                stopWatch.Start();
                var exportJobResponse = (JobOperationResponse)client.Jobs.Export(jqp, RequestHeaders);

                Assert.True(exportJobResponse != null, "Export Jobs did not return Job Object");
                Assert.False(string.IsNullOrEmpty(exportJobResponse.Job.Name), "Job Id Absent");

                stopWatch.Stop();

                Assert.Equal <string>(exportJobResponse.Job.Properties.State, "Succeeded");
                Assert.Equal(HttpStatusCode.OK, exportJobResponse.StatusCode);
                Assert.True(exportJobResponse.Job.Properties.CustomDetails.InstanceType.Equals(
                                "ExportJobDetails"));
                Assert.False(string.IsNullOrEmpty(
                                 ((ExportJobDetails)exportJobResponse.Job.Properties.CustomDetails).BlobUri));
                Assert.False(string.IsNullOrEmpty(
                                 ((ExportJobDetails)exportJobResponse.Job.Properties.CustomDetails).SasToken));
            }
        }
        /// <summary>
        /// Queries by Parameters.
        /// </summary>
        private void GetByParam()
        {
            JobQueryParameter jqp = new JobQueryParameter();

            IList <Management.SiteRecovery.Models.Job> completeJobsList = RecoveryServicesClient.GetAzureSiteRecoveryJob().Jobs;

            IEnumerable <Management.SiteRecovery.Models.Job> filteredJobsList = completeJobsList.ToArray().AsEnumerable();

            if (this.StartTime.HasValue)
            {
                filteredJobsList = filteredJobsList.Where(j => j.Properties.StartTime.Value.ToUniversalTime().ToBinary() >= this.StartTime.Value.ToUniversalTime().ToBinary());
            }

            if (this.EndTime.HasValue)
            {
                filteredJobsList = filteredJobsList.Where(j => j.Properties.EndTime.Value.ToUniversalTime().ToBinary() <= this.EndTime.Value.ToUniversalTime().ToBinary());
            }

            if (this.State != null)
            {
                filteredJobsList = filteredJobsList.Where(j => 0 == string.Compare(j.Properties.State.ToString(),
                                                                                   this.State.ToString(), StringComparison.OrdinalIgnoreCase));
            }

            if (this.TargetObjectId != null)
            {
                filteredJobsList = filteredJobsList.Where(j => 0 == string.Compare(j.Properties.TargetObjectId.ToString(),
                                                                                   this.TargetObjectId.ToString(), StringComparison.OrdinalIgnoreCase));
            }

            this.WriteJobs(filteredJobsList.ToList());
        }
Пример #4
0
 /// <summary>
 /// Get the list of all jobs.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.SiteRecovery.IJobOperations.
 /// </param>
 /// <param name='parameters'>
 /// Optional. Job query parameter.
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Optional. Request header parameters.
 /// </param>
 /// <returns>
 /// The response model for the list Jobs operation.
 /// </returns>
 public static JobListResponse List(this IJobOperations operations, JobQueryParameter parameters, CustomRequestHeaders customRequestHeaders)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((IJobOperations)s).ListAsync(parameters, customRequestHeaders);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }
Пример #5
0
        /// <summary>
        /// Queries by Parameters.
        /// </summary>
        private void GetByParam()
        {
            JobQueryParameter jqp = new JobQueryParameter();

            if (this.StartTime.HasValue)
            {
                jqp.StartTime =
                    this.StartTime.Value.ToUniversalTime().ToBinary().ToString();
            }

            jqp.State = this.State;
            this.WriteJobs(RecoveryServicesClient.GetAzureSiteRecoveryJob(jqp).Jobs);
        }
Пример #6
0
        public void ExportJobTest()
        {
            int timeToWaitInMins     = 2;
            int waitBeforeRetryInSec = 1;

            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client = GetSiteRecoveryClient(CustomHttpHandler);

                DateTime from = DateTime.Now.ToUniversalTime() - (new TimeSpan(7, 0, 0, 0));
                DateTime to   = DateTime.Now.ToUniversalTime();

                JobQueryParameter jqp = new JobQueryParameter();
                jqp.StartTime           = from.ToBinary().ToString();
                jqp.EndTime             = to.ToBinary().ToString();
                jqp.AffectedObjectTypes = new List <string>();
                jqp.AffectedObjectTypes.Add("Any");
                jqp.JobStatus = new List <string>();
                jqp.JobStatus.Add("Completed");

                Stopwatch stopWatch = new Stopwatch();
                stopWatch.Start();
                var exportResponse = client.Jobs.Export(jqp, RequestHeaders);

                Assert.True(exportResponse != null, "Export Jobs did not return Job Object");
                Assert.False(string.IsNullOrEmpty(exportResponse.Job.Name), "Job Id Absent");

                JobResponse getJobResponse = null;
                while (stopWatch.Elapsed.Minutes < timeToWaitInMins)
                {
                    getJobResponse = client.Jobs.Get(exportResponse.Job.Name, RequestHeaders);
                    Assert.True(getJobResponse != null, "Get call on export job returned null");
                    if (getJobResponse.Job.Properties.State.Equals("Succeeded"))
                    {
                        break;
                    }
                    System.Threading.Thread.Sleep(waitBeforeRetryInSec * 1000);
                }
                stopWatch.Stop();

                Assert.Equal <string>(getJobResponse.Job.Properties.State, "Succeeded");
                Assert.Equal(HttpStatusCode.OK, getJobResponse.StatusCode);
                Assert.True(getJobResponse.Job.Properties.CustomDetails.InstanceType.Equals(
                                "ExportJobDetails"));
                Assert.False(string.IsNullOrEmpty(
                                 ((ExportJobDetails)getJobResponse.Job.Properties.CustomDetails).BlobUri));
                Assert.False(string.IsNullOrEmpty(
                                 ((ExportJobDetails)getJobResponse.Job.Properties.CustomDetails).SasToken));
            }
        }
        public void GetRPTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client            = GetSiteRecoveryClient(CustomHttpHandler);
                JobQueryParameter jqp = new JobQueryParameter();
                var responseRP        = client.RecoveryPlan.List(RequestHeaders);
                var response          = client.RecoveryPlan.Get(responseRP.RecoveryPlans[0].ID, RequestHeaders);

                Assert.NotNull(response.RecoveryPlan);
                Assert.NotNull(response.RecoveryPlan.ID);
                Assert.NotNull(response.RecoveryPlan.Name);
                Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            }
        }
Пример #8
0
        public void GetJobTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client            = GetSiteRecoveryClient(CustomHttpHandler);
                JobQueryParameter jqp = new JobQueryParameter();
                var    responseJobs   = client.Jobs.List(jqp, RequestHeaders);
                string jobId          = responseJobs.Jobs[0].ID;
                var    response       = client.Jobs.Get(jobId, RequestHeaders);

                Assert.NotNull(response.Job);
                Assert.NotNull(response.Job.ID);
                Assert.NotNull(response.Job.StartTime);
                Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            }
        }
Пример #9
0
        public void EnumerateJobsTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client = GetSiteRecoveryClient(CustomHttpHandler);

                JobQueryParameter jqp = new JobQueryParameter();
                var response          = client.Jobs.List(jqp, RequestHeaders);

                jqp.ObjectId = response.Jobs[0].TargetObjectId;
                response     = client.Jobs.List(jqp, RequestHeaders);

                Assert.True(response.Jobs.Count > 0, "No Asr jobs found.");
                Assert.True(response.Jobs.All(job => !string.IsNullOrEmpty(job.ID)), "Job ID can't be null or empty");
                Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            }
        }
Пример #10
0
        public void CancelJobTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client = GetSiteRecoveryClient(CustomHttpHandler);

                var requestHeaders = RequestHeaders;
                requestHeaders.AgentAuthenticationHeader =
                    GenerateAgentAuthenticationHeader(requestHeaders.ClientRequestId);

                JobQueryParameter jqp = new JobQueryParameter();
                var responseJobs      = client.Jobs.List(jqp, requestHeaders);
                var response          = client.Jobs.Cancel(responseJobs.Jobs[0].ID, RequestHeaders);

                Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
            }
        }
        /// <summary>
        /// Returns job id of the job.
        /// </summary>
        /// <param name="jobName">Name of the job to check for.</param>
        /// <param name="startTime">Start time of job</param>
        /// <param name="client">SiteRecovery client.</param>
        /// <param name="requestHeaders">Request headers.</param>
        /// <returns>Job object of the job queried.</returns>
        public static Job GetJobId(
            string jobName,
            DateTime startTime,
            SiteRecoveryManagementClient client,
            CustomRequestHeaders requestHeaders)
        {
            JobQueryParameter queryParam = new JobQueryParameter();
            JobListResponse   jobList    = client.Jobs.List(queryParam, requestHeaders);

            foreach (var job in jobList.Jobs)
            {
                if (job.Properties.ScenarioName.Contains(jobName))
                {
                    return(job);
                }
            }

            return(new Job());
        }
Пример #12
0
        private void RestartJobTest(string state)
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client = GetSiteRecoveryClient(CustomHttpHandler);

                var requestHeaders = RequestHeaders;
                requestHeaders.AgentAuthenticationHeader =
                    GenerateAgentAuthenticationHeader(requestHeaders.ClientRequestId);

                JobQueryParameter jqp    = new JobQueryParameter();
                var         responseJobs = client.Jobs.List(jqp, RequestHeaders);
                JobResponse response     = null;
                try
                {
                    foreach (var job in responseJobs.Jobs)
                    {
                        if (job.State == state)
                        {
                            response = client.Jobs.Restart(job.ID, requestHeaders);
                        }
                    }
                }
                catch (CloudException cloudEx)
                {
                    if (cloudEx.Error.Code == "CannotRemediateSucceededWorkflow" ||
                        cloudEx.Error.Code == "CannotRemediateUnfinishedWorkflow" ||
                        cloudEx.Error.Code == "FeatureNotAllowed")
                    {
                        // Request was submitted but failed initial validation.
                        // But our scenario of restart job request was accepted, so test succeeded.
                        return;
                    }
                }

                Assert.NotNull(response.Job);
                Assert.NotNull(response.Job.ID);
                Assert.NotNull(response.Job.StartTime);
                Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            }
        }
Пример #13
0
        public void EnumerateJobsTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client = GetSiteRecoveryClient(CustomHttpHandler);

                JobQueryParameter queryParam = new JobQueryParameter();
                var response = client.Jobs.List(queryParam, RequestHeaders);

                Assert.True(response.Jobs.Count > 0, "Jobs count can't be less than 1");
                Assert.True(response.Jobs.All(
                                protectedContainer => !string.IsNullOrEmpty(protectedContainer.Name)),
                            "Job name can't be null or empty");
                Assert.True(response.Jobs.All(
                                protectedContainer => !string.IsNullOrEmpty(protectedContainer.Id)),
                            "Job Id can't be null or empty");
                Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            }
        }
Пример #14
0
        /// <summary>
        /// Queries by Parameters.
        /// </summary>
        private void GetByParam()
        {
            JobQueryParameter jqp = new JobQueryParameter();

            //if (this.StartTime.HasValue)
            //{
            //    jqp.StartTime =
            //        this.StartTime.Value.ToUniversalTime().ToBinary().ToString();
            //}

            //if (this.EndTime.HasValue)
            //{
            //    jqp.EndTime =
            //        this.EndTime.Value.ToUniversalTime().ToBinary().ToString();
            //}

            //jqp.State = this.State;
            //jqp.ObjectId = this.TargetObjectId;

            this.WriteJobs(RecoveryServicesClient.GetAzureSiteRecoveryJob(jqp).Jobs);
        }
        /// <summary>
        ///     Queries by Parameters.
        /// </summary>
        private void GetByParam()
        {
            var jqp = new JobQueryParameter();

            if (this.StartTime.HasValue)
            {
                jqp.StartTime = this.StartTime.Value.ToUniversalTime()
                                .ToString("o");
            }

            if (this.EndTime.HasValue)
            {
                jqp.EndTime = this.EndTime.Value.ToUniversalTime()
                              .ToString("o");
            }

            if (this.State != null)
            {
                jqp.JobStatus = new List <string>();
                jqp.JobStatus.Add(this.State);
            }

            var completeJobsList = this.RecoveryServicesClient.GetAzureSiteRecoveryJob(jqp);

            // Filtering TargetObjectId
            var filteredJobsList = completeJobsList.ToArray()
                                   .AsEnumerable();

            if (this.TargetObjectId != null)
            {
                filteredJobsList = filteredJobsList.Where(
                    j => 0 ==
                    string.Compare(
                        j.Properties.TargetObjectId.ToString(),
                        this.TargetObjectId.ToString(),
                        StringComparison.OrdinalIgnoreCase));
            }

            this.WriteJobs(filteredJobsList.ToList());
        }
Пример #16
0
        /// <summary>
        ///     Get Azure Site Recovery Job.
        /// </summary>
        /// <returns>Job list response</returns>
        public List <Job> GetAzureSiteRecoveryJob(
            JobQueryParameter jqp)
        {
            var odataQuery = new ODataQuery <JobQueryParameter>(jqp.ToQueryString());
            var firstPage  = this.GetSiteRecoveryClient()
                             .ReplicationJobs.ListWithHttpMessagesAsync(
                odataQuery,
                this.GetRequestHeaders(true))
                             .GetAwaiter()
                             .GetResult()
                             .Body;
            var pages = Utilities.GetAllFurtherPages(
                this.GetSiteRecoveryClient()
                .ReplicationJobs.ListNextWithHttpMessagesAsync,
                firstPage.NextPageLink,
                this.GetRequestHeaders(true));

            pages.Insert(
                0,
                firstPage);

            return(Utilities.IpageToList(pages));
        }
        public void DissociateAndDelete()
        {
            using (UndoContext context = UndoContext.Current)
            {
                JobResponse response = null;
                context.Start();
                var client         = GetSiteRecoveryClient(CustomHttpHandler);
                var requestHeaders = RequestHeaders;
                requestHeaders.AgentAuthenticationHeader = GenerateAgentAuthenticationHeader(requestHeaders.ClientRequestId);

                JobQueryParameter jqp = new JobQueryParameter();
                var responseRP        = client.ProtectionProfile.List(RequestHeaders);

                foreach (var profile in responseRP.ProtectionProfiles)
                {
                    foreach (var associationDetail in profile.AssociationDetail)
                    {
                        if (associationDetail.AssociationStatus == "Paired")
                        {
                            var input = new CreateAndAssociateProtectionProfileInput();
                            input.AssociationInput.PrimaryProtectionContainerId  = associationDetail.PrimaryProtectionContainerId;
                            input.AssociationInput.RecoveryProtectionContainerId = associationDetail.RecoveryProtectionContainerId;

                            response = client.ProtectionProfile.DissociateAndDelete(
                                profile.ID,
                                input,
                                requestHeaders);
                            break;
                        }
                    }
                }

                Assert.NotNull(response);
                Assert.NotNull(response.Job.ID);
                Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            }
        }
 /// <summary>
 /// Exports the details of the Azure Site Recovery jobs of the vault.
 /// </summary>
 /// <remarks>
 /// The operation to export the details of the Azure Site Recovery jobs of the
 /// vault.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='jobQueryParameter'>
 /// job query filter.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <Job> BeginExportAsync(this IReplicationJobsOperations operations, JobQueryParameter jobQueryParameter, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginExportWithHttpMessagesAsync(jobQueryParameter, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Exports the details of the Azure Site Recovery jobs of the vault.
 /// </summary>
 /// <remarks>
 /// The operation to export the details of the Azure Site Recovery jobs of the
 /// vault.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='jobQueryParameter'>
 /// job query filter.
 /// </param>
 public static Job BeginExport(this IReplicationJobsOperations operations, JobQueryParameter jobQueryParameter)
 {
     return(operations.BeginExportAsync(jobQueryParameter).GetAwaiter().GetResult());
 }
        public void Update()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client         = GetSiteRecoveryClient(CustomHttpHandler);
                var requestHeaders = RequestHeaders;
                requestHeaders.AgentAuthenticationHeader = GenerateAgentAuthenticationHeader(requestHeaders.ClientRequestId);

                JobQueryParameter jqp = new JobQueryParameter();
                var responseRP        = client.ProtectionProfile.List(RequestHeaders);

                string serializedHyperVReplicaAzureProfileManagementInput = null;
                foreach (var profile in responseRP.ProtectionProfiles)
                {
                    if (profile.ReplicationProvider == "HyperVReplicaAzure")
                    {
                        string subsId = null;

                        var obj =
                            DataContractUtils <HyperVReplicaAzureProtectionProfileDetails> .Deserialize(
                                profile.ReplicationProviderSetting);

                        var settings = new HyperVReplicaAzureProtectionProfileInput();
                        settings.AppConsistencyFreq           = obj.AppConsistencyFreq;
                        settings.IsEncryptionEnabled          = obj.IsEncryptionEnabled;
                        settings.OnlineIrStartTime            = obj.OnlineIrStartTime;
                        settings.RecoveryPointHistoryDuration = obj.RecoveryPointHistoryDuration;
                        settings.ReplicationInterval          = obj.ReplicationInterval;
                        settings.StorageAccounts = new List <CustomerStorageAccount>();
                        var storageAccount = new CustomerStorageAccount();
                        storageAccount.StorageAccountName = obj.ActiveStorageAccount.StorageAccountName;
                        subsId = storageAccount.SubscriptionId;
                        storageAccount.SubscriptionId = "MySubscriptionId";
                        settings.StorageAccounts.Add(storageAccount);

                        serializedHyperVReplicaAzureProfileManagementInput =
                            DataContractUtils <HyperVReplicaAzureProtectionProfileInput> .Serialize(settings);

                        // update the profile object.
                        var input = new UpdateProtectionProfileInput();
                        input.ReplicationProviderSettings = serializedHyperVReplicaAzureProfileManagementInput;

                        var responseUpdate = client.ProtectionProfile.Update(input, profile.ID, RequestHeaders);
                        var responseGet    = client.ProtectionProfile.Get(profile.ID, RequestHeaders);

                        // check for subsid.
                        Assert.NotNull(responseGet.ProtectionProfile);

                        // revert the temp changes.
                        storageAccount.SubscriptionId = subsId;
                        serializedHyperVReplicaAzureProfileManagementInput =
                            DataContractUtils <HyperVReplicaAzureProtectionProfileInput> .Serialize(settings);

                        input.ReplicationProviderSettings = serializedHyperVReplicaAzureProfileManagementInput;
                        responseUpdate = client.ProtectionProfile.Update(
                            input,
                            profile.ID,
                            requestHeaders);
                        return;
                    }
                }
            }
        }
        public void CreateAndAssociateE2A(string provider)
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client         = GetSiteRecoveryClient(CustomHttpHandler);
                var requestHeaders = RequestHeaders;
                requestHeaders.AgentAuthenticationHeader = GenerateAgentAuthenticationHeader(requestHeaders.ClientRequestId);

                JobQueryParameter jqp = new JobQueryParameter();
                var responseRP        = client.ProtectionProfile.List(RequestHeaders);

                string serializedHyperVReplicaAzureProfileManagementInput = null;
                foreach (var profile in responseRP.ProtectionProfiles)
                {
                    if (profile.AssociationDetail[0].AssociationStatus == "Paired")
                    {
                        // Instead of creating new set of values. Picking the values from already paired cloud.
                        var obj =
                            DataContractUtils <HyperVReplicaAzureProtectionProfileDetails> .Deserialize(
                                profile.ReplicationProviderSetting);

                        var settings = new HyperVReplicaAzureProtectionProfileInput();
                        settings.AppConsistencyFreq           = obj.AppConsistencyFreq;
                        settings.IsEncryptionEnabled          = obj.IsEncryptionEnabled;
                        settings.OnlineIrStartTime            = obj.OnlineIrStartTime;
                        settings.RecoveryPointHistoryDuration = obj.RecoveryPointHistoryDuration;
                        settings.ReplicationInterval          = obj.ReplicationInterval;
                        settings.StorageAccounts = new List <CustomerStorageAccount>();
                        var storageAccount = new CustomerStorageAccount();
                        storageAccount.StorageAccountName = obj.ActiveStorageAccount.StorageAccountName;
                        storageAccount.SubscriptionId     = obj.ActiveStorageAccount.SubscriptionId;
                        settings.StorageAccounts.Add(storageAccount);

                        serializedHyperVReplicaAzureProfileManagementInput =
                            DataContractUtils <HyperVReplicaAzureProtectionProfileInput> .Serialize(settings);
                    }
                }

                var responsePC = client.ProtectionContainer.List(RequestHeaders);

                foreach (var pc in responsePC.ProtectionContainers)
                {
                    if (string.IsNullOrWhiteSpace(pc.Role))
                    {
                        var input = new CreateAndAssociateProtectionProfileInput();

                        input.ProtectionProfileInput      = new CreateProtectionProfileInput();
                        input.ProtectionProfileInput.Name = "PP1";
                        input.ProtectionProfileInput.ReplicationProvider         = "HyperVReplicaAzure";
                        input.ProtectionProfileInput.ReplicationProviderSettings =
                            serializedHyperVReplicaAzureProfileManagementInput;

                        input.AssociationInput = new ProtectionProfileAssociationInput();
                        input.AssociationInput.PrimaryProtectionContainerId  = pc.ID;
                        input.AssociationInput.RecoveryProtectionContainerId = AzureProtectionContainerId;

                        client.ProtectionProfile.CreateAndAssociate(input, requestHeaders);
                    }
                }

                //Assert.NotNull(response.);
                //Assert.NotNull(response.RecoveryPlan.ID);
                //Assert.NotNull(response.RecoveryPlan.Name);
                //Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            }
        }
Пример #22
0
 /// <summary>
 /// Get the list of all jobs.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.SiteRecovery.IJobOperations.
 /// </param>
 /// <param name='parameters'>
 /// Optional. Job query parameter.
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Optional. Request header parameters.
 /// </param>
 /// <returns>
 /// The response model for the list Jobs operation.
 /// </returns>
 public static Task <JobListResponse> ListAsync(this IJobOperations operations, JobQueryParameter parameters, CustomRequestHeaders customRequestHeaders)
 {
     return(operations.ListAsync(parameters, customRequestHeaders, CancellationToken.None));
 }
 /// <summary>
 /// Get Azure Site Recovery Job.
 /// </summary>
 /// <returns>Job list response</returns>
 public JobListResponse GetAzureSiteRecoveryJob(JobQueryParameter jqp)
 {
     return(this.GetSiteRecoveryClient().Jobs.List(jqp, this.GetRequestHeaders(false)));
 }
Пример #24
0
 /// <summary>
 /// Export jobs to blob.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.SiteRecovery.IJobOperations.
 /// </param>
 /// <param name='parameters'>
 /// Required. Job Query Filters
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Optional. Request header parameters.
 /// </param>
 /// <returns>
 /// A standard service response for long running operations.
 /// </returns>
 public static Task <LongRunningOperationResponse> ExportAsync(this IJobOperations operations, JobQueryParameter parameters, CustomRequestHeaders customRequestHeaders)
 {
     return(operations.ExportAsync(parameters, customRequestHeaders, CancellationToken.None));
 }