Exemple #1
0
        protected override void Execute()
        {
            StorageAccountSyncRequest req = new StorageAccountSyncRequest();

            if (StorageAccountApiVersion == null)
            {
                StorageAccountApiVersion = DefaultStorageAccountApiVersion;
            }
            req.ApiVersion       = StorageAccountApiVersion;
            req.TargetOperaton   = SyncTargetOperation;
            req.ResourceLocation = Location;
            req.Id = BuildSyncTargetId(TenantSubscriptionId, TenantResourceGroup, TenantAccountName);

            WriteObject(req, true);

            if (ShouldProcess(
                    string.Format(CultureInfo.InvariantCulture, Resources.StorageAccount, req.Id),
                    string.Format(CultureInfo.InvariantCulture, Resources.SyncOperation)))
            {
                StorageAccountSyncResponse syncResponse = Client.StorageAccounts.Sync(TenantSubscriptionId, TenantResourceGroup, req);
                WriteObject(syncResponse, true);

                WriteWarning(Resources.WaitAfterArmSync);
            }
        }
        protected override void Execute()
        {
            StorageAccountUndeleteParameters undeleteParam = new StorageAccountUndeleteParameters
            {
                NewAccountName = NewAccountName
            };

            if (ShouldProcess(
                    string.Format(CultureInfo.InvariantCulture, Resources.StorageAccountAdminView, AccountId),
                    string.Format(CultureInfo.InvariantCulture, Resources.UndeleteOperation)))
            {
                var response = Client.StorageAccounts.Undelete(ResourceGroupName, FarmName, AccountId, undeleteParam);
                if (response.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    throw new ApplicationException(String.Format(CultureInfo.InvariantCulture, Resources.FailedToUndeleteAccount));
                }

                // get recovered account to set parameters for resource sync
                WriteVerbose(Resources.RetrieveUndeletedStorageAccount);
                StorageAccountListResponse accounts = Client.StorageAccounts.List(ResourceGroupName, FarmName, "{accountid eq '" + AccountId + "'}", true);
                if (accounts.StatusCode != System.Net.HttpStatusCode.OK ||
                    accounts.StorageAccounts.Count == 0 ||
                    accounts.StorageAccounts[0].Properties == null ||
                    accounts.StorageAccounts[0].Properties.TenantSubscriptionId.Equals(Guid.Empty) == true ||
                    accounts.StorageAccounts[0].Properties.TenantViewId == null ||
                    accounts.StorageAccounts[0].Properties.TenantResourceGroupName == null ||
                    accounts.StorageAccounts[0].Location == null)
                {
                    throw new ApplicationException(String.Format(CultureInfo.InvariantCulture, Resources.FailedToGetAccount));
                }

                // trigger resource sync
                WriteVerbose(Resources.TriggerResourceSync);
                StorageAccountSyncRequest req = new StorageAccountSyncRequest();
                if (StorageAccountApiVersion == null)
                {
                    StorageAccountApiVersion = SyncDefaultStorageAccountApiVersion;
                }
                if (string.IsNullOrEmpty(ResourceAdminApiVersion))
                {
                    ResourceAdminApiVersion = SyncDefaultResourceAdminApiVersion;
                }
                req.ApiVersion       = StorageAccountApiVersion;
                req.TargetOperaton   = SyncTargetOperation;
                req.ResourceLocation = accounts.StorageAccounts[0].Location;
                req.Id = accounts.StorageAccounts[0].Properties.TenantViewId;

                Client.StorageAccounts.Sync(accounts.StorageAccounts[0].Properties.TenantSubscriptionId.ToString(), accounts.StorageAccounts[0].Properties.TenantResourceGroupName, ResourceAdminApiVersion, req);

                WriteWarning(Resources.WaitAfterArmSync);
            }
        }
        protected override void Execute()
        {
            StorageAccountSyncRequest req = new StorageAccountSyncRequest();

            if (StorageAccountApiVersion == null)
                StorageAccountApiVersion = DefaultStorageAccountApiVersion;
            req.ApiVersion = StorageAccountApiVersion;
            req.TargetOperaton = SyncTargetOperation;
            req.ResourceLocation = Location;
            req.Id = BuildSyncTargetId(TenantSubscriptionId, TenantResourceGroup, TenantAccountName);

            WriteObject(req, true);

            if (ShouldProcess(
                    string.Format(CultureInfo.InvariantCulture, Resources.StorageAccount, req.Id),
                    string.Format(CultureInfo.InvariantCulture, Resources.SyncOperation)))
            {
                StorageAccountSyncResponse syncResponse = Client.StorageAccounts.Sync(TenantSubscriptionId, TenantResourceGroup, req);
                WriteObject(syncResponse, true);

                WriteWarning(Resources.WaitAfterArmSync);
            }
        }
        protected override void Execute()
        {
            StorageAccountUndeleteParameters undeleteParam = new StorageAccountUndeleteParameters
            {
                NewAccountName = NewAccountName
            };
            if (ShouldProcess(
                    string.Format(CultureInfo.InvariantCulture, Resources.StorageAccountAdminView, AccountId),
                    string.Format(CultureInfo.InvariantCulture, Resources.UndeleteOperation)))
            {
                var response = Client.StorageAccounts.Undelete(ResourceGroupName, FarmName, AccountId.ToString(CultureInfo.InvariantCulture), undeleteParam);
                if (response.StatusCode != System.Net.HttpStatusCode.OK)
                {
                    throw new ApplicationException(String.Format(CultureInfo.InvariantCulture, Resources.FailedToUndeleteAccount));
                }

                // get recovered account to set parameters for resource sync
                WriteVerbose(Resources.RetrieveUndeletedStorageAccount);
                StorageAccountListResponse accounts = Client.StorageAccounts.List(ResourceGroupName, FarmName, "{versionedaccountname eq '" + AccountId + "'}", true);
                if (accounts.StatusCode != System.Net.HttpStatusCode.OK ||
                    accounts.StorageAccounts.Count == 0 ||
                    accounts.StorageAccounts[0].Properties == null ||
                    accounts.StorageAccounts[0].Properties.TenantSubscriptionId.Equals(Guid.Empty) == true ||
                    accounts.StorageAccounts[0].Properties.TenantViewId == null ||
                    accounts.StorageAccounts[0].Properties.TenantResourceGroupName == null ||
                    accounts.StorageAccounts[0].Location == null)
                {
                    throw new ApplicationException(String.Format(CultureInfo.InvariantCulture, Resources.FailedToGetAccount));
                }

                // trigger resource sync
                WriteVerbose(Resources.TriggerResourceSync);
                StorageAccountSyncRequest req = new StorageAccountSyncRequest();
                if (StorageAccountApiVersion == null)
                    StorageAccountApiVersion = SyncStorageAccount.DefaultStorageAccountApiVersion;
                req.ApiVersion = StorageAccountApiVersion;
                req.TargetOperaton = SyncStorageAccount.SyncTargetOperation;
                req.ResourceLocation = accounts.StorageAccounts[0].Location;
                req.Id = accounts.StorageAccounts[0].Properties.TenantViewId;

                Client.StorageAccounts.Sync(accounts.StorageAccounts[0].Properties.TenantSubscriptionId.ToString(), accounts.StorageAccounts[0].Properties.TenantResourceGroupName, req);

                WriteWarning(Resources.WaitAfterArmSync);
            }
        }