private static void InitSilo( string[] args ) { siloHost = new SiloHost( "Primary" ) { ConfigFileName = "DevTestServerConfiguration.xml", DeploymentId = "1" }; siloHost.InitializeOrleansSilo(); var ok = siloHost.StartOrleansSilo(); if( !ok ) throw new SystemException( string.Format( "Failed to start Orleans silo '{0}' as a {1} node.", siloHost.Name, siloHost.Type ) ); }
public static void GrainTestsClassCleanUp() { hostDomain.DoCallBack( () => { siloHost.Dispose(); siloHost = null; AppDomain.Unload( hostDomain ); } ); var startInfo = new ProcessStartInfo { FileName = "taskkill", Arguments = "/F /IM vstest.executionengine.x86.exe", UseShellExecute = false, WindowStyle = ProcessWindowStyle.Hidden, }; Process.Start( startInfo ); }
private static void InitSilo( string[] args ) { // this is a hack to replace the local azure storage emulator for a real storage account // which is stored in an environment variable in travis ci const string SILO_SETTINGS_FILE = "DevTestServerConfiguration.xml"; string connectionString = null; if (null != (connectionString = Environment.GetEnvironmentVariable("DataConnectionString"))) { Console.WriteLine("rewritten DataConnectinString variable"); var settings = File.ReadAllText(SILO_SETTINGS_FILE).Replace("UseDevelopmentStorage=true", connectionString); File.WriteAllText(SILO_SETTINGS_FILE, settings); } siloHost = new SiloHost( "Primary" ) { ConfigFileName = SILO_SETTINGS_FILE, DeploymentId = "1" }; siloHost.InitializeOrleansSilo(); var ok = siloHost.StartOrleansSilo(); if( !ok ) throw new SystemException( string.Format( "Failed to start Orleans silo '{0}' as a {1} node.", siloHost.Name, siloHost.Type ) ); }
public OrleansHostWrapper(ClusterConfiguration clusterConfiguration) { _siloHost = new SiloHost(Dns.GetHostName(), clusterConfiguration); _siloHost.LoadOrleansConfig(); }
protected virtual void Dispose(bool dispose) { siloHost.Dispose(); siloHost = null; }
private bool ParseArguments(string[] args) { string deploymentId = null; string configFileName = "DevTestServerConfiguration.xml"; string siloName = Dns.GetHostName(); // Default to machine name int argPos = 1; for (int i = 0; i < args.Length; i++) { string a = args[i]; if (a.StartsWith("-") || a.StartsWith("/")) { switch (a.ToLowerInvariant()) { case "/?": case "/help": case "-?": case "-help": // Query usage help return(false); default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } else if (a.Contains("=")) { string[] split = a.Split('='); if (String.IsNullOrEmpty(split[1])) { Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } switch (split[0].ToLowerInvariant()) { case "deploymentid": deploymentId = split[1]; break; case "deploymentgroup": // TODO: Remove this at some point in future Console.WriteLine("Ignoring deprecated command line argument: " + a); break; default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } // unqualified arguments below else if (argPos == 1) { siloName = a; argPos++; } else if (argPos == 2) { configFileName = a; argPos++; } else { // Too many command line arguments Console.WriteLine("Too many command line arguments supplied: " + a); return(false); } } siloHost = new SiloHost(siloName); siloHost.ConfigFileName = configFileName; if (deploymentId != null) { siloHost.DeploymentId = deploymentId; } return(true); }
private void Dispose(bool dispose) { this.siloHost.Dispose(); this.siloHost = null; }
//------------------------------------------------------------------------- // Parse command line arguments, to allow override of some silo runtime config settings. // <param name="args">Command line arguments, as received by the Main program.</param> public bool ParseArguments(string[] args) { string silo_name = Dns.GetHostName(); // Default to machine name SiloHost = new SiloHost(silo_name); int argPos = 1; for (int i = 0; i < args.Length; i++) { string a = args[i]; if (a.StartsWith("-") || a.StartsWith("/")) { switch (a.ToLowerInvariant()) { case "/?": case "/help": case "-?": case "-help": // Query usage help return(false); case "/debug": SiloHost.Debug = true; break; default: EbLog.Error("Bad command line arguments supplied: " + a); return(false); } } else if (a.Contains("=")) { string[] split = a.Split('='); if (String.IsNullOrEmpty(split[1])) { EbLog.Error("Bad command line arguments supplied: " + a); return(false); } switch (split[0].ToLowerInvariant()) { case "deploymentid": SiloHost.DeploymentId = split[1]; break; case "deploymentgroup": Console.WriteLine("Ignoring deprecated command line argument: " + a); break; default: EbLog.Error("Bad command line arguments supplied: " + a); return(false); } } // unqualified arguments below else if (argPos == 1) { SiloHost.Name = a; argPos++; } else if (argPos == 2) { SiloHost.ConfigFileName = a; argPos++; } else { // Too many command line arguments EbLog.Error("Too many command line arguments supplied: " + a); return(false); } } return(true); }
public bool ParseArguments(string[] args) { string deploymentId = null; string siloName = Dns.GetHostName();// Default to machine name int argPos = 1; for (int i = 0; i < args.Length; i++) { string a = args[i]; if (a.StartsWith("-") || a.StartsWith("/")) { switch (a.ToLowerInvariant()) { case "/?": case "/help": case "-?": case "-help": // Query usage help return(false); default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } else if (a.Contains("=")) { string[] split = a.Split('='); if (String.IsNullOrEmpty(split[1])) { Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } switch (split[0].ToLowerInvariant()) { case "deploymentid": deploymentId = split[1]; break; default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } // unqualified arguments below else if (argPos == 1) { siloName = a; argPos++; } else { // Too many command line arguments Console.WriteLine("Too many command line arguments supplied: " + a); return(false); } } var config = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory + $"{Path.GetFileNameWithoutExtension(CommomHelper.Filename)}.xml")); if (!config.Exists) { var _config = ClusterConfiguration.LocalhostPrimarySilo(); _config.UseStartupType <MyStartup>(); _config.AddMemoryStorageProvider(); siloHost = new SiloHost(siloName, _config); } else { siloHost = new SiloHost(CommomHelper.SoliName, config); // Console.WriteLine($"the {Filename}.xml is ") } if (deploymentId != null) { siloHost.DeploymentId = deploymentId; } return(true); }
#pragma warning restore CS1998 // Async method lacks 'await' operators and will run synchronously /// <summary> /// Called when the service stops. This methods stops the silo. In most scenarios, you shouldn't override this /// method. /// </summary> protected override void OnStop() { SiloHost.Stop(); // This calls BeforeOrleansShutdown() Dispose(); }
static int Main(string[] args) { string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development"; var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddInMemoryCollection(new Dictionary <string, string> // add default settings, that will be overridden by commandline { { "Id", "OrleansHost" }, { "Version", "1.0.0" }, { "DeploymentId", "testdeploymentid" }, }) .AddCommandLine(args) .AddJsonFile($"appconfig.json", optional: true) .AddJsonFile($"appconfig.{environment}.json", optional: true) .AddEnvironmentVariables("ASPNETCORE_"); // The CloudService will pass settings (such as) the connectionstring through environment variables if ("Development".Equals(environment) && builder.GetFileProvider().GetFileInfo("OrleansHost.csproj").Exists) { // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709 builder.AddUserSecrets(); } var config = builder.Build(); loggerFactory.AddConsole(config.GetSection("Logging")); loggerFactory.AddDebug(); var logger = loggerFactory.CreateLogger <Program>(); ClusterConfiguration clusterConfig = ClusterConfiguration.LocalhostPrimarySilo(); clusterConfig.Globals.DeploymentId = config["Id"]; clusterConfig.Globals.DataConnectionString = config.GetConnectionString("DataConnectionString"); clusterConfig.AddMemoryStorageProvider("Default"); clusterConfig.AddMemoryStorageProvider("PubSubStore"); clusterConfig.AddSimpleMessageStreamProvider("Default"); clusterConfig.Defaults.DefaultTraceLevel = Orleans.Runtime.Severity.Warning; clusterConfig.Defaults.TraceFileName = ""; clusterConfig.UseStartupType <Startup>(); var siloHost = new SiloHost(config["Id"], clusterConfig); try { siloHost.InitializeOrleansSilo(); bool ok = siloHost.StartOrleansSilo(catchExceptions: false); if (!ok) { logger.LogError(string.Format($"Failed to start Orleans silo '{siloHost.Name}' as a {siloHost.Type} node.")); return(1); } } catch (Exception exc) { siloHost.ReportStartupError(exc); return(2); } Console.WriteLine("OrleansHost is running. Press [Ctrl]-C to stop..."); siloHost.WaitForOrleansSiloShutdown(); // logger.LogInformation(string.Format($"Orleans silo '{siloHost.Name}' shutdown. Press [Enter]")); // Console.ReadLine(); return(0); }
static void Main(string[] args) { // First, configure and start a local silo var siloConfig = ClusterConfiguration.LocalhostPrimarySilo(); var props = new Dictionary <string, string> { { "UseJsonFormat", "true" } }; IProviderConfiguration pConfig = new ProviderConfiguration(props, "Orleans.Storage.DynamoDBStorageProvider", "DynamoDBStorage"); var catConfig = new ProviderCategoryConfiguration("Storage") { Providers = new Dictionary <string, IProviderConfiguration> { { "DynamoDBStorage", pConfig } } }; siloConfig.Globals.ProviderConfigurations.Add("Storage", catConfig); //siloConfig.Add.AddMemoryStorageProvider(); //siloConfig.LoadFromFile("DevTestServerConfiguration.xml"); var silo = new SiloHost("TestSilo", siloConfig); //silo.ConfigFileName = "DevTestServerConfiguration.xml"; silo.InitializeOrleansSilo(); silo.StartOrleansSilo(); Console.WriteLine("Silo started."); // Then configure and connect a client. var clientConfig = ClientConfiguration.LocalhostSilo(); var client = new ClientBuilder().UseConfiguration(clientConfig).Build(); client.Connect().Wait(); Console.WriteLine("Client connected."); // // This is the place for your test code. // var usr1 = new User() { Id = Guid.Parse("8ac512e4-a618-4ba0-b69b-c3051d53888a"), Nickname = "eugene" }; var usr2 = new User() { Id = Guid.Parse("8ac512e4-a618-4ba0-b69b-c3051d53888b"), Nickname = "petro" }; var usr1Grain = client.GetGrain <IUserGrain>(usr1.Id); var usr2Grain = client.GetGrain <IUserGrain>(usr2.Id); usr1Grain.Create(usr1).Wait(); usr2Grain.Create(usr2).Wait(); var chatRoom = new ChatRoom() { Id = Guid.Parse("8ac512e4-a618-4ba0-b69b-c3051d53888c"), Name = "eugene&petro" }; var chatRoomGrain = client.GetGrain <IChatRoomGrain>(chatRoom.Id); chatRoomGrain.Create(chatRoom).Wait(); chatRoomGrain.Join(usr1Grain, usr2Grain).Wait(); SubscribeToMessageNotifications(client, chatRoom, chatRoomGrain); usr1Grain.SendMsg("Hi, group!", chatRoomGrain).Wait(); var msgs = chatRoomGrain.GetMessages().Result; Console.WriteLine("\nPress Enter to terminate..."); Console.ReadLine(); // Shut down client.Close(); silo.ShutdownOrleansSilo(); }
internal OrleansService(SiloHost silohost) { host = silohost; }
static void Main(string[] args) { // First, configure and start a local silo var siloConfig = ClusterConfiguration.LocalhostPrimarySilo(); var silo = new SiloHost("TestSilo", siloConfig); silo.InitializeOrleansSilo(); silo.StartOrleansSilo(); Console.WriteLine("Silo started."); // Then configure and connect a client. //var clientConfig = ClientConfiguration.LocalhostSilo(); //var client = new ClientBuilder().UseConfiguration(clientConfig).Build(); //client.Connect().Wait(); GrainClient.Initialize(ClientConfiguration.LocalhostSilo()); Console.WriteLine("Client connected."); var game = new GameController(); //// mock //var nir = game.CreatePlayer("p1", "p1name").Result; //nir = game.CreatePlayer("p2", "p2name").Result; //nir = game.CreatePlayer("p3", "p3name").Result; //nir = game.CreatePlayer("p4", "p4name").Result; //game.CreateTeam("t1"); //nir = game.AddPlayerToTeam("p1", "t1").Result; //nir = game.AddPlayerToTeam("p2", "t1").Result; //nir = game.AddPlayerToTeam("p3", "t1").Result; //var players2 = game.ListPlayers("t1").Result; //Console.WriteLine(String.Join(", ", players2)); while (true) { var line = double.Parse(Console.ReadLine()); OperationResults.ServiceCallResult status = OperationResults.ServiceCallResult.ERROR; switch (line) { case 1: // CreatePlayer Console.WriteLine("CreatePlayer"); Console.WriteLine("Enter Player ID:"); var id = Console.ReadLine(); Console.WriteLine("Enter Player Name:"); var name = Console.ReadLine(); status = game.CreatePlayer(id, name).Result; if (status == OperationResults.ServiceCallResult.ERROR) { Console.WriteLine("error creating player"); } break; case 2: // CreateTeam Console.WriteLine("CreateTeam"); Console.WriteLine("Enter Team ID:"); game.CreateTeam(Console.ReadLine()); status = OperationResults.ServiceCallResult.OK; break; case 3: // AddPlayerToTeam Console.WriteLine("AddPlayerToTeam"); Console.WriteLine("Player ID:"); var playerId = Console.ReadLine(); Console.WriteLine("Team ID:"); var teamId = Console.ReadLine(); status = game.AddPlayerToTeam(playerId, teamId).Result; if (status == OperationResults.ServiceCallResult.ERROR) { Console.WriteLine("error AddPlayerToTeam"); } break; case 4: // RemovePlayerFromTeam Console.WriteLine("RemovePlayerFromTeam"); Console.WriteLine("Player ID:"); Console.WriteLine("Team ID:"); status = game.RemovePlayerFromTeam(Console.ReadLine(), Console.ReadLine()).Result; if (status == OperationResults.ServiceCallResult.ERROR) { Console.WriteLine("error RemovePlayerFromTeam"); } break; case 5: // ListPlayers Console.WriteLine("ListPlayers"); Console.WriteLine("Enter Team ID:"); var players = game.ListPlayers(Console.ReadLine()).Result; Console.WriteLine(String.Join(", ", players)); status = OperationResults.ServiceCallResult.OK; break; default: Console.WriteLine("no such command"); break; } } //// End //Console.WriteLine("\nPress Enter to terminate..."); //Console.ReadLine(); // Shut down //client.Close(); silo.ShutdownOrleansSilo(); }
internal EmbeddedActorSystem(IActorSystem system, AppDomain domain, SiloHost host) { this.system = system; this.domain = domain; this.host = host; }
internal ClusterActorSystem(ClusterConfiguration configuration) { current = this; Host = new SiloHost(Dns.GetHostName(), configuration); }
/// <summary> /// start primary /// </summary> public OrleansHostWrapper() { siloHost = new SiloHost("primary", ClusterConfiguration.LocalhostPrimarySilo()); }
public void Start(string siloName, ClusterConfiguration configuration) { this.host = new SiloHost(siloName, configuration); this.host.InitializeOrleansSilo(); this.host.StartOrleansSilo(catchExceptions: false); }
public void Dispose() { this.host?.Dispose(); this.host = null; }
/// <summary> /// Starts the silo. /// </summary> /// <param name="config"> /// The config. /// </param> /// <returns> /// Whether or not initialization was successful. /// </returns> /// <exception cref="OrleansException"> /// An exception occurred starting the silo. /// </exception> public bool Start(ClusterConfiguration config) { try { Trace.TraceInformation( $"Starting silo. Name: {this.siloName}, DeploymentId: {this.deploymentId}, Primary Endpoint: {this.SiloEndpoint}"); // Configure this Orleans silo instance if (config == null) { Trace.TraceInformation("Loading configuration from default locations."); this.host = new SiloHost(this.siloName); this.host.LoadOrleansConfig(); } else { Trace.TraceInformation("Using provided configuration."); this.host = new SiloHost(this.siloName, config); } // Configure the silo for the current environment. var generation = SiloAddress.AllocateNewGeneration(); this.host.SetSiloType(Silo.SiloType.Secondary); this.host.SetSiloLivenessType(config?.Globals.LivenessType??GlobalConfiguration.LivenessProviderType.AzureTable); this.host.SetReminderServiceType(config?.Globals.ReminderServiceType ?? GlobalConfiguration.ReminderServiceProviderType.AzureTable); this.host.SetDeploymentId(this.deploymentId, this.connectionString); this.host.SetSiloEndpoint(this.SiloEndpoint, generation); this.host.SetProxyEndpoint(this.ProxyEndpoint); this.host.InitializeOrleansSilo(); Trace.TraceInformation($"Successfully initialized Orleans silo '{this.siloName}'."); Trace.TraceInformation($"Starting Orleans silo '{this.siloName}'."); var ok = this.host.StartOrleansSilo(); if (ok) { Trace.TraceInformation( $"Successfully started Orleans silo '{this.siloName}'."); } else { Trace.TraceInformation($"Failed to start Orleans silo '{this.siloName}'"); } this.MonitorSilo(); return ok; } catch (Exception e) { this.stopped.TrySetException(e); this.Abort(); throw; } }
/// <summary> /// The abort. /// </summary> public void Abort() { this.host?.UnInitializeOrleansSilo(); this.host?.Dispose(); this.host = null; }
private bool ParseArguments(IEnumerable <string> args) { string deploymentId = null; string configFileName = "DevTestServerConfiguration.xml"; string siloName = Dns.GetHostName(); // Default to machine name int argPos = 1; foreach (string a in args) { if (a.StartsWith("-", StringComparison.Ordinal) || a.StartsWith("/", StringComparison.Ordinal)) { switch (a.ToLowerInvariant()) { case "/?": case "/help": case "-?": case "-help": // Query usage help return(false); default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } if (a.Contains("=")) { string[] split = a.Split('='); if (string.IsNullOrEmpty(split[1])) { Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } switch (split[0].ToLowerInvariant()) { case "deploymentid": deploymentId = split[1]; break; case "deploymentgroup": // TODO: Remove this at some point in future Console.WriteLine("Ignoring deprecated command line argument: " + a); break; default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } // unqualified arguments below else { switch (argPos) { case 1: siloName = a; argPos++; break; case 2: configFileName = a; argPos++; break; default: // Too many command line arguments Console.WriteLine("Too many command line arguments supplied: " + a); return(false); } } } this.siloHost = new SiloHost(siloName) { ConfigFileName = configFileName }; if (deploymentId != null) { this.siloHost.DeploymentId = deploymentId; } return(true); }
static void Main(string[] args) { var properties = new Dictionary <string, string>() { //["AdoInvariant"] = "System.Data.SqlClient", //["DataConnectionString"] = "Data Source=SQLLFISDEV,1460;Initial Catalog=TardisFlow;Persist Security Info=True;User ID=TardisFlowUsrRW;Password=6Sk&>3R-", //["UseJsonFormat"] = "true" ["DataConnectionString"] = "UseDevelopmentStorage=true", }; // First, configure and start a local silo var siloConfig = ClusterConfiguration.LocalhostPrimarySilo(); //siloConfig.Globals.RegisterStorageProvider<AdoNetStorageProvider>("OrleansSqlStorage", properties); siloConfig .Globals .RegisterStorageProvider <AzureTableStorage>( "OrleansAzureTableStorage", properties); //var custom = new Dictionary<string, object>() // { // ["directory"] = "wdqsdf" // }; //siloConfig // .Globals // .RegisterStorageProvider<Exploration.IoT.FileStorage.FileStorageProvider>("sd", custom); var silo = new SiloHost("TestSilo", siloConfig); silo.InitializeOrleansSilo(); silo.StartOrleansSilo(); Console.WriteLine("Silo started."); // Then configure and connect a client. var clientConfig = ClientConfiguration.LocalhostSilo(); var client = new ClientBuilder().UseConfiguration(clientConfig).Build(); client.Connect().Wait(); Console.WriteLine("Client connected."); // // This is the place for your test code. // var grain = client.GetGrain <IDeviceGrain>((long)0); //var deviceGrain_3 = client.GetGrain<IDeviceGrain>(3); //deviceGrain_3.JoinSystem("vehicle1").Wait(); //var deviceGrain_4 = client.GetGrain<IDeviceGrain>(4); //deviceGrain_4.JoinSystem("vehicle1").Wait(); //var deviceGrain_6 = client.GetGrain<IDeviceGrain>(6); //deviceGrain_6.JoinSystem("vehicle1").Wait(); //var observer = new SystemObserver(); //var observerRef = client.CreateObjectReference<ISystemObserver>(observer).Result; //var systemGrain = client.GetGrain<ISystemGrain>(0); //systemGrain.Subscribe(observerRef).Wait(); //var grain = client.GetGrain<IGrainDecoder>(0); while (true) { grain.SetTemperature(double.Parse(Console.ReadLine())); //grain.Decode(Console.ReadLine()); } Console.WriteLine("\nPress Enter to terminate..."); Console.ReadLine(); // Shut down client.Close(); silo.ShutdownOrleansSilo(); }
private bool ParseArguments(string[] args) { string deploymentId = null; string siloName = Dns.GetHostName(); // Default to machine name int argPos = 1; for (int i = 0; i < args.Length; i++) { string a = args[i]; if (a.StartsWith("-") || a.StartsWith("/")) { switch (a.ToLowerInvariant()) { case "/?": case "/help": case "-?": case "-help": // Query usage help return(false); default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } else if (a.Contains("=")) { string[] split = a.Split('='); if (String.IsNullOrEmpty(split[1])) { Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } switch (split[0].ToLowerInvariant()) { case "deploymentid": deploymentId = split[1]; break; default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } // unqualified arguments below else if (argPos == 1) { siloName = a; argPos++; } else { // Too many command line arguments Console.WriteLine("Too many command line arguments supplied: " + a); return(false); } } var config = ClusterConfiguration.LocalhostPrimarySilo(); config.AddMemoryStorageProvider(); siloHost = new SiloHost(siloName, config); if (deploymentId != null) { siloHost.DeploymentId = deploymentId; } return(true); }
internal ClusterActorSystem(IDisposable configurator, ClusterConfiguration configuration) { current = this; this.configurator = configurator; host = new SiloHost(Dns.GetHostName(), configuration); }
private bool ParseArguments(string[] args) { string deploymentId = null; string siloName = Dns.GetHostName(); // Default to machine name int argPos = 1; for (int i = 0; i < args.Length; i++) { string a = args[i]; if (a.StartsWith("-") || a.StartsWith("/")) { switch (a.ToLowerInvariant()) { case "/?": case "/help": case "-?": case "-help": // Query usage help return false; default: Console.WriteLine("Bad command line arguments supplied: " + a); return false; } } else if (a.Contains("=")) { string[] split = a.Split('='); if (String.IsNullOrEmpty(split[1])) { Console.WriteLine("Bad command line arguments supplied: " + a); return false; } switch (split[0].ToLowerInvariant()) { case "deploymentid": deploymentId = split[1]; break; default: Console.WriteLine("Bad command line arguments supplied: " + a); return false; } } // unqualified arguments below else if (argPos == 1) { siloName = a; argPos++; } else { // Too many command line arguments Console.WriteLine("Too many command line arguments supplied: " + a); return false; } } //集群启动 ClusterConfiguration config = new ClusterConfiguration(); string configpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $"{Path.GetFileNameWithoutExtension("OrleansConfiguration.xml")}.xml"); if (File.Exists(configpath)) config.LoadFromFile(configpath); else config = ClusterConfiguration.LocalhostPrimarySilo(); config.AddMemoryStorageProvider(); siloHost = new SiloHost(siloName, config); if (deploymentId != null) siloHost.DeploymentId = deploymentId; return true; }
private bool ParseArguments(string[] args) { string deploymentId = null; string siloName = Dns.GetHostName(); // Default to machine name int argPos = 1; for (int i = 0; i < args.Length; i++) { string a = args[i]; if (a.StartsWith("-") || a.StartsWith("/")) { switch (a.ToLowerInvariant()) { case "/?": case "/help": case "-?": case "-help": // Query usage help return(false); default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } else if (a.Contains("=")) { string[] split = a.Split('='); if (String.IsNullOrEmpty(split[1])) { Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } switch (split[0].ToLowerInvariant()) { case "deploymentid": deploymentId = split[1]; break; default: Console.WriteLine("Bad command line arguments supplied: " + a); return(false); } } // unqualified arguments below else if (argPos == 1) { siloName = a; argPos++; } else { // Too many command line arguments Console.WriteLine("Too many command line arguments supplied: " + a); return(false); } } var config = ClusterConfiguration.LocalhostPrimarySilo(); //Comment out either one of these //JSON Files var props = new Dictionary <string, string>(); props["RootDirectory"] = @".\Samples.FileStorage"; config.Globals.RegisterStorageProvider <Samples.StorageProviders.OrleansFileStorage>("TestStore", props); // //MongoDB // var props = new Dictionary<string, string>(); // props["Database"] = "orleanssamples"; // props["ConnectionString"] = "mongodb://localhost:27017/"; // config.Globals.RegisterStorageProvider<Samples.StorageProviders.MongoDBStorage>("TestStore", props); siloHost = new SiloHost(siloName, config); if (deploymentId != null) { siloHost.DeploymentId = deploymentId; } return(true); }