コード例 #1
0
        public ResourceBackupStatus CheckBackupStatus()
        {
            string fileShareName = (string)ProviderData[ProtectionCheckParams.Name];
            string azureStorageAccountResourceGroupName =
                (string)ProviderData[ProtectionCheckParams.ResourceGroupName];

            ODataQuery <ProtectedItemQueryObject> queryParams =
                new ODataQuery <ProtectedItemQueryObject>(
                    q => q.BackupManagementType
                    == ServiceClientModel.BackupManagementType.AzureStorage &&
                    q.ItemType == DataSourceType.AzureFileShare);

            var vaultIds = ServiceClientAdapter.ListVaults();

            foreach (var vaultId in vaultIds)
            {
                ResourceIdentifier vaultIdentifier = new ResourceIdentifier(vaultId);

                var items = ServiceClientAdapter.ListProtectedItem(
                    queryParams,
                    vaultName: vaultIdentifier.ResourceName,
                    resourceGroupName: vaultIdentifier.ResourceGroupName);

                if (items.Any(
                        item =>
                {
                    ResourceIdentifier storageIdentifier =
                        new ResourceIdentifier(item.Properties.SourceResourceId);
                    var itemStorageAccountRgName = storageIdentifier.ResourceGroupName;

                    return(item.Name.Split(';')[1].ToLower() == fileShareName.ToLower() &&
                           itemStorageAccountRgName.ToLower() == azureStorageAccountResourceGroupName.ToLower());
                }))
                {
                    return(new ResourceBackupStatus(
                               fileShareName,
                               azureStorageAccountResourceGroupName,
                               vaultId,
                               true));
                }
            }

            return(new ResourceBackupStatus(
                       fileShareName,
                       azureStorageAccountResourceGroupName,
                       null,
                       false));
        }
コード例 #2
0
        /// <summary>
        /// Get Protected Items for particular workload type
        /// </summary>
        public static List <ProtectedItemResource> GetProtectedItems(
            string vaultName,
            string resourceGroupName,
            string BackupManagementType,
            string DataSourceType,
            ServiceClientAdapter serviceClientAdapter)
        {
            ODataQuery <ProtectedItemQueryObject> queryParams = new ODataQuery <ProtectedItemQueryObject>(
                q => q.BackupManagementType
                == BackupManagementType &&
                q.ItemType == DataSourceType);

            List <ProtectedItemResource> protectedItems = new List <ProtectedItemResource>();

            var listResponse = serviceClientAdapter.ListProtectedItem(
                queryParams,
                skipToken: null,
                vaultName: vaultName,
                resourceGroupName: resourceGroupName);

            protectedItems.AddRange(listResponse);

            return(protectedItems);
        }