From 591e1704283330b0120e99819ff68404d1c92d76 Mon Sep 17 00:00:00 2001 From: MW Date: Fri, 8 Jun 2007 16:55:44 +0000 Subject: Re-imported OpenGridServices from trunk --- OpenGridServices/ServiceManager/ServiceManager.cs | 259 +++++++++++++++++++++ .../ServiceManager/ServiceManager.csproj | 205 ++++++++++++++++ .../ServiceManager/ServiceManager.csproj.mine | 103 ++++++++ .../ServiceManager/ServiceManager.csproj.r858 | 96 ++++++++ .../ServiceManager/ServiceManager.csproj.r921 | 100 ++++++++ .../ServiceManager/ServiceManager.csproj.user | 12 + .../ServiceManager/ServiceManager.exe.build | 44 ++++ 7 files changed, 819 insertions(+) create mode 100644 OpenGridServices/ServiceManager/ServiceManager.cs create mode 100644 OpenGridServices/ServiceManager/ServiceManager.csproj create mode 100644 OpenGridServices/ServiceManager/ServiceManager.csproj.mine create mode 100644 OpenGridServices/ServiceManager/ServiceManager.csproj.r858 create mode 100644 OpenGridServices/ServiceManager/ServiceManager.csproj.r921 create mode 100644 OpenGridServices/ServiceManager/ServiceManager.csproj.user create mode 100644 OpenGridServices/ServiceManager/ServiceManager.exe.build (limited to 'OpenGridServices/ServiceManager') diff --git a/OpenGridServices/ServiceManager/ServiceManager.cs b/OpenGridServices/ServiceManager/ServiceManager.cs new file mode 100644 index 0000000..8cb9c80 --- /dev/null +++ b/OpenGridServices/ServiceManager/ServiceManager.cs @@ -0,0 +1,259 @@ +/* +* Copyright (c) Contributors, http://www.openmetaverse.org/ +* See CONTRIBUTORS.TXT for a full list of copyright holders. +* +* Redistribution and use in source and binary forms, with or without +* modification, are permitted provided that the following conditions are met: +* * Redistributions of source code must retain the above copyright +* notice, this list of conditions and the following disclaimer. +* * Redistributions in binary form must reproduce the above copyright +* notice, this list of conditions and the following disclaimer in the +* documentation and/or other materials provided with the distribution. +* * Neither the name of the OpenSim Project nor the +* names of its contributors may be used to endorse or promote products +* derived from this software without specific prior written permission. +* +* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY +* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY +* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +* +*/ +using System; +using System.Diagnostics; +using System.Threading; +using System.ServiceProcess; +using System.Xml; +using System.IO; +using libsecondlife; +using OpenSim.GenericConfig; + +public class OpenGridMasterService : System.ServiceProcess.ServiceBase { + + private Thread ServiceWorkerThread; + private static string GridURL; // URL of grid server + private static string GridSimKey; // key sent from Grid>Sim + private static string SimGridKey; // key sent Sim>Grid + private static string AssetURL; // URL of asset server + private static string UserSendKey; // key sent from user>sim + private static string UserRecvKey; // key sent from sim>user + + public OpenGridMasterService() + { + CanPauseAndContinue = false; + ServiceName = "OpenGridServices-master"; + } + + private void InitializeComponent() + { + this.CanPauseAndContinue = false; + this.CanShutdown = true; + this.ServiceName = "OpenGridServices-master"; + } + + protected override void OnStart(string[] args) + { + ServiceWorkerThread = new Thread(new ThreadStart(MainServiceThread)); + ServiceWorkerThread.Start(); + } + + protected override void OnStop() + { + ServiceWorkerThread.Abort(); + } + + private void MainServiceThread() + { + try { + StreamReader reader=new StreamReader("opengrid-master-cfg.xml"); + + string configxml = reader.ReadToEnd(); + XmlDocument doc = new XmlDocument(); + doc.LoadXml(configxml); + XmlNode rootnode = doc.FirstChild; + if (rootnode.Name != "regions") + { + EventLog.WriteEntry("ERROR! bad XML in opengrid-master-cfg.xml - expected regions tag"); + Console.WriteLine("Sorry, could not startup the service - please check your opengrid-master-cfg.xml file: missing regions tag"); + (new ServiceController("OpenGridServices-master")).Stop(); + } + + for(int i=0; i<=rootnode.ChildNodes.Count; i++) + { + if(rootnode.ChildNodes.Item(i).Name != "region") { + EventLog.WriteEntry("nonfatal error - unexpected tag inside regions block of opengrid-master-cfg.xml"); + (new ServiceController("OpenGridServices-master")).Stop(); + } + } + } catch(Exception e) { + Console.WriteLine(e.ToString()); + (new ServiceController("OpenGridServices-master")).Stop(); + } + + } + + private static string SetupGrid() + { + Console.WriteLine("Running external program (OpenGridServices.GridServer.exe) to configure the grid server"); + try { + Process p = new Process(); + + p.StartInfo.Arguments = "-setuponly"; + p.StartInfo.FileName = "OpenGridServices.GridServer.exe"; + p.Start(); + + p.StartInfo.Arguments = "-dumpxmlconf"; + p.Start(); + + XmlConfig GridConf = new XmlConfig("opengrid-cfg.xml"); + GridConf.LoadData(); + GridURL="http://" + GridConf.GetAttribute("ListenAddr") + ":" + GridConf.GetAttribute("ListenPort") + "/"; + + StreamReader reader=new StreamReader("opengrid-cfg.xml"); + string configxml = reader.ReadToEnd(); + + return configxml; + } catch(Exception e) { + Console.WriteLine("An error occurred while running the grid server, please rectify it and try again"); + Console.WriteLine(e.ToString()); + Environment.Exit(1); + } + return ""; + } + + private static string SetupUser() + { + return ""; + } + + private static string SetupAsset() + { + return ""; + } + + private static string SetupRegion() + { + string regionname; + ulong regionlocx; + ulong regionlocy; + string default_terrain; + uint terrain_multiplier; + uint baseport; + + string listenaddr; + string simconfigxml; + LLUUID SimUUID; + + Console.WriteLine("Setting up region servers"); + Console.Write("Please specify a path to store your region data (e.g /etc/opensim/regions: "); + string regionpath=Console.ReadLine(); + + Console.Write("How many regions would you like to configure now? "); + int numofregions=Convert.ToInt16(Console.ReadLine()); + + Console.Write("What port should the region servers start listening at (first region is normally 9000, then 9001 the second etc, both TCP+UDP): "); + baseport=Convert.ToUInt16(Console.ReadLine()); + + + listenaddr=Console.ReadLine(); + + Console.WriteLine("Now ready to configure regions, please answer the questions about each region in turn"); + for(int i=0; i<=numofregions; i++) { + Console.WriteLine("Configuring region number " + i.ToString()); + + Console.Write("Region name: "); + regionname=Console.ReadLine(); + + Console.Write("Region location X: "); + regionlocx=(ulong)Convert.ToUInt32(Console.ReadLine()); + + Console.Write("Region location Y: "); + regionlocy=(ulong)Convert.ToUInt32(Console.ReadLine()); + + Console.Write("Default terrain file: "); + default_terrain=Console.ReadLine(); + terrain_multiplier=Convert.ToUInt16(Console.ReadLine()); + + SimUUID=LLUUID.Random(); + + simconfigxml=""; + + } + + return ""; + } + + public static void InitSetup() + { + string choice=""; + + string GridInfo; + string UserInfo; + string AssetInfo; + string RegionInfo; + + bool grid=false; + bool user=false; + bool asset=false; + bool region=false; + while(choice!="OK") + { + Console.Clear(); + Console.WriteLine("Please select the components you would like to run on this server:\n"); + + Console.WriteLine("1 - [" + (grid ? "X" : " ") + "] Grid server - this service handles co-ordinates of regions/sims on the grid"); + Console.WriteLine("2 - [" + (user ? "X" : " ") + "] User server - this service handles user login, profiles, inventory and IM"); + Console.WriteLine("3 - [" + (asset ? "X" : " ") + "] Asset server - this service handles storage of assets such as textures, objects, sounds, scripts"); + Console.WriteLine("4 - [" + (region ? "X" : " ") + "] Region server - this is the main opensim server and can run without the above services, it handles physics simulation, terrain, building and other such features"); + + + Console.Write("Type a number to toggle a choice or type OK to accept your current choices: "); + choice = Console.ReadLine(); + switch(choice) + { + case "1": + grid = (!grid); + break; + + case "2": + user = (!user); + break; + + case "3": + asset = (!asset); + break; + + case "4": + region = (!region); + break; + } + } + + if(grid) GridInfo = SetupGrid(); + if(user) UserInfo = SetupUser(); + if(asset) AssetInfo = SetupAsset(); + if(region) RegionInfo = SetupRegion(); + } + + public static void Main() + { + if(!File.Exists("opengrid-master-cfg.xml")) + { + Console.WriteLine("Could not find a config file, running initial setup"); + InitSetup(); + } + Console.WriteLine("Starting up OGS master service"); + try { + ServiceBase.Run(new OpenGridMasterService()); + } catch(Exception e) { + Console.WriteLine("An error occured while initialising OGS master service."); + Console.WriteLine(e.ToString()); + } + } +} diff --git a/OpenGridServices/ServiceManager/ServiceManager.csproj b/OpenGridServices/ServiceManager/ServiceManager.csproj new file mode 100644 index 0000000..0b89633 --- /dev/null +++ b/OpenGridServices/ServiceManager/ServiceManager.csproj @@ -0,0 +1,205 @@ +<<<<<<< .mine + + + Local + 8.0.50727 + 2.0 + {E141F4EE-0000-0000-0000-000000000000} + Debug + AnyCPU + + + + + ServiceManager + JScript + Grid + IE50 + false + Exe + + + ServiceManager + + + + + + + False + 285212672 + False + + + TRACE;DEBUG + + + True + 4096 + False + ..\..\bin\ + False + False + False + 4 + + + + + False + 285212672 + False + + + TRACE + + + False + 4096 + True + ..\..\bin\ + False + False + False + 4 + + + + + + System.dll + False + + + System.ServiceProcess.dll + False + + + System.Xml.dll + False + + + ..\..\bin\libsecondlife.dll + False + + + OpenSim.GenericConfig.Xml.dll + False + + + + + + + Component + + + + + + + + + +======= + + + Local + 8.0.50727 + 2.0 + {E141F4EE-0000-0000-0000-000000000000} + Debug + AnyCPU + + + + ServiceManager + JScript + Grid + IE50 + false + Exe + + ServiceManager + + + + + + False + 285212672 + False + + + TRACE;DEBUG + + True + 4096 + False + ..\..\bin\ + False + False + False + 4 + + + + False + 285212672 + False + + + TRACE + + False + 4096 + True + ..\..\bin\ + False + False + False + 4 + + + + + System.dll + False + + + System.ServiceProcess.dll + False + + + System.Xml.dll + False + + + ..\..\bin\libsecondlife.dll + False + + + OpenSim.GenericConfig.Xml.dll + False + + + ..\..\bin\OpenSim.Framework.dll + False + + + + + + + Code + + + + + + + + + + +>>>>>>> .r921 diff --git a/OpenGridServices/ServiceManager/ServiceManager.csproj.mine b/OpenGridServices/ServiceManager/ServiceManager.csproj.mine new file mode 100644 index 0000000..f8a4925 --- /dev/null +++ b/OpenGridServices/ServiceManager/ServiceManager.csproj.mine @@ -0,0 +1,103 @@ + + + Local + 8.0.50727 + 2.0 + {E141F4EE-0000-0000-0000-000000000000} + Debug + AnyCPU + + + + + ServiceManager + JScript + Grid + IE50 + false + Exe + + + ServiceManager + + + + + + + False + 285212672 + False + + + TRACE;DEBUG + + + True + 4096 + False + ..\..\bin\ + False + False + False + 4 + + + + + False + 285212672 + False + + + TRACE + + + False + 4096 + True + ..\..\bin\ + False + False + False + 4 + + + + + + System.dll + False + + + System.ServiceProcess.dll + False + + + System.Xml.dll + False + + + ..\..\bin\libsecondlife.dll + False + + + OpenSim.GenericConfig.Xml.dll + False + + + + + + + Component + + + + + + + + + + \ No newline at end of file diff --git a/OpenGridServices/ServiceManager/ServiceManager.csproj.r858 b/OpenGridServices/ServiceManager/ServiceManager.csproj.r858 new file mode 100644 index 0000000..8d6a135 --- /dev/null +++ b/OpenGridServices/ServiceManager/ServiceManager.csproj.r858 @@ -0,0 +1,96 @@ + + + Local + 8.0.50727 + 2.0 + {7C8EA758-0000-0000-0000-000000000000} + Debug + AnyCPU + + + + ServiceManager + JScript + Grid + IE50 + false + Exe + + ServiceManager + + + + + + False + 285212672 + False + + + TRACE + + False + 4096 + True + ../../bin/ + False + False + False + 4 + + + + False + 285212672 + False + + + TRACE;DEBUG + + True + 4096 + False + ../../bin/ + False + False + False + 4 + + + + + System.dll + False + + + System.ServiceProcess.dll + False + + + System.Xml.dll + False + + + ..\..\bin\libsecondlife.dll + False + + + OpenSim.GenericConfig.Xml.dll + False + + + + + + + Code + + + + + + + + + + diff --git a/OpenGridServices/ServiceManager/ServiceManager.csproj.r921 b/OpenGridServices/ServiceManager/ServiceManager.csproj.r921 new file mode 100644 index 0000000..0e7ff5a --- /dev/null +++ b/OpenGridServices/ServiceManager/ServiceManager.csproj.r921 @@ -0,0 +1,100 @@ + + + Local + 8.0.50727 + 2.0 + {E141F4EE-0000-0000-0000-000000000000} + Debug + AnyCPU + + + + ServiceManager + JScript + Grid + IE50 + false + Exe + + ServiceManager + + + + + + False + 285212672 + False + + + TRACE;DEBUG + + True + 4096 + False + ..\..\bin\ + False + False + False + 4 + + + + False + 285212672 + False + + + TRACE + + False + 4096 + True + ..\..\bin\ + False + False + False + 4 + + + + + System.dll + False + + + System.ServiceProcess.dll + False + + + System.Xml.dll + False + + + ..\..\bin\libsecondlife.dll + False + + + OpenSim.GenericConfig.Xml.dll + False + + + ..\..\bin\OpenSim.Framework.dll + False + + + + + + + Code + + + + + + + + + + diff --git a/OpenGridServices/ServiceManager/ServiceManager.csproj.user b/OpenGridServices/ServiceManager/ServiceManager.csproj.user new file mode 100644 index 0000000..1b6b14d --- /dev/null +++ b/OpenGridServices/ServiceManager/ServiceManager.csproj.user @@ -0,0 +1,12 @@ + + + Debug + AnyCPU + C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\trunk\bin\ + 8.0.50727 + ProjectFiles + 0 + + + + diff --git a/OpenGridServices/ServiceManager/ServiceManager.exe.build b/OpenGridServices/ServiceManager/ServiceManager.exe.build new file mode 100644 index 0000000..5e1dd72 --- /dev/null +++ b/OpenGridServices/ServiceManager/ServiceManager.exe.build @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.1