* Apply further groups xmlrpc to stop an exception in the exception handler
* Thanks mcortez0.6.5-rc1
parent
517a454086
commit
1bf0bc8bb3
|
@ -194,14 +194,15 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet).
|
/// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where
|
||||||
|
/// an account exists with the creator name.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Test]
|
[Test]
|
||||||
public void TestLoadIarV0p1()
|
public void TestLoadIarV0p1ExistingUsers()
|
||||||
{
|
{
|
||||||
Console.WriteLine("Started {0}", MethodBase.GetCurrentMethod());
|
Console.WriteLine("Started {0}", MethodBase.GetCurrentMethod());
|
||||||
|
|
||||||
log4net.Config.XmlConfigurator.Configure();
|
//log4net.Config.XmlConfigurator.Configure();
|
||||||
|
|
||||||
string userFirstName = "Mr";
|
string userFirstName = "Mr";
|
||||||
string userLastName = "Tiddles";
|
string userLastName = "Tiddles";
|
||||||
|
@ -257,6 +258,75 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
|
||||||
Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod());
|
Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
/// <summary>
|
||||||
|
/// Test loading a V0.1 OpenSim Inventory Archive (subject to change since there is no fixed format yet) where
|
||||||
|
/// no account exists with the creator name
|
||||||
|
/// </summary>
|
||||||
|
[Test]
|
||||||
|
public void TestLoadIarV0p1TempProfiles()
|
||||||
|
{
|
||||||
|
Console.WriteLine("### Started {0} ###", MethodBase.GetCurrentMethod());
|
||||||
|
|
||||||
|
log4net.Config.XmlConfigurator.Configure();
|
||||||
|
|
||||||
|
string userFirstName = "Dennis";
|
||||||
|
string userLastName = "Menace";
|
||||||
|
UUID userUuid = UUID.Parse("00000000-0000-0000-0000-000000000aaa");
|
||||||
|
string user2FirstName = "Walter";
|
||||||
|
string user2LastName = "Mitty";
|
||||||
|
|
||||||
|
string itemName = "b.lsl";
|
||||||
|
string archiveItemName
|
||||||
|
= string.Format("{0}{1}{2}", itemName, "_", UUID.Random());
|
||||||
|
|
||||||
|
MemoryStream archiveWriteStream = new MemoryStream();
|
||||||
|
TarArchiveWriter tar = new TarArchiveWriter(archiveWriteStream);
|
||||||
|
|
||||||
|
InventoryItemBase item1 = new InventoryItemBase();
|
||||||
|
item1.Name = itemName;
|
||||||
|
item1.AssetID = UUID.Random();
|
||||||
|
item1.GroupID = UUID.Random();
|
||||||
|
item1.CreatorId = OspResolver.MakeOspa(user2FirstName, user2LastName);
|
||||||
|
item1.Owner = UUID.Zero;
|
||||||
|
|
||||||
|
string item1FileName
|
||||||
|
= string.Format("{0}{1}", ArchiveConstants.INVENTORY_PATH, archiveItemName);
|
||||||
|
tar.WriteFile(item1FileName, UserInventoryItemSerializer.Serialize(item1));
|
||||||
|
tar.Close();
|
||||||
|
|
||||||
|
MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
|
||||||
|
SerialiserModule serialiserModule = new SerialiserModule();
|
||||||
|
InventoryArchiverModule archiverModule = new InventoryArchiverModule();
|
||||||
|
|
||||||
|
// Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
|
||||||
|
Scene scene = SceneSetupHelpers.SetupScene();
|
||||||
|
IUserAdminService userAdminService = scene.CommsManager.UserAdminService;
|
||||||
|
|
||||||
|
SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule);
|
||||||
|
userAdminService.AddUser(
|
||||||
|
userFirstName, userLastName, "meowfood", String.Empty, 1000, 1000, userUuid);
|
||||||
|
|
||||||
|
archiverModule.DearchiveInventory(userFirstName, userLastName, "/", archiveReadStream);
|
||||||
|
|
||||||
|
// Check that a suitable temporary user profile has been created.
|
||||||
|
UserProfileData user2Profile
|
||||||
|
= scene.CommsManager.UserService.GetUserProfile(user2FirstName, user2LastName);
|
||||||
|
Assert.That(user2Profile, Is.Not.Null);
|
||||||
|
Assert.That(user2Profile.FirstName == user2FirstName);
|
||||||
|
Assert.That(user2Profile.SurName == user2LastName);
|
||||||
|
|
||||||
|
CachedUserInfo userInfo
|
||||||
|
= scene.CommsManager.UserProfileCacheService.GetUserDetails(userFirstName, userLastName);
|
||||||
|
InventoryItemBase foundItem = userInfo.RootFolder.FindItemByPath(itemName);
|
||||||
|
|
||||||
|
Assert.That(foundItem.CreatorId, Is.EqualTo(user2Profile.ID.ToString()));
|
||||||
|
Assert.That(foundItem.Owner, Is.EqualTo(userUuid));
|
||||||
|
|
||||||
|
Console.WriteLine("### Successfully completed {0} ###", MethodBase.GetCurrentMethod());
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Test replication of an archive path to the user's inventory.
|
/// Test replication of an archive path to the user's inventory.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -146,9 +146,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
| GroupPowers.VoteOnProposal;
|
| GroupPowers.VoteOnProposal;
|
||||||
param["OwnersPowers"] = ((ulong)OwnerPowers).ToString();
|
param["OwnersPowers"] = ((ulong)OwnerPowers).ToString();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Hashtable respData = XmlRpcCall("groups.createGroup", param);
|
Hashtable respData = XmlRpcCall("groups.createGroup", param);
|
||||||
|
|
||||||
if (respData.Contains("error"))
|
if (respData.Contains("error"))
|
||||||
|
@ -237,7 +234,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
param["Name"] = GroupName.ToString();
|
param["Name"] = GroupName.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Hashtable respData = XmlRpcCall("groups.getGroup", param);
|
Hashtable respData = XmlRpcCall("groups.getGroup", param);
|
||||||
|
|
||||||
if (respData.Contains("error"))
|
if (respData.Contains("error"))
|
||||||
|
@ -246,7 +242,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
}
|
}
|
||||||
|
|
||||||
return GroupProfileHashtableToGroupRecord(respData);
|
return GroupProfileHashtableToGroupRecord(respData);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GroupProfileData GetMemberGroupProfile(UUID GroupID, UUID AgentID)
|
public GroupProfileData GetMemberGroupProfile(UUID GroupID, UUID AgentID)
|
||||||
|
@ -254,7 +249,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
Hashtable param = new Hashtable();
|
Hashtable param = new Hashtable();
|
||||||
param["GroupID"] = GroupID.ToString();
|
param["GroupID"] = GroupID.ToString();
|
||||||
|
|
||||||
|
|
||||||
Hashtable respData = XmlRpcCall("groups.getGroup", param);
|
Hashtable respData = XmlRpcCall("groups.getGroup", param);
|
||||||
|
|
||||||
if (respData.Contains("error"))
|
if (respData.Contains("error"))
|
||||||
|
@ -270,7 +264,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
MemberGroupProfile.PowersMask = MemberInfo.GroupPowers;
|
MemberGroupProfile.PowersMask = MemberInfo.GroupPowers;
|
||||||
|
|
||||||
return MemberGroupProfile;
|
return MemberGroupProfile;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private GroupProfileData GroupProfileHashtableToGroupProfileData(Hashtable groupProfile)
|
private GroupProfileData GroupProfileHashtableToGroupProfileData(Hashtable groupProfile)
|
||||||
|
@ -350,7 +343,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
param["ListInProfile"] = ListInProfile ? "1" : "0";
|
param["ListInProfile"] = ListInProfile ? "1" : "0";
|
||||||
|
|
||||||
XmlRpcCall("groups.setAgentGroupInfo", param);
|
XmlRpcCall("groups.setAgentGroupInfo", param);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddAgentToGroupInvite(UUID inviteID, UUID groupID, UUID roleID, UUID agentID)
|
public void AddAgentToGroupInvite(UUID inviteID, UUID groupID, UUID roleID, UUID agentID)
|
||||||
|
@ -362,7 +354,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
param["GroupID"] = groupID.ToString();
|
param["GroupID"] = groupID.ToString();
|
||||||
|
|
||||||
XmlRpcCall("groups.addAgentToGroupInvite", param);
|
XmlRpcCall("groups.addAgentToGroupInvite", param);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public GroupInviteInfo GetAgentToGroupInvite(UUID inviteID)
|
public GroupInviteInfo GetAgentToGroupInvite(UUID inviteID)
|
||||||
|
@ -434,7 +425,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
XmlRpcCall("groups.removeAgentFromGroupRole", param);
|
XmlRpcCall("groups.removeAgentFromGroupRole", param);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<DirGroupsReplyData> FindGroups(string search)
|
public List<DirGroupsReplyData> FindGroups(string search)
|
||||||
{
|
{
|
||||||
Hashtable param = new Hashtable();
|
Hashtable param = new Hashtable();
|
||||||
|
@ -495,7 +485,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
return HashTableToGroupMembershipData(respData);
|
return HashTableToGroupMembershipData(respData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<GroupMembershipData> GetAgentGroupMemberships(UUID AgentID)
|
public List<GroupMembershipData> GetAgentGroupMemberships(UUID AgentID)
|
||||||
{
|
{
|
||||||
Hashtable param = new Hashtable();
|
Hashtable param = new Hashtable();
|
||||||
|
@ -543,8 +532,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
}
|
}
|
||||||
|
|
||||||
return Roles;
|
return Roles;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<GroupRolesData> GetGroupRoles(UUID GroupID)
|
public List<GroupRolesData> GetGroupRoles(UUID GroupID)
|
||||||
|
@ -575,7 +562,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
}
|
}
|
||||||
|
|
||||||
return Roles;
|
return Roles;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static GroupMembershipData HashTableToGroupMembershipData(Hashtable respData)
|
private static GroupMembershipData HashTableToGroupMembershipData(Hashtable respData)
|
||||||
|
@ -643,7 +629,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
}
|
}
|
||||||
|
|
||||||
return members;
|
return members;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<GroupRoleMembersData> GetGroupRoleMembers(UUID GroupID)
|
public List<GroupRoleMembersData> GetGroupRoleMembers(UUID GroupID)
|
||||||
|
@ -667,6 +652,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
members.Add(data);
|
members.Add(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return members;
|
return members;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -694,9 +680,10 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
values.Add(data);
|
values.Add(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return values;
|
|
||||||
|
|
||||||
|
return values;
|
||||||
}
|
}
|
||||||
|
|
||||||
public GroupNoticeInfo GetGroupNotice(UUID noticeID)
|
public GroupNoticeInfo GetGroupNotice(UUID noticeID)
|
||||||
{
|
{
|
||||||
Hashtable param = new Hashtable();
|
Hashtable param = new Hashtable();
|
||||||
|
@ -704,7 +691,6 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
|
|
||||||
Hashtable respData = XmlRpcCall("groups.getGroupNotice", param);
|
Hashtable respData = XmlRpcCall("groups.getGroupNotice", param);
|
||||||
|
|
||||||
|
|
||||||
if (respData.Contains("error"))
|
if (respData.Contains("error"))
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
|
@ -728,6 +714,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddGroupNotice(UUID groupID, UUID noticeID, string fromName, string subject, string message, byte[] binaryBucket)
|
public void AddGroupNotice(UUID groupID, UUID noticeID, string fromName, string subject, string message, byte[] binaryBucket)
|
||||||
{
|
{
|
||||||
string binBucket = OpenMetaverse.Utils.BytesToHexString(binaryBucket, "");
|
string binBucket = OpenMetaverse.Utils.BytesToHexString(binaryBucket, "");
|
||||||
|
@ -768,14 +755,16 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
m_log.Error("[GROUPS] An error has occured while attempting to access the XmlRpcGroups server");
|
m_log.ErrorFormat("[GROUPS]: An error has occured while attempting to access the XmlRpcGroups server method: {0}", function);
|
||||||
m_log.ErrorFormat("[GROUPS] {0} ", e.ToString());
|
m_log.ErrorFormat("[GROUPS]: {0} ", e.ToString());
|
||||||
|
|
||||||
foreach (KeyValuePair<object, object> kvp in param)
|
foreach (KeyValuePair<object, object> kvp in param)
|
||||||
{
|
{
|
||||||
m_log.WarnFormat("[GROUPS] {0} :: {1}", kvp.Key.ToString(), kvp.Value.ToString());
|
m_log.WarnFormat("[GROUPS]: {0} :: {1}", kvp.Key.ToString(), kvp.Value.ToString());
|
||||||
}
|
}
|
||||||
Hashtable respData = (Hashtable)resp.Value;
|
|
||||||
|
|
||||||
|
Hashtable respData = new Hashtable();
|
||||||
respData.Add("error", e.ToString());
|
respData.Add("error", e.ToString());
|
||||||
return respData;
|
return respData;
|
||||||
}
|
}
|
||||||
|
@ -791,21 +780,21 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
return respData;
|
return respData;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_log.ErrorFormat("[XmlRpcGroupData] The XmlRpc server returned a {1} instead of a hashtable for {0}", function, resp.Value.GetType().ToString());
|
m_log.ErrorFormat("[GROUPS]: The XmlRpc server returned a {1} instead of a hashtable for {0}", function, resp.Value.GetType().ToString());
|
||||||
|
|
||||||
if (resp.Value is ArrayList)
|
if (resp.Value is ArrayList)
|
||||||
{
|
{
|
||||||
ArrayList al = (ArrayList)resp.Value;
|
ArrayList al = (ArrayList)resp.Value;
|
||||||
m_log.ErrorFormat("[XmlRpcGroupData] Contains {0} elements", al.Count);
|
m_log.ErrorFormat("[GROUPS]: Contains {0} elements", al.Count);
|
||||||
|
|
||||||
foreach (object o in al)
|
foreach (object o in al)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[XmlRpcGroupData] {0} :: {1}", o.GetType().ToString(), o.ToString());
|
m_log.ErrorFormat("[GROUPS]: {0} :: {1}", o.GetType().ToString(), o.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[XmlRpcGroupData] Function returned: {0}", resp.Value.ToString());
|
m_log.ErrorFormat("[GROUPS]: Function returned: {0}", resp.Value.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
Hashtable error = new Hashtable();
|
Hashtable error = new Hashtable();
|
||||||
|
@ -815,21 +804,19 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups
|
||||||
|
|
||||||
private void LogRespDataToConsoleError(Hashtable respData)
|
private void LogRespDataToConsoleError(Hashtable respData)
|
||||||
{
|
{
|
||||||
m_log.Error("[GROUPDATA] Error:");
|
m_log.Error("[GROUPS]: Error:");
|
||||||
|
|
||||||
foreach (string key in respData.Keys)
|
foreach (string key in respData.Keys)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[GROUPDATA] Key: {0}", key);
|
m_log.ErrorFormat("[GROUPS]: Key: {0}", key);
|
||||||
|
|
||||||
string[] lines = respData[key].ToString().Split(new char[] { '\n' });
|
string[] lines = respData[key].ToString().Split(new char[] { '\n' });
|
||||||
foreach (string line in lines)
|
foreach (string line in lines)
|
||||||
{
|
{
|
||||||
m_log.ErrorFormat("[GROUPDATA] {0}", line);
|
m_log.ErrorFormat("[GROUPS]: {0}", line);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public class GroupNoticeInfo
|
public class GroupNoticeInfo
|
||||||
|
|
Loading…
Reference in New Issue