コード例 #1
0
        /// <summary>
        /// Update device details for a device by passing the updated details themselves.
        /// </summary>
        /// <param name="updatedDetails">The new state of DeviceDetails for the device.</param>
        /// <returns></returns>
        public TaskStatusInfo UpdateDeviceDetails(DeviceDetails updatedDetails)
        {
            var request = new DeviceDetailsRequest();

            MiscUtils.CopyProperties(updatedDetails, request);
            var taskStatusInfo = this.GetStorSimpleClient().DeviceDetails.UpdateDeviceDetails(request, this.GetCustomRequestHeaders());

            return(taskStatusInfo);
        }
コード例 #2
0
        /// <summary>
        /// Update device details for specified device given the specified data
        /// </summary>
        /// <param name="deviceDetails">Current device details for the device.</param>
        /// <param name="newName">New friendly name for the device. Null if its not to be changed</param>
        /// <param name="timeZone">New timeZone value for the device. Null if its not to be changed</param>
        /// <param name="secondaryDnsServer">New Secondary DNS Server address for the device. Null if its not to be changed</param>
        /// <param name="networkConfigs">An array or NetworkConfig objects for different interfaces. Null if its not to be changed</param>
        /// <returns></returns>
        public TaskStatusInfo UpdateDeviceDetails(DeviceDetails deviceDetails, string newName, TimeZoneInfo timeZone, IPAddress secondaryDnsServer, NetworkConfig[] networkConfigs)
        {
            // Update the object
            this.UpdateDeviceDetailsObject(deviceDetails, newName, timeZone, secondaryDnsServer, networkConfigs);
            // Copy stuff over from the DeviceDetails object into a new DeviceDetailsRequest object.
            var request = new DeviceDetailsRequest();

            MiscUtils.CopyProperties(deviceDetails, request);
            var taskStatusInfo = this.GetStorSimpleClient().DeviceDetails.UpdateDeviceDetails(request, this.GetCustomRequestHeaders());

            return(taskStatusInfo);
        }
コード例 #3
0
        public void CanUpdateDeviceDetailsTest()
        {
            using (var context = UndoContext.Current)
            {
                context.Start();

                var client = GetServiceClient <StorSimpleManagementClient>();

                // Get all devices.
                var devices = client.Devices.List(GetCustomRequestHeaders());

                // Get hold of an online device.
                var onlineDevice = devices.LastOrDefault(device => device.Status == DeviceStatus.Online);
                if (onlineDevice == null)
                {
                    throw new ArgumentException("Device Config/Details can be set only on online devices. No online device found in the resource specified for testing.");
                }

                // Get current device details/config
                var deviceId       = onlineDevice.DeviceId;
                var details        = client.DeviceDetails.Get(deviceId, GetCustomRequestHeaders()).DeviceDetails;
                var updatedDetails = new DeviceDetailsRequest();
                Helpers.CopyProperties(details, updatedDetails);

                // Alter device details/config for update
                DataHelpers.ModifyDeviceDetails(updatedDetails);

                // Try and update device details/config
                var taskStatus = client.DeviceDetails.UpdateDeviceDetails(updatedDetails, GetCustomRequestHeaders());

                //Assert the job status
                Assert.NotNull(taskStatus);
                Assert.True(taskStatus.Status == AsyncTaskStatus.Completed);
                Assert.True(taskStatus.Result == AsyncTaskResult.Succeeded);

                // Get device details again and make sure they match to the modified ones.
                var newDetails = client.DeviceDetails.Get(deviceId, GetCustomRequestHeaders()).DeviceDetails;

                Assert.NotNull(newDetails);
                Assert.Equal(newDetails.DeviceProperties.FriendlyName, updatedDetails.DeviceProperties.FriendlyName);
                Assert.Equal(newDetails.DeviceProperties.Description, updatedDetails.DeviceProperties.Description);
                Assert.Contains(updatedDetails.AlertNotification.AlertNotificationEmailList.Last(), newDetails.AlertNotification.AlertNotificationEmailList);
            }
        }
コード例 #4
0
 /// <summary>
 /// Begin task for updating device details as specified by
 /// deviceDetails. The task can then be tracked for completion using
 /// returned task information
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.WindowsAzure.Management.StorSimple.IDeviceDetailsOperations.
 /// </param>
 /// <param name='deviceDetails'>
 /// Required. Updated DeviceDetails. Contains the corresponding DeviceId
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Required. The Custom Request Headers which client must use.
 /// </param>
 /// <returns>
 /// This is the Task Response for all Async Calls
 /// </returns>
 public static Task <GuidTaskResponse> BeginUpdateDeviceDetailsAsync(this IDeviceDetailsOperations operations, DeviceDetailsRequest deviceDetails, CustomRequestHeaders customRequestHeaders)
 {
     return(operations.BeginUpdateDeviceDetailsAsync(deviceDetails, customRequestHeaders, CancellationToken.None));
 }
コード例 #5
0
 /// <summary>
 /// Begin task for updating device details as specified by
 /// deviceDetails. The task can then be tracked for completion using
 /// returned task information
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.WindowsAzure.Management.StorSimple.IDeviceDetailsOperations.
 /// </param>
 /// <param name='deviceDetails'>
 /// Required. Updated DeviceDetails. Contains the corresponding DeviceId
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Required. The Custom Request Headers which client must use.
 /// </param>
 /// <returns>
 /// This is the Task Response for all Async Calls
 /// </returns>
 public static GuidTaskResponse BeginUpdateDeviceDetails(this IDeviceDetailsOperations operations, DeviceDetailsRequest deviceDetails, CustomRequestHeaders customRequestHeaders)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((IDeviceDetailsOperations)s).BeginUpdateDeviceDetailsAsync(deviceDetails, customRequestHeaders);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }
コード例 #6
0
 /// <summary>
 /// Update device details as specified by deviceDetails
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.WindowsAzure.Management.StorSimple.IDeviceDetailsOperations.
 /// </param>
 /// <param name='deviceDetails'>
 /// Required. Updated DeviceDetails. Contains the corresponding DeviceId
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Required. The Custom Request Headers which client must use.
 /// </param>
 /// <returns>
 /// Info about the async task
 /// </returns>
 public static Task <TaskStatusInfo> UpdateDeviceDetailsAsync(this IDeviceDetailsOperations operations, DeviceDetailsRequest deviceDetails, CustomRequestHeaders customRequestHeaders)
 {
     return(operations.UpdateDeviceDetailsAsync(deviceDetails, customRequestHeaders, CancellationToken.None));
 }