Skip to content

Commit 222cf25

Browse files
author
Pearl Dsilva
committed
Merge branch '4.22' of https://github.com/apache/cloudstack into improve-listtemplates-perf
2 parents 54d4392 + a951ac6 commit 222cf25

1,867 files changed

Lines changed: 28686 additions & 16088 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ jobs:
282282
# https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2004-Readme.md#mysql
283283
sudo apt-get install -y mysql-server
284284
sudo systemctl start mysql
285-
sudo mysql -uroot -proot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''; FLUSH PRIVILEGES;"
285+
sudo mysql -uroot -proot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY ''; FLUSH PRIVILEGES;"
286286
sudo systemctl restart mysql
287287
sudo mysql -uroot -e "SELECT VERSION();"
288288

.github/workflows/merge-conflict-checker.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
name: "PR Merge Conflict Check"
1919
on:
2020
push:
21-
pull_request_target:
22-
types: [synchronize]
21+
pull_request:
22+
types: [opened, synchronize, reopened]
2323

2424
permissions: # added using https://github.com/step-security/secure-workflows
2525
contents: read

agent/conf/agent.properties

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,3 +457,18 @@ iscsi.session.cleanup.enabled=false
457457

458458
# Instance conversion VIRT_V2V_TMPDIR env var
459459
#convert.instance.env.virtv2v.tmpdir=
460+
461+
# Time, in seconds, to wait before retrying to rebase during the incremental snapshot process.
462+
# incremental.snapshot.retry.rebase.wait=60
463+
464+
# Path to the VDDK library directory for VMware to KVM conversion via VDDK,
465+
# passed to virt-v2v as -io vddk-libdir=<path>
466+
#vddk.lib.dir=
467+
468+
# Ordered VDDK transport preference for VMware to KVM conversion via VDDK, passed as
469+
# -io vddk-transports=<value> to virt-v2v. Example: nbd:nbdssl
470+
#vddk.transports=
471+
472+
# Optional vCenter SHA1 thumbprint for VMware to KVM conversion via VDDK, passed as
473+
# -io vddk-thumbprint=<value>. If unset, CloudStack computes it on the KVM host via openssl.
474+
#vddk.thumbprint=

agent/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<parent>
2525
<groupId>org.apache.cloudstack</groupId>
2626
<artifactId>cloudstack</artifactId>
27-
<version>4.22.1.0-SNAPSHOT</version>
27+
<version>4.22.2.0-SNAPSHOT</version>
2828
</parent>
2929
<dependencies>
3030
<dependency>

agent/src/main/java/com/cloud/agent/properties/AgentProperties.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -808,6 +808,30 @@ public Property<Integer> getWorkers() {
808808
*/
809809
public static final Property<String> CONVERT_ENV_VIRTV2V_TMPDIR = new Property<>("convert.instance.env.virtv2v.tmpdir", null, String.class);
810810

811+
/**
812+
* Path to the VDDK library directory on the KVM conversion host, used when converting VMs from VMware to KVM via VDDK.
813+
* This directory is passed to virt-v2v as <code>-io vddk-libdir=&lt;path&gt;</code>.
814+
* Data type: String.<br>
815+
* Default value: <code>null</code>
816+
*/
817+
public static final Property<String> VDDK_LIB_DIR = new Property<>("vddk.lib.dir", null, String.class);
818+
819+
/**
820+
* Ordered list of VDDK transports for virt-v2v, passed as <code>-io vddk-transports=&lt;value&gt;</code>.
821+
* Example: <code>nbd:nbdssl</code>.
822+
* Data type: String.<br>
823+
* Default value: <code>null</code>
824+
*/
825+
public static final Property<String> VDDK_TRANSPORTS = new Property<>("vddk.transports", null, String.class);
826+
827+
/**
828+
* vCenter TLS certificate thumbprint used by virt-v2v VDDK mode, passed as <code>-io vddk-thumbprint=&lt;value&gt;</code>.
829+
* If unset, the KVM host computes it at runtime from the vCenter endpoint.
830+
* Data type: String.<br>
831+
* Default value: <code>null</code>
832+
*/
833+
public static final Property<String> VDDK_THUMBPRINT = new Property<>("vddk.thumbprint", null, String.class);
834+
811835
/**
812836
* BGP controll CIDR
813837
* Data type: String.<br>
@@ -885,6 +909,11 @@ public Property<Integer> getWorkers() {
885909
*/
886910
public static final Property<Boolean> CREATE_FULL_CLONE = new Property<>("create.full.clone", false);
887911

912+
/**
913+
* Time, in seconds, to wait before retrying to rebase during the incremental snapshot process.
914+
* */
915+
public static final Property<Integer> INCREMENTAL_SNAPSHOT_RETRY_REBASE_WAIT = new Property<>("incremental.snapshot.retry.rebase.wait", 60);
916+
888917

889918
public static class Property <T>{
890919
private String name;

agent/src/main/java/com/cloud/agent/resource/consoleproxy/ConsoleProxyResource.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,12 +175,12 @@ private Answer executeProxyLoadScan(final Command cmd, final long proxyVmId, fin
175175
try {
176176
is.close();
177177
} catch (final IOException e) {
178-
logger.warn("Exception when closing , console proxy address : {}", proxyManagementIp);
178+
logger.warn("Exception when closing , console proxy address: {}", proxyManagementIp);
179179
success = false;
180180
}
181181
}
182182
} catch (final IOException e) {
183-
logger.warn("Unable to open console proxy command port url, console proxy address : {}", proxyManagementIp);
183+
logger.warn("Unable to open console proxy command port url, console proxy address: {}", proxyManagementIp);
184184
success = false;
185185
}
186186

@@ -331,7 +331,7 @@ private void launchConsoleProxy(final byte[] ksBits, final String ksPassword, fi
331331
final Object resource = this;
332332
logger.info("Building class loader for com.cloud.consoleproxy.ConsoleProxy");
333333
if (consoleProxyMain == null) {
334-
logger.info("Running com.cloud.consoleproxy.ConsoleProxy with encryptor password={}", encryptorPassword);
334+
logger.info("Running com.cloud.consoleproxy.ConsoleProxy");
335335
consoleProxyMain = new Thread(new ManagedContextRunnable() {
336336
@Override
337337
protected void runInContext() {

api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<parent>
2525
<groupId>org.apache.cloudstack</groupId>
2626
<artifactId>cloudstack</artifactId>
27-
<version>4.22.1.0-SNAPSHOT</version>
27+
<version>4.22.2.0-SNAPSHOT</version>
2828
</parent>
2929
<dependencies>
3030
<dependency>

api/src/main/java/com/cloud/agent/api/storage/OVFHelper.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -278,8 +278,8 @@ private DatadiskTO generateDiskTO(OVFFile file, OVFDisk disk, String ovfParentPa
278278
if (StringUtils.isNotBlank(path)) {
279279
File f = new File(path);
280280
if (!f.exists() || f.isDirectory()) {
281-
logger.error("One of the attached disk or iso does not exists " + path);
282-
throw new InternalErrorException("One of the attached disk or iso as stated on OVF does not exists " + path);
281+
logger.error("One of the attached disk or ISO does not exists " + path);
282+
throw new InternalErrorException("One of the attached disk or ISO as stated on OVF does not exists " + path);
283283
}
284284
}
285285
Long capacity = disk != null ? disk._capacity : file._size;
@@ -335,7 +335,7 @@ protected List<OVFDisk> extractDisksFromOvfDocumentTree(Document doc) {
335335
vd.add(od);
336336
}
337337
if (logger.isTraceEnabled()) {
338-
logger.trace(String.format("found %d disk definitions",vd.size()));
338+
logger.trace(String.format("Found %d disk definitions", vd.size()));
339339
}
340340
return vd;
341341
}
@@ -367,7 +367,7 @@ protected List<OVFFile> extractFilesFromOvfDocumentTree(File ovfFile, Document d
367367
}
368368
}
369369
if (logger.isTraceEnabled()) {
370-
logger.trace(String.format("found %d file definitions in %s",vf.size(), ovfFile.getPath()));
370+
logger.trace(String.format("Found %d file definitions in %s", vf.size(), ovfFile.getPath()));
371371
}
372372
return vf;
373373
}
@@ -523,7 +523,7 @@ OVFFile getFileDefinitionFromDiskDefinition(String fileRef, List<OVFFile> files)
523523
public List<OVFNetworkTO> getNetPrerequisitesFromDocument(Document doc) throws InternalErrorException {
524524
if (doc == null) {
525525
if (logger.isTraceEnabled()) {
526-
logger.trace("no document to parse; returning no prerequisite networks");
526+
logger.trace("No document to parse; returning no prerequisite Networks");
527527
}
528528
return Collections.emptyList();
529529
}
@@ -541,7 +541,7 @@ private void matchNicsToNets(Map<String, OVFNetworkTO> nets, Node systemElement)
541541
final DocumentTraversal traversal = (DocumentTraversal) systemElement;
542542
final NodeIterator iterator = traversal.createNodeIterator(systemElement, NodeFilter.SHOW_ELEMENT, null, true);
543543
if (logger.isTraceEnabled()) {
544-
logger.trace(String.format("starting out with %d network-prerequisites, parsing hardware",nets.size()));
544+
logger.trace(String.format("Starting out with %d network-prerequisites, parsing hardware",nets.size()));
545545
}
546546
int nicCount = 0;
547547
for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
@@ -551,7 +551,7 @@ private void matchNicsToNets(Map<String, OVFNetworkTO> nets, Node systemElement)
551551
String name = e.getTextContent(); // should be in our nets
552552
if(nets.get(name) == null) {
553553
if(logger.isInfoEnabled()) {
554-
logger.info(String.format("found a nic definition without a network definition byname %s, adding it to the list.", name));
554+
logger.info(String.format("Found a NIC definition without a Network definition by name %s, adding it to the list.", name));
555555
}
556556
nets.put(name, new OVFNetworkTO());
557557
}
@@ -562,7 +562,7 @@ private void matchNicsToNets(Map<String, OVFNetworkTO> nets, Node systemElement)
562562
}
563563
}
564564
if (logger.isTraceEnabled()) {
565-
logger.trace(String.format("ending up with %d network-prerequisites, parsed %d nics", nets.size(), nicCount));
565+
logger.trace(String.format("Ending up with %d network-prerequisites, parsed %d NICs", nets.size(), nicCount));
566566
}
567567
}
568568

@@ -631,7 +631,7 @@ private Map<String, OVFNetworkTO> getNetworksFromDocumentTree(Document doc) {
631631
nets.put(networkName,network);
632632
}
633633
if (logger.isTraceEnabled()) {
634-
logger.trace(String.format("found %d networks in template", nets.size()));
634+
logger.trace(String.format("Found %d Networks in Template", nets.size()));
635635
}
636636
return nets;
637637
}

api/src/main/java/com/cloud/agent/api/to/BucketTO.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,13 @@ public final class BucketTO {
2626

2727
private String secretKey;
2828

29+
private long accountId;
30+
2931
public BucketTO(Bucket bucket) {
3032
this.name = bucket.getName();
3133
this.accessKey = bucket.getAccessKey();
3234
this.secretKey = bucket.getSecretKey();
35+
this.accountId = bucket.getAccountId();
3336
}
3437

3538
public BucketTO(String name) {
@@ -47,4 +50,8 @@ public String getAccessKey() {
4750
public String getSecretKey() {
4851
return this.secretKey;
4952
}
53+
54+
public long getAccountId() {
55+
return this.accountId;
56+
}
5057
}

api/src/main/java/com/cloud/agent/api/to/RemoteInstanceTO.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,17 @@ public class RemoteInstanceTO implements Serializable {
3636
private String vcenterPassword;
3737
private String vcenterHost;
3838
private String datacenterName;
39+
private String clusterName;
40+
private String hostName;
3941

4042
public RemoteInstanceTO() {
4143
}
4244

43-
public RemoteInstanceTO(String instanceName) {
45+
public RemoteInstanceTO(String instanceName, String clusterName, String hostName) {
4446
this.hypervisorType = Hypervisor.HypervisorType.VMware;
4547
this.instanceName = instanceName;
48+
this.clusterName = clusterName;
49+
this.hostName = hostName;
4650
}
4751

4852
public RemoteInstanceTO(String instanceName, String instancePath, String vcenterHost, String vcenterUsername, String vcenterPassword, String datacenterName) {
@@ -55,6 +59,12 @@ public RemoteInstanceTO(String instanceName, String instancePath, String vcenter
5559
this.datacenterName = datacenterName;
5660
}
5761

62+
public RemoteInstanceTO(String instanceName, String instancePath, String vcenterHost, String vcenterUsername, String vcenterPassword, String datacenterName, String clusterName, String hostName) {
63+
this(instanceName, instancePath, vcenterHost, vcenterUsername, vcenterPassword, datacenterName);
64+
this.clusterName = clusterName;
65+
this.hostName = hostName;
66+
}
67+
5868
public Hypervisor.HypervisorType getHypervisorType() {
5969
return this.hypervisorType;
6070
}
@@ -82,4 +92,12 @@ public String getVcenterHost() {
8292
public String getDatacenterName() {
8393
return datacenterName;
8494
}
95+
96+
public String getClusterName() {
97+
return clusterName;
98+
}
99+
100+
public String getHostName() {
101+
return hostName;
102+
}
85103
}

0 commit comments

Comments
 (0)