コード例 #1
0
        public static PSStorageService Create(StorageManagementClient client,
                                              StorageServicePropertiesOperationContext account)
        {
            var cloudStorageAccount = StorageUtilities.GenerateCloudStorageAccount(client, account.StorageAccountName);

            return(new PSStorageService(account, new AzureStorageContext(cloudStorageAccount)));
        }
コード例 #2
0
 public static PSStorageService Create(StorageManagementClient client,
                                       StorageServicePropertiesOperationContext account)
 {
     return(new PSStorageService(account, new LazyAzureStorageContext((s) =>
     {
         return StorageUtilities.GenerateCloudStorageAccount(client, account.StorageAccountName);
     }, account.StorageAccountName) as AzureStorageContext));
 }
コード例 #3
0
        public static CloudStorageAccount GetCloudStorageAccount(this AzureSubscription subscription)
        {
            if (subscription == null)
            {
                return(null);
            }

            using (var storageClient = AzureSession.ClientFactory.CreateClient <StorageManagementClient>(subscription, AzureEnvironment.Endpoint.ServiceManagement))
            {
                return(StorageUtilities.GenerateCloudStorageAccount(
                           storageClient, subscription.GetProperty(AzureSubscription.Property.StorageAccount)));
            }
        }
コード例 #4
0
        public override void ExecuteCmdlet()
        {
            CloudStorageAccount account;

            if (Context != null)
            {
                account = Context.StorageAccount;
            }
            else
            {
                account = StorageUtilities.GenerateCloudStorageAccount(new ARMStorageProvider(StorageClient), ResourceGroupName, Name);
            }

            // Clear the current storage account for both SM and RM
            GeneralUtilities.ClearCurrentStorageAccount(true);
            DefaultContext.SetCurrentStorageAccount(account.ToString(true));
            WriteObject(account.Credentials.AccountName);
        }
コード例 #5
0
        protected override void ProcessRecord()
        {
            CloudStorageAccount account;

            if (Context != null)
            {
                account = Context.StorageAccount;
            }
            else
            {
                account = StorageUtilities.GenerateCloudStorageAccount(StorageClient, ResourceGroupName, StorageAccountName);
            }

            // Clear the current storage account for both SM and RM
            GeneralUtilities.ClearCurrentStorageAccount(true);
            DefaultContext.SetCurrentStorageAccount(account.ToString(true));
            WriteObject(account.Credentials.AccountName);
        }
コード例 #6
0
        public static CloudStorageAccount GetCloudStorageAccount(this WindowsAzureSubscription subscription)
        {
            if (subscription == null || subscription.SubscriptionId == null)
            {
                return(null);
            }

            if (subscription.currentCloudStorageAccount != null)
            {
                return(subscription.currentCloudStorageAccount as CloudStorageAccount);
            }
            else
            {
                using (var storageClient = subscription.CreateClient <StorageManagementClient>())
                {
                    subscription.currentCloudStorageAccount = StorageUtilities.GenerateCloudStorageAccount(
                        storageClient,
                        subscription.currentStorageAccountName);

                    return(subscription.currentCloudStorageAccount as CloudStorageAccount);
                }
            }
        }
コード例 #7
0
        /// <summary>
        /// Get storage account details from the current storage account
        /// </summary>
        /// <param name="subscription">The subscription containing the account.</param>
        /// <param name="profile">The profile continuing the subscription.</param>
        /// <returns>Storage account details, usable with the windows azure storage data plane library.</returns>
        public static CloudStorageAccount GetCloudStorageAccount(this AzureSubscription subscription, AzureSMProfile profile)
        {
            if (subscription == null)
            {
                return(null);
            }

            var account = subscription.GetProperty(AzureSubscription.Property.StorageAccount);

            try
            {
                return(CloudStorageAccount.Parse(account));
            }
            catch
            {
                using (
                    var storageClient = AzureSession.ClientFactory.CreateClient <StorageManagementClient>(profile,
                                                                                                          subscription, AzureEnvironment.Endpoint.ServiceManagement))
                {
                    return(StorageUtilities.GenerateCloudStorageAccount(
                               storageClient, account));
                }
            }
        }
コード例 #8
0
 /// <summary>
 /// Gets connection string of the given storage service name.
 /// </summary>
 /// <param name="name">The storage service name</param>
 /// <returns>The connection string</returns>
 public string GetStorageServiceConnectionString(string name)
 {
     return(StorageUtilities.GenerateCloudStorageAccount(StorageClient, name).ToString(true));
 }
コード例 #9
0
        /// <summary>
        /// Executes the set subscription cmdlet operation.
        /// </summary>
        public override void ExecuteCmdlet()
        {
            AzureSubscription subscription = null;

            if (!string.IsNullOrEmpty(SubscriptionId) && string.IsNullOrEmpty(SubscriptionName))
            {
                subscription = ProfileClient.GetSubscription(new Guid(SubscriptionId));
                Environment  = subscription.Environment;
            }
            else if (string.IsNullOrEmpty(SubscriptionId) && !string.IsNullOrEmpty(SubscriptionName))
            {
                subscription = ProfileClient.GetSubscription(SubscriptionName);
                Environment  = subscription.Environment;
            }
            else
            {
                subscription      = new AzureSubscription();
                subscription.Id   = new Guid(SubscriptionId);
                subscription.Name = SubscriptionName;
            }

            AzureEnvironment environment = ProfileClient.GetEnvironment(Environment, ServiceEndpoint, ResourceManagerEndpoint);

            if (environment == null)
            {
                var profileClient = new ProfileClient(Profile);
                environment = profileClient.GetEnvironment(Environment, ServiceEndpoint, ResourceManagerEndpoint);
            }

            if (environment == null)
            {
                throw new ArgumentException("ServiceEndpoint and ResourceManagerEndpoint values do not " +
                                            "match existing environment. Please use Environment parameter.");
            }
            else
            {
                subscription.Environment = environment.Name;
            }

            if (ServiceEndpoint != null || ResourceManagerEndpoint != null)
            {
                WriteWarning("Please use Environment parameter to specify subscription environment. This " +
                             "warning will be converted into an error in the upcoming release.");
            }

            if (Certificate != null)
            {
                ProfileClient.ImportCertificate(Certificate);
                subscription.Account = Certificate.Thumbprint;
                AzureAccount account = new AzureAccount
                {
                    Id   = Certificate.Thumbprint,
                    Type = AzureAccount.AccountType.Certificate
                };
                account.SetOrAppendProperty(AzureAccount.Property.Subscriptions, subscription.Id.ToString());
                ProfileClient.AddOrSetAccount(account);

                if (subscription.Account == null)
                {
                    subscription.Account = account.Id;
                }
            }

            if (subscription.Account == null)
            {
                throw new ArgumentException("Certificate is required for creating a new subscription.");
            }

            if (!string.IsNullOrEmpty(CurrentStorageAccountName) || Context != null)
            {
                ProfileClient.GetAccount(subscription.Account);
                if (Profile.Context != null && Profile.Context.Subscription != null &&
                    Profile.Context.Subscription.Id == subscription.Id)
                {
                    GeneralUtilities.ClearCurrentStorageAccount();
                }
                var context = new AzureContext(subscription, ProfileClient.GetAccount(subscription.Account), ProfileClient.GetEnvironmentOrDefault(subscription.Environment));
                if (Context != null)
                {
                    context.SetCurrentStorageAccount(this);
                }
                else
                {
                    var client = AzureSession.ClientFactory.CreateClient <StorageManagementClient>(context,
                                                                                                   AzureEnvironment.Endpoint.ServiceManagement);
                    var account = StorageUtilities.GenerateCloudStorageAccount(client, CurrentStorageAccountName);
                    context.SetCurrentStorageAccount(account.ToString(true));
                }
            }

            subscription = ProfileClient.AddOrSetSubscription(subscription);

            if (PassThru)
            {
                WriteObject(subscription);
            }
        }