More work on modulising the User Server.
parent
8645fa9215
commit
bc0bedf75d
OpenSim/Grid
UserServer.Modules
UserServer
|
@ -35,11 +35,14 @@ using OpenMetaverse;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
using OpenSim.Framework.Communications;
|
using OpenSim.Framework.Communications;
|
||||||
using OpenSim.Framework.Servers;
|
using OpenSim.Framework.Servers;
|
||||||
|
using OpenSim.Grid.Framework;
|
||||||
|
|
||||||
namespace OpenSim.Grid.UserServer.Modules
|
namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
public class UserDataBaseService : UserManagerBase
|
public class UserDataBaseService : UserManagerBase
|
||||||
{
|
{
|
||||||
|
protected IUGAIMCore m_core;
|
||||||
|
|
||||||
public UserDataBaseService()
|
public UserDataBaseService()
|
||||||
: base(null)
|
: base(null)
|
||||||
{
|
{
|
||||||
|
@ -50,6 +53,46 @@ namespace OpenSim.Grid.UserServer.Modules
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Initialise(IUGAIMCore core)
|
||||||
|
{
|
||||||
|
m_core = core;
|
||||||
|
|
||||||
|
//we only need core components so we can request them from here
|
||||||
|
IInterServiceInventoryServices inventoryService;
|
||||||
|
if (m_core.TryGet<IInterServiceInventoryServices>(out inventoryService))
|
||||||
|
{
|
||||||
|
m_interServiceInventoryService = inventoryService;
|
||||||
|
}
|
||||||
|
|
||||||
|
UserConfig cfg;
|
||||||
|
if (m_core.TryGet<UserConfig>(out cfg))
|
||||||
|
{
|
||||||
|
AddPlugin(cfg.DatabaseProvider, cfg.DatabaseConnect);
|
||||||
|
}
|
||||||
|
|
||||||
|
m_core.RegisterInterface<UserDataBaseService>(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PostInitialise()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RegisterHandlers(BaseHttpServer httpServer)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserAgentData GetUserAgentData(UUID AgentID)
|
||||||
|
{
|
||||||
|
UserProfileData userProfile = GetUserProfile(AgentID);
|
||||||
|
|
||||||
|
if (userProfile != null)
|
||||||
|
{
|
||||||
|
return userProfile.CurrentAgent;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public override UserProfileData SetupMasterUser(string firstName, string lastName)
|
public override UserProfileData SetupMasterUser(string firstName, string lastName)
|
||||||
{
|
{
|
||||||
throw new Exception("The method or operation is not implemented.");
|
throw new Exception("The method or operation is not implemented.");
|
||||||
|
|
|
@ -97,24 +97,40 @@ namespace OpenSim.Grid.UserServer
|
||||||
|
|
||||||
protected override void StartupSpecific()
|
protected override void StartupSpecific()
|
||||||
{
|
{
|
||||||
Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), "UserServer_Config.xml")));
|
IInterServiceInventoryServices inventoryService = SetupRegisterCoreComponents();
|
||||||
|
|
||||||
m_stats = StatsManager.StartCollectingUserStats();
|
m_stats = StatsManager.StartCollectingUserStats();
|
||||||
|
|
||||||
m_log.Info("[STARTUP]: Establishing data connection");
|
m_log.Info("[STARTUP]: Establishing data connection");
|
||||||
|
|
||||||
IInterServiceInventoryServices inventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl);
|
|
||||||
|
|
||||||
//setup database access service
|
//setup database access service
|
||||||
m_userDataBaseService = new UserDataBaseService(inventoryService);
|
m_userDataBaseService = new UserDataBaseService();
|
||||||
m_userDataBaseService.AddPlugin(Cfg.DatabaseProvider, Cfg.DatabaseConnect);
|
m_userDataBaseService.Initialise(this);
|
||||||
|
|
||||||
//Register the database access service so modules can fetch it
|
|
||||||
// RegisterInterface<UserDataBaseService>(m_userDataBaseService);
|
|
||||||
|
|
||||||
//setup services/modules
|
//setup services/modules
|
||||||
StartupUserServerModules();
|
StartupUserServerModules();
|
||||||
|
|
||||||
|
StartOtherComponents(inventoryService);
|
||||||
|
|
||||||
|
m_consoleCommandModule = new UserServerCommandModule(m_loginService);
|
||||||
|
m_consoleCommandModule.Initialise(this);
|
||||||
|
|
||||||
|
//register event handlers
|
||||||
|
RegisterEventHandlers();
|
||||||
|
|
||||||
|
//PostInitialise the modules
|
||||||
|
m_consoleCommandModule.PostInitialise(); //it will register its Console command handlers in here
|
||||||
|
m_userDataBaseService.PostInitialise();
|
||||||
|
|
||||||
|
//register http handlers and start http server
|
||||||
|
m_log.Info("[STARTUP]: Starting HTTP process");
|
||||||
|
RegisterHttpHandlers();
|
||||||
|
m_httpServer.Start();
|
||||||
|
|
||||||
|
base.StartupSpecific();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void StartOtherComponents(IInterServiceInventoryServices inventoryService)
|
||||||
|
{
|
||||||
m_gridInfoService = new GridInfoService();
|
m_gridInfoService = new GridInfoService();
|
||||||
|
|
||||||
StartupLoginService(inventoryService);
|
StartupLoginService(inventoryService);
|
||||||
|
@ -124,26 +140,21 @@ namespace OpenSim.Grid.UserServer
|
||||||
m_loginService.setloginlevel((int)Cfg.DefaultUserLevel);
|
m_loginService.setloginlevel((int)Cfg.DefaultUserLevel);
|
||||||
|
|
||||||
m_messagesService = new MessageServersConnector();
|
m_messagesService = new MessageServersConnector();
|
||||||
|
}
|
||||||
|
|
||||||
m_consoleCommandModule = new UserServerCommandModule(Cfg, m_userDataBaseService, m_loginService);
|
private IInterServiceInventoryServices SetupRegisterCoreComponents()
|
||||||
m_consoleCommandModule.Initialise(this);
|
{
|
||||||
|
Cfg = new UserConfig("USER SERVER", (Path.Combine(Util.configDir(), "UserServer_Config.xml")));
|
||||||
|
|
||||||
//PostInitialise the modules
|
IInterServiceInventoryServices inventoryService = new OGS1InterServiceInventoryService(Cfg.InventoryUrl);
|
||||||
m_consoleCommandModule.PostInitialise();
|
|
||||||
|
|
||||||
//register event handlers
|
|
||||||
RegisterEventHandlers();
|
|
||||||
|
|
||||||
//register http handlers and start http server
|
|
||||||
m_log.Info("[STARTUP]: Starting HTTP process");
|
|
||||||
m_httpServer = new BaseHttpServer(Cfg.HttpPort);
|
m_httpServer = new BaseHttpServer(Cfg.HttpPort);
|
||||||
RegisterHttpHandlers();
|
|
||||||
m_httpServer.Start();
|
|
||||||
|
|
||||||
base.StartupSpecific();
|
|
||||||
|
|
||||||
//register Console command handlers
|
RegisterInterface<ConsoleBase>(m_console);
|
||||||
RegisterConsoleCommands();
|
RegisterInterface<UserConfig>(Cfg);
|
||||||
|
RegisterInterface<IInterServiceInventoryServices>(inventoryService);
|
||||||
|
|
||||||
|
return inventoryService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -178,11 +189,6 @@ namespace OpenSim.Grid.UserServer
|
||||||
m_messagesService.OnRegionShutdown += HandleRegionShutdown;
|
m_messagesService.OnRegionShutdown += HandleRegionShutdown;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected virtual void RegisterConsoleCommands()
|
|
||||||
{
|
|
||||||
m_consoleCommandModule.RegisterConsoleCommands(m_console);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected virtual void RegisterHttpHandlers()
|
protected virtual void RegisterHttpHandlers()
|
||||||
{
|
{
|
||||||
m_loginService.RegisterHandlers(m_httpServer, Cfg.EnableLLSDLogin, true);
|
m_loginService.RegisterHandlers(m_httpServer, Cfg.EnableLLSDLogin, true);
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace OpenSim.Grid.UserServer
|
||||||
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
|
||||||
|
|
||||||
protected ConsoleBase m_console;
|
protected ConsoleBase m_console;
|
||||||
protected UserConfig Cfg;
|
protected UserConfig m_cfg;
|
||||||
|
|
||||||
protected UserDataBaseService m_userDataBaseService;
|
protected UserDataBaseService m_userDataBaseService;
|
||||||
protected UserLoginService m_loginService;
|
protected UserLoginService m_loginService;
|
||||||
|
@ -59,10 +59,8 @@ namespace OpenSim.Grid.UserServer
|
||||||
|
|
||||||
protected IUGAIMCore m_core;
|
protected IUGAIMCore m_core;
|
||||||
|
|
||||||
public UserServerCommandModule(UserConfig cfg, UserDataBaseService userDBservice, UserLoginService loginService)
|
public UserServerCommandModule( UserLoginService loginService)
|
||||||
{
|
{
|
||||||
Cfg = cfg;
|
|
||||||
m_userDataBaseService = userDBservice;
|
|
||||||
m_loginService = loginService;
|
m_loginService = loginService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -73,6 +71,23 @@ namespace OpenSim.Grid.UserServer
|
||||||
|
|
||||||
public void PostInitialise()
|
public void PostInitialise()
|
||||||
{
|
{
|
||||||
|
UserConfig cfg;
|
||||||
|
if (m_core.TryGet<UserConfig>(out cfg))
|
||||||
|
{
|
||||||
|
m_cfg = cfg;
|
||||||
|
}
|
||||||
|
|
||||||
|
UserDataBaseService userDBservice;
|
||||||
|
if (m_core.TryGet<UserDataBaseService>(out userDBservice))
|
||||||
|
{
|
||||||
|
m_userDataBaseService = userDBservice;
|
||||||
|
}
|
||||||
|
|
||||||
|
ConsoleBase console;
|
||||||
|
if ((m_core.TryGet<ConsoleBase>(out console)) && (m_cfg != null) && (m_userDataBaseService != null))
|
||||||
|
{
|
||||||
|
RegisterConsoleCommands(console);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RegisterHandlers(BaseHttpServer httpServer)
|
public void RegisterHandlers(BaseHttpServer httpServer)
|
||||||
|
@ -80,7 +95,7 @@ namespace OpenSim.Grid.UserServer
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RegisterConsoleCommands(ConsoleBase console)
|
private void RegisterConsoleCommands(ConsoleBase console)
|
||||||
{
|
{
|
||||||
m_console = console;
|
m_console = console;
|
||||||
m_console.Commands.AddCommand("userserver", false, "create user",
|
m_console.Commands.AddCommand("userserver", false, "create user",
|
||||||
|
@ -279,7 +294,7 @@ namespace OpenSim.Grid.UserServer
|
||||||
// requester.ReturnResponseVal = TestResponse;
|
// requester.ReturnResponseVal = TestResponse;
|
||||||
// requester.BeginPostObject<UUID>(m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser);
|
// requester.BeginPostObject<UUID>(m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser);
|
||||||
SynchronousRestObjectPoster.BeginPostObject<UUID, List<InventoryFolderBase>>(
|
SynchronousRestObjectPoster.BeginPostObject<UUID, List<InventoryFolderBase>>(
|
||||||
"POST", Cfg.InventoryUrl + "RootFolders/", m_lastCreatedUser);
|
"POST", m_cfg.InventoryUrl + "RootFolders/", m_lastCreatedUser);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "logoff-user":
|
case "logoff-user":
|
||||||
|
|
Loading…
Reference in New Issue