Extensions are automatically discovered based on the interfaces they implement and which module is their parent. For example, if you place a storage extension in a child module of the network module, it will not be discovered. Additionally, depending on the extension, the ordering may be important in how they extension is used. For the extensions that ordering is important there is also a "Global Configuration" setting for the ordering. The value of the setting is a comma seperated list like SHA256SALT,MD5,LDAP,PLAINTEXT. The values are the names of the extension. The name will be the result of getName(), if the bean implements the Named interface, or the short class name (ie getClass().getSimpleName()).
If the order parameter is configured as A,B,C but the extensions that truly exist are A,C,D, the effective order will be A,C,D. Specifically configured items in the list that do not exist are ignored, if items are found that are not in the list, they are appended to the end of the list. If you do not want D to be loaded, you must add D to the exclude configuration property, which is always the same name as the order configuration, but ending with .exclude. For example, the order setting for com.cloud.server.auth.UserAuthenticator is user.authenticators.order and the exclude setting user.authenticators.exclude.
Inteface |
Parent Module |
Order Configuration |
Description |
Additional Info |
---|---|---|---|---|
com.cloud.agent.manager.allocator.HostAllocator |
allocator |
none |
|
|
com.cloud.consoleproxy.ConsoleProxyAllocator |
allocator |
none |
|
|
com.cloud.server.auth.UserAuthenticator |
api |
user.authenticators.order |
|
|
org.apache.cloudstack.acl.SecurityChecker |
api |
security.checkers.order |
|
|
org.apache.cloudstack.acl.APIChecker |
api |
api.checkers.exclude |
|
|
com.cloud.ha.Investigator |
compute |
ha.investigators.order |
|
|
com.cloud.ha.FenceBuilder |
compute |
none |
|
|
com.cloud.hypervisor.HypervisorGuru |
compute |
none |
|
|
com.cloud.utils.component.PluggableService |
core |
none |
|
|
com.cloud.resource.Discoverer |
discoverer |
none |
|
|
com.cloud.network.element.IpDeployer |
network |
none |
|
|
com.cloud.network.element.DhcpServiceProvider |
network |
none |
|
|
com.cloud.network.guru.NetworkGuru |
network |
none |
|
|
com.cloud.network.element.NetworkElement |
network |
none |
|
|
com.cloud.deploy.DeploymentPlanner |
planner |
deployment.planners.order |
|
|
org.apache.cloudstack.affinity.AffinityGroupProcessor |
planner |
affinity.processors.order |
|
|
org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider |
storage |
none |
|
|
org.apache.cloudstack.engine.subsystem.api.storage.StoragePoolAllocator |
storage |
storage.pool.allocators.order |
|
|
com.cloud.storage.secondary.SecondaryStorageVmAllocator |
storage |
none |
|
|
com.cloud.template.TemplateAdapter |
storage |
none |
|
|
com.cloud.agent.manager.allocator.PodAllocator |
storage |
none |
|
|
org.apache.cloudstack.engine.subsystem.api.storage.SnapshotStrategy |
storage |
none |
|
|
org.apache.cloudstack.engine.subsystem.api.storage.DataMotionStrategy |
storage |
none |
|
|