Skip to content

Commit 2c1aad4

Browse files
committed
Merge remote-tracking branch 'apache/4.20'
2 parents 928972f + 5dfeb79 commit 2c1aad4

File tree

8 files changed

+30
-11
lines changed

8 files changed

+30
-11
lines changed

api/src/main/java/org/apache/cloudstack/api/response/AccountResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -569,7 +569,7 @@ public void setNetworkAvailable(String networkAvailable) {
569569

570570
@Override
571571
public void setVpcLimit(String vpcLimit) {
572-
this.vpcLimit = networkLimit;
572+
this.vpcLimit = vpcLimit;
573573
}
574574

575575
@Override

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import com.cloud.resource.ResourceWrapper;
4141
import com.cloud.storage.Storage.ImageFormat;
4242
import com.cloud.storage.Volume;
43+
import com.cloud.utils.StringUtils;
4344
import com.cloud.utils.script.Script;
4445

4546
@ResourceWrapper(handles = DeleteVMSnapshotCommand.class)
@@ -104,7 +105,7 @@ public Answer execute(final DeleteVMSnapshotCommand cmd, final LibvirtComputingR
104105
commands.add(new String[]{Script.getExecutableAbsolutePath("awk"), "-F", " ", "{print $2}"});
105106
commands.add(new String[]{Script.getExecutableAbsolutePath("grep"), "^" + sanitizeBashCommandArgument(cmd.getTarget().getSnapshotName()) + "$"});
106107
String qemu_img_snapshot = Script.executePipedCommands(commands, 0).second();
107-
if (qemu_img_snapshot == null) {
108+
if (StringUtils.isEmpty(qemu_img_snapshot)) {
108109
logger.info("Cannot find snapshot " + cmd.getTarget().getSnapshotName() + " in file " + rootDisk.getPath() + ", return true");
109110
return new DeleteVMSnapshotAnswer(cmd, cmd.getVolumeTOs());
110111
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,7 @@ public Answer copyVolumeFromPrimaryToSecondary(final CopyCommand cmd) {
654654
try {
655655
final String volumeName = UUID.randomUUID().toString();
656656

657-
final String destVolumeName = volumeName + "." + destFormat.getFileExtension();
657+
final String destVolumeName = volumeName + "." + ImageFormat.QCOW2.getFileExtension();
658658
final KVMPhysicalDisk volume = storagePoolMgr.getPhysicalDisk(primaryStore.getPoolType(), primaryStore.getUuid(), srcVolumePath);
659659
volume.setFormat(PhysicalDiskFormat.valueOf(srcFormat.toString()));
660660

plugins/storage/image/default/src/main/java/org/apache/cloudstack/storage/datastore/driver/CloudStackImageStoreDriverImpl.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@
2323
import javax.inject.Inject;
2424

2525
import com.cloud.agent.api.storage.DeleteEntityDownloadURLCommand;
26+
import com.cloud.agent.api.to.DataObjectType;
2627
import com.cloud.host.dao.HostDao;
28+
import com.cloud.hypervisor.Hypervisor.HypervisorType;
2729
import com.cloud.storage.Upload;
2830
import com.cloud.utils.StringUtils;
2931

@@ -72,7 +74,14 @@ private String createObjectNameForExtractUrl(String installPath, ImageFormat for
7274
}
7375

7476
if (format != null) {
75-
objectNameInUrl = objectNameInUrl + "." + format.getFileExtension();
77+
if (dataObject.getTO() != null
78+
&& DataObjectType.VOLUME.equals(dataObject.getTO().getObjectType())
79+
&& HypervisorType.KVM.equals(dataObject.getTO().getHypervisorType())) {
80+
// Fix: The format of KVM volumes on image store is qcow2
81+
objectNameInUrl = objectNameInUrl + "." + ImageFormat.QCOW2.getFileExtension();
82+
} else {
83+
objectNameInUrl = objectNameInUrl + "." + format.getFileExtension();
84+
}
7685
} else if (installPath.lastIndexOf(".") != -1) {
7786
objectNameInUrl = objectNameInUrl + "." + installPath.substring(installPath.lastIndexOf(".") + 1);
7887
}

plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/ADLdapUserManagerImpl.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,10 +93,14 @@ protected boolean isUserDisabled(SearchResult result) throws NamingException {
9393
}
9494

9595
protected String getMemberOfAttribute(final Long domainId) {
96+
String rc;
9697
if(_ldapConfiguration.isNestedGroupsEnabled(domainId)) {
97-
return MICROSOFT_AD_NESTED_MEMBERS_FILTER;
98+
rc = MICROSOFT_AD_NESTED_MEMBERS_FILTER;
9899
} else {
99-
return MICROSOFT_AD_MEMBERS_FILTER;
100+
rc = MICROSOFT_AD_MEMBERS_FILTER;
100101
}
102+
logger.trace("using memberOf filter = {} for domain with id {}", rc, domainId);
103+
104+
return rc;
101105
}
102106
}

plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/LdapConfiguration.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,12 @@
2727

2828
import com.cloud.utils.Pair;
2929
import org.apache.cloudstack.ldap.dao.LdapConfigurationDao;
30+
import org.apache.logging.log4j.LogManager;
31+
import org.apache.logging.log4j.Logger;
3032

3133
public class LdapConfiguration implements Configurable{
3234
private final static String factory = "com.sun.jndi.ldap.LdapCtxFactory";
35+
protected Logger logger = LogManager.getLogger(getClass());
3336

3437
private static final ConfigKey<Long> ldapReadTimeout = new ConfigKey<Long>(
3538
Long.class,
@@ -325,7 +328,7 @@ public LdapUserManager.Provider getLdapProvider(final Long domainId) {
325328
try {
326329
provider = LdapUserManager.Provider.valueOf(ldapProvider.valueIn(domainId).toUpperCase());
327330
} catch (IllegalArgumentException ex) {
328-
//openldap is the default
331+
logger.warn("no LDAP provider found for domain {}, using openldap as default", domainId);
329332
provider = LdapUserManager.Provider.OPENLDAP;
330333
}
331334
return provider;

plugins/user-authenticators/ldap/src/main/java/org/apache/cloudstack/ldap/OpenLdapUserManagerImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ protected LdapUser createUser(final SearchResult result, Long domainId) throws N
6363
final String firstname = LdapUtils.getAttributeValue(attributes, _ldapConfiguration.getFirstnameAttribute(domainId));
6464
final String lastname = LdapUtils.getAttributeValue(attributes, _ldapConfiguration.getLastnameAttribute(domainId));
6565
final String principal = result.getNameInNamespace();
66-
final List<String> memberships = LdapUtils.getAttributeValues(attributes, _ldapConfiguration.getUserMemberOfAttribute(domainId));
66+
final List<String> memberships = LdapUtils.getAttributeValues(attributes, getMemberOfAttribute(domainId));
6767

6868
String domain = principal.replace("cn=" + LdapUtils.getAttributeValue(attributes, _ldapConfiguration.getCommonNameAttribute()) + ",", "");
6969
domain = domain.replace("," + _ldapConfiguration.getBaseDn(domainId), "");
@@ -87,7 +87,7 @@ private String generateSearchFilter(final String username, Long domainId) {
8787
usernameFilter.append((username == null ? "*" : LdapUtils.escapeLDAPSearchFilter(username)));
8888
usernameFilter.append(")");
8989

90-
String memberOfAttribute = _ldapConfiguration.getUserMemberOfAttribute(domainId);
90+
String memberOfAttribute = getMemberOfAttribute(domainId);
9191
StringBuilder ldapGroupsFilter = new StringBuilder();
9292
// this should get the trustmaps for this domain
9393
List<String> ldapGroups = getMappedLdapGroups(domainId);

systemvm/patch-sysvms.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,10 @@ patch_systemvm() {
124124
echo "Restored keystore file and certs using backup" >> $logfile 2>&1
125125
fi
126126

127-
# Import global cacerts into 'cloud' service's keystore
128-
keytool -importkeystore -srckeystore /etc/ssl/certs/java/cacerts -destkeystore /usr/local/cloud/systemvm/certs/realhostip.keystore -srcstorepass changeit -deststorepass vmops.com -noprompt || true
127+
if [ "$TYPE" = "consoleproxy" ] || [ "$TYPE" = "secstorage" ]; then
128+
# Import global cacerts into 'cloud' service's keystore
129+
keytool -importkeystore -srckeystore /etc/ssl/certs/java/cacerts -destkeystore /usr/local/cloud/systemvm/certs/realhostip.keystore -srcstorepass changeit -deststorepass vmops.com -noprompt 2>/dev/null || true
130+
fi
129131

130132
update_checksum $newpath/cloud-scripts.tgz
131133

0 commit comments

Comments
 (0)