diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
index 5a011cecb3..93a6915947 100644
--- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs
@@ -2201,6 +2201,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
/// UUID of the region
/// - region_name
/// region name
+ /// - merge
+ /// true if oar should be merged
+ /// - skip-assets
+ /// true if assets should be skiped
///
///
/// region_uuid takes precedence over
@@ -2259,10 +2263,22 @@ namespace OpenSim.ApplicationPlugins.RemoteController
throw new Exception(String.Format("failed to switch to region {0}", region_name));
}
else throw new Exception("neither region_name nor region_uuid given");
+
+ bool mergeOar = false;
+ bool skipAssets = false;
+
+ if ((string)requestData["merge"] == "true")
+ {
+ mergeOar = true;
+ }
+ if ((string)requestData["skip-assets"] == "true")
+ {
+ skipAssets = true;
+ }
IRegionArchiverModule archiver = scene.RequestModuleInterface();
if (archiver != null)
- archiver.DearchiveRegion(filename);
+ archiver.DearchiveRegion(filename, mergeOar, skipAssets, Guid.Empty);
else
throw new Exception("Archiver module not present for scene");
@@ -2302,6 +2318,10 @@ namespace OpenSim.ApplicationPlugins.RemoteController
/// UUID of the region
/// - region_name
/// region name
+ /// - profile
+ /// profile url
+ /// - noassets
+ /// true if no assets should be saved
///
///
/// region_uuid takes precedence over
@@ -2359,12 +2379,29 @@ namespace OpenSim.ApplicationPlugins.RemoteController
}
else throw new Exception("neither region_name nor region_uuid given");
+ Dictionary options = new Dictionary();
+
+ //if (requestData.Contains("version"))
+ //{
+ // options["version"] = (string)requestData["version"];
+ //}
+
+ if (requestData.Contains("profile"))
+ {
+ options["profile"] = (string)requestData["profile"];
+ }
+
+ if (requestData["noassets"] == "true")
+ {
+ options["noassets"] = (string)requestData["noassets"] ;
+ }
+
IRegionArchiverModule archiver = scene.RequestModuleInterface();
if (archiver != null)
{
scene.EventManager.OnOarFileSaved += RemoteAdminOarSaveCompleted;
- archiver.ArchiveRegion(filename, new Dictionary());
+ archiver.ArchiveRegion(filename, options);
lock (m_saveOarLock) Monitor.Wait(m_saveOarLock,5000);
scene.EventManager.OnOarFileSaved -= RemoteAdminOarSaveCompleted;
}