diff options
author | Melanie | 2010-03-03 02:07:03 +0000 |
---|---|---|
committer | Melanie | 2010-03-03 02:07:03 +0000 |
commit | 028a87fe37002e7a0611f66babf1deee46c83804 (patch) | |
tree | 387aec499fd60c2012bed8148e6a2ddc847c3d95 /OpenSim/Region/CoreModules/World/Archiver | |
parent | Revert "test" (diff) | |
parent | Fixes Region.Framework tests. Although these tests don't fail, they need to b... (diff) | |
download | opensim-SC-028a87fe37002e7a0611f66babf1deee46c83804.zip opensim-SC-028a87fe37002e7a0611f66babf1deee46c83804.tar.gz opensim-SC-028a87fe37002e7a0611f66babf1deee46c83804.tar.bz2 opensim-SC-028a87fe37002e7a0611f66babf1deee46c83804.tar.xz |
Merge branch 'master' into careminster-presence-refactor
This brings careminster on the level of master. To be tested
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Archiver')
4 files changed, 60 insertions, 34 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index c7c9778..14bab6e 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -38,10 +38,11 @@ using OpenMetaverse; | |||
38 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
39 | using OpenSim.Framework.Serialization; | 39 | using OpenSim.Framework.Serialization; |
40 | using OpenSim.Framework.Serialization.External; | 40 | using OpenSim.Framework.Serialization.External; |
41 | using OpenSim.Framework.Communications.Cache; | 41 | |
42 | using OpenSim.Region.CoreModules.World.Terrain; | 42 | using OpenSim.Region.CoreModules.World.Terrain; |
43 | using OpenSim.Region.Framework.Interfaces; | 43 | using OpenSim.Region.Framework.Interfaces; |
44 | using OpenSim.Region.Framework.Scenes; | 44 | using OpenSim.Region.Framework.Scenes; |
45 | using OpenSim.Services.Interfaces; | ||
45 | 46 | ||
46 | namespace OpenSim.Region.CoreModules.World.Archiver | 47 | namespace OpenSim.Region.CoreModules.World.Archiver |
47 | { | 48 | { |
@@ -73,7 +74,19 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
73 | public ArchiveReadRequest(Scene scene, string loadPath, bool merge, Guid requestId) | 74 | public ArchiveReadRequest(Scene scene, string loadPath, bool merge, Guid requestId) |
74 | { | 75 | { |
75 | m_scene = scene; | 76 | m_scene = scene; |
76 | m_loadStream = new GZipStream(GetStream(loadPath), CompressionMode.Decompress); | 77 | |
78 | try | ||
79 | { | ||
80 | m_loadStream = new GZipStream(GetStream(loadPath), CompressionMode.Decompress); | ||
81 | } | ||
82 | catch (EntryPointNotFoundException e) | ||
83 | { | ||
84 | m_log.ErrorFormat( | ||
85 | "[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." | ||
86 | + "If you've manually installed Mono, have you appropriately updated zlib1g as well?"); | ||
87 | m_log.Error(e); | ||
88 | } | ||
89 | |||
77 | m_errorMessage = String.Empty; | 90 | m_errorMessage = String.Empty; |
78 | m_merge = merge; | 91 | m_merge = merge; |
79 | m_requestId = requestId; | 92 | m_requestId = requestId; |
@@ -181,10 +194,6 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
181 | 194 | ||
182 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid | 195 | // Try to retain the original creator/owner/lastowner if their uuid is present on this grid |
183 | // otherwise, use the master avatar uuid instead | 196 | // otherwise, use the master avatar uuid instead |
184 | UUID masterAvatarId = m_scene.RegionInfo.MasterAvatarAssignedUUID; | ||
185 | |||
186 | if (m_scene.RegionInfo.EstateSettings.EstateOwner != UUID.Zero) | ||
187 | masterAvatarId = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
188 | 197 | ||
189 | // Reload serialized parcels | 198 | // Reload serialized parcels |
190 | m_log.InfoFormat("[ARCHIVER]: Loading {0} parcels. Please wait.", serialisedParcels.Count); | 199 | m_log.InfoFormat("[ARCHIVER]: Loading {0} parcels. Please wait.", serialisedParcels.Count); |
@@ -193,7 +202,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
193 | { | 202 | { |
194 | LandData parcel = LandDataSerializer.Deserialize(serialisedParcel); | 203 | LandData parcel = LandDataSerializer.Deserialize(serialisedParcel); |
195 | if (!ResolveUserUuid(parcel.OwnerID)) | 204 | if (!ResolveUserUuid(parcel.OwnerID)) |
196 | parcel.OwnerID = masterAvatarId; | 205 | parcel.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
197 | landData.Add(parcel); | 206 | landData.Add(parcel); |
198 | } | 207 | } |
199 | m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData); | 208 | m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData); |
@@ -232,13 +241,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
232 | foreach (SceneObjectPart part in sceneObject.Children.Values) | 241 | foreach (SceneObjectPart part in sceneObject.Children.Values) |
233 | { | 242 | { |
234 | if (!ResolveUserUuid(part.CreatorID)) | 243 | if (!ResolveUserUuid(part.CreatorID)) |
235 | part.CreatorID = masterAvatarId; | 244 | part.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
236 | 245 | ||
237 | if (!ResolveUserUuid(part.OwnerID)) | 246 | if (!ResolveUserUuid(part.OwnerID)) |
238 | part.OwnerID = masterAvatarId; | 247 | part.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
239 | 248 | ||
240 | if (!ResolveUserUuid(part.LastOwnerID)) | 249 | if (!ResolveUserUuid(part.LastOwnerID)) |
241 | part.LastOwnerID = masterAvatarId; | 250 | part.LastOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
242 | 251 | ||
243 | // And zap any troublesome sit target information | 252 | // And zap any troublesome sit target information |
244 | part.SitTargetOrientation = new Quaternion(0, 0, 0, 1); | 253 | part.SitTargetOrientation = new Quaternion(0, 0, 0, 1); |
@@ -253,11 +262,14 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
253 | { | 262 | { |
254 | if (!ResolveUserUuid(kvp.Value.OwnerID)) | 263 | if (!ResolveUserUuid(kvp.Value.OwnerID)) |
255 | { | 264 | { |
256 | kvp.Value.OwnerID = masterAvatarId; | 265 | if (!ResolveUserUuid(kvp.Value.OwnerID)) |
257 | } | 266 | { |
258 | if (!ResolveUserUuid(kvp.Value.CreatorID)) | 267 | kvp.Value.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner; |
259 | { | 268 | } |
260 | kvp.Value.CreatorID = masterAvatarId; | 269 | if (!ResolveUserUuid(kvp.Value.CreatorID)) |
270 | { | ||
271 | kvp.Value.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner; | ||
272 | } | ||
261 | } | 273 | } |
262 | } | 274 | } |
263 | part.TaskInventory.LockItemsForRead(false); | 275 | part.TaskInventory.LockItemsForRead(false); |
@@ -291,8 +303,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
291 | { | 303 | { |
292 | if (!m_validUserUuids.ContainsKey(uuid)) | 304 | if (!m_validUserUuids.ContainsKey(uuid)) |
293 | { | 305 | { |
294 | CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(uuid); | 306 | UserAccount account = m_scene.UserAccountService.GetUserAccount(m_scene.RegionInfo.ScopeID, uuid); |
295 | if (profile != null && profile.UserProfile != null) | 307 | if (account != null) |
296 | m_validUserUuids.Add(uuid, true); | 308 | m_validUserUuids.Add(uuid, true); |
297 | else | 309 | else |
298 | m_validUserUuids.Add(uuid, false); | 310 | m_validUserUuids.Add(uuid, false); |
@@ -337,7 +349,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
337 | 349 | ||
338 | //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); | 350 | //m_log.DebugFormat("[ARCHIVER]: Importing asset {0}, type {1}", uuid, assetType); |
339 | 351 | ||
340 | AssetBase asset = new AssetBase(new UUID(uuid), String.Empty, assetType); | 352 | AssetBase asset = new AssetBase(new UUID(uuid), String.Empty, assetType, UUID.Zero.ToString()); |
341 | asset.Data = data; | 353 | asset.Data = data; |
342 | 354 | ||
343 | // We're relying on the asset service to do the sensible thing and not store the asset if it already | 355 | // We're relying on the asset service to do the sensible thing and not store the asset if it already |
@@ -422,6 +434,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
422 | currentRegionSettings.TerrainTexture4 = loadedRegionSettings.TerrainTexture4; | 434 | currentRegionSettings.TerrainTexture4 = loadedRegionSettings.TerrainTexture4; |
423 | currentRegionSettings.UseEstateSun = loadedRegionSettings.UseEstateSun; | 435 | currentRegionSettings.UseEstateSun = loadedRegionSettings.UseEstateSun; |
424 | currentRegionSettings.WaterHeight = loadedRegionSettings.WaterHeight; | 436 | currentRegionSettings.WaterHeight = loadedRegionSettings.WaterHeight; |
437 | |||
438 | currentRegionSettings.Save(); | ||
425 | 439 | ||
426 | IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>(); | 440 | IEstateModule estateModule = m_scene.RequestModuleInterface<IEstateModule>(); |
427 | 441 | ||
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs index 71bfe57..b61b341 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs | |||
@@ -65,7 +65,19 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
65 | public ArchiveWriteRequestPreparation(Scene scene, string savePath, Guid requestId) | 65 | public ArchiveWriteRequestPreparation(Scene scene, string savePath, Guid requestId) |
66 | { | 66 | { |
67 | m_scene = scene; | 67 | m_scene = scene; |
68 | m_saveStream = new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress); | 68 | |
69 | try | ||
70 | { | ||
71 | m_saveStream = new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress); | ||
72 | } | ||
73 | catch (EntryPointNotFoundException e) | ||
74 | { | ||
75 | m_log.ErrorFormat( | ||
76 | "[ARCHIVER]: Mismatch between Mono and zlib1g library version when trying to create compression stream." | ||
77 | + "If you've manually installed Mono, have you appropriately updated zlib1g as well?"); | ||
78 | m_log.Error(e); | ||
79 | } | ||
80 | |||
69 | m_requestId = requestId; | 81 | m_requestId = requestId; |
70 | } | 82 | } |
71 | 83 | ||
diff --git a/OpenSim/Region/CoreModules/World/Archiver/AssetsDearchiver.cs b/OpenSim/Region/CoreModules/World/Archiver/AssetsDearchiver.cs index 2d2c570..2c04008 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/AssetsDearchiver.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/AssetsDearchiver.cs | |||
@@ -158,7 +158,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver | |||
158 | 158 | ||
159 | m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", filename); | 159 | m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", filename); |
160 | 160 | ||
161 | AssetBase asset = new AssetBase(new UUID(filename), metadata.Name, metadata.AssetType); | 161 | AssetBase asset = new AssetBase(new UUID(filename), metadata.Name, metadata.AssetType, UUID.Zero.ToString()); |
162 | asset.Description = metadata.Description; | 162 | asset.Description = metadata.Description; |
163 | asset.Data = data; | 163 | asset.Data = data; |
164 | 164 | ||
diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs index c3e57f0..de16d89 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs | |||
@@ -34,7 +34,7 @@ using NUnit.Framework; | |||
34 | using NUnit.Framework.SyntaxHelpers; | 34 | using NUnit.Framework.SyntaxHelpers; |
35 | using OpenMetaverse; | 35 | using OpenMetaverse; |
36 | using OpenSim.Framework; | 36 | using OpenSim.Framework; |
37 | using OpenSim.Framework.Communications.Cache; | 37 | |
38 | using OpenSim.Framework.Serialization; | 38 | using OpenSim.Framework.Serialization; |
39 | using OpenSim.Framework.Serialization.External; | 39 | using OpenSim.Framework.Serialization.External; |
40 | using OpenSim.Region.CoreModules.World.Serialiser; | 40 | using OpenSim.Region.CoreModules.World.Serialiser; |
@@ -63,7 +63,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
63 | SerialiserModule serialiserModule = new SerialiserModule(); | 63 | SerialiserModule serialiserModule = new SerialiserModule(); |
64 | TerrainModule terrainModule = new TerrainModule(); | 64 | TerrainModule terrainModule = new TerrainModule(); |
65 | 65 | ||
66 | m_scene = SceneSetupHelpers.SetupScene("scene1"); | 66 | m_scene = SceneSetupHelpers.SetupScene("useraccounts"); |
67 | SceneSetupHelpers.SetupSceneModules(m_scene, m_archiverModule, serialiserModule, terrainModule); | 67 | SceneSetupHelpers.SetupSceneModules(m_scene, m_archiverModule, serialiserModule, terrainModule); |
68 | } | 68 | } |
69 | 69 | ||
@@ -99,7 +99,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
99 | Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); | 99 | Quaternion rotationOffset = new Quaternion(20, 30, 40, 50); |
100 | Vector3 offsetPosition = new Vector3(5, 10, 15); | 100 | Vector3 offsetPosition = new Vector3(5, 10, 15); |
101 | 101 | ||
102 | return new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition) { Name = partName }; | 102 | return new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition) { Name = partName }; |
103 | } | 103 | } |
104 | 104 | ||
105 | protected SceneObjectPart CreateSceneObjectPart2() | 105 | protected SceneObjectPart CreateSceneObjectPart2() |
@@ -112,7 +112,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
112 | Vector3 offsetPosition = new Vector3(20, 25, 30); | 112 | Vector3 offsetPosition = new Vector3(20, 25, 30); |
113 | 113 | ||
114 | return new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition) { Name = partName }; | 114 | return new SceneObjectPart(ownerId, shape, groupPosition, rotationOffset, offsetPosition) { Name = partName }; |
115 | } | 115 | } |
116 | 116 | ||
117 | /// <summary> | 117 | /// <summary> |
118 | /// Test saving a V0.2 OpenSim Region Archive. | 118 | /// Test saving a V0.2 OpenSim Region Archive. |
@@ -231,7 +231,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
231 | foreach (string name in names) | 231 | foreach (string name in names) |
232 | { | 232 | { |
233 | if (name.EndsWith(".Resources.test-sound.wav")) | 233 | if (name.EndsWith(".Resources.test-sound.wav")) |
234 | soundDataResourceName = name; | 234 | soundDataResourceName = name; |
235 | } | 235 | } |
236 | Assert.That(soundDataResourceName, Is.Not.Null); | 236 | Assert.That(soundDataResourceName, Is.Not.Null); |
237 | 237 | ||
@@ -259,7 +259,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
259 | = new TaskInventoryItem { AssetID = soundUuid, ItemID = soundItemUuid, Name = soundItemName }; | 259 | = new TaskInventoryItem { AssetID = soundUuid, ItemID = soundItemUuid, Name = soundItemName }; |
260 | part1.Inventory.AddInventoryItem(item1, true); | 260 | part1.Inventory.AddInventoryItem(item1, true); |
261 | } | 261 | } |
262 | } | 262 | } |
263 | 263 | ||
264 | m_scene.AddNewSceneObject(object1, false); | 264 | m_scene.AddNewSceneObject(object1, false); |
265 | 265 | ||
@@ -306,15 +306,15 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
306 | /// Test loading the region settings of a V0.2 OpenSim Region Archive. | 306 | /// Test loading the region settings of a V0.2 OpenSim Region Archive. |
307 | /// </summary> | 307 | /// </summary> |
308 | [Test] | 308 | [Test] |
309 | public void TestLoadOarV0_2RegionSettings() | 309 | public void TestLoadOarV0_2RegionSettings() |
310 | { | 310 | { |
311 | TestHelper.InMethod(); | 311 | TestHelper.InMethod(); |
312 | //log4net.Config.XmlConfigurator.Configure(); | 312 | //log4net.Config.XmlConfigurator.Configure(); |
313 | 313 | ||
314 | MemoryStream archiveWriteStream = new MemoryStream(); | 314 | MemoryStream archiveWriteStream = new MemoryStream(); |
315 | TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); | 315 | TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream); |
316 | 316 | ||
317 | tar.WriteDir(ArchiveConstants.TERRAINS_PATH); | 317 | tar.WriteDir(ArchiveConstants.TERRAINS_PATH); |
318 | tar.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, ArchiveWriteRequestExecution.Create0p2ControlFile()); | 318 | tar.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, ArchiveWriteRequestExecution.Create0p2ControlFile()); |
319 | 319 | ||
320 | RegionSettings rs = new RegionSettings(); | 320 | RegionSettings rs = new RegionSettings(); |
@@ -329,11 +329,11 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
329 | rs.DisablePhysics = true; | 329 | rs.DisablePhysics = true; |
330 | rs.DisableScripts = true; | 330 | rs.DisableScripts = true; |
331 | rs.Elevation1NW = 15.9; | 331 | rs.Elevation1NW = 15.9; |
332 | rs.Elevation1NE = 45.3; | 332 | rs.Elevation1NE = 45.3; |
333 | rs.Elevation1SE = 49; | 333 | rs.Elevation1SE = 49; |
334 | rs.Elevation1SW = 1.9; | 334 | rs.Elevation1SW = 1.9; |
335 | rs.Elevation2NW = 4.5; | 335 | rs.Elevation2NW = 4.5; |
336 | rs.Elevation2NE = 19.2; | 336 | rs.Elevation2NE = 19.2; |
337 | rs.Elevation2SE = 9.2; | 337 | rs.Elevation2SE = 9.2; |
338 | rs.Elevation2SW = 2.1; | 338 | rs.Elevation2SW = 2.1; |
339 | rs.FixedSun = true; | 339 | rs.FixedSun = true; |
@@ -411,7 +411,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
411 | // Quaternion part2RotationOffset = new Quaternion(60, 70, 80, 90); | 411 | // Quaternion part2RotationOffset = new Quaternion(60, 70, 80, 90); |
412 | // Vector3 part2OffsetPosition = new Vector3(20, 25, 30); | 412 | // Vector3 part2OffsetPosition = new Vector3(20, 25, 30); |
413 | 413 | ||
414 | SceneObjectPart part2 = CreateSceneObjectPart2(); | 414 | SceneObjectPart part2 = CreateSceneObjectPart2(); |
415 | 415 | ||
416 | // Create an oar file that we can use for the merge | 416 | // Create an oar file that we can use for the merge |
417 | { | 417 | { |
@@ -420,9 +420,9 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests | |||
420 | TerrainModule terrainModule = new TerrainModule(); | 420 | TerrainModule terrainModule = new TerrainModule(); |
421 | 421 | ||
422 | Scene scene = SceneSetupHelpers.SetupScene(); | 422 | Scene scene = SceneSetupHelpers.SetupScene(); |
423 | SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule); | 423 | SceneSetupHelpers.SetupSceneModules(scene, archiverModule, serialiserModule, terrainModule); |
424 | 424 | ||
425 | m_scene.AddNewSceneObject(new SceneObjectGroup(part2), false); | 425 | m_scene.AddNewSceneObject(new SceneObjectGroup(part2), false); |
426 | 426 | ||
427 | // Write out this scene | 427 | // Write out this scene |
428 | scene.EventManager.OnOarFileSaved += SaveCompleted; | 428 | scene.EventManager.OnOarFileSaved += SaveCompleted; |