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); }
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); }
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; })); }