Ejemplo n.º 1
0
 public CallbackController(ILogger logger, TaskMonitor monitor, CloudUtilities utilities, NodeSynchronizer synchronizer)
 {
     this.logger       = logger;
     this.monitor      = monitor;
     this.utilities    = utilities;
     this.synchronizer = synchronizer;
 }
Ejemplo n.º 2
0
 public static IWebHost BuildWebHost(string[] args) =>
 WebHost.CreateDefaultBuilder()
 .ConfigureAppConfiguration(c =>
 {
     c.AddJsonFile("appsettings.json")
     .AddEnvironmentVariables()
     .AddCommandLine(args);
 })
 .ConfigureLogging((c, l) =>
 {
     l.AddConfiguration(c.Configuration.GetSection("Logging"))
     .AddConsole()
     .AddDebug()
     .AddAzureWebAppDiagnostics();
 })
 .ConfigureServices((context, services) =>
 {
     var option = context.Configuration.GetSection("CloudOption").Get <CloudOption>();
     services.Add(new Extensions.DependencyInjection.ServiceDescriptor(typeof(CloudOption), option));
     var utilities = new CloudUtilities(option);
     utilities.InitializeAsync(CancellationToken.None).GetAwaiter().GetResult();
     services.Add(new Extensions.DependencyInjection.ServiceDescriptor(typeof(CloudUtilities), utilities));
 })
 .UseUrls("http://*:80", "http://*:5000")
 .UseStartup <Startup>()
 .Build();
Ejemplo n.º 3
0
        public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder()
        .ConfigureAppConfiguration(c =>
        {
            c.AddJsonFile("appsettings.json")
            .AddEnvironmentVariables()
            .AddCommandLine(args);
        })
        .ConfigureServices((context, services) =>
        {
            var logOptions   = context.Configuration.GetSection("LogOptions").Get <LogOptions>() ?? new LogOptions();
            var loggerConfig = new LoggerConfiguration()
                               .WriteTo.Console()
                               .WriteTo.RollingFile(logOptions.FileName);

            ILogger logger = loggerConfig.CreateLogger();

            services.AddSingleton(logger);
            var section        = context.Configuration.GetSection("CloudOptions");
            var options        = section.Get <CloudOptions>();
            var cloudUtilities = new CloudUtilities(Options.Create(options), logger);
            cloudUtilities.InitializeAsync(CancellationToken.None).Wait();

            services.Configure <CloudOptions>(section);
            services.Configure <ServerOptions>(context.Configuration.GetSection("ServerOptions"));
            services.AddSingleton(cloudUtilities);
            services.AddSingleton <ServerObject>();
            services.AddSingleton <DataProvider>();
        })
        .UseKestrel(options => options.UseHttps())
        .UseStartup <Startup>()
        .Build();
Ejemplo n.º 4
0
 public JobDispatcherWorker(IConfiguration config, ILoggerFactory loggerFactory, CloudTable jobTable, CloudUtilities utilities)
 {
     this.Configuration = config;
     this.logger        = loggerFactory.CreateLogger <JobDispatcherWorker>();
     this.utilities     = utilities;
     this.jobTable      = jobTable;
 }
Ejemplo n.º 5
0
 public MetricsWorker(CloudUtilities utilities, IConfiguration config, CloudTable metricsTable, CloudTable nodesTable, ILoggerFactory loggerFactory)
 {
     this.utilities    = utilities;
     this.config       = config;
     this.metricsTable = metricsTable;
     this.nodesTable   = nodesTable;
     this.logger       = loggerFactory.CreateLogger <MetricsWorker>();
 }
Ejemplo n.º 6
0
 public NodeAgentWorker(IConfiguration config, ILoggerFactory loggerFactory, CloudTable jobsTable, CloudTable nodesTable, CloudUtilities utilities)
 {
     this.Configuration = config;
     this.logger        = loggerFactory.CreateLogger <NodeAgentWorker>();
     this.communicator  = new NodeCommunicator(loggerFactory, config);
     this.utilities     = utilities;
     this.jobsTable     = jobsTable;
     this.nodesTable    = nodesTable;
 }
Ejemplo n.º 7
0
 public ServerObject(
     ILogger logger,
     IConfiguration config,
     CloudUtilities utilities,
     IOptions <CloudOptions> cloudOptions,
     IOptions <ServerOptions> serverOptions)
 {
     this.Logger        = logger;
     this.Configuration = config;
     this.Utilities     = utilities;
     this.CloudOptions  = cloudOptions.Value;
     this.ServerOptions = serverOptions.Value;
 }
Ejemplo n.º 8
0
 public static IWebHost BuildWebHost(string[] args, TaskMonitor taskMonitor, CloudUtilities utilities) =>
 WebHost.CreateDefaultBuilder()
 .ConfigureAppConfiguration(c =>
 {
     c.AddJsonFile("appsettings.json")
     .AddEnvironmentVariables()
     .AddCommandLine(args);
 })
 .ConfigureLogging((c, l) =>
 {
     l.AddConfiguration(c.Configuration.GetSection("Logging"))
     .AddConsole()
     .AddDebug()
     .AddAzureWebAppDiagnostics();
 })
 .ConfigureServices(services =>
 {
     services.Add(new Extensions.DependencyInjection.ServiceDescriptor(typeof(TaskMonitor), taskMonitor));
     services.Add(new Extensions.DependencyInjection.ServiceDescriptor(typeof(CloudUtilities), utilities));
 })
 .UseUrls("http://*:8080", "http://*:5000")
 .UseStartup <Startup>()
 .Build();
Ejemplo n.º 9
0
 public TaskOutputController(CloudUtilities u)
 {
     this.utilities = u;
 }
Ejemplo n.º 10
0
 public CallbackController(ILogger <CallbackController> logger, TaskMonitor monitor, CloudUtilities utilities)
 {
     this.logger    = logger;
     this.monitor   = monitor;
     this.utilities = utilities;
 }
Ejemplo n.º 11
0
 public NodesController(CloudUtilities u, ILogger <NodesController> logger)
 {
     this.utilities = u;
     this.logger    = logger;
 }
Ejemplo n.º 12
0
 public ValuesController(CloudUtilities utilities, ILogger <ValuesController> logger)
 {
     this.utilities = utilities;
     this.logger    = logger;
 }
Ejemplo n.º 13
0
 public OutputController(ILogger logger, TaskMonitor monitor, CloudUtilities utilities)
 {
     this.logger    = logger;
     this.monitor   = monitor;
     this.Utilities = utilities;
 }
Ejemplo n.º 14
0
        /// <summary>
        /// Determine if a reboot is needed to apply updates
        /// </summary>
        /// <returns></returns>
        internal static bool IsRebootPending()
        {
            Logger.FunctionEnter();
            const string psFile = @".\CheckRebootState.ps1";
            bool         rc     = false;

            try
            {
                // next requires wu service to be running
                //WUApiLib.UpdateInstaller inst = new UpdateInstaller();
                //rc = inst.RebootRequiredBeforeInstallation;

                if (!rc && File.Exists(psFile) && !CloudUtilities.IsCloudOS())
                {
                    if (PS.RunPSCommand(@"-File " + psFile, out string outstr, true))
                    {
                        Logger.Debug("output string from PS: " + outstr);
                        rc = outstr.ToLower().Contains("true");
                    }
                }

                if (!rc)
                {
                    Logger.Debug("Com lookup returned false, checking registry to confirm");

                    // check registry keys for potential pending updates
                    const string _rebootKey1         = @"SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\";
                    const string _rebootKey2         = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\";
                    const string _rebootValue        = "RebootRequired";
                    const string _sessionMgrKey      = @"SYSTEM\CurrentControlSet\Control\Session Manager\";
                    const string _pendingRenameValue = "PendingFileRenameOperations";

                    Logger.Debug("Checking for {0}", _sessionMgrKey);
                    RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Default);
                    RegistryKey subKey  = baseKey.OpenSubKey(_sessionMgrKey);
                    if (subKey != null)
                    {
                        Logger.Debug("Getting Subkey {0}", _pendingRenameValue);
                        var value = subKey.GetValue(_pendingRenameValue);
                        if (value != null)
                        {
                            var stringList = new List <string>(value as string[]);
                            if (stringList.Count > 0)
                            {
                                Logger.Comment("Pending Reboot Detected: Pending rename registry key setting found");
                                rc = true;
                            }
                        }
                    }

                    // NOTE: the next may fail on domain-joined machines due to MS domain admin policies.
                    //       this should run ok for WTT machines which is the intended target.
                    Logger.Debug("Checking {0}", _rebootKey1);
                    subKey = baseKey.OpenSubKey(_rebootKey1);

                    if (subKey != null)
                    {
                        string[] subKeys = subKey.GetSubKeyNames();
                        if (subKeys.Contains(_rebootValue))
                        {
                            Logger.Comment("Pending Reboot Detected: Pending reboot required registry key found");
                            rc = true;
                        }
                    }

                    Logger.Debug("Checking {0}", _rebootKey2);
                    subKey = baseKey.OpenSubKey(_rebootKey2);
                    if (subKey != null)
                    {
                        string[] subKeys = subKey.GetSubKeyNames();
                        if (subKeys.Contains(_rebootValue))
                        {
                            Logger.Comment("Pending Reboot Detected: Pending reboot required registry key found");
                            rc = true;
                        }
                    }
                }
            }

            catch (Exception ex)
            {
                GetData.GetExceptionMessage(ex);
            }


            Logger.Debug("Reboot Pending Query Returning {0}", rc);
            Logger.FunctionLeave();

            return(rc);
        }
Ejemplo n.º 15
0
 public MetricsV1Controller(DataProvider provider, CloudUtilities utilities)
 {
     this.Provider  = provider;
     this.utilities = utilities;
 }
Ejemplo n.º 16
0
 public ClusRunController(ILogger <ClusRunController> logger, CloudUtilities cloudEntities)
 {
     this.logger    = logger;
     this.utilities = cloudEntities;
 }
Ejemplo n.º 17
0
 public HeatmapController(CloudUtilities u, ILogger <HeatmapController> logger)
 {
     this.utilities = u;
     this.logger    = logger;
 }