コード例 #1
0
        /*
         * Test mode allows testing of ServiceFabricAutopilotAgent outside an Autopilot hosting environment.
         * In test mode, all dependencies on AP Runtime are replaced by test environment equivalences:
         *      Logging => text log
         *      Configuration => default test configurations
         */
        public void Start(bool useTestMode = false)
        {
            string agentApplicationDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

            if (!useTestMode)
            {
                APRuntime.Initialize(StringConstants.ApplicationConfigurationFileName);
            }

            TextLogger.InitializeLogging(StringConstants.CustomLogIdName, useTestMode, StringConstants.TestModeLogFileNameTemplate, StringConstants.TestModeLogDirectoryName, StringConstants.TestModeTraceListenerName);

            TextLogger.LogInfo("Starting Service Fabric Autopilot Agent.");

            if (!ConfigurationManager.GetCurrentConfigurations(useTestMode))
            {
                this.Exit(false);

                return;
            }

            TextLogger.SetLogLevel(ConfigurationManager.LogLevel);

            ConfigurationManager.LogCurrentConfigurations();

            ServiceFabricLocalNodeManager localNodeManager;

            if (!ServiceFabricLocalNodeManager.Create(agentApplicationDirectory, useTestMode, out localNodeManager))
            {
                this.Exit(false);

                return;
            }

            this.localNodeManager = localNodeManager;

            this.agentStatus.InitializeAgentStatus();

            this.RegisterConsoleCancelEventNotifications();

            this.backgroundStateMachineTask = Task.Factory.StartNew(
                () => this.RunBackgroundStateMachine(this.backgroundStateMachineCancellationTokenSource.Token),
                this.backgroundStateMachineCancellationTokenSource.Token,
                TaskCreationOptions.LongRunning,
                TaskScheduler.Default);
        }
        public AutopilotInfrastructureCoordinatorFactory(
            Uri serviceName,
            IConfigStore configStore,
            string configSectionName,
            Guid partitionId,
            long replicaId)
        {
            this.serviceName = serviceName.Validate("serviceName");
            configStore.Validate("configStore");
            configSectionName.Validate("configSectionName");

            this.configSection = new ConfigSection(new TraceType(Constants.TraceTypeName + "Config"), configStore, configSectionName);

            this.partitionId = partitionId;
            this.replicaId   = replicaId;

            this.env = new CoordinatorEnvironment(this.serviceName.AbsoluteUri, this.configSection, string.Empty);

            TraceType factoryTraceType = this.env.CreateTraceType("Factory");

            factoryTraceType.WriteInfo(
                "Autopilot coordinator factory created; AppRoot = '{0}'",
                Environment.GetEnvironmentVariable("AppRoot"));

            try
            {
                if (APRuntime.IsInitialized)
                {
                    factoryTraceType.WriteInfo("APRuntime is already initialized");
                }
                else
                {
                    factoryTraceType.WriteInfo("Initializing APRuntime");
                    APRuntime.Initialize();
                    factoryTraceType.WriteInfo("Initialized APRuntime successfully");
                }
            }
            catch (Exception e)
            {
                factoryTraceType.WriteError("Failed to initialize APRuntime: {0}", e);
                throw;
            }
        }
コード例 #3
0
        static void Main(string[] args)
        {
            APRuntime.Initialize("HydraBenchmark.ini");
            string[]     fileNameSet = Directory.GetFiles(configFilePath);
            StreamConfig streams     = new StreamConfig(10000, 10);

            foreach (string x in fileNameSet)
            {
                string[] sp = x.Split(testConfig.configFileSeparator);
                if (sp.Length < 2 || sp[1] != testConfig.configFileSuffix)
                {
                    continue;
                }
                AutoTest test = new AutoTest(streams, x, totalTestTime, recordInterval);
                Console.WriteLine("[Config Start]: {0}", x);
                test.Run(TestRunMode.SingleThread, configFilePath);
                //test.Run(TestRunMode.Parrallel);
            }
            return;
        }
コード例 #4
0
        public void Start()
        {
            string applicationDirectory = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

            this.certificateManager = new EnvironmentCertificateManager(applicationDirectory);

            APRuntime.Initialize(StringConstants.ApplicationConfigurationFileName);

            TextLogger.InitializeLogging(StringConstants.CustomLogIdName);

            TextLogger.LogInfo("Starting Service Fabric Environment Sync.");

            if (!ConfigurationManager.GetCurrentConfigurations())
            {
                this.Exit(false);

                return;
            }

            TextLogger.SetLogLevel(ConfigurationManager.LogLevel);

            if (!this.certificateManager.GetEnvironmentCertificatesFromCurrentConfigurations())
            {
                this.Exit(false);

                return;
            }

            this.RegisterConsoleCancelEventNotifications();

            this.certificateManagerTask = Task.Factory.StartNew(
                () => this.RunCertificateManager(this.certificateManagerCancellationTokenSource.Token),
                this.certificateManagerCancellationTokenSource.Token,
                TaskCreationOptions.LongRunning,
                TaskScheduler.Default);
        }