diff options
author | Melanie | 2012-01-28 22:19:10 +0100 |
---|---|---|
committer | Melanie | 2012-01-28 22:19:10 +0100 |
commit | 7c824f02b445579c0ef54a2212f851ae811a639d (patch) | |
tree | c8781c80bbd861b739940403e9f83efa0101522b | |
parent | Fix calculating land prim count type width issue (diff) | |
download | opensim-SC-7c824f02b445579c0ef54a2212f851ae811a639d.zip opensim-SC-7c824f02b445579c0ef54a2212f851ae811a639d.tar.gz opensim-SC-7c824f02b445579c0ef54a2212f851ae811a639d.tar.bz2 opensim-SC-7c824f02b445579c0ef54a2212f851ae811a639d.tar.xz |
Add the ability to abort a pending restart using the viewer UI or a
RemoteAdmin message
3 files changed, 28 insertions, 1 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index dcc88c4..914e4d6 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -263,6 +263,8 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
263 | Scene rebootedScene = null; | 263 | Scene rebootedScene = null; |
264 | GetSceneFromRegionParams(requestData, responseData, out rebootedScene); | 264 | GetSceneFromRegionParams(requestData, responseData, out rebootedScene); |
265 | 265 | ||
266 | IRestartModule restartModule = rebootedScene.RequestModuleInterface<IRestartModule>(); | ||
267 | |||
266 | responseData["success"] = false; | 268 | responseData["success"] = false; |
267 | responseData["accepted"] = true; | 269 | responseData["accepted"] = true; |
268 | responseData["rebooting"] = true; | 270 | responseData["rebooting"] = true; |
@@ -273,6 +275,23 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
273 | if (requestData.ContainsKey("alerts")) | 275 | if (requestData.ContainsKey("alerts")) |
274 | { | 276 | { |
275 | string[] alertTimes = requestData["alerts"].ToString().Split( new char[] {','}); | 277 | string[] alertTimes = requestData["alerts"].ToString().Split( new char[] {','}); |
278 | if (alertTimes.Length == 1 && Convert.ToInt32(alertTimes[0]) == -1) | ||
279 | { | ||
280 | if (restartModule != null) | ||
281 | { | ||
282 | message = "Restart has been cancelled"; | ||
283 | |||
284 | if (requestData.ContainsKey("message")) | ||
285 | message = requestData["message"].ToString(); | ||
286 | |||
287 | restartModule.AbortRestart(message); | ||
288 | |||
289 | responseData["success"] = true; | ||
290 | responseData["rebooting"] = false; | ||
291 | |||
292 | return; | ||
293 | } | ||
294 | } | ||
276 | foreach (string a in alertTimes) | 295 | foreach (string a in alertTimes) |
277 | times.Add(Convert.ToInt32(a)); | 296 | times.Add(Convert.ToInt32(a)); |
278 | } | 297 | } |
@@ -305,7 +324,6 @@ namespace OpenSim.ApplicationPlugins.RemoteController | |||
305 | notice = false; | 324 | notice = false; |
306 | } | 325 | } |
307 | 326 | ||
308 | IRestartModule restartModule = rebootedScene.RequestModuleInterface<IRestartModule>(); | ||
309 | if (restartModule != null) | 327 | if (restartModule != null) |
310 | { | 328 | { |
311 | restartModule.ScheduleRestart(UUID.Zero, message, times.ToArray(), notice); | 329 | restartModule.ScheduleRestart(UUID.Zero, message, times.ToArray(), notice); |
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index 161cf82..d5e3314 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs | |||
@@ -256,6 +256,12 @@ namespace OpenSim.Region.CoreModules.World.Estate | |||
256 | IRestartModule restartModule = Scene.RequestModuleInterface<IRestartModule>(); | 256 | IRestartModule restartModule = Scene.RequestModuleInterface<IRestartModule>(); |
257 | if (restartModule != null) | 257 | if (restartModule != null) |
258 | { | 258 | { |
259 | if (timeInSeconds == -1) | ||
260 | { | ||
261 | restartModule.AbortRestart("Restart aborted by region manager"); | ||
262 | return; | ||
263 | } | ||
264 | |||
259 | List<int> times = new List<int>(); | 265 | List<int> times = new List<int>(); |
260 | while (timeInSeconds > 0) | 266 | while (timeInSeconds > 0) |
261 | { | 267 | { |
diff --git a/OpenSim/Region/CoreModules/World/Region/RestartModule.cs b/OpenSim/Region/CoreModules/World/Region/RestartModule.cs index 7f6f4df..86821c6 100644 --- a/OpenSim/Region/CoreModules/World/Region/RestartModule.cs +++ b/OpenSim/Region/CoreModules/World/Region/RestartModule.cs | |||
@@ -240,6 +240,9 @@ namespace OpenSim.Region.CoreModules.World.Region | |||
240 | if (m_DialogModule != null && message != String.Empty) | 240 | if (m_DialogModule != null && message != String.Empty) |
241 | m_DialogModule.SendGeneralAlert(message); | 241 | m_DialogModule.SendGeneralAlert(message); |
242 | } | 242 | } |
243 | if (m_MarkerPath != String.Empty) | ||
244 | File.Delete(Path.Combine(m_MarkerPath, | ||
245 | m_Scene.RegionInfo.RegionID.ToString())); | ||
243 | } | 246 | } |
244 | 247 | ||
245 | private void HandleRegionRestart(string module, string[] args) | 248 | private void HandleRegionRestart(string module, string[] args) |