Ejemplo n.º 1
0
        /// <summary>
        /// Registers resource providers for RDFE.
        /// </summary>
        /// <typeparam name="T">The client type</typeparam>
        /// <param name="credentials">The subscription credentials</param>
        private void RegisterServiceManagementProviders <T>(SubscriptionCloudCredentials credentials) where T : ServiceClient <T>
        {
            var requiredProviders     = RequiredResourceLookup.RequiredProvidersForServiceManagement <T>();
            var unregisteredProviders = requiredProviders.Where(p => !RegisteredResourceProviders.Contains(p)).ToList();

            if (unregisteredProviders.Count > 0)
            {
                using (var client = new ManagementClient(credentials, ServiceEndpoint))
                {
                    foreach (var provider in unregisteredProviders)
                    {
                        try
                        {
                            client.Subscriptions.RegisterResource(provider);
                        }
                        catch (CloudException ex)
                        {
                            if (ex.Response.StatusCode != HttpStatusCode.Conflict && ex.Response.StatusCode != HttpStatusCode.NotFound)
                            {
                                // Conflict means already registered, that's OK.
                                // NotFound means there is no registration support, like Windows Azure Pack.
                                // Otherwise it's a failure.
                                throw;
                            }
                        }
                        RegisteredResourceProviders.Add(provider);
                    }
                    Save();
                }
            }
        }
Ejemplo n.º 2
0
        public void RegisterCustomProviders(IEnumerable <Provider> providers)
        {
            var requiredProviders = providers.Select(p => p.Namespace.ToLower())
                                    .Where(p => !RegisteredResourceProviders.Contains(p))
                                    .ToList();

            if (requiredProviders.Count > 0)
            {
                var credentials = CreateCredentials();
                using (IResourceManagementClient client = new ResourceManagementClient(credentials, ResourceManagerEndpoint))
                {
                    foreach (var provider in requiredProviders)
                    {
                        try
                        {
                            client.Providers.Register(provider);
                            RegisteredResourceProviders.Add(provider);
                        }
                        catch
                        {
                            // Ignore this as the user may not have access to Sparta endpoint or the provider is already registered
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Registers resource providers for Sparta.
        /// </summary>
        /// <typeparam name="T">The client type</typeparam>
        /// <param name="credentials">The subscription credentials</param>
        private void RegisterResourceManagerProviders <T>(SubscriptionCloudCredentials credentials) where T : ServiceClient <T>
        {
            List <string> requiredProviders = RequiredResourceLookup.RequiredProvidersForResourceManager <T>()
                                              .Where(p => !RegisteredResourceProviders.Contains(p)).ToList();

            if (requiredProviders.Count > 0)
            {
                using (IResourceManagementClient client = new ResourceManagementClient(credentials, ResourceManagerEndpoint))
                {
                    foreach (string provider in requiredProviders)
                    {
                        try
                        {
                            client.Providers.Register(provider);
                            RegisteredResourceProviders.Add(provider);
                        }
                        catch
                        {
                            // Ignore this as the user may not have access to Sparta endpoint or the provider is already registered
                        }
                    }
                }
            }
        }