Skip to content

Commit 67b849f

Browse files
committed
Merge release branch 4.22 to main
* 4.22: VM Deployment using snapshot in new zone (#13178) Change exception treatment on incremental snapshot wait (#12665) Move checkRoleEscalation outside DB transaction in createAccount (#13044) Fix/flasharray delete rename destroy patch conflict (#13049) Fix VPC network offerings listing in isolated network creation form (#12645) systemvm: accept ipv6 established/related return traffic (#13173) update debian change log Updating pom.xml version numbers for release 4.22.2.0-SNAPSHOT Updating pom.xml version numbers for release 4.22.1.0 Update suse15 packaging spec, use qemu-ovmf-x86_64 package instead of edk2-ovmf for agent (#13133) Change disk-only VM snapshot removal message (#11182) Update mysql java connector version to 8.4.0 (matching version for MySQL 8.4) (#12640) adaptive: honor user-provided capacityBytes when provider stats are unavailable (#13059) Flexibilize public IP selection (#11076)
2 parents 6b831f5 + 21b2025 commit 67b849f

35 files changed

Lines changed: 1425 additions & 383 deletions

File tree

.github/workflows/ci.yml

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

debian/changelog

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,19 @@ cloudstack (4.23.0.0-SNAPSHOT) unstable; urgency=low
22

33
* Update the version to 4.23.0.0-SNAPSHOT
44

5-
-- the Apache CloudStack project <dev@cloudstack.apache.org> Thu, 30 Oct 2025 19:23:55 +0530
5+
-- the Apache CloudStack project <dev@cloudstack.apache.org> Fri, 22 May 2026 10:20:00 -0300
6+
7+
cloudstack (4.22.1.0) unstable; urgency=low
8+
9+
* Update the version to 4.22.1.0
610

7-
cloudstack (4.23.0.0-SNAPSHOT-SNAPSHOT) unstable; urgency=low
11+
-- the Apache CloudStack project <dev@cloudstack.apache.org> Mon, 11 May 2026 20:26:07 +0530
812

9-
* Update the version to 4.23.0.0-SNAPSHOT-SNAPSHOT
13+
cloudstack (4.22.0.0) unstable; urgency=low
1014

11-
-- the Apache CloudStack project <dev@cloudstack.apache.org> Thu, Aug 28 11:58:36 2025 +0530
15+
* Update the version to 4.22.0.0
16+
17+
-- the Apache CloudStack project <dev@cloudstack.apache.org> Thu, 30 Oct 2025 19:23:55 +0530
1218

1319
cloudstack (4.21.0.0) unstable; urgency=low
1420

engine/schema/src/main/java/com/cloud/network/dao/PublicIpQuarantineDao.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,21 @@
1919
import com.cloud.network.vo.PublicIpQuarantineVO;
2020
import com.cloud.utils.db.GenericDao;
2121

22+
import java.util.Date;
23+
import java.util.List;
24+
2225
public interface PublicIpQuarantineDao extends GenericDao<PublicIpQuarantineVO, Long> {
2326

2427
PublicIpQuarantineVO findByPublicIpAddressId(long publicIpAddressId);
2528

2629
PublicIpQuarantineVO findByIpAddress(String publicIpAddress);
30+
31+
/**
32+
* Returns a list of public IP addresses that are actively quarantined at the specified date and the previous owner differs from the specified user.
33+
*
34+
* @param userId used to check against the IP's previous owner;
35+
* @param date used to check if the quarantine is active;
36+
* @return a list of PublicIpQuarantineVOs.
37+
*/
38+
List<PublicIpQuarantineVO> listQuarantinedIpAddressesToUser(Long userId, Date date);
2739
}

engine/schema/src/main/java/com/cloud/network/dao/PublicIpQuarantineDaoImpl.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,17 @@
2626

2727
import javax.annotation.PostConstruct;
2828
import javax.inject.Inject;
29+
import java.util.Date;
30+
import java.util.List;
2931

3032
@Component
3133
public class PublicIpQuarantineDaoImpl extends GenericDaoBase<PublicIpQuarantineVO, Long> implements PublicIpQuarantineDao {
3234
private SearchBuilder<PublicIpQuarantineVO> publicIpAddressByIdSearch;
3335

3436
private SearchBuilder<IPAddressVO> ipAddressSearchBuilder;
3537

38+
private SearchBuilder<PublicIpQuarantineVO> quarantinedIpAddressesSearch;
39+
3640
@Inject
3741
IPAddressDao ipAddressDao;
3842

@@ -47,8 +51,16 @@ public void init() {
4751
publicIpAddressByIdSearch.join("quarantineJoin", ipAddressSearchBuilder, ipAddressSearchBuilder.entity().getId(),
4852
publicIpAddressByIdSearch.entity().getPublicIpAddressId(), JoinBuilder.JoinType.INNER);
4953

54+
quarantinedIpAddressesSearch = createSearchBuilder();
55+
quarantinedIpAddressesSearch.and("previousOwnerId", quarantinedIpAddressesSearch.entity().getPreviousOwnerId(), SearchCriteria.Op.NEQ);
56+
quarantinedIpAddressesSearch.and();
57+
quarantinedIpAddressesSearch.op("removedIsNull", quarantinedIpAddressesSearch.entity().getRemoved(), SearchCriteria.Op.NULL);
58+
quarantinedIpAddressesSearch.and("endDate", quarantinedIpAddressesSearch.entity().getEndDate(), SearchCriteria.Op.GT);
59+
quarantinedIpAddressesSearch.cp();
60+
5061
ipAddressSearchBuilder.done();
5162
publicIpAddressByIdSearch.done();
63+
quarantinedIpAddressesSearch.done();
5264
}
5365

5466
@Override
@@ -68,4 +80,14 @@ public PublicIpQuarantineVO findByIpAddress(String publicIpAddress) {
6880

6981
return findOneBy(sc, filter);
7082
}
83+
84+
@Override
85+
public List<PublicIpQuarantineVO> listQuarantinedIpAddressesToUser(Long userId, Date date) {
86+
SearchCriteria<PublicIpQuarantineVO> sc = quarantinedIpAddressesSearch.create();
87+
88+
sc.setParameters("previousOwnerId", userId);
89+
sc.setParameters("endDate", date);
90+
91+
return searchIncludingRemoved(sc, null, false, false);
92+
}
7193
}

packaging/el8/cloud.spec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ Requires: ipset
117117
Requires: perl
118118
Requires: rsync
119119
Requires: cifs-utils
120-
Requires: edk2-ovmf
120+
Requires: (edk2-ovmf or qemu-ovmf-x86_64)
121121
Requires: swtpm
122122
Requires: (python3-libvirt or python3-libvirt-python)
123123
Requires: (qemu-img or qemu-tools)

packaging/suse15

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../el8/cloud-ipallocator.rc

packaging/suse15/cloud.limits

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../el8/cloud.limits

0 commit comments

Comments
 (0)