Exemplo n.º 1
0
        public override void ExecuteCmdlet()
        {
            if (this.ShouldProcess(this.DomainName, $"Regenerate key {this.Name} for domain {this.DomainName} in Resource Group {this.ResourceGroupName}"))
            {
                string resourceGroupName;
                string domainName;

                if (!string.IsNullOrEmpty(this.DomainResourceId))
                {
                    EventGridUtils.GetResourceGroupNameAndDomainName(this.DomainResourceId, out resourceGroupName, out domainName);
                }
                else if (this.DomainInputObject != null)
                {
                    resourceGroupName = this.DomainInputObject.ResourceGroupName;
                    domainName        = this.DomainInputObject.DomainName;
                }
                else
                {
                    resourceGroupName = this.ResourceGroupName;
                    domainName        = this.DomainName;
                }

                DomainSharedAccessKeys   domainSharedAccessKeys   = this.Client.RegenerateDomainKey(resourceGroupName, domainName, this.Name);
                PsDomainSharedAccessKeys psDomainSharedAccessKeys = new PsDomainSharedAccessKeys(domainSharedAccessKeys);
                this.WriteObject(psDomainSharedAccessKeys);
            }
        }
Exemplo n.º 2
0
        public override void ExecuteCmdlet()
        {
            string resourceGroupName;
            string domainName;

            if (!string.IsNullOrEmpty(this.DomainResourceId))
            {
                EventGridUtils.GetResourceGroupNameAndDomainName(this.DomainResourceId, out resourceGroupName, out domainName);
            }
            else if (this.DomainObject != null)
            {
                resourceGroupName = this.DomainObject.ResourceGroupName;
                domainName        = this.DomainObject.DomainName;
            }
            else
            {
                resourceGroupName = this.ResourceGroupName;
                domainName        = this.Name;
            }

            DomainSharedAccessKeys   domainSharedAccessKeys   = this.Client.GetDomainSharedAccessKeys(resourceGroupName, domainName);
            PsDomainSharedAccessKeys psDomainSharedAccessKeys = new PsDomainSharedAccessKeys(domainSharedAccessKeys);

            this.WriteObject(psDomainSharedAccessKeys);
        }
        public void PublishEventsToDomain()
        {
            using (MockContext context = MockContext.Start(this.GetType().FullName))
            {
                this.InitializeClients(context);

                var location = this.ResourceManagementClient.GetLocationFromProvider();

                var resourceGroup = this.ResourceManagementClient.TryGetResourceGroup(location);
                if (string.IsNullOrWhiteSpace(resourceGroup))
                {
                    resourceGroup = TestUtilities.GenerateName(EventGridManagementHelper.ResourceGroupPrefix);
                    this.ResourceManagementClient.TryRegisterResourceGroup(location, resourceGroup);
                }

                var domainName             = TestUtilities.GenerateName(EventGridManagementHelper.DomainPrefix);
                var originalTagsDictionary = new Dictionary <string, string>()
                {
                    { "originalTag1", "originalValue1" },
                    { "originalTag2", "originalValue2" }
                };

                Domain domain = new Domain()
                {
                    Location = location,
                    Tags     = originalTagsDictionary
                };

                var createDomainResponse = this.EventGridManagementClient.Domains.CreateOrUpdate(resourceGroup, domainName, domain);

                Assert.NotNull(createDomainResponse);
                Assert.Equal(createDomainResponse.Name, domainName);

                TestUtilities.Wait(TimeSpan.FromSeconds(60));

                // Get the domain key
                DomainSharedAccessKeys keys = this.EventGridManagementClient.Domains.ListSharedAccessKeys(resourceGroup, domainName);

                // Publish events to domain
                string domainHostname           = new Uri(createDomainResponse.Endpoint).Host;
                ResourceCredentials credentials = new ResourceCredentials(keys.Key1);

                EventGridClient client = EventGridManagementHelper.GetEventGridClient(
                    context,
                    credentials,
                    new RecordedDelegatingHandler {
                    StatusCodeToReturn = HttpStatusCode.OK
                });

                Console.WriteLine("Publishing to Azure Event Grid Domain");
                client.PublishEventsAsync(domainHostname, GetEventsList()).GetAwaiter().GetResult();
                Console.WriteLine("Published successfully!");

                // Delete Domain
                this.EventGridManagementClient.Domains.Delete(resourceGroup, domainName);
            }
        }
Exemplo n.º 4
0
        static async Task PerformDomainAndEventSubscriptionOperations()
        {
            string token = await GetAuthorizationHeaderAsync();

            TokenCredentials         credential      = new TokenCredentials(token);
            ResourceManagementClient resourcesClient = new ResourceManagementClient(credential)
            {
                SubscriptionId = SubscriptionId
            };

            EventGridManagementClient eventGridManagementClient = new EventGridManagementClient(credential)
            {
                SubscriptionId = SubscriptionId,
                LongRunningOperationRetryTimeout = 2
            };

            try
            {
                // Register the EventGrid Resource Provider with the Subscription
                await RegisterEventGridResourceProviderAsync(resourcesClient);

                // Create a new resource group
                await CreateResourceGroupAsync(ResourceGroupName, resourcesClient);

                // Create a new Event Grid domain in a resource group
                await CreateEventGridDomainAsync(ResourceGroupName, DomainName, eventGridManagementClient);

                // Get the keys for the domain
                DomainSharedAccessKeys domainKeys = await eventGridManagementClient.Domains.ListSharedAccessKeysAsync(ResourceGroupName, DomainName);

                Console.WriteLine($"The key1 value of domain {DomainName} is: {domainKeys.Key1}");

                // Create an event subscription at the scope of a topic under the domain
                await CreateEventGridEventSubscriptionAsync(ResourceGroupName, DomainName, "domaintopic1", EventSubscriptionName, eventGridManagementClient, StorageAccountId, StorageQueueName);

                // Delete the event subscription created above
                await DeleteEventGridEventSubscriptionAsync(ResourceGroupName, DomainName, "domaintopic1", EventSubscriptionName, eventGridManagementClient);

                // Create an event subscription at the scope of the domain
                await CreateEventGridEventSubscriptionAsync(ResourceGroupName, DomainName, null, EventSubscriptionName, eventGridManagementClient, StorageAccountId, StorageQueueName);

                // Delete the event subscription created above
                await DeleteEventGridEventSubscriptionAsync(ResourceGroupName, DomainName, null, EventSubscriptionName, eventGridManagementClient);

                // Delete the EventGrid domain with the given domain name and a resource group
                await DeleteEventGridDomainAsync(ResourceGroupName, DomainName, eventGridManagementClient);

                Console.WriteLine("Press any key to exit...");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.ReadLine();
            }
        }
Exemplo n.º 5
0
        public async Task <DomainSharedAccessKeys> GetDomainKeys(string credentialsAzureSubscriptionId, string credentialsTenantId, string credentialsClientId,
                                                                 string credentialsClientSecret, string domainName, string resourceGroupName)
        {
            try
            {
                //Management SDKs (Microsoft.Azure.Management.EventGrid)
                EventGridManagementClient managementClient = new EventGridManagementClient(credentials: new CustomLoginCredentials(credentialsTenantId, credentialsClientId, credentialsClientSecret));
                managementClient.SubscriptionId = credentialsAzureSubscriptionId;
                DomainSharedAccessKeys domainKeys = await managementClient.Domains.ListSharedAccessKeysAsync(resourceGroupName : resourceGroupName, domainName : domainName);

                return(domainKeys);
            }
            catch (Exception ex)
            {
                _logger?.LogError($"Unknown Exception. Type: {ex.GetType().ToString()} ; Message: {ex.Message} ; Details: {ex.ToString()}");
                return(null);
            }
        }
        public override void ExecuteCmdlet()
        {
            if (!string.IsNullOrEmpty(this.DomainResourceId))
            {
                var resourceIdentifier = new ResourceIdentifier(this.DomainResourceId);
                this.ResourceGroupName = resourceIdentifier.ResourceGroupName;
                this.Name = resourceIdentifier.ResourceName;
            }
            else if (this.DomainObject != null)
            {
                this.ResourceGroupName = this.DomainObject.ResourceGroupName;
                this.Name = this.DomainObject.DomainName;
            }

            DomainSharedAccessKeys   domainSharedAccessKeys   = this.Client.GetDomainSharedAccessKeys(this.ResourceGroupName, this.Name);
            PsDomainSharedAccessKeys psDomainSharedAccessKeys = new PsDomainSharedAccessKeys(domainSharedAccessKeys);

            this.WriteObject(psDomainSharedAccessKeys);
        }
Exemplo n.º 7
0
        public override void ExecuteCmdlet()
        {
            if (!string.IsNullOrEmpty(this.DomainResourceId))
            {
                var resourceIdentifier = new ResourceIdentifier(this.DomainResourceId);
                this.ResourceGroupName = resourceIdentifier.ResourceGroupName;
                this.DomainName        = resourceIdentifier.ResourceName;
            }
            else if (this.DomainInputObject != null)
            {
                this.ResourceGroupName = this.DomainInputObject.ResourceGroupName;
                this.DomainName        = this.DomainInputObject.DomainName;
            }

            if (this.ShouldProcess(this.DomainName, $"Regenerate key {this.Name} for domain {this.DomainName} in Resource Group {this.ResourceGroupName}"))
            {
                DomainSharedAccessKeys   domainSharedAccessKeys   = this.Client.RegenerateDomainKey(this.ResourceGroupName, this.DomainName, this.Name);
                PsDomainSharedAccessKeys psDomainSharedAccessKeys = new PsDomainSharedAccessKeys(domainSharedAccessKeys);
                this.WriteObject(psDomainSharedAccessKeys);
            }
        }
 public PsDomainSharedAccessKeys(DomainSharedAccessKeys domainSharedAccessKeys)
 {
     this.Key1 = domainSharedAccessKeys.Key1;
     this.Key2 = domainSharedAccessKeys.Key2;
 }