Merge release branch 4.19 to main

* 4.19:
  linstor: disconnect-disk also search for resource name in Linstor (#9035)
  ui: add support to change Account role for admins (#9012)
  Use parameter dcId as wrapper to prevent NPE (#8986)
This commit is contained in:
Daan Hoogland 2024-05-06 10:36:06 +02:00
commit 0d8f7d4003
5 changed files with 9 additions and 6 deletions

View File

@ -47,5 +47,5 @@ public interface EndPointSelector {
EndPoint select(DataStore store, String downloadUrl);
EndPoint findSsvm(long dcId);
EndPoint findSsvm(Long dcId);
}

View File

@ -339,7 +339,8 @@ public class DefaultEndPointSelector implements EndPointSelector {
* Finds an SSVM that can be used to execute a command.
* For zone-wide image store, use SSVM for that zone. For region-wide store, we can arbitrarily pick one SSVM to do the task.
* */
public EndPoint findSsvm(long dcId) {
@Override
public EndPoint findSsvm(Long dcId) {
List<HostVO> ssAHosts = listUpAndConnectingSecondaryStorageVmHost(dcId);
if (ssAHosts == null || ssAHosts.isEmpty()) {
return null;

View File

@ -321,7 +321,7 @@ public class LinstorStorageAdaptor implements StorageAdaptor {
null,
null);
optRsc = getResourceByPath(resources, volumePath);
optRsc = getResourceByPathOrName(resources, volumePath);
} catch (ApiException apiEx) {
// couldn't query linstor controller
logger.error(apiEx.getBestMessage());
@ -381,9 +381,10 @@ public class LinstorStorageAdaptor implements StorageAdaptor {
return false;
}
private Optional<ResourceWithVolumes> getResourceByPath(final List<ResourceWithVolumes> resources, String path) {
private Optional<ResourceWithVolumes> getResourceByPathOrName(
final List<ResourceWithVolumes> resources, String path) {
return resources.stream()
.filter(rsc -> rsc.getVolumes().stream()
.filter(rsc -> getLinstorRscName(path).equalsIgnoreCase(rsc.getName()) || rsc.getVolumes().stream()
.anyMatch(v -> path.equals(v.getDevicePath())))
.findFirst();
}

View File

@ -1786,6 +1786,7 @@
"label.restore.volume.attach": "Restore volume and attach",
"label.review": "Review",
"label.role": "Role",
"label.roleid": "Role",
"label.rolename": "Role",
"label.roles": "Roles",
"label.roletype": "Role Type",

View File

@ -91,7 +91,7 @@ export default {
icon: 'edit-outlined',
label: 'label.action.edit.account',
dataView: true,
args: ['newname', 'account', 'domainid', 'networkdomain'],
args: ['newname', 'account', 'domainid', 'networkdomain', 'roleid'],
mapping: {
account: {
value: (record) => { return record.name }