Skip to content

Commit df24bcf

Browse files
Merge branch 'main' into healthcheck-main
2 parents 65adf9b + 20901c7 commit df24bcf

File tree

10 files changed

+42
-3
lines changed

10 files changed

+42
-3
lines changed

debian/control

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Description: CloudStack server library
2424

2525
Package: cloudstack-agent
2626
Architecture: all
27-
Depends: ${python:Depends}, ${python3:Depends}, openjdk-17-jre-headless | java17-runtime-headless | java17-runtime | zulu-17, cloudstack-common (= ${source:Version}), lsb-base (>= 9), openssh-client, qemu-kvm (>= 2.5) | qemu-system-x86 (>= 5.2), libvirt-bin (>= 1.3) | libvirt-daemon-system (>= 3.0), iproute2, ebtables, vlan, ipset, python3-libvirt, ethtool, iptables, cryptsetup, rng-tools, rsync, lsb-release, ufw, apparmor, cpu-checker
27+
Depends: ${python:Depends}, ${python3:Depends}, openjdk-17-jre-headless | java17-runtime-headless | java17-runtime | zulu-17, cloudstack-common (= ${source:Version}), lsb-base (>= 9), openssh-client, qemu-kvm (>= 2.5) | qemu-system-x86 (>= 5.2), libvirt-bin (>= 1.3) | libvirt-daemon-system (>= 3.0), iproute2, ebtables, vlan, ipset, python3-libvirt, ethtool, iptables, cryptsetup, rng-tools, rsync, lsb-release, ufw, apparmor, cpu-checker, libvirt-daemon-driver-storage-rbd
2828
Recommends: init-system-helpers
2929
Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps, cloud-agent-scripts
3030
Description: CloudStack agent

packaging/el8/cloud.spec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ Requires: java-17-openjdk
102102
Requires: tzdata-java
103103
Requires: %{name}-common = %{_ver}
104104
Requires: libvirt
105+
Requires: libvirt-daemon-driver-storage-rbd
105106
Requires: ebtables
106107
Requires: iptables
107108
Requires: ethtool

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3152,6 +3152,9 @@ public int compare(final DiskTO arg0, final DiskTO arg1) {
31523152
else {
31533153
disk.defBlockBasedDisk(physicalDisk.getPath(), devId, diskBusType);
31543154
}
3155+
if (pool.getType() == StoragePoolType.Linstor) {
3156+
disk.setDiscard(DiscardType.UNMAP);
3157+
}
31553158
} else {
31563159
if (volume.getType() == Volume.Type.DATADISK && !(isWindowsTemplate && isUefiEnabled)) {
31573160
disk.defFileBasedDisk(physicalDisk.getPath(), devId, diskBusTypeData, DiskDef.DiskFmtType.QCOW2);
@@ -3498,6 +3501,9 @@ public synchronized String attachOrDetachDisk(final Connect conn,
34983501
diskdef.defFileBasedDisk(attachingDisk.getPath(), devId, busT, DiskDef.DiskFmtType.QCOW2);
34993502
} else if (attachingDisk.getFormat() == PhysicalDiskFormat.RAW) {
35003503
diskdef.defBlockBasedDisk(attachingDisk.getPath(), devId, busT);
3504+
if (attachingPool.getType() == StoragePoolType.Linstor) {
3505+
diskdef.setDiscard(DiscardType.UNMAP);
3506+
}
35013507
}
35023508
if (bytesReadRate != null && bytesReadRate > 0) {
35033509
diskdef.setBytesReadRate(bytesReadRate);

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1447,6 +1447,9 @@ protected synchronized void attachOrDetachDisk(final Connect conn, final boolean
14471447
diskdef.defFileBasedDisk(attachingDisk.getPath(), devId, busT, DiskDef.DiskFmtType.QCOW2);
14481448
} else if (attachingDisk.getFormat() == PhysicalDiskFormat.RAW) {
14491449
diskdef.defBlockBasedDisk(attachingDisk.getPath(), devId, busT);
1450+
if (attachingPool.getType() == StoragePoolType.Linstor) {
1451+
diskdef.setDiscard(DiscardType.UNMAP);
1452+
}
14501453
}
14511454

14521455
if (encryptDetails != null) {

plugins/storage/volume/linstor/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ All notable changes to Linstor CloudStack plugin will be documented in this file
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2024-10-04]
9+
10+
### Added
11+
12+
- Enable qemu discard="unmap" for Linstor block disks
13+
814
## [2024-08-27]
915

1016
### Changed

plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/saml/SAML2AuthManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ public interface SAML2AuthManager extends PluggableAPIAuthenticator, PluggableSe
7373
ConfigKey<Boolean> SAMLCheckSignature = new ConfigKey<Boolean>("Advanced", Boolean.class, "saml2.check.signature", "true",
7474
"When enabled (default and recommended), SAML2 signature checks are enforced and lack of signature in the SAML SSO response will cause login exception. Disabling this is not advisable but provided for backward compatibility for users who are able to accept the risks.", false);
7575

76+
ConfigKey<Boolean> SAMLForceAuthn = new ConfigKey<Boolean>("Advanced", Boolean.class, "saml2.force.authn", "false",
77+
"When enabled (default false), SAML2 will force a new authentication. This can be useful if multiple application use different saml logins from the same application (I.E. browser)", true);
78+
7679
ConfigKey<String> SAMLUserSessionKeyPathAttribute = new ConfigKey<String>("Advanced", String.class, "saml2.user.sessionkey.path", "",
7780
"The Path attribute of sessionkey cookie when SAML users have logged in. If not set, it will be set to the path of SAML redirection URL (saml2.redirect.url).", true);
7881

plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/saml/SAML2AuthManagerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,6 @@ public ConfigKey<?>[] getConfigKeys() {
541541
SAMLCloudStackRedirectionUrl, SAMLUserAttributeName,
542542
SAMLIdentityProviderMetadataURL, SAMLDefaultIdentityProviderId,
543543
SAMLSignatureAlgorithm, SAMLAppendDomainSuffix, SAMLTimeout, SAMLCheckSignature,
544-
SAMLUserSessionKeyPathAttribute};
544+
SAMLForceAuthn, SAMLUserSessionKeyPathAttribute};
545545
}
546546
}

plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/saml/SAMLUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ public static AuthnRequest buildAuthnRequestObject(final String authnId, final S
194194
authnRequest.setID(authnId);
195195
authnRequest.setDestination(idpUrl);
196196
authnRequest.setVersion(SAMLVersion.VERSION_20);
197-
authnRequest.setForceAuthn(false);
197+
authnRequest.setForceAuthn(SAML2AuthManager.SAMLForceAuthn.value());
198198
authnRequest.setIsPassive(false);
199199
authnRequest.setIssueInstant(new DateTime());
200200
authnRequest.setProtocolBinding(SAMLConstants.SAML2_POST_BINDING_URI);

ui/tests/unit/components/view/ActionButton.spec.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,16 @@ import mockData from '../../../mockData/ActionButton.mock.json'
2323
import ActionButton from '@/components/view/ActionButton'
2424

2525
jest.mock('axios', () => mockAxios)
26+
jest.mock('@/vue-app', () => ({
27+
vueProps: {
28+
$localStorage: {
29+
set: jest.fn((key, value) => {}),
30+
get: jest.fn((key) => {
31+
return null
32+
})
33+
}
34+
}
35+
}))
2636

2737
let router, store, i18n
2838
const state = {

ui/tests/unit/views/compute/MigrateWizard.spec.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,16 @@ import mockData from '../../../mockData/MigrateWizard.mock'
2323
import MigrateWizard from '@/views/compute/MigrateWizard'
2424

2525
jest.mock('axios', () => mockAxios)
26+
jest.mock('@/vue-app', () => ({
27+
vueProps: {
28+
$localStorage: {
29+
set: jest.fn((key, value) => {}),
30+
get: jest.fn((key) => {
31+
return null
32+
})
33+
}
34+
}
35+
}))
2636

2737
let i18n
2838
let store

0 commit comments

Comments
 (0)