Exemple #1
0
        //[Parameter(ParameterSetName = ParameterSetContext, Mandatory = true, ValueFromPipeline = true,
        //    HelpMessage = "An existing context that identifies the account to use for the key query.")]
        //[ValidateNotNull]
        //public BatchAccountContext Context { get; set; }

        /// <summary>
        /// Get the keys associated with the specified account. If only the account name is passed in, then
        /// look up its resource group and construct a new BatchAccountContext to hold everything.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            string accountName  = this.AccountName;
            string resGroupName = this.ResourceGroupName;

            //if (Context != null)
            //{
            //    accountName = Context.AccountName;
            //    resGroupName = Context.ResourceGroupName;
            //    context = Context;
            //}

            WriteVerboseWithTimestamp(Resources.GBAK_GettingKeys, accountName);

            if (string.IsNullOrEmpty(resGroupName))
            {
                // use resource mgr to see if account exists and then use resource group name to do the actual lookup
                WriteVerboseWithTimestamp(Resources.ResGroupLookup, accountName);
                resGroupName = BatchClient.GetGroupForAccount(accountName);
            }

            var getResponse = BatchClient.GetAccount(resGroupName, accountName);
            var context     = BatchAccountContext.CrackAccountResourceToNewAccountContext(getResponse.Resource);

            WriteVerboseWithTimestamp(Resources.BeginMAMLCall, mamlRestName);

            var keysResponse = BatchClient.ListKeys(resGroupName, accountName);

            WriteVerboseWithTimestamp(Resources.EndMAMLCall, mamlRestName);

            context.PrimaryAccountKey   = keysResponse.PrimaryKey;
            context.SecondaryAccountKey = keysResponse.SecondaryKey;

            WriteObject(context);
        }
Exemple #2
0
        //[Parameter(ParameterSetName = ParameterSetContext, Mandatory = true, ValueFromPipeline = true,
        //    HelpMessage = "An existing context that identifies the account to use for the key regenration.")]
        //[ValidateNotNull]
        //public BatchAccountContext Context { get; set; }

        public override void ExecuteCmdlet()
        {
            string accountName  = this.AccountName;
            string resGroupName = this.ResourceGroupName;

            //if (Context != null)
            //{
            //    accountName = Context.AccountName;
            //    resGroupName = Context.ResourceGroupName;
            //    context = Context;
            //}

            if (string.IsNullOrEmpty(resGroupName))
            {
                // use resource mgr to see if account exists and then use resource group name to do the actual lookup
                WriteVerboseWithTimestamp(Properties.Resources.ResGroupLookup, accountName);
                resGroupName = BatchClient.GetGroupForAccount(accountName);
            }

            // build a new context to put the keys into
            var getResponse = BatchClient.GetAccount(resGroupName, accountName);

            var context = BatchAccountContext.CrackAccountResourceToNewAccountContext(getResponse.Resource);

            var regenResponse = BatchClient.RegenerateKeys(resGroupName, accountName, new BatchAccountRegenerateKeyParameters
            {
                KeyName = this.keyType
            });

            context.PrimaryAccountKey   = regenResponse.PrimaryKey;
            context.SecondaryAccountKey = regenResponse.SecondaryKey;
            WriteObject(context);
        }
        //[Parameter(ParameterSetName = ParameterSetContext, Mandatory = true, ValueFromPipeline = true,
        //    HelpMessage = "An existing context that identifies the account to use for the key query.")]
        //[ValidateNotNull]
        //public BatchAccountContext InputObject { get; set; }

        public override void ExecuteCmdlet()
        {
            string accountName       = this.AccountName;
            string resourceGroupName = this.ResourceGroupName;

            //if (Context != null)
            //{
            //    accountName = Context.AccountName;
            //    resourceGroupName = Context.ResourceGroupName;
            //    context = Context;
            //}

            if (string.IsNullOrEmpty(resourceGroupName))
            {
                // use resource mgr to see if account exists and then use resource group name to do the actual lookup
                WriteVerboseWithTimestamp(String.Format(Resources.ResGroupLookup, accountName));
                resourceGroupName = BatchClient.GetGroupForAccount(accountName);
            }

            WriteVerboseWithTimestamp(Resources.SBA_Updating, accountName);
            WriteVerboseWithTimestamp(Resources.BeginMAMLCall, mamlRestName);

            BatchAccountContext context = null;

            if (ReplaceTags.IsPresent)
            {
                // need to the location in order to call
                var getResponse = BatchClient.GetAccount(resourceGroupName, accountName);

                var response = BatchClient.CreateAccount(resourceGroupName, accountName, new BatchAccountCreateParameters()
                {
                    Location = getResponse.Resource.Location,
                    Tags     = tagsDictionary
                });

                context = BatchAccountContext.CrackAccountResourceToNewAccountContext(response.Resource);
            }
            else
            {
                var response = BatchClient.UpdateAccount(resourceGroupName, accountName, new BatchAccountUpdateParameters()
                {
                    Tags = tagsDictionary
                });

                context = BatchAccountContext.CrackAccountResourceToNewAccountContext(response.Resource);
            }

            WriteVerboseWithTimestamp(Resources.EndMAMLCall, mamlRestName);

            WriteObject(context);
        }
Exemple #4
0
        // validate the name is available. No longer supported by the CSM. Let's see if they change their minds
        //[Parameter(Mandatory = false, HelpMessage = "Check if account name is available.")]
        //public SwitchParameter WhatIf { get; set; }

        public override void ExecuteCmdlet()
        {
            // check if we're just validating
            ResourceValidationMode?validationMode = null;

            //if (WhatIf.IsPresent)
            //{
            //    validationMode = ResourceValidationMode.NameAvailability;
            //    WriteVerboseWithTimestamp(Resources.NBA_NameAvailability, this.AccountName);
            //}
            //else
            //{
            // not checking availability so see if it already exists in our subscription. This won't help if
            // the account exists in a different subscription. Probably should always first call with nameAvailability
            // to make the global check but then look at the response code to figure out if the real create should
            // be re-issued in order actually create it. hmm...
            //}

            // use the group lookup to validate whether account already exists. We don't care about the returned
            // group name nor the exception
            WriteVerboseWithTimestamp(Resources.NBA_LookupAccount);
            if (BatchClient.GetGroupForAccountNoThrow(this.AccountName) != null)
            {
                throw new CloudException(Resources.NBA_AccountAlreadyExists);
            }

            WriteVerboseWithTimestamp(Resources.BeginMAMLCall, mamlRestName);
            var response = BatchClient.CreateAccount(this.ResourceGroupName, this.AccountName, new BatchAccountCreateParameters()
            {
                Location       = this.Location,
                Tags           = tagsDictionary,
                ValidationMode = validationMode
            });

            WriteVerboseWithTimestamp(Resources.EndMAMLCall, mamlRestName);

            var context = BatchAccountContext.CrackAccountResourceToNewAccountContext(response.Resource);

            WriteObject(context);
        }
Exemple #5
0
        // Keeping for InputObject
        //[Parameter(ParameterSetName = ParameterSetContext, Mandatory = true, ValueFromPipeline = true,
        //    HelpMessage = "An existing context that identifies the account to use for the key query.")]
        //[ValidateNotNull]
        //public BatchAccountContext InputObject { get; set; }

        public override void ExecuteCmdlet()
        {
            string accountName       = this.AccountName;
            string resourceGroupName = this.ResourceGroupName;

            //if (Context != null)
            //{
            //    accountName = Context.AccountName;
            //    resourceGroupName = Context.ResourceGroupName;
            //    context = Context;
            //}

            if (string.IsNullOrEmpty(accountName))
            {
                // no account name so we're doing some sort of list. If no resource group, then list all accounts under the
                // subscription otherwise all accounts in the resource group.
                if (resourceGroupName == null)
                {
                    WriteVerboseWithTimestamp(Resources.GBA_AllAccounts);
                }
                else
                {
                    WriteVerboseWithTimestamp(Resources.GBA_ResGroupAccounts, resourceGroupName);
                }

                WriteVerboseWithTimestamp(Resources.BeginMAMLCall, mamlRestName);
                var response = BatchClient.ListAccounts(new AccountListParameters {
                    ResourceGroupName = resourceGroupName
                });
                WriteVerboseWithTimestamp(Resources.EndMAMLCall, mamlRestName);

                foreach (AccountResource resource in response.Accounts)
                {
                    var context = BatchAccountContext.CrackAccountResourceToNewAccountContext(resource);
                    WriteObject(context);
                }

                var nextLink = response.NextLink;

                while (nextLink != null)
                {
                    WriteVerboseWithTimestamp(Resources.BeginMAMLCall, mamlRestName);
                    response = BatchClient.ListNextAccounts(nextLink);
                    WriteVerboseWithTimestamp(Resources.EndMAMLCall, mamlRestName);

                    foreach (AccountResource resource in response.Accounts)
                    {
                        var context = BatchAccountContext.CrackAccountResourceToNewAccountContext(resource);
                        WriteObject(context);
                    }

                    nextLink = response.NextLink;
                }
            }
            else
            {
                if (string.IsNullOrEmpty(resourceGroupName))
                {
                    // use resource mgr to see if account exists and then use resource group name to do the actual lookup
                    WriteVerboseWithTimestamp(Resources.ResGroupLookup, accountName);
                    resourceGroupName = BatchClient.GetGroupForAccount(accountName);
                }

                WriteVerboseWithTimestamp(Resources.BeginMAMLCall, mamlRestName);
                var response = BatchClient.GetAccount(resourceGroupName, accountName);
                WriteVerboseWithTimestamp(Resources.EndMAMLCall, mamlRestName);

                var context = BatchAccountContext.CrackAccountResourceToNewAccountContext(response.Resource);
                WriteObject(context);
            }
        }