diff options
Diffstat (limited to 'OpenSim')
3 files changed, 44 insertions, 29 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index eff2422..69bb4d8 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs | |||
@@ -686,7 +686,7 @@ namespace OpenSim | |||
686 | #endregion | 686 | #endregion |
687 | 687 | ||
688 | /// <summary> | 688 | /// <summary> |
689 | /// Save inventory to a file. | 689 | /// Save inventory to a file archive |
690 | /// </summary> | 690 | /// </summary> |
691 | /// <param name="cmdparams"></param> | 691 | /// <param name="cmdparams"></param> |
692 | protected void SaveInv(string[] cmdparams) | 692 | protected void SaveInv(string[] cmdparams) |
@@ -697,11 +697,19 @@ namespace OpenSim | |||
697 | m_log.Error("[CONSOLE]: usage is save-inv <first name> <last name> <inventory path> [<save file path>]"); | 697 | m_log.Error("[CONSOLE]: usage is save-inv <first name> <last name> <inventory path> [<save file path>]"); |
698 | return; | 698 | return; |
699 | } | 699 | } |
700 | new InventoryArchiveWriteRequest(m_sceneManager.CurrentOrFirstScene,m_commsManager).execute(cmdparams); | 700 | |
701 | string firstName = cmdparams[0]; | ||
702 | string lastName = cmdparams[1]; | ||
703 | string invPath = cmdparams[2]; | ||
704 | string savePath = (cmdparams.Length > 3 ? cmdparams[3] : DEFAULT_INV_BACKUP_FILENAME); | ||
705 | |||
706 | new InventoryArchiveWriteRequest( | ||
707 | m_sceneManager.CurrentOrFirstScene,m_commsManager).execute( | ||
708 | firstName, lastName, invPath, savePath); | ||
701 | } | 709 | } |
702 | 710 | ||
703 | /// <summary> | 711 | /// <summary> |
704 | /// Load inventory from a tar.gz file. | 712 | /// Load inventory from an inventory file archive |
705 | /// </summary> | 713 | /// </summary> |
706 | /// <param name="cmdparams"></param> | 714 | /// <param name="cmdparams"></param> |
707 | protected void LoadInv(string[] cmdparams) | 715 | protected void LoadInv(string[] cmdparams) |
@@ -712,7 +720,15 @@ namespace OpenSim | |||
712 | m_log.Error("[CONSOLE]: usage is load-inv <first name> <last name> <inventory path> [<load file path>]"); | 720 | m_log.Error("[CONSOLE]: usage is load-inv <first name> <last name> <inventory path> [<load file path>]"); |
713 | return; | 721 | return; |
714 | } | 722 | } |
715 | new InventoryArchiveReadRequest(m_sceneManager.CurrentOrFirstScene, m_commsManager).execute(cmdparams); | 723 | |
724 | string firstName = cmdparams[0]; | ||
725 | string lastName = cmdparams[1]; | ||
726 | string invPath = cmdparams[2]; | ||
727 | string loadPath = (cmdparams.Length > 3 ? cmdparams[3] : DEFAULT_INV_BACKUP_FILENAME); | ||
728 | |||
729 | new InventoryArchiveReadRequest( | ||
730 | m_sceneManager.CurrentOrFirstScene, m_commsManager).execute( | ||
731 | firstName, lastName, invPath, loadPath); | ||
716 | } | 732 | } |
717 | 733 | ||
718 | /// <summary> | 734 | /// <summary> |
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs index 91763a7..79e00cd 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveReadRequest.cs | |||
@@ -45,14 +45,15 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
45 | { | 45 | { |
46 | public class InventoryArchiveReadRequest | 46 | public class InventoryArchiveReadRequest |
47 | { | 47 | { |
48 | private static ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
49 | |||
48 | protected Scene scene; | 50 | protected Scene scene; |
49 | protected TarArchiveReader archive; | 51 | protected TarArchiveReader archive; |
50 | private static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); | 52 | private static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); |
51 | ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 53 | |
52 | CachedUserInfo userInfo; | 54 | CachedUserInfo userInfo; |
53 | UserProfileData userProfile; | 55 | UserProfileData userProfile; |
54 | CommunicationsManager commsManager; | 56 | CommunicationsManager commsManager; |
55 | string loadPath; | ||
56 | 57 | ||
57 | public InventoryArchiveReadRequest(Scene currentScene, CommunicationsManager commsManager) | 58 | public InventoryArchiveReadRequest(Scene currentScene, CommunicationsManager commsManager) |
58 | { | 59 | { |
@@ -142,22 +143,17 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
142 | return item; | 143 | return item; |
143 | } | 144 | } |
144 | 145 | ||
145 | public void execute(string[] cmdparams) | 146 | public void execute(string firstName, string lastName, string invPath, string loadPath) |
146 | { | 147 | { |
147 | string filePath = "ERROR"; | 148 | string filePath = "ERROR"; |
148 | int successfulAssetRestores = 0; | 149 | int successfulAssetRestores = 0; |
149 | int failedAssetRestores = 0; | 150 | int failedAssetRestores = 0; |
150 | 151 | int successfulItemRestores = 0; | |
151 | string firstName = cmdparams[0]; | ||
152 | string lastName = cmdparams[1]; | ||
153 | //string invPath = cmdparams[2]; | ||
154 | loadPath = (cmdparams.Length > 3 ? cmdparams[3] : "inventory.tar.gz"); | ||
155 | 152 | ||
156 | archive | 153 | archive |
157 | = new TarArchiveReader(new GZipStream( | 154 | = new TarArchiveReader(new GZipStream( |
158 | new FileStream(loadPath, FileMode.Open), CompressionMode.Decompress)); | 155 | new FileStream(loadPath, FileMode.Open), CompressionMode.Decompress)); |
159 | 156 | ||
160 | |||
161 | userProfile = commsManager.UserService.GetUserProfile(firstName, lastName); | 157 | userProfile = commsManager.UserService.GetUserProfile(firstName, lastName); |
162 | userInfo = commsManager.UserProfileCacheService.GetUserDetails(userProfile.ID); | 158 | userInfo = commsManager.UserProfileCacheService.GetUserDetails(userProfile.ID); |
163 | 159 | ||
@@ -175,13 +171,18 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
175 | { | 171 | { |
176 | //Load the item | 172 | //Load the item |
177 | InventoryItemBase item = loadInvItem(filePath, m_asciiEncoding.GetString(data)); | 173 | InventoryItemBase item = loadInvItem(filePath, m_asciiEncoding.GetString(data)); |
178 | if (item != null) userInfo.AddItem(item); | 174 | if (item != null) |
175 | { | ||
176 | userInfo.AddItem(item); | ||
177 | successfulItemRestores++; | ||
178 | } | ||
179 | } | 179 | } |
180 | } | 180 | } |
181 | 181 | ||
182 | archive.Close(); | 182 | archive.Close(); |
183 | 183 | ||
184 | m_log.InfoFormat("[ARCHIVER]: Restored {0} assets", successfulAssetRestores); | 184 | m_log.DebugFormat("[ARCHIVER]: Restored {0} assets", successfulAssetRestores); |
185 | m_log.InfoFormat("[ARCHIVER]: Restored {0} items", successfulItemRestores); | ||
185 | } | 186 | } |
186 | 187 | ||
187 | /// <summary> | 188 | /// <summary> |
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs index 195dade..017ebcc 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs | |||
@@ -41,15 +41,20 @@ using log4net; | |||
41 | 41 | ||
42 | 42 | ||
43 | namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | 43 | namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver |
44 | { | 44 | { |
45 | public class InventoryArchiveWriteRequest | 45 | public class InventoryArchiveWriteRequest |
46 | { | 46 | { |
47 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | ||
48 | |||
47 | protected Scene scene; | 49 | protected Scene scene; |
48 | protected TarArchiveWriter archive; | 50 | protected TarArchiveWriter archive; |
49 | protected CommunicationsManager commsManager; | 51 | protected CommunicationsManager commsManager; |
50 | Dictionary<UUID, int> assetUuids; | 52 | Dictionary<UUID, int> assetUuids; |
51 | string savePath; | 53 | |
52 | 54 | /// <value> | |
55 | /// The path to which the inventory archive will be saved. | ||
56 | /// </value> | ||
57 | private string m_savePath; | ||
53 | 58 | ||
54 | public InventoryArchiveWriteRequest(Scene currentScene, CommunicationsManager commsManager) | 59 | public InventoryArchiveWriteRequest(Scene currentScene, CommunicationsManager commsManager) |
55 | { | 60 | { |
@@ -63,7 +68,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
63 | { | 68 | { |
64 | AssetsArchiver assetsArchiver = new AssetsArchiver(assetsFound); | 69 | AssetsArchiver assetsArchiver = new AssetsArchiver(assetsFound); |
65 | assetsArchiver.Archive(archive); | 70 | assetsArchiver.Archive(archive); |
66 | archive.WriteTar(new GZipStream(new FileStream(savePath, FileMode.Create), CompressionMode.Compress)); | 71 | archive.WriteTar(new GZipStream(new FileStream(m_savePath, FileMode.Create), CompressionMode.Compress)); |
67 | } | 72 | } |
68 | 73 | ||
69 | protected void saveInvItem(InventoryItemBase inventoryItem, string path) | 74 | protected void saveInvItem(InventoryItemBase inventoryItem, string path) |
@@ -156,15 +161,10 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
156 | } | 161 | } |
157 | } | 162 | } |
158 | 163 | ||
159 | public void execute(string[] cmdparams) | 164 | public void execute(string firstName, string lastName, string invPath, string savePath) |
160 | { | 165 | { |
161 | ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 166 | m_savePath = savePath; |
162 | 167 | ||
163 | string firstName = cmdparams[0]; | ||
164 | string lastName = cmdparams[1]; | ||
165 | string invPath = cmdparams[2]; | ||
166 | savePath = (cmdparams.Length > 3 ? cmdparams[3] : "inventory.tar.gz"); | ||
167 | |||
168 | UserProfileData userProfile = commsManager.UserService.GetUserProfile(firstName, lastName); | 168 | UserProfileData userProfile = commsManager.UserService.GetUserProfile(firstName, lastName); |
169 | if (null == userProfile) | 169 | if (null == userProfile) |
170 | { | 170 | { |
@@ -242,8 +242,6 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Inventory.Archiver | |||
242 | } | 242 | } |
243 | 243 | ||
244 | new AssetsRequest(assetUuids.Keys, scene.AssetCache, ReceivedAllAssets).Execute(); | 244 | new AssetsRequest(assetUuids.Keys, scene.AssetCache, ReceivedAllAssets).Execute(); |
245 | |||
246 | } | 245 | } |
247 | |||
248 | } | 246 | } |
249 | } | 247 | } |