| <?xml version="1.0"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <!-- |
| This is an example components.xml that refers to the main components.xml. |
| --> |
| <components.xml> |
| <system-integrity-checker class="com.cloud.upgrade.DatabaseUpgradeChecker"> |
| <checker name="ManagementServerNode" class="com.cloud.cluster.ManagementServerNode"/> |
| <checker name="EncryptionSecretKeyChecker" class="com.cloud.utils.crypt.EncryptionSecretKeyChecker"/> |
| <checker name="DatabaseIntegrityChecker" class="com.cloud.upgrade.DatabaseIntegrityChecker"/> |
| </system-integrity-checker> |
| |
| <interceptor library="com.cloud.configuration.DefaultInterceptorLibrary"/> |
| <management-server class="com.cloud.server.ManagementServerImpl" library="com.cloud.configuration.PremiumComponentLibrary"> |
| <dao name="Configuration configuration server" class="com.cloud.configuration.dao.ConfigurationDaoImpl"> |
| <param name="premium">true</param> |
| </dao> |
| <adapters key="com.cloud.agent.manager.allocator.HostAllocator"> |
| <adapter name="FirstFitRouting" class="com.cloud.agent.manager.allocator.impl.FirstFitRoutingAllocator"/> |
| <!--adapter name="FirstFitRouting" class="com.cloud.agent.manager.allocator.impl.RecreateHostAllocator"/--> |
| <!--adapter name="FirstFit" class="com.cloud.agent.manager.allocator.impl.FirstFitAllocator"/--> |
| </adapters> |
| <adapters key="com.cloud.storage.allocator.StoragePoolAllocator"> |
| <adapter name="LocalStorage" class="com.cloud.storage.allocator.LocalStoragePoolAllocator"/> |
| <adapter name="Storage" class="com.cloud.storage.allocator.FirstFitStoragePoolAllocator"/> |
| </adapters> |
| <adapters key="com.cloud.agent.manager.allocator.PodAllocator"> |
| <adapter name="User First" class="com.cloud.agent.manager.allocator.impl.UserConcentratedAllocator"/> |
| </adapters> |
| <adapters key="com.cloud.consoleproxy.ConsoleProxyAllocator"> |
| <adapter name="Balance" class="com.cloud.consoleproxy.ConsoleProxyBalanceAllocator"/> |
| </adapters> |
| <adapters key="com.cloud.network.guru.NetworkGuru"> |
| <!-- |
| NOTE: The order of those gurus implicates priority of network traffic types the guru implements. |
| The upper the higher priority. It effects listTafficTypeImplementors API which returns impelmentor |
| of a specific network traffic. |
| A fair question is, if two gurus implement the same two network traffic types, but these traffic types |
| have cross priority, how to rank them? For example: |
| GuruA (TrafficTypeA, TrafficTypeB) |
| GuruB (TrafficTypeA, TrafficTypeB) |
| we want GuruB.TrafficTypeB > GuruA.TrafficTypeB and GuruB.TrafficTypeA < GuruA.TrafficTypeA. As the priority |
| implicated by order can not map to multiple traffic type, you have to do implement GuruC which inherits GuruB |
| for TrafficTypeB. Then ranking them in order of: |
| GuruC (TrafficTypeB) |
| GuruA (TrafficTypeA, TrafficTypeB) |
| GuruB (TrafficTypeA, TrafficTypeB) |
| now GuruC represents TrafficTypeB with highest priority while GuruA represents TrafficTypeA with highest pirority. |
| |
| However, above case barely happens. |
| --> |
| |
| <adapter name="StorageNetworkGuru" class="com.cloud.network.guru.StorageNetworkGuru"/> |
| <adapter name="ExternalGuestNetworkGuru" class="com.cloud.network.guru.ExternalGuestNetworkGuru"/> |
| <adapter name="PublicNetworkGuru" class="com.cloud.network.guru.PublicNetworkGuru"/> |
| <adapter name="PodBasedNetworkGuru" class="com.cloud.network.guru.PodBasedNetworkGuru"/> |
| <adapter name="ControlNetworkGuru" class="com.cloud.network.guru.ControlNetworkGuru"/> |
| <adapter name="DirectNetworkGuru" class="com.cloud.network.guru.DirectNetworkGuru"/> |
| <adapter name="DirectPodBasedNetworkGuru" class="com.cloud.network.guru.DirectPodBasedNetworkGuru"/> |
| <adapter name="OvsGuestNetworkGuru" class="com.cloud.network.guru.OvsGuestNetworkGuru"/> |
| <adapter name="PrivateNetworkGuru" class="com.cloud.network.guru.PrivateNetworkGuru"/> |
| <adapter name="NiciraNvpGuestNetworkGuru" class="com.cloud.network.guru.NiciraNvpGuestNetworkGuru"/> |
| </adapters> |
| <adapters key="com.cloud.cluster.ClusterServiceAdapter"> |
| <adapter name="ClusterService" class="com.cloud.cluster.ClusterServiceServletAdapter"/> |
| </adapters> |
| <adapters key="com.cloud.storage.secondary.SecondaryStorageVmAllocator"> |
| <adapter name="Balance" class="com.cloud.storage.secondary.SecondaryStorageVmDefaultAllocator"/> |
| </adapters> |
| <adapters key="com.cloud.network.IpAddrAllocator"> |
| <adapter name="Basic" class="com.cloud.network.ExternalIpAddressAllocator"/> |
| </adapters> |
| <adapters key="com.cloud.server.auth.UserAuthenticator"> |
| <!-- <adapter name="SHA256SALT" class="com.cloud.server.auth.SHA256SaltedUserAuthenticator"/> --> |
| <adapter name="MD5" class="com.cloud.server.auth.MD5UserAuthenticator"/> |
| <adapter name="LDAP" class="com.cloud.server.auth.LDAPUserAuthenticator"/> |
| </adapters> |
| <adapters key="com.cloud.ha.Investigator"> |
| <adapter name="SimpleInvestigator" class="com.cloud.ha.CheckOnAgentInvestigator"/> |
| <adapter name="XenServerInvestigator" class="com.cloud.ha.XenServerInvestigator"/> |
| <adapter name="PingInvestigator" class="com.cloud.ha.UserVmDomRInvestigator"/> |
| <adapter name="ManagementIPSysVMInvestigator" class="com.cloud.ha.ManagementIPSystemVMInvestigator"/> |
| </adapters> |
| <adapters key="com.cloud.ha.FenceBuilder"> |
| <adapter name="XenServerFenceBuilder" class="com.cloud.ha.XenServerFencer"/> |
| <adapter name="KVMFenceBuilder" class="com.cloud.ha.KVMFencer"/> |
| <adapter name="OvmFenceBuilder" class="com.cloud.ovm.hypervisor.OvmFencer"/> |
| </adapters> |
| <adapters key="com.cloud.hypervisor.HypervisorGuru"> |
| <adapter name="XenServerGuru" class="com.cloud.hypervisor.XenServerGuru"/> |
| <adapter name="KVMGuru" class="com.cloud.hypervisor.KVMGuru"/> |
| </adapters> |
| <adapters key="com.cloud.resource.Discoverer"> |
| <adapter name="XCP Agent" class="com.cloud.hypervisor.xenserver.discoverer.XcpServerDiscoverer"/> |
| <adapter name="SecondaryStorage" class="com.cloud.storage.secondary.SecondaryStorageDiscoverer"/> |
| <adapter name="KVM Agent" class="com.cloud.hypervisor.kvm.discoverer.KvmServerDiscoverer"/> |
| <adapter name="Bare Metal Agent" class="com.cloud.baremetal.BareMetalDiscoverer"/> |
| <adapter name="Ovm Discover" class="com.cloud.ovm.hypervisor.OvmDiscoverer" /> |
| </adapters> |
| <adapters key="com.cloud.deploy.DeploymentPlanner"> |
| <adapter name="First Fit" class="com.cloud.deploy.FirstFitPlanner"/> |
| <adapter name="UserDispersing" class="com.cloud.deploy.UserDispersingPlanner"/> |
| <adapter name="UserConcentratedPod" class="com.cloud.deploy.UserConcentratedPodPlanner"/> |
| <adapter name="BareMetal Fit" class="com.cloud.deploy.BareMetalPlanner"/> |
| </adapters> |
| <adapters key="com.cloud.alert.AlertAdapter"> |
| <adapter name="ClusterAlert" class="com.cloud.alert.ClusterAlertAdapter"/> |
| <adapter name="ConsoleProxyAlert" class="com.cloud.alert.ConsoleProxyAlertAdapter"/> |
| <adapter name="SecondaryStorageVmAlert" class="com.cloud.alert.SecondaryStorageVmAlertAdapter"/> |
| </adapters> |
| <adapters key="org.apache.cloudstack.acl.SecurityChecker"> |
| <adapter name="DomainChecker" class="com.cloud.acl.DomainChecker"/> |
| </adapters> |
| <adapters key="com.cloud.network.element.NetworkElement"> |
| <adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/> |
| <adapter name="Ovs" class="com.cloud.network.element.OvsElement"/> |
| <adapter name="ExternalDhcpServer" class="com.cloud.network.element.ExternalDhcpElement"/> |
| <adapter name="BareMetal" class="com.cloud.network.element.BareMetalElement"/> |
| <adapter name="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement"/> |
| <adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/> |
| <adapter name="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"/> |
| <adapter name="DnsNotifier" class="org.apache.cloudstack.network.element.DnsNotifier"/> |
| </adapters> |
| <adapters key="com.cloud.cluster.agentlb.AgentLoadBalancerPlanner"> |
| <adapter name="ClusterBasedAgentLbPlanner" class="com.cloud.cluster.agentlb.ClusterBasedAgentLoadBalancerPlanner"/> |
| </adapters> |
| <adapters key="com.cloud.hypervisor.HypervisorGuru"> |
| <adapter name="XenServerGuru" class="com.cloud.hypervisor.XenServerGuru"/> |
| <adapter name="KVMGuru" class="com.cloud.hypervisor.KVMGuru"/> |
| <adapter name="BareMetalGuru" class="com.cloud.baremetal.BareMetalGuru"/> |
| <adapter name="OvmGuru" class="com.cloud.ovm.hypervisor.OvmGuru" /> |
| </adapters> |
| <adapters key="com.cloud.agent.StartupCommandProcessor"> |
| <adapter name="BasicAgentAuthorizer" class="com.cloud.agent.manager.authn.impl.BasicAgentAuthManager"/> |
| </adapters> |
| <manager name="OvsTunnelManager" key="com.cloud.network.ovs.OvsTunnelManager" class="com.cloud.network.ovs.OvsTunnelManagerImpl"/> |
| <manager name="ElasticLoadBalancerManager" key="com.cloud.network.lb.ElasticLoadBalancerManager" class="com.cloud.network.lb.ElasticLoadBalancerManagerImpl"/> |
| <manager name="LBHealthCheckManager" key="com.cloud.network.lb.LBHealthCheckManager" class="com.cloud.network.lb.LBHealthCheckManagerImpl"/> |
| <pluggableservice name="ApiDiscoveryService" key="org.apache.cloudstack.discovery.ApiDiscoveryService" class="org.apache.cloudstack.discovery.ApiDiscoveryServiceImpl"/> |
| <pluggableservice name="VirtualRouterElementService" key="com.cloud.network.element.VirtualRouterElementService" class="com.cloud.network.element.VirtualRouterElement"/> |
| <pluggableservice name="NiciraNvpElementService" key="com.cloud.network.element.NiciraNvpElementService" class="com.cloud.network.element.NiciraNvpElement"/> |
| <dao name="OvsTunnelInterfaceDao" class="com.cloud.network.ovs.dao.OvsTunnelInterfaceDaoImpl" singleton="false"/> |
| <dao name="OvsTunnelAccountDao" class="com.cloud.network.ovs.dao.OvsTunnelNetworkDaoImpl" singleton="false"/> |
| <dao name="NiciraNvpDao" class="com.cloud.network.dao.NiciraNvpDaoImpl" singleton="false"/> |
| <dao name="NiciraNvpNicMappingDao" class="com.cloud.network.dao.NiciraNvpNicMappingDaoImpl" singleton="false"/> |
| <dao name="NiciraNvpRouterMappingDao" class="com.cloud.network.dao.NiciraNvpRouterMappingDaoImpl" singleton="false"/> |
| <dao name="ElasticLbVmMapDao" class="com.cloud.network.lb.dao.ElasticLbVmMapDaoImpl" singleton="false"/> |
| </management-server> |
| |
| <configuration-server class="com.cloud.server.ConfigurationServerImpl"> |
| <dao name="Configuration configuration server" class="com.cloud.configuration.dao.ConfigurationDaoImpl" singleton="false"> |
| <param name="premium">true</param> |
| </dao> |
| <dao name="Snapshot policy defaults" class="com.cloud.storage.dao.SnapshotPolicyDaoImpl" singleton="false"/> |
| <dao name="DiskOffering configuration server" class="com.cloud.storage.dao.DiskOfferingDaoImpl" singleton="false"/> |
| <dao name="ServiceOffering configuration server" class="com.cloud.service.dao.ServiceOfferingDaoImpl" singleton="false"/> |
| <dao name="host zone configuration server" class="com.cloud.dc.dao.DataCenterDaoImpl" singleton="false"/> |
| <dao name="host pod configuration server" class="com.cloud.dc.dao.HostPodDaoImpl" singleton="false"/> |
| <dao name="DomainDao" class="com.cloud.domain.dao.DomainDaoImpl" singleton="false"/> |
| <dao name="NetworkOfferingDao" class="com.cloud.offerings.dao.NetworkOfferingDaoImpl" singleton="false"/> |
| <dao name="DataCenterDao" class="com.cloud.dc.dao.DataCenterDaoImpl" singleton="false"/> |
| <dao name="NetworkDao" class="com.cloud.network.dao.NetworkDaoImpl" singleton="false"/> |
| <dao name="IpAddressDao" class="com.cloud.network.dao.IPAddressDaoImpl" singleton="false"/> |
| <dao name="VlanDao" class="com.cloud.dc.dao.VlanDaoImpl" singleton="false"/> |
| <dao name="ResouceCountDao" class="com.cloud.configuration.dao.ResourceCountDaoImpl" singleton="false"/> |
| <dao name="AccountDao" class="com.cloud.user.dao.AccountDaoImpl" singleton="false"/> |
| <dao name="UserDao" class="com.cloud.user.dao.UserDaoImpl" singleton="false"/> |
| <dao name="NetworkOfferingServiceDao" class="com.cloud.offerings.dao.NetworkOfferingServiceMapDaoImpl" singleton="false"/> |
| <dao name="VirtualRouterProviderDao" class="com.cloud.network.dao.VirtualRouterProviderDaoImpl" singleton="false"/> |
| <dao name="Site2SiteCustomerGatewayDao" class="com.cloud.network.dao.Site2SiteCustomerGatewayDaoImpl" singleton="false"/> |
| <dao name="Site2SiteVpnGatewayDao" class="com.cloud.network.dao.Site2SiteVpnGatewayDaoImpl" singleton="false"/> |
| <dao name="Site2SiteVpnConnectionDao" class="com.cloud.network.dao.Site2SiteVpnConnectionDaoImpl" singleton="false"/> |
| </configuration-server> |
| </components.xml> |