Beispiel #1
0
        /// <summary>
        /// Process
        /// </summary>
        protected override void ProcessRecord()
        {
            var restoreRequest = new Model.RecoverTaskRequest(name: TaskName)
            {
                Type            = Model.RecoverTaskRequest.TypeEnum.KRecoverVMs,
                ContinueOnError = true
            };

            var acropolisParams = new Model.AcropolisRestoreParameters();

            if (PoweredOn.IsPresent)
            {
                acropolisParams.PoweredOn = PoweredOn;
            }
            if (DisableNetwork.IsPresent)
            {
                acropolisParams.DisableNetwork = true;
            }
            if (VmNamePrefix != null)
            {
                acropolisParams.Prefix = VmNamePrefix;
            }
            if (VmNameSuffix != null)
            {
                acropolisParams.Suffix = VmNameSuffix;
            }

            restoreRequest.AcropolisParameters = acropolisParams;

            var restoreObject = new Model.RestoreObjectDetails
            {
                JobId = JobId,
                ProtectionSourceId = SourceId
            };

            if (JobRunId.HasValue)
            {
                restoreObject.JobRunId = JobRunId;
            }

            if (StartTime.HasValue)
            {
                restoreObject.StartedTimeUsecs = StartTime;
            }

            var objects = new List <Model.RestoreObjectDetails>();

            objects.Add(restoreObject);

            restoreRequest.Objects = objects;

            // POST /public/restore/recover
            var preparedUrl = $"/public/restore/recover";
            var result      = Session.ApiClient.Post <Model.RestoreTask>(preparedUrl, restoreRequest);

            WriteObject(result);
        }
        /// <summary>
        /// Process
        /// </summary>
        protected override void ProcessRecord()
        {
            var restoreRequest = new Model.RecoverTaskRequest(name: TaskName)
            {
                Type            = Model.RecoverTaskRequest.TypeEnum.KMountVolumes,
                ContinueOnError = true
            };

            var mountParams = new Model.MountVolumesParameters();

            if (BringDisksOnline.IsPresent)
            {
                mountParams.BringDisksOnline = BringDisksOnline;
            }

            if (VolumeNames != null)
            {
                mountParams.VolumeNames = new List <string>(VolumeNames);
            }

            mountParams.TargetSourceId = TargetHostId.HasValue ? TargetHostId : SourceId;

            if (TargetHostCredential != null)
            {
                mountParams.Username = TargetHostCredential.UserName;
                mountParams.Password = TargetHostCredential.GetNetworkCredential().Password;
            }

            restoreRequest.MountParameters = mountParams;

            var restoreObject = new Model.RestoreObjectDetails
            {
                JobId = JobId,
                ProtectionSourceId = SourceId
            };

            if (JobRunId.HasValue)
            {
                restoreObject.JobRunId = JobRunId;
            }

            if (NewParentId.HasValue)
            {
                restoreRequest.NewParentId = NewParentId;
            }

            if (StartTime.HasValue)
            {
                restoreObject.StartedTimeUsecs = StartTime;
            }

            var objects = new List <Model.RestoreObjectDetails>();

            objects.Add(restoreObject);

            restoreRequest.Objects = objects;

            // POST /public/restore/recover
            var preparedUrl = $"/public/restore/recover";
            var result      = Session.ApiClient.Post <Model.RestoreTask>(preparedUrl, restoreRequest);

            WriteObject(result);
        }