diff options
3 files changed, 78 insertions, 3 deletions
diff --git a/OpenGridServices/OpenGrid.Framework.Data.MySQL/MySQLLogData.cs b/OpenGridServices/OpenGrid.Framework.Data.MySQL/MySQLLogData.cs index f1610ec..8fff793 100644 --- a/OpenGridServices/OpenGrid.Framework.Data.MySQL/MySQLLogData.cs +++ b/OpenGridServices/OpenGrid.Framework.Data.MySQL/MySQLLogData.cs | |||
@@ -31,6 +31,11 @@ namespace OpenGrid.Framework.Data.MySQL | |||
31 | return "MySQL Logdata Interface"; | 31 | return "MySQL Logdata Interface"; |
32 | } | 32 | } |
33 | 33 | ||
34 | public void Close() | ||
35 | { | ||
36 | // Do nothing. | ||
37 | } | ||
38 | |||
34 | public string getVersion() | 39 | public string getVersion() |
35 | { | 40 | { |
36 | return "0.1"; | 41 | return "0.1"; |
diff --git a/OpenGridServices/OpenGrid.Framework.Data/ILogData.cs b/OpenGridServices/OpenGrid.Framework.Data/ILogData.cs index 27b40cb..7c6a2c5 100644 --- a/OpenGridServices/OpenGrid.Framework.Data/ILogData.cs +++ b/OpenGridServices/OpenGrid.Framework.Data/ILogData.cs | |||
@@ -16,5 +16,27 @@ namespace OpenGrid.Framework.Data | |||
16 | public interface ILogData | 16 | public interface ILogData |
17 | { | 17 | { |
18 | void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority,string logMessage); | 18 | void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority,string logMessage); |
19 | /// <summary> | ||
20 | /// Initialises the interface | ||
21 | /// </summary> | ||
22 | void Initialise(); | ||
23 | |||
24 | /// <summary> | ||
25 | /// Closes the interface | ||
26 | /// </summary> | ||
27 | void Close(); | ||
28 | |||
29 | /// <summary> | ||
30 | /// The plugin being loaded | ||
31 | /// </summary> | ||
32 | /// <returns>A string containing the plugin name</returns> | ||
33 | string getName(); | ||
34 | |||
35 | /// <summary> | ||
36 | /// The plugins version | ||
37 | /// </summary> | ||
38 | /// <returns>A string containing the plugin version</returns> | ||
39 | string getVersion(); | ||
19 | } | 40 | } |
41 | |||
20 | } | 42 | } |
diff --git a/OpenGridServices/OpenGridServices.GridServer/GridManager.cs b/OpenGridServices/OpenGridServices.GridServer/GridManager.cs index 54e4bb7..b73f24d 100644 --- a/OpenGridServices/OpenGridServices.GridServer/GridManager.cs +++ b/OpenGridServices/OpenGridServices.GridServer/GridManager.cs | |||
@@ -16,6 +16,8 @@ namespace OpenGridServices.GridServer | |||
16 | class GridManager | 16 | class GridManager |
17 | { | 17 | { |
18 | Dictionary<string, IGridData> _plugins = new Dictionary<string, IGridData>(); | 18 | Dictionary<string, IGridData> _plugins = new Dictionary<string, IGridData>(); |
19 | Dictionary<string, ILogData> _logplugins = new Dictionary<string, ILogData>(); | ||
20 | |||
19 | public OpenSim.Framework.Interfaces.GridConfig config; | 21 | public OpenSim.Framework.Interfaces.GridConfig config; |
20 | 22 | ||
21 | /// <summary> | 23 | /// <summary> |
@@ -32,6 +34,7 @@ namespace OpenGridServices.GridServer | |||
32 | { | 34 | { |
33 | if (!pluginType.IsAbstract) | 35 | if (!pluginType.IsAbstract) |
34 | { | 36 | { |
37 | // Regions go here | ||
35 | Type typeInterface = pluginType.GetInterface("IGridData", true); | 38 | Type typeInterface = pluginType.GetInterface("IGridData", true); |
36 | 39 | ||
37 | if (typeInterface != null) | 40 | if (typeInterface != null) |
@@ -43,12 +46,48 @@ namespace OpenGridServices.GridServer | |||
43 | } | 46 | } |
44 | 47 | ||
45 | typeInterface = null; | 48 | typeInterface = null; |
49 | |||
50 | // Logs go here | ||
51 | typeInterface = pluginType.GetInterface("ILogData", true); | ||
52 | |||
53 | if (typeInterface != null) | ||
54 | { | ||
55 | ILogData plug = (ILogData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | ||
56 | plug.Initialise(); | ||
57 | this._logplugins.Add(plug.getName(), plug); | ||
58 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Storage: Added ILogData Interface"); | ||
59 | } | ||
60 | |||
61 | typeInterface = null; | ||
46 | } | 62 | } |
47 | } | 63 | } |
48 | 64 | ||
49 | pluginAssembly = null; | 65 | pluginAssembly = null; |
50 | } | 66 | } |
51 | 67 | ||
68 | /// <summary> | ||
69 | /// Logs a piece of information to the database | ||
70 | /// </summary> | ||
71 | /// <param name="target">What you were operating on (in grid server, this will likely be the region UUIDs)</param> | ||
72 | /// <param name="method">Which method is being called?</param> | ||
73 | /// <param name="args">What arguments are being passed?</param> | ||
74 | /// <param name="priority">How high priority is this? 1 = Max, 6 = Verbose</param> | ||
75 | /// <param name="message">The message to log</param> | ||
76 | private void logToDB(string target, string method, string args, int priority, string message) | ||
77 | { | ||
78 | foreach (KeyValuePair<string, ILogData> kvp in _logplugins) | ||
79 | { | ||
80 | try | ||
81 | { | ||
82 | kvp.Value.saveLog("Gridserver", target, method, args, priority, message); | ||
83 | } | ||
84 | catch (Exception e) | ||
85 | { | ||
86 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.NORMAL, "Storage: unable to write log via " + kvp.Key); | ||
87 | } | ||
88 | } | ||
89 | } | ||
90 | |||
52 | /// <summary> | 91 | /// <summary> |
53 | /// Returns a region by argument | 92 | /// Returns a region by argument |
54 | /// </summary> | 93 | /// </summary> |
@@ -160,15 +199,23 @@ namespace OpenGridServices.GridServer | |||
160 | if (requestData.ContainsKey("UUID")) | 199 | if (requestData.ContainsKey("UUID")) |
161 | { | 200 | { |
162 | TheSim = getRegion(new LLUUID((string)requestData["UUID"])); | 201 | TheSim = getRegion(new LLUUID((string)requestData["UUID"])); |
202 | logToDB((new LLUUID((string)requestData["UUID"])).ToStringHyphenated(),"XmlRpcLoginToSimulatorMethod","", 5,"Region attempting login with UUID."); | ||
163 | } | 203 | } |
164 | else if (requestData.ContainsKey("region_handle")) | 204 | else if (requestData.ContainsKey("region_handle")) |
165 | { | 205 | { |
166 | TheSim = getRegion((ulong)Convert.ToUInt64(requestData["region_handle"])); | 206 | TheSim = getRegion((ulong)Convert.ToUInt64(requestData["region_handle"])); |
207 | logToDB((string)requestData["region_handle"], "XmlRpcLoginToSimulatorMethod", "", 5, "Region attempting login with regionHandle."); | ||
208 | } | ||
209 | else | ||
210 | { | ||
211 | responseData["error"] = "No UUID or region_handle passed to grid server - unable to connect you"; | ||
212 | return response; | ||
167 | } | 213 | } |
168 | 214 | ||
169 | if (TheSim == null) | 215 | if (TheSim == null) |
170 | { | 216 | { |
171 | responseData["error"] = "sim not found"; | 217 | responseData["error"] = "sim not found"; |
218 | return response; | ||
172 | } | 219 | } |
173 | else | 220 | else |
174 | { | 221 | { |
@@ -366,7 +413,7 @@ namespace OpenGridServices.GridServer | |||
366 | /// <returns>"OK" or an error</returns> | 413 | /// <returns>"OK" or an error</returns> |
367 | public string RestSetSimMethod(string request, string path, string param) | 414 | public string RestSetSimMethod(string request, string path, string param) |
368 | { | 415 | { |
369 | Console.WriteLine("SimProfiles.cs:RestSetSimMethod() - processing request......"); | 416 | Console.WriteLine("Processing region update"); |
370 | SimProfileData TheSim; | 417 | SimProfileData TheSim; |
371 | TheSim = getRegion(new LLUUID(param)); | 418 | TheSim = getRegion(new LLUUID(param)); |
372 | if ((TheSim) == null) | 419 | if ((TheSim) == null) |
@@ -449,13 +496,14 @@ namespace OpenGridServices.GridServer | |||
449 | 496 | ||
450 | try | 497 | try |
451 | { | 498 | { |
452 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Attempting to add a new region to the grid - " + _plugins.Count + " storage provider(s) registered."); | 499 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Updating / adding via " + _plugins.Count + " storage provider(s) registered."); |
453 | foreach (KeyValuePair<string, IGridData> kvp in _plugins) | 500 | foreach (KeyValuePair<string, IGridData> kvp in _plugins) |
454 | { | 501 | { |
455 | try | 502 | try |
456 | { | 503 | { |
457 | kvp.Value.AddProfile(TheSim); | 504 | kvp.Value.AddProfile(TheSim); |
458 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"New sim added to grid (" + TheSim.regionName + ")"); | 505 | OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"New sim added to grid (" + TheSim.regionName + ")"); |
506 | logToDB(TheSim.UUID.ToStringHyphenated(), "RestSetSimMethod", "", 5, "Region successfully updated and connected to grid."); | ||
459 | } | 507 | } |
460 | catch (Exception e) | 508 | catch (Exception e) |
461 | { | 509 | { |