You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by fr...@apache.org on 2014/07/07 23:50:03 UTC
[3/6] git commit: updated refs/heads/master to 65497b6
CLOUDSTACK-6278
Baremetal Advanced Networking support
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3ddc9e76
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3ddc9e76
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3ddc9e76
Branch: refs/heads/master
Commit: 3ddc9e7674c4a12b0e12ca51bb8795dcff5de974
Parents: 7b44418
Author: Frank.Zhang <fr...@citrix.com>
Authored: Mon Jul 7 11:40:21 2014 -0700
Committer: Frank.Zhang <fr...@citrix.com>
Committed: Mon Jul 7 11:40:21 2014 -0700
----------------------------------------------------------------------
server/src/com/cloud/configuration/Config.java | 8 ++++++++
.../VirtualNetworkApplianceManagerImpl.java | 20 +++++++++++++++++++-
utils/src/com/cloud/utils/fsm/StateObject.java | 4 ++--
3 files changed, 29 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ddc9e76/server/src/com/cloud/configuration/Config.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java
index 196db93..7863001 100755
--- a/server/src/com/cloud/configuration/Config.java
+++ b/server/src/com/cloud/configuration/Config.java
@@ -1761,6 +1761,14 @@ public enum Config {
"The maximum number of retrying times to search for an available IPv6 address in the table",
null),
+ BaremetalPeerHypervisorType(
+ "Advanced",
+ ManagementServer.class,
+ String.class,
+ "baremetal.peer.hypervisor.type",
+ "XenServer",
+ "Hypervisor[Xenserver/KVM/VMWare] used to spring up virtual router for baremetal instances. The cluster having this hypervisor type must be in the same zone with baremetal cluster",
+ null),
ExternalBaremetalSystemUrl(
"Advanced",
ManagementServer.class,
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ddc9e76/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 1068a2f..d8e3761 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -1738,7 +1738,7 @@ VirtualMachineGuru, Listener, Configurable, StateListener<State, VirtualMachine.
int startRetry = 0;
DomainRouterVO router = null;
for (final Iterator<HypervisorType> iter = hypervisors.iterator(); iter.hasNext();) {
- final HypervisorType hType = iter.next();
+ HypervisorType hType = iter.next();
try {
final long id = _routerDao.getNextInSequence(Long.class, "id");
if (s_logger.isDebugEnabled()) {
@@ -1762,6 +1762,24 @@ VirtualMachineGuru, Listener, Configurable, StateListener<State, VirtualMachine.
case LXC:
templateName = RouterTemplateLxc.valueIn(dest.getDataCenter().getId());
break;
+ case BareMetal:
+ String peerHvType = _configDao.getValue(Config.BaremetalPeerHypervisorType.key());
+ if (peerHvType == null) {
+ throw new CloudRuntimeException(String.format("To use baremetal in advanced networking, you must set %s to type of hypervisor(e.g XenServer)" +
+ " that exists in the same zone with baremetal host. That hyperivsor is used to spring up virtual router for baremetal instance", Config.BaremetalPeerHypervisorType.key()));
+ }
+
+ hType = HypervisorType.getType(peerHvType);
+ if (HypervisorType.XenServer.toString().equals(peerHvType)) {
+ templateName = RouterTemplateXen.valueIn(dest.getDataCenter().getId());
+ } else if (HypervisorType.KVM.toString().equals(peerHvType)) {
+ templateName = RouterTemplateKvm.valueIn(dest.getDataCenter().getId());
+ } else if (HypervisorType.VMware.toString().equals(peerHvType)) {
+ templateName = RouterTemplateVmware.valueIn(dest.getDataCenter().getId());
+ } else {
+ throw new CloudRuntimeException(String.format("Baremetal only supports peer hypervisor(XenServer/KVM/VMWare) right now, you specified %s", peerHvType));
+ }
+ break;
default:
break;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3ddc9e76/utils/src/com/cloud/utils/fsm/StateObject.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/fsm/StateObject.java b/utils/src/com/cloud/utils/fsm/StateObject.java
old mode 100644
new mode 100755
index 4ee4dac..85dd441
--- a/utils/src/com/cloud/utils/fsm/StateObject.java
+++ b/utils/src/com/cloud/utils/fsm/StateObject.java
@@ -21,7 +21,7 @@ package com.cloud.utils.fsm;
public interface StateObject<S> {
/**
- * @return finite state.
- */
+ * @return finite state.
+ */
S getState();
}