Exemple #1
0
        /// <summary>
        /// Gets the auth rules for a relay and return <see cref="HybridConnectionDetails"/> instance containing details of hybrid connection.
        /// </summary>
        /// <param name="rgName">Name of the Resource Group.</param>
        /// <param name="hybridConnectionName">Hybrid connection name.</param>
        /// <param name="relayManagementClient">The relay management client.</param>
        /// <param name="relayNamespace">The selected relay.</param>
        private static async Task <HybridConnectionDetails> GetHybridConnectionDetailsAsync(
            string rgName,
            string hybridConnectionName,
            RelayManagementClient relayManagementClient,
            RelayNamespaceInner relayNamespace)
        {
            List <AuthorizationRuleInner>  relayAuthRuleList = new List <AuthorizationRuleInner>();
            IPage <AuthorizationRuleInner> resp = await relayManagementClient.Namespaces.ListAuthorizationRulesAsync(rgName, relayNamespace.Name).ConfigureAwait(false);

            relayAuthRuleList.AddRange(resp);

            while (!string.IsNullOrEmpty(resp.NextPageLink))
            {
                resp = await relayManagementClient.Namespaces.ListAuthorizationRulesNextAsync(resp.NextPageLink).ConfigureAwait(false);

                relayAuthRuleList.AddRange(resp);
            }

            AuthorizationRuleInner selectedAuthRule = relayAuthRuleList.FirstOrDefault(rule => rule.Rights != null && rule.Rights.Contains(AccessRights.Listen) && rule.Rights.Contains(AccessRights.Manage) && rule.Rights.Contains(AccessRights.Send));

            if (selectedAuthRule == null)
            {
                throw new InvalidOperationException("Failed to find a suitable Authorization rule to use. Please create an Authorization rule with Listen, Manage and Send rights and retry the operation");
            }
            else
            {
                AccessKeysInner keyInfo = await relayManagementClient.Namespaces.ListKeysAsync(
                    rgName,
                    relayNamespace.Name,
                    selectedAuthRule.Name).ConfigureAwait(false);

                return(new HybridConnectionDetails
                {
                    HybridConnectionKeyName = keyInfo.KeyName,
                    HybridConnectionName = hybridConnectionName,
                    HybridConnectionSharedKey = keyInfo.PrimaryKey,
                    RelayUrl = relayNamespace.ServiceBusEndpoint,
                });
            }
        }
Exemple #2
0
 ///GENMHASH:88DB44BAECF6544F77A2C83BD6FC1C3B:7517BB8CBCB94F9AA4632A3D07863A48
 internal EventHubAuthorizationRuleImpl(string name, AuthorizationRuleInner inner, IEventHubManager manager) : base(name, inner, manager)
 {
     this.ancestor = new TwoAncestor(inner.Id);
 }
Exemple #3
0
 ///GENMHASH:BCF24D03D2EE33ADFF1E81AD1D0155CB:D8ACC36215F5764A5A6952D3F104FC21
 protected override EventHubNamespaceAuthorizationRuleImpl WrapModel(AuthorizationRuleInner innerModel)
 {
     return(new EventHubNamespaceAuthorizationRuleImpl(innerModel.Name, innerModel, this.Manager));
 }
 ///GENMHASH:6F0F4875025EFAD1501AE24B692D87A3:C5C9A7A1846EEA08D381D40B63B43DC6
 protected AuthorizationRuleBaseImpl(string name, AuthorizationRuleInner inner, IEventHubManager manager) : base(name, inner, manager)
 {
 }
Exemple #5
0
 ///GENMHASH:BCF24D03D2EE33ADFF1E81AD1D0155CB:27E486AB74A10242FF421C0798DDC450
 protected abstract RuleImpl WrapModel(AuthorizationRuleInner innerModel);