public static string Run([ActivityTrigger] string input, ILogger log) { log.LogInformation($"Azure Analysis Services Partion Manager started at: {DateTime.Now}"); try { /* read from ASPP_ConfigurationLoggingDB */ List <ModelConfiguration> modelsConfig = InitializeFromDatabase(); /* loop through Model Config */ foreach (ModelConfiguration modelConfig in modelsConfig) { /* grab user/pw for AzureAS authentication */ String azure_AppID = System.Environment.GetEnvironmentVariable("CONNSTR_APPID"); String azure_AppKey = System.Environment.GetEnvironmentVariable("CONNSTR_APPKEY"); /* apparently you can do it this way as well */ modelConfig.UserName = azure_AppID; modelConfig.Password = azure_AppKey; /* perform processing */ PartitionProcessor.PerformProcessing(modelConfig, ConfigDatabaseHelper.LogMessage); } } catch (Exception e) { log.LogInformation($"Azure Analysis Services Partion Manager exception: {e.ToString()}"); } log.LogInformation($"Azure Analysis Services Partion Manager finished at: {DateTime.Now}"); return("1"); }
public static async Task <HttpResponseMessage> ProcessPartitions( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); var models = InitializeFromDatabase(); foreach (ModelConfiguration modelConfig in models) { PartitionProcessor.PerformProcessing(log, modelConfig, LogMessage); } return(req.CreateResponse(HttpStatusCode.OK)); }
static void Main(string[] args) { try { List <ModelConfiguration> modelsConfig; if (!UseDatabase) { modelsConfig = InitializeAdventureWorksInline(); } else { modelsConfig = InitializeFromDatabase(); } foreach (ModelConfiguration modelConfig in modelsConfig) { if (!modelConfig.IntegratedAuth) //For Azure AS { Console.WriteLine(); Console.Write("User name for AS server: "); modelConfig.UserName = Console.ReadLine(); Console.Write("Password for AS server: "); modelConfig.Password = ReadPassword(); } //Most important method: PartitionProcessor.PerformProcessing(modelConfig, LogMessage); } } catch (Exception exc) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(); Console.WriteLine(exc.Message, null); } Console.WriteLine("Press any key to exit."); Console.ReadKey(); }
static int Main(string[] args) { try { #region Set defaults for merging & read command-line arguments if provided string mergeTable = "Internet Sales"; Granularity mergeTargetGranuarity = Granularity.Yearly; string mergePartitionKey = "2012"; bool help; ParseArgs(args, ref mergeTable, ref mergeTargetGranuarity, ref mergePartitionKey, out help); if (help) { return(0); //ERROR_SUCCESS } #endregion if (_executionMode == ExecutionMode.InitializeInline) { //Perform Processing PartitionProcessor.PerformProcessing(InitializeInline(), LogMessage); } else { List <ModelConfiguration> modelsConfig = InitializeFromDatabase(); foreach (ModelConfiguration modelConfig in modelsConfig) { SetCredentials(modelConfig); //For Azure AS switch (_executionMode) { case ExecutionMode.InitializeFromDatabase: //Perform Processing PartitionProcessor.PerformProcessing(modelConfig, LogMessage); break; case ExecutionMode.MergePartitions: //Perform Merging PartitionProcessor.MergePartitions(modelConfig, LogMessage, mergeTable, mergeTargetGranuarity, mergePartitionKey); break; case ExecutionMode.DefragPartitionedTables: //Perform Defrag PartitionProcessor.DefragPartitionedTables(modelConfig, LogMessage); break; default: break; } } } } catch (Exception exc) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(); Console.WriteLine(exc.Message); Console.WriteLine(); Console.ForegroundColor = ConsoleColor.White; if (exc is ArgumentException) { return(160); //ERROR_BAD_ARGUMENTS } else { return(1360); //ERROR_GENERIC_NOT_MAPPED } } finally { if (Debugger.IsAttached) { Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } return(0); //ERROR_SUCCESS }