public INeo4jInstance Create(Neo4jDeploymentRequest request) { INeo4jInstance instance; switch (request.Version.Architecture) { case Neo4jArchitecture.V3: instance = javaInstanceFunc(request); const string configFile = Neo4jConfigFile; instance.Configure(configFile, "dbms.security.auth_enabled", "false"); instance.Configure(configFile, "dbms.allow_format_migration", "true"); instance.Configure(configFile, "dbms.directories.import", null); instance.Configure(configFile, "dbms.connector.http.listen_address", $":{request.Endpoints.HttpEndpoint.Port}"); if (request.Endpoints.BoltEndpoint != null) { instance.Configure(configFile, "dbms.connector.bolt.listen_address", $":{request.Endpoints.BoltEndpoint.Port}"); instance.Configure(configFile, "dbms.connector.bolt.enabled", "true"); } else { instance.Configure(configFile, "dbms.connector.bolt.enabled", "false"); } if (request.Endpoints.HttpsEndpoint != null) { instance.Configure(configFile, "dbms.connector.https.listen_address", $":{request.Endpoints.HttpsEndpoint.Port}"); instance.Configure(configFile, "dbms.connector.https.enabled", "true"); } else { instance.Configure(configFile, "dbms.connector.https.enabled", "false"); } break; default: throw new ArgumentException($"Architecture: {request.Version.Architecture} unknown"); } return(instance); }
public string Create(Neo4jDeploymentRequest request) { var id = Guid.NewGuid().ToString(); Helper.Download(request.Version, appSettings.GetString(AppSettingsKeys.Neo4jBasePath)); Helper.Extract(request.Version, appSettings.GetString(AppSettingsKeys.Neo4jBasePath)); var targetDeploymentPath = GetDeploymentPath(id); Helper.SafeDelete(targetDeploymentPath); Helper.CopyDeployment(request.Version, appSettings.GetString(AppSettingsKeys.Neo4jBasePath), targetDeploymentPath); request.Neo4jFolder = Directory.GetDirectories(targetDeploymentPath) .First(f => f.Contains(request.Version.Version, StringComparison.OrdinalIgnoreCase)); lock (_object) { short offset = 0; while (true) { if (this.All(i => i.Value.Offset != offset)) { break; } offset++; } request.Offset = offset; request.Endpoints = new Neo4jEndpoints { HttpEndpoint = new Uri($"http://localhost:{appSettings.Get<long>(AppSettingsKeys.StartHttpPort) + offset}"), BoltEndpoint = new Uri($"bolt://localhost:{appSettings.Get<long>(AppSettingsKeys.StartBoltPort) + offset}"), }; var instance = neo4jInstanceFactory.Create(request); TryAdd(id, instance); return(id); } }