aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs41
1 files changed, 39 insertions, 2 deletions
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index 5a011ce..93a6915 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -2201,6 +2201,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
2201 /// <description>UUID of the region</description></item> 2201 /// <description>UUID of the region</description></item>
2202 /// <item><term>region_name</term> 2202 /// <item><term>region_name</term>
2203 /// <description>region name</description></item> 2203 /// <description>region name</description></item>
2204 /// <item><term>merge</term>
2205 /// <description>true if oar should be merged</description></item>
2206 /// <item><term>skip-assets</term>
2207 /// <description>true if assets should be skiped</description></item>
2204 /// </list> 2208 /// </list>
2205 /// 2209 ///
2206 /// <code>region_uuid</code> takes precedence over 2210 /// <code>region_uuid</code> takes precedence over
@@ -2259,10 +2263,22 @@ namespace OpenSim.ApplicationPlugins.RemoteController
2259 throw new Exception(String.Format("failed to switch to region {0}", region_name)); 2263 throw new Exception(String.Format("failed to switch to region {0}", region_name));
2260 } 2264 }
2261 else throw new Exception("neither region_name nor region_uuid given"); 2265 else throw new Exception("neither region_name nor region_uuid given");
2266
2267 bool mergeOar = false;
2268 bool skipAssets = false;
2269
2270 if ((string)requestData["merge"] == "true")
2271 {
2272 mergeOar = true;
2273 }
2274 if ((string)requestData["skip-assets"] == "true")
2275 {
2276 skipAssets = true;
2277 }
2262 2278
2263 IRegionArchiverModule archiver = scene.RequestModuleInterface<IRegionArchiverModule>(); 2279 IRegionArchiverModule archiver = scene.RequestModuleInterface<IRegionArchiverModule>();
2264 if (archiver != null) 2280 if (archiver != null)
2265 archiver.DearchiveRegion(filename); 2281 archiver.DearchiveRegion(filename, mergeOar, skipAssets, Guid.Empty);
2266 else 2282 else
2267 throw new Exception("Archiver module not present for scene"); 2283 throw new Exception("Archiver module not present for scene");
2268 2284
@@ -2302,6 +2318,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
2302 /// <description>UUID of the region</description></item> 2318 /// <description>UUID of the region</description></item>
2303 /// <item><term>region_name</term> 2319 /// <item><term>region_name</term>
2304 /// <description>region name</description></item> 2320 /// <description>region name</description></item>
2321 /// <item><term>profile</term>
2322 /// <description>profile url</description></item>
2323 /// <item><term>noassets</term>
2324 /// <description>true if no assets should be saved</description></item>
2305 /// </list> 2325 /// </list>
2306 /// 2326 ///
2307 /// <code>region_uuid</code> takes precedence over 2327 /// <code>region_uuid</code> takes precedence over
@@ -2359,12 +2379,29 @@ namespace OpenSim.ApplicationPlugins.RemoteController
2359 } 2379 }
2360 else throw new Exception("neither region_name nor region_uuid given"); 2380 else throw new Exception("neither region_name nor region_uuid given");
2361 2381
2382 Dictionary<string, object> options = new Dictionary<string, object>();
2383
2384 //if (requestData.Contains("version"))
2385 //{
2386 // options["version"] = (string)requestData["version"];
2387 //}
2388
2389 if (requestData.Contains("profile"))
2390 {
2391 options["profile"] = (string)requestData["profile"];
2392 }
2393
2394 if (requestData["noassets"] == "true")
2395 {
2396 options["noassets"] = (string)requestData["noassets"] ;
2397 }
2398
2362 IRegionArchiverModule archiver = scene.RequestModuleInterface<IRegionArchiverModule>(); 2399 IRegionArchiverModule archiver = scene.RequestModuleInterface<IRegionArchiverModule>();
2363 2400
2364 if (archiver != null) 2401 if (archiver != null)
2365 { 2402 {
2366 scene.EventManager.OnOarFileSaved += RemoteAdminOarSaveCompleted; 2403 scene.EventManager.OnOarFileSaved += RemoteAdminOarSaveCompleted;
2367 archiver.ArchiveRegion(filename, new Dictionary<string, object>()); 2404 archiver.ArchiveRegion(filename, options);
2368 lock (m_saveOarLock) Monitor.Wait(m_saveOarLock,5000); 2405 lock (m_saveOarLock) Monitor.Wait(m_saveOarLock,5000);
2369 scene.EventManager.OnOarFileSaved -= RemoteAdminOarSaveCompleted; 2406 scene.EventManager.OnOarFileSaved -= RemoteAdminOarSaveCompleted;
2370 } 2407 }