Exemple #1
0
        public override void ExecuteCmdlet()
        {
            if (this.ParameterSetName.Equals(
                    ParameterSetNames.ResourceIdParameterSet,
                    StringComparison.OrdinalIgnoreCase))
            {
                var parsedResourceId = new ResourceIdentifier(this.ResourceId);
                this.ResourceGroupName = parsedResourceId.ResourceGroupName;
                this.AccountName       = parsedResourceId.GetAccountName();
                this.ShareName         = parsedResourceId.GetShareName();
            }

            string nextPageLink = null;
            List <ShareSynchronization> shareSynchronizationsList = new List <ShareSynchronization>();

            do
            {
                IPage <ShareSynchronization> shareSynchronizations = string.IsNullOrEmpty(nextPageLink)
                    ? this.DataShareManagementClient.Shares.ListSynchronizations(this.ResourceGroupName, this.AccountName, this.ShareName)
                    : this.DataShareManagementClient.Shares.ListSynchronizationsNext(nextPageLink);

                shareSynchronizationsList.AddRange(shareSynchronizations.AsEnumerable());
                nextPageLink = shareSynchronizations.NextPageLink;
            } while (nextPageLink != null);

            IEnumerable <PSDataShareSynchronization> synchronizationsInShare = shareSynchronizationsList.Select(shareSynchronization => shareSynchronization.ToPsObject());

            this.WriteObject(synchronizationsInShare, true);
        }
        public override void ExecuteCmdlet()
        {
            string resourceId = null;

            if (this.ParameterSetName.Equals(
                    ParameterSetNames.ResourceIdParameterSet,
                    StringComparison.OrdinalIgnoreCase))
            {
                resourceId = this.ResourceId;
            }

            if (this.ParameterSetName.Equals(ParameterSetNames.ObjectParameterSet, StringComparison.OrdinalIgnoreCase))
            {
                if (this.Name == null)
                {
                    throw new PSArgumentNullException(
                              string.Format(CultureInfo.InvariantCulture, Resources.ResourceArgumentInvalid));
                }

                resourceId = this.InputObject.Id;
            }

            if (!string.IsNullOrEmpty(resourceId))
            {
                var parseResourceId = new ResourceIdentifier(resourceId);
                this.ResourceGroupName = parseResourceId.ResourceGroupName;
                this.AccountName       = parseResourceId.GetAccountName();
                this.Name = parseResourceId.GetShareName();
            }

            Share existingShare = null;

            try
            {
                existingShare = this.DataShareManagementClient.Shares.Get(
                    this.ResourceGroupName,
                    this.AccountName,
                    this.Name);
            }
            catch (DataShareErrorException ex) when(ex.Response.StatusCode.Equals(HttpStatusCode.NotFound))
            {
                throw new PSArgumentException(string.Format(Resources.ResourceNotFoundMessage, this.Name));
            }

            if (this.Description != null || this.TermsOfUse != null)
            {
                this.ConfirmAction(
                    Resources.ResourceUpdataConfirmation,
                    this.Name,
                    () => this.UpdateShare(existingShare));
            }
            else
            {
                this.WriteObject(existingShare.ToPsObject());
            }
        }
Exemple #3
0
        public override void ExecuteCmdlet()
        {
            if (this.ParameterSetName.Equals(ParameterSetNames.ProviderShareSubscriptionIdParameterSet))
            {
                var parsedResourceId = new ResourceIdentifier(this.ResourceId);
                this.AccountName       = parsedResourceId.GetAccountName();
                this.ResourceGroupName = parsedResourceId.ResourceGroupName;
                this.ShareName         = parsedResourceId.GetShareName();
            }

            if (this.ShareSubscriptionId != null)
            {
                try
                {
                    ProviderShareSubscription providerShareSubscription =
                        this.DataShareManagementClient.ProviderShareSubscriptions.GetByShare(
                            this.ResourceGroupName,
                            this.AccountName,
                            this.ShareName,
                            this.ShareSubscriptionId);

                    this.WriteObject(providerShareSubscription.ToPsObject());
                }
                catch (DataShareErrorException ex) when(ex.Response.StatusCode.Equals(HttpStatusCode.NotFound))
                {
                    throw new PSArgumentException(string.Format(Resources.ResourceNotFoundMessage, this.ShareSubscriptionId));
                }
            }
            else
            {
                string nextPageLink = null;
                List <ProviderShareSubscription> providerShareSubscriptionList = new List <ProviderShareSubscription>();

                do
                {
                    IPage <ProviderShareSubscription> providerShareSubscriptionPage = string.IsNullOrEmpty(nextPageLink)
                        ? this.DataShareManagementClient.ProviderShareSubscriptions.ListByShare(
                        this.ResourceGroupName,
                        this.AccountName,
                        this.ShareName)
                        : this.DataShareManagementClient.ProviderShareSubscriptions.ListByShareNext(
                        nextPageLink);

                    providerShareSubscriptionList.AddRange(providerShareSubscriptionPage.AsEnumerable());
                    nextPageLink = providerShareSubscriptionPage.NextPageLink;
                } while (nextPageLink != null);

                IEnumerable <PSDataShareProviderShareSubscription> providerShareSubscriptions = providerShareSubscriptionList.Select(
                    providerShareSubscription => providerShareSubscription.ToPsObject());
                this.WriteObject(providerShareSubscriptions.ToArray(), true);
            }
        }
Exemple #4
0
        public override void ExecuteCmdlet()
        {
            if (this.ParameterSetName.Equals(
                    ParameterSetNames.ResourceIdParameterSet,
                    StringComparison.OrdinalIgnoreCase))
            {
                var resourceId = new ResourceIdentifier(this.ResourceId);
                this.ResourceGroupName = resourceId.ResourceGroupName;
                this.AccountName       = resourceId.GetAccountName();
                this.ShareName         = resourceId.GetShareName();
                this.Name = resourceId.GetSynchronizationSettingName();
            }

            if (this.Name == null)
            {
                var settingsPage = this.DataShareManagementClient.SynchronizationSettings.ListByShare(
                    this.ResourceGroupName,
                    accountName: this.AccountName,
                    shareName: this.ShareName);
                this.WriteObject(
                    settingsPage.AsEnumerable().Select(
                        syncSettings => (syncSettings as ScheduledSynchronizationSetting).ToPsObject()),
                    true);
                while (settingsPage.NextPageLink != null)
                {
                    settingsPage = this.DataShareManagementClient.SynchronizationSettings.ListByShareNext(
                        settingsPage.NextPageLink);
                    this.WriteObject(
                        settingsPage.AsEnumerable().Select(
                            syncSettings => (syncSettings as ScheduledSynchronizationSetting).ToPsObject()),
                        true);
                }
            }
            else
            {
                try
                {
                    var setting = this.DataShareManagementClient.SynchronizationSettings.Get(
                        resourceGroupName: this.ResourceGroupName,
                        accountName: this.AccountName,
                        shareName: this.ShareName,
                        synchronizationSettingName: this.Name) as ScheduledSynchronizationSetting;
                    this.WriteObject(setting.ToPsObject());
                }
                catch (DataShareErrorException exception) when(exception.Response.StatusCode.Equals(
                                                                   HttpStatusCode.NotFound))
                {
                    throw new PSArgumentException(string.Format(Resources.ResourceNotFoundMessage, this.Name));
                }
            }
        }
        public override void ExecuteCmdlet()
        {
            if (this.ParameterSetName.Equals(ParameterSetNames.ResourceIdParameterSet, StringComparison.OrdinalIgnoreCase))
            {
                var parsedResourceId = new ResourceIdentifier(this.ResourceId);
                this.ResourceGroupName = parsedResourceId.ResourceGroupName;
                this.AccountName       = parsedResourceId.GetAccountName();
                this.Name = parsedResourceId.GetShareName();
            }

            if (this.AccountName != null && this.ResourceGroupName != null)
            {
                if (this.Name != null)
                {
                    try
                    {
                        Share share = this.DataShareManagementClient.Shares.Get(
                            this.ResourceGroupName,
                            this.AccountName,
                            this.Name);

                        this.WriteObject(share.ToPsObject());
                    }
                    catch (DataShareErrorException ex) when(ex.Response.StatusCode.Equals(HttpStatusCode.NotFound))
                    {
                        throw new PSArgumentException(string.Format(Resources.ResourceNotFoundMessage, this.Name));
                    }
                }
                else
                {
                    string       nextPageLink = null;
                    List <Share> shareList    = new List <Share>();

                    do
                    {
                        IPage <Share> shares = string.IsNullOrEmpty(nextPageLink)
                            ? this.DataShareManagementClient.Shares.ListByAccount(this.ResourceGroupName, this.AccountName)
                            : this.DataShareManagementClient.Shares.ListByAccountNext(nextPageLink);

                        shareList.AddRange(shares.AsEnumerable());
                        nextPageLink = shares.NextPageLink;
                    } while (nextPageLink != null);

                    IEnumerable <PSDataShare> sharesInAccount = shareList.Select(share => share.ToPsObject());
                    this.WriteObject(sharesInAccount, true);
                }
            }
        }
        public override void ExecuteCmdlet()
        {
            string resourceId = null;

            if (ParameterSetNames.ResourceIdParameterSet.Equals(
                    this.ParameterSetName,
                    StringComparison.OrdinalIgnoreCase))
            {
                resourceId = this.ResourceId;
            }

            if (ParameterSetNames.ObjectParameterSet.Equals(this.ParameterSetName, StringComparison.OrdinalIgnoreCase))
            {
                resourceId = this.InputObject.Id;
            }

            if (!string.IsNullOrEmpty(resourceId))
            {
                var parsedResourceIdentifier = new ResourceIdentifier(resourceId);
                this.ResourceGroupName = parsedResourceIdentifier.ResourceGroupName;
                this.AccountName       = parsedResourceIdentifier.GetAccountName();
                this.ShareName         = parsedResourceIdentifier.GetShareName();
                this.Name = parsedResourceIdentifier.GetSynchronizationSettingName();
            }

            var func = (Func <string, string, string, string, OperationResponse>) this.DataShareManagementClient
                       .SynchronizationSettings.Delete;

            void Action() => func(this.ResourceGroupName, this.AccountName, this.ShareName, this.Name);

            this.ConfirmAction(
                string.Format(Resources.ResourceRemovalConfirmation, this.Name),
                this.Name,
                Action);

            if (this.PassThru)
            {
                this.WriteObject(true);
            }
        }
        public override void ExecuteCmdlet()
        {
            if (this.ShouldProcess(this.ShareSubscriptionId, Resources.RevokeShareSubscriptionAccess))
            {
                if (this.ParameterSetName.Equals(ParameterSetNames.ProviderShareSubscriptionIdParameterSet))
                {
                    var parsedResourceId = new ResourceIdentifier(this.ResourceId);
                    this.AccountName       = parsedResourceId.GetAccountName();
                    this.ResourceGroupName = parsedResourceId.ResourceGroupName;
                    this.ShareName         = parsedResourceId.GetShareName();
                }

                ProviderShareSubscription providerShareSubscription =
                    this.DataShareManagementClient.ProviderShareSubscriptions.Revoke(
                        resourceGroupName: this.ResourceGroupName,
                        accountName: this.AccountName,
                        shareName: this.ShareName,
                        providerShareSubscriptionId: this.ShareSubscriptionId);

                this.WriteObject(providerShareSubscription.ToPsObject());
            }
        }
        public override void ExecuteCmdlet()
        {
            string resourceId = null;

            if (this.ParameterSetName.Equals(
                    ParameterSetNames.ResourceIdParameterSet,
                    StringComparison.OrdinalIgnoreCase))
            {
                resourceId = this.ResourceId;
            }

            if (this.ParameterSetName.Equals(
                    ParameterSetNames.ObjectParameterSet,
                    StringComparison.OrdinalIgnoreCase))
            {
                resourceId = this.InputObject.Id;
            }

            if (!string.IsNullOrEmpty(resourceId))
            {
                var parseResourceId = new ResourceIdentifier(resourceId);
                this.ResourceGroupName = parseResourceId.ResourceGroupName;
                this.AccountName       = parseResourceId.GetAccountName();
                this.Name = parseResourceId.GetShareName();
            }

            this.ConfirmAction(
                string.Format(Resources.ResourceRemovalConfirmation, this.Name),
                this.Name,
                () => this.DataShareManagementClient.Shares.Delete(
                    this.ResourceGroupName,
                    this.AccountName,
                    this.Name));

            if (this.PassThru)
            {
                this.WriteObject(true);
            }
        }