Moved GridInfo service from where it was to Handlers/Grid

slimupdates
Diva Canto 2010-01-10 19:19:34 -08:00
parent 7624184b15
commit 49618dc102
9 changed files with 143 additions and 80 deletions

View File

@ -68,7 +68,6 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager
protected BaseHttpServer m_httpServer; protected BaseHttpServer m_httpServer;
protected CommunicationsManager m_commsManager; protected CommunicationsManager m_commsManager;
protected GridInfoService m_gridInfoService;
protected IRegionCreator m_regionCreator; protected IRegionCreator m_regionCreator;
@ -201,11 +200,6 @@ namespace OpenSim.ApplicationPlugins.CreateCommsManager
private void CreateGridInfoService() private void CreateGridInfoService()
{ {
// provide grid info
m_gridInfoService = new GridInfoService(m_openSim.ConfigSource.Source);
m_httpServer.AddXmlRPCHandler("get_grid_info", m_gridInfoService.XmlRpcGridInfoMethod);
m_httpServer.AddStreamHandler(
new RestStreamHandler("GET", "/get_grid_info", m_gridInfoService.RestGetGridInfoMethod));
} }
} }
} }

View File

@ -66,8 +66,6 @@ namespace OpenSim.Grid.UserServer
public UserLoginService m_loginService; public UserLoginService m_loginService;
public MessageServersConnector m_messagesService; public MessageServersConnector m_messagesService;
protected GridInfoServiceModule m_gridInfoService;
protected UserServerCommandModule m_consoleCommandModule; protected UserServerCommandModule m_consoleCommandModule;
protected UserServerEventDispatchModule m_eventDispatcher; protected UserServerEventDispatchModule m_eventDispatcher;
@ -213,9 +211,6 @@ namespace OpenSim.Grid.UserServer
m_messagesService = new MessageServersConnector(); m_messagesService = new MessageServersConnector();
m_messagesService.Initialise(this); m_messagesService.Initialise(this);
m_gridInfoService = new GridInfoServiceModule();
m_gridInfoService.Initialise(this);
} }
protected virtual void StartOtherComponents(IInterServiceInventoryServices inventoryService) protected virtual void StartOtherComponents(IInterServiceInventoryServices inventoryService)
@ -252,7 +247,6 @@ namespace OpenSim.Grid.UserServer
m_userDataBaseService.PostInitialise(); m_userDataBaseService.PostInitialise();
m_messagesService.PostInitialise(); m_messagesService.PostInitialise();
m_eventDispatcher.PostInitialise(); //it will register event handlers in here m_eventDispatcher.PostInitialise(); //it will register event handlers in here
m_gridInfoService.PostInitialise();
m_userManager.PostInitialise(); m_userManager.PostInitialise();
m_avatarAppearanceModule.PostInitialise(); m_avatarAppearanceModule.PostInitialise();
m_friendsModule.PostInitialise(); m_friendsModule.PostInitialise();
@ -266,7 +260,6 @@ namespace OpenSim.Grid.UserServer
m_friendsModule.RegisterHandlers(m_httpServer); m_friendsModule.RegisterHandlers(m_httpServer);
m_avatarAppearanceModule.RegisterHandlers(m_httpServer); m_avatarAppearanceModule.RegisterHandlers(m_httpServer);
m_messagesService.RegisterHandlers(m_httpServer); m_messagesService.RegisterHandlers(m_httpServer);
m_gridInfoService.RegisterHandlers(m_httpServer);
} }
public override void ShutdownSpecific() public override void ShutdownSpecific()

View File

@ -85,8 +85,6 @@ namespace OpenSim
protected ConfigurationLoader m_configLoader; protected ConfigurationLoader m_configLoader;
protected GridInfoService m_gridInfoService;
public ConsoleCommand CreateAccount = null; public ConsoleCommand CreateAccount = null;
protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>(); protected List<IApplicationPlugin> m_plugins = new List<IApplicationPlugin>();

View File

@ -63,6 +63,7 @@
<RegionModule id="HypergridServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid.HypergridServiceInConnectorModule" /> \ <RegionModule id="HypergridServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid.HypergridServiceInConnectorModule" /> \
<RegionModule id="LLLoginServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Login.LLLoginServiceInConnectorModule" /> \ <RegionModule id="LLLoginServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Login.LLLoginServiceInConnectorModule" /> \
<RegionModule id="SimulationServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Simulation.SimulationServiceInConnectorModule" /> \ <RegionModule id="SimulationServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Simulation.SimulationServiceInConnectorModule" /> \
<RegionModule id="GridInfoServiceInConnectorModule" type="OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid.GridInfoServiceInConnectorModule" /> \
</Extension> </Extension>

View File

@ -0,0 +1,123 @@
/*
* Copyright (c) Contributors, http://opensimulator.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 OpenSimulator 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.Reflection;
using System.Collections.Generic;
using log4net;
using Nini.Config;
using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Region.Framework.Scenes;
using OpenSim.Region.Framework.Interfaces;
using OpenSim.Server.Base;
using OpenSim.Server.Handlers.Base;
using OpenSim.Server.Handlers.Grid;
using OpenSim.Services.Interfaces;
namespace OpenSim.Region.CoreModules.ServiceConnectorsIn.Grid
{
public class GridInfoServiceInConnectorModule : ISharedRegionModule
{
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
private static bool m_Enabled = false;
private IConfigSource m_Config;
bool m_Registered = false;
#region IRegionModule interface
public void Initialise(IConfigSource config)
{
//// This module is only on for standalones in hypergrid mode
//enabled = (!config.Configs["Startup"].GetBoolean("gridmode", true)) &&
// config.Configs["Startup"].GetBoolean("hypergrid", true);
//m_log.DebugFormat("[RegionInventoryService]: enabled? {0}", enabled);
m_Config = config;
IConfig moduleConfig = config.Configs["Modules"];
if (moduleConfig != null)
{
m_Enabled = moduleConfig.GetBoolean("GridInfoServiceInConnector", false);
if (m_Enabled)
{
m_log.Info("[GRIDINFO IN CONNECTOR]: GridInfo Service In Connector enabled");
}
}
}
public void PostInitialise()
{
}
public void Close()
{
}
public Type ReplaceableInterface
{
get { return null; }
}
public string Name
{
get { return "GridInfoService"; }
}
public void AddRegion(Scene scene)
{
if (!m_Enabled)
return;
}
public void RemoveRegion(Scene scene)
{
if (!m_Enabled)
return;
}
public void RegionLoaded(Scene scene)
{
if (!m_Enabled)
return;
if (!m_Registered)
{
m_Registered = true;
m_log.Info("[GridInfo]: Starting...");
new GridInfoServerInConnector(m_Config, MainServer.Instance, "GridInfoService");
}
}
#endregion
}
}

View File

@ -34,11 +34,12 @@ using System.Text;
using log4net; using log4net;
using Nini.Config; using Nini.Config;
using Nwc.XmlRpc; using Nwc.XmlRpc;
using OpenSim.Framework;
using OpenSim.Framework.Servers.HttpServer; using OpenSim.Framework.Servers.HttpServer;
namespace OpenSim.Framework.Communications.Services namespace OpenSim.Server.Handlers.Grid
{ {
public class GridInfoService public class GridInfoHandlers
{ {
private static readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
@ -55,45 +56,22 @@ namespace OpenSim.Framework.Communications.Services
/// anything else requires a general redesign of the config /// anything else requires a general redesign of the config
/// system. /// system.
/// </remarks> /// </remarks>
public GridInfoService(IConfigSource configSource) public GridInfoHandlers(IConfigSource configSource)
{ {
loadGridInfo(configSource); loadGridInfo(configSource);
} }
/// <summary>
/// Default constructor, uses OpenSim.ini.
/// </summary>
public GridInfoService()
{
try
{
IConfigSource configSource = new IniConfigSource(Path.Combine(Util.configDir(), "OpenSim.ini"));
loadGridInfo(configSource);
}
catch (FileNotFoundException)
{
_log.Warn(
"[GRID INFO SERVICE]: No OpenSim.ini file found --- GridInfoServices WILL NOT BE AVAILABLE to your users");
}
}
private void loadGridInfo(IConfigSource configSource) private void loadGridInfo(IConfigSource configSource)
{ {
_info["platform"] = "OpenSim"; _info["platform"] = "OpenSim";
try try
{ {
IConfig startupCfg = configSource.Configs["Startup"]; IConfig startupCfg = configSource.Configs["Startup"];
IConfig gridCfg = configSource.Configs["GridInfo"]; IConfig gridCfg = configSource.Configs["GridInfoService"];
IConfig netCfg = configSource.Configs["Network"]; IConfig netCfg = configSource.Configs["Network"];
bool grid = startupCfg.GetBoolean("gridmode", false); bool grid = startupCfg.GetBoolean("gridmode", false);
if (grid)
_info["mode"] = "grid";
else
_info["mode"] = "standalone";
if (null != gridCfg) if (null != gridCfg)
{ {
foreach (string k in gridCfg.GetKeys()) foreach (string k in gridCfg.GetKeys())

View File

@ -27,53 +27,29 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Reflection; using System.Reflection;
using log4net; using log4net;
using log4net.Config;
using OpenMetaverse; using OpenMetaverse;
using Nini.Config;
using OpenSim.Framework; using OpenSim.Framework;
using OpenSim.Framework.Communications;
using OpenSim.Framework.Communications.Services;
using OpenSim.Framework.Communications.Cache;
using OpenSim.Framework.Servers;
using OpenSim.Framework.Servers.HttpServer; using OpenSim.Framework.Servers.HttpServer;
using OpenSim.Grid.Communications.OGS1; using OpenSim.Server.Handlers.Base;
using OpenSim.Grid.Framework;
namespace OpenSim.Grid.UserServer.Modules namespace OpenSim.Server.Handlers.Grid
{ {
public class GridInfoServiceModule public class GridInfoServerInConnector : ServiceConnector
{ {
protected IGridServiceCore m_core; private string m_ConfigName = "GridInfoService";
protected GridInfoService m_gridInfoService;
protected BaseHttpServer m_httpServer;
public GridInfoServiceModule() public GridInfoServerInConnector(IConfigSource config, IHttpServer server, string configName) :
base(config, server, configName)
{ {
GridInfoHandlers handlers = new GridInfoHandlers(config);
server.AddStreamHandler(new RestStreamHandler("GET", "/get_grid_info",
handlers.RestGetGridInfoMethod));
server.AddXmlRPCHandler("get_grid_info", handlers.XmlRpcGridInfoMethod);
} }
public void Initialise(IGridServiceCore core)
{
m_core = core;
m_gridInfoService = new GridInfoService();
}
public void PostInitialise()
{
}
public void RegisterHandlers(BaseHttpServer httpServer)
{
m_httpServer = httpServer;
m_httpServer.AddStreamHandler(new RestStreamHandler("GET", "/get_grid_info",
m_gridInfoService.RestGetGridInfoMethod));
m_httpServer.AddXmlRPCHandler("get_grid_info", m_gridInfoService.XmlRpcGridInfoMethod);
}
public void Close()
{
}
} }
} }

View File

@ -10,7 +10,7 @@
; * ; *
; * ; *
[Startup] [Startup]
ServiceConnectors = "OpenSim.Server.Handlers.dll:AssetServiceConnector,OpenSim.Server.Handlers.dll:InventoryServiceInConnector,OpenSim.Server.Handlers.dll:FreeswitchServerConnector,OpenSim.Server.Handlers.dll:GridServiceConnector,OpenSim.Server.Handlers.dll:AuthenticationServiceConnector,OpenSim.Server.Handlers.dll:OpenIdServerConnector,OpenSim.Server.Handlers.dll:AvatarServiceConnector,OpenSim.Server.Handlers.dll:LLLoginServiceInConnector,OpenSim.Server.Handlers.dll:PresenceServiceConnector,,OpenSim.Server.Handlers.dll:UserAccountServiceConnector" ServiceConnectors = "OpenSim.Server.Handlers.dll:AssetServiceConnector,OpenSim.Server.Handlers.dll:InventoryServiceInConnector,OpenSim.Server.Handlers.dll:FreeswitchServerConnector,OpenSim.Server.Handlers.dll:GridServiceConnector,,OpenSim.Server.Handlers.dll:GridInfoServerInConnector,OpenSim.Server.Handlers.dll:AuthenticationServiceConnector,OpenSim.Server.Handlers.dll:OpenIdServerConnector,OpenSim.Server.Handlers.dll:AvatarServiceConnector,OpenSim.Server.Handlers.dll:LLLoginServiceInConnector,OpenSim.Server.Handlers.dll:PresenceServiceConnector,,OpenSim.Server.Handlers.dll:UserAccountServiceConnector"
; * This is common for all services, it's the network setup for the entire ; * This is common for all services, it's the network setup for the entire
; * server instance ; * server instance

View File

@ -1033,7 +1033,7 @@
; DisableUndergroundMovement = true ; DisableUndergroundMovement = true
[GridInfo] [GridInfoService]
; These settings are used to return information on a get_grid_info call. ; These settings are used to return information on a get_grid_info call.
; Client launcher scripts and third-party clients make use of this to ; Client launcher scripts and third-party clients make use of this to
; autoconfigure the client and to provide a nice user experience. If you ; autoconfigure the client and to provide a nice user experience. If you