From 1e1485de5b48248ffeec75e49e792b321164c547 Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Tue, 22 Jun 2010 16:09:30 -0700 Subject: * Fixed SimianGrid map tile uploads not having any objects in the images --- .../SimianAuthenticationServiceConnector.cs | 2 ++ .../SimianGrid/SimianGridServiceConnector.cs | 32 +++++++++++++++++++--- 2 files changed, 30 insertions(+), 4 deletions(-) (limited to 'OpenSim/Services/Connectors') diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs index 3c784f2..7a96a05 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianAuthenticationServiceConnector.cs @@ -198,6 +198,8 @@ namespace OpenSim.Services.Connectors.SimianGrid if (!String.IsNullOrEmpty(identifier)) { // Add/update the md5hash identity + // TODO: Support salts when AddIdentity does + // TODO: Create an a1hash too for WebDAV logins requestArgs = new NameValueCollection { { "RequestMethod", "AddIdentity" }, diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs index db9027a..bea8172 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs @@ -59,18 +59,35 @@ namespace OpenSim.Services.Connectors.SimianGrid MethodBase.GetCurrentMethod().DeclaringType); private string m_serverUrl = String.Empty; + private Dictionary m_scenes = new Dictionary(); #region ISharedRegionModule public Type ReplaceableInterface { get { return null; } } - public void RegionLoaded(Scene scene) { if (!String.IsNullOrEmpty(m_serverUrl)) { UploadMapTile(scene); } } + public void RegionLoaded(Scene scene) { } public void PostInitialise() { } public void Close() { } public SimianGridServiceConnector() { } public string Name { get { return "SimianGridServiceConnector"; } } - public void AddRegion(Scene scene) { if (!String.IsNullOrEmpty(m_serverUrl)) { scene.RegisterModuleInterface(this); } } - public void RemoveRegion(Scene scene) { if (!String.IsNullOrEmpty(m_serverUrl)) { scene.UnregisterModuleInterface(this); } } + public void AddRegion(Scene scene) + { + // Every shared region module has to maintain an indepedent list of + // currently running regions + lock (m_scenes) + m_scenes[scene.RegionInfo.RegionID] = scene; + + if (!String.IsNullOrEmpty(m_serverUrl)) + scene.RegisterModuleInterface(this); + } + public void RemoveRegion(Scene scene) + { + lock (m_scenes) + m_scenes.Remove(scene.RegionInfo.RegionID); + + if (!String.IsNullOrEmpty(m_serverUrl)) + scene.UnregisterModuleInterface(this); + } #endregion ISharedRegionModule @@ -105,6 +122,13 @@ namespace OpenSim.Services.Connectors.SimianGrid public string RegisterRegion(UUID scopeID, GridRegion regionInfo) { + // Generate and upload our map tile in PNG format to the SimianGrid AddMapTile service + Scene scene; + if (m_scenes.TryGetValue(regionInfo.RegionID, out scene)) + UploadMapTile(scene); + else + m_log.Warn("Registering region " + regionInfo.RegionName + " (" + regionInfo.RegionID + ") that we are not tracking"); + Vector3d minPosition = new Vector3d(regionInfo.RegionLocX, regionInfo.RegionLocY, 0.0); Vector3d maxPosition = minPosition + new Vector3d(Constants.RegionSize, Constants.RegionSize, 4096.0); @@ -430,7 +454,7 @@ namespace OpenSim.Services.Connectors.SimianGrid if (!String.IsNullOrEmpty(errorMessage)) { m_log.WarnFormat("[SIMIAN GRID CONNECTOR]: Failed to store {0} byte PNG map tile for {1}: {2}", - pngData.Length, scene.RegionInfo.RegionName, errorMessage); + pngData.Length, scene.RegionInfo.RegionName, errorMessage.Replace('\n', ' ')); } } -- cgit v1.1 From 6848465ae24f2069c2cc3e67ff317ad2d085f5cb Mon Sep 17 00:00:00 2001 From: John Hurliman Date: Thu, 24 Jun 2010 13:43:38 -0700 Subject: * SimianAssetServiceConnector Delete() was expecting the wrong type of response, reporting false errors * Fixed a typo in a WebUtil error message --- .../SimianGrid/SimianAssetServiceConnector.cs | 29 ++++++++++++++++------ 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'OpenSim/Services/Connectors') diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs index 3fdee9c..34bb8b3 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianAssetServiceConnector.cs @@ -371,18 +371,33 @@ namespace OpenSim.Services.Connectors.SimianGrid /// public bool Delete(string id) { + string errorMessage = String.Empty; + string url = m_serverUrl + id; + if (m_cache != null) m_cache.Expire(id); - string url = m_serverUrl + id; + try + { + HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url); + request.Method = "DELETE"; - OSDMap response = WebUtil.ServiceRequest(url, "DELETE"); - if (response["Success"].AsBoolean()) - return true; - else - m_log.Warn("[SIMIAN ASSET CONNECTOR]: Failed to delete asset " + id + " from the asset service"); + using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) + { + if (response.StatusCode != HttpStatusCode.NoContent) + { + m_log.Warn("[SIMIAN ASSET CONNECTOR]: Unexpected response when deleting asset " + url + ": " + + response.StatusCode + " (" + response.StatusDescription + ")"); + } + } - return false; + return true; + } + catch (Exception ex) + { + m_log.Warn("[SIMIAN ASSET CONNECTOR]: Failed to delete asset " + id + " from the asset service: " + ex.Message); + return false; + } } #endregion IAssetService -- cgit v1.1