* Removed Simian.IsSimianEnabled() call, changed the SimianGrid connectors to handle initialization as graceful as possible with the current broken way region module initialization is done

* Added config-include/HyperSimianGrid.ini option for connecting to SimianGrid with HyperGrid enabled (work in progress on the SimianGrid side)
prebuild-update
John Hurliman 2010-09-03 13:36:35 -07:00
parent 21c5377af9
commit 4f79143f3f
11 changed files with 166 additions and 165 deletions

View File

@ -85,27 +85,20 @@ namespace OpenSim.Services.Connectors.SimianGrid
public void Initialise(IConfigSource source) public void Initialise(IConfigSource source)
{ {
if (Simian.IsSimianEnabled(source, "AssetServices", this.Name)) IConfig gridConfig = source.Configs["AssetService"];
if (gridConfig != null)
{ {
IConfig gridConfig = source.Configs["AssetService"];
if (gridConfig == null)
{
m_log.Error("[SIMIAN ASSET CONNECTOR]: AssetService missing from OpenSim.ini");
throw new Exception("Asset connector init error");
}
string serviceUrl = gridConfig.GetString("AssetServerURI"); string serviceUrl = gridConfig.GetString("AssetServerURI");
if (String.IsNullOrEmpty(serviceUrl)) if (!String.IsNullOrEmpty(serviceUrl))
{ {
m_log.Error("[SIMIAN ASSET CONNECTOR]: No AssetServerURI in section AssetService"); if (!serviceUrl.EndsWith("/") && !serviceUrl.EndsWith("="))
throw new Exception("Asset connector init error"); serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
} }
if (!serviceUrl.EndsWith("/") && !serviceUrl.EndsWith("="))
serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
} }
if (String.IsNullOrEmpty(m_serverUrl))
m_log.Info("[SIMIAN ASSET CONNECTOR]: No AssetServerURI specified, disabling connector");
} }
#region IAssetService #region IAssetService

View File

@ -73,24 +73,20 @@ namespace OpenSim.Services.Connectors.SimianGrid
public void Initialise(IConfigSource source) public void Initialise(IConfigSource source)
{ {
if (Simian.IsSimianEnabled(source, "AuthenticationServices", this.Name)) IConfig gridConfig = source.Configs["AuthenticationService"];
if (gridConfig != null)
{ {
IConfig assetConfig = source.Configs["AuthenticationService"]; string serviceUrl = gridConfig.GetString("AuthenticationServerURI");
if (assetConfig == null) if (!String.IsNullOrEmpty(serviceUrl))
{ {
m_log.Error("[SIMIAN AUTH CONNECTOR]: AuthenticationService missing from OpenSim.ini"); if (!serviceUrl.EndsWith("/") && !serviceUrl.EndsWith("="))
throw new Exception("Authentication connector init error"); serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
} }
string serviceURI = assetConfig.GetString("AuthenticationServerURI");
if (String.IsNullOrEmpty(serviceURI))
{
m_log.Error("[SIMIAN AUTH CONNECTOR]: No Server URI named in section AuthenticationService");
throw new Exception("Authentication connector init error");
}
m_serverUrl = serviceURI;
} }
if (String.IsNullOrEmpty(m_serverUrl))
m_log.Info("[SIMIAN AUTH CONNECTOR]: No AuthenticationServerURI specified, disabling connector");
} }
public string Authenticate(UUID principalID, string password, int lifetime) public string Authenticate(UUID principalID, string password, int lifetime)

View File

@ -78,27 +78,20 @@ namespace OpenSim.Services.Connectors.SimianGrid
public void Initialise(IConfigSource source) public void Initialise(IConfigSource source)
{ {
if (Simian.IsSimianEnabled(source, "AvatarServices", this.Name)) IConfig gridConfig = source.Configs["AvatarService"];
if (gridConfig != null)
{ {
IConfig gridConfig = source.Configs["AvatarService"];
if (gridConfig == null)
{
m_log.Error("[SIMIAN AVATAR CONNECTOR]: AvatarService missing from OpenSim.ini");
throw new Exception("Avatar connector init error");
}
string serviceUrl = gridConfig.GetString("AvatarServerURI"); string serviceUrl = gridConfig.GetString("AvatarServerURI");
if (String.IsNullOrEmpty(serviceUrl)) if (!String.IsNullOrEmpty(serviceUrl))
{ {
m_log.Error("[SIMIAN AVATAR CONNECTOR]: No AvatarServerURI in section AvatarService"); if (!serviceUrl.EndsWith("/") && !serviceUrl.EndsWith("="))
throw new Exception("Avatar connector init error"); serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
} }
if (!serviceUrl.EndsWith("/"))
serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
} }
if (String.IsNullOrEmpty(m_serverUrl))
m_log.Info("[SIMIAN AVATAR CONNECTOR]: No AvatarServerURI specified, disabling connector");
} }
#region IAvatarService #region IAvatarService

View File

@ -31,17 +31,3 @@ using Nini.Config;
[assembly: Addin("SimianGrid", "1.0")] [assembly: Addin("SimianGrid", "1.0")]
[assembly: AddinDependency("OpenSim", "0.5")] [assembly: AddinDependency("OpenSim", "0.5")]
public static class Simian
{
public static bool IsSimianEnabled(IConfigSource config, string moduleName, string connectorName)
{
if (config.Configs["Modules"] != null)
{
string module = config.Configs["Modules"].GetString(moduleName);
return !String.IsNullOrEmpty(module) && module.EndsWith(connectorName);
}
return false;
}
}

View File

@ -98,24 +98,20 @@ namespace OpenSim.Services.Connectors.SimianGrid
public void Initialise(IConfigSource source) public void Initialise(IConfigSource source)
{ {
if (Simian.IsSimianEnabled(source, "GridServices", this.Name)) IConfig gridConfig = source.Configs["GridService"];
if (gridConfig != null)
{ {
IConfig gridConfig = source.Configs["GridService"];
if (gridConfig == null)
{
m_log.Error("[SIMIAN GRID CONNECTOR]: GridService missing from OpenSim.ini");
throw new Exception("Grid connector init error");
}
string serviceUrl = gridConfig.GetString("GridServerURI"); string serviceUrl = gridConfig.GetString("GridServerURI");
if (String.IsNullOrEmpty(serviceUrl)) if (!String.IsNullOrEmpty(serviceUrl))
{ {
m_log.Error("[SIMIAN GRID CONNECTOR]: No Server URI named in section GridService"); if (!serviceUrl.EndsWith("/") && !serviceUrl.EndsWith("="))
throw new Exception("Grid connector init error"); serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
} }
m_serverUrl = serviceUrl;
} }
if (String.IsNullOrEmpty(m_serverUrl))
m_log.Info("[SIMIAN GRID CONNECTOR]: No GridServerURI specified, disabling connector");
} }
#region IGridService #region IGridService

View File

@ -92,38 +92,30 @@ namespace OpenSim.Services.Connectors.SimianGrid
public void Initialise(IConfigSource source) public void Initialise(IConfigSource source)
{ {
if (Simian.IsSimianEnabled(source, "InventoryServices", this.Name)) IConfig gridConfig = source.Configs["InventoryService"];
if (gridConfig != null)
{ {
IConfig gridConfig = source.Configs["InventoryService"];
if (gridConfig == null)
{
m_log.Error("[SIMIAN INVENTORY CONNECTOR]: InventoryService missing from OpenSim.ini");
throw new Exception("Inventory connector init error");
}
string serviceUrl = gridConfig.GetString("InventoryServerURI"); string serviceUrl = gridConfig.GetString("InventoryServerURI");
if (String.IsNullOrEmpty(serviceUrl)) if (!String.IsNullOrEmpty(serviceUrl))
{ {
m_log.Error("[SIMIAN INVENTORY CONNECTOR]: No Server URI named in section InventoryService"); if (!serviceUrl.EndsWith("/") && !serviceUrl.EndsWith("="))
throw new Exception("Inventory connector init error"); serviceUrl = serviceUrl + '/';
} m_serverUrl = serviceUrl;
m_serverUrl = serviceUrl; gridConfig = source.Configs["UserAccountService"];
if (gridConfig != null)
gridConfig = source.Configs["UserAccountService"]; {
if (gridConfig != null) serviceUrl = gridConfig.GetString("UserAccountServerURI");
{ if (!String.IsNullOrEmpty(serviceUrl))
serviceUrl = gridConfig.GetString("UserAccountServerURI"); m_userServerUrl = serviceUrl;
if (!String.IsNullOrEmpty(serviceUrl)) }
m_userServerUrl = serviceUrl;
else
m_log.Info("[SIMIAN INVENTORY CONNECTOR]: No Server URI named in section UserAccountService");
}
else
{
m_log.Warn("[SIMIAN INVENTORY CONNECTOR]: UserAccountService missing from OpenSim.ini");
} }
} }
if (String.IsNullOrEmpty(m_serverUrl))
m_log.Info("[SIMIAN INVENTORY CONNECTOR]: No InventoryServerURI specified, disabling connector");
else if (String.IsNullOrEmpty(m_userServerUrl))
m_log.Info("[SIMIAN INVENTORY CONNECTOR]: No UserAccountServerURI specified, disabling connector");
} }
/// <summary> /// <summary>

View File

@ -103,24 +103,20 @@ namespace OpenSim.Services.Connectors.SimianGrid
public void Initialise(IConfigSource source) public void Initialise(IConfigSource source)
{ {
if (Simian.IsSimianEnabled(source, "PresenceServices", this.Name)) IConfig gridConfig = source.Configs["PresenceService"];
if (gridConfig != null)
{ {
IConfig gridConfig = source.Configs["PresenceService"];
if (gridConfig == null)
{
m_log.Error("[SIMIAN PRESENCE CONNECTOR]: PresenceService missing from OpenSim.ini");
throw new Exception("Presence connector init error");
}
string serviceUrl = gridConfig.GetString("PresenceServerURI"); string serviceUrl = gridConfig.GetString("PresenceServerURI");
if (String.IsNullOrEmpty(serviceUrl)) if (!String.IsNullOrEmpty(serviceUrl))
{ {
m_log.Error("[SIMIAN PRESENCE CONNECTOR]: No PresenceServerURI in section PresenceService"); if (!serviceUrl.EndsWith("/") && !serviceUrl.EndsWith("="))
throw new Exception("Presence connector init error"); serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
} }
m_serverUrl = serviceUrl;
} }
if (String.IsNullOrEmpty(m_serverUrl))
m_log.Info("[SIMIAN PRESENCE CONNECTOR]: No PresenceServerURI specified, disabling connector");
} }
#region IPresenceService #region IPresenceService

View File

@ -88,44 +88,20 @@ namespace OpenSim.Services.Connectors.SimianGrid
public void Initialise(IConfigSource source) public void Initialise(IConfigSource source)
{ {
if (Simian.IsSimianEnabled(source, "UserAccountServices", "SimianUserAccountServiceConnector")) IConfig gridConfig = source.Configs["UserAccountService"];
if (gridConfig != null)
{ {
IConfig gridConfig = source.Configs["UserAccountService"];
if (gridConfig == null)
{
m_log.Error("[SIMIAN PROFILES]: UserAccountService missing from OpenSim.ini");
throw new Exception("Profiles init error");
}
string serviceUrl = gridConfig.GetString("UserAccountServerURI"); string serviceUrl = gridConfig.GetString("UserAccountServerURI");
if (String.IsNullOrEmpty(serviceUrl)) if (!String.IsNullOrEmpty(serviceUrl))
{ {
m_log.Error("[SIMIAN PROFILES]: No UserAccountServerURI in section UserAccountService"); if (!serviceUrl.EndsWith("/") && !serviceUrl.EndsWith("="))
throw new Exception("Profiles init error"); serviceUrl = serviceUrl + '/';
} m_serverUrl = serviceUrl;
if (!serviceUrl.EndsWith("/"))
serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
IConfig profilesConfig = source.Configs["Profiles"];
if (profilesConfig == null)
{
// Do not run this module by default.
return;
}
else
{
// if profiles aren't enabled, we're not needed.
// if we're not specified as the connector to use, then we're not wanted
if (profilesConfig.GetString("Module", String.Empty) != Name)
{
return;
}
m_log.InfoFormat("[SIMIAN ACCOUNT CONNECTOR]: Initializing {0}", this.Name);
} }
} }
if (String.IsNullOrEmpty(m_serverUrl))
m_log.Info("[SIMIAN PROFILES]: No UserAccountServerURI specified, disabling connector");
} }
private void ClientConnectHandler(IClientCore clientCore) private void ClientConnectHandler(IClientCore clientCore)

View File

@ -77,25 +77,20 @@ namespace OpenSim.Services.Connectors.SimianGrid
public void Initialise(IConfigSource source) public void Initialise(IConfigSource source)
{ {
if (Simian.IsSimianEnabled(source, "UserAccountServices", this.Name)) IConfig gridConfig = source.Configs["UserAccountService"];
if (gridConfig != null)
{ {
IConfig assetConfig = source.Configs["UserAccountService"]; string serviceUrl = gridConfig.GetString("UserAccountServerURI");
if (assetConfig == null) if (!String.IsNullOrEmpty(serviceUrl))
{ {
m_log.Error("[SIMIAN ACCOUNT CONNECTOR]: UserAccountService missing from OpenSim.ini"); if (!serviceUrl.EndsWith("/") && !serviceUrl.EndsWith("="))
throw new Exception("User account connector init error"); serviceUrl = serviceUrl + '/';
m_serverUrl = serviceUrl;
} }
string serviceURI = assetConfig.GetString("UserAccountServerURI");
if (String.IsNullOrEmpty(serviceURI))
{
m_log.Error("[SIMIAN ACCOUNT CONNECTOR]: No UserAccountServerURI in section UserAccountService, skipping SimianUserAccountServiceConnector");
throw new Exception("User account connector init error");
}
m_accountCache = new ExpiringCache<UUID, UserAccount>();
m_serverUrl = serviceURI;
} }
if (String.IsNullOrEmpty(m_serverUrl))
m_log.Info("[SIMIAN ACCOUNT CONNECTOR]: No UserAccountServerURI specified, disabling connector");
} }
public UserAccount GetUserAccount(UUID scopeID, string firstName, string lastName) public UserAccount GetUserAccount(UUID scopeID, string firstName, string lastName)

View File

@ -1299,11 +1299,12 @@
[Architecture] [Architecture]
; Choose exactly one and only one of the architectures below. ; Choose exactly one and only one of the architectures below.
Include-Standalone = "config-include/Standalone.ini" Include-Standalone = "config-include/Standalone.ini"
;Include-HGStandalone = "config-include/StandaloneHypergrid.ini" ;Include-HGStandalone = "config-include/StandaloneHypergrid.ini"
;Include-Grid = "config-include/Grid.ini" ;Include-Grid = "config-include/Grid.ini"
;Include-HGGrid = "config-include/GridHypergrid.ini" ;Include-HGGrid = "config-include/GridHypergrid.ini"
;Include-SimianGrid = "config-include/SimianGrid.ini" ;Include-SimianGrid = "config-include/SimianGrid.ini"
;Include-HyperSimianGrid = "config-include/HyperSimianGrid.ini"
; Then choose ; Then choose
; config-include/StandaloneCommon.ini.example (if you're in standlone) OR ; config-include/StandaloneCommon.ini.example (if you're in standlone) OR

View File

@ -0,0 +1,77 @@
;;
;; Please don't change this file.
;; All optional settings are in GridCommon.ini.example,
;; which you can copy and change.
;;
;;
;; In GridCommon.ini, these are the URLs you would use if SimianGrid is
;; installed at http://www.mygrid.com/Grid/
;;
; AssetServerURI = "http://www.mygrid.com/Grid/?id="
; InventoryServerURI = "http://www.mygrid.com/Grid/"
; AvatarServerURI = "http://www.mygrid.com/Grid/"
; PresenceServerURI = "http://www.mygrid.com/Grid/"
; UserAccountServerURI = "http://www.mygrid.com/Grid/"
; AuthenticationServerURI = "http://www.mygrid.com/Grid/"
; FriendsServerURI = "http://www.mygrid.com/Grid/"
; GroupsServerURI = "http://www.mygrid.com/Grid/"
[Includes]
Include-Common = "config-include/GridCommon.ini"
[Modules]
GridServices = "OpenSim.Services.Connectors.dll:SimianGridServiceConnector"
PresenceServices = "OpenSim.Services.Connectors.dll:SimianPresenceServiceConnector"
UserAccountServices = "OpenSim.Services.Connectors.dll:SimianUserAccountServiceConnector"
AuthenticationServices = "OpenSim.Services.Connectors.dll:SimianAuthenticationServiceConnector"
AssetServices = "HGAssetBroker"
InventoryServices = "HGInventoryBroker"
AvatarServices = "OpenSim.Services.Connectors.dll:SimianAvatarServiceConnector"
NeighbourServices = "RemoteNeighbourServicesConnector"
SimulationServices = "RemoteSimulationConnectorModule"
EntityTransferModule = "HGEntityTransferModule"
InventoryAccessModule = "HGInventoryAccessModule"
LandServiceInConnector = true
NeighbourServiceInConnector = true
SimulationServiceInConnector = true
LibraryModule = false
AssetCaching = "FlotsamAssetCache"
[Friends]
Connector = "OpenSim.Services.Connectors.dll:SimianFriendsServiceConnector"
[GridService]
LocalServiceModule = "OpenSim.Services.GridService.dll:GridService"
StorageProvider = "OpenSim.Data.Null.dll:NullRegionData"
AllowHypergridMapSearch = true
[LibraryService]
LocalServiceModule = "OpenSim.Services.InventoryService.dll:LibraryService"
LibraryName = "OpenSim Library"
DefaultLibrary = "./inventory/Libraries.xml"
[AssetService]
DefaultAssetLoader = "OpenSim.Framework.AssetLoader.Filesystem.dll"
LocalGridAssetService = "OpenSim.Services.Connectors.dll:SimianAssetServiceConnector"
HypergridAssetService = "OpenSim.Services.Connectors.dll:HGAssetServiceConnector"
AssetLoaderArgs = "assets/AssetSets.xml"
[InventoryService]
LocalGridInventoryService = "OpenSim.Services.Connectors.dll:SimianInventoryServiceConnector"
[Groups]
Enabled = true
Module = GroupsModule
DebugEnabled = false
NoticesEnabled = true
MessagingModule = GroupsMessagingModule
MessagingEnabled = true
ServicesConnectorModule = SimianGroupsServicesConnector
[Profiles]
Module = SimianProfiles