コード例 #1
0
        /// <summary>
        /// Lists protection containers according to the provider data
        /// </summary>
        /// <returns>List of protection containers</returns>
        public List <ContainerBase> ListProtectionContainers()
        {
            Models.ContainerType containerType =
                (Models.ContainerType) this.ProviderData[ContainerParams.ContainerType];
            Models.BackupManagementType?backupManagementTypeNullable =
                (Models.BackupManagementType?) this.ProviderData[ContainerParams.BackupManagementType];
            string name = (string)this.ProviderData[ContainerParams.Name];
            string resourceGroupName           = (string)this.ProviderData[ContainerParams.ResourceGroupName];
            ContainerRegistrationStatus status =
                (ContainerRegistrationStatus)this.ProviderData[ContainerParams.Status];

            if (backupManagementTypeNullable.HasValue)
            {
                ValidateAzureVMBackupManagementType(backupManagementTypeNullable.Value);
            }

            ProtectionContainerListQueryParams queryParams = new ProtectionContainerListQueryParams();

            // 1. Filter by Name
            queryParams.FriendlyName = name;

            // 2. Filter by ContainerType
            queryParams.BackupManagementType =
                ServiceClientModel.BackupManagementType.AzureIaasVM.ToString();

            // 3. Filter by Status
            if (status != 0)
            {
                queryParams.RegistrationStatus = status.ToString();
            }

            var listResponse = ServiceClientAdapter.ListContainers(queryParams);

            List <ContainerBase> containerModels = ConversionHelpers.GetContainerModelList(listResponse);

            // 4. Filter by RG Name
            if (!string.IsNullOrEmpty(resourceGroupName))
            {
                containerModels = containerModels.Where(containerModel =>
                                                        (containerModel as AzureVmContainer).ResourceGroupName == resourceGroupName).ToList();
            }

            return(containerModels);
        }
コード例 #2
0
        /// <summary>
        /// Lists protection containers according to the provider data
        /// </summary>
        /// <returns>List of protection containers</returns>
        public List <ContainerBase> ListProtectionContainers()
        {
            ContainerType containerType =
                (ContainerType)ProviderData[ContainerParams.ContainerType];

            CmdletModel.BackupManagementType?backupManagementTypeNullable =
                (CmdletModel.BackupManagementType?)
                ProviderData[ContainerParams.BackupManagementType];
            string name                        = (string)ProviderData[ContainerParams.Name];
            string friendlyName                = (string)ProviderData[ContainerParams.FriendlyName];
            string resourceGroupName           = (string)ProviderData[ContainerParams.ResourceGroupName];
            ContainerRegistrationStatus status =
                (ContainerRegistrationStatus)ProviderData[ContainerParams.Status];

            if (backupManagementTypeNullable.HasValue)
            {
                ValidateAzureVMBackupManagementType(backupManagementTypeNullable.Value);
            }

            string nameQueryFilter = friendlyName;

            if (!string.IsNullOrEmpty(name))
            {
                Logger.Instance.WriteWarning(Resources.GetContainerNameParamDeprecated);

                if (string.IsNullOrEmpty(friendlyName))
                {
                    nameQueryFilter = name;
                }
            }

            ODataQuery <BMSContainerQueryObject> queryParams = null;

            if (status == 0)
            {
                queryParams = new ODataQuery <BMSContainerQueryObject>(
                    q => q.FriendlyName == nameQueryFilter &&
                    q.BackupManagementType == ServiceClientModel.BackupManagementType.AzureIaasVM);
            }
            else
            {
                var statusString = status.ToString();
                queryParams = new ODataQuery <BMSContainerQueryObject>(
                    q => q.FriendlyName == nameQueryFilter &&
                    q.BackupManagementType == ServiceClientModel.BackupManagementType.AzureIaasVM &&
                    q.Status == statusString);
            }

            var listResponse = ServiceClientAdapter.ListContainers(queryParams);

            List <ContainerBase> containerModels = ConversionHelpers.GetContainerModelList(listResponse);

            // 4. Filter by RG Name
            if (!string.IsNullOrEmpty(resourceGroupName))
            {
                containerModels = containerModels.Where(
                    containerModel =>
                {
                    return(string.Compare(
                               (containerModel as AzureVmContainer).ResourceGroupName,
                               resourceGroupName,
                               true) == 0);
                }).ToList();
            }

            return(containerModels);
        }