Example #1
0
 /// <summary>The add disk.</summary>
 /// <param name="addDisk">The add disk.</param>
 /// <returns>The <see cref="Task"/>.</returns>
 public async Task <ResponseType> AddDisk(AddDiskType addDisk)
 {
     return(await _apiClient.PostAsync <AddDiskType, ResponseType>(ApiUris.AddDisk(_apiClient.OrganizationId), addDisk));
 }
Example #2
0
        /// <summary>
        ///     The process record method.
        /// </summary>
        protected override void ProcessRecord()
        {
            base.ProcessRecord();
            ResponseType response = null;

            try
            {
                AddDiskType request = null;
                switch (ParameterSetName)
                {
                case "ServerType":
                    request = new AddDiskType
                    {
                        sizeGb          = SizeInGB,
                        speed           = SpeedId,
                        ItemElementName = AddDiskItemChoiceType.serverId,
                        Item            = Server.id,
                    };
                    break;

                case "Scsi":
                    request = new AddDiskType
                    {
                        sizeGb          = SizeInGB,
                        speed           = SpeedId,
                        ItemElementName = AddDiskItemChoiceType.scsiController,
                        Item            = new ScsiControllerType
                        {
                            controllerId    = ScsiControllerId,
                            scsiId          = ScsiId ?? 0,
                            scsiIdSpecified = ScsiId.HasValue
                        }
                    };
                    break;

                case "IDE":
                    request = new AddDiskType
                    {
                        sizeGb          = SizeInGB,
                        speed           = SpeedId,
                        ItemElementName = AddDiskItemChoiceType.ideController,
                        Item            = new IdeControllerType
                        {
                            controllerId = IdeControllerId
                        }
                    };
                    break;

                case "SATA":
                    request = new AddDiskType
                    {
                        sizeGb          = SizeInGB,
                        speed           = SpeedId,
                        ItemElementName = AddDiskItemChoiceType.sataController,
                        Item            = new SataControllerType
                        {
                            controllerId    = SataControllerId,
                            sataId          = SataId ?? 0,
                            sataIdSpecified = SataId.HasValue
                        }
                    };
                    break;
                }

                if (string.IsNullOrEmpty(SpeedId))
                {
                    SpeedId = Speed.ToString();
                }

                response =
                    Connection.ApiClient.ServerManagement.Server.AddDisk(request).Result;
            }
            catch (AggregateException ae)
            {
                ae.Handle(
                    e =>
                {
                    if (e is ComputeApiException)
                    {
                        WriteError(new ErrorRecord(e, "-2", ErrorCategory.InvalidOperation, Connection));
                    }
                    else
                    {
                        // if (e is HttpRequestException)
                        ThrowTerminatingError(new ErrorRecord(e, "-1", ErrorCategory.ConnectionError, Connection));
                    }

                    return(true);
                });
            }

            WriteObject(response);
        }