コード例 #1
0
        /// <summary>
        /// Process
        /// </summary>
        protected override void ProcessRecord()
        {
            var view = RestApiCommon.GetViewByName(Session.ApiClient, SourceViewName);

            var cloneRequest = new Model.CloneTaskRequest(name: TaskName)
            {
                Type            = Model.CloneTaskRequest.TypeEnum.KCloneView,
                ContinueOnError = true,
            };

            var cloneViewParams = new Model.CloneViewRequest
            {
                SourceViewName = SourceViewName,
                CloneViewName  = TargetViewName,
                Description    = TargetViewDescription,
                Qos            = new Model.QoS
                {
                    PrincipalName = QoSPolicy
                }
            };

            cloneRequest.CloneViewParameters = cloneViewParams;

            var cloneObject = new Model.RestoreObjectDetails
            {
                JobId = JobId,
                ProtectionSourceId = view.ViewProtection.MagnetoEntityId
            };

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

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

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

            objects.Add(cloneObject);

            cloneRequest.Objects = objects;

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

            WriteObject(result);
        }
コード例 #2
0
        /// <summary>
        /// Process
        /// </summary>
        protected override void ProcessRecord()
        {
            var cloneRequest = new Model.CloneTaskRequest(name: TaskName)
            {
                Type            = Model.CloneTaskRequest.TypeEnum.KCloneVMs,
                ContinueOnError = true,
                TargetViewName  = TargetViewName
            };

            var vmwareParams = new Model.VmwareCloneParameters();

            if (PoweredOn.IsPresent)
            {
                vmwareParams.PoweredOn = PoweredOn;
            }
            if (DisableNetwork.IsPresent)
            {
                vmwareParams.DisableNetwork = true;
            }
            if (VmNamePrefix != null)
            {
                vmwareParams.Prefix = VmNamePrefix;
            }
            if (VmNameSuffix != null)
            {
                vmwareParams.Suffix = VmNameSuffix;
            }
            if (DatastoreFolderId.HasValue)
            {
                vmwareParams.DatastoreFolderId = DatastoreFolderId;
            }
            if (NetworkId.HasValue)
            {
                vmwareParams.NetworkId = NetworkId;
            }
            if (ResourcePoolId.HasValue)
            {
                vmwareParams.ResourcePoolId = ResourcePoolId;
            }
            if (VmFolderId.HasValue)
            {
                vmwareParams.VmFolderId = VmFolderId;
            }

            cloneRequest.VmwareParameters = vmwareParams;

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

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

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

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

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

            objects.Add(cloneObject);

            cloneRequest.Objects = objects;

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

            WriteObject(result);
        }