From 992b04a23e19d3e5a4f88169ce33c9b2ddb4f4de Mon Sep 17 00:00:00 2001 From: Justin Clarke Casey Date: Sat, 16 Aug 2008 20:42:43 +0000 Subject: * Move GridInfoService into Framework.Communications and eliminate Common.Communications for now (since this was the only class in that project) --- OpenSim/Common/Communications/GridInfoService.cs | 155 --------------------- .../Framework/Communications/GridInfoService.cs | 155 +++++++++++++++++++++ OpenSim/Grid/UserServer/Main.cs | 1 - OpenSim/Region/Application/OpenSimBase.cs | 2 +- 4 files changed, 156 insertions(+), 157 deletions(-) delete mode 100644 OpenSim/Common/Communications/GridInfoService.cs create mode 100644 OpenSim/Framework/Communications/GridInfoService.cs (limited to 'OpenSim') diff --git a/OpenSim/Common/Communications/GridInfoService.cs b/OpenSim/Common/Communications/GridInfoService.cs deleted file mode 100644 index adaaa95..0000000 --- a/OpenSim/Common/Communications/GridInfoService.cs +++ /dev/null @@ -1,155 +0,0 @@ -/* - * 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 OpenSim 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.Collections; -using System.IO; -using System.Reflection; -using System.Text; -using log4net; -using Nini.Config; -using Nwc.XmlRpc; -using OpenSim.Framework.Servers; -using OpenSim.Framework; - -namespace OpenSim.Common.Communications -{ - public class GridInfoService - { - private static readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); - - private Hashtable _info = new Hashtable(); - - /// - /// Instantiate a GridInfoService object. - /// - /// path to config path containing - /// grid information - /// - /// GridInfoService uses the [GridInfo] section of the - /// standard OpenSim.ini file --- which is not optimal, but - /// anything else requires a general redesign of the config - /// system. - /// - public GridInfoService(string configPath) - { - _info["platform"] = "OpenSim"; - if (File.Exists(configPath)) - { - try - { - IConfigSource _configSource = new IniConfigSource(configPath); - IConfig startupCfg = _configSource.Configs["Startup"]; - IConfig gridCfg = _configSource.Configs["GridInfo"]; - IConfig netCfg = _configSource.Configs["Network"]; - - bool grid = startupCfg.GetBoolean("gridmode", false); - - if (grid) - _info["mode"] = "grid"; - else - _info["mode"] = "standalone"; - - - if (null != gridCfg) - { - foreach (string k in gridCfg.GetKeys()) - { - _info[k] = gridCfg.GetString(k); - } - } - else if (null != netCfg) - { - if (grid) - _info["login"] = netCfg.GetString("user_server_url"); - else - _info["login"] = String.Format("http://127.0.0.1:{0}/", netCfg.GetString("http_listener_port")); - IssueWarning(); - } - else - { - _info["login"] = "http://127.0.0.1:9000/"; - IssueWarning(); - } - } - catch (Exception) - { - _log.DebugFormat("[GridInfoService] cannot get grid info from {0}, using minimal defaults", configPath); - } - } - _log.InfoFormat("[GridInfoService] Grid info service initialized with {0} keys", _info.Count); - } - - /// - /// Default constructor, uses OpenSim.ini. - /// - public GridInfoService() : this(Path.Combine(Util.configDir(), "OpenSim.ini")) - { - } - - private void IssueWarning() - { - _log.Warn("[GridInfoService] found no [GridInfo] section in your OpenSim.ini"); - _log.Warn("[GridInfoService] trying to guess sensible defaults, you might want to provide better ones:"); - foreach (string k in _info.Keys) - { - _log.WarnFormat("[GridInfoService] {0}: {1}", k, _info[k]); - } - } - - public XmlRpcResponse XmlRpcGridInfoMethod(XmlRpcRequest request) - { - XmlRpcResponse response = new XmlRpcResponse(); - Hashtable responseData = new Hashtable(); - - _log.Info("[GridInfo]: Request for grid info"); - - foreach (string k in _info.Keys) - { - responseData[k] = _info[k]; - } - response.Value = responseData; - - return response; - } - - public string RestGetGridInfoMethod(string request, string path, string param, - OSHttpRequest httpRequest, OSHttpResponse httpResponse) - { - StringBuilder sb = new StringBuilder(); - - sb.Append("\n"); - foreach (string k in _info.Keys) - { - sb.AppendFormat("<{0}>{1}\n", k, _info[k]); - } - sb.Append("\n"); - - return sb.ToString(); - } - } -} diff --git a/OpenSim/Framework/Communications/GridInfoService.cs b/OpenSim/Framework/Communications/GridInfoService.cs new file mode 100644 index 0000000..d51bc59 --- /dev/null +++ b/OpenSim/Framework/Communications/GridInfoService.cs @@ -0,0 +1,155 @@ +/* + * 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 OpenSim 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.Collections; +using System.IO; +using System.Reflection; +using System.Text; +using log4net; +using Nini.Config; +using Nwc.XmlRpc; +using OpenSim.Framework.Servers; +using OpenSim.Framework; + +namespace OpenSim.Framework.Communications +{ + public class GridInfoService + { + private static readonly ILog _log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); + + private Hashtable _info = new Hashtable(); + + /// + /// Instantiate a GridInfoService object. + /// + /// path to config path containing + /// grid information + /// + /// GridInfoService uses the [GridInfo] section of the + /// standard OpenSim.ini file --- which is not optimal, but + /// anything else requires a general redesign of the config + /// system. + /// + public GridInfoService(string configPath) + { + _info["platform"] = "OpenSim"; + if (File.Exists(configPath)) + { + try + { + IConfigSource _configSource = new IniConfigSource(configPath); + IConfig startupCfg = _configSource.Configs["Startup"]; + IConfig gridCfg = _configSource.Configs["GridInfo"]; + IConfig netCfg = _configSource.Configs["Network"]; + + bool grid = startupCfg.GetBoolean("gridmode", false); + + if (grid) + _info["mode"] = "grid"; + else + _info["mode"] = "standalone"; + + + if (null != gridCfg) + { + foreach (string k in gridCfg.GetKeys()) + { + _info[k] = gridCfg.GetString(k); + } + } + else if (null != netCfg) + { + if (grid) + _info["login"] = netCfg.GetString("user_server_url"); + else + _info["login"] = String.Format("http://127.0.0.1:{0}/", netCfg.GetString("http_listener_port")); + IssueWarning(); + } + else + { + _info["login"] = "http://127.0.0.1:9000/"; + IssueWarning(); + } + } + catch (Exception) + { + _log.DebugFormat("[GridInfoService] cannot get grid info from {0}, using minimal defaults", configPath); + } + } + _log.InfoFormat("[GridInfoService] Grid info service initialized with {0} keys", _info.Count); + } + + /// + /// Default constructor, uses OpenSim.ini. + /// + public GridInfoService() : this(Path.Combine(Util.configDir(), "OpenSim.ini")) + { + } + + private void IssueWarning() + { + _log.Warn("[GridInfoService] found no [GridInfo] section in your OpenSim.ini"); + _log.Warn("[GridInfoService] trying to guess sensible defaults, you might want to provide better ones:"); + foreach (string k in _info.Keys) + { + _log.WarnFormat("[GridInfoService] {0}: {1}", k, _info[k]); + } + } + + public XmlRpcResponse XmlRpcGridInfoMethod(XmlRpcRequest request) + { + XmlRpcResponse response = new XmlRpcResponse(); + Hashtable responseData = new Hashtable(); + + _log.Info("[GridInfo]: Request for grid info"); + + foreach (string k in _info.Keys) + { + responseData[k] = _info[k]; + } + response.Value = responseData; + + return response; + } + + public string RestGetGridInfoMethod(string request, string path, string param, + OSHttpRequest httpRequest, OSHttpResponse httpResponse) + { + StringBuilder sb = new StringBuilder(); + + sb.Append("\n"); + foreach (string k in _info.Keys) + { + sb.AppendFormat("<{0}>{1}\n", k, _info[k]); + } + sb.Append("\n"); + + return sb.ToString(); + } + } +} diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index 516efe4..9b74dbc 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs @@ -39,7 +39,6 @@ using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Console; using OpenSim.Framework.Servers; using OpenSim.Framework.Statistics; -using OpenSim.Common.Communications; using OpenSim.Grid.Communications.OGS1; namespace OpenSim.Grid.UserServer diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index ce5b335..0ac8cd7 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -36,11 +36,11 @@ using libsecondlife; using log4net; using Nini.Config; using OpenSim.Framework; +using OpenSim.Framework.Communications; using OpenSim.Framework.Communications.Cache; using OpenSim.Framework.Console; using OpenSim.Framework.Servers; using OpenSim.Framework.Statistics; -using OpenSim.Common.Communications; using OpenSim.Region.ClientStack; using OpenSim.Region.Communications.Local; using OpenSim.Region.Communications.OGS1; -- cgit v1.1