Beispiel #1
0
 /// <summary>
 /// Initalizes iscsidisk instance
 /// </summary>
 /// <param name="iscsiDisk"></param>
 /// <param name="dataPolicy"></param>
 public static void Initialize(this ISCSIDisk iscsiDisk, DataPolicy dataPolicy)
 {
     iscsiDisk.Description                = "Demo IscsiDisk for SDK Test " + dataPolicy.ToString();
     iscsiDisk.AccessControlRecords       = new List <string>();
     iscsiDisk.DataPolicy                 = dataPolicy;
     iscsiDisk.DiskStatus                 = DiskStatus.Online;
     iscsiDisk.ProvisionedCapacityInBytes = TestConstants.ProvisionedCapacityInBytesForDisk;
     iscsiDisk.MonitoringStatus           = MonitoringStatus.Enabled;
 }
Beispiel #2
0
 /// <summary>
 /// Returns metrics definition for given iscsi disk
 /// </summary>
 /// <param name="iscsiDisk"></param>
 /// <param name="deviceName"></param>
 /// <param name="iscsiServerName"></param>
 /// <returns></returns>
 public static IEnumerable <MetricDefinition> GetMetricsDefinition(
     this ISCSIDisk iscsiDisk,
     string deviceName,
     string iscsiServerName)
 {
     return(iscsiDisk.Client.IscsiDisks.ListMetricDefinition(
                deviceName,
                iscsiServerName,
                iscsiDisk.Name,
                iscsiDisk.ResourceGroupName,
                iscsiDisk.ManagerName));
 }
Beispiel #3
0
 /// <summary>
 /// Returns metrics of a given iscsi disk
 /// </summary>
 /// <param name="iscsiDisk"></param>
 /// <param name="deviceName"></param>
 /// <param name="iscsiServerName"></param>
 /// <param name="odataQuery"></param>
 /// <returns></returns>
 public static IEnumerable <Metrics> GetMetrics(
     this ISCSIDisk iscsiDisk,
     string deviceName,
     string iscsiServerName,
     ODataQuery <MetricFilter> odataQuery)
 {
     return(iscsiDisk.Client.IscsiDisks.ListMetrics(
                deviceName,
                iscsiServerName,
                iscsiDisk.Name,
                iscsiDisk.ResourceGroupName,
                iscsiDisk.ManagerName,
                odataQuery));
 }
        /// <summary>
        /// Triggers clone operation on a iscsiserver for given backupset
        /// </summary>
        /// <param name="backupSet"></param>
        /// <param name="deviceName"></param>
        /// <param name="isciServer"></param>
        /// <param name="backupElementName"></param>
        /// <param name="endPointName"></param>
        public static void Clone(
            this Backup backupSet,
            string deviceName,
            ISCSIServer isciServer,
            string backupElementName,
            string endPointName)
        {
            var device = backupSet.Client.Devices.Get(
                deviceName,
                backupSet.ResourceGroupName,
                backupSet.ManagerName);

            Assert.True(
                device != null,
                "no matching device found with name:" + deviceName);

            Assert.True(
                isciServer != null,
                "iscsiServer param is null");

            var restoreIscsiDisk = new ISCSIDisk(
                backupSet.Client,
                backupSet.ResourceGroupName,
                backupSet.ManagerName,
                endPointName);

            restoreIscsiDisk.Initialize(DataPolicy.Tiered);
            restoreIscsiDisk.Description = "Restore Disk ";

            var cloneRequest = new CloneRequest()
            {
                NewEndpointName     = endPointName,
                TargetAccessPointId = isciServer.Id,
                TargetDeviceId      = device.Id,
                Disk = restoreIscsiDisk
            };

            backupSet.Client.Backups.Clone(
                device.Name.GetDoubleEncoded(),
                backupSet.Name.GetDoubleEncoded(),
                backupElementName,
                cloneRequest,
                backupSet.ResourceGroupName,
                backupSet.ManagerName);
        }
Beispiel #5
0
        /// <summary>
        /// Create or update iscsi disk
        /// </summary>
        /// <param name="iscsiDisk"></param>
        /// <param name="deviceName"></param>
        /// <param name="fileServerName"></param>
        /// <returns></returns>
        public static ISCSIDisk CreateOrUpdate(
            this ISCSIDisk iscsiDisk,
            string deviceName,
            string fileServerName)
        {
            var isciDiskCreated = iscsiDisk.Client.IscsiDisks.CreateOrUpdate(
                deviceName.GetDoubleEncoded(),
                fileServerName.GetDoubleEncoded(),
                iscsiDisk.Name.GetDoubleEncoded(),
                iscsiDisk,
                iscsiDisk.ResourceGroupName,
                iscsiDisk.ManagerName);

            isciDiskCreated.SetBaseResourceValues(
                iscsiDisk.Client,
                iscsiDisk.ResourceGroupName,
                iscsiDisk.ManagerName);

            return(isciDiskCreated);
        }
        /// <summary>
        /// Returns disks from a given iscsiserver on a device
        /// </summary>
        /// <param name="iscsiServer"></param>
        /// <param name="deviceName"></param>
        /// <returns></returns>
        public static IEnumerable <ISCSIDisk> GetIscsiDisks(
            this ISCSIServer iscsiServer,
            string deviceName)
        {
            var iscsiDisks = iscsiServer.Client.IscsiDisks.ListByIscsiServer(
                deviceName.GetDoubleEncoded(),
                iscsiServer.Name.GetDoubleEncoded(),
                iscsiServer.ResourceGroupName,
                iscsiServer.ManagerName);

            if (iscsiDisks == null || !iscsiDisks.Any())
            {
                // Create a IscsiDisk with Tiered data policy
                var iscsiDisktoCreate = new ISCSIDisk(
                    iscsiServer.Client,
                    iscsiServer.ResourceGroupName,
                    iscsiServer.ManagerName,
                    TestConstants.DefaultTieredIscsiDiskName);
                iscsiDisktoCreate.Initialize(DataPolicy.Tiered);

                var iscsiDisk = iscsiDisktoCreate.CreateOrUpdate(
                    iscsiServer.Name,
                    iscsiServer.Name);
            }

            iscsiDisks = iscsiServer.Client.IscsiDisks.ListByIscsiServer(
                deviceName.GetDoubleEncoded(),
                iscsiServer.Name.GetDoubleEncoded(),
                iscsiServer.ResourceGroupName,
                iscsiServer.ManagerName);

            foreach (var iscsiDisk in iscsiDisks)
            {
                iscsiDisk.SetBaseResourceValues(
                    iscsiServer.Client,
                    iscsiServer.ResourceGroupName,
                    iscsiServer.ManagerName);
            }

            return(iscsiDisks);
        }
        public void TestCreateOrUpdateIscsiDisk()
        {
            try
            {
                var iSCSIServers = TestUtilities.GetIscsiServers(
                    this.Client,
                    this.ResourceGroupName,
                    this.ManagerName);

                Assert.True(
                    iSCSIServers != null && iSCSIServers.Any(),
                    $"No iscsiservers were found in the manger {this.ManagerName}");

                // Select the first iscsiserver
                var iscsiServer = iSCSIServers.First();

                // Create a iscsidisk with Tiered data policy
                var iscsiDisk = new ISCSIDisk(
                    this.Client,
                    this.ResourceGroupName,
                    this.ManagerName,
                    "Auto-TestIscsiDisk1");
                iscsiDisk.Initialize(DataPolicy.Tiered);

                var iscsiDiskCreated = iscsiDisk.CreateOrUpdate(
                    iscsiServer.Name,
                    iscsiServer.Name);

                // Create a iscsidisk with tiered data policy
                var iscsiDisk2 = new ISCSIDisk(
                    this.Client,
                    this.ResourceGroupName,
                    this.ManagerName,
                    "Auto-TestIscsiDisk2");
                iscsiDisk2.Initialize(DataPolicy.Tiered);

                var iscsiDiskCreated2 = iscsiDisk2.CreateOrUpdate(
                    iscsiServer.Name,
                    iscsiServer.Name);

                // Update Description and ShareStatus
                iscsiDiskCreated.Description = "Updated: " + iscsiDiskCreated.Description;
                iscsiDiskCreated.DiskStatus  = DiskStatus.Offline;
                iscsiDiskCreated             = iscsiDiskCreated.CreateOrUpdate(
                    iscsiServer.Name,
                    iscsiServer.Name);

                // Validate iscsi disks by Managers
                var iscsiDisksByIscsiServer = this.Client.IscsiDisks.ListByIscsiServer(
                    iscsiServer.Name,
                    iscsiServer.Name,
                    this.ResourceGroupName,
                    this.ManagerName);

                var iscsiDisksByDevice = this.Client.IscsiDisks.ListByDevice(
                    iscsiServer.Name,
                    this.ResourceGroupName,
                    this.ManagerName);
            }
            catch (Exception e)
            {
                Assert.Null(e);
            }
            #endregion Test methods
        }
 /// <summary>
 /// Creates or updates the iscsi disk.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='deviceName'>
 /// The device name.
 /// </param>
 /// <param name='iscsiServerName'>
 /// The iscsi server name.
 /// </param>
 /// <param name='diskName'>
 /// The disk name.
 /// </param>
 /// <param name='iscsiDisk'>
 /// The iscsi disk.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The resource group name
 /// </param>
 /// <param name='managerName'>
 /// The manager name
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <ISCSIDisk> BeginCreateOrUpdateAsync(this IIscsiDisksOperations operations, string deviceName, string iscsiServerName, string diskName, ISCSIDisk iscsiDisk, string resourceGroupName, string managerName, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginCreateOrUpdateWithHttpMessagesAsync(deviceName, iscsiServerName, diskName, iscsiDisk, resourceGroupName, managerName, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Creates or updates the iscsi disk.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='deviceName'>
 /// The device name.
 /// </param>
 /// <param name='iscsiServerName'>
 /// The iscsi server name.
 /// </param>
 /// <param name='diskName'>
 /// The disk name.
 /// </param>
 /// <param name='iscsiDisk'>
 /// The iscsi disk.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The resource group name
 /// </param>
 /// <param name='managerName'>
 /// The manager name
 /// </param>
 public static ISCSIDisk BeginCreateOrUpdate(this IIscsiDisksOperations operations, string deviceName, string iscsiServerName, string diskName, ISCSIDisk iscsiDisk, string resourceGroupName, string managerName)
 {
     return(operations.BeginCreateOrUpdateAsync(deviceName, iscsiServerName, diskName, iscsiDisk, resourceGroupName, managerName).GetAwaiter().GetResult());
 }