From e77b5d990d275f3a900d844e955bb92f6dba08aa Mon Sep 17 00:00:00 2001 From: MW Date: Sat, 21 Feb 2009 18:41:28 +0000 Subject: [PATCH] More Grid server refactoring --- OpenSim/Grid/GridServer/GridDBService.cs | 2 +- .../Grid/GridServer/GridMessagingModule.cs | 16 ++++++++--- OpenSim/Grid/GridServer/GridRestModule.cs | 15 +++++++++-- OpenSim/Grid/GridServer/GridServerBase.cs | 22 ++++++++------- OpenSim/Grid/GridServer/GridXmlRpcModule.cs | 27 ++++++++++++++----- .../{IGridCore.cs => IUGAIMCore.cs} | 2 +- 6 files changed, 61 insertions(+), 23 deletions(-) rename OpenSim/Grid/GridServer/{IGridCore.cs => IUGAIMCore.cs} (84%) diff --git a/OpenSim/Grid/GridServer/GridDBService.cs b/OpenSim/Grid/GridServer/GridDBService.cs index 94c8dcdaf5..cc244a9294 100644 --- a/OpenSim/Grid/GridServer/GridDBService.cs +++ b/OpenSim/Grid/GridServer/GridDBService.cs @@ -197,7 +197,7 @@ namespace OpenSim.Grid.GridServer return regions; } - public DataResponse LoginRegion(RegionProfileData sim, RegionProfileData existingSim) + public DataResponse AddUpdateRegion(RegionProfileData sim, RegionProfileData existingSim) { DataResponse insertResponse = DataResponse.RESPONSE_ERROR; foreach (IGridDataPlugin plugin in _plugins) diff --git a/OpenSim/Grid/GridServer/GridMessagingModule.cs b/OpenSim/Grid/GridServer/GridMessagingModule.cs index 040f4e03aa..6d9a7239c9 100644 --- a/OpenSim/Grid/GridServer/GridMessagingModule.cs +++ b/OpenSim/Grid/GridServer/GridMessagingModule.cs @@ -42,7 +42,7 @@ namespace OpenSim.Grid.GridServer private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); protected GridDBService m_gridDBService; - protected IGridCore m_gridCore; + protected IUGAIMCore m_gridCore; protected GridConfig m_config; @@ -65,19 +65,29 @@ namespace OpenSim.Grid.GridServer { } - public void Initialise(string opensimVersion, GridDBService gridDBService, IGridCore gridCore, GridConfig config) + public void Initialise(string opensimVersion, GridDBService gridDBService, IUGAIMCore gridCore, GridConfig config) { m_opensimVersion = opensimVersion; m_gridDBService = gridDBService; m_gridCore = gridCore; m_config = config; + RegisterHandlers(); + } + + public void PostInitialise() + { + + } + + public void RegisterHandlers() + { + //have these in separate method as some servers restart the http server and reregister all the handlers. m_httpServer = m_gridCore.GetHttpServer(); m_gridCore.RegisterInterface(this); // Message Server ---> Grid Server m_httpServer.AddXmlRPCHandler("register_messageserver", XmlRPCRegisterMessageServer); m_httpServer.AddXmlRPCHandler("deregister_messageserver", XmlRPCDeRegisterMessageServer); - } public XmlRpcResponse XmlRPCRegisterMessageServer(XmlRpcRequest request) diff --git a/OpenSim/Grid/GridServer/GridRestModule.cs b/OpenSim/Grid/GridServer/GridRestModule.cs index d0bcbe8ef9..5894c4b61d 100644 --- a/OpenSim/Grid/GridServer/GridRestModule.cs +++ b/OpenSim/Grid/GridServer/GridRestModule.cs @@ -45,7 +45,7 @@ namespace OpenSim.Grid.GridServer private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private GridDBService m_gridDBService; - private IGridCore m_gridCore; + private IUGAIMCore m_gridCore; protected GridConfig m_config; @@ -66,12 +66,23 @@ namespace OpenSim.Grid.GridServer { } - public void Initialise(string opensimVersion, GridDBService gridDBService, IGridCore gridCore, GridConfig config) + public void Initialise(string opensimVersion, GridDBService gridDBService, IUGAIMCore gridCore, GridConfig config) { m_opensimVersion = opensimVersion; m_gridDBService = gridDBService; m_gridCore = gridCore; m_config = config; + RegisterHandlers(); + } + + public void PostInitialise() + { + + } + + public void RegisterHandlers() + { + //have these in separate method as some servers restart the http server and reregister all the handlers. m_httpServer = m_gridCore.GetHttpServer(); m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/sims/", RestGetSimMethod)); diff --git a/OpenSim/Grid/GridServer/GridServerBase.cs b/OpenSim/Grid/GridServer/GridServerBase.cs index 6c3584dae3..f118c90ff5 100644 --- a/OpenSim/Grid/GridServer/GridServerBase.cs +++ b/OpenSim/Grid/GridServer/GridServerBase.cs @@ -39,7 +39,7 @@ namespace OpenSim.Grid.GridServer { /// /// - public class GridServerBase : BaseOpenSimServer, IGridCore + public class GridServerBase : BaseOpenSimServer, IUGAIMCore { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); @@ -163,6 +163,10 @@ namespace OpenSim.Grid.GridServer m_gridRestModule = new GridRestModule(); m_gridRestModule.Initialise(m_version, m_gridDBService, this, m_config); + + m_gridMessageModule.PostInitialise(); + m_gridXmlRpcModule.PostInitialise(); + m_gridRestModule.PostInitialise(); } public void CheckSims(object sender, ElapsedEventArgs e) @@ -207,8 +211,8 @@ namespace OpenSim.Grid.GridServer foreach (IGridPlugin plugin in m_plugins) plugin.Dispose(); } - #region IGridCore - private readonly Dictionary m_gridInterfaces = new Dictionary(); + #region IUGAIMCore + private readonly Dictionary m_moduleInterfaces = new Dictionary(); /// /// Register an Module interface. @@ -217,20 +221,20 @@ namespace OpenSim.Grid.GridServer /// public void RegisterInterface(T iface) { - lock (m_gridInterfaces) + lock (m_moduleInterfaces) { - if (!m_gridInterfaces.ContainsKey(typeof(T))) + if (!m_moduleInterfaces.ContainsKey(typeof(T))) { - m_gridInterfaces.Add(typeof(T), iface); + m_moduleInterfaces.Add(typeof(T), iface); } } } public bool TryGet(out T iface) { - if (m_gridInterfaces.ContainsKey(typeof(T))) + if (m_moduleInterfaces.ContainsKey(typeof(T))) { - iface = (T)m_gridInterfaces[typeof(T)]; + iface = (T)m_moduleInterfaces[typeof(T)]; return true; } iface = default(T); @@ -239,7 +243,7 @@ namespace OpenSim.Grid.GridServer public T Get() { - return (T)m_gridInterfaces[typeof(T)]; + return (T)m_moduleInterfaces[typeof(T)]; } public BaseHttpServer GetHttpServer() diff --git a/OpenSim/Grid/GridServer/GridXmlRpcModule.cs b/OpenSim/Grid/GridServer/GridXmlRpcModule.cs index c2cd1d671e..86df81c436 100644 --- a/OpenSim/Grid/GridServer/GridXmlRpcModule.cs +++ b/OpenSim/Grid/GridServer/GridXmlRpcModule.cs @@ -46,7 +46,7 @@ namespace OpenSim.Grid.GridServer private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private GridDBService m_gridDBService; - private IGridCore m_gridCore; + private IUGAIMCore m_gridCore; protected GridConfig m_config; @@ -67,12 +67,23 @@ namespace OpenSim.Grid.GridServer { } - public void Initialise(string opensimVersion, GridDBService gridDBService, IGridCore gridCore, GridConfig config) + public void Initialise(string opensimVersion, GridDBService gridDBService, IUGAIMCore gridCore, GridConfig config) { m_opensimVersion = opensimVersion; m_gridDBService = gridDBService; m_gridCore = gridCore; m_config = config; + RegisterHandlers(); + } + + public void PostInitialise() + { + + } + + public void RegisterHandlers() + { + //have these in separate method as some servers restart the http server and reregister all the handlers. m_httpServer = m_gridCore.GetHttpServer(); m_httpServer.AddXmlRPCHandler("simulator_login", XmlRpcSimulatorLoginMethod); @@ -81,7 +92,7 @@ namespace OpenSim.Grid.GridServer m_httpServer.AddXmlRPCHandler("map_block", XmlRpcMapBlockMethod); m_httpServer.AddXmlRPCHandler("search_for_region_by_name", XmlRpcSearchForRegionMethod); } - + /// /// Returns a XML String containing a list of the neighbouring regions /// @@ -305,7 +316,7 @@ namespace OpenSim.Grid.GridServer return e.XmlRpcErrorResponse; } - DataResponse insertResponse = m_gridDBService.LoginRegion(sim, existingSim); + DataResponse insertResponse = m_gridDBService.AddUpdateRegion(sim, existingSim); switch (insertResponse) { @@ -557,7 +568,7 @@ namespace OpenSim.Grid.GridServer //TheSim = GetRegion(new UUID((string) requestData["UUID"])); uuid = requestData["UUID"].ToString(); m_log.InfoFormat("[LOGOUT]: Logging out region: {0}", uuid); -// logToDB((new LLUUID((string)requestData["UUID"])).ToString(),"XmlRpcDeleteRegionMethod","", 5,"Attempting delete with UUID."); + // logToDB((new LLUUID((string)requestData["UUID"])).ToString(),"XmlRpcDeleteRegionMethod","", 5,"Attempting delete with UUID."); } else { @@ -849,13 +860,15 @@ namespace OpenSim.Grid.GridServer } private XmlRpcResponse m_xmlRpcErrorResponse; - public LoginException(string message, string xmlRpcMessage) : base(message) + public LoginException(string message, string xmlRpcMessage) + : base(message) { // FIXME: Might be neater to refactor and put the method inside here m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage); } - public LoginException(string message, string xmlRpcMessage, Exception e) : base(message, e) + public LoginException(string message, string xmlRpcMessage, Exception e) + : base(message, e) { // FIXME: Might be neater to refactor and put the method inside here m_xmlRpcErrorResponse = GridXmlRpcModule.ErrorResponse(xmlRpcMessage); diff --git a/OpenSim/Grid/GridServer/IGridCore.cs b/OpenSim/Grid/GridServer/IUGAIMCore.cs similarity index 84% rename from OpenSim/Grid/GridServer/IGridCore.cs rename to OpenSim/Grid/GridServer/IUGAIMCore.cs index dd0d140818..12cd19bb8d 100644 --- a/OpenSim/Grid/GridServer/IGridCore.cs +++ b/OpenSim/Grid/GridServer/IUGAIMCore.cs @@ -3,7 +3,7 @@ using OpenSim.Framework.Servers; namespace OpenSim.Grid.GridServer { - public interface IGridCore + public interface IUGAIMCore { T Get(); void RegisterInterface(T iface);