From 918c0a482663cbda9f75901e894d463b7f7c2b0b Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Thu, 24 Jul 2008 17:10:07 +0000 Subject: [PATCH] * refactor: move remaining user service -> inventory service OGS1 calls into the specific inter service class --- .../OGS1/OGS1InterServiceInventoryService.cs | 10 +++++-- OpenSim/Grid/UserServer/Main.cs | 6 ++-- OpenSim/Grid/UserServer/UserLoginService.cs | 30 +++++++------------ 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs b/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs index 92a6ad8347..6aa1440547 100755 --- a/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs +++ b/OpenSim/Grid/Communications/OGS1/OGS1InterServiceInventoryService.cs @@ -46,6 +46,11 @@ namespace OpenSim.Grid.Communications.OGS1 m_inventoryServerUrl = inventoryServerUrl; } + /// + /// + /// + /// + /// public bool CreateNewUserInventory(LLUUID userId) { return SynchronousRestObjectPoster.BeginPostObject( @@ -59,9 +64,8 @@ namespace OpenSim.Grid.Communications.OGS1 /// public List GetInventorySkeleton(LLUUID userId) { - //m_log.ErrorFormat("[OGS1 INVENTORY SERVICE]: The GetInventorySkeleton() method here should never be called!"); - - return new List(); + return SynchronousRestObjectPoster.BeginPostObject>( + "POST", m_inventoryServerUrl + "RootFolders/", userId.UUID); } } } diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index 6e970d5b53..1338d680fd 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs @@ -100,10 +100,10 @@ namespace OpenSim.Grid.UserServer m_userManager._config = Cfg; m_userManager.AddPlugin(Cfg.DatabaseProvider, Cfg.DatabaseConnect); - m_loginService = new UserLoginService( - m_userManager, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg); + m_interServiceInventoryService = new OGS1InterServiceInventoryService(m_userManager._config.InventoryUrl); - m_interServiceInventoryService = new OGS1InterServiceInventoryService(m_userManager._config.InventoryUrl); + m_loginService = new UserLoginService( + m_userManager, m_interServiceInventoryService, new LibraryRootFolder(), Cfg, Cfg.DefaultStartupMsg); m_messagesService = new MessageServersConnector(); diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs index 78f6e7c2c5..6575b13cce 100644 --- a/OpenSim/Grid/UserServer/UserLoginService.cs +++ b/OpenSim/Grid/UserServer/UserLoginService.cs @@ -46,6 +46,8 @@ namespace OpenSim.Grid.UserServer public class UserLoginService : LoginService { private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + protected IInterServiceInventoryServices m_inventoryService; public event UserLoggedInAtLocation OnUserLoggedInAtLocation; @@ -54,12 +56,14 @@ namespace OpenSim.Grid.UserServer public UserConfig m_config; public UserLoginService( - UserManagerBase userManager, LibraryRootFolder libraryRootFolder, + UserManagerBase userManager, IInterServiceInventoryServices inventoryService, LibraryRootFolder libraryRootFolder, UserConfig config, string welcomeMess) : base(userManager, libraryRootFolder, welcomeMess) { m_config = config; + m_inventoryService = inventoryService; } + public override void LogOffUser(UserProfileData theUser, string message) { RegionProfileData SimInfo = null; @@ -96,6 +100,7 @@ namespace OpenSim.Grid.UserServer m_log.InfoFormat( "[ASSUMED CRASH]: Telling region {0} @ {1},{2} ({3}) that their agent is dead: {4}", SimInfo.regionName, SimInfo.regionLocX, SimInfo.regionLocY, SimInfo.httpServerURI, theUser.FirstName + " " + theUser.SurName); + try { XmlRpcRequest GridReq = new XmlRpcRequest("logoff_user", SendParams); @@ -420,20 +425,12 @@ namespace OpenSim.Grid.UserServer // See LoginService protected override InventoryData GetInventorySkeleton(LLUUID userID, string serverUrl) - { - string invUrl = m_config.InventoryUrl; - //if (!String.IsNullOrEmpty(serverUrl)) - //{ - // invUrl = serverUrl+"/"; - //} - + { m_log.DebugFormat( "[LOGIN]: Contacting inventory service at {0} for inventory skeleton of user {1}", m_config.InventoryUrl, userID); - - List folders - = SynchronousRestObjectPoster.BeginPostObject>( - "POST", invUrl + "RootFolders/", userID.UUID); + + List folders = m_inventoryService.GetInventorySkeleton(userID); if (null == folders || folders.Count == 0) { @@ -444,11 +441,7 @@ namespace OpenSim.Grid.UserServer // tools are creating the user profile directly in the database without creating the inventory. At // this time we'll accomodate them by lazily creating the user inventory now if it doesn't already // exist. - bool created = - SynchronousRestObjectPoster.BeginPostObject( - "POST", invUrl + "CreateInventory/", userID.UUID); - - if (!created) + if (!m_inventoryService.CreateNewUserInventory(userID)) { throw new Exception( String.Format( @@ -461,8 +454,7 @@ namespace OpenSim.Grid.UserServer m_log.InfoFormat("[LOGIN]: A new inventory skeleton was successfully created for user {0}", userID); } - folders = SynchronousRestObjectPoster.BeginPostObject>( - "POST", invUrl + "RootFolders/", userID.UUID); + folders = m_inventoryService.GetInventorySkeleton(userID); } if (folders != null && folders.Count > 0)