mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
CLOUDSTACK-6967: Initial OVM3 drop
Signed-off-by: Sebastien Goasguen <runseb@gmail.com> (cherry picked from commit ed47763e2525a21fa4578d199492462d0fb1c7ef) Conflicts: api/src/com/cloud/network/NetworkService.java api/src/org/apache/cloudstack/api/ApiConstants.java api/src/org/apache/cloudstack/api/command/admin/usage/AddTrafficTypeCmd.java engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotObject.java plugins/pom.xml server/src/com/cloud/network/NetworkServiceImpl.java server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java server/test/com/cloud/vpc/MockNetworkManagerImpl.java ui/scripts/docs.js
This commit is contained in:
parent
bbcffbbab0
commit
8a485b9b59
@ -31,6 +31,7 @@ public class Hypervisor {
|
|||||||
BareMetal,
|
BareMetal,
|
||||||
Simulator,
|
Simulator,
|
||||||
Ovm,
|
Ovm,
|
||||||
|
Ovm3,
|
||||||
LXC,
|
LXC,
|
||||||
|
|
||||||
Any; /*If you don't care about the hypervisor type*/
|
Any; /*If you don't care about the hypervisor type*/
|
||||||
@ -57,6 +58,8 @@ public class Hypervisor {
|
|||||||
return HypervisorType.Simulator;
|
return HypervisorType.Simulator;
|
||||||
} else if (hypervisor.equalsIgnoreCase("Ovm")) {
|
} else if (hypervisor.equalsIgnoreCase("Ovm")) {
|
||||||
return HypervisorType.Ovm;
|
return HypervisorType.Ovm;
|
||||||
|
} else if (hypervisor.equalsIgnoreCase("Ovm3")) {
|
||||||
|
return HypervisorType.Ovm3;
|
||||||
} else if (hypervisor.equalsIgnoreCase("LXC")) {
|
} else if (hypervisor.equalsIgnoreCase("LXC")) {
|
||||||
return HypervisorType.LXC;
|
return HypervisorType.LXC;
|
||||||
} else if (hypervisor.equalsIgnoreCase("Any")) {
|
} else if (hypervisor.equalsIgnoreCase("Any")) {
|
||||||
@ -81,6 +84,8 @@ public class Hypervisor {
|
|||||||
return ImageFormat.OVA;
|
return ImageFormat.OVA;
|
||||||
} else if (hyperType == HypervisorType.Ovm) {
|
} else if (hyperType == HypervisorType.Ovm) {
|
||||||
return ImageFormat.RAW;
|
return ImageFormat.RAW;
|
||||||
|
} else if (hyperType == HypervisorType.Ovm3) {
|
||||||
|
return ImageFormat.RAW;
|
||||||
} else {
|
} else {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -111,11 +111,11 @@ public interface NetworkService {
|
|||||||
long findPhysicalNetworkId(long zoneId, String tag, TrafficType trafficType);
|
long findPhysicalNetworkId(long zoneId, String tag, TrafficType trafficType);
|
||||||
|
|
||||||
PhysicalNetworkTrafficType addTrafficTypeToPhysicalNetwork(Long physicalNetworkId, String trafficType, String isolationMethod, String xenLabel, String kvmLabel, String vmwareLabel,
|
PhysicalNetworkTrafficType addTrafficTypeToPhysicalNetwork(Long physicalNetworkId, String trafficType, String isolationMethod, 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 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);
|
boolean deletePhysicalNetworkTrafficType(Long id);
|
||||||
|
|
||||||
|
|||||||
@ -39,4 +39,6 @@ public interface PhysicalNetworkTrafficType extends InternalIdentity, Identity {
|
|||||||
String getSimulatorNetworkLabel();
|
String getSimulatorNetworkLabel();
|
||||||
|
|
||||||
String getHypervNetworkLabel();
|
String getHypervNetworkLabel();
|
||||||
|
|
||||||
|
String getOvm3NetworkLabel();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -379,6 +379,7 @@ public class ApiConstants {
|
|||||||
public static final String LOCAL_STORAGE_ENABLED = "localstorageenabled";
|
public static final String LOCAL_STORAGE_ENABLED = "localstorageenabled";
|
||||||
public static final String GUEST_IP_TYPE = "guestiptype";
|
public static final String GUEST_IP_TYPE = "guestiptype";
|
||||||
public static final String XENSERVER_NETWORK_LABEL = "xenservernetworklabel";
|
public static final String XENSERVER_NETWORK_LABEL = "xenservernetworklabel";
|
||||||
|
public static final String OVM3_NETWORK_LABEL = "ovm3networklabel";
|
||||||
public static final String KVM_NETWORK_LABEL = "kvmnetworklabel";
|
public static final String KVM_NETWORK_LABEL = "kvmnetworklabel";
|
||||||
public static final String VMWARE_NETWORK_LABEL = "vmwarenetworklabel";
|
public static final String VMWARE_NETWORK_LABEL = "vmwarenetworklabel";
|
||||||
public static final String HYPERV_NETWORK_LABEL = "hypervnetworklabel";
|
public static final String HYPERV_NETWORK_LABEL = "hypervnetworklabel";
|
||||||
@ -461,6 +462,9 @@ public class ApiConstants {
|
|||||||
public static final String VSM_CONFIG_MODE = "vsmconfigmode";
|
public static final String VSM_CONFIG_MODE = "vsmconfigmode";
|
||||||
public static final String VSM_CONFIG_STATE = "vsmconfigstate";
|
public static final String VSM_CONFIG_STATE = "vsmconfigstate";
|
||||||
public static final String VSM_DEVICE_STATE = "vsmdevicestate";
|
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 VCENTER = "vcenter";
|
||||||
public static final String ADD_VSM_FLAG = "addvsmflag";
|
public static final String ADD_VSM_FLAG = "addvsmflag";
|
||||||
public static final String END_POINT = "endpoint";
|
public static final String END_POINT = "endpoint";
|
||||||
|
|||||||
@ -66,7 +66,7 @@ public class AddClusterCmd extends BaseCmd {
|
|||||||
@Parameter(name = ApiConstants.HYPERVISOR,
|
@Parameter(name = ApiConstants.HYPERVISOR,
|
||||||
type = CommandType.STRING,
|
type = CommandType.STRING,
|
||||||
required = true,
|
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;
|
private String hypervisor;
|
||||||
|
|
||||||
@Parameter(name = ApiConstants.CLUSTER_TYPE, type = CommandType.STRING, required = true, description = "type of the cluster: CloudManaged, ExternalManaged")
|
@Parameter(name = ApiConstants.CLUSTER_TYPE, type = CommandType.STRING, required = true, description = "type of the cluster: CloudManaged, ExternalManaged")
|
||||||
@ -75,6 +75,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")
|
@Parameter(name = ApiConstants.ALLOCATION_STATE, type = CommandType.STRING, description = "Allocation state of this cluster for allocation of new resources")
|
||||||
private String allocationState;
|
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")
|
@Parameter(name = ApiConstants.VSM_USERNAME, type = CommandType.STRING, required = false, description = "the username for the VSM associated with this cluster")
|
||||||
private String vsmusername;
|
private String vsmusername;
|
||||||
|
|
||||||
|
|||||||
@ -65,6 +65,11 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
|
|||||||
description = "The network name label of the physical device dedicated to this traffic on a KVM host")
|
description = "The network name label of the physical device dedicated to this traffic on a KVM host")
|
||||||
private String kvmLabel;
|
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,
|
@Parameter(name = ApiConstants.VMWARE_NETWORK_LABEL,
|
||||||
type = CommandType.STRING,
|
type = CommandType.STRING,
|
||||||
description = "The network name label of the physical device dedicated to this traffic on a VMware host")
|
description = "The network name label of the physical device dedicated to this traffic on a VMware host")
|
||||||
@ -102,6 +107,10 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
|
|||||||
return kvmLabel;
|
return kvmLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getOvm3Label() {
|
||||||
|
return ovm3Label;
|
||||||
|
}
|
||||||
|
|
||||||
public String getVmwareLabel() {
|
public String getVmwareLabel() {
|
||||||
return vmwareLabel;
|
return vmwareLabel;
|
||||||
}
|
}
|
||||||
@ -162,7 +171,7 @@ public class AddTrafficTypeCmd extends BaseAsyncCreateCmd {
|
|||||||
public void create() throws ResourceAllocationException {
|
public void create() throws ResourceAllocationException {
|
||||||
PhysicalNetworkTrafficType result =
|
PhysicalNetworkTrafficType result =
|
||||||
_networkService.addTrafficTypeToPhysicalNetwork(getPhysicalNetworkId(), getTrafficType(), getIsolationMethod(), getXenLabel(), getKvmLabel(), getVmwareLabel(),
|
_networkService.addTrafficTypeToPhysicalNetwork(getPhysicalNetworkId(), getTrafficType(), getIsolationMethod(), getXenLabel(), getKvmLabel(), getVmwareLabel(),
|
||||||
getSimulatorLabel(), getVlan(), getHypervLabel());
|
getSimulatorLabel(), getVlan(), getHypervLabel(), getOvm3Label());
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
setEntityId(result.getId());
|
setEntityId(result.getId());
|
||||||
setEntityUuid(result.getUuid());
|
setEntityUuid(result.getUuid());
|
||||||
|
|||||||
@ -55,6 +55,11 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
|
|||||||
description = "The network name label of the physical device dedicated to this traffic on a KVM host")
|
description = "The network name label of the physical device dedicated to this traffic on a KVM host")
|
||||||
private String kvmLabel;
|
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,
|
@Parameter(name = ApiConstants.VMWARE_NETWORK_LABEL,
|
||||||
type = CommandType.STRING,
|
type = CommandType.STRING,
|
||||||
description = "The network name label of the physical device dedicated to this traffic on a VMware host")
|
description = "The network name label of the physical device dedicated to this traffic on a VMware host")
|
||||||
@ -81,6 +86,10 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
|
|||||||
return kvmLabel;
|
return kvmLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getOvm3Label() {
|
||||||
|
return ovm3Label;
|
||||||
|
}
|
||||||
|
|
||||||
public String getVmwareLabel() {
|
public String getVmwareLabel() {
|
||||||
return vmwareLabel;
|
return vmwareLabel;
|
||||||
}
|
}
|
||||||
@ -105,7 +114,7 @@ public class UpdateTrafficTypeCmd extends BaseAsyncCmd {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void execute() {
|
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) {
|
if (result != null) {
|
||||||
TrafficTypeResponse response = _responseGenerator.createTrafficTypeResponse(result);
|
TrafficTypeResponse response = _responseGenerator.createTrafficTypeResponse(result);
|
||||||
response.setResponseName(getCommandName());
|
response.setResponseName(getCommandName());
|
||||||
|
|||||||
@ -82,6 +82,10 @@ public class ClusterResponse extends BaseResponse {
|
|||||||
@Param(description = "The memory overcommit ratio of the cluster")
|
@Param(description = "The memory overcommit ratio of the cluster")
|
||||||
private String memoryovercommitratio;
|
private String memoryovercommitratio;
|
||||||
|
|
||||||
|
@SerializedName("ovm3vip")
|
||||||
|
@Param(description = "Ovm3 VIP to use for pooling and/or clustering")
|
||||||
|
private String ovm3vip;
|
||||||
|
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
@ -185,4 +189,12 @@ public class ClusterResponse extends BaseResponse {
|
|||||||
public String getMemoryOvercommitRatio() {
|
public String getMemoryOvercommitRatio() {
|
||||||
return memoryovercommitratio;
|
return memoryovercommitratio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOvm3Vip(String ovm3vip) {
|
||||||
|
this.ovm3vip = ovm3vip;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getOvm3Vip() {
|
||||||
|
return ovm3vip;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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")
|
@Param(description = "The network name label of the physical device dedicated to this traffic on a KVM host")
|
||||||
private String kvmNetworkLabel;
|
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)
|
@SerializedName(ApiConstants.VMWARE_NETWORK_LABEL)
|
||||||
@Param(description = "The network name label of the physical device dedicated to this traffic on a VMware host")
|
@Param(description = "The network name label of the physical device dedicated to this traffic on a VMware host")
|
||||||
private String vmwareNetworkLabel;
|
private String vmwareNetworkLabel;
|
||||||
@ -93,6 +97,10 @@ public class TrafficTypeResponse extends BaseResponse {
|
|||||||
return kvmNetworkLabel;
|
return kvmNetworkLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getOvm3Label() {
|
||||||
|
return ovm3NetworkLabel;
|
||||||
|
}
|
||||||
|
|
||||||
public String getHypervLabel() {
|
public String getHypervLabel() {
|
||||||
return hypervNetworkLabel;
|
return hypervNetworkLabel;
|
||||||
}
|
}
|
||||||
@ -109,6 +117,10 @@ public class TrafficTypeResponse extends BaseResponse {
|
|||||||
this.kvmNetworkLabel = kvmLabel;
|
this.kvmNetworkLabel = kvmLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOvm3Label(String ovm3Label) {
|
||||||
|
this.ovm3NetworkLabel = ovm3Label;
|
||||||
|
}
|
||||||
|
|
||||||
public void setVmwareLabel(String vmwareNetworkLabel) {
|
public void setVmwareLabel(String vmwareNetworkLabel) {
|
||||||
this.vmwareNetworkLabel = vmwareNetworkLabel;
|
this.vmwareNetworkLabel = vmwareNetworkLabel;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -378,6 +378,10 @@ label.affinity.groups=Affinity Groups
|
|||||||
label.affinity=Affinity
|
label.affinity=Affinity
|
||||||
label.agent.password=Agent Password
|
label.agent.password=Agent Password
|
||||||
label.agent.username=Agent Username
|
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.agree=Agree
|
||||||
label.alert=Alert
|
label.alert=Alert
|
||||||
label.algorithm=Algorithm
|
label.algorithm=Algorithm
|
||||||
|
|||||||
@ -165,6 +165,11 @@
|
|||||||
<artifactId>cloud-plugin-hypervisor-ovm</artifactId>
|
<artifactId>cloud-plugin-hypervisor-ovm</artifactId>
|
||||||
<version>${project.version}</version>
|
<version>${project.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.cloudstack</groupId>
|
||||||
|
<artifactId>cloud-plugin-hypervisor-ovm3</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.apache.cloudstack</groupId>
|
<groupId>org.apache.cloudstack</groupId>
|
||||||
<artifactId>cloud-plugin-hypervisor-kvm</artifactId>
|
<artifactId>cloud-plugin-hypervisor-kvm</artifactId>
|
||||||
|
|||||||
@ -43,6 +43,7 @@ public class PhysicalNetworkTrafficTypeDaoImpl extends GenericDaoBase<PhysicalNe
|
|||||||
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> simulatorAllFieldsSearch;
|
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> simulatorAllFieldsSearch;
|
||||||
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> ovmAllFieldsSearch;
|
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> ovmAllFieldsSearch;
|
||||||
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> hypervAllFieldsSearch;
|
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> hypervAllFieldsSearch;
|
||||||
|
final GenericSearchBuilder<PhysicalNetworkTrafficTypeVO, String> ovm3AllFieldsSearch;
|
||||||
|
|
||||||
protected PhysicalNetworkTrafficTypeDaoImpl() {
|
protected PhysicalNetworkTrafficTypeDaoImpl() {
|
||||||
super();
|
super();
|
||||||
@ -86,6 +87,12 @@ public class PhysicalNetworkTrafficTypeDaoImpl extends GenericDaoBase<PhysicalNe
|
|||||||
ovmAllFieldsSearch.and("trafficType", ovmAllFieldsSearch.entity().getTrafficType(), Op.EQ);
|
ovmAllFieldsSearch.and("trafficType", ovmAllFieldsSearch.entity().getTrafficType(), Op.EQ);
|
||||||
ovmAllFieldsSearch.selectFields(ovmAllFieldsSearch.entity().getSimulatorNetworkLabel());
|
ovmAllFieldsSearch.selectFields(ovmAllFieldsSearch.entity().getSimulatorNetworkLabel());
|
||||||
ovmAllFieldsSearch.done();
|
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
|
@Override
|
||||||
@ -124,6 +131,8 @@ public class PhysicalNetworkTrafficTypeDaoImpl extends GenericDaoBase<PhysicalNe
|
|||||||
return null;
|
return null;
|
||||||
} else if (hType == HypervisorType.Hyperv) {
|
} else if (hType == HypervisorType.Hyperv) {
|
||||||
sc = hypervAllFieldsSearch.create();
|
sc = hypervAllFieldsSearch.create();
|
||||||
|
} else if (hType == HypervisorType.Ovm3) {
|
||||||
|
sc = ovm3AllFieldsSearch.create();
|
||||||
} else {
|
} else {
|
||||||
assert (false) : "We don't handle this hypervisor type";
|
assert (false) : "We don't handle this hypervisor type";
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@ -54,6 +54,10 @@ public class PhysicalNetworkTrafficTypeVO implements PhysicalNetworkTrafficType
|
|||||||
@Column(name = "kvm_network_label")
|
@Column(name = "kvm_network_label")
|
||||||
private String kvmNetworkLabel;
|
private String kvmNetworkLabel;
|
||||||
|
|
||||||
|
/* should perhaps have it's own label ? */
|
||||||
|
@Column(name = "ovm_network_label")
|
||||||
|
private String ovm3NetworkLabel;
|
||||||
|
|
||||||
@Column(name = "vmware_network_label")
|
@Column(name = "vmware_network_label")
|
||||||
private String vmwareNetworkLabel;
|
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,
|
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.physicalNetworkId = physicalNetworkId;
|
||||||
this.trafficType = trafficType;
|
this.trafficType = trafficType;
|
||||||
this.xenNetworkLabel = xenLabel;
|
this.xenNetworkLabel = xenLabel;
|
||||||
@ -78,6 +82,7 @@ public class PhysicalNetworkTrafficTypeVO implements PhysicalNetworkTrafficType
|
|||||||
this.vmwareNetworkLabel = vmwareLabel;
|
this.vmwareNetworkLabel = vmwareLabel;
|
||||||
this.simulatorNetworkLabel = simulatorLabel;
|
this.simulatorNetworkLabel = simulatorLabel;
|
||||||
this.hypervNetworkLabel = hypervLabel;
|
this.hypervNetworkLabel = hypervLabel;
|
||||||
|
this.ovm3NetworkLabel = ovm3Label;
|
||||||
this.setVlan(vlan);
|
this.setVlan(vlan);
|
||||||
this.uuid = UUID.randomUUID().toString();
|
this.uuid = UUID.randomUUID().toString();
|
||||||
}
|
}
|
||||||
@ -160,4 +165,13 @@ public class PhysicalNetworkTrafficTypeVO implements PhysicalNetworkTrafficType
|
|||||||
return hypervNetworkLabel;
|
return hypervNetworkLabel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setOvm3NetworkLabel(String ovm3NetworkLabel) {
|
||||||
|
this.ovm3NetworkLabel = ovm3NetworkLabel;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getOvm3NetworkLabel() {
|
||||||
|
return ovm3NetworkLabel;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -286,9 +286,13 @@ public class SnapshotObject implements SnapshotInfo {
|
|||||||
} else if (answer instanceof CopyCmdAnswer) {
|
} else if (answer instanceof CopyCmdAnswer) {
|
||||||
SnapshotObjectTO snapshotTO = (SnapshotObjectTO)((CopyCmdAnswer)answer).getNewData();
|
SnapshotObjectTO snapshotTO = (SnapshotObjectTO)((CopyCmdAnswer)answer).getNewData();
|
||||||
snapshotStore.setInstallPath(snapshotTO.getPath());
|
snapshotStore.setInstallPath(snapshotTO.getPath());
|
||||||
if (snapshotTO.getPhysicalSize() != null) {
|
// DEBUG [o.a.c.s.s.SnapshotServiceImpl] (Job-Executor-10:ctx-edd5ff44 ctx-822f2b0b) Failed to update snapshot state
|
||||||
// For S3 delta snapshot, physical size is currently not set
|
// java.lang.NullPointerException
|
||||||
snapshotStore.setSize(snapshotTO.getPhysicalSize());
|
// 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) {
|
if (snapshotTO.getParentSnapshotPath() == null) {
|
||||||
snapshotStore.setParentSnapshotId(0L);
|
snapshotStore.setParentSnapshotId(0L);
|
||||||
|
|||||||
1
plugins/hypervisors/ovm3
Submodule
1
plugins/hypervisors/ovm3
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit bd64f2dbf461847a3f7056693bf34e80e4f7af73
|
||||||
@ -50,6 +50,7 @@
|
|||||||
<module>dedicated-resources</module>
|
<module>dedicated-resources</module>
|
||||||
<module>hypervisors/ovm</module>
|
<module>hypervisors/ovm</module>
|
||||||
<module>hypervisors/xenserver</module>
|
<module>hypervisors/xenserver</module>
|
||||||
|
<module>hypervisors/ovm3</module>
|
||||||
<module>hypervisors/kvm</module>
|
<module>hypervisors/kvm</module>
|
||||||
<module>event-bus/rabbitmq</module>
|
<module>event-bus/rabbitmq</module>
|
||||||
<module>event-bus/inmemory</module>
|
<module>event-bus/inmemory</module>
|
||||||
|
|||||||
@ -20,9 +20,9 @@
|
|||||||
|
|
||||||
|
|
||||||
usage() {
|
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 "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() {
|
failed() {
|
||||||
@ -36,7 +36,7 @@ ext="vhd"
|
|||||||
templateId=
|
templateId=
|
||||||
hyper=
|
hyper=
|
||||||
msKey=password
|
msKey=password
|
||||||
DISKSPACE=5120000 #free disk space required in kilobytes
|
DISKSPACE=512000 #free disk space required in kilobytes
|
||||||
dbHost=
|
dbHost=
|
||||||
dbUser=
|
dbUser=
|
||||||
dbPassword=
|
dbPassword=
|
||||||
@ -48,7 +48,7 @@ do
|
|||||||
mntpoint="$OPTARG"
|
mntpoint="$OPTARG"
|
||||||
;;
|
;;
|
||||||
f) fflag=1
|
f) fflag=1
|
||||||
tmpltimg="$OPTARG"
|
mytmpltimg="$OPTARG"
|
||||||
;;
|
;;
|
||||||
u) uflag=1
|
u) uflag=1
|
||||||
url="$OPTARG"
|
url="$OPTARG"
|
||||||
@ -96,9 +96,9 @@ then
|
|||||||
failed 4
|
failed 4
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$fflag" == "1" && ! -f $tmpltimg ]]
|
if [[ "$fflag" == "1" && ! -f $mytmpltimg ]]
|
||||||
then
|
then
|
||||||
echo "template image file $tmpltimg doesn't exist"
|
echo "template image file $mytmpltimg doesn't exist"
|
||||||
failed 3
|
failed 3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -165,6 +165,10 @@ then
|
|||||||
then
|
then
|
||||||
ext="vhd"
|
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"`)
|
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
|
else
|
||||||
usage
|
usage
|
||||||
failed 2
|
failed 2
|
||||||
@ -177,7 +181,10 @@ then
|
|||||||
failed 8
|
failed 8
|
||||||
fi
|
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|/*$||'`
|
mntpoint=`echo "$mntpoint" | sed 's|/*$||'`
|
||||||
|
|
||||||
@ -242,7 +249,7 @@ fi
|
|||||||
|
|
||||||
if [ "$fflag" == "1" ]
|
if [ "$fflag" == "1" ]
|
||||||
then
|
then
|
||||||
cp $tmpltimg $tmpfile
|
cp $mytmpltimg $tmpfile
|
||||||
if [ $? -ne 0 ]
|
if [ $? -ne 0 ]
|
||||||
then
|
then
|
||||||
printf "Failed to create temporary file in directory $(dirname $0) -- is it read-only or full?\n"
|
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 ]
|
if [ $? -ne 0 ]
|
||||||
then
|
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
|
failed 7
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -276,4 +283,4 @@ echo "$ext.virtualsize=$tmpltsize" >> $destdir/template.properties
|
|||||||
echo "virtualsize=$tmpltsize" >> $destdir/template.properties
|
echo "virtualsize=$tmpltsize" >> $destdir/template.properties
|
||||||
echo "$ext.size=$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"
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env bash
|
#!/bin/bash
|
||||||
# Licensed to the Apache Software Foundation (ASF) under one
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
# or more contributor license agreements. See the NOTICE file
|
# or more contributor license agreements. See the NOTICE file
|
||||||
# distributed with this work for additional information
|
# distributed with this work for additional information
|
||||||
|
|||||||
@ -715,7 +715,7 @@ public enum Config {
|
|||||||
String.class,
|
String.class,
|
||||||
"system.vm.default.hypervisor",
|
"system.vm.default.hypervisor",
|
||||||
null,
|
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),
|
null),
|
||||||
SystemVMRandomPassword(
|
SystemVMRandomPassword(
|
||||||
"Advanced",
|
"Advanced",
|
||||||
@ -732,7 +732,7 @@ public enum Config {
|
|||||||
String.class,
|
String.class,
|
||||||
"hypervisor.list",
|
"hypervisor.list",
|
||||||
HypervisorType.Hyperv + "," + HypervisorType.KVM + "," + HypervisorType.XenServer + "," + HypervisorType.VMware + "," + HypervisorType.BareMetal + "," +
|
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.",
|
"The list of hypervisors that this deployment will use.",
|
||||||
"hypervisorList"),
|
"hypervisorList"),
|
||||||
ManagementNetwork("Advanced", ManagementServer.class, String.class, "management.network.cidr", null, "The cidr of management server network", null),
|
ManagementNetwork("Advanced", ManagementServer.class, String.class, "management.network.cidr", null, "The cidr of management server network", null),
|
||||||
@ -1077,6 +1077,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),
|
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),
|
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
|
// XenServer
|
||||||
XenServerPublicNetwork(
|
XenServerPublicNetwork(
|
||||||
"Hidden",
|
"Hidden",
|
||||||
|
|||||||
@ -1734,7 +1734,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
|
|||||||
PhysicalNetworkTrafficTypeVO mgmtTraffic = _trafficTypeDao.findBy(mgmtPhyNetwork.getId(), TrafficType.Management);
|
PhysicalNetworkTrafficTypeVO mgmtTraffic = _trafficTypeDao.findBy(mgmtPhyNetwork.getId(), TrafficType.Management);
|
||||||
_networkSvc.addTrafficTypeToPhysicalNetwork(mgmtPhyNetwork.getId(), TrafficType.Storage.toString(), "vlan", mgmtTraffic.getXenNetworkLabel(),
|
_networkSvc.addTrafficTypeToPhysicalNetwork(mgmtPhyNetwork.getId(), TrafficType.Storage.toString(), "vlan", mgmtTraffic.getXenNetworkLabel(),
|
||||||
mgmtTraffic.getKvmNetworkLabel(), mgmtTraffic.getVmwareNetworkLabel(), mgmtTraffic.getSimulatorNetworkLabel(), mgmtTraffic.getVlan(),
|
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()
|
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");
|
+ " with same configure of management traffic type");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1222,6 +1222,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
|
|||||||
case Hyperv:
|
case Hyperv:
|
||||||
label = mgmtTraffic.getHypervNetworkLabel();
|
label = mgmtTraffic.getHypervNetworkLabel();
|
||||||
break;
|
break;
|
||||||
|
case Ovm3:
|
||||||
|
label = mgmtTraffic.getOvm3NetworkLabel();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
@ -1254,6 +1257,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
|
|||||||
case Hyperv:
|
case Hyperv:
|
||||||
label = storageTraffic.getHypervNetworkLabel();
|
label = storageTraffic.getHypervNetworkLabel();
|
||||||
break;
|
break;
|
||||||
|
case Ovm3:
|
||||||
|
label = storageTraffic.getOvm3NetworkLabel();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
@ -1614,6 +1620,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
|
|||||||
case Hyperv:
|
case Hyperv:
|
||||||
label = publicTraffic.getHypervNetworkLabel();
|
label = publicTraffic.getHypervNetworkLabel();
|
||||||
break;
|
break;
|
||||||
|
case Ovm3:
|
||||||
|
label = publicTraffic.getOvm3NetworkLabel();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
@ -1646,7 +1655,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
|
|||||||
case Hyperv:
|
case Hyperv:
|
||||||
label = guestTraffic.getHypervNetworkLabel();
|
label = guestTraffic.getHypervNetworkLabel();
|
||||||
break;
|
break;
|
||||||
|
case Ovm3:
|
||||||
|
label = guestTraffic.getOvm3NetworkLabel();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -3557,7 +3557,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
@DB
|
@DB
|
||||||
@ActionEvent(eventType = EventTypes.EVENT_TRAFFIC_TYPE_CREATE, eventDescription = "Creating Physical Network TrafficType", create = true)
|
@ActionEvent(eventType = EventTypes.EVENT_TRAFFIC_TYPE_CREATE, eventDescription = "Creating Physical Network TrafficType", create = true)
|
||||||
public PhysicalNetworkTrafficType addTrafficTypeToPhysicalNetwork(Long physicalNetworkId, String trafficTypeStr, String isolationMethod, String xenLabel, String kvmLabel, String vmwareLabel,
|
public PhysicalNetworkTrafficType addTrafficTypeToPhysicalNetwork(Long physicalNetworkId, String trafficTypeStr, String isolationMethod, String xenLabel, String kvmLabel, String vmwareLabel,
|
||||||
String simulatorLabel, String vlan, String hypervLabel) {
|
String simulatorLabel, String vlan, String hypervLabel, String ovm3Label) {
|
||||||
|
|
||||||
// verify input parameters
|
// verify input parameters
|
||||||
PhysicalNetworkVO network = _physicalNetworkDao.findById(physicalNetworkId);
|
PhysicalNetworkVO network = _physicalNetworkDao.findById(physicalNetworkId);
|
||||||
@ -3609,7 +3609,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
xenLabel = getDefaultXenNetworkLabel(trafficType);
|
xenLabel = getDefaultXenNetworkLabel(trafficType);
|
||||||
}
|
}
|
||||||
PhysicalNetworkTrafficTypeVO pNetworktrafficType = new PhysicalNetworkTrafficTypeVO(physicalNetworkId, trafficType, xenLabel, kvmLabel, vmwareLabel, simulatorLabel,
|
PhysicalNetworkTrafficTypeVO pNetworktrafficType = new PhysicalNetworkTrafficTypeVO(physicalNetworkId, trafficType, xenLabel, kvmLabel, vmwareLabel, simulatorLabel,
|
||||||
vlan, hypervLabel);
|
vlan, hypervLabel, ovm3Label);
|
||||||
pNetworktrafficType = _pNTrafficTypeDao.persist(pNetworktrafficType);
|
pNetworktrafficType = _pNTrafficTypeDao.persist(pNetworktrafficType);
|
||||||
|
|
||||||
// For public traffic, get isolation method of physical network and update the public network accordingly
|
// For public traffic, get isolation method of physical network and update the public network accordingly
|
||||||
@ -3669,7 +3669,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ActionEvent(eventType = EventTypes.EVENT_TRAFFIC_TYPE_UPDATE, eventDescription = "Updating physical network TrafficType", async = true)
|
@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);
|
PhysicalNetworkTrafficTypeVO trafficType = _pNTrafficTypeDao.findById(id);
|
||||||
|
|
||||||
@ -3702,6 +3702,12 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService {
|
|||||||
}
|
}
|
||||||
trafficType.setHypervNetworkLabel(hypervLabel);
|
trafficType.setHypervNetworkLabel(hypervLabel);
|
||||||
}
|
}
|
||||||
|
if (ovm3Label != null) {
|
||||||
|
if ("".equals(ovm3Label)) {
|
||||||
|
ovm3Label = null;
|
||||||
|
}
|
||||||
|
trafficType.setOvm3NetworkLabel(ovm3Label);
|
||||||
|
}
|
||||||
_pNTrafficTypeDao.update(id, trafficType);
|
_pNTrafficTypeDao.update(id, trafficType);
|
||||||
|
|
||||||
return trafficType;
|
return trafficType;
|
||||||
|
|||||||
@ -2847,6 +2847,7 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
|
|||||||
router.setTemplateVersion(versionAnswer.getTemplateVersion());
|
router.setTemplateVersion(versionAnswer.getTemplateVersion());
|
||||||
router.setScriptsVersion(versionAnswer.getScriptsVersion());
|
router.setScriptsVersion(versionAnswer.getScriptsVersion());
|
||||||
router = _routerDao.persist(router, guestNetworks);
|
router = _routerDao.persist(router, guestNetworks);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|||||||
@ -419,6 +419,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||||||
throw new InvalidParameterValueException("Unable to resolve " + cmd.getHypervisor() + " to a supported ");
|
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 (zone.isSecurityGroupEnabled() && zone.getNetworkType().equals(NetworkType.Advanced)) {
|
||||||
if (hypervisorType != HypervisorType.KVM && hypervisorType != HypervisorType.XenServer && hypervisorType != HypervisorType.Simulator) {
|
if (hypervisorType != HypervisorType.KVM && hypervisorType != HypervisorType.XenServer && hypervisorType != HypervisorType.Simulator) {
|
||||||
throw new InvalidParameterValueException("Don't support hypervisor type " + hypervisorType + " in advanced security enabled zone");
|
throw new InvalidParameterValueException("Don't support hypervisor type " + hypervisorType + " in advanced security enabled zone");
|
||||||
@ -477,6 +478,13 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
|||||||
|
|
||||||
if (clusterType == Cluster.ClusterType.CloudManaged) {
|
if (clusterType == Cluster.ClusterType.CloudManaged) {
|
||||||
Map<String, String> details = new HashMap<String, String>();
|
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("cpuOvercommitRatio", CapacityManager.CpuOverprovisioningFactor.value().toString());
|
||||||
details.put("memoryOvercommitRatio", CapacityManager.MemOverprovisioningFactor.value().toString());
|
details.put("memoryOvercommitRatio", CapacityManager.MemOverprovisioningFactor.value().toString());
|
||||||
_clusterDetailsDao.persist(cluster.getId(), details);
|
_clusterDetailsDao.persist(cluster.getId(), details);
|
||||||
|
|||||||
@ -1120,11 +1120,12 @@ public class ManagementServerImpl extends ManagerBase implements ManagementServe
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!vm.getHypervisorType().equals(HypervisorType.XenServer) && !vm.getHypervisorType().equals(HypervisorType.VMware) && !vm.getHypervisorType().equals(HypervisorType.KVM)
|
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()) {
|
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();
|
long srcHostId = vm.getHostId();
|
||||||
|
|||||||
@ -76,7 +76,8 @@ public class StoragePoolMonitor implements Listener {
|
|||||||
StartupRoutingCommand scCmd = (StartupRoutingCommand)cmd;
|
StartupRoutingCommand scCmd = (StartupRoutingCommand)cmd;
|
||||||
if (scCmd.getHypervisorType() == HypervisorType.XenServer || scCmd.getHypervisorType() == HypervisorType.KVM ||
|
if (scCmd.getHypervisorType() == HypervisorType.XenServer || scCmd.getHypervisorType() == HypervisorType.KVM ||
|
||||||
scCmd.getHypervisorType() == HypervisorType.VMware || scCmd.getHypervisorType() == HypervisorType.Simulator ||
|
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> pools = _poolDao.listBy(host.getDataCenterId(), host.getPodId(), host.getClusterId(), ScopeType.CLUSTER);
|
||||||
List<StoragePoolVO> zoneStoragePoolsByTags = _poolDao.findZoneWideStoragePoolsByTags(host.getDataCenterId(), null);
|
List<StoragePoolVO> zoneStoragePoolsByTags = _poolDao.findZoneWideStoragePoolsByTags(host.getDataCenterId(), null);
|
||||||
List<StoragePoolVO> zoneStoragePoolsByHypervisor = _poolDao.findZoneWideStoragePoolsByHypervisor(host.getDataCenterId(), scCmd.getHypervisorType());
|
List<StoragePoolVO> zoneStoragePoolsByHypervisor = _poolDao.findZoneWideStoragePoolsByHypervisor(host.getDataCenterId(), scCmd.getHypervisorType());
|
||||||
|
|||||||
@ -3824,11 +3824,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)
|
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.Simulator)) {
|
&& !vm.getHypervisorType().equals(HypervisorType.Simulator) && !vm.getHypervisorType().equals(HypervisorType.Ovm3)) {
|
||||||
if (s_logger.isDebugEnabled()) {
|
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)) {
|
if (isVMUsingLocalStorage(vm)) {
|
||||||
|
|||||||
@ -403,11 +403,11 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkOrches
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (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, 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, java.lang.String)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public PhysicalNetworkTrafficType addTrafficTypeToPhysicalNetwork(Long physicalNetworkId, String trafficType, String isolationMethod, String xenLabel, String kvmLabel, String vmwareLabel,
|
public PhysicalNetworkTrafficType addTrafficTypeToPhysicalNetwork(Long physicalNetworkId, String trafficType, String isolationMethod, 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
|
// TODO Auto-generated method stub
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -425,7 +425,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)
|
* @see com.cloud.network.NetworkService#updatePhysicalNetworkTrafficType(java.lang.Long, java.lang.String, java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
@Override
|
@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
|
// TODO Auto-generated method stub
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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 ('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', '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 ('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` (
|
CREATE TABLE `cloud`.`launch_permission` (
|
||||||
`id` bigint unsigned NOT NULL auto_increment,
|
`id` bigint unsigned NOT NULL auto_increment,
|
||||||
|
|||||||
@ -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='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='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='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';
|
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);
|
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';
|
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)
|
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');
|
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');
|
||||||
|
|||||||
@ -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)
|
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);
|
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)
|
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);
|
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)
|
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' );
|
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)
|
-- 1- already taken, the upgrade 410 to 420 breaks...
|
||||||
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)
|
||||||
|
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 (1, UUID(), 'CentOS');
|
||||||
INSERT INTO `cloud`.`guest_os_category` (id, uuid, name) VALUES (2, UUID(), 'Debian');
|
INSERT INTO `cloud`.`guest_os_category` (id, uuid, name) VALUES (2, UUID(), 'Debian');
|
||||||
@ -594,3 +598,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', 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 ('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);
|
||||||
|
|||||||
@ -388,6 +388,9 @@ dictionary = {
|
|||||||
'label.affinity.groups': '<fmt:message key="label.affinity.groups" />',
|
'label.affinity.groups': '<fmt:message key="label.affinity.groups" />',
|
||||||
'label.agent.password': '<fmt:message key="label.agent.password" />',
|
'label.agent.password': '<fmt:message key="label.agent.password" />',
|
||||||
'label.agent.username': '<fmt:message key="label.agent.username" />',
|
'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.agree': '<fmt:message key="label.agree" />',
|
||||||
'label.alert': '<fmt:message key="label.alert" />',
|
'label.alert': '<fmt:message key="label.alert" />',
|
||||||
'label.algorithm': '<fmt:message key="label.algorithm" />',
|
'label.algorithm': '<fmt:message key="label.algorithm" />',
|
||||||
|
|||||||
@ -1227,5 +1227,17 @@ cloudStack.docs = {
|
|||||||
helpVpcOfferingDescription: {
|
helpVpcOfferingDescription: {
|
||||||
desc: 'A short description of the offering that can be displayed to users',
|
desc: 'A short description of the offering that can be displayed to users',
|
||||||
externalLink: ''
|
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: ''
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@ -12694,7 +12694,12 @@
|
|||||||
'vsmpassword_req'];
|
'vsmpassword_req'];
|
||||||
return $.inArray($(this).attr('rel'), nexusDvsReqFields) > -1;
|
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') {
|
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=vCenterHost]').css('display', 'inline-block');
|
||||||
$form.find('.form-item[rel=vCenterUsername]').css('display', 'inline-block');
|
$form.find('.form-item[rel=vCenterUsername]').css('display', 'inline-block');
|
||||||
@ -12940,6 +12945,30 @@
|
|||||||
required: false
|
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
|
//hypervisor==VMWare begins here
|
||||||
vCenterHost: {
|
vCenterHost: {
|
||||||
@ -12980,7 +13009,6 @@
|
|||||||
docID: 'helpOverridePublicNetwork'
|
docID: 'helpOverridePublicNetwork'
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
vSwitchPublicType: {
|
vSwitchPublicType: {
|
||||||
label: 'label.public.traffic.vswitch.type',
|
label: 'label.public.traffic.vswitch.type',
|
||||||
select: function (args) {
|
select: function (args) {
|
||||||
@ -13170,7 +13198,11 @@
|
|||||||
array1.push("&podId=" + args.data.podId);
|
array1.push("&podId=" + args.data.podId);
|
||||||
|
|
||||||
var clusterName = args.data.name;
|
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") {
|
if (args.data.hypervisor == "VMware") {
|
||||||
array1.push("&username=" + todb(args.data.vCenterUsername));
|
array1.push("&username=" + todb(args.data.vCenterUsername));
|
||||||
array1.push("&password=" + todb(args.data.vCenterPassword));
|
array1.push("&password=" + todb(args.data.vCenterPassword));
|
||||||
@ -14208,6 +14240,18 @@
|
|||||||
$form.find('.form-item[rel=agentUsername]').css('display', 'inline-block');
|
$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=agentUsername]').find('input').val("oracle");
|
||||||
$form.find('.form-item[rel=agentPassword]').css('display', 'inline-block');
|
$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 {
|
} else {
|
||||||
//$('li[input_group="general"]', $dialogAddHost).show();
|
//$('li[input_group="general"]', $dialogAddHost).show();
|
||||||
$form.find('.form-item[rel=hostname]').css('display', 'inline-block');
|
$form.find('.form-item[rel=hostname]').css('display', 'inline-block');
|
||||||
@ -14370,6 +14414,16 @@
|
|||||||
isPassword: true
|
isPassword: true
|
||||||
},
|
},
|
||||||
//input_group="OVM" ends here
|
//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)
|
//always appear (begin)
|
||||||
hosttags: {
|
hosttags: {
|
||||||
@ -14434,9 +14488,16 @@
|
|||||||
} else if (selectedClusterObj.hypervisortype == "Ovm") {
|
} else if (selectedClusterObj.hypervisortype == "Ovm") {
|
||||||
$.extend(data, {
|
$.extend(data, {
|
||||||
agentusername: args.data.agentUsername,
|
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;
|
var hostId = null;
|
||||||
@ -15527,6 +15588,22 @@
|
|||||||
args.response.success({
|
args.response.success({
|
||||||
data: items
|
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") {
|
} else if (selectedClusterObj.hypervisortype == "LXC") {
|
||||||
var items =[];
|
var items =[];
|
||||||
items.push({
|
items.push({
|
||||||
|
|||||||
@ -382,6 +382,12 @@
|
|||||||
id: 'RAW',
|
id: 'RAW',
|
||||||
description: '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") {
|
} else if (args.hypervisor == "LXC") {
|
||||||
//formatSelect.append("<option value='TAR'>TAR</option>");
|
//formatSelect.append("<option value='TAR'>TAR</option>");
|
||||||
items.push({
|
items.push({
|
||||||
|
|||||||
@ -88,6 +88,9 @@
|
|||||||
case 'Ovm':
|
case 'Ovm':
|
||||||
hypervisorAttr = 'ovmnetworklabel';
|
hypervisorAttr = 'ovmnetworklabel';
|
||||||
break;
|
break;
|
||||||
|
case 'Ovm3':
|
||||||
|
hypervisorAttr = 'ovmnetworklabel';
|
||||||
|
break;
|
||||||
case 'LXC':
|
case 'LXC':
|
||||||
hypervisorAttr = 'lxcnetworklabel';
|
hypervisorAttr = 'lxcnetworklabel';
|
||||||
break;
|
break;
|
||||||
@ -474,6 +477,7 @@
|
|||||||
nonSupportedHypervisors["BareMetal"] = 1;
|
nonSupportedHypervisors["BareMetal"] = 1;
|
||||||
nonSupportedHypervisors["Hyperv"] = 1;
|
nonSupportedHypervisors["Hyperv"] = 1;
|
||||||
nonSupportedHypervisors["Ovm"] = 1;
|
nonSupportedHypervisors["Ovm"] = 1;
|
||||||
|
nonSupportedHypervisors["Ovm3"] = 1;
|
||||||
nonSupportedHypervisors["LXC"] = 1;
|
nonSupportedHypervisors["LXC"] = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -936,6 +940,15 @@
|
|||||||
return $.inArray($(this).attr('rel'), vsmFields) > -1;
|
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") {
|
if ($(this).val() == "VMware") {
|
||||||
//$('li[input_sub_group="external"]', $dialogAddCluster).show();
|
//$('li[input_sub_group="external"]', $dialogAddCluster).show();
|
||||||
if (dvSwitchEnabled) {
|
if (dvSwitchEnabled) {
|
||||||
@ -1288,6 +1301,18 @@
|
|||||||
$form.find('[rel=agentUsername]').css('display', 'block');
|
$form.find('[rel=agentUsername]').css('display', 'block');
|
||||||
$form.find('[rel=agentUsername]').find('input').val("oracle");
|
$form.find('[rel=agentUsername]').find('input').val("oracle");
|
||||||
$form.find('[rel=agentPassword]').css('display', 'block');
|
$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 {
|
} else {
|
||||||
//$('li[input_group="general"]', $dialogAddHost).show();
|
//$('li[input_group="general"]', $dialogAddHost).show();
|
||||||
$form.find('[rel=hostname]').css('display', 'block');
|
$form.find('[rel=hostname]').css('display', 'block');
|
||||||
@ -1394,6 +1419,16 @@
|
|||||||
},
|
},
|
||||||
//input_group="OVM" ends here
|
//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)
|
//always appear (begin)
|
||||||
hosttags: {
|
hosttags: {
|
||||||
label: 'label.host.tags',
|
label: 'label.host.tags',
|
||||||
@ -1532,7 +1567,7 @@
|
|||||||
args.response.success({
|
args.response.success({
|
||||||
data: items
|
data: items
|
||||||
});
|
});
|
||||||
} else if (selectedClusterObj.hypervisortype == "Ovm") {
|
} else if (selectedClusterObj.hypervisortype == "Ovm" || selectedClusterObj.hypervisortype == "Ovm3") {
|
||||||
var items = [];
|
var items = [];
|
||||||
items.push({
|
items.push({
|
||||||
id: "nfs",
|
id: "nfs",
|
||||||
@ -4413,6 +4448,12 @@
|
|||||||
agentusername: args.data.host.agentUsername,
|
agentusername: args.data.host.agentUsername,
|
||||||
agentpassword: args.data.host.agentPassword
|
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({
|
$.ajax({
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user