Skip to content

Commit 5e60eff

Browse files
committed
Merge branch '4.20' into url-kubernetes-iso
2 parents 542c8a5 + 44119cf commit 5e60eff

File tree

589 files changed

+16151
-5125
lines changed

Some content is hidden

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

589 files changed

+16151
-5125
lines changed

.github/workflows/ci.yml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ permissions:
2929
jobs:
3030
build:
3131
if: github.repository == 'apache/cloudstack'
32-
runs-on: ubuntu-22.04
32+
runs-on: ubuntu-24.04
3333

3434
strategy:
3535
fail-fast: false
@@ -232,7 +232,25 @@ jobs:
232232
- name: Install Build Dependencies
233233
run: |
234234
sudo apt-get update
235-
sudo apt-get install -y git uuid-runtime genisoimage netcat ipmitool build-essential libgcrypt20 libgpg-error-dev libgpg-error0 libopenipmi0 ipmitool libpython3-dev libssl-dev libffi-dev python3-openssl python3-dev python3-setuptools
235+
sudo apt-get install -y git uuid-runtime genisoimage netcat-openbsd ipmitool build-essential libgcrypt20 libgpg-error-dev libgpg-error0 libopenipmi0 ipmitool libpython3-dev libssl-dev libffi-dev python3-openssl python3-dev python3-setuptools
236+
237+
- name: Setup IPMI Tool for CloudStack
238+
run: |
239+
# Create cloudstack-common directory if it doesn't exist
240+
sudo mkdir -p /usr/share/cloudstack-common
241+
242+
# Copy ipmitool to cloudstack-common directory if it doesn't exist
243+
if [ ! -f /usr/share/cloudstack-common/ipmitool ]; then
244+
sudo cp /usr/bin/ipmitool /usr/share/cloudstack-common/ipmitool
245+
sudo chmod 755 /usr/share/cloudstack-common/ipmitool
246+
fi
247+
248+
# Create ipmitool-C3 wrapper script
249+
sudo tee /usr/bin/ipmitool > /dev/null << 'EOF'
250+
#!/bin/bash
251+
/usr/share/cloudstack-common/ipmitool -C3 $@
252+
EOF
253+
sudo chmod 755 /usr/bin/ipmitool
236254
237255
- name: Install Python dependencies
238256
run: |
@@ -271,7 +289,7 @@ jobs:
271289
- name: Setup Simulator Prerequisites
272290
run: |
273291
sudo python3 -m pip install --upgrade netaddr mysql-connector-python
274-
python3 -m pip install --user --upgrade tools/marvin/dist/Marvin-*.tar.gz
292+
python3 -m pip install --user --upgrade tools/marvin/dist/[mM]arvin-*.tar.gz
275293
mvn -q -Pdeveloper -pl developer -Ddeploydb
276294
mvn -q -Pdeveloper -pl developer -Ddeploydb-simulator
277295

.github/workflows/main-sonar-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
uses: actions/cache@v4
5555
with:
5656
path: ~/.m2/repository
57-
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
57+
key: ${{ runner.os }}-m2-${{ hashFiles('pom.xml', '*/pom.xml', '*/*/pom.xml', '*/*/*/pom.xml') }}
5858
restore-keys: |
5959
${{ runner.os }}-m2
6060

.github/workflows/sonar-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
uses: actions/cache@v4
5757
with:
5858
path: ~/.m2/repository
59-
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
59+
key: ${{ runner.os }}-m2-${{ hashFiles('pom.xml', '*/pom.xml', '*/*/pom.xml', '*/*/*/pom.xml') }}
6060
restore-keys: |
6161
${{ runner.os }}-m2
6262

.github/workflows/ui.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ jobs:
5656
npm run test:unit
5757
5858
- uses: codecov/codecov-action@v4
59+
if: github.repository == 'apache/cloudstack'
5960
with:
6061
working-directory: ui
6162
files: ./coverage/lcov.info

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.20.1.0-SNAPSHOT</version>
27+
<version>4.20.3.0-SNAPSHOT</version>
2828
</parent>
2929
<dependencies>
3030
<dependency>

agent/src/main/java/com/cloud/agent/Agent.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@
9393
import com.cloud.utils.nio.NioClient;
9494
import com.cloud.utils.nio.NioConnection;
9595
import com.cloud.utils.nio.Task;
96-
import com.cloud.utils.script.OutputInterpreter;
9796
import com.cloud.utils.script.Script;
9897

9998
/**
@@ -598,9 +597,9 @@ protected void setupStartupCommand(final StartupCommand startup) {
598597
}
599598

600599
protected String getAgentArch() {
601-
final Script command = new Script("/usr/bin/arch", 500, logger);
602-
final OutputInterpreter.OneLineParser parser = new OutputInterpreter.OneLineParser();
603-
return command.execute(parser);
600+
String arch = Script.runSimpleBashScript(Script.getExecutableAbsolutePath("arch"), 2000);
601+
logger.debug("Arch for agent: {} found: {}", _name, arch);
602+
return arch;
604603
}
605604

606605
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -823,7 +823,7 @@ public static class Property <T>{
823823
private T defaultValue;
824824
private Class<T> typeClass;
825825

826-
Property(String name, T value) {
826+
public Property(String name, T value) {
827827
init(name, value);
828828
}
829829

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.20.1.0-SNAPSHOT</version>
27+
<version>4.20.3.0-SNAPSHOT</version>
2828
</parent>
2929
<dependencies>
3030
<dependency>

api/src/main/java/com/cloud/host/Host.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,12 @@ public static String[] toStrings(Host.Type... types) {
5353
return strs;
5454
}
5555
}
56-
public static final String HOST_UEFI_ENABLE = "host.uefi.enable";
57-
public static final String HOST_VOLUME_ENCRYPTION = "host.volume.encryption";
58-
public static final String HOST_INSTANCE_CONVERSION = "host.instance.conversion";
56+
57+
String HOST_UEFI_ENABLE = "host.uefi.enable";
58+
String HOST_VOLUME_ENCRYPTION = "host.volume.encryption";
59+
String HOST_INSTANCE_CONVERSION = "host.instance.conversion";
60+
String HOST_OVFTOOL_VERSION = "host.ovftool.version";
61+
String HOST_VIRTV2V_VERSION = "host.virtv2v.version";
5962

6063
/**
6164
* @return name of the machine.

api/src/main/java/com/cloud/hypervisor/Hypervisor.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,22 @@
3131
import static com.cloud.hypervisor.Hypervisor.HypervisorType.Functionality.DirectDownloadTemplate;
3232
import static com.cloud.hypervisor.Hypervisor.HypervisorType.Functionality.RootDiskSizeOverride;
3333
import static com.cloud.hypervisor.Hypervisor.HypervisorType.Functionality.VmStorageMigration;
34+
import static com.cloud.hypervisor.Hypervisor.HypervisorType.Functionality.VmStorageMigrationWithSnapshots;
3435

3536
public class Hypervisor {
3637
public static class HypervisorType {
3738
public enum Functionality {
3839
DirectDownloadTemplate,
3940
RootDiskSizeOverride,
40-
VmStorageMigration
41+
VmStorageMigration,
42+
VmStorageMigrationWithSnapshots
4143
}
4244

4345
private static final Map<String, HypervisorType> hypervisorTypeMap = new LinkedHashMap<>();
4446
public static final HypervisorType None = new HypervisorType("None"); //for storage hosts
4547
public static final HypervisorType XenServer = new HypervisorType("XenServer", ImageFormat.VHD, EnumSet.of(RootDiskSizeOverride, VmStorageMigration));
4648
public static final HypervisorType KVM = new HypervisorType("KVM", ImageFormat.QCOW2, EnumSet.of(DirectDownloadTemplate, RootDiskSizeOverride, VmStorageMigration));
47-
public static final HypervisorType VMware = new HypervisorType("VMware", ImageFormat.OVA, EnumSet.of(RootDiskSizeOverride, VmStorageMigration));
49+
public static final HypervisorType VMware = new HypervisorType("VMware", ImageFormat.OVA, EnumSet.of(RootDiskSizeOverride, VmStorageMigration, VmStorageMigrationWithSnapshots));
4850
public static final HypervisorType Hyperv = new HypervisorType("Hyperv");
4951
public static final HypervisorType VirtualBox = new HypervisorType("VirtualBox");
5052
public static final HypervisorType Parralels = new HypervisorType("Parralels");

0 commit comments

Comments
 (0)