You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by se...@apache.org on 2014/06/20 13:31:53 UTC
git commit: updated refs/heads/ovmsupport to ed47763
Repository: cloudstack
Updated Branches:
refs/heads/ovmsupport c108d7f0d -> ed47763e2
CLOUDSTACK-6968: Initial OVM3 drop
Signed-off-by: Sebastien Goasguen <ru...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ed47763e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ed47763e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ed47763e
Branch: refs/heads/ovmsupport
Commit: ed47763e2525a21fa4578d199492462d0fb1c7ef
Parents: c108d7f
Author: Funs <fu...@barred.org>
Authored: Fri Jun 20 13:22:19 2014 +0200
Committer: Sebastien Goasguen <ru...@gmail.com>
Committed: Fri Jun 20 07:31:29 2014 -0400
----------------------------------------------------------------------
api/src/com/cloud/hypervisor/Hypervisor.java | 5 ++
api/src/com/cloud/network/NetworkService.java | 4 +-
.../network/PhysicalNetworkTrafficType.java | 2 +
.../org/apache/cloudstack/api/ApiConstants.java | 4 +
.../command/admin/cluster/AddClusterCmd.java | 18 +++-
.../command/admin/usage/AddTrafficTypeCmd.java | 11 ++-
.../admin/usage/UpdateTrafficTypeCmd.java | 11 ++-
.../api/response/ClusterResponse.java | 12 +++
.../api/response/TrafficTypeResponse.java | 12 +++
.../classes/resources/messages.properties | 4 +
client/pom.xml | 5 ++
.../dao/PhysicalNetworkTrafficTypeDaoImpl.java | 9 ++
.../dao/PhysicalNetworkTrafficTypeVO.java | 16 +++-
.../storage/snapshot/SnapshotObject.java | 9 +-
plugins/hypervisors/ovm3 | 1 +
plugins/pom.xml | 1 +
.../storage/secondary/cloud-install-sys-tmplt | 27 +++---
scripts/storage/secondary/createtmplt.sh | 2 +-
server/src/com/cloud/configuration/Config.java | 10 ++-
.../configuration/ConfigurationManagerImpl.java | 2 +-
.../src/com/cloud/network/NetworkModelImpl.java | 13 ++-
.../com/cloud/network/NetworkServiceImpl.java | 12 ++-
.../VirtualNetworkApplianceManagerImpl.java | 4 +
.../com/cloud/resource/ResourceManagerImpl.java | 8 ++
.../com/cloud/server/ManagementServerImpl.java | 7 +-
.../storage/listener/StoragePoolMonitor.java | 3 +-
server/src/com/cloud/vm/UserVmManagerImpl.java | 6 +-
.../com/cloud/vpc/MockNetworkManagerImpl.java | 6 +-
setup/db/create-schema.sql | 3 +
setup/db/db/schema-410to420.sql | 3 +-
setup/db/templates.sql | 20 ++++-
ui/dictionary.jsp | 3 +
ui/scripts/docs.js | 12 +++
ui/scripts/system.js | 89 ++++++++++++++++++--
ui/scripts/templates.js | 6 ++
ui/scripts/zoneWizard.js | 43 +++++++++-
36 files changed, 358 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/api/src/com/cloud/hypervisor/Hypervisor.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/hypervisor/Hypervisor.java b/api/src/com/cloud/hypervisor/Hypervisor.java
index f8b98cf..f8868af 100644
--- a/api/src/com/cloud/hypervisor/Hypervisor.java
+++ b/api/src/com/cloud/hypervisor/Hypervisor.java
@@ -31,6 +31,7 @@ public class Hypervisor {
BareMetal,
Simulator,
Ovm,
+ Ovm3,
LXC,
Any; /*If you don't care about the hypervisor type*/
@@ -57,6 +58,8 @@ public class Hypervisor {
return HypervisorType.Simulator;
} else if (hypervisor.equalsIgnoreCase("Ovm")) {
return HypervisorType.Ovm;
+ } else if (hypervisor.equalsIgnoreCase("Ovm3")) {
+ return HypervisorType.Ovm3;
} else if (hypervisor.equalsIgnoreCase("LXC")) {
return HypervisorType.LXC;
} else if (hypervisor.equalsIgnoreCase("Any")) {
@@ -81,6 +84,8 @@ public class Hypervisor {
return ImageFormat.OVA;
} else if (hyperType == HypervisorType.Ovm) {
return ImageFormat.RAW;
+ } else if (hyperType == HypervisorType.Ovm3) {
+ return ImageFormat.RAW;
} else {
return null;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/api/src/com/cloud/network/NetworkService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/NetworkService.java b/api/src/com/cloud/network/NetworkService.java
index 250121e..20066d8 100755
--- a/api/src/com/cloud/network/NetworkService.java
+++ b/api/src/com/cloud/network/NetworkService.java
@@ -111,11 +111,11 @@ public interface NetworkService {
long findPhysicalNetworkId(long zoneId, String tag, TrafficType trafficType);
PhysicalNetworkTrafficType addTrafficTypeToPhysicalNetwork(Long physicalNetworkId, String trafficType, String xenLabel, String kvmLabel, String vmwareLabel,
- String simulatorLabel, String vlan, String hypervLabel);
+ String simulatorLabel, String vlan, String hypervLabel, String ovm3Label);
PhysicalNetworkTrafficType getPhysicalNetworkTrafficType(Long id);
- PhysicalNetworkTrafficType updatePhysicalNetworkTrafficType(Long id, String xenLabel, String kvmLabel, String vmwareLabel, String hypervLabel);
+ PhysicalNetworkTrafficType updatePhysicalNetworkTrafficType(Long id, String xenLabel, String kvmLabel, String vmwareLabel, String hypervLabel, String ovm3Label);
boolean deletePhysicalNetworkTrafficType(Long id);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/api/src/com/cloud/network/PhysicalNetworkTrafficType.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/PhysicalNetworkTrafficType.java b/api/src/com/cloud/network/PhysicalNetworkTrafficType.java
index a50aa37..9676bad 100644
--- a/api/src/com/cloud/network/PhysicalNetworkTrafficType.java
+++ b/api/src/com/cloud/network/PhysicalNetworkTrafficType.java
@@ -39,4 +39,6 @@ public interface PhysicalNetworkTrafficType extends InternalIdentity, Identity {
String getSimulatorNetworkLabel();
String getHypervNetworkLabel();
+
+ String getOvm3NetworkLabel();
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java
index 287fff3..47e3a7f 100755
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@ -355,6 +355,7 @@ public class ApiConstants {
public static final String LOCAL_STORAGE_ENABLED = "localstorageenabled";
public static final String GUEST_IP_TYPE = "guestiptype";
public static final String XEN_NETWORK_LABEL = "xennetworklabel";
+ public static final String OVM3_NETWORK_LABEL = "ovm3networklabel";
public static final String KVM_NETWORK_LABEL = "kvmnetworklabel";
public static final String VMWARE_NETWORK_LABEL = "vmwarenetworklabel";
public static final String HYPERV_NETWORK_LABEL = "hypervnetworklabel";
@@ -436,6 +437,9 @@ public class ApiConstants {
public static final String VSM_CONFIG_MODE = "vsmconfigmode";
public static final String VSM_CONFIG_STATE = "vsmconfigstate";
public static final String VSM_DEVICE_STATE = "vsmdevicestate";
+ public static final String OVM3_POOL = "ovm3pool";
+ public static final String OVM3_CLUSTER = "ovm3cluster";
+ public static final String OVM3_VIP = "ovm3vip";
public static final String VCENTER = "vcenter";
public static final String ADD_VSM_FLAG = "addvsmflag";
public static final String END_POINT = "endpoint";
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/api/src/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java b/api/src/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
index d0e7380..83f342d 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/cluster/AddClusterCmd.java
@@ -65,7 +65,7 @@ public class AddClusterCmd extends BaseCmd {
@Parameter(name = ApiConstants.HYPERVISOR,
type = CommandType.STRING,
required = true,
- description = "hypervisor type of the cluster: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator")
+ description = "hypervisor type of the cluster: XenServer,KVM,VMware,Hyperv,BareMetal,Simulator,Ovm3")
private String hypervisor;
@Parameter(name = ApiConstants.CLUSTER_TYPE, type = CommandType.STRING, required = true, description = "type of the cluster: CloudManaged, ExternalManaged")
@@ -74,6 +74,22 @@ public class AddClusterCmd extends BaseCmd {
@Parameter(name = ApiConstants.ALLOCATION_STATE, type = CommandType.STRING, description = "Allocation state of this cluster for allocation of new resources")
private String allocationState;
+ @Parameter(name = ApiConstants.OVM3_POOL, type = CommandType.STRING, required = false, description = "Ovm3 native pooling enabled for cluster")
+ private String ovm3pool;
+ @Parameter(name = ApiConstants.OVM3_CLUSTER, type = CommandType.STRING, required = false, description = "Ovm3 native OCFS2 clustering enabled for cluster")
+ private String ovm3cluster;
+ @Parameter(name = ApiConstants.OVM3_VIP, type = CommandType.STRING, required = false, description = "Ovm3 vip to use for pool (and cluster)")
+ private String ovm3vip;
+ public String getOvm3Pool() {
+ return ovm3pool;
+ }
+ public String getOvm3Cluster() {
+ return ovm3cluster;
+ }
+ public String getOvm3Vip() {
+ return ovm3vip;
+ }
+
@Parameter(name = ApiConstants.VSM_USERNAME, type = CommandType.STRING, required = false, description = "the username for the VSM associated with this cluster")
private String vsmusername;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java b/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
index e6e18cb..1a227d6 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java
@@ -64,6 +64,11 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
description = "The network name label of the physical device dedicated to this traffic on a KVM host")
private String kvmLabel;
+ @Parameter(name = ApiConstants.OVM3_NETWORK_LABEL,
+ type = CommandType.STRING,
+ description = "The network name of the physical device dedicated to this traffic on an OVM3 host")
+ private String ovm3Label;
+
@Parameter(name = ApiConstants.VMWARE_NETWORK_LABEL,
type = CommandType.STRING,
description = "The network name label of the physical device dedicated to this traffic on a VMware host")
@@ -97,6 +102,10 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
return kvmLabel;
}
+ public String getOvm3Label() {
+ return ovm3Label;
+ }
+
public String getVmwareLabel() {
return vmwareLabel;
}
@@ -149,7 +158,7 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
public void create() throws ResourceAllocationException {
PhysicalNetworkTrafficType result =
_networkService.addTrafficTypeToPhysicalNetwork(getPhysicalNetworkId(), getTrafficType(), getXenLabel(), getKvmLabel(), getVmwareLabel(),
- getSimulatorLabel(), getVlan(), getHypervLabel());
+ getSimulatorLabel(), getVlan(), getHypervLabel(), getOvm3Label());
if (result != null) {
setEntityId(result.getId());
setEntityUuid(result.getUuid());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/api/src/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java b/api/src/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
index 2ad470e..6bef9b9 100644
--- a/api/src/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/admin/usage/UpdateTrafficTypeCmd.java
@@ -54,6 +54,11 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
description = "The network name label of the physical device dedicated to this traffic on a KVM host")
private String kvmLabel;
+ @Parameter(name = ApiConstants.OVM3_NETWORK_LABEL,
+ type = CommandType.STRING,
+ description = "The network name of the physical device dedicated to this traffic on an OVM3 host")
+ private String ovm3Label;
+
@Parameter(name = ApiConstants.VMWARE_NETWORK_LABEL,
type = CommandType.STRING,
description = "The network name label of the physical device dedicated to this traffic on a VMware host")
@@ -80,6 +85,10 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
return kvmLabel;
}
+ public String getOvm3Label() {
+ return ovm3Label;
+ }
+
public String getVmwareLabel() {
return vmwareLabel;
}
@@ -104,7 +113,7 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
@Override
public void execute() {
- PhysicalNetworkTrafficType result = _networkService.updatePhysicalNetworkTrafficType(getId(), getXenLabel(), getKvmLabel(), getVmwareLabel(), getHypervLabel());
+ PhysicalNetworkTrafficType result = _networkService.updatePhysicalNetworkTrafficType(getId(), getXenLabel(), getKvmLabel(), getVmwareLabel(), getHypervLabel(), getOvm3Label());
if (result != null) {
TrafficTypeResponse response = _responseGenerator.createTrafficTypeResponse(result);
response.setResponseName(getCommandName());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/api/src/org/apache/cloudstack/api/response/ClusterResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/ClusterResponse.java b/api/src/org/apache/cloudstack/api/response/ClusterResponse.java
index 0890309..df01e09 100644
--- a/api/src/org/apache/cloudstack/api/response/ClusterResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/ClusterResponse.java
@@ -82,6 +82,10 @@ public class ClusterResponse extends BaseResponse {
@Param(description = "The memory overcommit ratio of the cluster")
private String memoryovercommitratio;
+ @SerializedName("ovm3vip")
+ @Param(description = "Ovm3 VIP to use for pooling and/or clustering")
+ private String ovm3vip;
+
public String getId() {
return id;
}
@@ -185,4 +189,12 @@ public class ClusterResponse extends BaseResponse {
public String getMemoryOvercommitRatio() {
return memoryovercommitratio;
}
+
+ public void setOvm3Vip(String ovm3vip) {
+ this.ovm3vip = ovm3vip;
+ }
+
+ public String getOvm3Vip() {
+ return ovm3vip;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/api/src/org/apache/cloudstack/api/response/TrafficTypeResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/TrafficTypeResponse.java b/api/src/org/apache/cloudstack/api/response/TrafficTypeResponse.java
index 69dd062..de7d57c 100644
--- a/api/src/org/apache/cloudstack/api/response/TrafficTypeResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/TrafficTypeResponse.java
@@ -48,6 +48,10 @@ public class TrafficTypeResponse extends BaseResponse {
@Param(description = "The network name label of the physical device dedicated to this traffic on a KVM host")
private String kvmNetworkLabel;
+ @SerializedName(ApiConstants.OVM3_NETWORK_LABEL)
+ @Param(description = "The network name of the physical device dedicated to this traffic on an OVM3 host")
+ private String ovm3NetworkLabel;
+
@SerializedName(ApiConstants.VMWARE_NETWORK_LABEL)
@Param(description = "The network name label of the physical device dedicated to this traffic on a VMware host")
private String vmwareNetworkLabel;
@@ -93,6 +97,10 @@ public class TrafficTypeResponse extends BaseResponse {
return kvmNetworkLabel;
}
+ public String getOvm3Label() {
+ return ovm3NetworkLabel;
+ }
+
public String getHypervLabel() {
return hypervNetworkLabel;
}
@@ -109,6 +117,10 @@ public class TrafficTypeResponse extends BaseResponse {
this.kvmNetworkLabel = kvmLabel;
}
+ public void setOvm3Label(String ovm3Label) {
+ this.ovm3NetworkLabel = ovm3Label;
+ }
+
public void setVmwareLabel(String vmwareNetworkLabel) {
this.vmwareNetworkLabel = vmwareNetworkLabel;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/client/WEB-INF/classes/resources/messages.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties
index f186fbf..1cf9d54 100644
--- a/client/WEB-INF/classes/resources/messages.properties
+++ b/client/WEB-INF/classes/resources/messages.properties
@@ -374,6 +374,10 @@ label.affinity.groups=Affinity Groups
label.affinity=Affinity
label.agent.password=Agent Password
label.agent.username=Agent Username
+label.agent.port=Agent Port
+label.ovm3.vip=Master Vip IP
+label.ovm3.pool=Native Pooling
+label.ovm3.cluster=Native Clustering
label.agree=Agree
label.alert=Alert
label.algorithm=Algorithm
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/client/pom.xml
----------------------------------------------------------------------
diff --git a/client/pom.xml b/client/pom.xml
index 5215e0c..189ca9e 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -157,6 +157,11 @@
</dependency>
<dependency>
<groupId>org.apache.cloudstack</groupId>
+ <artifactId>cloud-plugin-hypervisor-ovm3</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-plugin-hypervisor-kvm</artifactId>
<version>${project.version}</version>
<exclusions>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeDaoImpl.java b/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeDaoImpl.java
index 4e8e017..fe7d49c 100755
--- a/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeDaoImpl.java
+++ b/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeDaoImpl.java
@@ -43,6 +43,7 @@ public class PhysicalNetworkTrafficTypeDaoImpl extends GenericDaoBase<PhysicalNe
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> simulatorAllFieldsSearch;
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> ovmAllFieldsSearch;
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> hypervAllFieldsSearch;
+ final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> ovm3AllFieldsSearch;
protected PhysicalNetworkTrafficTypeDaoImpl() {
super();
@@ -86,6 +87,12 @@ public class PhysicalNetworkTrafficTypeDaoImpl extends GenericDaoBase<PhysicalNe
ovmAllFieldsSearch.and("trafficType", ovmAllFieldsSearch.entity().getTrafficType(), Op.EQ);
ovmAllFieldsSearch.selectFields(ovmAllFieldsSearch.entity().getSimulatorNetworkLabel());
ovmAllFieldsSearch.done();
+
+ ovm3AllFieldsSearch = createSearchBuilder(String.class);
+ ovm3AllFieldsSearch.and("physicalNetworkId", ovm3AllFieldsSearch.entity().getPhysicalNetworkId(), Op.EQ);
+ ovm3AllFieldsSearch.and("trafficType", ovm3AllFieldsSearch.entity().getTrafficType(), Op.EQ);
+ ovm3AllFieldsSearch.selectFields(ovm3AllFieldsSearch.entity().getOvm3NetworkLabel());
+ ovm3AllFieldsSearch.done();
}
@Override
@@ -124,6 +131,8 @@ public class PhysicalNetworkTrafficTypeDaoImpl extends GenericDaoBase<PhysicalNe
return null;
} else if (hType == HypervisorType.Hyperv) {
sc = hypervAllFieldsSearch.create();
+ } else if (hType == HypervisorType.Ovm3) {
+ sc = ovm3AllFieldsSearch.create();
} else {
assert (false) : "We don't handle this hypervisor type";
return null;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeVO.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeVO.java b/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeVO.java
index 395a4e3..8c47fcc 100644
--- a/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeVO.java
+++ b/engine/schema/src/com/cloud/network/dao/PhysicalNetworkTrafficTypeVO.java
@@ -54,6 +54,10 @@ public class PhysicalNetworkTrafficTypeVO implements PhysicalNetworkTrafficType
@Column(name = "kvm_network_label")
private String kvmNetworkLabel;
+ /* should perhaps have it's own label ? */
+ @Column(name = "ovm_network_label")
+ private String ovm3NetworkLabel;
+
@Column(name = "vmware_network_label")
private String vmwareNetworkLabel;
@@ -70,7 +74,7 @@ public class PhysicalNetworkTrafficTypeVO implements PhysicalNetworkTrafficType
}
public PhysicalNetworkTrafficTypeVO(long physicalNetworkId, TrafficType trafficType, String xenLabel, String kvmLabel, String vmwareLabel, String simulatorLabel,
- String vlan, String hypervLabel) {
+ String vlan, String hypervLabel, String ovm3Label) {
this.physicalNetworkId = physicalNetworkId;
this.trafficType = trafficType;
this.xenNetworkLabel = xenLabel;
@@ -78,6 +82,7 @@ public class PhysicalNetworkTrafficTypeVO implements PhysicalNetworkTrafficType
this.vmwareNetworkLabel = vmwareLabel;
this.simulatorNetworkLabel = simulatorLabel;
this.hypervNetworkLabel = hypervLabel;
+ this.ovm3NetworkLabel = ovm3Label;
this.setVlan(vlan);
this.uuid = UUID.randomUUID().toString();
}
@@ -160,4 +165,13 @@ public class PhysicalNetworkTrafficTypeVO implements PhysicalNetworkTrafficType
return hypervNetworkLabel;
}
+ public void setOvm3NetworkLabel(String ovm3NetworkLabel) {
+ this.ovm3NetworkLabel = ovm3NetworkLabel;
+
+ }
+
+ @Override
+ public String getOvm3NetworkLabel() {
+ return ovm3NetworkLabel;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java
----------------------------------------------------------------------
diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java
index 9cac20d..268ad08 100644
--- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java
+++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java
@@ -286,7 +286,14 @@ public class SnapshotObject implements SnapshotInfo {
} else if (answer instanceof CopyCmdAnswer) {
SnapshotObjectTO snapshotTO = (SnapshotObjectTO)((CopyCmdAnswer)answer).getNewData();
snapshotStore.setInstallPath(snapshotTO.getPath());
- snapshotStore.setSize(snapshotTO.getPhysicalSize());
+ // DEBUG [o.a.c.s.s.SnapshotServiceImpl] (Job-Executor-10:ctx-edd5ff44 ctx-822f2b0b) Failed to update snapshot state
+ // java.lang.NullPointerException
+ // at org.apache.cloudstack.storage.snapshot.SnapshotObject.processEvent(SnapshotObject.java:289)
+ if (snapshotTO.getPhysicalSize() == null) {
+ snapshotStore.setSize(0L);
+ } else {
+ snapshotStore.setSize(snapshotTO.getPhysicalSize());
+ }
if (snapshotTO.getParentSnapshotPath() == null) {
snapshotStore.setParentSnapshotId(0L);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/plugins/hypervisors/ovm3
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3 b/plugins/hypervisors/ovm3
new file mode 160000
index 0000000..bd64f2d
--- /dev/null
+++ b/plugins/hypervisors/ovm3
@@ -0,0 +1 @@
+Subproject commit bd64f2dbf461847a3f7056693bf34e80e4f7af73
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 85a7bbe..bbf3ccc 100755
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -36,6 +36,7 @@
<module>host-allocators/random</module>
<module>dedicated-resources</module>
<module>hypervisors/ovm</module>
+ <module>hypervisors/ovm3</module>
<module>hypervisors/xen</module>
<module>hypervisors/kvm</module>
<module>event-bus/rabbitmq</module>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/scripts/storage/secondary/cloud-install-sys-tmplt
----------------------------------------------------------------------
diff --git a/scripts/storage/secondary/cloud-install-sys-tmplt b/scripts/storage/secondary/cloud-install-sys-tmplt
index 96b11de..a6de3ad 100755
--- a/scripts/storage/secondary/cloud-install-sys-tmplt
+++ b/scripts/storage/secondary/cloud-install-sys-tmplt
@@ -20,9 +20,9 @@
usage() {
- printf "Usage: %s: -m <secondary storage mount point> -f <system vm template file> [-h <hypervisor name: kvm|vmware|xenserver|hyperv> ] [ -s <mgmt server secret key, if you specified any when running cloudstack-setup-database, default is password>][-u <Url to system vm template>] [-F <clean up system templates of specified hypervisor>] [-e <Template suffix, e.g vhd, ova, qcow2>] [-o <Database server hostname or ip, e.g localhost>] [-r <Database user name, e.g root>] [-d <Database password. Fllowed by nothing if the password is empty>]\n" $(basename $0) >&2
+ printf "Usage: %s: -m <secondary storage mount point> -f <system vm template file> [-h <hypervisor name: kvm|vmware|xenserver|hyperv|ovm3> ] [ -s <mgmt server secret key, if you specified any when running cloudstack-setup-database, default is password>][-u <Url to system vm template>] [-F <clean up system templates of specified hypervisor>] [-e <Template suffix, e.g vhd, ova, qcow2, raw>] [-o <Database server hostname or ip, e.g localhost>] [-r <Database user name, e.g root>] [-d <Database password. Fllowed by nothing if the password is empty>]\n" $(basename $0) >&2
printf "or\n" >&2
- printf "%s: -m <secondary storage mount point> -u <http url for system vm template> [-h <hypervisor name: kvm|vmware|xenserver|hyperv> ] [ -s <mgmt server secret key>]\n" $(basename $0) >&2
+ printf "%s: -m <secondary storage mount point> -u <http url for system vm template> [-h <hypervisor name: kvm|vmware|xenserver|hyperv|ovm3> ] [ -s <mgmt server secret key>]\n" $(basename $0) >&2
}
failed() {
@@ -36,7 +36,7 @@ ext="vhd"
templateId=
hyper=
msKey=password
-DISKSPACE=5120000 #free disk space required in kilobytes
+DISKSPACE=512000 #free disk space required in kilobytes
dbHost=
dbUser=
dbPassword=
@@ -48,7 +48,7 @@ do
mntpoint="$OPTARG"
;;
f) fflag=1
- tmpltimg="$OPTARG"
+ mytmpltimg="$OPTARG"
;;
u) uflag=1
url="$OPTARG"
@@ -96,9 +96,9 @@ then
failed 4
fi
-if [[ "$fflag" == "1" && ! -f $tmpltimg ]]
+if [[ "$fflag" == "1" && ! -f $mytmpltimg ]]
then
- echo "template image file $tmpltimg doesn't exist"
+ echo "template image file $mytmpltimg doesn't exist"
failed 3
fi
@@ -165,6 +165,10 @@ then
then
ext="vhd"
templateId=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "select max(id) from cloud.vm_template where type = \"SYSTEM\" and hypervisor_type = \"Hyperv\" and removed is null"`)
+ elif [ "$hyper" == "ovm3" ]
+ then
+ ext="raw"
+ templateId=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "select max(id) from cloud.vm_template where type = \"SYSTEM\" and hypervisor_type = \"Ovm3\" and removed is null"`)
else
usage
failed 2
@@ -177,7 +181,10 @@ then
failed 8
fi
-localfile=$(uuidgen).$ext
+_uuid=$(uuidgen)
+localfile=$_uuid.$ext
+
+_res=(`mysql -h $dbHost --user=$dbUser --password=$dbPassword --skip-column-names -U cloud -e "update cloud.vm_template set uuid=\"$_uuid\" where id=\"$templateId\""`)
mntpoint=`echo "$mntpoint" | sed 's|/*$||'`
@@ -242,7 +249,7 @@ fi
if [ "$fflag" == "1" ]
then
- cp $tmpltimg $tmpfile
+ cp $mytmpltimg $tmpfile
if [ $? -ne 0 ]
then
printf "Failed to create temporary file in directory $(dirname $0) -- is it read-only or full?\n"
@@ -255,7 +262,7 @@ installrslt=$($(dirname $0)/createtmplt.sh -s 2 -d 'SystemVM Template' -n $local
if [ $? -ne 0 ]
then
- echo "Failed to install system vm template $tmpltimg to $destdir: $installrslt"
+ echo "Failed to install system vm template $mytmpltimg to $destdir: $installrslt"
failed 7
fi
@@ -276,4 +283,4 @@ echo "$ext.virtualsize=$tmpltsize" >> $destdir/template.properties
echo "virtualsize=$tmpltsize" >> $destdir/template.properties
echo "$ext.size=$tmpltsize" >> $destdir/template.properties
-echo "Successfully installed system VM template $tmpltimg to $destdir"
+echo "Successfully installed system VM template $_uuid to $destdir"
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/scripts/storage/secondary/createtmplt.sh
----------------------------------------------------------------------
diff --git a/scripts/storage/secondary/createtmplt.sh b/scripts/storage/secondary/createtmplt.sh
index 6b31232..838ce92 100755
--- a/scripts/storage/secondary/createtmplt.sh
+++ b/scripts/storage/secondary/createtmplt.sh
@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/bin/bash
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/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 0c58141..43d0297 100755
--- a/server/src/com/cloud/configuration/Config.java
+++ b/server/src/com/cloud/configuration/Config.java
@@ -706,7 +706,7 @@ public enum Config {
String.class,
"system.vm.default.hypervisor",
null,
- "Hypervisor type used to create system vm, valid values are: XenServer, KVM, VMware, Hyperv, VirtualBox, Parralels, BareMetal, Ovm, LXC, Any",
+ "Hypervisor type used to create system vm, valid values are: XenServer, KVM, VMware, Hyperv, VirtualBox, Parralels, BareMetal, Ovm, Ovm3, LXC, Any",
null),
SystemVMRandomPassword(
"Advanced",
@@ -723,7 +723,7 @@ public enum Config {
String.class,
"hypervisor.list",
HypervisorType.Hyperv + "," + HypervisorType.KVM + "," + HypervisorType.XenServer + "," + HypervisorType.VMware + "," + HypervisorType.BareMetal + "," +
- HypervisorType.Ovm + "," + HypervisorType.LXC,
+ HypervisorType.Ovm + "," + HypervisorType.Ovm3 + "," + HypervisorType.LXC,
"The list of hypervisors that this deployment will use.",
"hypervisorList"),
ManagementNetwork("Advanced", ManagementServer.class, String.class, "management.network.cidr", null, "The cidr of management server network", null),
@@ -1069,6 +1069,12 @@ public enum Config {
OvmPrivateNetwork("Hidden", ManagementServer.class, String.class, "ovm.private.network.device", null, "Specify the private bridge on host for private network", null),
OvmGuestNetwork("Hidden", ManagementServer.class, String.class, "ovm.guest.network.device", null, "Specify the private bridge on host for private network", null),
+ // Ovm3
+ Ovm3PublicNetwork("Hidden", ManagementServer.class, String.class, "ovm3.public.network.device", null, "Specify the public bridge on host for public network", null),
+ Ovm3PrivateNetwork("Hidden", ManagementServer.class, String.class, "ovm3.private.network.device", null, "Specify the private bridge on host for private network", null),
+ Ovm3GuestNetwork("Hidden", ManagementServer.class, String.class, "ovm3.guest.network.device", null, "Specify the guest bridge on host for guest network", null),
+ Ovm3StorageNetwork("Hidden", ManagementServer.class, String.class, "ovm3.storage.network.device", null, "Specify the storage bridge on host for storage network", null),
+
// XenServer
XenPublicNetwork(
"Hidden",
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index 9d148fa..9e291e0 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -1691,7 +1691,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
PhysicalNetworkTrafficTypeVO mgmtTraffic = _trafficTypeDao.findBy(mgmtPhyNetwork.getId(), TrafficType.Management);
_networkSvc.addTrafficTypeToPhysicalNetwork(mgmtPhyNetwork.getId(), TrafficType.Storage.toString(), mgmtTraffic.getXenNetworkLabel(),
mgmtTraffic.getKvmNetworkLabel(), mgmtTraffic.getVmwareNetworkLabel(), mgmtTraffic.getSimulatorNetworkLabel(), mgmtTraffic.getVlan(),
- mgmtTraffic.getHypervNetworkLabel());
+ mgmtTraffic.getHypervNetworkLabel(), mgmtTraffic.getOvm3NetworkLabel());
s_logger.info("No storage traffic type was specified by admin, create default storage traffic on physical network " + mgmtPhyNetwork.getId()
+ " with same configure of management traffic type");
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index 52a08e1..582c135 100755
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -1194,6 +1194,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
case Hyperv:
label = mgmtTraffic.getHypervNetworkLabel();
break;
+ case Ovm3:
+ label = mgmtTraffic.getOvm3NetworkLabel();
+ break;
}
return label;
}
@@ -1226,6 +1229,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
case Hyperv:
label = storageTraffic.getHypervNetworkLabel();
break;
+ case Ovm3:
+ label = storageTraffic.getOvm3NetworkLabel();
+ break;
}
return label;
}
@@ -1580,6 +1586,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
case Hyperv:
label = publicTraffic.getHypervNetworkLabel();
break;
+ case Ovm3:
+ label = publicTraffic.getOvm3NetworkLabel();
+ break;
}
return label;
}
@@ -1612,7 +1621,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
case Hyperv:
label = guestTraffic.getHypervNetworkLabel();
break;
-
+ case Ovm3:
+ label = guestTraffic.getOvm3NetworkLabel();
+ break;
}
return label;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/server/src/com/cloud/network/NetworkServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java
index 056190f..fbceeba 100755
--- a/server/src/com/cloud/network/NetworkServiceImpl.java
+++ b/server/src/com/cloud/network/NetworkServiceImpl.java
@@ -3527,7 +3527,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
@DB
@ActionEvent(eventType = EventTypes.EVENT_TRAFFIC_TYPE_CREATE, eventDescription = "Creating Physical Network TrafficType", create = true)
public PhysicalNetworkTrafficType addTrafficTypeToPhysicalNetwork(Long physicalNetworkId, String trafficTypeStr, String xenLabel, String kvmLabel, String vmwareLabel,
- String simulatorLabel, String vlan, String hypervLabel) {
+ String simulatorLabel, String vlan, String hypervLabel, String ovm3Label) {
// verify input parameters
PhysicalNetworkVO network = _physicalNetworkDao.findById(physicalNetworkId);
@@ -3579,7 +3579,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
xenLabel = getDefaultXenNetworkLabel(trafficType);
}
PhysicalNetworkTrafficTypeVO pNetworktrafficType = new PhysicalNetworkTrafficTypeVO(physicalNetworkId, trafficType, xenLabel, kvmLabel, vmwareLabel, simulatorLabel,
- vlan, hypervLabel);
+ vlan, hypervLabel, ovm3Label);
pNetworktrafficType = _pNTrafficTypeDao.persist(pNetworktrafficType);
return pNetworktrafficType;
@@ -3623,7 +3623,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
@Override
@ActionEvent(eventType = EventTypes.EVENT_TRAFFIC_TYPE_UPDATE, eventDescription = "Updating physical network TrafficType", async = true)
- public PhysicalNetworkTrafficType updatePhysicalNetworkTrafficType(Long id, String xenLabel, String kvmLabel, String vmwareLabel, String hypervLabel) {
+ public PhysicalNetworkTrafficType updatePhysicalNetworkTrafficType(Long id, String xenLabel, String kvmLabel, String vmwareLabel, String hypervLabel, String ovm3Label) {
PhysicalNetworkTrafficTypeVO trafficType = _pNTrafficTypeDao.findById(id);
@@ -3656,6 +3656,12 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
}
trafficType.setHypervNetworkLabel(hypervLabel);
}
+ if (ovm3Label != null) {
+ if ("".equals(ovm3Label)) {
+ ovm3Label = null;
+ }
+ trafficType.setOvm3NetworkLabel(ovm3Label);
+ }
_pNTrafficTypeDao.update(id, trafficType);
return trafficType;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/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 82332b7..3dbdbd6 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -2631,6 +2631,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
result = false;
}
} else {
+ s_logger.warn("answer was null or no CHeckAnswerwhile ssh to the VM: " + answer.getDetails());
result = false;
}
if (result == false) {
@@ -2653,6 +2654,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
if (!result) {
+ s_logger.warn("no result while ssh to the VM");
return result;
}
@@ -2663,11 +2665,13 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
s_logger.warn("Unable to get the template/scripts version of router " + router.getInstanceName() + " due to: " + versionAnswer.getDetails());
result = false;
} else {
+ s_logger.warn("Domrversion for VM: " + versionAnswer.getTemplateVersion());
router.setTemplateVersion(versionAnswer.getTemplateVersion());
router.setScriptsVersion(versionAnswer.getScriptsVersion());
router = _routerDao.persist(router, guestNetworks);
}
} else {
+ s_logger.warn("no domrversion for VM: " + answer.getDetails());
result = false;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/server/src/com/cloud/resource/ResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java
index c9e2e7a..ec2066f 100755
--- a/server/src/com/cloud/resource/ResourceManagerImpl.java
+++ b/server/src/com/cloud/resource/ResourceManagerImpl.java
@@ -409,6 +409,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
throw new InvalidParameterValueException("Unable to resolve " + cmd.getHypervisor() + " to a supported ");
}
+ /* check if OVM3 supports this */
if (zone.isSecurityGroupEnabled() && zone.getNetworkType().equals(NetworkType.Advanced)) {
if (hypervisorType != HypervisorType.KVM && hypervisorType != HypervisorType.XenServer && hypervisorType != HypervisorType.Simulator) {
throw new InvalidParameterValueException("Don't support hypervisor type " + hypervisorType + " in advanced security enabled zone");
@@ -467,6 +468,13 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
if (clusterType == Cluster.ClusterType.CloudManaged) {
Map<String, String> details = new HashMap<String, String>();
+ // should do this nicer perhaps ?
+ if (hypervisorType == HypervisorType.Ovm3) {
+ Map<String, String> allParams = cmd.getFullUrlParams();
+ details.put("ovm3vip", allParams.get("ovm3vip"));
+ details.put("ovm3pool", allParams.get("ovm3pool"));
+ details.put("ovm3cluster", allParams.get("ovm3cluster"));
+ }
details.put("cpuOvercommitRatio", CapacityManager.CpuOverprovisioningFactor.value().toString());
details.put("memoryOvercommitRatio", CapacityManager.MemOverprovisioningFactor.value().toString());
_clusterDetailsDao.persist(cluster.getId(), details);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/server/src/com/cloud/server/ManagementServerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java
index a015b4b..dac51f5 100755
--- a/server/src/com/cloud/server/ManagementServerImpl.java
+++ b/server/src/com/cloud/server/ManagementServerImpl.java
@@ -1073,11 +1073,12 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
}
if (!vm.getHypervisorType().equals(HypervisorType.XenServer) && !vm.getHypervisorType().equals(HypervisorType.VMware) && !vm.getHypervisorType().equals(HypervisorType.KVM)
- && !vm.getHypervisorType().equals(HypervisorType.Ovm) && !vm.getHypervisorType().equals(HypervisorType.Hyperv)) {
+ && !vm.getHypervisorType().equals(HypervisorType.Ovm) && !vm.getHypervisorType().equals(HypervisorType.Hyperv)
+ && !vm.getHypervisorType().equals(HypervisorType.Ovm3)) {
if (s_logger.isDebugEnabled()) {
- s_logger.debug(vm + " is not XenServer/VMware/KVM/OVM/Hyperv, cannot migrate this VM.");
+ s_logger.debug(vm + " is not XenServer/VMware/KVM/OVM/Hyperv/Ovm3, cannot migrate this VM.");
}
- throw new InvalidParameterValueException("Unsupported Hypervisor Type for VM migration, we support " + "XenServer/VMware/KVM/Ovm/Hyperv only");
+ throw new InvalidParameterValueException("Unsupported Hypervisor Type for VM migration, we support " + "XenServer/VMware/KVM/Ovm/Hyperv/Ovm3 only");
}
long srcHostId = vm.getHostId();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/server/src/com/cloud/storage/listener/StoragePoolMonitor.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/listener/StoragePoolMonitor.java b/server/src/com/cloud/storage/listener/StoragePoolMonitor.java
index 9f6b5fb..812aadd 100755
--- a/server/src/com/cloud/storage/listener/StoragePoolMonitor.java
+++ b/server/src/com/cloud/storage/listener/StoragePoolMonitor.java
@@ -76,7 +76,8 @@ public class StoragePoolMonitor implements Listener {
StartupRoutingCommand scCmd = (StartupRoutingCommand)cmd;
if (scCmd.getHypervisorType() == HypervisorType.XenServer || scCmd.getHypervisorType() == HypervisorType.KVM ||
scCmd.getHypervisorType() == HypervisorType.VMware || scCmd.getHypervisorType() == HypervisorType.Simulator ||
- scCmd.getHypervisorType() == HypervisorType.Ovm || scCmd.getHypervisorType() == HypervisorType.Hyperv) {
+ scCmd.getHypervisorType() == HypervisorType.Ovm || scCmd.getHypervisorType() == HypervisorType.Hyperv ||
+ scCmd.getHypervisorType() == HypervisorType.Ovm3) {
List<StoragePoolVO> pools = _poolDao.listBy(host.getDataCenterId(), host.getPodId(), host.getClusterId(), ScopeType.CLUSTER);
List<StoragePoolVO> zoneStoragePoolsByTags = _poolDao.findZoneWideStoragePoolsByTags(host.getDataCenterId(), null);
List<StoragePoolVO> zoneStoragePoolsByHypervisor = _poolDao.findZoneWideStoragePoolsByHypervisor(host.getDataCenterId(), scCmd.getHypervisorType());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index e9cccc4..490e6eb 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -3862,11 +3862,11 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
}
if (!vm.getHypervisorType().equals(HypervisorType.XenServer) && !vm.getHypervisorType().equals(HypervisorType.VMware) && !vm.getHypervisorType().equals(HypervisorType.KVM)
&& !vm.getHypervisorType().equals(HypervisorType.Ovm) && !vm.getHypervisorType().equals(HypervisorType.Hyperv)
- && !vm.getHypervisorType().equals(HypervisorType.Simulator)) {
+ && !vm.getHypervisorType().equals(HypervisorType.Simulator) && !vm.getHypervisorType().equals(HypervisorType.Ovm3)) {
if (s_logger.isDebugEnabled()) {
- s_logger.debug(vm + " is not XenServer/VMware/KVM/Ovm/Hyperv, cannot migrate this VM.");
+ s_logger.debug(vm + " is not XenServer/VMware/KVM/Ovm/Hyperv/Ovm3, cannot migrate this VM.");
}
- throw new InvalidParameterValueException("Unsupported Hypervisor Type for VM migration, we support XenServer/VMware/KVM/Ovm/Hyperv only");
+ throw new InvalidParameterValueException("Unsupported Hypervisor Type for VM migration, we support XenServer/VMware/KVM/Ovm/Hyperv/Ovm3 only");
}
if (isVMUsingLocalStorage(vm)) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
index 846e2f5..c167ab6 100644
--- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
@@ -404,11 +404,11 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkOrches
}
/* (non-Javadoc)
- * @see com.cloud.network.NetworkService#addTrafficTypeToPhysicalNetwork(java.lang.Long, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
+ * @see com.cloud.network.NetworkService#addTrafficTypeToPhysicalNetwork(java.lang.Long, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
*/
@Override
public PhysicalNetworkTrafficType addTrafficTypeToPhysicalNetwork(Long physicalNetworkId, String trafficType, String xenLabel, String kvmLabel, String vmwareLabel,
- String simulatorLabel, String vlan, String hypervLabel) {
+ String simulatorLabel, String vlan, String hypervLabel, String ovm3Label) {
// TODO Auto-generated method stub
return null;
}
@@ -426,7 +426,7 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkOrches
* @see com.cloud.network.NetworkService#updatePhysicalNetworkTrafficType(java.lang.Long, java.lang.String, java.lang.String, java.lang.String)
*/
@Override
- public PhysicalNetworkTrafficType updatePhysicalNetworkTrafficType(Long id, String xenLabel, String kvmLabel, String vmwareLabel, String hypervLabel) {
+ public PhysicalNetworkTrafficType updatePhysicalNetworkTrafficType(Long id, String xenLabel, String kvmLabel, String vmwareLabel, String hypervLabel, String ovm3Label) {
// TODO Auto-generated method stub
return null;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/setup/db/create-schema.sql
----------------------------------------------------------------------
diff --git a/setup/db/create-schema.sql b/setup/db/create-schema.sql
index 2a53a71..b140c3a 100755
--- a/setup/db/create-schema.sql
+++ b/setup/db/create-schema.sql
@@ -1683,6 +1683,9 @@ INSERT IGNORE INTO `cloud`.`hypervisor_capabilities`(hypervisor_type, hypervisor
INSERT IGNORE INTO `cloud`.`hypervisor_capabilities`(hypervisor_type, hypervisor_version, max_guests_limit, security_group_enabled) VALUES ('KVM', 'default', 50, 1);
INSERT IGNORE INTO `cloud`.`hypervisor_capabilities`(hypervisor_type, hypervisor_version, max_guests_limit, security_group_enabled) VALUES ('Ovm', 'default', 25, 1);
INSERT IGNORE INTO `cloud`.`hypervisor_capabilities`(hypervisor_type, hypervisor_version, max_guests_limit, security_group_enabled) VALUES ('Ovm', '2.3', 25, 1);
+INSERT IGNORE INTO `cloud`.`hypervisor_capabilities`(hypervisor_type, hypervisor_version, max_guests_limit, security_group_enabled) VALUES ('Ovm3', 'default', 25, 1);$
+INSERT IGNORE INTO `cloud`.`hypervisor_capabilities`(hypervisor_type, hypervisor_version, max_guests_limit, security_group_enabled) VALUES ('Ovm3', '3.0', 50, 1);$
+
CREATE TABLE `cloud`.`launch_permission` (
`id` bigint unsigned NOT NULL auto_increment,
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-410to420.sql b/setup/db/db/schema-410to420.sql
index ebbcfef..4a74db7 100644
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@ -546,6 +546,7 @@ update `cloud`.`volumes` v, `cloud`.`storage_pool` s, `cloud`.`cluster` c se
update `cloud`.`volumes` v, `cloud`.`storage_pool` s, `cloud`.`cluster` c set v.format='OVA' where v.pool_id=s.id and s.cluster_id=c.id and c.hypervisor_type='VMware';
update `cloud`.`volumes` v, `cloud`.`storage_pool` s, `cloud`.`cluster` c set v.format='QCOW2' where v.pool_id=s.id and s.cluster_id=c.id and c.hypervisor_type='KVM';
update `cloud`.`volumes` v, `cloud`.`storage_pool` s, `cloud`.`cluster` c set v.format='RAW' where v.pool_id=s.id and s.cluster_id=c.id and c.hypervisor_type='Ovm';
+update `cloud`.`volumes` v, `cloud`.`storage_pool` s, `cloud`.`cluster` c set v.format='RAW' where v.pool_id=s.id and s.cluster_id=c.id and c.hypervisor_type='Ovm3';
ALTER TABLE `cloud`.`networks` ADD COLUMN `display_network` tinyint(1) NOT NULL DEFAULT 1 COMMENT 'Should network be displayed to the end user';
@@ -666,7 +667,7 @@ ALTER TABLE `cloud`.`remote_access_vpn` ADD COLUMN `uuid` varchar(40) UNIQUE;
INSERT IGNORE INTO `cloud`.`hypervisor_capabilities`(uuid, hypervisor_type, hypervisor_version, max_guests_limit, security_group_enabled) VALUES (UUID(), 'LXC', 'default', 50, 1);
ALTER TABLE `cloud`.`physical_network_traffic_types` ADD COLUMN `lxc_network_label` varchar(255) DEFAULT 'cloudbr0' COMMENT 'The network name label of the physical device dedicated to this traffic on a LXC host';
-UPDATE configuration SET value='KVM,XenServer,VMware,BareMetal,Ovm,LXC' WHERE name='hypervisor.list';
+UPDATE configuration SET value='KVM,XenServer,VMware,BareMetal,Ovm,Ovm3,LXC' WHERE name='hypervisor.list';
INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
VALUES (10, UUID(), 'routing-10', 'SystemVM Template (LXC)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2', '2755de1f9ef2ce4d6f2bee2efbb4da92', 0, 'SystemVM Template (LXC)', 'QCOW2', 15, 0, 1, 'LXC');
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/setup/db/templates.sql
----------------------------------------------------------------------
diff --git a/setup/db/templates.sql b/setup/db/templates.sql
index 20180f5..9e5b0de 100755
--- a/setup/db/templates.sql
+++ b/setup/db/templates.sql
@@ -30,6 +30,9 @@ INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created,
INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
VALUES (5, UUID(), 'centos56-x86_64-xen', 'CentOS 5.6(64-bit) no GUI (XenServer)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/templates/builtin/centos56-x86_64.vhd.bz2', '905cec879afd9c9d22ecc8036131a180', 0, 'CentOS 5.6(64-bit) no GUI (XenServer)', 'VHD', 142, 1, 1, 'XenServer', 1);
+-- INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
+-- VALUES (6, UUID(), 'centos64-x64', 'CentOS 6.4(64-bit) GUI (Hyperv)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/releases/4.3/centos6_4_64bit.vhd.bz2', 'eef6b9940ea3ed01221d963d4a012d0a', 0, 'CentOS 6.4 (64-bit) GUI (Hyperv)', 'VHD', 182, 1, 1, 'Hyperv', 1);
+
INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
VALUES (7, UUID(), 'centos53-x64', 'CentOS 5.3(64-bit) no GUI (vSphere)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/releases/2.2.0/CentOS5.3-x86_64.ova', 'f6f881b7f2292948d8494db837fe0f47', 0, 'CentOS 5.3(64-bit) no GUI (vSphere)', 'OVA', 12, 1, 1, 'VMware', 1);
@@ -39,8 +42,9 @@ INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created,
INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
VALUES (9, UUID(), 'routing-9', 'SystemVM Template (HyperV)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/4.3/systemvm64template-2013-12-23-hyperv.vhd.bz2', '5df45ee6ebe1b703a8805f4e1f4d0818', 0, 'SystemVM Template (HyperV)', 'VHD', 15, 0, 1, 'Hyperv' );
-INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type, extractable)
- VALUES (6, UUID(), 'centos64-x64', 'CentOS 6.4(64-bit) GUI (Hyperv)', 1, now(), 'BUILTIN', 0, 64, 1, 'http://download.cloud.com/releases/4.3/centos6_4_64bit.vhd.bz2', 'eef6b9940ea3ed01221d963d4a012d0a', 0, 'CentOS 6.4 (64-bit) GUI (Hyperv)', 'VHD', 182, 1, 1, 'Hyperv', 1);
+-- 1- already taken, the upgrade 410 to 420 breaks...
+INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm, bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones, hypervisor_type)
+ VALUES (11, UUID(), 'routing-11', 'SystemVM Template (Ovm3)', 0, now(), 'SYSTEM', 0, 32, 1, 'http://nibbler/~funs/iso/systemvmtemplate-4.2-ovm.vhd.bz2', '4425688804dbcf0abc9e9e56c53070d7', 0, 'SystemVM Template (Ovm3)', 'RAW', 183, 0, 1, 'Ovm3' );
INSERT INTO `cloud`.`guest_os_category` (id, uuid, name) VALUES (1, UUID(), 'CentOS');
INSERT INTO `cloud`.`guest_os_category` (id, uuid, name) VALUES (2, UUID(), 'Debian');
@@ -589,3 +593,15 @@ INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest
INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ('KVM', 'Other', 60);
INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ('KVM', 'Other', 103);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ("Ovm3", 'Sun Solaris 10(32-bit)', 79);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ("Ovm3", 'Sun Solaris 10(64-bit)', 80);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ("Ovm3", 'Sun Solaris 11(32-bit)', 158);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ("Ovm3", 'Sun Solaris 11(64-bit)', 159);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ("Ovm3", 'Other Linux (32-bit)', 98);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ("Ovm3", 'Other Linux (64-bit)', 99);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ('Ovm3', 'Other PV (32-bit)', 139);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ('Ovm3', 'Other PV (64-bit)', 140);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ('Ovm3', 'DOS', 102);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ("Ovm3", 'Windows 8 (32-bit)', 165);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ("Ovm3", 'Windows 8 (64-bit)', 166);
+INSERT INTO `cloud`.`guest_os_hypervisor` (hypervisor_type, guest_os_name, guest_os_id) VALUES ("Ovm3", 'Windows Server 2012 (64-bit)', 167);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/ui/dictionary.jsp
----------------------------------------------------------------------
diff --git a/ui/dictionary.jsp b/ui/dictionary.jsp
index 16ecbab..7e82028 100644
--- a/ui/dictionary.jsp
+++ b/ui/dictionary.jsp
@@ -380,6 +380,9 @@ dictionary = {
'label.affinity.groups': '<fmt:message key="label.affinity.groups" />',
'label.agent.password': '<fmt:message key="label.agent.password" />',
'label.agent.username': '<fmt:message key="label.agent.username" />',
+'label.ovm3.pool': '<fmt:message key="label.ovm3.pool" />',
+'label.ovm3.cluster': '<fmt:message key="label.ovm3.cluster" />',
+'label.ovm3.vip': '<fmt:message key="label.ovm3.vip" />',
'label.agree': '<fmt:message key="label.agree" />',
'label.alert': '<fmt:message key="label.alert" />',
'label.algorithm': '<fmt:message key="label.algorithm" />',
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/ui/scripts/docs.js
----------------------------------------------------------------------
diff --git a/ui/scripts/docs.js b/ui/scripts/docs.js
index 32237f3..0bb05ef 100755
--- a/ui/scripts/docs.js
+++ b/ui/scripts/docs.js
@@ -1211,5 +1211,17 @@ cloudStack.docs = {
helpLdapGroupName: {
desc: 'The group name from which you want to import LDAP users',
externalLink: ''
+ },
+ helpOvm3pool: {
+ desc: 'Pool the Ovm3 nodes in this cluster, required for vm node migrations',
+ externalLink: ''
+ },
+ helpOvm3cluster: {
+ desc: 'Use the native Ovm3 OCFS2 clustering, required for native HA and requires pooling',
+ externalLink: ''
+ },
+ helpOvm3Vip: {
+ desc: 'The VIP used by the pool and cluster',
+ externalLink: ''
}
};
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 64e4f5c..7def0f6 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -12439,7 +12439,12 @@
'vsmpassword_req'];
return $.inArray($(this).attr('rel'), nexusDvsReqFields) > -1;
});
-
+ if ($form.find('.form-item[rel=hypervisor] select').val() == 'Ovm3') {
+ $form.find('.form-item[rel=ovm3pool]').css('display', 'inline-block');
+ $form.find('.form-item[rel=ovm3cluster]').css('display', 'inline-block');
+ $form.find('.form-item[rel=ovm3vip]').css('display', 'inline-block');
+ }
+
if ($form.find('.form-item[rel=hypervisor] select').val() == 'VMware') {
$form.find('.form-item[rel=vCenterHost]').css('display', 'inline-block');
$form.find('.form-item[rel=vCenterUsername]').css('display', 'inline-block');
@@ -12685,6 +12690,30 @@
required: false
}
},
+
+ //hypervisor==Ovm3 begins here
+ ovm3pool: {
+ label: 'label.ovm3.pool',
+ isHidden: true,
+ isBoolean: true,
+ isChecked: true,
+ docID: 'helpOvm3pool'
+ },
+ ovm3cluster: {
+ label: 'label.ovm3.cluster',
+ isHidden: true,
+ isBoolean: true,
+ isChecked: false,
+ docID: 'helpOvm3cluster'
+ },
+ ovm3vip: {
+ label: 'label.ovm3.vip',
+ isHidden: true,
+ docID: 'helpOvm3Vip',
+ validation: {
+ required: false
+ }
+ },
//hypervisor==VMWare begins here
vCenterHost: {
@@ -12725,7 +12754,6 @@
docID: 'helpOverridePublicNetwork'
},
-
vSwitchPublicType: {
label: 'Public Traffic vSwitch Type',
select: function (args) {
@@ -12915,7 +12943,11 @@
array1.push("&podId=" + args.data.podId);
var clusterName = args.data.name;
-
+ if (args.data.hypervisor == "Ovm3") {
+ array1.push("&ovm3pool=" + todb(args.data.ovm3pool));
+ array1.push("&ovm3cluster=" + todb(args.data.ovm3cluster));
+ array1.push("&ovm3vip=" + todb(args.data.ovm3vip));
+ }
if (args.data.hypervisor == "VMware") {
array1.push("&username=" + todb(args.data.vCenterUsername));
array1.push("&password=" + todb(args.data.vCenterPassword));
@@ -13953,6 +13985,18 @@
$form.find('.form-item[rel=agentUsername]').css('display', 'inline-block');
$form.find('.form-item[rel=agentUsername]').find('input').val("oracle");
$form.find('.form-item[rel=agentPassword]').css('display', 'inline-block');
+ } else if (selectedClusterObj.hypervisortype == "Ovm3") {
+ //$('li[input_group="general"]', $dialogAddHost).show();
+ $form.find('.form-item[rel=hostname]').css('display', 'inline-block');
+ $form.find('.form-item[rel=username]').css('display', 'inline-block');
+ $form.find('.form-item[rel=password]').css('display', 'inline-block');
+
+ //$('li[input_group="Ovm3"]', $dialogAddHost).show();
+ $form.find('.form-item[rel=agentUsername]').css('display', 'inline-block');
+ $form.find('.form-item[rel=agentUsername]').find('input').val("oracle");
+ $form.find('.form-item[rel=agentPassword]').css('display', 'inline-block');
+ $form.find('.form-item[rel=agentPort]').css('display', 'inline-block');
+ $form.find('.form-item[rel=agentPort]').find('input').val("8899");
} else {
//$('li[input_group="general"]', $dialogAddHost).show();
$form.find('.form-item[rel=hostname]').css('display', 'inline-block');
@@ -14115,6 +14159,16 @@
isPassword: true
},
//input_group="OVM" ends here
+
+ //input_group="OVM3" starts here
+ agentPort: {
+ label: 'label.agent.port',
+ validation: {
+ required: false
+ },
+ isHidden: true
+ },
+ //input_group="OVM3" ends here
//always appear (begin)
hosttags: {
@@ -14179,9 +14233,16 @@
} else if (selectedClusterObj.hypervisortype == "Ovm") {
$.extend(data, {
agentusername: args.data.agentUsername,
- agentpassword: args.data.agentPassword
- });
- }
+ agentpassword: args.data.agentPassword,
+ });
+ } else if (selectedClusterObj.hypervisortype == "Ovm3") {
+ $.extend(data, {
+ agentusername: args.data.agentUsername,
+ agentpassword: args.data.agentPassword,
+ agentport: args.data.agentPort,
+ });
+ }
+
}
var hostId = null;
@@ -15101,6 +15162,22 @@
args.response.success({
data: items
});
+ } else if (selectedClusterObj.hypervisortype == "Ovm3") {
+ var items =[];
+ items.push({
+ id: "nfs",
+ description: "nfs"
+ });
+ /*
+ items.push({
+ id: "ocfs2",
+ description: "ocfs2"
+ });
+ */
+ args.response.success({
+ data: items
+ });
+
} else if (selectedClusterObj.hypervisortype == "LXC") {
var items =[];
items.push({
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/ui/scripts/templates.js
----------------------------------------------------------------------
diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js
index 8c63ce2..085fe9d 100644
--- a/ui/scripts/templates.js
+++ b/ui/scripts/templates.js
@@ -385,6 +385,12 @@
id: 'RAW',
description: 'RAW'
});
+ } else if (args.hypervisor == "Ovm3") {
+ //formatSelect.append("<option value='RAW'>RAW</option>");
+ items.push({
+ id: 'RAW',
+ description: 'RAW'
+ });
} else if (args.hypervisor == "LXC") {
//formatSelect.append("<option value='TAR'>TAR</option>");
items.push({
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ed47763e/ui/scripts/zoneWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index 13630c1..6751f16 100755
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -88,6 +88,9 @@
case 'Ovm':
hypervisorAttr = 'ovmnetworklabel';
break;
+ case 'Ovm3':
+ hypervisorAttr = 'ovmnetworklabel';
+ break;
case 'LXC':
hypervisorAttr = 'lxcnetworklabel';
break;
@@ -474,6 +477,7 @@
nonSupportedHypervisors["BareMetal"] = 1;
nonSupportedHypervisors["Hyperv"] = 1;
nonSupportedHypervisors["Ovm"] = 1;
+ nonSupportedHypervisors["Ovm3"] = 1;
nonSupportedHypervisors["LXC"] = 1;
}
@@ -936,6 +940,15 @@
return $.inArray($(this).attr('rel'), vsmFields) > -1;
});
+ if ($(this).val() == "Ovm3") {
+ $form.find('.form-item[rel=ovm3pool]').css('display', 'inline-block');
+ $form.find('.form-item[rel=ovm3pool]').find('input[type=checkbox]').removeAttr('checked');
+
+ $form.find('.form-item[rel=ovm3cluster]').css('display', 'inline-block');
+ $form.find('.form-item[rel=ovm3cluster]').find('input[type=checkbox]').removeAttr('checked');
+ $form.find('[rel=ovm3vip]').css('display', 'block');$
+ }
+
if ($(this).val() == "VMware") {
//$('li[input_sub_group="external"]', $dialogAddCluster).show();
if (dvSwitchEnabled) {
@@ -1288,6 +1301,18 @@
$form.find('[rel=agentUsername]').css('display', 'block');
$form.find('[rel=agentUsername]').find('input').val("oracle");
$form.find('[rel=agentPassword]').css('display', 'block');
+ } else if (selectedClusterObj.hypervisortype == "Ovm3") {
+ //$('li[input_group="general"]', $dialogAddHost).show();
+ $form.find('.form-item[rel=hostname]').css('display', 'inline-block');
+ $form.find('.form-item[rel=username]').css('display', 'inline-block');
+ $form.find('.form-item[rel=password]').css('display', 'inline-block');
+
+ //$('li[input_group="Ovm3"]', $dialogAddHost).show();
+ $form.find('.form-item[rel=agentUsername]').css('display', 'inline-block');
+ $form.find('.form-item[rel=agentUsername]').find('input').val("oracle");
+ $form.find('.form-item[rel=agentPassword]').css('display', 'inline-block');
+ $form.find('.form-item[rel=agentPort]').css('display', 'inline-block');
+ $form.find('.form-item[rel=agentPort]').find('input').val("8899");
} else {
//$('li[input_group="general"]', $dialogAddHost).show();
$form.find('[rel=hostname]').css('display', 'block');
@@ -1394,6 +1419,16 @@
},
//input_group="OVM" ends here
+ //input_group="OVM3" starts here
+ agentPort: {
+ label: 'label.agent.port',
+ validation: {
+ required: false
+ },
+ isHidden: true
+ },
+ //input_group="OVM3" ends here
+
//always appear (begin)
hosttags: {
label: 'label.host.tags',
@@ -1528,7 +1563,7 @@
args.response.success({
data: items
});
- } else if (selectedClusterObj.hypervisortype == "Ovm") {
+ } else if (selectedClusterObj.hypervisortype == "Ovm" || selectedClusterObj.hypervisortype == "Ovm3") {
var items = [];
items.push({
id: "nfs",
@@ -4364,6 +4399,12 @@
agentusername: args.data.host.agentUsername,
agentpassword: args.data.host.agentPassword
});
+ } else if (selectedClusterObj.hypervisortype == "Ovm3") {
+ $.extend(data, {
+ agentusername: args.data.agentUsername,
+ agentpassword: args.data.agentPassword,
+ agentport: args.data.agentPort,
+ });
}
$.ajax({