Add "dump asset" command to remote asset connector (the only one that uses a
cache at all)prioritization
parent
5e9da4daab
commit
7c1fdb2540
|
@ -32,9 +32,11 @@ using System.IO;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using Nini.Config;
|
using Nini.Config;
|
||||||
using OpenSim.Framework;
|
using OpenSim.Framework;
|
||||||
|
using OpenSim.Framework.Console;
|
||||||
using OpenSim.Framework.Communications;
|
using OpenSim.Framework.Communications;
|
||||||
using OpenSim.Framework.Servers.HttpServer;
|
using OpenSim.Framework.Servers.HttpServer;
|
||||||
using OpenSim.Services.Interfaces;
|
using OpenSim.Services.Interfaces;
|
||||||
|
using OpenMetaverse;
|
||||||
|
|
||||||
namespace OpenSim.Services.Connectors
|
namespace OpenSim.Services.Connectors
|
||||||
{
|
{
|
||||||
|
@ -79,6 +81,10 @@ namespace OpenSim.Services.Connectors
|
||||||
throw new Exception("Asset connector init error");
|
throw new Exception("Asset connector init error");
|
||||||
}
|
}
|
||||||
m_ServerURI = serviceURI;
|
m_ServerURI = serviceURI;
|
||||||
|
|
||||||
|
MainConsole.Instance.Commands.AddCommand("asset", false, "dump asset",
|
||||||
|
"dump asset <id> <file>",
|
||||||
|
"dump one cached asset", HandleDumpAsset);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void SetCache(IImprovedAssetCache cache)
|
protected void SetCache(IImprovedAssetCache cache)
|
||||||
|
@ -264,5 +270,43 @@ namespace OpenSim.Services.Connectors
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void HandleDumpAsset(string module, string[] args)
|
||||||
|
{
|
||||||
|
if (args.Length != 4)
|
||||||
|
{
|
||||||
|
MainConsole.Instance.Output("Syntax: dump asset <id> <file>");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
UUID assetID;
|
||||||
|
|
||||||
|
if (!UUID.TryParse(args[2], out assetID))
|
||||||
|
{
|
||||||
|
MainConsole.Instance.Output("Invalid asset ID");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_Cache == null)
|
||||||
|
{
|
||||||
|
MainConsole.Instance.Output("Instance uses no cache");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AssetBase asset = asset = m_Cache.Get(assetID.ToString());
|
||||||
|
|
||||||
|
if (asset == null)
|
||||||
|
{
|
||||||
|
MainConsole.Instance.Output("Asset not found in cache");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
string fileName = args[3];
|
||||||
|
|
||||||
|
FileStream fs = File.Create(fileName);
|
||||||
|
fs.Write(asset.Data, 0, asset.Data.Length);
|
||||||
|
|
||||||
|
fs.Close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue