Пример #1
0
        private bool SetAuditingPolicyInternal(Func <bool> setAuditingPolicy)
        {
            SynapseManagementClient client = GetCurrentSynapseManagementClient();

            const int SecondsToSleepBetweenTries = 5;
            int       numberOfTries = 3;
            bool      isARetry      = false;

            do
            {
                if (isARetry)
                {
                    Thread.Sleep(SecondsToSleepBetweenTries);
                }

                try
                {
                    return(setAuditingPolicy());
                }
                catch (Exception e)
                {
                    if (!(e.InnerException is CloudException cloudException) ||
                        cloudException.Body.Code != "BlobAuditingInsufficientStorageAccountPermissions")
                    {
                        throw;
                    }
                }

                numberOfTries--;
                isARetry = true;
            } while (numberOfTries > 0);

            return(false);
        }
Пример #2
0
        public AzureSynapseService(PipelineRequest request, ILogger logger)
        {
            _logger = logger;
            _logger.LogInformation("Creating SYN connectivity clients.");

            //Auth details
            var context = new AuthenticationContext("https://login.windows.net/" + request.TenantId);
            var cc      = new ClientCredential(request.ApplicationId, request.AuthenticationKey);
            var result  = context.AcquireTokenAsync("https://management.azure.com/", cc).Result;
            var cred    = new TokenCredentials(result.AccessToken);

            //Management Client
            _synManagementClient = new SynapseManagementClient(cred)
            {
                SubscriptionId = request.SubscriptionId
            };

            //Pipeline Clients
            Uri             synapseDevEndpoint = new Uri("https://" + request.OrchestratorName.ToLower() + ".dev.azuresynapse.net");
            TokenCredential token = new ClientSecretCredential
                                    (
                request.TenantId,
                request.ApplicationId,
                request.AuthenticationKey
                                    );

            _pipelineClient    = new PipelineClient(synapseDevEndpoint, token);
            _pipelineRunClient = new PipelineRunClient(synapseDevEndpoint, token);
        }
        public SynapseAnalyticsManagementClient(IAzureContext context)
        {
            if (context == null)
            {
                throw new SynapseException(Resources.InvalidDefaultSubscription);
            }

            _subscriptionId = context.Subscription.GetId();

            _synapseManagementClient = SynapseCmdletBase.CreateSynapseClient <SynapseManagementClient>(context,
                                                                                                       AzureEnvironment.Endpoint.ResourceManager);
        }
Пример #4
0
 public bool SetAuditingPolicy(string resourceGroupName, string workspaceName,
                               ServerBlobAuditingPolicy policy)
 {
     return(SetAuditingPolicyInternal(() =>
     {
         SynapseManagementClient client = GetCurrentSynapseManagementClient();
         AzureOperationResponse <ServerBlobAuditingPolicy> response =
             client.WorkspaceManagedSqlServerBlobAuditingPolicies.BeginCreateOrUpdateWithHttpMessagesAsync(
                 resourceGroupName, workspaceName, policy).Result;
         return client.GetLongRunningOperationResultAsync(response, null, CancellationToken.None).Result.Response.IsSuccessStatusCode;
     }));
 }