package org.ovirt.engine.core.vdsbroker.vdsbroker; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.ovirt.engine.core.common.businessentities.storage.LibvirtSecret; import org.ovirt.engine.core.common.vdscommands.RegisterLibvirtSecretsVDSParameters; public class RegisterLibvirtSecretsVDSCommand<P extends RegisterLibvirtSecretsVDSParameters> extends VdsBrokerCommand<P> { public RegisterLibvirtSecretsVDSCommand(P parameters) { super(parameters); } @Override protected void executeVdsBrokerCommand() { status = getBroker().registerSecrets( buildStructFromLibvirtSecretsList(), getParameters().isClearUnusedSecrets()); proceedProxyReturnValue(); } @SuppressWarnings({"unchecked", "SuspiciousToArrayCall"}) protected Map<String, String>[] buildStructFromLibvirtSecretsList() { final List<Map<String, String>> structs = new ArrayList<>(); for (LibvirtSecret libvirtSecret : getParameters().getLibvirtSecrets()) { structs.add(createStructFromLibvirtSecret(libvirtSecret)); } return structs.toArray(new HashMap[structs.size()]); } public static Map<String, String> createStructFromLibvirtSecret(LibvirtSecret libvirtSecret) { HashMap<String, String> con = new HashMap<>(); con.put("uuid", libvirtSecret.getId().toString()); con.put("password", libvirtSecret.getValue()); con.put("description", libvirtSecret.getDescription() != null ? libvirtSecret.getDescription() : StringUtils.EMPTY); con.put("usageType", libvirtSecret.getUsageType().name().toLowerCase()); con.put("usageID", String.format("%s/%s/%s", VdsProperties.Ovirt, libvirtSecret.getProviderId(), libvirtSecret.getId())); return con; } }