Skip to content

Commit f3fc0b4

Browse files
Merge branch '4.20' into 4.20-dynamic-cloud.kubernetes.cluster.network.offering
2 parents 1379815 + d53b6db commit f3fc0b4

File tree

184 files changed

+685
-311
lines changed

Some content is hidden

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

184 files changed

+685
-311
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

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

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

api/src/main/java/com/cloud/server/ManagementService.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import java.util.List;
2121
import java.util.Map;
2222

23-
import com.cloud.user.UserData;
2423
import org.apache.cloudstack.api.command.admin.cluster.ListClustersCmd;
2524
import org.apache.cloudstack.api.command.admin.config.ListCfgGroupsByCmd;
2625
import org.apache.cloudstack.api.command.admin.config.ListCfgsByCmd;
@@ -66,6 +65,7 @@
6665
import org.apache.cloudstack.api.command.user.vmgroup.UpdateVMGroupCmd;
6766
import org.apache.cloudstack.config.Configuration;
6867
import org.apache.cloudstack.config.ConfigurationGroup;
68+
import org.apache.cloudstack.framework.config.ConfigKey;
6969

7070
import com.cloud.alert.Alert;
7171
import com.cloud.capacity.Capacity;
@@ -85,6 +85,7 @@
8585
import com.cloud.storage.GuestOsCategory;
8686
import com.cloud.storage.StoragePool;
8787
import com.cloud.user.SSHKeyPair;
88+
import com.cloud.user.UserData;
8889
import com.cloud.utils.Pair;
8990
import com.cloud.utils.Ternary;
9091
import com.cloud.vm.InstanceGroup;
@@ -98,6 +99,14 @@
9899
public interface ManagementService {
99100
static final String Name = "management-server";
100101

102+
ConfigKey<Boolean> JsInterpretationEnabled = new ConfigKey<>("Hidden"
103+
, Boolean.class
104+
, "js.interpretation.enabled"
105+
, "false"
106+
, "Enable/Disable all JavaScript interpretation related functionalities to create or update Javascript rules."
107+
, false
108+
, ConfigKey.Scope.Global);
109+
101110
/**
102111
* returns the a map of the names/values in the configuration table
103112
*
@@ -481,4 +490,6 @@ VirtualMachine upgradeSystemVM(ScaleSystemVMCmd cmd) throws ResourceUnavailableE
481490

482491
Pair<Boolean, String> patchSystemVM(PatchSystemVMCmd cmd);
483492

493+
void checkJsInterpretationAllowedIfNeededForParameterValue(String paramName, boolean paramValue);
494+
484495
}

api/src/main/java/com/cloud/server/ResourceManagerUtil.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
public interface ResourceManagerUtil {
2020
long getResourceId(String resourceId, ResourceTag.ResourceObjectType resourceType);
21+
long getResourceId(String resourceId, ResourceTag.ResourceObjectType resourceType, boolean checkAccess);
2122
String getUuid(String resourceId, ResourceTag.ResourceObjectType resourceType);
2223
ResourceTag.ResourceObjectType getResourceType(String resourceTypeStr);
2324
void checkResourceAccessible(Long accountId, Long domainId, String exceptionMessage);

api/src/main/java/org/apache/cloudstack/api/command/admin/storage/UpdateStoragePoolCmd.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ public void execute() {
153153
if (ObjectUtils.anyNotNull(name, capacityIops, capacityBytes, url, isTagARule, tags) ||
154154
MapUtils.isNotEmpty(details)) {
155155
result = _storageService.updateStoragePool(this);
156+
} else {
157+
result = _storageService.getStoragePool(getId());
156158
}
157159

158160
if (enabled != null) {

client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<parent>
2626
<groupId>org.apache.cloudstack</groupId>
2727
<artifactId>cloudstack</artifactId>
28-
<version>4.20.2.0-SNAPSHOT</version>
28+
<version>4.20.3.0-SNAPSHOT</version>
2929
</parent>
3030
<dependencies>
3131
<dependency>

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

debian/changelog

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
cloudstack (4.20.3.0-SNAPSHOT) unstable; urgency=low
2+
3+
* Update the version to 4.20.3.0-SNAPSHOT
4+
5+
-- the Apache CloudStack project <[email protected]> Fri, 24 Oct 2025 08:36:00 +0200
6+
7+
cloudstack (4.20.2.0) unstable; urgency=low
8+
9+
* Update the version to 4.20.2.0
10+
11+
-- the Apache CloudStack project <[email protected]> Thu, 16 Oct 2025 11:42:56 +0200
12+
113
cloudstack (4.20.2.0-SNAPSHOT) unstable; urgency=low
214

315
* Update the version to 4.20.2.0-SNAPSHOT

developer/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
<parent>
2626
<groupId>org.apache.cloudstack</groupId>
2727
<artifactId>cloudstack</artifactId>
28-
<version>4.20.2.0-SNAPSHOT</version>
28+
<version>4.20.3.0-SNAPSHOT</version>
2929
</parent>
3030
<dependencies>
3131
<dependency>

0 commit comments

Comments
 (0)