/// <summary> /// Extracts the storage account name from the given model /// </summary> private static string ExtractStorageAccountName(BaseBlobAuditingPolicyModel model, string endpointSuffix) { return string.Format("https://{0}.blob.{1}", model.StorageAccountName, endpointSuffix); }
private static IList<string> ExtractAuditActionsAndGroups(BaseBlobAuditingPolicyModel model) { var actionsAndGroups = new List<string>(model.AuditAction); model.AuditActionGroup.ToList().ForEach(aag => actionsAndGroups.Add(aag.ToString())); if (actionsAndGroups.Count == 0) // default audit actions and groups in case nothing was defined by the user { actionsAndGroups.Add("SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP"); actionsAndGroups.Add("FAILED_DATABASE_AUTHENTICATION_GROUP"); actionsAndGroups.Add("BATCH_COMPLETED_GROUP"); } return actionsAndGroups; }
/// <summary> /// Takes the cmdlets model object and transform it to the policy as expected by the endpoint /// </summary> /// <param name="model">The AuditingPolicy model object</param> /// <param name="storageEndpointSuffix">The suffix of the storage endpoint</param> /// <returns>The communication model object</returns> private BlobAuditingCreateOrUpdateParameters PolicizeBlobAuditingModel(BaseBlobAuditingPolicyModel model, string storageEndpointSuffix) { var updateParameters = new BlobAuditingCreateOrUpdateParameters(); var properties = new BlobAuditingProperties(); updateParameters.Properties = properties; properties.State = model.AuditState.ToString(); if (!IgnoreStorage) { properties.StorageEndpoint = ExtractStorageAccountName(model, storageEndpointSuffix); properties.StorageAccountAccessKey = ExtractStorageAccountKey(model.StorageAccountName); } properties.AuditActionsAndGroups = ExtractAuditActionsAndGroups(model); properties.RetentionDays = (int) model.RetentionInDays; return updateParameters; }
private static void ModelizeStorageInfo(BaseBlobAuditingPolicyModel model, string storageEndpoint) { if (string.IsNullOrEmpty(storageEndpoint)) { return; } var accountNameStartIndex = storageEndpoint.StartsWith("https://", StringComparison.InvariantCultureIgnoreCase)? 8 : 7; // https:// or http:// var accountNameEndIndex = storageEndpoint.IndexOf(".blob", StringComparison.InvariantCultureIgnoreCase); model.StorageAccountName = storageEndpoint.Substring(accountNameStartIndex, accountNameEndIndex- accountNameStartIndex); }
private void ModelizeRetentionInfo(BaseBlobAuditingPolicyModel model, int retentionDays) { model.RetentionInDays = Convert.ToUInt32(retentionDays); }
private void ModelizeAuditActionsAndGroupsInfo(BaseBlobAuditingPolicyModel dbPolicyModel, IEnumerable<string> auditActionsAndGroups) { var groups = new List<AuditActionGroups>(); var actions = new List<string>(); auditActionsAndGroups.ForEach(item => { AuditActionGroups group; if (Enum.TryParse(item, true, out group)) { groups.Add(group); } else { actions.Add(item); } }); dbPolicyModel.AuditActionGroup = groups.ToArray(); dbPolicyModel.AuditAction = actions.ToArray(); }