mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	Replace string libraries with org.apache.commons.lang3.StringUtils (#5386)
* Replace google lib for lang3 and adjust methods calls * Replace string libs by lang3 * Prohibit others string libs Co-authored-by: GutoVeronezi <daniel@scclouds.com.br>
This commit is contained in:
		
							parent
							
								
									e27dd53697
								
							
						
					
					
						commit
						b4aabadc4d
					
				@ -51,6 +51,7 @@ import org.apache.cloudstack.managed.context.ManagedContextTimerTask;
 | 
				
			|||||||
import org.apache.cloudstack.utils.security.KeyStoreUtils;
 | 
					import org.apache.cloudstack.utils.security.KeyStoreUtils;
 | 
				
			||||||
import org.apache.commons.collections.CollectionUtils;
 | 
					import org.apache.commons.collections.CollectionUtils;
 | 
				
			||||||
import org.apache.commons.io.FileUtils;
 | 
					import org.apache.commons.io.FileUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.apache.log4j.MDC;
 | 
					import org.apache.log4j.MDC;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -72,7 +73,6 @@ import com.cloud.exception.AgentControlChannelException;
 | 
				
			|||||||
import com.cloud.host.Host;
 | 
					import com.cloud.host.Host;
 | 
				
			||||||
import com.cloud.resource.ServerResource;
 | 
					import com.cloud.resource.ServerResource;
 | 
				
			||||||
import com.cloud.utils.PropertiesUtil;
 | 
					import com.cloud.utils.PropertiesUtil;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.backoff.BackoffAlgorithm;
 | 
					import com.cloud.utils.backoff.BackoffAlgorithm;
 | 
				
			||||||
import com.cloud.utils.concurrency.NamedThreadFactory;
 | 
					import com.cloud.utils.concurrency.NamedThreadFactory;
 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
@ -85,7 +85,6 @@ import com.cloud.utils.nio.NioConnection;
 | 
				
			|||||||
import com.cloud.utils.nio.Task;
 | 
					import com.cloud.utils.nio.Task;
 | 
				
			||||||
import com.cloud.utils.script.OutputInterpreter;
 | 
					import com.cloud.utils.script.OutputInterpreter;
 | 
				
			||||||
import com.cloud.utils.script.Script;
 | 
					import com.cloud.utils.script.Script;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * @config
 | 
					 * @config
 | 
				
			||||||
@ -715,7 +714,7 @@ public class Agent implements HandlerFactory, IAgentControl {
 | 
				
			|||||||
        final String csrFile = agentFile.getParent() + "/" + KeyStoreUtils.CSR_FILENAME;
 | 
					        final String csrFile = agentFile.getParent() + "/" + KeyStoreUtils.CSR_FILENAME;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String storedPassword = _shell.getPersistentProperty(null, KeyStoreUtils.KS_PASSPHRASE_PROPERTY);
 | 
					        String storedPassword = _shell.getPersistentProperty(null, KeyStoreUtils.KS_PASSPHRASE_PROPERTY);
 | 
				
			||||||
        if (Strings.isNullOrEmpty(storedPassword)) {
 | 
					        if (StringUtils.isEmpty(storedPassword)) {
 | 
				
			||||||
            storedPassword = keyStorePassword;
 | 
					            storedPassword = keyStorePassword;
 | 
				
			||||||
            _shell.setPersistentProperty(null, KeyStoreUtils.KS_PASSPHRASE_PROPERTY, storedPassword);
 | 
					            _shell.setPersistentProperty(null, KeyStoreUtils.KS_PASSPHRASE_PROPERTY, storedPassword);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -782,9 +781,9 @@ public class Agent implements HandlerFactory, IAgentControl {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void processManagementServerList(final List<String> msList, final String lbAlgorithm, final Long lbCheckInterval) {
 | 
					    private void processManagementServerList(final List<String> msList, final String lbAlgorithm, final Long lbCheckInterval) {
 | 
				
			||||||
        if (CollectionUtils.isNotEmpty(msList) && !Strings.isNullOrEmpty(lbAlgorithm)) {
 | 
					        if (CollectionUtils.isNotEmpty(msList) && StringUtils.isNotEmpty(lbAlgorithm)) {
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
                final String newMSHosts = String.format("%s%s%s", StringUtils.toCSVList(msList), IAgentShell.hostLbAlgorithmSeparator, lbAlgorithm);
 | 
					                final String newMSHosts = String.format("%s%s%s", com.cloud.utils.StringUtils.toCSVList(msList), IAgentShell.hostLbAlgorithmSeparator, lbAlgorithm);
 | 
				
			||||||
                _shell.setPersistentProperty(null, "host", newMSHosts);
 | 
					                _shell.setPersistentProperty(null, "host", newMSHosts);
 | 
				
			||||||
                _shell.setHosts(newMSHosts);
 | 
					                _shell.setHosts(newMSHosts);
 | 
				
			||||||
                _shell.resetHostCounter();
 | 
					                _shell.resetHostCounter();
 | 
				
			||||||
 | 
				
			|||||||
@ -36,6 +36,7 @@ import org.apache.commons.daemon.Daemon;
 | 
				
			|||||||
import org.apache.commons.daemon.DaemonContext;
 | 
					import org.apache.commons.daemon.DaemonContext;
 | 
				
			||||||
import org.apache.commons.daemon.DaemonInitException;
 | 
					import org.apache.commons.daemon.DaemonInitException;
 | 
				
			||||||
import org.apache.commons.lang.math.NumberUtils;
 | 
					import org.apache.commons.lang.math.NumberUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.apache.log4j.xml.DOMConfigurator;
 | 
					import org.apache.log4j.xml.DOMConfigurator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -50,7 +51,6 @@ import com.cloud.utils.PropertiesUtil;
 | 
				
			|||||||
import com.cloud.utils.backoff.BackoffAlgorithm;
 | 
					import com.cloud.utils.backoff.BackoffAlgorithm;
 | 
				
			||||||
import com.cloud.utils.backoff.impl.ConstantTimeBackoff;
 | 
					import com.cloud.utils.backoff.impl.ConstantTimeBackoff;
 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class AgentShell implements IAgentShell, Daemon {
 | 
					public class AgentShell implements IAgentShell, Daemon {
 | 
				
			||||||
    private static final Logger s_logger = Logger.getLogger(AgentShell.class.getName());
 | 
					    private static final Logger s_logger = Logger.getLogger(AgentShell.class.getName());
 | 
				
			||||||
@ -155,7 +155,7 @@ public class AgentShell implements IAgentShell, Daemon {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void setHosts(final String host) {
 | 
					    public void setHosts(final String host) {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(host)) {
 | 
					        if (StringUtils.isNotEmpty(host)) {
 | 
				
			||||||
            _host = host.split(hostLbAlgorithmSeparator)[0];
 | 
					            _host = host.split(hostLbAlgorithmSeparator)[0];
 | 
				
			||||||
            resetHostCounter();
 | 
					            resetHostCounter();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -333,7 +333,7 @@ public class AgentShell implements IAgentShell, Daemon {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String val = getProperty(null, preferredHostIntervalKey);
 | 
					        String val = getProperty(null, preferredHostIntervalKey);
 | 
				
			||||||
        preferredHostCheckInterval = (Strings.isNullOrEmpty(val) ? null : Long.valueOf(val));
 | 
					        preferredHostCheckInterval = StringUtils.isEmpty(val) ? null : Long.valueOf(val);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,7 @@ package com.cloud.agent.direct.download;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import org.apache.cloudstack.utils.security.DigestHelper;
 | 
					import org.apache.cloudstack.utils.security.DigestHelper;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.File;
 | 
					import java.io.File;
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,7 @@ import com.cloud.utils.Pair;
 | 
				
			|||||||
import com.cloud.utils.UriUtils;
 | 
					import com.cloud.utils.UriUtils;
 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import org.apache.commons.collections.CollectionUtils;
 | 
					import org.apache.commons.collections.CollectionUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.File;
 | 
					import java.io.File;
 | 
				
			||||||
 | 
				
			|||||||
@ -50,7 +50,7 @@ import com.cloud.utils.Pair;
 | 
				
			|||||||
import com.cloud.utils.compression.CompressionUtil;
 | 
					import com.cloud.utils.compression.CompressionUtil;
 | 
				
			||||||
import com.cloud.agent.api.to.deployasis.OVFNetworkTO;
 | 
					import com.cloud.agent.api.to.deployasis.OVFNetworkTO;
 | 
				
			||||||
import org.apache.commons.collections.CollectionUtils;
 | 
					import org.apache.commons.collections.CollectionUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.commons.lang.math.NumberUtils;
 | 
					import org.apache.commons.lang.math.NumberUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.w3c.dom.Document;
 | 
					import org.w3c.dom.Document;
 | 
				
			||||||
@ -274,7 +274,7 @@ public class OVFHelper {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public List<DatadiskTO> getOVFVolumeInfoFromFile(String ovfFilePath, Document doc, String configurationId) throws InternalErrorException {
 | 
					    public List<DatadiskTO> getOVFVolumeInfoFromFile(String ovfFilePath, Document doc, String configurationId) throws InternalErrorException {
 | 
				
			||||||
        if (org.apache.commons.lang.StringUtils.isBlank(ovfFilePath)) {
 | 
					        if (StringUtils.isBlank(ovfFilePath)) {
 | 
				
			||||||
            return null;
 | 
					            return null;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -446,7 +446,7 @@ public class OVFHelper {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Document getDocumentFromFile(String ovfFilePath) {
 | 
					    public Document getDocumentFromFile(String ovfFilePath) {
 | 
				
			||||||
        if (org.apache.commons.lang.StringUtils.isBlank(ovfFilePath)) {
 | 
					        if (StringUtils.isBlank(ovfFilePath)) {
 | 
				
			||||||
            return null;
 | 
					            return null;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newDefaultInstance();
 | 
					        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newDefaultInstance();
 | 
				
			||||||
@ -724,7 +724,7 @@ public class OVFHelper {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private boolean hardwareItemContainsConfiguration(OVFVirtualHardwareItemTO item, String configurationId) {
 | 
					    private boolean hardwareItemContainsConfiguration(OVFVirtualHardwareItemTO item, String configurationId) {
 | 
				
			||||||
        if (StringUtils.isBlank(configurationId) || StringUtils.isBlank(item.getConfigurationIds())) {
 | 
					        if (StringUtils.isAnyBlank(configurationId, item.getConfigurationIds())) {
 | 
				
			||||||
            return true;
 | 
					            return true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        String configurationIds = item.getConfigurationIds();
 | 
					        String configurationIds = item.getConfigurationIds();
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,7 @@ import java.util.Date;
 | 
				
			|||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.commons.lang.builder.ToStringBuilder;
 | 
					import org.apache.commons.lang.builder.ToStringBuilder;
 | 
				
			||||||
import org.apache.commons.lang.builder.ToStringStyle;
 | 
					import org.apache.commons.lang.builder.ToStringStyle;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -18,9 +18,9 @@ package com.cloud.network;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.cloud.exception.CloudException;
 | 
					import com.cloud.exception.CloudException;
 | 
				
			||||||
import com.cloud.utils.Pair;
 | 
					import com.cloud.utils.Pair;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import org.apache.cloudstack.api.Identity;
 | 
					import org.apache.cloudstack.api.Identity;
 | 
				
			||||||
import org.apache.cloudstack.api.InternalIdentity;
 | 
					import org.apache.cloudstack.api.InternalIdentity;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.HashSet;
 | 
					import java.util.HashSet;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
				
			|||||||
@ -16,9 +16,10 @@
 | 
				
			|||||||
// under the License.
 | 
					// under the License.
 | 
				
			||||||
package org.apache.cloudstack.acl;
 | 
					package org.apache.cloudstack.acl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.google.common.base.Enums;
 | 
					import com.google.common.base.Enums;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Enum for default roles in CloudStack
 | 
					// Enum for default roles in CloudStack
 | 
				
			||||||
public enum RoleType {
 | 
					public enum RoleType {
 | 
				
			||||||
@ -51,7 +52,7 @@ public enum RoleType {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static RoleType fromString(final String name) {
 | 
					    public static RoleType fromString(final String name) {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(name)
 | 
					        if (StringUtils.isNotEmpty(name)
 | 
				
			||||||
                && Enums.getIfPresent(RoleType.class, name).isPresent()) {
 | 
					                && Enums.getIfPresent(RoleType.class, name).isPresent()) {
 | 
				
			||||||
            return RoleType.valueOf(name);
 | 
					            return RoleType.valueOf(name);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -18,10 +18,11 @@
 | 
				
			|||||||
package org.apache.cloudstack.acl;
 | 
					package org.apache.cloudstack.acl;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.regex.Pattern;
 | 
					import java.util.regex.Pattern;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public final class Rule {
 | 
					public final class Rule {
 | 
				
			||||||
    private final String rule;
 | 
					    private final String rule;
 | 
				
			||||||
    private final static Pattern ALLOWED_PATTERN = Pattern.compile("^[a-zA-Z0-9*]+$");
 | 
					    private final static Pattern ALLOWED_PATTERN = Pattern.compile("^[a-zA-Z0-9*]+$");
 | 
				
			||||||
@ -32,7 +33,7 @@ public final class Rule {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public boolean matches(final String commandName) {
 | 
					    public boolean matches(final String commandName) {
 | 
				
			||||||
        return !Strings.isNullOrEmpty(commandName)
 | 
					        return StringUtils.isNotEmpty(commandName)
 | 
				
			||||||
                && commandName.toLowerCase().matches(rule.toLowerCase().replace("*", "\\w*"));
 | 
					                && commandName.toLowerCase().matches(rule.toLowerCase().replace("*", "\\w*"));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -46,7 +47,7 @@ public final class Rule {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static boolean validate(final String rule) {
 | 
					    private static boolean validate(final String rule) {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(rule) || !ALLOWED_PATTERN.matcher(rule).matches()) {
 | 
					        if (StringUtils.isEmpty(rule) || !ALLOWED_PATTERN.matcher(rule).matches()) {
 | 
				
			||||||
            throw new InvalidParameterValueException("Only API names and wildcards are allowed, invalid rule provided: " + rule);
 | 
					            throw new InvalidParameterValueException("Only API names and wildcards are allowed, invalid rule provided: " + rule);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
 | 
				
			|||||||
@ -18,6 +18,6 @@
 | 
				
			|||||||
package org.apache.cloudstack.api;
 | 
					package org.apache.cloudstack.api;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public enum ApiArgValidator {
 | 
					public enum ApiArgValidator {
 | 
				
			||||||
    NotNullOrEmpty, // does Strings.isNullOrEmpty check
 | 
					    NotNullOrEmpty, // does StringUtils.isEmpty check
 | 
				
			||||||
    PositiveNumber, // does != null and > 0 check
 | 
					    PositiveNumber, // does != null and > 0 check
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -19,7 +19,7 @@ package org.apache.cloudstack.api.command.admin.account;
 | 
				
			|||||||
import java.util.Collection;
 | 
					import java.util.Collection;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.cloudstack.acl.RoleType;
 | 
					import org.apache.cloudstack.acl.RoleType;
 | 
				
			||||||
 | 
				
			|||||||
@ -22,8 +22,8 @@ import org.apache.cloudstack.acl.Rule;
 | 
				
			|||||||
import org.apache.cloudstack.api.ApiConstants;
 | 
					import org.apache.cloudstack.api.ApiConstants;
 | 
				
			||||||
import org.apache.cloudstack.api.BaseCmd;
 | 
					import org.apache.cloudstack.api.BaseCmd;
 | 
				
			||||||
import org.apache.cloudstack.api.Parameter;
 | 
					import org.apache.cloudstack.api.Parameter;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public abstract class BaseRolePermissionCmd extends BaseCmd {
 | 
					public abstract class BaseRolePermissionCmd extends BaseCmd {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -49,7 +49,7 @@ public abstract class BaseRolePermissionCmd extends BaseCmd {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Permission getPermission() {
 | 
					    public Permission getPermission() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(permission)) {
 | 
					        if (StringUtils.isEmpty(permission)) {
 | 
				
			||||||
            return null;
 | 
					            return null;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return Permission.valueOf(permission.toUpperCase());
 | 
					        return Permission.valueOf(permission.toUpperCase());
 | 
				
			||||||
 | 
				
			|||||||
@ -39,9 +39,9 @@ import org.apache.cloudstack.api.ServerApiException;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.RoleResponse;
 | 
					import org.apache.cloudstack.api.response.RoleResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
import org.apache.commons.collections.MapUtils;
 | 
					import org.apache.commons.collections.MapUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = ImportRoleCmd.APINAME, description = "Imports a role based on provided map of rule permissions", responseObject = RoleResponse.class,
 | 
					@APICommand(name = ImportRoleCmd.APINAME, description = "Imports a role based on provided map of rule permissions", responseObject = RoleResponse.class,
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false,
 | 
				
			||||||
@ -90,19 +90,20 @@ public class ImportRoleCmd extends RoleCmd {
 | 
				
			|||||||
            HashMap<String, String> detail = (HashMap<String, String>)iter.next();
 | 
					            HashMap<String, String> detail = (HashMap<String, String>)iter.next();
 | 
				
			||||||
            Map<String, Object> ruleDetails = new HashMap<>();
 | 
					            Map<String, Object> ruleDetails = new HashMap<>();
 | 
				
			||||||
            String rule = detail.get(ApiConstants.RULE);
 | 
					            String rule = detail.get(ApiConstants.RULE);
 | 
				
			||||||
            if (Strings.isNullOrEmpty(rule)) {
 | 
					
 | 
				
			||||||
 | 
					            if (StringUtils.isEmpty(rule)) {
 | 
				
			||||||
                throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Empty rule provided in rules param");
 | 
					                throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Empty rule provided in rules param");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            ruleDetails.put(ApiConstants.RULE, new Rule(rule));
 | 
					            ruleDetails.put(ApiConstants.RULE, new Rule(rule));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            String permission = detail.get(ApiConstants.PERMISSION);
 | 
					            String permission = detail.get(ApiConstants.PERMISSION);
 | 
				
			||||||
            if (Strings.isNullOrEmpty(permission)) {
 | 
					            if (StringUtils.isEmpty(permission)) {
 | 
				
			||||||
                throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Invalid permission: "+ permission + " provided in rules param");
 | 
					                throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Invalid permission: "+ permission + " provided in rules param");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            ruleDetails.put(ApiConstants.PERMISSION, roleService.getRolePermission(permission));
 | 
					            ruleDetails.put(ApiConstants.PERMISSION, roleService.getRolePermission(permission));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            String description = detail.get(ApiConstants.DESCRIPTION);
 | 
					            String description = detail.get(ApiConstants.DESCRIPTION);
 | 
				
			||||||
            if (!Strings.isNullOrEmpty(permission)) {
 | 
					            if (StringUtils.isNotEmpty(permission)) {
 | 
				
			||||||
                ruleDetails.put(ApiConstants.DESCRIPTION, description);
 | 
					                ruleDetails.put(ApiConstants.DESCRIPTION, description);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -33,7 +33,6 @@ import org.apache.commons.lang3.StringUtils;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.cloud.utils.Pair;
 | 
					import com.cloud.utils.Pair;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = ListRolesCmd.APINAME, description = "Lists dynamic roles in CloudStack", responseObject = RoleResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.9.0", authorized = {
 | 
					@APICommand(name = ListRolesCmd.APINAME, description = "Lists dynamic roles in CloudStack", responseObject = RoleResponse.class, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.9.0", authorized = {
 | 
				
			||||||
        RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin })
 | 
					        RoleType.Admin, RoleType.ResourceAdmin, RoleType.DomainAdmin })
 | 
				
			||||||
@ -66,7 +65,7 @@ public class ListRolesCmd extends BaseListCmd {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public RoleType getRoleType() {
 | 
					    public RoleType getRoleType() {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(roleType)) {
 | 
					        if (StringUtils.isNotEmpty(roleType)) {
 | 
				
			||||||
            return RoleType.valueOf(roleType);
 | 
					            return RoleType.valueOf(roleType);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return null;
 | 
					        return null;
 | 
				
			||||||
 | 
				
			|||||||
@ -23,8 +23,7 @@ import org.apache.cloudstack.api.ApiConstants;
 | 
				
			|||||||
import org.apache.cloudstack.api.BaseCmd;
 | 
					import org.apache.cloudstack.api.BaseCmd;
 | 
				
			||||||
import org.apache.cloudstack.api.Parameter;
 | 
					import org.apache.cloudstack.api.Parameter;
 | 
				
			||||||
import org.apache.cloudstack.api.response.RoleResponse;
 | 
					import org.apache.cloudstack.api.response.RoleResponse;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public abstract class RoleCmd extends BaseCmd {
 | 
					public abstract class RoleCmd extends BaseCmd {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -43,7 +42,7 @@ public abstract class RoleCmd extends BaseCmd {
 | 
				
			|||||||
    /////////////////////////////////////////////////////
 | 
					    /////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public RoleType getRoleType() {
 | 
					    public RoleType getRoleType() {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(roleType)) {
 | 
					        if (StringUtils.isNotEmpty(roleType)) {
 | 
				
			||||||
            return RoleType.fromString(roleType);
 | 
					            return RoleType.fromString(roleType);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return null;
 | 
					        return null;
 | 
				
			||||||
 | 
				
			|||||||
@ -21,7 +21,6 @@ import com.cloud.exception.InsufficientCapacityException;
 | 
				
			|||||||
import com.cloud.exception.NetworkRuleConflictException;
 | 
					import com.cloud.exception.NetworkRuleConflictException;
 | 
				
			||||||
import com.cloud.exception.ResourceAllocationException;
 | 
					import com.cloud.exception.ResourceAllocationException;
 | 
				
			||||||
import com.cloud.exception.ResourceUnavailableException;
 | 
					import com.cloud.exception.ResourceUnavailableException;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.google.common.base.Preconditions;
 | 
					import com.google.common.base.Preconditions;
 | 
				
			||||||
import org.apache.cloudstack.acl.RoleType;
 | 
					import org.apache.cloudstack.acl.RoleType;
 | 
				
			||||||
import org.apache.cloudstack.api.APICommand;
 | 
					import org.apache.cloudstack.api.APICommand;
 | 
				
			||||||
@ -32,6 +31,7 @@ import org.apache.cloudstack.api.Parameter;
 | 
				
			|||||||
import org.apache.cloudstack.api.ServerApiException;
 | 
					import org.apache.cloudstack.api.ServerApiException;
 | 
				
			||||||
import org.apache.cloudstack.api.response.AnnotationResponse;
 | 
					import org.apache.cloudstack.api.response.AnnotationResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.ListResponse;
 | 
					import org.apache.cloudstack.api.response.ListResponse;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = ListAnnotationsCmd.APINAME, description = "Lists annotations.", responseObject = AnnotationResponse.class,
 | 
					@APICommand(name = ListAnnotationsCmd.APINAME, description = "Lists annotations.", responseObject = AnnotationResponse.class,
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.11", authorized = {RoleType.Admin})
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, since = "4.11", authorized = {RoleType.Admin})
 | 
				
			||||||
@ -84,7 +84,7 @@ public class ListAnnotationsCmd extends BaseListCmd {
 | 
				
			|||||||
            NetworkRuleConflictException {
 | 
					            NetworkRuleConflictException {
 | 
				
			||||||
        // preconditions to check:
 | 
					        // preconditions to check:
 | 
				
			||||||
        // if entity type is null entity uuid can not have a value
 | 
					        // if entity type is null entity uuid can not have a value
 | 
				
			||||||
        Preconditions.checkArgument(StringUtils.isNotBlank(entityType) ? ! StringUtils.isNotBlank(uuid) : true,
 | 
					        Preconditions.checkArgument(StringUtils.isNotBlank(entityType) ? StringUtils.isBlank(uuid) : true,
 | 
				
			||||||
                "I can search for an anotation on an entity or for a specific annotation, not both");
 | 
					                "I can search for an anotation on an entity or for a specific annotation, not both");
 | 
				
			||||||
        // if uuid has a value entity type and entity uuid can not have a value
 | 
					        // if uuid has a value entity type and entity uuid can not have a value
 | 
				
			||||||
        Preconditions.checkArgument(StringUtils.isNotBlank(uuid) ? entityType == null && entityUuid == null : true,
 | 
					        Preconditions.checkArgument(StringUtils.isNotBlank(uuid) ? entityType == null && entityUuid == null : true,
 | 
				
			||||||
 | 
				
			|||||||
@ -36,10 +36,10 @@ import org.apache.cloudstack.ca.CAManager;
 | 
				
			|||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
import org.apache.cloudstack.framework.ca.Certificate;
 | 
					import org.apache.cloudstack.framework.ca.Certificate;
 | 
				
			||||||
import org.apache.cloudstack.utils.security.CertUtils;
 | 
					import org.apache.cloudstack.utils.security.CertUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = IssueCertificateCmd.APINAME,
 | 
					@APICommand(name = IssueCertificateCmd.APINAME,
 | 
				
			||||||
        description = "Issues a client certificate using configured or provided CA plugin",
 | 
					        description = "Issues a client certificate using configured or provided CA plugin",
 | 
				
			||||||
@ -85,7 +85,7 @@ public class IssueCertificateCmd extends BaseAsyncCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private List<String> processList(final String string) {
 | 
					    private List<String> processList(final String string) {
 | 
				
			||||||
        final List<String> list = new ArrayList<>();
 | 
					        final List<String> list = new ArrayList<>();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(string)) {
 | 
					        if (StringUtils.isNotEmpty(string)) {
 | 
				
			||||||
            for (final String address: string.split(",")) {
 | 
					            for (final String address: string.split(",")) {
 | 
				
			||||||
                list.add(address.trim());
 | 
					                list.add(address.trim());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -115,7 +115,7 @@ public class IssueCertificateCmd extends BaseAsyncCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void execute() {
 | 
					    public void execute() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(getCsr()) && getDomains().isEmpty()) {
 | 
					        if (StringUtils.isEmpty(getCsr()) && getDomains().isEmpty()) {
 | 
				
			||||||
            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Please provide the domains or the CSR, none of them are provided");
 | 
					            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Please provide the domains or the CSR, none of them are provided");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        final Certificate certificate = caManager.issueCertificate(getCsr(), getDomains(), getAddresses(), getValidityDuration(), getProvider());
 | 
					        final Certificate certificate = caManager.issueCertificate(getCsr(), getDomains(), getAddresses(), getValidityDuration(), getProvider());
 | 
				
			||||||
 | 
				
			|||||||
@ -32,9 +32,9 @@ import org.apache.cloudstack.api.ServerApiException;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.SuccessResponse;
 | 
					import org.apache.cloudstack.api.response.SuccessResponse;
 | 
				
			||||||
import org.apache.cloudstack.ca.CAManager;
 | 
					import org.apache.cloudstack.ca.CAManager;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = RevokeCertificateCmd.APINAME,
 | 
					@APICommand(name = RevokeCertificateCmd.APINAME,
 | 
				
			||||||
        description = "Revokes certificate using configured CA plugin",
 | 
					        description = "Revokes certificate using configured CA plugin",
 | 
				
			||||||
@ -68,7 +68,7 @@ public class RevokeCertificateCmd extends BaseAsyncCmd {
 | 
				
			|||||||
    /////////////////////////////////////////////////////
 | 
					    /////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public BigInteger getSerialBigInteger() {
 | 
					    public BigInteger getSerialBigInteger() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(serial)) {
 | 
					        if (StringUtils.isEmpty(serial)) {
 | 
				
			||||||
            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Certificate serial cannot be empty");
 | 
					            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Certificate serial cannot be empty");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return new BigInteger(serial, 16);
 | 
					        return new BigInteger(serial, 16);
 | 
				
			||||||
 | 
				
			|||||||
@ -16,7 +16,6 @@
 | 
				
			|||||||
// under the License.
 | 
					// under the License.
 | 
				
			||||||
package org.apache.cloudstack.api.command.admin.config;
 | 
					package org.apache.cloudstack.api.command.admin.config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
import org.apache.cloudstack.acl.RoleService;
 | 
					import org.apache.cloudstack.acl.RoleService;
 | 
				
			||||||
import org.apache.cloudstack.api.response.DomainResponse;
 | 
					import org.apache.cloudstack.api.response.DomainResponse;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
@ -34,6 +33,7 @@ import org.apache.cloudstack.api.response.ImageStoreResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.StoragePoolResponse;
 | 
					import org.apache.cloudstack.api.response.StoragePoolResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.ZoneResponse;
 | 
					import org.apache.cloudstack.api.response.ZoneResponse;
 | 
				
			||||||
import org.apache.cloudstack.config.Configuration;
 | 
					import org.apache.cloudstack.config.Configuration;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -146,7 +146,7 @@ public class UpdateCfgCmd extends BaseCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void execute() {
 | 
					    public void execute() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(getCfgName())) {
 | 
					        if (StringUtils.isEmpty(getCfgName())) {
 | 
				
			||||||
            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Empty configuration name provided");
 | 
					            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, "Empty configuration name provided");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (getCfgName().equalsIgnoreCase(RoleService.EnableDynamicApiChecker.key())) {
 | 
					        if (getCfgName().equalsIgnoreCase(RoleService.EnableDynamicApiChecker.key())) {
 | 
				
			||||||
 | 
				
			|||||||
@ -26,6 +26,7 @@ import org.apache.cloudstack.api.BaseCmd;
 | 
				
			|||||||
import org.apache.cloudstack.api.Parameter;
 | 
					import org.apache.cloudstack.api.Parameter;
 | 
				
			||||||
import org.apache.cloudstack.api.ServerApiException;
 | 
					import org.apache.cloudstack.api.ServerApiException;
 | 
				
			||||||
import org.apache.cloudstack.api.response.NetworkOfferingResponse;
 | 
					import org.apache.cloudstack.api.response.NetworkOfferingResponse;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.dc.DataCenter;
 | 
					import com.cloud.dc.DataCenter;
 | 
				
			||||||
@ -33,7 +34,6 @@ import com.cloud.domain.Domain;
 | 
				
			|||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.offering.NetworkOffering;
 | 
					import com.cloud.offering.NetworkOffering;
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "updateNetworkOffering", description = "Updates a network offering.", responseObject = NetworkOfferingResponse.class,
 | 
					@APICommand(name = "updateNetworkOffering", description = "Updates a network offering.", responseObject = NetworkOfferingResponse.class,
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
				
			||||||
@ -131,7 +131,7 @@ public class UpdateNetworkOfferingCmd extends BaseCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public List<Long> getDomainIds() {
 | 
					    public List<Long> getDomainIds() {
 | 
				
			||||||
        List<Long> validDomainIds = new ArrayList<>();
 | 
					        List<Long> validDomainIds = new ArrayList<>();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(domainIds)) {
 | 
					        if (StringUtils.isNotEmpty(domainIds)) {
 | 
				
			||||||
            if (domainIds.contains(",")) {
 | 
					            if (domainIds.contains(",")) {
 | 
				
			||||||
                String[] domains = domainIds.split(",");
 | 
					                String[] domains = domainIds.split(",");
 | 
				
			||||||
                for (String domain : domains) {
 | 
					                for (String domain : domains) {
 | 
				
			||||||
@ -161,7 +161,7 @@ public class UpdateNetworkOfferingCmd extends BaseCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public List<Long> getZoneIds() {
 | 
					    public List<Long> getZoneIds() {
 | 
				
			||||||
        List<Long> validZoneIds = new ArrayList<>();
 | 
					        List<Long> validZoneIds = new ArrayList<>();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(zoneIds)) {
 | 
					        if (StringUtils.isNotEmpty(zoneIds)) {
 | 
				
			||||||
            if (zoneIds.contains(",")) {
 | 
					            if (zoneIds.contains(",")) {
 | 
				
			||||||
                String[] zones = zoneIds.split(",");
 | 
					                String[] zones = zoneIds.split(",");
 | 
				
			||||||
                for (String zone : zones) {
 | 
					                for (String zone : zones) {
 | 
				
			||||||
 | 
				
			|||||||
@ -34,6 +34,7 @@ import org.apache.cloudstack.api.response.ServiceOfferingResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.VsphereStoragePoliciesResponse;
 | 
					import org.apache.cloudstack.api.response.VsphereStoragePoliciesResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.ZoneResponse;
 | 
					import org.apache.cloudstack.api.response.ZoneResponse;
 | 
				
			||||||
import org.apache.commons.collections.MapUtils;
 | 
					import org.apache.commons.collections.MapUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.commons.collections.CollectionUtils;
 | 
					import org.apache.commons.collections.CollectionUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -41,7 +42,6 @@ import com.cloud.exception.InvalidParameterValueException;
 | 
				
			|||||||
import com.cloud.offering.ServiceOffering;
 | 
					import com.cloud.offering.ServiceOffering;
 | 
				
			||||||
import com.cloud.storage.Storage;
 | 
					import com.cloud.storage.Storage;
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "createServiceOffering", description = "Creates a service offering.", responseObject = ServiceOfferingResponse.class,
 | 
					@APICommand(name = "createServiceOffering", description = "Creates a service offering.", responseObject = ServiceOfferingResponse.class,
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
				
			||||||
@ -240,7 +240,7 @@ public class CreateServiceOfferingCmd extends BaseCmd {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getDisplayText() {
 | 
					    public String getDisplayText() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(displayText)) {
 | 
					        if (StringUtils.isEmpty(displayText)) {
 | 
				
			||||||
            throw new InvalidParameterValueException("Failed to create service offering because the offering display text has not been spified.");
 | 
					            throw new InvalidParameterValueException("Failed to create service offering because the offering display text has not been spified.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return displayText;
 | 
					        return displayText;
 | 
				
			||||||
@ -255,7 +255,7 @@ public class CreateServiceOfferingCmd extends BaseCmd {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getServiceOfferingName() {
 | 
					    public String getServiceOfferingName() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(serviceOfferingName)) {
 | 
					        if (StringUtils.isEmpty(serviceOfferingName)) {
 | 
				
			||||||
            throw new InvalidParameterValueException("Failed to create service offering because offering name has not been spified.");
 | 
					            throw new InvalidParameterValueException("Failed to create service offering because offering name has not been spified.");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return serviceOfferingName;
 | 
					        return serviceOfferingName;
 | 
				
			||||||
@ -326,7 +326,7 @@ public class CreateServiceOfferingCmd extends BaseCmd {
 | 
				
			|||||||
            for (Object prop : props) {
 | 
					            for (Object prop : props) {
 | 
				
			||||||
                HashMap<String, String> detail = (HashMap<String, String>) prop;
 | 
					                HashMap<String, String> detail = (HashMap<String, String>) prop;
 | 
				
			||||||
                // Compatibility with key and value pairs input from API cmd for details map parameter
 | 
					                // Compatibility with key and value pairs input from API cmd for details map parameter
 | 
				
			||||||
                if (!Strings.isNullOrEmpty(detail.get("key")) && !Strings.isNullOrEmpty(detail.get("value"))) {
 | 
					                if (StringUtils.isNoneEmpty(detail.get("key"), detail.get("value"))) {
 | 
				
			||||||
                    detailsMap.put(detail.get("key"), detail.get("value"));
 | 
					                    detailsMap.put(detail.get("key"), detail.get("value"));
 | 
				
			||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
				
			|||||||
@ -27,6 +27,7 @@ import org.apache.cloudstack.api.BaseCmd;
 | 
				
			|||||||
import org.apache.cloudstack.api.Parameter;
 | 
					import org.apache.cloudstack.api.Parameter;
 | 
				
			||||||
import org.apache.cloudstack.api.ServerApiException;
 | 
					import org.apache.cloudstack.api.ServerApiException;
 | 
				
			||||||
import org.apache.cloudstack.api.response.DiskOfferingResponse;
 | 
					import org.apache.cloudstack.api.response.DiskOfferingResponse;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.dc.DataCenter;
 | 
					import com.cloud.dc.DataCenter;
 | 
				
			||||||
@ -34,7 +35,6 @@ import com.cloud.domain.Domain;
 | 
				
			|||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.offering.DiskOffering;
 | 
					import com.cloud.offering.DiskOffering;
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "updateDiskOffering", description = "Updates a disk offering.", responseObject = DiskOfferingResponse.class,
 | 
					@APICommand(name = "updateDiskOffering", description = "Updates a disk offering.", responseObject = DiskOfferingResponse.class,
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
				
			||||||
@ -150,7 +150,7 @@ public class UpdateDiskOfferingCmd extends BaseCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public List<Long> getDomainIds() {
 | 
					    public List<Long> getDomainIds() {
 | 
				
			||||||
        List<Long> validDomainIds = new ArrayList<>();
 | 
					        List<Long> validDomainIds = new ArrayList<>();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(domainIds)) {
 | 
					        if (StringUtils.isNotEmpty(domainIds)) {
 | 
				
			||||||
            if (domainIds.contains(",")) {
 | 
					            if (domainIds.contains(",")) {
 | 
				
			||||||
                String[] domains = domainIds.split(",");
 | 
					                String[] domains = domainIds.split(",");
 | 
				
			||||||
                for (String domain : domains) {
 | 
					                for (String domain : domains) {
 | 
				
			||||||
@ -180,7 +180,7 @@ public class UpdateDiskOfferingCmd extends BaseCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public List<Long> getZoneIds() {
 | 
					    public List<Long> getZoneIds() {
 | 
				
			||||||
        List<Long> validZoneIds = new ArrayList<>();
 | 
					        List<Long> validZoneIds = new ArrayList<>();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(zoneIds)) {
 | 
					        if (StringUtils.isNotEmpty(zoneIds)) {
 | 
				
			||||||
            if (zoneIds.contains(",")) {
 | 
					            if (zoneIds.contains(",")) {
 | 
				
			||||||
                String[] zones = zoneIds.split(",");
 | 
					                String[] zones = zoneIds.split(",");
 | 
				
			||||||
                for (String zone : zones) {
 | 
					                for (String zone : zones) {
 | 
				
			||||||
 | 
				
			|||||||
@ -26,8 +26,8 @@ import org.apache.cloudstack.api.ApiErrorCode;
 | 
				
			|||||||
import org.apache.cloudstack.api.BaseCmd;
 | 
					import org.apache.cloudstack.api.BaseCmd;
 | 
				
			||||||
import org.apache.cloudstack.api.Parameter;
 | 
					import org.apache.cloudstack.api.Parameter;
 | 
				
			||||||
import org.apache.cloudstack.api.ServerApiException;
 | 
					import org.apache.cloudstack.api.ServerApiException;
 | 
				
			||||||
import org.apache.cloudstack.api.BaseCmd.CommandType;
 | 
					 | 
				
			||||||
import org.apache.cloudstack.api.response.ServiceOfferingResponse;
 | 
					import org.apache.cloudstack.api.response.ServiceOfferingResponse;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.dc.DataCenter;
 | 
					import com.cloud.dc.DataCenter;
 | 
				
			||||||
@ -35,7 +35,6 @@ import com.cloud.domain.Domain;
 | 
				
			|||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.offering.ServiceOffering;
 | 
					import com.cloud.offering.ServiceOffering;
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "updateServiceOffering", description = "Updates a service offering.", responseObject = ServiceOfferingResponse.class,
 | 
					@APICommand(name = "updateServiceOffering", description = "Updates a service offering.", responseObject = ServiceOfferingResponse.class,
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
				
			||||||
@ -109,7 +108,7 @@ public class UpdateServiceOfferingCmd extends BaseCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public List<Long> getDomainIds() {
 | 
					    public List<Long> getDomainIds() {
 | 
				
			||||||
        List<Long> validDomainIds = new ArrayList<>();
 | 
					        List<Long> validDomainIds = new ArrayList<>();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(domainIds)) {
 | 
					        if (StringUtils.isNotEmpty(domainIds)) {
 | 
				
			||||||
            if (domainIds.contains(",")) {
 | 
					            if (domainIds.contains(",")) {
 | 
				
			||||||
                String[] domains = domainIds.split(",");
 | 
					                String[] domains = domainIds.split(",");
 | 
				
			||||||
                for (String domain : domains) {
 | 
					                for (String domain : domains) {
 | 
				
			||||||
@ -139,7 +138,7 @@ public class UpdateServiceOfferingCmd extends BaseCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public List<Long> getZoneIds() {
 | 
					    public List<Long> getZoneIds() {
 | 
				
			||||||
        List<Long> validZoneIds = new ArrayList<>();
 | 
					        List<Long> validZoneIds = new ArrayList<>();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(zoneIds)) {
 | 
					        if (StringUtils.isNotEmpty(zoneIds)) {
 | 
				
			||||||
            if (zoneIds.contains(",")) {
 | 
					            if (zoneIds.contains(",")) {
 | 
				
			||||||
                String[] zones = zoneIds.split(",");
 | 
					                String[] zones = zoneIds.split(",");
 | 
				
			||||||
                for (String zone : zones) {
 | 
					                for (String zone : zones) {
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,6 @@ import com.cloud.exception.NetworkRuleConflictException;
 | 
				
			|||||||
import com.cloud.exception.ResourceAllocationException;
 | 
					import com.cloud.exception.ResourceAllocationException;
 | 
				
			||||||
import com.cloud.exception.ResourceUnavailableException;
 | 
					import com.cloud.exception.ResourceUnavailableException;
 | 
				
			||||||
import com.cloud.host.Host;
 | 
					import com.cloud.host.Host;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
import org.apache.cloudstack.acl.RoleType;
 | 
					import org.apache.cloudstack.acl.RoleType;
 | 
				
			||||||
import org.apache.cloudstack.api.APICommand;
 | 
					import org.apache.cloudstack.api.APICommand;
 | 
				
			||||||
import org.apache.cloudstack.api.ApiArgValidator;
 | 
					import org.apache.cloudstack.api.ApiArgValidator;
 | 
				
			||||||
@ -37,6 +36,7 @@ import org.apache.cloudstack.api.response.HostResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.OutOfBandManagementResponse;
 | 
					import org.apache.cloudstack.api.response.OutOfBandManagementResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
import org.apache.cloudstack.outofbandmanagement.OutOfBandManagementService;
 | 
					import org.apache.cloudstack.outofbandmanagement.OutOfBandManagementService;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.inject.Inject;
 | 
					import javax.inject.Inject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -94,7 +94,7 @@ public class ChangeOutOfBandManagementPasswordCmd extends BaseAsyncCmd {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getPassword() {
 | 
					    public String getPassword() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(password)) {
 | 
					        if (StringUtils.isEmpty(password)) {
 | 
				
			||||||
            password = _mgr.generateRandomPassword();
 | 
					            password = _mgr.generateRandomPassword();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return password;
 | 
					        return password;
 | 
				
			||||||
 | 
				
			|||||||
@ -22,7 +22,6 @@ import com.cloud.exception.NetworkRuleConflictException;
 | 
				
			|||||||
import com.cloud.exception.ResourceAllocationException;
 | 
					import com.cloud.exception.ResourceAllocationException;
 | 
				
			||||||
import com.cloud.exception.ResourceUnavailableException;
 | 
					import com.cloud.exception.ResourceUnavailableException;
 | 
				
			||||||
import com.cloud.host.Host;
 | 
					import com.cloud.host.Host;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
import com.google.common.collect.ImmutableMap;
 | 
					import com.google.common.collect.ImmutableMap;
 | 
				
			||||||
import org.apache.cloudstack.acl.RoleType;
 | 
					import org.apache.cloudstack.acl.RoleType;
 | 
				
			||||||
import org.apache.cloudstack.api.APICommand;
 | 
					import org.apache.cloudstack.api.APICommand;
 | 
				
			||||||
@ -37,6 +36,7 @@ import org.apache.cloudstack.api.response.OutOfBandManagementResponse;
 | 
				
			|||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
import org.apache.cloudstack.outofbandmanagement.OutOfBandManagement;
 | 
					import org.apache.cloudstack.outofbandmanagement.OutOfBandManagement;
 | 
				
			||||||
import org.apache.cloudstack.outofbandmanagement.OutOfBandManagementService;
 | 
					import org.apache.cloudstack.outofbandmanagement.OutOfBandManagementService;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.inject.Inject;
 | 
					import javax.inject.Inject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -105,21 +105,17 @@ public class ConfigureOutOfBandManagementCmd extends BaseCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public final ImmutableMap<OutOfBandManagement.Option, String> getHostPMOptions() {
 | 
					    public final ImmutableMap<OutOfBandManagement.Option, String> getHostPMOptions() {
 | 
				
			||||||
        final ImmutableMap.Builder<OutOfBandManagement.Option, String> builder = ImmutableMap.builder();
 | 
					        final ImmutableMap.Builder<OutOfBandManagement.Option, String> builder = ImmutableMap.builder();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(driver)) {
 | 
					        putOptionIfIsNotEmpty(builder, OutOfBandManagement.Option.DRIVER, driver);
 | 
				
			||||||
            builder.put(OutOfBandManagement.Option.DRIVER, driver);
 | 
					        putOptionIfIsNotEmpty(builder, OutOfBandManagement.Option.ADDRESS, address);
 | 
				
			||||||
        }
 | 
					        putOptionIfIsNotEmpty(builder, OutOfBandManagement.Option.PORT, port);
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(address)) {
 | 
					        putOptionIfIsNotEmpty(builder, OutOfBandManagement.Option.USERNAME, username);
 | 
				
			||||||
            builder.put(OutOfBandManagement.Option.ADDRESS, address);
 | 
					        putOptionIfIsNotEmpty(builder, OutOfBandManagement.Option.PASSWORD, password);
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (!Strings.isNullOrEmpty(port)) {
 | 
					 | 
				
			||||||
            builder.put(OutOfBandManagement.Option.PORT, port);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (!Strings.isNullOrEmpty(username)) {
 | 
					 | 
				
			||||||
            builder.put(OutOfBandManagement.Option.USERNAME, username);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if (!Strings.isNullOrEmpty(password)) {
 | 
					 | 
				
			||||||
            builder.put(OutOfBandManagement.Option.PASSWORD, password);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        return builder.build();
 | 
					        return builder.build();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    protected void putOptionIfIsNotEmpty(ImmutableMap.Builder<OutOfBandManagement.Option, String> builder, OutOfBandManagement.Option option, String value) {
 | 
				
			||||||
 | 
					        if (StringUtils.isNotEmpty(value)) {
 | 
				
			||||||
 | 
					            builder.put(option, value);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@ import org.apache.cloudstack.api.ServerApiException;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.DomainResponse;
 | 
					import org.apache.cloudstack.api.response.DomainResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.UserResponse;
 | 
					import org.apache.cloudstack.api.response.UserResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
 | 
				
			|||||||
@ -40,6 +40,7 @@ import org.apache.cloudstack.context.CallContext;
 | 
				
			|||||||
import org.apache.cloudstack.vm.VmImportService;
 | 
					import org.apache.cloudstack.vm.VmImportService;
 | 
				
			||||||
import org.apache.commons.collections.MapUtils;
 | 
					import org.apache.commons.collections.MapUtils;
 | 
				
			||||||
import org.apache.commons.lang.BooleanUtils;
 | 
					import org.apache.commons.lang.BooleanUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
@ -54,7 +55,6 @@ import com.cloud.offering.DiskOffering;
 | 
				
			|||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.cloud.utils.net.NetUtils;
 | 
					import com.cloud.utils.net.NetUtils;
 | 
				
			||||||
import com.cloud.vm.VmDetailConstants;
 | 
					import com.cloud.vm.VmDetailConstants;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = ImportUnmanagedInstanceCmd.API_NAME,
 | 
					@APICommand(name = ImportUnmanagedInstanceCmd.API_NAME,
 | 
				
			||||||
        description = "Import unmanaged virtual machine from a given cluster.",
 | 
					        description = "Import unmanaged virtual machine from a given cluster.",
 | 
				
			||||||
@ -207,7 +207,7 @@ public class ImportUnmanagedInstanceCmd extends BaseAsyncCmd {
 | 
				
			|||||||
                if (LOGGER.isTraceEnabled()) {
 | 
					                if (LOGGER.isTraceEnabled()) {
 | 
				
			||||||
                    LOGGER.trace(String.format("nic, '%s', goes on net, '%s'", nic, networkUuid));
 | 
					                    LOGGER.trace(String.format("nic, '%s', goes on net, '%s'", nic, networkUuid));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (Strings.isNullOrEmpty(nic) || Strings.isNullOrEmpty(networkUuid) || _entityMgr.findByUuid(Network.class, networkUuid) == null) {
 | 
					                if (StringUtils.isAnyEmpty(nic, networkUuid) || _entityMgr.findByUuid(Network.class, networkUuid) == null) {
 | 
				
			||||||
                    throw new InvalidParameterValueException(String.format("Network ID: %s for NIC ID: %s is invalid", networkUuid, nic));
 | 
					                    throw new InvalidParameterValueException(String.format("Network ID: %s for NIC ID: %s is invalid", networkUuid, nic));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                nicNetworkMap.put(nic, _entityMgr.findByUuid(Network.class, networkUuid).getId());
 | 
					                nicNetworkMap.put(nic, _entityMgr.findByUuid(Network.class, networkUuid).getId());
 | 
				
			||||||
@ -221,17 +221,17 @@ public class ImportUnmanagedInstanceCmd extends BaseAsyncCmd {
 | 
				
			|||||||
        if (MapUtils.isNotEmpty(nicIpAddressList)) {
 | 
					        if (MapUtils.isNotEmpty(nicIpAddressList)) {
 | 
				
			||||||
            for (Map<String, String> entry : (Collection<Map<String, String>>)nicIpAddressList.values()) {
 | 
					            for (Map<String, String> entry : (Collection<Map<String, String>>)nicIpAddressList.values()) {
 | 
				
			||||||
                String nic = entry.get(VmDetailConstants.NIC);
 | 
					                String nic = entry.get(VmDetailConstants.NIC);
 | 
				
			||||||
                String ipAddress = Strings.emptyToNull(entry.get(VmDetailConstants.IP4_ADDRESS));
 | 
					                String ipAddress = StringUtils.defaultIfEmpty(entry.get(VmDetailConstants.IP4_ADDRESS), null);
 | 
				
			||||||
                if (LOGGER.isTraceEnabled()) {
 | 
					                if (LOGGER.isTraceEnabled()) {
 | 
				
			||||||
                    LOGGER.trace(String.format("nic, '%s', gets ip, '%s'", nic, ipAddress));
 | 
					                    LOGGER.trace(String.format("nic, '%s', gets ip, '%s'", nic, ipAddress));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (Strings.isNullOrEmpty(nic)) {
 | 
					                if (StringUtils.isEmpty(nic)) {
 | 
				
			||||||
                    throw new InvalidParameterValueException(String.format("NIC ID: '%s' is invalid for IP address mapping", nic));
 | 
					                    throw new InvalidParameterValueException(String.format("NIC ID: '%s' is invalid for IP address mapping", nic));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (Strings.isNullOrEmpty(ipAddress)) {
 | 
					                if (StringUtils.isEmpty(ipAddress)) {
 | 
				
			||||||
                    throw new InvalidParameterValueException(String.format("Empty address for NIC ID: %s is invalid", nic));
 | 
					                    throw new InvalidParameterValueException(String.format("Empty address for NIC ID: %s is invalid", nic));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (!Strings.isNullOrEmpty(ipAddress) && !ipAddress.equals("auto") && !NetUtils.isValidIp4(ipAddress)) {
 | 
					                if (StringUtils.isNotEmpty(ipAddress) && !ipAddress.equals("auto") && !NetUtils.isValidIp4(ipAddress)) {
 | 
				
			||||||
                    throw new InvalidParameterValueException(String.format("IP address '%s' for NIC ID: %s is invalid", ipAddress, nic));
 | 
					                    throw new InvalidParameterValueException(String.format("IP address '%s' for NIC ID: %s is invalid", ipAddress, nic));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                Network.IpAddresses ipAddresses = new Network.IpAddresses(ipAddress, null);
 | 
					                Network.IpAddresses ipAddresses = new Network.IpAddresses(ipAddress, null);
 | 
				
			||||||
@ -250,7 +250,7 @@ public class ImportUnmanagedInstanceCmd extends BaseAsyncCmd {
 | 
				
			|||||||
                if (LOGGER.isTraceEnabled()) {
 | 
					                if (LOGGER.isTraceEnabled()) {
 | 
				
			||||||
                    LOGGER.trace(String.format("disk, '%s', gets offering, '%s'", disk, offeringUuid));
 | 
					                    LOGGER.trace(String.format("disk, '%s', gets offering, '%s'", disk, offeringUuid));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (Strings.isNullOrEmpty(disk) || Strings.isNullOrEmpty(offeringUuid) || _entityMgr.findByUuid(DiskOffering.class, offeringUuid) == null) {
 | 
					                if (StringUtils.isAnyEmpty(disk, offeringUuid) || _entityMgr.findByUuid(DiskOffering.class, offeringUuid) == null) {
 | 
				
			||||||
                    throw new InvalidParameterValueException(String.format("Disk offering ID: %s for disk ID: %s is invalid", offeringUuid, disk));
 | 
					                    throw new InvalidParameterValueException(String.format("Disk offering ID: %s for disk ID: %s is invalid", offeringUuid, disk));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                dataDiskToDiskOfferingMap.put(disk, _entityMgr.findByUuid(DiskOffering.class, offeringUuid).getId());
 | 
					                dataDiskToDiskOfferingMap.put(disk, _entityMgr.findByUuid(DiskOffering.class, offeringUuid).getId());
 | 
				
			||||||
 | 
				
			|||||||
@ -26,6 +26,7 @@ import org.apache.cloudstack.api.BaseAsyncCmd;
 | 
				
			|||||||
import org.apache.cloudstack.api.Parameter;
 | 
					import org.apache.cloudstack.api.Parameter;
 | 
				
			||||||
import org.apache.cloudstack.api.ServerApiException;
 | 
					import org.apache.cloudstack.api.ServerApiException;
 | 
				
			||||||
import org.apache.cloudstack.api.response.VpcOfferingResponse;
 | 
					import org.apache.cloudstack.api.response.VpcOfferingResponse;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.dc.DataCenter;
 | 
					import com.cloud.dc.DataCenter;
 | 
				
			||||||
@ -34,7 +35,6 @@ import com.cloud.event.EventTypes;
 | 
				
			|||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.network.vpc.VpcOffering;
 | 
					import com.cloud.network.vpc.VpcOffering;
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "updateVPCOffering", description = "Updates VPC offering", responseObject = VpcOfferingResponse.class,
 | 
					@APICommand(name = "updateVPCOffering", description = "Updates VPC offering", responseObject = VpcOfferingResponse.class,
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
				
			||||||
@ -94,7 +94,7 @@ public class UpdateVPCOfferingCmd extends BaseAsyncCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public List<Long> getDomainIds() {
 | 
					    public List<Long> getDomainIds() {
 | 
				
			||||||
        List<Long> validDomainIds = new ArrayList<>();
 | 
					        List<Long> validDomainIds = new ArrayList<>();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(domainIds)) {
 | 
					        if (StringUtils.isNotEmpty(domainIds)) {
 | 
				
			||||||
            if (domainIds.contains(",")) {
 | 
					            if (domainIds.contains(",")) {
 | 
				
			||||||
                String[] domains = domainIds.split(",");
 | 
					                String[] domains = domainIds.split(",");
 | 
				
			||||||
                for (String domain : domains) {
 | 
					                for (String domain : domains) {
 | 
				
			||||||
@ -124,7 +124,7 @@ public class UpdateVPCOfferingCmd extends BaseAsyncCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public List<Long> getZoneIds() {
 | 
					    public List<Long> getZoneIds() {
 | 
				
			||||||
        List<Long> validZoneIds = new ArrayList<>();
 | 
					        List<Long> validZoneIds = new ArrayList<>();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(zoneIds)) {
 | 
					        if (StringUtils.isNotEmpty(zoneIds)) {
 | 
				
			||||||
            if (zoneIds.contains(",")) {
 | 
					            if (zoneIds.contains(",")) {
 | 
				
			||||||
                String[] zones = zoneIds.split(",");
 | 
					                String[] zones = zoneIds.split(",");
 | 
				
			||||||
                for (String zone : zones) {
 | 
					                for (String zone : zones) {
 | 
				
			||||||
 | 
				
			|||||||
@ -22,6 +22,7 @@ import org.apache.cloudstack.api.ApiArgValidator;
 | 
				
			|||||||
import org.apache.cloudstack.api.BaseCmd;
 | 
					import org.apache.cloudstack.api.BaseCmd;
 | 
				
			||||||
import org.apache.cloudstack.api.response.ProjectRoleResponse;
 | 
					import org.apache.cloudstack.api.response.ProjectRoleResponse;
 | 
				
			||||||
import org.apache.commons.lang3.EnumUtils;
 | 
					import org.apache.commons.lang3.EnumUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.cloudstack.api.APICommand;
 | 
					import org.apache.cloudstack.api.APICommand;
 | 
				
			||||||
@ -38,7 +39,6 @@ import com.cloud.event.EventTypes;
 | 
				
			|||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.projects.Project;
 | 
					import com.cloud.projects.Project;
 | 
				
			||||||
import com.cloud.projects.ProjectAccount;
 | 
					import com.cloud.projects.ProjectAccount;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "addAccountToProject", description = "Adds account to a project", responseObject = SuccessResponse.class, since = "3.0.0",
 | 
					@APICommand(name = "addAccountToProject", description = "Adds account to a project", responseObject = SuccessResponse.class, since = "3.0.0",
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
				
			||||||
@ -93,7 +93,7 @@ public class AddAccountToProjectCmd extends BaseAsyncCmd {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ProjectAccount.Role getRoleType() {
 | 
					    public ProjectAccount.Role getRoleType() {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(roleType)) {
 | 
					        if (StringUtils.isNotEmpty(roleType)) {
 | 
				
			||||||
            String role = roleType.substring(0, 1).toUpperCase() + roleType.substring(1).toLowerCase();
 | 
					            String role = roleType.substring(0, 1).toUpperCase() + roleType.substring(1).toLowerCase();
 | 
				
			||||||
            if (!EnumUtils.isValidEnum(ProjectAccount.Role.class, role)) {
 | 
					            if (!EnumUtils.isValidEnum(ProjectAccount.Role.class, role)) {
 | 
				
			||||||
                throw new InvalidParameterValueException("Only Admin or Regular project role types are valid");
 | 
					                throw new InvalidParameterValueException("Only Admin or Regular project role types are valid");
 | 
				
			||||||
 | 
				
			|||||||
@ -35,7 +35,7 @@ import org.apache.commons.lang3.EnumUtils;
 | 
				
			|||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.projects.ProjectAccount;
 | 
					import com.cloud.projects.ProjectAccount;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = AddUserToProjectCmd.APINAME, description = "Adds user to a project", responseObject = SuccessResponse.class, since = "4.14",
 | 
					@APICommand(name = AddUserToProjectCmd.APINAME, description = "Adds user to a project", responseObject = SuccessResponse.class, since = "4.14",
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, authorized = {RoleType.Admin, RoleType.DomainAdmin, RoleType.ResourceAdmin, RoleType.User})
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, authorized = {RoleType.Admin, RoleType.DomainAdmin, RoleType.ResourceAdmin, RoleType.User})
 | 
				
			||||||
@ -86,7 +86,7 @@ public class AddUserToProjectCmd extends BaseAsyncCmd {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ProjectAccount.Role getRoleType() {
 | 
					    public ProjectAccount.Role getRoleType() {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(roleType)) {
 | 
					        if (StringUtils.isNotEmpty(roleType)) {
 | 
				
			||||||
            String role = roleType.substring(0, 1).toUpperCase() + roleType.substring(1).toLowerCase();
 | 
					            String role = roleType.substring(0, 1).toUpperCase() + roleType.substring(1).toLowerCase();
 | 
				
			||||||
            if (!EnumUtils.isValidEnum(ProjectAccount.Role.class, role)) {
 | 
					            if (!EnumUtils.isValidEnum(ProjectAccount.Role.class, role)) {
 | 
				
			||||||
                throw new InvalidParameterValueException("Only Admin or Regular project role types are valid");
 | 
					                throw new InvalidParameterValueException("Only Admin or Regular project role types are valid");
 | 
				
			||||||
 | 
				
			|||||||
@ -36,12 +36,12 @@ import org.apache.cloudstack.api.response.FirewallRuleResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.SuccessResponse;
 | 
					import org.apache.cloudstack.api.response.SuccessResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.UserVmResponse;
 | 
					import org.apache.cloudstack.api.response.UserVmResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.network.rules.LoadBalancer;
 | 
					import com.cloud.network.rules.LoadBalancer;
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.net.NetUtils;
 | 
					import com.cloud.utils.net.NetUtils;
 | 
				
			||||||
import com.cloud.vm.VirtualMachine;
 | 
					import com.cloud.vm.VirtualMachine;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -36,12 +36,12 @@ import org.apache.cloudstack.api.response.FirewallRuleResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.SuccessResponse;
 | 
					import org.apache.cloudstack.api.response.SuccessResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.UserVmResponse;
 | 
					import org.apache.cloudstack.api.response.UserVmResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.network.rules.LoadBalancer;
 | 
					import com.cloud.network.rules.LoadBalancer;
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "removeFromLoadBalancerRule",
 | 
					@APICommand(name = "removeFromLoadBalancerRule",
 | 
				
			||||||
            description = "Removes a virtual machine or a list of virtual machines from a load balancer rule.",
 | 
					            description = "Removes a virtual machine or a list of virtual machines from a load balancer rule.",
 | 
				
			||||||
 | 
				
			|||||||
@ -30,7 +30,7 @@ import org.apache.cloudstack.api.response.NetworkACLItemResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.NetworkACLResponse;
 | 
					import org.apache.cloudstack.api.response.NetworkACLResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.NetworkResponse;
 | 
					import org.apache.cloudstack.api.response.NetworkResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
 | 
				
			|||||||
@ -40,7 +40,7 @@ import org.apache.cloudstack.api.response.ZoneResponse;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.cloud.network.Network;
 | 
					import com.cloud.network.Network;
 | 
				
			||||||
import com.cloud.utils.Pair;
 | 
					import com.cloud.utils.Pair;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "listNetworks", description = "Lists all available networks.", responseObject = NetworkResponse.class, responseView = ResponseView.Restricted, entityType = {Network.class},
 | 
					@APICommand(name = "listNetworks", description = "Lists all available networks.", responseObject = NetworkResponse.class, responseView = ResponseView.Restricted, entityType = {Network.class},
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
				
			||||||
@ -113,7 +113,7 @@ public class ListNetworksCmd extends BaseListTaggedResourcesCmd implements UserC
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getGuestIpType() {
 | 
					    public String getGuestIpType() {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(guestIpType)) {
 | 
					        if (StringUtils.isNotEmpty(guestIpType)) {
 | 
				
			||||||
            if (guestIpType.equalsIgnoreCase("all")) {
 | 
					            if (guestIpType.equalsIgnoreCase("all")) {
 | 
				
			||||||
                return null;
 | 
					                return null;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
				
			|||||||
@ -35,7 +35,7 @@ import com.cloud.exception.InvalidParameterValueException;
 | 
				
			|||||||
import com.cloud.exception.ResourceAllocationException;
 | 
					import com.cloud.exception.ResourceAllocationException;
 | 
				
			||||||
import com.cloud.projects.Project;
 | 
					import com.cloud.projects.Project;
 | 
				
			||||||
import com.cloud.projects.ProjectAccount;
 | 
					import com.cloud.projects.ProjectAccount;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "updateProject", description = "Updates a project", responseObject = ProjectResponse.class, since = "3.0.0",
 | 
					@APICommand(name = "updateProject", description = "Updates a project", responseObject = ProjectResponse.class, since = "3.0.0",
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
 | 
				
			||||||
@ -97,7 +97,7 @@ public class UpdateProjectCmd extends BaseAsyncCmd {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public ProjectAccount.Role getAccountRole() {
 | 
					    public ProjectAccount.Role getAccountRole() {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(roleType)) {
 | 
					        if (StringUtils.isNotEmpty(roleType)) {
 | 
				
			||||||
            return getRoleType(roleType);
 | 
					            return getRoleType(roleType);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return ProjectAccount.Role.Regular;
 | 
					        return ProjectAccount.Role.Regular;
 | 
				
			||||||
 | 
				
			|||||||
@ -37,6 +37,7 @@ import org.apache.cloudstack.api.response.FirewallRuleResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
 | 
					import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.SuccessResponse;
 | 
					import org.apache.cloudstack.api.response.SuccessResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
@ -44,7 +45,6 @@ import com.cloud.network.rules.LoadBalancer;
 | 
				
			|||||||
import com.cloud.region.ha.GlobalLoadBalancerRule;
 | 
					import com.cloud.region.ha.GlobalLoadBalancerRule;
 | 
				
			||||||
import com.cloud.region.ha.GlobalLoadBalancingRulesService;
 | 
					import com.cloud.region.ha.GlobalLoadBalancingRulesService;
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "assignToGlobalLoadBalancerRule",
 | 
					@APICommand(name = "assignToGlobalLoadBalancerRule",
 | 
				
			||||||
            description = "Assign load balancer rule or list of load " + "balancer rules to a global load balancer rules.",
 | 
					            description = "Assign load balancer rule or list of load " + "balancer rules to a global load balancer rules.",
 | 
				
			||||||
 | 
				
			|||||||
@ -33,13 +33,13 @@ import org.apache.cloudstack.api.response.FirewallRuleResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
 | 
					import org.apache.cloudstack.api.response.GlobalLoadBalancerResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.SuccessResponse;
 | 
					import org.apache.cloudstack.api.response.SuccessResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.region.ha.GlobalLoadBalancerRule;
 | 
					import com.cloud.region.ha.GlobalLoadBalancerRule;
 | 
				
			||||||
import com.cloud.region.ha.GlobalLoadBalancingRulesService;
 | 
					import com.cloud.region.ha.GlobalLoadBalancingRulesService;
 | 
				
			||||||
import com.cloud.user.Account;
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "removeFromGlobalLoadBalancerRule",
 | 
					@APICommand(name = "removeFromGlobalLoadBalancerRule",
 | 
				
			||||||
            description = "Removes a load balancer rule association with global load balancer rule",
 | 
					            description = "Removes a load balancer rule association with global load balancer rule",
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@ import org.apache.cloudstack.api.response.DetailOptionsResponse;
 | 
				
			|||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.server.ResourceTag;
 | 
					import com.cloud.server.ResourceTag;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = ListDetailOptionsCmd.APINAME,
 | 
					@APICommand(name = ListDetailOptionsCmd.APINAME,
 | 
				
			||||||
        description = "Lists all possible details and their options for a resource type such as a VM or a template",
 | 
					        description = "Lists all possible details and their options for a resource type such as a VM or a template",
 | 
				
			||||||
@ -58,7 +58,7 @@ public class ListDetailOptionsCmd extends BaseCmd {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getResourceId() {
 | 
					    public String getResourceId() {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(resourceId)) {
 | 
					        if (StringUtils.isNotEmpty(resourceId)) {
 | 
				
			||||||
            return resourceManagerUtil.getUuid(resourceId, getResourceType());
 | 
					            return resourceManagerUtil.getUuid(resourceId, getResourceType());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return null;
 | 
					        return null;
 | 
				
			||||||
 | 
				
			|||||||
@ -38,12 +38,12 @@ import org.apache.cloudstack.api.response.ProjectResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.SecurityGroupResponse;
 | 
					import org.apache.cloudstack.api.response.SecurityGroupResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
 | 
					import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.network.security.SecurityGroup;
 | 
					import com.cloud.network.security.SecurityGroup;
 | 
				
			||||||
import com.cloud.network.security.SecurityRule;
 | 
					import com.cloud.network.security.SecurityRule;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "authorizeSecurityGroupEgress", responseObject = SecurityGroupRuleResponse.class, description = "Authorizes a particular egress rule for this security group", since = "3.0.0", entityType = {SecurityGroup.class},
 | 
					@APICommand(name = "authorizeSecurityGroupEgress", responseObject = SecurityGroupRuleResponse.class, description = "Authorizes a particular egress rule for this security group", since = "3.0.0", entityType = {SecurityGroup.class},
 | 
				
			||||||
            requestHasSensitiveInfo = false,
 | 
					            requestHasSensitiveInfo = false,
 | 
				
			||||||
 | 
				
			|||||||
@ -38,12 +38,12 @@ import org.apache.cloudstack.api.response.ProjectResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.SecurityGroupResponse;
 | 
					import org.apache.cloudstack.api.response.SecurityGroupResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
 | 
					import org.apache.cloudstack.api.response.SecurityGroupRuleResponse;
 | 
				
			||||||
import org.apache.cloudstack.context.CallContext;
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.event.EventTypes;
 | 
					import com.cloud.event.EventTypes;
 | 
				
			||||||
import com.cloud.exception.InvalidParameterValueException;
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
import com.cloud.network.security.SecurityGroup;
 | 
					import com.cloud.network.security.SecurityGroup;
 | 
				
			||||||
import com.cloud.network.security.SecurityRule;
 | 
					import com.cloud.network.security.SecurityRule;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "authorizeSecurityGroupIngress", responseObject = SecurityGroupRuleResponse.class, description = "Authorizes a particular ingress rule for this security group", entityType = {SecurityGroup.class},
 | 
					@APICommand(name = "authorizeSecurityGroupIngress", responseObject = SecurityGroupRuleResponse.class, description = "Authorizes a particular ingress rule for this security group", entityType = {SecurityGroup.class},
 | 
				
			||||||
            requestHasSensitiveInfo = false,
 | 
					            requestHasSensitiveInfo = false,
 | 
				
			||||||
 | 
				
			|||||||
@ -68,12 +68,11 @@ import com.cloud.network.Network.IpAddresses;
 | 
				
			|||||||
import com.cloud.offering.DiskOffering;
 | 
					import com.cloud.offering.DiskOffering;
 | 
				
			||||||
import com.cloud.template.VirtualMachineTemplate;
 | 
					import com.cloud.template.VirtualMachineTemplate;
 | 
				
			||||||
import com.cloud.uservm.UserVm;
 | 
					import com.cloud.uservm.UserVm;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.net.Dhcp;
 | 
					import com.cloud.utils.net.Dhcp;
 | 
				
			||||||
import com.cloud.utils.net.NetUtils;
 | 
					import com.cloud.utils.net.NetUtils;
 | 
				
			||||||
import com.cloud.vm.VirtualMachine;
 | 
					import com.cloud.vm.VirtualMachine;
 | 
				
			||||||
import com.cloud.vm.VmDetailConstants;
 | 
					import com.cloud.vm.VmDetailConstants;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@APICommand(name = "deployVirtualMachine", description = "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
 | 
					@APICommand(name = "deployVirtualMachine", description = "Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.", responseObject = UserVmResponse.class, responseView = ResponseView.Restricted, entityType = {VirtualMachine.class},
 | 
				
			||||||
        requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 | 
					        requestHasSensitiveInfo = false, responseHasSensitiveInfo = true)
 | 
				
			||||||
@ -360,7 +359,7 @@ public class DeployVMCmd extends BaseAsyncCreateCustomIdCmd implements SecurityG
 | 
				
			|||||||
                if (s_logger.isTraceEnabled()) {
 | 
					                if (s_logger.isTraceEnabled()) {
 | 
				
			||||||
                    s_logger.trace(String.format("nic, '%s', goes on net, '%s'", nic, networkUuid));
 | 
					                    s_logger.trace(String.format("nic, '%s', goes on net, '%s'", nic, networkUuid));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                if (nic == null || Strings.isNullOrEmpty(networkUuid) || _entityMgr.findByUuid(Network.class, networkUuid) == null) {
 | 
					                if (nic == null || StringUtils.isEmpty(networkUuid) || _entityMgr.findByUuid(Network.class, networkUuid) == null) {
 | 
				
			||||||
                    throw new InvalidParameterValueException(String.format("Network ID: %s for NIC ID: %s is invalid", networkUuid, nic));
 | 
					                    throw new InvalidParameterValueException(String.format("Network ID: %s for NIC ID: %s is invalid", networkUuid, nic));
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                map.put(nic, _entityMgr.findByUuid(Network.class, networkUuid).getId());
 | 
					                map.put(nic, _entityMgr.findByUuid(Network.class, networkUuid).getId());
 | 
				
			||||||
 | 
				
			|||||||
@ -18,12 +18,12 @@ package org.apache.cloudstack.api.response;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.cloud.host.Host;
 | 
					import com.cloud.host.Host;
 | 
				
			||||||
import com.cloud.serializer.Param;
 | 
					import com.cloud.serializer.Param;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
import com.google.gson.annotations.SerializedName;
 | 
					import com.google.gson.annotations.SerializedName;
 | 
				
			||||||
import org.apache.cloudstack.api.ApiConstants;
 | 
					import org.apache.cloudstack.api.ApiConstants;
 | 
				
			||||||
import org.apache.cloudstack.api.BaseResponse;
 | 
					import org.apache.cloudstack.api.BaseResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.EntityReference;
 | 
					import org.apache.cloudstack.api.EntityReference;
 | 
				
			||||||
import org.apache.cloudstack.outofbandmanagement.OutOfBandManagement;
 | 
					import org.apache.cloudstack.outofbandmanagement.OutOfBandManagement;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@EntityReference(value = Host.class)
 | 
					@EntityReference(value = Host.class)
 | 
				
			||||||
public class OutOfBandManagementResponse extends BaseResponse {
 | 
					public class OutOfBandManagementResponse extends BaseResponse {
 | 
				
			||||||
@ -94,7 +94,7 @@ public class OutOfBandManagementResponse extends BaseResponse {
 | 
				
			|||||||
            this.setPort(outOfBandManagementConfig.getPort());
 | 
					            this.setPort(outOfBandManagementConfig.getPort());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        this.setUsername(outOfBandManagementConfig.getUsername());
 | 
					        this.setUsername(outOfBandManagementConfig.getUsername());
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(outOfBandManagementConfig.getPassword())) {
 | 
					        if (StringUtils.isNotEmpty(outOfBandManagementConfig.getPassword())) {
 | 
				
			||||||
            this.setPassword(outOfBandManagementConfig.getPassword().substring(0, 1) + "****");
 | 
					            this.setPassword(outOfBandManagementConfig.getPassword().substring(0, 1) + "****");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -20,9 +20,9 @@ package org.apache.cloudstack.backup;
 | 
				
			|||||||
import org.apache.cloudstack.acl.ControlledEntity;
 | 
					import org.apache.cloudstack.acl.ControlledEntity;
 | 
				
			||||||
import org.apache.cloudstack.api.Identity;
 | 
					import org.apache.cloudstack.api.Identity;
 | 
				
			||||||
import org.apache.cloudstack.api.InternalIdentity;
 | 
					import org.apache.cloudstack.api.InternalIdentity;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.storage.Volume;
 | 
					import com.cloud.storage.Volume;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface Backup extends ControlledEntity, InternalIdentity, Identity {
 | 
					public interface Backup extends ControlledEntity, InternalIdentity, Identity {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -52,7 +52,7 @@ import org.eclipse.jetty.webapp.WebAppContext;
 | 
				
			|||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.utils.PropertiesUtil;
 | 
					import com.cloud.utils.PropertiesUtil;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/***
 | 
					/***
 | 
				
			||||||
 * The ServerDaemon class implements the embedded server, it can be started either
 | 
					 * The ServerDaemon class implements the embedded server, it can be started either
 | 
				
			||||||
@ -221,7 +221,7 @@ public class ServerDaemon implements Daemon {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private void createHttpsConnector(final HttpConfiguration httpConfig) {
 | 
					    private void createHttpsConnector(final HttpConfiguration httpConfig) {
 | 
				
			||||||
        // Configure SSL
 | 
					        // Configure SSL
 | 
				
			||||||
        if (httpsEnable && !Strings.isNullOrEmpty(keystoreFile) && new File(keystoreFile).exists()) {
 | 
					        if (httpsEnable && StringUtils.isNotEmpty(keystoreFile) && new File(keystoreFile).exists()) {
 | 
				
			||||||
            // SSL Context
 | 
					            // SSL Context
 | 
				
			||||||
            final SslContextFactory sslContextFactory = new SslContextFactory.Server();
 | 
					            final SslContextFactory sslContextFactory = new SslContextFactory.Server();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -256,7 +256,7 @@ public class ServerDaemon implements Daemon {
 | 
				
			|||||||
        gzipHandler.setCompressionLevel(9);
 | 
					        gzipHandler.setCompressionLevel(9);
 | 
				
			||||||
        gzipHandler.setHandler(webApp);
 | 
					        gzipHandler.setHandler(webApp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (Strings.isNullOrEmpty(webAppLocation)) {
 | 
					        if (StringUtils.isEmpty(webAppLocation)) {
 | 
				
			||||||
            webApp.setWar(getShadedWarUrl());
 | 
					            webApp.setWar(getShadedWarUrl());
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            webApp.setWar(webAppLocation);
 | 
					            webApp.setWar(webAppLocation);
 | 
				
			||||||
 | 
				
			|||||||
@ -44,7 +44,7 @@ import org.apache.cloudstack.diagnostics.DiagnosticsCommand;
 | 
				
			|||||||
import org.apache.cloudstack.diagnostics.PrepareFilesAnswer;
 | 
					import org.apache.cloudstack.diagnostics.PrepareFilesAnswer;
 | 
				
			||||||
import org.apache.cloudstack.diagnostics.PrepareFilesCommand;
 | 
					import org.apache.cloudstack.diagnostics.PrepareFilesCommand;
 | 
				
			||||||
import org.apache.cloudstack.utils.security.KeyStoreUtils;
 | 
					import org.apache.cloudstack.utils.security.KeyStoreUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.joda.time.Duration;
 | 
					import org.joda.time.Duration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -33,6 +33,8 @@ import java.util.zip.GZIPInputStream;
 | 
				
			|||||||
import java.util.zip.GZIPOutputStream;
 | 
					import java.util.zip.GZIPOutputStream;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.utils.HumanReadableJson;
 | 
					import com.cloud.utils.HumanReadableJson;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Level;
 | 
					import org.apache.log4j.Level;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -55,7 +57,6 @@ import com.cloud.exception.UnsupportedVersionException;
 | 
				
			|||||||
import com.cloud.serializer.GsonHelper;
 | 
					import com.cloud.serializer.GsonHelper;
 | 
				
			||||||
import com.cloud.utils.NumbersUtil;
 | 
					import com.cloud.utils.NumbersUtil;
 | 
				
			||||||
import com.cloud.utils.Pair;
 | 
					import com.cloud.utils.Pair;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -465,7 +466,7 @@ public class Request {
 | 
				
			|||||||
            int i = 0;
 | 
					            int i = 0;
 | 
				
			||||||
            if (temp != null) {
 | 
					            if (temp != null) {
 | 
				
			||||||
                while (i < temp.length) {
 | 
					                while (i < temp.length) {
 | 
				
			||||||
                    temp[i] = StringUtils.cleanString(temp[i]);
 | 
					                    temp[i] = com.cloud.utils.StringUtils.cleanString(temp[i]);
 | 
				
			||||||
                    i++;
 | 
					                    i++;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                List<String> stringList = new ArrayList<String>();
 | 
					                List<String> stringList = new ArrayList<String>();
 | 
				
			||||||
 | 
				
			|||||||
@ -36,7 +36,7 @@ import com.cloud.agent.api.to.deployasis.OVFVirtualHardwareItemTO;
 | 
				
			|||||||
import com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO;
 | 
					import com.cloud.agent.api.to.deployasis.OVFVirtualHardwareSectionTO;
 | 
				
			||||||
import com.cloud.agent.api.to.deployasis.OVFNetworkTO;
 | 
					import com.cloud.agent.api.to.deployasis.OVFNetworkTO;
 | 
				
			||||||
import org.apache.commons.collections.CollectionUtils;
 | 
					import org.apache.commons.collections.CollectionUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.w3c.dom.Document;
 | 
					import org.w3c.dom.Document;
 | 
				
			||||||
import org.w3c.dom.Element;
 | 
					import org.w3c.dom.Element;
 | 
				
			||||||
 | 
				
			|||||||
@ -37,7 +37,7 @@ import org.apache.commons.httpclient.HttpClient;
 | 
				
			|||||||
import org.apache.commons.httpclient.URIException;
 | 
					import org.apache.commons.httpclient.URIException;
 | 
				
			||||||
import org.apache.commons.httpclient.methods.GetMethod;
 | 
					import org.apache.commons.httpclient.methods.GetMethod;
 | 
				
			||||||
import org.apache.commons.httpclient.params.HttpMethodParams;
 | 
					import org.apache.commons.httpclient.params.HttpMethodParams;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.BufferedInputStream;
 | 
					import java.io.BufferedInputStream;
 | 
				
			||||||
@ -46,7 +46,6 @@ import java.io.InputStream;
 | 
				
			|||||||
import java.util.Date;
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
 | 
					import static com.cloud.utils.NumbersUtil.toHumanReadableSize;
 | 
				
			||||||
import static com.cloud.utils.StringUtils.join;
 | 
					 | 
				
			||||||
import static java.util.Arrays.asList;
 | 
					import static java.util.Arrays.asList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
@ -98,7 +97,7 @@ public class S3TemplateDownloader extends ManagedContextRunnable implements Temp
 | 
				
			|||||||
        this.fileExtension = StringUtils.substringAfterLast(StringUtils.substringAfterLast(downloadUrl, "/"), ".");
 | 
					        this.fileExtension = StringUtils.substringAfterLast(StringUtils.substringAfterLast(downloadUrl, "/"), ".");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Calculate and set S3 Key.
 | 
					        // Calculate and set S3 Key.
 | 
				
			||||||
        this.s3Key = join(asList(installPath, StringUtils.substringAfterLast(downloadUrl, "/")), S3Utils.SEPARATOR);
 | 
					        this.s3Key = StringUtils.join(asList(installPath, StringUtils.substringAfterLast(downloadUrl, "/")), S3Utils.SEPARATOR);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Set proxy if available.
 | 
					        // Set proxy if available.
 | 
				
			||||||
        HTTPUtils.setProxy(proxy, this.httpClient);
 | 
					        HTTPUtils.setProxy(proxy, this.httpClient);
 | 
				
			||||||
 | 
				
			|||||||
@ -20,14 +20,14 @@
 | 
				
			|||||||
package org.apache.cloudstack.ca;
 | 
					package org.apache.cloudstack.ca;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.agent.api.LogLevel;
 | 
					import com.cloud.agent.api.LogLevel;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class SetupKeystoreAnswer extends SetupCertificateAnswer {
 | 
					public class SetupKeystoreAnswer extends SetupCertificateAnswer {
 | 
				
			||||||
    @LogLevel(LogLevel.Log4jLevel.Off)
 | 
					    @LogLevel(LogLevel.Log4jLevel.Off)
 | 
				
			||||||
    private final String csr;
 | 
					    private final String csr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public SetupKeystoreAnswer(final String csr) {
 | 
					    public SetupKeystoreAnswer(final String csr) {
 | 
				
			||||||
        super(!Strings.isNullOrEmpty(csr));
 | 
					        super(StringUtils.isNotEmpty(csr));
 | 
				
			||||||
        this.csr = csr;
 | 
					        this.csr = csr;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -19,7 +19,7 @@ package org.apache.cloudstack.diagnostics;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.cloud.agent.api.Answer;
 | 
					import com.cloud.agent.api.Answer;
 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.cloudstack.api.ApiConstants;
 | 
					import org.apache.cloudstack.api.ApiConstants;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -35,7 +35,7 @@ public class DiagnosticsAnswer extends Answer {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public Map<String, String> getExecutionDetails() {
 | 
					    public Map<String, String> getExecutionDetails() {
 | 
				
			||||||
        final Map<String, String> executionDetailsMap = new HashMap<>();
 | 
					        final Map<String, String> executionDetailsMap = new HashMap<>();
 | 
				
			||||||
        if (result == true && !Strings.isNullOrEmpty(details)) {
 | 
					        if (result == true && StringUtils.isNotEmpty(details)) {
 | 
				
			||||||
            final String[] parseDetails = details.split("&&");
 | 
					            final String[] parseDetails = details.split("&&");
 | 
				
			||||||
            if (parseDetails.length >= 3) {
 | 
					            if (parseDetails.length >= 3) {
 | 
				
			||||||
                executionDetailsMap.put(ApiConstants.STDOUT, parseDetails[0].trim());
 | 
					                executionDetailsMap.put(ApiConstants.STDOUT, parseDetails[0].trim());
 | 
				
			||||||
 | 
				
			|||||||
@ -120,7 +120,7 @@ import com.cloud.utils.nio.Link;
 | 
				
			|||||||
import com.cloud.utils.nio.NioServer;
 | 
					import com.cloud.utils.nio.NioServer;
 | 
				
			||||||
import com.cloud.utils.nio.Task;
 | 
					import com.cloud.utils.nio.Task;
 | 
				
			||||||
import com.cloud.utils.time.InaccurateClock;
 | 
					import com.cloud.utils.time.InaccurateClock;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Implementation of the Agent Manager. This class controls the connection to the agents.
 | 
					 * Implementation of the Agent Manager. This class controls the connection to the agents.
 | 
				
			||||||
@ -391,7 +391,7 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        String logcontextid = (String) MDC.get("logcontextid");
 | 
					        String logcontextid = (String) MDC.get("logcontextid");
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(logcontextid)) {
 | 
					        if (StringUtils.isNotEmpty(logcontextid)) {
 | 
				
			||||||
            cmd.setContextParam("logid", logcontextid);
 | 
					            cmd.setContextParam("logid", logcontextid);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -1086,7 +1086,7 @@ public class AgentManagerImpl extends ManagerBase implements AgentManager, Handl
 | 
				
			|||||||
            String lbAlgorithm = null;
 | 
					            String lbAlgorithm = null;
 | 
				
			||||||
            if (startup != null && startup.length > 0) {
 | 
					            if (startup != null && startup.length > 0) {
 | 
				
			||||||
                final String agentMSHosts = startup[0].getMsHostList();
 | 
					                final String agentMSHosts = startup[0].getMsHostList();
 | 
				
			||||||
                if (!Strings.isNullOrEmpty(agentMSHosts)) {
 | 
					                if (StringUtils.isNotEmpty(agentMSHosts)) {
 | 
				
			||||||
                    String[] msHosts = agentMSHosts.split("@");
 | 
					                    String[] msHosts = agentMSHosts.split("@");
 | 
				
			||||||
                    if (msHosts.length > 1) {
 | 
					                    if (msHosts.length > 1) {
 | 
				
			||||||
                        lbAlgorithm = msHosts[1];
 | 
					                        lbAlgorithm = msHosts[1];
 | 
				
			||||||
 | 
				
			|||||||
@ -251,7 +251,6 @@ import com.cloud.vm.dao.VMInstanceDao;
 | 
				
			|||||||
import com.cloud.vm.snapshot.VMSnapshotManager;
 | 
					import com.cloud.vm.snapshot.VMSnapshotManager;
 | 
				
			||||||
import com.cloud.vm.snapshot.VMSnapshotVO;
 | 
					import com.cloud.vm.snapshot.VMSnapshotVO;
 | 
				
			||||||
import com.cloud.vm.snapshot.dao.VMSnapshotDao;
 | 
					import com.cloud.vm.snapshot.dao.VMSnapshotDao;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static com.cloud.configuration.ConfigurationManagerImpl.MIGRATE_VM_ACROSS_CLUSTERS;
 | 
					import static com.cloud.configuration.ConfigurationManagerImpl.MIGRATE_VM_ACROSS_CLUSTERS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1006,7 +1005,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    private void setupAgentSecurity(final Host vmHost, final Map<String, String> sshAccessDetails, final VirtualMachine vm) throws AgentUnavailableException, OperationTimedoutException {
 | 
					    private void setupAgentSecurity(final Host vmHost, final Map<String, String> sshAccessDetails, final VirtualMachine vm) throws AgentUnavailableException, OperationTimedoutException {
 | 
				
			||||||
        final String csr = caManager.generateKeyStoreAndCsr(vmHost, sshAccessDetails);
 | 
					        final String csr = caManager.generateKeyStoreAndCsr(vmHost, sshAccessDetails);
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(csr)) {
 | 
					        if (org.apache.commons.lang3.StringUtils.isNotEmpty(csr)) {
 | 
				
			||||||
            final Map<String, String> ipAddressDetails = new HashMap<>(sshAccessDetails);
 | 
					            final Map<String, String> ipAddressDetails = new HashMap<>(sshAccessDetails);
 | 
				
			||||||
            ipAddressDetails.remove(NetworkElementCommand.ROUTER_NAME);
 | 
					            ipAddressDetails.remove(NetworkElementCommand.ROUTER_NAME);
 | 
				
			||||||
            final Certificate certificate = caManager.issueCertificate(csr, Arrays.asList(vm.getHostName(), vm.getInstanceName()),
 | 
					            final Certificate certificate = caManager.issueCertificate(csr, Arrays.asList(vm.getHostName(), vm.getInstanceName()),
 | 
				
			||||||
@ -1536,7 +1535,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac
 | 
				
			|||||||
            if (disk.getType() != Volume.Type.ISO) {
 | 
					            if (disk.getType() != Volume.Type.ISO) {
 | 
				
			||||||
                final VolumeObjectTO vol = (VolumeObjectTO)disk.getData();
 | 
					                final VolumeObjectTO vol = (VolumeObjectTO)disk.getData();
 | 
				
			||||||
                final VolumeVO volume = _volsDao.findById(vol.getId());
 | 
					                final VolumeVO volume = _volsDao.findById(vol.getId());
 | 
				
			||||||
                if (vmSpec.getDeployAsIsInfo() != null && StringUtils.isNotBlank(vol.getPath())) {
 | 
					                if (vmSpec.getDeployAsIsInfo() != null && org.apache.commons.lang3.StringUtils.isNotBlank(vol.getPath())) {
 | 
				
			||||||
                    volume.setPath(vol.getPath());
 | 
					                    volume.setPath(vol.getPath());
 | 
				
			||||||
                    _volsDao.update(volume.getId(), volume);
 | 
					                    _volsDao.update(volume.getId(), volume);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
				
			|||||||
@ -16,8 +16,6 @@
 | 
				
			|||||||
// under the License.
 | 
					// under the License.
 | 
				
			||||||
package org.apache.cloudstack.engine.orchestration;
 | 
					package org.apache.cloudstack.engine.orchestration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static org.apache.commons.lang.StringUtils.isNotBlank;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.net.URI;
 | 
					import java.net.URI;
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.Arrays;
 | 
					import java.util.Arrays;
 | 
				
			||||||
@ -200,7 +198,6 @@ import com.cloud.user.User;
 | 
				
			|||||||
import com.cloud.user.dao.AccountDao;
 | 
					import com.cloud.user.dao.AccountDao;
 | 
				
			||||||
import com.cloud.utils.NumbersUtil;
 | 
					import com.cloud.utils.NumbersUtil;
 | 
				
			||||||
import com.cloud.utils.Pair;
 | 
					import com.cloud.utils.Pair;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.UuidUtils;
 | 
					import com.cloud.utils.UuidUtils;
 | 
				
			||||||
import com.cloud.utils.component.AdapterBase;
 | 
					import com.cloud.utils.component.AdapterBase;
 | 
				
			||||||
import com.cloud.utils.component.ManagerBase;
 | 
					import com.cloud.utils.component.ManagerBase;
 | 
				
			||||||
@ -245,7 +242,7 @@ import com.cloud.vm.dao.NicSecondaryIpDao;
 | 
				
			|||||||
import com.cloud.vm.dao.NicSecondaryIpVO;
 | 
					import com.cloud.vm.dao.NicSecondaryIpVO;
 | 
				
			||||||
import com.cloud.vm.dao.UserVmDao;
 | 
					import com.cloud.vm.dao.UserVmDao;
 | 
				
			||||||
import com.cloud.vm.dao.VMInstanceDao;
 | 
					import com.cloud.vm.dao.VMInstanceDao;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * NetworkManagerImpl implements NetworkManager.
 | 
					 * NetworkManagerImpl implements NetworkManager.
 | 
				
			||||||
@ -642,10 +639,10 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private void updateRouterIpInNetworkDetails(Long networkId, String routerIp, String routerIpv6) {
 | 
					    private void updateRouterIpInNetworkDetails(Long networkId, String routerIp, String routerIpv6) {
 | 
				
			||||||
        if (isNotBlank(routerIp)) {
 | 
					        if (StringUtils.isNotBlank(routerIp)) {
 | 
				
			||||||
            networkDetailsDao.addDetail(networkId, ApiConstants.ROUTER_IP, routerIp, true);
 | 
					            networkDetailsDao.addDetail(networkId, ApiConstants.ROUTER_IP, routerIp, true);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (isNotBlank(routerIpv6)) {
 | 
					        if (StringUtils.isNotBlank(routerIpv6)) {
 | 
				
			||||||
            networkDetailsDao.addDetail(networkId, ApiConstants.ROUTER_IPV6, routerIpv6, true);
 | 
					            networkDetailsDao.addDetail(networkId, ApiConstants.ROUTER_IPV6, routerIpv6, true);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -2272,8 +2269,8 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        final NetworkVO network = _networksDao.findById(nic.getNetworkId());
 | 
					        final NetworkVO network = _networksDao.findById(nic.getNetworkId());
 | 
				
			||||||
        if (network != null && network.getTrafficType() == TrafficType.Guest) {
 | 
					        if (network != null && network.getTrafficType() == TrafficType.Guest) {
 | 
				
			||||||
            final String nicIp = Strings.isNullOrEmpty(nic.getIPv4Address()) ? nic.getIPv6Address() : nic.getIPv4Address();
 | 
					            final String nicIp = StringUtils.isEmpty(nic.getIPv4Address()) ? nic.getIPv6Address() : nic.getIPv4Address();
 | 
				
			||||||
            if (!Strings.isNullOrEmpty(nicIp)) {
 | 
					            if (StringUtils.isNotEmpty(nicIp)) {
 | 
				
			||||||
                NicProfile nicProfile = new NicProfile(nic.getIPv4Address(), nic.getIPv6Address(), nic.getMacAddress());
 | 
					                NicProfile nicProfile = new NicProfile(nic.getIPv4Address(), nic.getIPv6Address(), nic.getMacAddress());
 | 
				
			||||||
                nicProfile.setId(nic.getId());
 | 
					                nicProfile.setId(nic.getId());
 | 
				
			||||||
                cleanupNicDhcpDnsEntry(network, vm, nicProfile);
 | 
					                cleanupNicDhcpDnsEntry(network, vm, nicProfile);
 | 
				
			||||||
@ -2463,7 +2460,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        boolean ipv6 = false;
 | 
					        boolean ipv6 = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (StringUtils.isNotBlank(ip6Gateway) && StringUtils.isNotBlank(ip6Cidr)) {
 | 
					        if (StringUtils.isNoneBlank(ip6Gateway, ip6Cidr)) {
 | 
				
			||||||
            ipv6 = true;
 | 
					            ipv6 = true;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        // Validate zone
 | 
					        // Validate zone
 | 
				
			||||||
@ -2542,7 +2539,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 | 
				
			|||||||
        if (vlanSpecified) {
 | 
					        if (vlanSpecified) {
 | 
				
			||||||
            URI uri = encodeVlanIdIntoBroadcastUri(vlanId, pNtwk);
 | 
					            URI uri = encodeVlanIdIntoBroadcastUri(vlanId, pNtwk);
 | 
				
			||||||
            // Aux: generate secondary URI for secondary VLAN ID (if provided) for performing checks
 | 
					            // Aux: generate secondary URI for secondary VLAN ID (if provided) for performing checks
 | 
				
			||||||
            URI secondaryUri = isNotBlank(isolatedPvlan) ? BroadcastDomainType.fromString(isolatedPvlan) : null;
 | 
					            URI secondaryUri = StringUtils.isNotBlank(isolatedPvlan) ? BroadcastDomainType.fromString(isolatedPvlan) : null;
 | 
				
			||||||
            //don't allow to specify vlan tag used by physical network for dynamic vlan allocation
 | 
					            //don't allow to specify vlan tag used by physical network for dynamic vlan allocation
 | 
				
			||||||
            if (!(bypassVlanOverlapCheck && ntwkOff.getGuestType() == GuestType.Shared) && _dcDao.findVnet(zoneId, pNtwk.getId(), BroadcastDomainType.getValue(uri)).size() > 0) {
 | 
					            if (!(bypassVlanOverlapCheck && ntwkOff.getGuestType() == GuestType.Shared) && _dcDao.findVnet(zoneId, pNtwk.getId(), BroadcastDomainType.getValue(uri)).size() > 0) {
 | 
				
			||||||
                throw new InvalidParameterValueException("The VLAN tag to use for new guest network, " + vlanId + " is already being used for dynamic vlan allocation for the guest network in zone "
 | 
					                throw new InvalidParameterValueException("The VLAN tag to use for new guest network, " + vlanId + " is already being used for dynamic vlan allocation for the guest network in zone "
 | 
				
			||||||
@ -2681,7 +2678,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 | 
				
			|||||||
                    userNetwork.setGateway(gateway);
 | 
					                    userNetwork.setGateway(gateway);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (StringUtils.isNotBlank(ip6Gateway) && StringUtils.isNotBlank(ip6Cidr)) {
 | 
					                if (StringUtils.isNoneBlank(ip6Gateway, ip6Cidr)) {
 | 
				
			||||||
                    userNetwork.setIp6Cidr(ip6Cidr);
 | 
					                    userNetwork.setIp6Cidr(ip6Cidr);
 | 
				
			||||||
                    userNetwork.setIp6Gateway(ip6Gateway);
 | 
					                    userNetwork.setIp6Gateway(ip6Gateway);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
@ -2690,11 +2687,11 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 | 
				
			|||||||
                    userNetwork.setExternalId(externalId);
 | 
					                    userNetwork.setExternalId(externalId);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (isNotBlank(routerIp)) {
 | 
					                if (StringUtils.isNotBlank(routerIp)) {
 | 
				
			||||||
                    userNetwork.setRouterIp(routerIp);
 | 
					                    userNetwork.setRouterIp(routerIp);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (isNotBlank(routerIpv6)) {
 | 
					                if (StringUtils.isNotBlank(routerIpv6)) {
 | 
				
			||||||
                    userNetwork.setRouterIpv6(routerIpv6);
 | 
					                    userNetwork.setRouterIpv6(routerIpv6);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -4155,11 +4152,11 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 | 
				
			|||||||
            if (network.getTrafficType() == Networks.TrafficType.Management) {
 | 
					            if (network.getTrafficType() == Networks.TrafficType.Management) {
 | 
				
			||||||
                privateIpAddress = address;
 | 
					                privateIpAddress = address;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (network.getTrafficType() != null && !Strings.isNullOrEmpty(address)) {
 | 
					            if (network.getTrafficType() != null && StringUtils.isNotEmpty(address)) {
 | 
				
			||||||
                accessDetails.put(network.getTrafficType().name(), address);
 | 
					                accessDetails.put(network.getTrafficType().name(), address);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (privateIpAddress != null && Strings.isNullOrEmpty(accessDetails.get(NetworkElementCommand.ROUTER_IP))) {
 | 
					        if (privateIpAddress != null && StringUtils.isEmpty(accessDetails.get(NetworkElementCommand.ROUTER_IP))) {
 | 
				
			||||||
            accessDetails.put(NetworkElementCommand.ROUTER_IP,  privateIpAddress);
 | 
					            accessDetails.put(NetworkElementCommand.ROUTER_IP,  privateIpAddress);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return accessDetails;
 | 
					        return accessDetails;
 | 
				
			||||||
@ -4299,7 +4296,7 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 | 
				
			|||||||
            throws ConcurrentOperationException, InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException {
 | 
					            throws ConcurrentOperationException, InsufficientVirtualNetworkCapacityException, InsufficientAddressCapacityException {
 | 
				
			||||||
        s_logger.debug("Allocating nic for vm " + vm.getUuid() + " in network " + network + " during import");
 | 
					        s_logger.debug("Allocating nic for vm " + vm.getUuid() + " in network " + network + " during import");
 | 
				
			||||||
        String guestIp = null;
 | 
					        String guestIp = null;
 | 
				
			||||||
        if (ipAddresses != null && !Strings.isNullOrEmpty(ipAddresses.getIp4Address())) {
 | 
					        if (ipAddresses != null && StringUtils.isNotEmpty(ipAddresses.getIp4Address())) {
 | 
				
			||||||
            if (ipAddresses.getIp4Address().equals("auto")) {
 | 
					            if (ipAddresses.getIp4Address().equals("auto")) {
 | 
				
			||||||
                ipAddresses.setIp4Address(null);
 | 
					                ipAddresses.setIp4Address(null);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -4331,10 +4328,10 @@ public class NetworkOrchestrator extends ManagerBase implements NetworkOrchestra
 | 
				
			|||||||
                NicVO vo = new NicVO(network.getGuruName(), vm.getId(), network.getId(), vm.getType());
 | 
					                NicVO vo = new NicVO(network.getGuruName(), vm.getId(), network.getId(), vm.getType());
 | 
				
			||||||
                vo.setMacAddress(macAddress);
 | 
					                vo.setMacAddress(macAddress);
 | 
				
			||||||
                vo.setAddressFormat(Networks.AddressFormat.Ip4);
 | 
					                vo.setAddressFormat(Networks.AddressFormat.Ip4);
 | 
				
			||||||
                if (NetUtils.isValidIp4(finalGuestIp) && !Strings.isNullOrEmpty(network.getGateway())) {
 | 
					                if (NetUtils.isValidIp4(finalGuestIp) && StringUtils.isNotEmpty(network.getGateway())) {
 | 
				
			||||||
                    vo.setIPv4Address(finalGuestIp);
 | 
					                    vo.setIPv4Address(finalGuestIp);
 | 
				
			||||||
                    vo.setIPv4Gateway(network.getGateway());
 | 
					                    vo.setIPv4Gateway(network.getGateway());
 | 
				
			||||||
                    if (!Strings.isNullOrEmpty(network.getCidr())) {
 | 
					                    if (StringUtils.isNotEmpty(network.getCidr())) {
 | 
				
			||||||
                        vo.setIPv4Netmask(NetUtils.cidr2Netmask(network.getCidr()));
 | 
					                        vo.setIPv4Netmask(NetUtils.cidr2Netmask(network.getCidr()));
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
				
			|||||||
@ -36,7 +36,6 @@ import javax.inject.Inject;
 | 
				
			|||||||
import javax.naming.ConfigurationException;
 | 
					import javax.naming.ConfigurationException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.agent.api.to.DatadiskTO;
 | 
					import com.cloud.agent.api.to.DatadiskTO;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.vm.SecondaryStorageVmVO;
 | 
					import com.cloud.vm.SecondaryStorageVmVO;
 | 
				
			||||||
import com.cloud.vm.UserVmDetailVO;
 | 
					import com.cloud.vm.UserVmDetailVO;
 | 
				
			||||||
import com.cloud.vm.VMInstanceVO;
 | 
					import com.cloud.vm.VMInstanceVO;
 | 
				
			||||||
@ -85,6 +84,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 | 
				
			|||||||
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
 | 
					import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
 | 
				
			||||||
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 | 
					import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 | 
				
			||||||
import org.apache.commons.collections.MapUtils;
 | 
					import org.apache.commons.collections.MapUtils;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.commons.collections.CollectionUtils;
 | 
					import org.apache.commons.collections.CollectionUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -46,7 +46,7 @@ import com.cloud.storage.Storage.StoragePoolType;
 | 
				
			|||||||
import com.cloud.utils.NumbersUtil;
 | 
					import com.cloud.utils.NumbersUtil;
 | 
				
			||||||
import com.cloud.utils.db.GenericDao;
 | 
					import com.cloud.utils.db.GenericDao;
 | 
				
			||||||
import java.util.Arrays;
 | 
					import java.util.Arrays;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Entity
 | 
					@Entity
 | 
				
			||||||
@Table(name = "host")
 | 
					@Table(name = "host")
 | 
				
			||||||
 | 
				
			|||||||
@ -28,7 +28,7 @@ import javax.inject.Inject;
 | 
				
			|||||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataObjectInStore;
 | 
					import org.apache.cloudstack.engine.subsystem.api.storage.DataObjectInStore;
 | 
				
			||||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
 | 
					import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
 | 
				
			||||||
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
 | 
					import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -33,7 +33,7 @@ import com.cloud.upgrade.dao.Upgrade41510to41520;
 | 
				
			|||||||
import com.cloud.upgrade.dao.Upgrade41600to41610;
 | 
					import com.cloud.upgrade.dao.Upgrade41600to41610;
 | 
				
			||||||
import com.cloud.upgrade.dao.Upgrade41610to41700;
 | 
					import com.cloud.upgrade.dao.Upgrade41610to41700;
 | 
				
			||||||
import org.apache.cloudstack.utils.CloudStackVersion;
 | 
					import org.apache.cloudstack.utils.CloudStackVersion;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.upgrade.dao.DbUpgrade;
 | 
					import com.cloud.upgrade.dao.DbUpgrade;
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@ import java.util.List;
 | 
				
			|||||||
import java.util.TimeZone;
 | 
					import java.util.TimeZone;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -25,7 +25,7 @@ import java.util.List;
 | 
				
			|||||||
import java.util.TimeZone;
 | 
					import java.util.TimeZone;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -33,7 +33,7 @@ import org.apache.cloudstack.api.InternalIdentity;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.cloud.utils.db.Encrypt;
 | 
					import com.cloud.utils.db.Encrypt;
 | 
				
			||||||
import com.cloud.utils.db.GenericDao;
 | 
					import com.cloud.utils.db.GenericDao;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Entity
 | 
					@Entity
 | 
				
			||||||
@Table(name = "user")
 | 
					@Table(name = "user")
 | 
				
			||||||
@ -258,7 +258,7 @@ public class UserAccountVO implements UserAccount, InternalIdentity {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public String getTimezone() {
 | 
					    public String getTimezone() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(timezone)) {
 | 
					        if (StringUtils.isEmpty(timezone)) {
 | 
				
			||||||
            return "UTC";
 | 
					            return "UTC";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return timezone;
 | 
					        return timezone;
 | 
				
			||||||
 | 
				
			|||||||
@ -34,7 +34,7 @@ import org.apache.cloudstack.api.InternalIdentity;
 | 
				
			|||||||
import com.cloud.user.Account.State;
 | 
					import com.cloud.user.Account.State;
 | 
				
			||||||
import com.cloud.utils.db.Encrypt;
 | 
					import com.cloud.utils.db.Encrypt;
 | 
				
			||||||
import com.cloud.utils.db.GenericDao;
 | 
					import com.cloud.utils.db.GenericDao;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * A bean representing a user
 | 
					 * A bean representing a user
 | 
				
			||||||
@ -252,7 +252,7 @@ public class UserVO implements User, Identity, InternalIdentity {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public String getTimezone() {
 | 
					    public String getTimezone() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(timezone)) {
 | 
					        if (StringUtils.isEmpty(timezone)) {
 | 
				
			||||||
            return "UTC";
 | 
					            return "UTC";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return timezone;
 | 
					        return timezone;
 | 
				
			||||||
 | 
				
			|||||||
@ -29,7 +29,7 @@ import com.cloud.utils.db.GenericSearchBuilder;
 | 
				
			|||||||
import com.cloud.utils.db.SearchBuilder;
 | 
					import com.cloud.utils.db.SearchBuilder;
 | 
				
			||||||
import com.cloud.utils.db.SearchCriteria;
 | 
					import com.cloud.utils.db.SearchCriteria;
 | 
				
			||||||
import com.cloud.utils.db.SearchCriteria.Op;
 | 
					import com.cloud.utils.db.SearchCriteria.Op;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import com.cloud.utils.db.TransactionLegacy;
 | 
					import com.cloud.utils.db.TransactionLegacy;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
@ -164,7 +164,7 @@ public class AccountDaoImpl extends GenericDaoBase<AccountVO, Long> implements A
 | 
				
			|||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public Pair<List<AccountVO>, Integer> findAccountsLike(String accountName, Filter filter) {
 | 
					    public Pair<List<AccountVO>, Integer> findAccountsLike(String accountName, Filter filter) {
 | 
				
			||||||
        SearchCriteria<AccountVO> sc = createSearchCriteria();
 | 
					        SearchCriteria<AccountVO> sc = createSearchCriteria();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(accountName)) {
 | 
					        if (StringUtils.isNotEmpty(accountName)) {
 | 
				
			||||||
            sc.addAnd("accountName", SearchCriteria.Op.LIKE, "%" + accountName + "%");
 | 
					            sc.addAnd("accountName", SearchCriteria.Op.LIKE, "%" + accountName + "%");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return searchAndCount(sc, filter);
 | 
					        return searchAndCount(sc, filter);
 | 
				
			||||||
 | 
				
			|||||||
@ -50,7 +50,7 @@ import com.cloud.utils.db.GenericDao;
 | 
				
			|||||||
import com.cloud.utils.db.StateMachine;
 | 
					import com.cloud.utils.db.StateMachine;
 | 
				
			||||||
import com.cloud.utils.fsm.FiniteStateObject;
 | 
					import com.cloud.utils.fsm.FiniteStateObject;
 | 
				
			||||||
import com.cloud.vm.VirtualMachine.State;
 | 
					import com.cloud.vm.VirtualMachine.State;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import com.google.gson.Gson;
 | 
					import com.google.gson.Gson;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Entity
 | 
					@Entity
 | 
				
			||||||
@ -619,7 +619,7 @@ public class VMInstanceVO implements VirtualMachine, FiniteStateObject<State, Vi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public List<Backup.VolumeInfo> getBackupVolumeList() {
 | 
					    public List<Backup.VolumeInfo> getBackupVolumeList() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(this.backupVolumes)) {
 | 
					        if (StringUtils.isEmpty(this.backupVolumes)) {
 | 
				
			||||||
            return Collections.emptyList();
 | 
					            return Collections.emptyList();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return Arrays.asList(new Gson().fromJson(this.backupVolumes, Backup.VolumeInfo[].class));
 | 
					        return Arrays.asList(new Gson().fromJson(this.backupVolumes, Backup.VolumeInfo[].class));
 | 
				
			||||||
 | 
				
			|||||||
@ -19,9 +19,9 @@ package com.cloud.vm.dao;
 | 
				
			|||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.db.GenericDaoBase;
 | 
					import com.cloud.utils.db.GenericDaoBase;
 | 
				
			||||||
import com.cloud.utils.db.GenericSearchBuilder;
 | 
					import com.cloud.utils.db.GenericSearchBuilder;
 | 
				
			||||||
import com.cloud.utils.db.SearchBuilder;
 | 
					import com.cloud.utils.db.SearchBuilder;
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,7 @@ import org.apache.cloudstack.acl.ProjectRoleVO;
 | 
				
			|||||||
import com.cloud.utils.db.GenericDaoBase;
 | 
					import com.cloud.utils.db.GenericDaoBase;
 | 
				
			||||||
import com.cloud.utils.db.SearchBuilder;
 | 
					import com.cloud.utils.db.SearchBuilder;
 | 
				
			||||||
import com.cloud.utils.db.SearchCriteria;
 | 
					import com.cloud.utils.db.SearchCriteria;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ProjectRoleDaoImpl extends GenericDaoBase<ProjectRoleVO, Long>  implements ProjectRoleDao{
 | 
					public class ProjectRoleDaoImpl extends GenericDaoBase<ProjectRoleVO, Long>  implements ProjectRoleDao{
 | 
				
			||||||
    private final SearchBuilder<ProjectRoleVO>  ProjectRoleSearch;
 | 
					    private final SearchBuilder<ProjectRoleVO>  ProjectRoleSearch;
 | 
				
			||||||
@ -41,7 +41,7 @@ public class ProjectRoleDaoImpl extends GenericDaoBase<ProjectRoleVO, Long>  imp
 | 
				
			|||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public List<ProjectRoleVO> findByName(String name, Long projectId) {
 | 
					    public List<ProjectRoleVO> findByName(String name, Long projectId) {
 | 
				
			||||||
        SearchCriteria<ProjectRoleVO> sc = ProjectRoleSearch.create();
 | 
					        SearchCriteria<ProjectRoleVO> sc = ProjectRoleSearch.create();
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(name)) {
 | 
					        if (StringUtils.isNotEmpty(name)) {
 | 
				
			||||||
            sc.setParameters("name", "%" + name + "%");
 | 
					            sc.setParameters("name", "%" + name + "%");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (projectId != null) {
 | 
					        if (projectId != null) {
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,7 @@ import org.apache.cloudstack.acl.RoleType;
 | 
				
			|||||||
import org.apache.cloudstack.annotation.AnnotationService.EntityType;
 | 
					import org.apache.cloudstack.annotation.AnnotationService.EntityType;
 | 
				
			||||||
import org.apache.cloudstack.annotation.AnnotationVO;
 | 
					import org.apache.cloudstack.annotation.AnnotationVO;
 | 
				
			||||||
import org.apache.commons.collections.CollectionUtils;
 | 
					import org.apache.commons.collections.CollectionUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
@ -93,8 +93,7 @@ public class AnnotationDaoImpl extends GenericDaoBase<AnnotationVO, Long> implem
 | 
				
			|||||||
        if (StringUtils.isNotBlank(userUuid)) {
 | 
					        if (StringUtils.isNotBlank(userUuid)) {
 | 
				
			||||||
            sc.addAnd("userUuid", SearchCriteria.Op.EQ, userUuid);
 | 
					            sc.addAnd("userUuid", SearchCriteria.Op.EQ, userUuid);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (StringUtils.isNotBlank(callingUserUuid) && StringUtils.isNotBlank(annotationFilter) &&
 | 
					        if (StringUtils.isNoneBlank(callingUserUuid, annotationFilter) && annotationFilter.equalsIgnoreCase("self")) {
 | 
				
			||||||
            annotationFilter.equalsIgnoreCase("self")) {
 | 
					 | 
				
			||||||
            sc.addAnd("userUuid", SearchCriteria.Op.EQ, callingUserUuid);
 | 
					            sc.addAnd("userUuid", SearchCriteria.Op.EQ, callingUserUuid);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (!isCallerAdmin) {
 | 
					        if (!isCallerAdmin) {
 | 
				
			||||||
 | 
				
			|||||||
@ -33,7 +33,7 @@ import java.util.List;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.codec.binary.Base64;
 | 
					import org.apache.commons.codec.binary.Base64;
 | 
				
			||||||
import org.apache.commons.io.FileUtils;
 | 
					import org.apache.commons.io.FileUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.joda.time.Duration;
 | 
					import org.joda.time.Duration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -31,7 +31,7 @@ import java.util.ArrayList;
 | 
				
			|||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.io.FileUtils;
 | 
					import org.apache.commons.io.FileUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.junit.Assert;
 | 
					import org.junit.Assert;
 | 
				
			||||||
import org.junit.Test;
 | 
					import org.junit.Test;
 | 
				
			||||||
import org.junit.runner.RunWith;
 | 
					import org.junit.runner.RunWith;
 | 
				
			||||||
 | 
				
			|||||||
@ -34,6 +34,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.StorageStrategyFactory
 | 
				
			|||||||
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
 | 
					import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
 | 
				
			||||||
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
 | 
					import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
 | 
				
			||||||
import org.apache.cloudstack.storage.command.CopyCmdAnswer;
 | 
					import org.apache.cloudstack.storage.command.CopyCmdAnswer;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -42,7 +43,6 @@ import com.cloud.host.Host;
 | 
				
			|||||||
import com.cloud.storage.Volume;
 | 
					import com.cloud.storage.Volume;
 | 
				
			||||||
import com.cloud.storage.VolumeVO;
 | 
					import com.cloud.storage.VolumeVO;
 | 
				
			||||||
import com.cloud.storage.dao.VolumeDao;
 | 
					import com.cloud.storage.dao.VolumeDao;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component
 | 
					@Component
 | 
				
			||||||
 | 
				
			|||||||
@ -35,7 +35,7 @@ import org.apache.cloudstack.storage.datastore.DataStoreManagerImpl;
 | 
				
			|||||||
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 | 
					import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 | 
				
			||||||
import org.apache.cloudstack.storage.to.TemplateObjectTO;
 | 
					import org.apache.cloudstack.storage.to.TemplateObjectTO;
 | 
				
			||||||
import org.apache.commons.collections.MapUtils;
 | 
					import org.apache.commons.collections.MapUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.agent.api.Answer;
 | 
					import com.cloud.agent.api.Answer;
 | 
				
			||||||
 | 
				
			|||||||
@ -69,7 +69,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 | 
				
			|||||||
import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
 | 
					import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
 | 
				
			||||||
import org.apache.cloudstack.storage.to.VolumeObjectTO;
 | 
					import org.apache.cloudstack.storage.to.VolumeObjectTO;
 | 
				
			||||||
import org.apache.commons.collections.MapUtils;
 | 
					import org.apache.commons.collections.MapUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.agent.AgentManager;
 | 
					import com.cloud.agent.AgentManager;
 | 
				
			||||||
@ -1047,7 +1047,7 @@ public class StorageSystemDataMotionStrategy implements DataMotionStrategy {
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
 | 
					                if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
 | 
				
			||||||
                    if (copyCmdAnswer != null && !StringUtils.isEmpty(copyCmdAnswer.getDetails())) {
 | 
					                    if (copyCmdAnswer != null && StringUtils.isNotEmpty(copyCmdAnswer.getDetails())) {
 | 
				
			||||||
                        errMsg = copyCmdAnswer.getDetails();
 | 
					                        errMsg = copyCmdAnswer.getDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (needCache) {
 | 
					                        if (needCache) {
 | 
				
			||||||
@ -1282,7 +1282,7 @@ public class StorageSystemDataMotionStrategy implements DataMotionStrategy {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
 | 
					            if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
 | 
				
			||||||
                if (copyCmdAnswer != null && !StringUtils.isEmpty(copyCmdAnswer.getDetails())) {
 | 
					                if (copyCmdAnswer != null && StringUtils.isNotEmpty(copyCmdAnswer.getDetails())) {
 | 
				
			||||||
                    throw new CloudRuntimeException(copyCmdAnswer.getDetails());
 | 
					                    throw new CloudRuntimeException(copyCmdAnswer.getDetails());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else {
 | 
					                else {
 | 
				
			||||||
@ -1610,7 +1610,7 @@ public class StorageSystemDataMotionStrategy implements DataMotionStrategy {
 | 
				
			|||||||
            copyCmdAnswer = copyImageToVolume(srcVolumeInfo, destVolumeInfo, hostVO);
 | 
					            copyCmdAnswer = copyImageToVolume(srcVolumeInfo, destVolumeInfo, hostVO);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
 | 
					            if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
 | 
				
			||||||
                if (copyCmdAnswer != null && !StringUtils.isEmpty(copyCmdAnswer.getDetails())) {
 | 
					                if (copyCmdAnswer != null && StringUtils.isNotEmpty(copyCmdAnswer.getDetails())) {
 | 
				
			||||||
                    throw new CloudRuntimeException(copyCmdAnswer.getDetails());
 | 
					                    throw new CloudRuntimeException(copyCmdAnswer.getDetails());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else {
 | 
					                else {
 | 
				
			||||||
@ -2396,7 +2396,7 @@ public class StorageSystemDataMotionStrategy implements DataMotionStrategy {
 | 
				
			|||||||
                handleQualityOfServiceForVolumeMigration(volumeInfo, PrimaryDataStoreDriver.QualityOfServiceState.NO_MIGRATION);
 | 
					                handleQualityOfServiceForVolumeMigration(volumeInfo, PrimaryDataStoreDriver.QualityOfServiceState.NO_MIGRATION);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
 | 
					                if (copyCmdAnswer == null || !copyCmdAnswer.getResult()) {
 | 
				
			||||||
                    if (copyCmdAnswer != null && !StringUtils.isEmpty(copyCmdAnswer.getDetails())) {
 | 
					                    if (copyCmdAnswer != null && StringUtils.isNotEmpty(copyCmdAnswer.getDetails())) {
 | 
				
			||||||
                        errMsg = copyCmdAnswer.getDetails();
 | 
					                        errMsg = copyCmdAnswer.getDetails();
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                    else {
 | 
					                    else {
 | 
				
			||||||
@ -2711,7 +2711,7 @@ public class StorageSystemDataMotionStrategy implements DataMotionStrategy {
 | 
				
			|||||||
            MigrateVolumeAnswer migrateVolumeAnswer = (MigrateVolumeAnswer)agentManager.send(hostVO.getId(), migrateVolumeCommand);
 | 
					            MigrateVolumeAnswer migrateVolumeAnswer = (MigrateVolumeAnswer)agentManager.send(hostVO.getId(), migrateVolumeCommand);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (migrateVolumeAnswer == null || !migrateVolumeAnswer.getResult()) {
 | 
					            if (migrateVolumeAnswer == null || !migrateVolumeAnswer.getResult()) {
 | 
				
			||||||
                if (migrateVolumeAnswer != null && !StringUtils.isEmpty(migrateVolumeAnswer.getDetails())) {
 | 
					                if (migrateVolumeAnswer != null && StringUtils.isNotEmpty(migrateVolumeAnswer.getDetails())) {
 | 
				
			||||||
                    throw new CloudRuntimeException(migrateVolumeAnswer.getDetails());
 | 
					                    throw new CloudRuntimeException(migrateVolumeAnswer.getDetails());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else {
 | 
					                else {
 | 
				
			||||||
@ -2779,7 +2779,7 @@ public class StorageSystemDataMotionStrategy implements DataMotionStrategy {
 | 
				
			|||||||
            CopyVolumeAnswer copyVolumeAnswer = (CopyVolumeAnswer)agentManager.send(hostVO.getId(), copyVolumeCommand);
 | 
					            CopyVolumeAnswer copyVolumeAnswer = (CopyVolumeAnswer)agentManager.send(hostVO.getId(), copyVolumeCommand);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (copyVolumeAnswer == null || !copyVolumeAnswer.getResult()) {
 | 
					            if (copyVolumeAnswer == null || !copyVolumeAnswer.getResult()) {
 | 
				
			||||||
                if (copyVolumeAnswer != null && !StringUtils.isEmpty(copyVolumeAnswer.getDetails())) {
 | 
					                if (copyVolumeAnswer != null && StringUtils.isNotEmpty(copyVolumeAnswer.getDetails())) {
 | 
				
			||||||
                    throw new CloudRuntimeException(copyVolumeAnswer.getDetails());
 | 
					                    throw new CloudRuntimeException(copyVolumeAnswer.getDetails());
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                else {
 | 
					                else {
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,6 @@ import java.util.List;
 | 
				
			|||||||
import javax.inject.Inject;
 | 
					import javax.inject.Inject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.hypervisor.Hypervisor;
 | 
					import com.cloud.hypervisor.Hypervisor;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import org.apache.cloudstack.direct.download.DirectDownloadManager;
 | 
					import org.apache.cloudstack.direct.download.DirectDownloadManager;
 | 
				
			||||||
import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
 | 
					import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
 | 
				
			||||||
@ -37,6 +36,7 @@ import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 | 
				
			|||||||
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
 | 
					import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
 | 
				
			||||||
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 | 
					import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 | 
				
			||||||
import org.apache.cloudstack.storage.image.store.TemplateObject;
 | 
					import org.apache.cloudstack.storage.image.store.TemplateObject;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -66,7 +66,7 @@ import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 | 
				
			|||||||
import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
 | 
					import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
 | 
				
			||||||
import org.apache.cloudstack.storage.image.store.TemplateObject;
 | 
					import org.apache.cloudstack.storage.image.store.TemplateObject;
 | 
				
			||||||
import org.apache.cloudstack.storage.to.TemplateObjectTO;
 | 
					import org.apache.cloudstack.storage.to.TemplateObjectTO;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -111,7 +111,6 @@ import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			|||||||
import com.cloud.utils.fsm.NoTransitionException;
 | 
					import com.cloud.utils.fsm.NoTransitionException;
 | 
				
			||||||
import com.cloud.utils.fsm.StateMachine2;
 | 
					import com.cloud.utils.fsm.StateMachine2;
 | 
				
			||||||
import com.cloud.vm.VmDetailConstants;
 | 
					import com.cloud.vm.VmDetailConstants;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component
 | 
					@Component
 | 
				
			||||||
public class TemplateServiceImpl implements TemplateService {
 | 
					public class TemplateServiceImpl implements TemplateService {
 | 
				
			||||||
@ -765,15 +764,15 @@ public class TemplateServiceImpl implements TemplateService {
 | 
				
			|||||||
                if (!deployAsIs) {
 | 
					                if (!deployAsIs) {
 | 
				
			||||||
                    if (!diskTemplate.isBootable()) {
 | 
					                    if (!diskTemplate.isBootable()) {
 | 
				
			||||||
                        createChildDataDiskTemplate(diskTemplate, templateVO, parentTemplate, imageStore, diskCount++);
 | 
					                        createChildDataDiskTemplate(diskTemplate, templateVO, parentTemplate, imageStore, diskCount++);
 | 
				
			||||||
                        if (!diskTemplate.isIso() && Strings.isNullOrEmpty(details.get(VmDetailConstants.DATA_DISK_CONTROLLER))){
 | 
					                        if (!diskTemplate.isIso() && StringUtils.isEmpty(details.get(VmDetailConstants.DATA_DISK_CONTROLLER))){
 | 
				
			||||||
                            details.put(VmDetailConstants.DATA_DISK_CONTROLLER, getOvaDiskControllerDetails(diskTemplate, false));
 | 
					                            details.put(VmDetailConstants.DATA_DISK_CONTROLLER, getOvaDiskControllerDetails(diskTemplate, false));
 | 
				
			||||||
                            details.put(VmDetailConstants.DATA_DISK_CONTROLLER + diskTemplate.getDiskId(), getOvaDiskControllerDetails(diskTemplate, false));
 | 
					                            details.put(VmDetailConstants.DATA_DISK_CONTROLLER + diskTemplate.getDiskId(), getOvaDiskControllerDetails(diskTemplate, false));
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
                    } else {
 | 
					                    } else {
 | 
				
			||||||
                        finalizeParentTemplate(diskTemplate, templateVO, parentTemplate, imageStore, diskCount++);
 | 
					                        finalizeParentTemplate(diskTemplate, templateVO, parentTemplate, imageStore, diskCount++);
 | 
				
			||||||
                        if (Strings.isNullOrEmpty(VmDetailConstants.ROOT_DISK_CONTROLLER)) {
 | 
					                        if (StringUtils.isEmpty(VmDetailConstants.ROOT_DISK_CONTROLLER)) {
 | 
				
			||||||
                            final String rootDiskController = getOvaDiskControllerDetails(diskTemplate, true);
 | 
					                            final String rootDiskController = getOvaDiskControllerDetails(diskTemplate, true);
 | 
				
			||||||
                            if (!Strings.isNullOrEmpty(rootDiskController)) {
 | 
					                            if (StringUtils.isNotEmpty(rootDiskController)) {
 | 
				
			||||||
                                details.put(VmDetailConstants.ROOT_DISK_CONTROLLER, rootDiskController);
 | 
					                                details.put(VmDetailConstants.ROOT_DISK_CONTROLLER, rootDiskController);
 | 
				
			||||||
                            }
 | 
					                            }
 | 
				
			||||||
                        }
 | 
					                        }
 | 
				
			||||||
 | 
				
			|||||||
@ -54,7 +54,7 @@ import com.cloud.utils.component.ComponentContext;
 | 
				
			|||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import com.cloud.utils.fsm.NoTransitionException;
 | 
					import com.cloud.utils.fsm.NoTransitionException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@SuppressWarnings("serial")
 | 
					@SuppressWarnings("serial")
 | 
				
			||||||
public class TemplateObject implements TemplateInfo {
 | 
					public class TemplateObject implements TemplateInfo {
 | 
				
			||||||
@ -251,7 +251,7 @@ public class TemplateObject implements TemplateInfo {
 | 
				
			|||||||
     * In the case of managed storage, the install path may already be specified (by the storage plug-in), so do not overwrite it.
 | 
					     * In the case of managed storage, the install path may already be specified (by the storage plug-in), so do not overwrite it.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private void setInstallPathIfNeeded(TemplateObjectTO template, VMTemplateStoragePoolVO templatePoolRef) {
 | 
					    private void setInstallPathIfNeeded(TemplateObjectTO template, VMTemplateStoragePoolVO templatePoolRef) {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(templatePoolRef.getInstallPath())) {
 | 
					        if (StringUtils.isEmpty(templatePoolRef.getInstallPath())) {
 | 
				
			||||||
            templatePoolRef.setInstallPath(template.getPath());
 | 
					            templatePoolRef.setInstallPath(template.getPath());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -260,7 +260,7 @@ public class TemplateObject implements TemplateInfo {
 | 
				
			|||||||
     * In the case of managed storage, the local download path may already be specified (by the storage plug-in), so do not overwrite it.
 | 
					     * In the case of managed storage, the local download path may already be specified (by the storage plug-in), so do not overwrite it.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private void setDownloadPathIfNeeded(TemplateObjectTO template, VMTemplateStoragePoolVO templatePoolRef) {
 | 
					    private void setDownloadPathIfNeeded(TemplateObjectTO template, VMTemplateStoragePoolVO templatePoolRef) {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(templatePoolRef.getLocalDownloadPath())) {
 | 
					        if (StringUtils.isEmpty(templatePoolRef.getLocalDownloadPath())) {
 | 
				
			||||||
            templatePoolRef.setLocalDownloadPath(template.getPath());
 | 
					            templatePoolRef.setLocalDownloadPath(template.getPath());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -56,7 +56,7 @@ import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
 | 
				
			|||||||
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 | 
					import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
 | 
				
			||||||
import org.apache.commons.collections.CollectionUtils;
 | 
					import org.apache.commons.collections.CollectionUtils;
 | 
				
			||||||
import org.apache.commons.lang.ArrayUtils;
 | 
					import org.apache.commons.lang.ArrayUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -172,7 +172,7 @@ public class DeployAsIsHelperImpl implements DeployAsIsHelper {
 | 
				
			|||||||
                GuestOSHypervisorVO mapping = guestOsMappings.get(0);
 | 
					                GuestOSHypervisorVO mapping = guestOsMappings.get(0);
 | 
				
			||||||
                guestOsId = mapping.getGuestOsId();
 | 
					                guestOsId = mapping.getGuestOsId();
 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                if (!StringUtils.isEmpty(guestOsDescription)) {
 | 
					                if (StringUtils.isNotEmpty(guestOsDescription)) {
 | 
				
			||||||
                    for (GuestOSHypervisorVO guestOSHypervisorVO : guestOsMappings) {
 | 
					                    for (GuestOSHypervisorVO guestOSHypervisorVO : guestOsMappings) {
 | 
				
			||||||
                        GuestOSVO guestOSVO = guestOSDao.findById(guestOSHypervisorVO.getGuestOsId());
 | 
					                        GuestOSVO guestOSVO = guestOSDao.findById(guestOSHypervisorVO.getGuestOsId());
 | 
				
			||||||
                        if (guestOsDescription.equalsIgnoreCase(guestOSVO.getDisplayName())) {
 | 
					                        if (guestOsDescription.equalsIgnoreCase(guestOSVO.getDisplayName())) {
 | 
				
			||||||
 | 
				
			|||||||
@ -38,7 +38,7 @@ import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 | 
				
			|||||||
import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO;
 | 
					import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailVO;
 | 
				
			||||||
import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
 | 
					import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
 | 
				
			||||||
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 | 
					import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.inject.Inject;
 | 
					import javax.inject.Inject;
 | 
				
			||||||
 | 
				
			|||||||
@ -42,7 +42,7 @@ import org.apache.cloudstack.storage.datastore.ObjectInDataStoreManager;
 | 
				
			|||||||
import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
 | 
					import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
 | 
				
			||||||
import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
 | 
					import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
 | 
				
			||||||
import org.apache.cloudstack.storage.to.VolumeObjectTO;
 | 
					import org.apache.cloudstack.storage.to.VolumeObjectTO;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.agent.api.Answer;
 | 
					import com.cloud.agent.api.Answer;
 | 
				
			||||||
 | 
				
			|||||||
@ -132,7 +132,7 @@ import com.cloud.utils.db.DB;
 | 
				
			|||||||
import com.cloud.utils.db.GlobalLock;
 | 
					import com.cloud.utils.db.GlobalLock;
 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import com.cloud.vm.VirtualMachine;
 | 
					import com.cloud.vm.VirtualMachine;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import static com.cloud.storage.resource.StorageProcessor.REQUEST_TEMPLATE_RELOAD;
 | 
					import static com.cloud.storage.resource.StorageProcessor.REQUEST_TEMPLATE_RELOAD;
 | 
				
			||||||
import java.util.concurrent.ExecutionException;
 | 
					import java.util.concurrent.ExecutionException;
 | 
				
			||||||
@ -2113,7 +2113,7 @@ public class VolumeServiceImpl implements VolumeService {
 | 
				
			|||||||
                destPoolSystemId = destPoolSystemIdDetail.getValue();
 | 
					                destPoolSystemId = destPoolSystemIdDetail.getValue();
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (Strings.isNullOrEmpty(srcPoolSystemId) || Strings.isNullOrEmpty(destPoolSystemId)) {
 | 
					            if (StringUtils.isAnyEmpty(srcPoolSystemId, destPoolSystemId)) {
 | 
				
			||||||
                s_logger.warn("PowerFlex src pool: " + srcDataStore.getId() + " or dest pool: " + destDataStore.getId() +
 | 
					                s_logger.warn("PowerFlex src pool: " + srcDataStore.getId() + " or dest pool: " + destDataStore.getId() +
 | 
				
			||||||
                        " storage instance details are not available");
 | 
					                        " storage instance details are not available");
 | 
				
			||||||
                return false;
 | 
					                return false;
 | 
				
			||||||
 | 
				
			|||||||
@ -70,7 +70,7 @@ import com.cloud.utils.db.SearchCriteria.SelectType;
 | 
				
			|||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import com.cloud.utils.net.Ip;
 | 
					import com.cloud.utils.net.Ip;
 | 
				
			||||||
import com.cloud.utils.net.NetUtils;
 | 
					import com.cloud.utils.net.NetUtils;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import net.sf.cglib.proxy.Callback;
 | 
					import net.sf.cglib.proxy.Callback;
 | 
				
			||||||
import net.sf.cglib.proxy.CallbackFilter;
 | 
					import net.sf.cglib.proxy.CallbackFilter;
 | 
				
			||||||
@ -1998,7 +1998,7 @@ public abstract class GenericDaoBase<T, ID extends Serializable> extends Compone
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public Integer getDistinctCountIncludingRemoved(SearchCriteria<T> sc, String[] distinctColumns) {
 | 
					    public Integer getDistinctCountIncludingRemoved(SearchCriteria<T> sc, String[] distinctColumns) {
 | 
				
			||||||
        String clause = sc != null ? sc.getWhereClause() : null;
 | 
					        String clause = sc != null ? sc.getWhereClause() : null;
 | 
				
			||||||
        if (Strings.isNullOrEmpty(clause)) {
 | 
					        if (StringUtils.isEmpty(clause)) {
 | 
				
			||||||
            clause = null;
 | 
					            clause = null;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -29,7 +29,7 @@ import com.cloud.utils.db.Transaction;
 | 
				
			|||||||
import com.cloud.utils.db.TransactionCallback;
 | 
					import com.cloud.utils.db.TransactionCallback;
 | 
				
			||||||
import com.cloud.utils.db.TransactionLegacy;
 | 
					import com.cloud.utils.db.TransactionLegacy;
 | 
				
			||||||
import com.cloud.utils.db.TransactionStatus;
 | 
					import com.cloud.utils.db.TransactionStatus;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component
 | 
					@Component
 | 
				
			||||||
public class QuotaEmailTemplatesDaoImpl extends GenericDaoBase<QuotaEmailTemplatesVO, Long> implements QuotaEmailTemplatesDao {
 | 
					public class QuotaEmailTemplatesDaoImpl extends GenericDaoBase<QuotaEmailTemplatesVO, Long> implements QuotaEmailTemplatesDao {
 | 
				
			||||||
@ -51,7 +51,7 @@ public class QuotaEmailTemplatesDaoImpl extends GenericDaoBase<QuotaEmailTemplat
 | 
				
			|||||||
            @Override
 | 
					            @Override
 | 
				
			||||||
            public List<QuotaEmailTemplatesVO> doInTransaction(final TransactionStatus status) {
 | 
					            public List<QuotaEmailTemplatesVO> doInTransaction(final TransactionStatus status) {
 | 
				
			||||||
                SearchCriteria<QuotaEmailTemplatesVO> sc = QuotaEmailTemplateSearch.create();
 | 
					                SearchCriteria<QuotaEmailTemplatesVO> sc = QuotaEmailTemplateSearch.create();
 | 
				
			||||||
                if (!Strings.isNullOrEmpty(templateName)) {
 | 
					                if (StringUtils.isNotEmpty(templateName)) {
 | 
				
			||||||
                    sc.setParameters("template_name", templateName);
 | 
					                    sc.setParameters("template_name", templateName);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                return listBy(sc);
 | 
					                return listBy(sc);
 | 
				
			||||||
 | 
				
			|||||||
@ -30,8 +30,7 @@ import java.util.regex.Pattern;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import javax.inject.Inject;
 | 
					import javax.inject.Inject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -49,7 +48,7 @@ public class KeystoreManagerImpl extends ManagerBase implements KeystoreManager
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public boolean validateCertificate(String certificate, String key, String domainSuffix) {
 | 
					    public boolean validateCertificate(String certificate, String key, String domainSuffix) {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(certificate) || Strings.isNullOrEmpty(key) || Strings.isNullOrEmpty(domainSuffix)) {
 | 
					        if (StringUtils.isAnyEmpty(certificate, key, domainSuffix)) {
 | 
				
			||||||
            s_logger.error("Invalid parameter found in (certificate, key, domainSuffix) tuple for domain: " + domainSuffix);
 | 
					            s_logger.error("Invalid parameter found in (certificate, key, domainSuffix) tuple for domain: " + domainSuffix);
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
				
			|||||||
@ -27,7 +27,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import javax.annotation.PostConstruct;
 | 
					import javax.annotation.PostConstruct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.beans.factory.BeanNameAware;
 | 
					import org.springframework.beans.factory.BeanNameAware;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -36,7 +36,7 @@ import com.cloud.user.AccountService;
 | 
				
			|||||||
import com.cloud.user.User;
 | 
					import com.cloud.user.User;
 | 
				
			||||||
import com.cloud.utils.component.AdapterBase;
 | 
					import com.cloud.utils.component.AdapterBase;
 | 
				
			||||||
import com.cloud.utils.component.PluggableService;
 | 
					import com.cloud.utils.component.PluggableService;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class DynamicRoleBasedAPIAccessChecker extends AdapterBase implements APIAclChecker {
 | 
					public class DynamicRoleBasedAPIAccessChecker extends AdapterBase implements APIAclChecker {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -107,7 +107,7 @@ public class DynamicRoleBasedAPIAccessChecker extends AdapterBase implements API
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void addApiToRoleBasedAnnotationsMap(final RoleType roleType, final String commandName) {
 | 
					    public void addApiToRoleBasedAnnotationsMap(final RoleType roleType, final String commandName) {
 | 
				
			||||||
        if (roleType == null || Strings.isNullOrEmpty(commandName)) {
 | 
					        if (roleType == null || StringUtils.isEmpty(commandName)) {
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        final Set<String> commands = annotationRoleBasedApisMap.get(roleType);
 | 
					        final Set<String> commands = annotationRoleBasedApisMap.get(roleType);
 | 
				
			||||||
 | 
				
			|||||||
@ -39,6 +39,7 @@ import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.ApiParameterResponse;
 | 
					import org.apache.cloudstack.api.response.ApiParameterResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.ApiResponseResponse;
 | 
					import org.apache.cloudstack.api.response.ApiResponseResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.ListResponse;
 | 
					import org.apache.cloudstack.api.response.ListResponse;
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.reflections.ReflectionUtils;
 | 
					import org.reflections.ReflectionUtils;
 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
@ -46,7 +47,6 @@ import org.springframework.stereotype.Component;
 | 
				
			|||||||
import com.cloud.serializer.Param;
 | 
					import com.cloud.serializer.Param;
 | 
				
			||||||
import com.cloud.user.User;
 | 
					import com.cloud.user.User;
 | 
				
			||||||
import com.cloud.utils.ReflectUtil;
 | 
					import com.cloud.utils.ReflectUtil;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.component.ComponentLifecycleBase;
 | 
					import com.cloud.utils.component.ComponentLifecycleBase;
 | 
				
			||||||
import com.cloud.utils.component.PluggableService;
 | 
					import com.cloud.utils.component.PluggableService;
 | 
				
			||||||
import com.google.gson.annotations.SerializedName;
 | 
					import com.google.gson.annotations.SerializedName;
 | 
				
			||||||
@ -126,7 +126,7 @@ public class ApiDiscoveryServiceImpl extends ComponentLifecycleBase implements A
 | 
				
			|||||||
            for (ApiParameterResponse param : response.getParams()) {
 | 
					            for (ApiParameterResponse param : response.getParams()) {
 | 
				
			||||||
                if (responseApiNameListMap.containsKey(param.getRelated())) {
 | 
					                if (responseApiNameListMap.containsKey(param.getRelated())) {
 | 
				
			||||||
                    List<String> relatedApis = responseApiNameListMap.get(param.getRelated());
 | 
					                    List<String> relatedApis = responseApiNameListMap.get(param.getRelated());
 | 
				
			||||||
                    param.setRelated(StringUtils.join(relatedApis, ","));
 | 
					                    param.setRelated(StringUtils.defaultString(StringUtils.join(relatedApis, ",")));
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    param.setRelated(null);
 | 
					                    param.setRelated(null);
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
				
			|||||||
@ -26,7 +26,7 @@ import org.apache.cloudstack.api.command.user.vm.ListVMsCmd;
 | 
				
			|||||||
import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
 | 
					import org.apache.cloudstack.api.response.ApiDiscoveryResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.ApiResponseResponse;
 | 
					import org.apache.cloudstack.api.response.ApiResponseResponse;
 | 
				
			||||||
import org.apache.cloudstack.api.response.ListResponse;
 | 
					import org.apache.cloudstack.api.response.ListResponse;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.junit.BeforeClass;
 | 
					import org.junit.BeforeClass;
 | 
				
			||||||
import org.junit.Test;
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -56,7 +56,6 @@ import org.apache.cloudstack.backup.veeam.api.Ref;
 | 
				
			|||||||
import org.apache.cloudstack.backup.veeam.api.RestoreSession;
 | 
					import org.apache.cloudstack.backup.veeam.api.RestoreSession;
 | 
				
			||||||
import org.apache.cloudstack.backup.veeam.api.Task;
 | 
					import org.apache.cloudstack.backup.veeam.api.Task;
 | 
				
			||||||
import org.apache.cloudstack.utils.security.SSLUtils;
 | 
					import org.apache.cloudstack.utils.security.SSLUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					 | 
				
			||||||
import org.apache.http.HttpHeaders;
 | 
					import org.apache.http.HttpHeaders;
 | 
				
			||||||
import org.apache.http.HttpResponse;
 | 
					import org.apache.http.HttpResponse;
 | 
				
			||||||
import org.apache.http.HttpStatus;
 | 
					import org.apache.http.HttpStatus;
 | 
				
			||||||
@ -80,7 +79,7 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
 | 
				
			|||||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
					import com.fasterxml.jackson.databind.ObjectMapper;
 | 
				
			||||||
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 | 
					import com.fasterxml.jackson.dataformat.xml.XmlMapper;
 | 
				
			||||||
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
 | 
					import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class VeeamClient {
 | 
					public class VeeamClient {
 | 
				
			||||||
    private static final Logger LOG = Logger.getLogger(VeeamClient.class);
 | 
					    private static final Logger LOG = Logger.getLogger(VeeamClient.class);
 | 
				
			||||||
@ -138,7 +137,7 @@ public class VeeamClient {
 | 
				
			|||||||
            final HttpResponse response = httpClient.execute(request);
 | 
					            final HttpResponse response = httpClient.execute(request);
 | 
				
			||||||
            checkAuthFailure(response);
 | 
					            checkAuthFailure(response);
 | 
				
			||||||
            veeamSessionId = response.getFirstHeader(SESSION_HEADER).getValue();
 | 
					            veeamSessionId = response.getFirstHeader(SESSION_HEADER).getValue();
 | 
				
			||||||
            if (Strings.isNullOrEmpty(veeamSessionId)) {
 | 
					            if (StringUtils.isEmpty(veeamSessionId)) {
 | 
				
			||||||
                throw new CloudRuntimeException("Veeam Session ID is not available to perform API requests");
 | 
					                throw new CloudRuntimeException("Veeam Session ID is not available to perform API requests");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            if (response.getStatusLine().getStatusCode() != HttpStatus.SC_CREATED) {
 | 
					            if (response.getStatusLine().getStatusCode() != HttpStatus.SC_CREATED) {
 | 
				
			||||||
 | 
				
			|||||||
@ -30,7 +30,7 @@ import javax.net.ssl.X509TrustManager;
 | 
				
			|||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.certificate.dao.CrlDao;
 | 
					import com.cloud.certificate.dao.CrlDao;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public final class RootCACustomTrustManager implements X509TrustManager {
 | 
					public final class RootCACustomTrustManager implements X509TrustManager {
 | 
				
			||||||
    private static final Logger LOG = Logger.getLogger(RootCACustomTrustManager.class);
 | 
					    private static final Logger LOG = Logger.getLogger(RootCACustomTrustManager.class);
 | 
				
			||||||
@ -43,7 +43,7 @@ public final class RootCACustomTrustManager implements X509TrustManager {
 | 
				
			|||||||
    private Map<String, X509Certificate> activeCertMap;
 | 
					    private Map<String, X509Certificate> activeCertMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public RootCACustomTrustManager(final String clientAddress, final boolean authStrictness, final boolean allowExpiredCertificate, final Map<String, X509Certificate> activeCertMap, final X509Certificate caCertificate, final CrlDao crlDao) {
 | 
					    public RootCACustomTrustManager(final String clientAddress, final boolean authStrictness, final boolean allowExpiredCertificate, final Map<String, X509Certificate> activeCertMap, final X509Certificate caCertificate, final CrlDao crlDao) {
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(clientAddress)) {
 | 
					        if (StringUtils.isNotEmpty(clientAddress)) {
 | 
				
			||||||
            this.clientAddress = clientAddress.replace("/", "").split(":")[0];
 | 
					            this.clientAddress = clientAddress.replace("/", "").split(":")[0];
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        this.authStrictness = authStrictness;
 | 
					        this.authStrictness = authStrictness;
 | 
				
			||||||
@ -96,7 +96,7 @@ public final class RootCACustomTrustManager implements X509TrustManager {
 | 
				
			|||||||
            final String errorMsg = String.format("Client is using revoked certificate of serial=%x, subject=%s from address=%s",
 | 
					            final String errorMsg = String.format("Client is using revoked certificate of serial=%x, subject=%s from address=%s",
 | 
				
			||||||
                    primaryClientCertificate.getSerialNumber(), primaryClientCertificate.getSubjectDN(), clientAddress);
 | 
					                    primaryClientCertificate.getSerialNumber(), primaryClientCertificate.getSubjectDN(), clientAddress);
 | 
				
			||||||
            LOG.error(errorMsg);
 | 
					            LOG.error(errorMsg);
 | 
				
			||||||
            exceptionMsg = (Strings.isNullOrEmpty(exceptionMsg)) ? errorMsg : (exceptionMsg + ". " + errorMsg);
 | 
					            exceptionMsg = (StringUtils.isEmpty(exceptionMsg)) ? errorMsg : (exceptionMsg + ". " + errorMsg);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Validity check
 | 
					        // Validity check
 | 
				
			||||||
@ -126,9 +126,9 @@ public final class RootCACustomTrustManager implements X509TrustManager {
 | 
				
			|||||||
        if (!certMatchesOwnership) {
 | 
					        if (!certMatchesOwnership) {
 | 
				
			||||||
            final String errorMsg = "Certificate ownership verification failed for client: " + clientAddress;
 | 
					            final String errorMsg = "Certificate ownership verification failed for client: " + clientAddress;
 | 
				
			||||||
            LOG.error(errorMsg);
 | 
					            LOG.error(errorMsg);
 | 
				
			||||||
            exceptionMsg = (Strings.isNullOrEmpty(exceptionMsg)) ? errorMsg : (exceptionMsg + ". " + errorMsg);
 | 
					            exceptionMsg = (StringUtils.isEmpty(exceptionMsg)) ? errorMsg : (exceptionMsg + ". " + errorMsg);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (authStrictness && !Strings.isNullOrEmpty(exceptionMsg)) {
 | 
					        if (authStrictness && StringUtils.isNotEmpty(exceptionMsg)) {
 | 
				
			||||||
            throw new CertificateException(exceptionMsg);
 | 
					            throw new CertificateException(exceptionMsg);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (LOG.isDebugEnabled()) {
 | 
					        if (LOG.isDebugEnabled()) {
 | 
				
			||||||
@ -139,7 +139,7 @@ public final class RootCACustomTrustManager implements X509TrustManager {
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (primaryClientCertificate != null && activeCertMap != null && !Strings.isNullOrEmpty(clientAddress)) {
 | 
					        if (primaryClientCertificate != null && activeCertMap != null && StringUtils.isNotEmpty(clientAddress)) {
 | 
				
			||||||
            activeCertMap.put(clientAddress, primaryClientCertificate);
 | 
					            activeCertMap.put(clientAddress, primaryClientCertificate);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
@ -75,7 +75,7 @@ import com.cloud.utils.component.AdapterBase;
 | 
				
			|||||||
import com.cloud.utils.db.GlobalLock;
 | 
					import com.cloud.utils.db.GlobalLock;
 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import com.cloud.utils.net.NetUtils;
 | 
					import com.cloud.utils.net.NetUtils;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public final class RootCAProvider extends AdapterBase implements CAProvider, Configurable {
 | 
					public final class RootCAProvider extends AdapterBase implements CAProvider, Configurable {
 | 
				
			||||||
    private static final Logger LOG = Logger.getLogger(RootCAProvider.class);
 | 
					    private static final Logger LOG = Logger.getLogger(RootCAProvider.class);
 | 
				
			||||||
@ -133,7 +133,7 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
 | 
				
			|||||||
    ///////////////////////////////////////////////////////////
 | 
					    ///////////////////////////////////////////////////////////
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private Certificate generateCertificate(final List<String> domainNames, final List<String> ipAddresses, final int validityDays) throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, CertificateException, SignatureException, IOException, OperatorCreationException {
 | 
					    private Certificate generateCertificate(final List<String> domainNames, final List<String> ipAddresses, final int validityDays) throws NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException, CertificateException, SignatureException, IOException, OperatorCreationException {
 | 
				
			||||||
        if (domainNames == null || domainNames.size() < 1 || Strings.isNullOrEmpty(domainNames.get(0))) {
 | 
					        if (domainNames == null || domainNames.size() < 1 || StringUtils.isEmpty(domainNames.get(0))) {
 | 
				
			||||||
            throw new CloudRuntimeException("No domain name is specified, cannot generate certificate");
 | 
					            throw new CloudRuntimeException("No domain name is specified, cannot generate certificate");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        final String subject = "CN=" + domainNames.get(0);
 | 
					        final String subject = "CN=" + domainNames.get(0);
 | 
				
			||||||
@ -335,7 +335,7 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private boolean loadRootCAKeyPair() {
 | 
					    private boolean loadRootCAKeyPair() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(rootCAPublicKey.value()) || Strings.isNullOrEmpty(rootCAPrivateKey.value())) {
 | 
					        if (StringUtils.isAnyEmpty(rootCAPublicKey.value(), rootCAPrivateKey.value())) {
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
@ -348,7 +348,7 @@ public final class RootCAProvider extends AdapterBase implements CAProvider, Con
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private boolean loadRootCACertificate() {
 | 
					    private boolean loadRootCACertificate() {
 | 
				
			||||||
        if (Strings.isNullOrEmpty(rootCACertificate.value())) {
 | 
					        if (StringUtils.isEmpty(rootCACertificate.value())) {
 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
 | 
				
			|||||||
@ -24,7 +24,7 @@ import java.util.Map;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import javax.naming.ConfigurationException;
 | 
					import javax.naming.ConfigurationException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.trilead.ssh2.SCPClient;
 | 
					import com.trilead.ssh2.SCPClient;
 | 
				
			||||||
 | 
				
			|||||||
@ -28,6 +28,7 @@ import java.util.Map;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import javax.naming.ConfigurationException;
 | 
					import javax.naming.ConfigurationException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.trilead.ssh2.SCPClient;
 | 
					import com.trilead.ssh2.SCPClient;
 | 
				
			||||||
@ -233,7 +234,7 @@ public class BaremetalPingPxeResource extends BaremetalPxeResourceBase {
 | 
				
			|||||||
                sb.append(contents);
 | 
					                sb.append(contents);
 | 
				
			||||||
                sb.append(";");
 | 
					                sb.append(";");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            String arg = org.apache.commons.lang.StringUtils.stripEnd(sb.toString(), ";");
 | 
					            String arg = StringUtils.stripEnd(sb.toString(), ";");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            sshConnection.connect(null, 60000, 60000);
 | 
					            sshConnection.connect(null, 60000, 60000);
 | 
				
			||||||
            if (!sshConnection.authenticateWithPassword(_username, _password)) {
 | 
					            if (!sshConnection.authenticateWithPassword(_username, _password)) {
 | 
				
			||||||
 | 
				
			|||||||
@ -26,7 +26,7 @@ import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			|||||||
import com.cloud.utils.xmlobject.XmlObject;
 | 
					import com.cloud.utils.xmlobject.XmlObject;
 | 
				
			||||||
import com.cloud.utils.xmlobject.XmlObjectParser;
 | 
					import com.cloud.utils.xmlobject.XmlObjectParser;
 | 
				
			||||||
import org.apache.commons.codec.binary.Base64;
 | 
					import org.apache.commons.codec.binary.Base64;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.springframework.http.HttpEntity;
 | 
					import org.springframework.http.HttpEntity;
 | 
				
			||||||
import org.springframework.http.HttpHeaders;
 | 
					import org.springframework.http.HttpHeaders;
 | 
				
			||||||
 | 
				
			|||||||
@ -2085,7 +2085,7 @@ public class HypervDirectConnectResource extends ServerResourceBase implements S
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        final String controlIp = getRouterSshControlIp(cmd);
 | 
					        final String controlIp = getRouterSshControlIp(cmd);
 | 
				
			||||||
        final String config = cmd.getConfiguration();
 | 
					        final String config = cmd.getConfiguration();
 | 
				
			||||||
        if (org.apache.commons.lang.StringUtils.isBlank(config)) {
 | 
					        if (org.apache.commons.lang3.StringUtils.isBlank(config)) {
 | 
				
			||||||
            s_logger.error("SetMonitorServiceCommand should have config for this case");
 | 
					            s_logger.error("SetMonitorServiceCommand should have config for this case");
 | 
				
			||||||
            return new Answer(cmd, false, "SetMonitorServiceCommand failed due to missing config");
 | 
					            return new Answer(cmd, false, "SetMonitorServiceCommand failed due to missing config");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -2401,7 +2401,7 @@ public class HypervDirectConnectResource extends ServerResourceBase implements S
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
                final List<String> stringList = new ArrayList<String>();
 | 
					                final List<String> stringList = new ArrayList<String>();
 | 
				
			||||||
                Collections.addAll(stringList, temp);
 | 
					                Collections.addAll(stringList, temp);
 | 
				
			||||||
                cleanLogString = StringUtils.join(stringList, ",");
 | 
					                cleanLogString = org.apache.commons.lang3.StringUtils.join(stringList, ",");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        return cleanLogString;
 | 
					        return cleanLogString;
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,7 @@ package com.cloud.hypervisor.kvm.dpdk;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import com.cloud.utils.component.AdapterBase;
 | 
					import com.cloud.utils.component.AdapterBase;
 | 
				
			||||||
import com.cloud.utils.script.Script;
 | 
					import com.cloud.utils.script.Script;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
				
			|||||||
@ -28,10 +28,9 @@ import java.util.regex.Pattern;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import javax.naming.ConfigurationException;
 | 
					import javax.naming.ConfigurationException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.net.NetUtils;
 | 
					import com.cloud.utils.net.NetUtils;
 | 
				
			||||||
import com.cloud.utils.script.OutputInterpreter;
 | 
					import com.cloud.utils.script.OutputInterpreter;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.libvirt.LibvirtException;
 | 
					import org.libvirt.LibvirtException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -402,7 +401,7 @@ public class BridgeVifDriver extends VifDriverBase {
 | 
				
			|||||||
                    continue;
 | 
					                    continue;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                final String device = tokens[2];
 | 
					                final String device = tokens[2];
 | 
				
			||||||
                if (!Strings.isNullOrEmpty(device) && !device.equalsIgnoreCase(linkLocalBr)) {
 | 
					                if (StringUtils.isNotEmpty(device) && !device.equalsIgnoreCase(linkLocalBr)) {
 | 
				
			||||||
                    Script.runSimpleBashScript("ip route del " + _controlCidr + " dev " + tokens[2]);
 | 
					                    Script.runSimpleBashScript("ip route del " + _controlCidr + " dev " + tokens[2]);
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    foundLinkLocalBr = true;
 | 
					                    foundLinkLocalBr = true;
 | 
				
			||||||
 | 
				
			|||||||
@ -26,7 +26,7 @@ import java.util.regex.Pattern;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import javax.naming.ConfigurationException;
 | 
					import javax.naming.ConfigurationException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.libvirt.LibvirtException;
 | 
					import org.libvirt.LibvirtException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -174,7 +174,6 @@ import com.cloud.utils.ExecutionResult;
 | 
				
			|||||||
import com.cloud.utils.NumbersUtil;
 | 
					import com.cloud.utils.NumbersUtil;
 | 
				
			||||||
import com.cloud.utils.Pair;
 | 
					import com.cloud.utils.Pair;
 | 
				
			||||||
import com.cloud.utils.PropertiesUtil;
 | 
					import com.cloud.utils.PropertiesUtil;
 | 
				
			||||||
import com.cloud.utils.StringUtils;
 | 
					 | 
				
			||||||
import com.cloud.utils.Ternary;
 | 
					import com.cloud.utils.Ternary;
 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import com.cloud.utils.net.NetUtils;
 | 
					import com.cloud.utils.net.NetUtils;
 | 
				
			||||||
@ -185,7 +184,7 @@ import com.cloud.utils.ssh.SshHelper;
 | 
				
			|||||||
import com.cloud.vm.VirtualMachine;
 | 
					import com.cloud.vm.VirtualMachine;
 | 
				
			||||||
import com.cloud.vm.VirtualMachine.PowerState;
 | 
					import com.cloud.vm.VirtualMachine.PowerState;
 | 
				
			||||||
import com.cloud.vm.VmDetailConstants;
 | 
					import com.cloud.vm.VmDetailConstants;
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.cloudstack.utils.bytescale.ByteScaleUtils;
 | 
					import org.apache.cloudstack.utils.bytescale.ByteScaleUtils;
 | 
				
			||||||
import org.libvirt.VcpuInfo;
 | 
					import org.libvirt.VcpuInfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -813,12 +812,12 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        directDownloadTemporaryDownloadPath = (String) params.get("direct.download.temporary.download.location");
 | 
					        directDownloadTemporaryDownloadPath = (String) params.get("direct.download.temporary.download.location");
 | 
				
			||||||
        if (org.apache.commons.lang.StringUtils.isBlank(directDownloadTemporaryDownloadPath)) {
 | 
					        if (StringUtils.isBlank(directDownloadTemporaryDownloadPath)) {
 | 
				
			||||||
            directDownloadTemporaryDownloadPath = getDefaultDirectDownloadTemporaryPath();
 | 
					            directDownloadTemporaryDownloadPath = getDefaultDirectDownloadTemporaryPath();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        cachePath = (String) params.get(HOST_CACHE_PATH_PARAMETER);
 | 
					        cachePath = (String) params.get(HOST_CACHE_PATH_PARAMETER);
 | 
				
			||||||
        if (org.apache.commons.lang.StringUtils.isBlank(cachePath)) {
 | 
					        if (StringUtils.isBlank(cachePath)) {
 | 
				
			||||||
            cachePath = getDefaultCachePath();
 | 
					            cachePath = getDefaultCachePath();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1060,12 +1059,12 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
            _rngEnable = true;
 | 
					            _rngEnable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            value = (String) params.get("vm.rng.model");
 | 
					            value = (String) params.get("vm.rng.model");
 | 
				
			||||||
            if (!Strings.isNullOrEmpty(value)) {
 | 
					            if (StringUtils.isNotEmpty(value)) {
 | 
				
			||||||
                _rngBackendModel = RngBackendModel.valueOf(value.toUpperCase());
 | 
					                _rngBackendModel = RngBackendModel.valueOf(value.toUpperCase());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            value = (String) params.get("vm.rng.path");
 | 
					            value = (String) params.get("vm.rng.path");
 | 
				
			||||||
            if (!Strings.isNullOrEmpty(value)) {
 | 
					            if (StringUtils.isNotEmpty(value)) {
 | 
				
			||||||
                _rngPath = value;
 | 
					                _rngPath = value;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1077,12 +1076,12 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        value = (String) params.get("vm.watchdog.model");
 | 
					        value = (String) params.get("vm.watchdog.model");
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(value)) {
 | 
					        if (StringUtils.isNotEmpty(value)) {
 | 
				
			||||||
            _watchDogModel = WatchDogModel.valueOf(value.toUpperCase());
 | 
					            _watchDogModel = WatchDogModel.valueOf(value.toUpperCase());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        value = (String) params.get("vm.watchdog.action");
 | 
					        value = (String) params.get("vm.watchdog.action");
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(value)) {
 | 
					        if (StringUtils.isNotEmpty(value)) {
 | 
				
			||||||
            _watchDogAction = WatchDogAction.valueOf(value.toUpperCase());
 | 
					            _watchDogAction = WatchDogAction.valueOf(value.toUpperCase());
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1133,7 +1132,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        final String cpuArchOverride = (String)params.get("guest.cpu.arch");
 | 
					        final String cpuArchOverride = (String)params.get("guest.cpu.arch");
 | 
				
			||||||
        if (!Strings.isNullOrEmpty(cpuArchOverride)) {
 | 
					        if (StringUtils.isNotEmpty(cpuArchOverride)) {
 | 
				
			||||||
            _guestCpuArch = cpuArchOverride;
 | 
					            _guestCpuArch = cpuArchOverride;
 | 
				
			||||||
            s_logger.info("Using guest CPU architecture: " + _guestCpuArch);
 | 
					            s_logger.info("Using guest CPU architecture: " + _guestCpuArch);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -2127,7 +2126,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
                nicNum = macAddressToNicNum.get(ip.getVifMacAddress());
 | 
					                nicNum = macAddressToNicNum.get(ip.getVifMacAddress());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (org.apache.commons.lang.StringUtils.equalsIgnoreCase(lastIp, "true") && !ip.isAdd()) {
 | 
					                if (StringUtils.equalsIgnoreCase(lastIp, "true") && !ip.isAdd()) {
 | 
				
			||||||
                    // in isolated network eth2 is the default public interface. We don't want to delete it.
 | 
					                    // in isolated network eth2 is the default public interface. We don't want to delete it.
 | 
				
			||||||
                    if (nicNum != 2) {
 | 
					                    if (nicNum != 2) {
 | 
				
			||||||
                        vifHotUnPlug(conn, routerName, ip.getVifMacAddress());
 | 
					                        vifHotUnPlug(conn, routerName, ip.getVifMacAddress());
 | 
				
			||||||
@ -2514,7 +2513,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    protected ClockDef createClockDef(final VirtualMachineTO vmTO) {
 | 
					    protected ClockDef createClockDef(final VirtualMachineTO vmTO) {
 | 
				
			||||||
        ClockDef clock = new ClockDef();
 | 
					        ClockDef clock = new ClockDef();
 | 
				
			||||||
        if (org.apache.commons.lang.StringUtils.startsWith(vmTO.getOs(), WINDOWS)) {
 | 
					        if (StringUtils.startsWith(vmTO.getOs(), WINDOWS)) {
 | 
				
			||||||
            clock.setClockOffset(ClockDef.ClockOffset.LOCALTIME);
 | 
					            clock.setClockOffset(ClockDef.ClockOffset.LOCALTIME);
 | 
				
			||||||
            clock.setTimer(HYPERVCLOCK, null, null);
 | 
					            clock.setTimer(HYPERVCLOCK, null, null);
 | 
				
			||||||
        } else if ((vmTO.getType() != VirtualMachine.Type.User || isGuestPVEnabled(vmTO.getOs())) && _hypervisorLibvirtVersion >= MIN_LIBVIRT_VERSION_FOR_GUEST_CPU_MODE) {
 | 
					        } else if ((vmTO.getType() != VirtualMachine.Type.User || isGuestPVEnabled(vmTO.getOs())) && _hypervisorLibvirtVersion >= MIN_LIBVIRT_VERSION_FOR_GUEST_CPU_MODE) {
 | 
				
			||||||
@ -2690,7 +2689,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            String comp = extraConfigBuilder.toString();
 | 
					            String comp = extraConfigBuilder.toString();
 | 
				
			||||||
            if (org.apache.commons.lang.StringUtils.isNotBlank(comp)) {
 | 
					            if (StringUtils.isNotBlank(comp)) {
 | 
				
			||||||
                vm.addComp(comp);
 | 
					                vm.addComp(comp);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -3759,10 +3758,10 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
        } else if (platformEmulator.startsWith("Other PV Virtio-SCSI")) {
 | 
					        } else if (platformEmulator.startsWith("Other PV Virtio-SCSI")) {
 | 
				
			||||||
            return DiskDef.DiskBus.SCSI;
 | 
					            return DiskDef.DiskBus.SCSI;
 | 
				
			||||||
        } else if (platformEmulator.contains("Ubuntu") ||
 | 
					        } else if (platformEmulator.contains("Ubuntu") ||
 | 
				
			||||||
                org.apache.commons.lang3.StringUtils.startsWithAny(platformEmulator,
 | 
					                StringUtils.startsWithAny(platformEmulator,
 | 
				
			||||||
                        "Fedora", "CentOS", "Red Hat Enterprise Linux", "Debian GNU/Linux", "FreeBSD", "Oracle", "Other PV")) {
 | 
					                        "Fedora", "CentOS", "Red Hat Enterprise Linux", "Debian GNU/Linux", "FreeBSD", "Oracle", "Other PV")) {
 | 
				
			||||||
            return DiskDef.DiskBus.VIRTIO;
 | 
					            return DiskDef.DiskBus.VIRTIO;
 | 
				
			||||||
        } else if (isUefiEnabled && org.apache.commons.lang3.StringUtils.startsWithAny(platformEmulator, "Windows", "Other")) {
 | 
					        } else if (isUefiEnabled && StringUtils.startsWithAny(platformEmulator, "Windows", "Other")) {
 | 
				
			||||||
            return DiskDef.DiskBus.SATA;
 | 
					            return DiskDef.DiskBus.SATA;
 | 
				
			||||||
        } else {
 | 
					        } else {
 | 
				
			||||||
            return DiskDef.DiskBus.IDE;
 | 
					            return DiskDef.DiskBus.IDE;
 | 
				
			||||||
@ -4483,7 +4482,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getVlanIdFromBridgeName(String brName) {
 | 
					    public String getVlanIdFromBridgeName(String brName) {
 | 
				
			||||||
        if (org.apache.commons.lang.StringUtils.isNotBlank(brName)) {
 | 
					        if (StringUtils.isNotBlank(brName)) {
 | 
				
			||||||
            String[] s = brName.split("-");
 | 
					            String[] s = brName.split("-");
 | 
				
			||||||
            if (s.length > 1) {
 | 
					            if (s.length > 1) {
 | 
				
			||||||
                return s[1];
 | 
					                return s[1];
 | 
				
			||||||
@ -4590,8 +4589,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
 | 
				
			|||||||
            Map<String, String> info = qemu.info(file);
 | 
					            Map<String, String> info = qemu.info(file);
 | 
				
			||||||
            String backingFilePath = info.get(QemuImg.BACKING_FILE);
 | 
					            String backingFilePath = info.get(QemuImg.BACKING_FILE);
 | 
				
			||||||
            String backingFileFormat = info.get(QemuImg.BACKING_FILE_FORMAT);
 | 
					            String backingFileFormat = info.get(QemuImg.BACKING_FILE_FORMAT);
 | 
				
			||||||
            if (org.apache.commons.lang.StringUtils.isNotBlank(backingFilePath)
 | 
					            if (StringUtils.isNotBlank(backingFilePath) && StringUtils.isBlank(backingFileFormat)) {
 | 
				
			||||||
                    && org.apache.commons.lang.StringUtils.isBlank(backingFileFormat)) {
 | 
					 | 
				
			||||||
                // VMs which are created in CloudStack 4.14 and before cannot be started or migrated
 | 
					                // VMs which are created in CloudStack 4.14 and before cannot be started or migrated
 | 
				
			||||||
                // in latest Linux distributions due to missing backing file format
 | 
					                // in latest Linux distributions due to missing backing file format
 | 
				
			||||||
                // Please refer to https://libvirt.org/kbase/backing_chains.html#vm-refuses-to-start-due-to-misconfigured-backing-store-format
 | 
					                // Please refer to https://libvirt.org/kbase/backing_chains.html#vm-refuses-to-start-due-to-misconfigured-backing-store-format
 | 
				
			||||||
 | 
				
			|||||||
@ -26,7 +26,7 @@ import javax.xml.parsers.DocumentBuilder;
 | 
				
			|||||||
import javax.xml.parsers.DocumentBuilderFactory;
 | 
					import javax.xml.parsers.DocumentBuilderFactory;
 | 
				
			||||||
import javax.xml.parsers.ParserConfigurationException;
 | 
					import javax.xml.parsers.ParserConfigurationException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.w3c.dom.Document;
 | 
					import org.w3c.dom.Document;
 | 
				
			||||||
import org.w3c.dom.Element;
 | 
					import org.w3c.dom.Element;
 | 
				
			||||||
@ -35,8 +35,6 @@ import org.w3c.dom.NodeList;
 | 
				
			|||||||
import org.xml.sax.InputSource;
 | 
					import org.xml.sax.InputSource;
 | 
				
			||||||
import org.xml.sax.SAXException;
 | 
					import org.xml.sax.SAXException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.google.common.base.Strings;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ChannelDef;
 | 
					import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.ChannelDef;
 | 
				
			||||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
 | 
					import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.DiskDef;
 | 
				
			||||||
import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef;
 | 
					import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef;
 | 
				
			||||||
@ -254,7 +252,7 @@ public class LibvirtDomainXMLParser {
 | 
				
			|||||||
                String state = getAttrValue("target", "state", channel);
 | 
					                String state = getAttrValue("target", "state", channel);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                ChannelDef def = null;
 | 
					                ChannelDef def = null;
 | 
				
			||||||
                if (!StringUtils.isNotBlank(state)) {
 | 
					                if (StringUtils.isBlank(state)) {
 | 
				
			||||||
                    def = new ChannelDef(name, ChannelDef.ChannelType.valueOf(type.toUpperCase()), new File(path));
 | 
					                    def = new ChannelDef(name, ChannelDef.ChannelType.valueOf(type.toUpperCase()), new File(path));
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    def = new ChannelDef(name, ChannelDef.ChannelType.valueOf(type.toUpperCase()),
 | 
					                    def = new ChannelDef(name, ChannelDef.ChannelType.valueOf(type.toUpperCase()),
 | 
				
			||||||
@ -291,7 +289,7 @@ public class LibvirtDomainXMLParser {
 | 
				
			|||||||
                String bytes = getAttrValue("rate", "bytes", rng);
 | 
					                String bytes = getAttrValue("rate", "bytes", rng);
 | 
				
			||||||
                String period = getAttrValue("rate", "period", rng);
 | 
					                String period = getAttrValue("rate", "period", rng);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (Strings.isNullOrEmpty(backendModel)) {
 | 
					                if (StringUtils.isEmpty(backendModel)) {
 | 
				
			||||||
                    def = new RngDef(path, Integer.parseInt(bytes), Integer.parseInt(period));
 | 
					                    def = new RngDef(path, Integer.parseInt(bytes), Integer.parseInt(period));
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    def = new RngDef(path, RngBackendModel.valueOf(backendModel.toUpperCase()),
 | 
					                    def = new RngDef(path, RngBackendModel.valueOf(backendModel.toUpperCase()),
 | 
				
			||||||
@ -308,11 +306,11 @@ public class LibvirtDomainXMLParser {
 | 
				
			|||||||
                String action = watchDog.getAttribute("action");
 | 
					                String action = watchDog.getAttribute("action");
 | 
				
			||||||
                String model = watchDog.getAttribute("model");
 | 
					                String model = watchDog.getAttribute("model");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (Strings.isNullOrEmpty(model)) {
 | 
					                if (StringUtils.isEmpty(model)) {
 | 
				
			||||||
                   continue;
 | 
					                   continue;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (Strings.isNullOrEmpty(action)) {
 | 
					                if (StringUtils.isEmpty(action)) {
 | 
				
			||||||
                    def = new WatchDogDef(WatchDogModel.valueOf(model.toUpperCase()));
 | 
					                    def = new WatchDogDef(WatchDogModel.valueOf(model.toUpperCase()));
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
                    def = new WatchDogDef(WatchDogAction.valueOf(action.toUpperCase()),
 | 
					                    def = new WatchDogDef(WatchDogAction.valueOf(action.toUpperCase()),
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,7 @@ import javax.xml.parsers.DocumentBuilder;
 | 
				
			|||||||
import javax.xml.parsers.DocumentBuilderFactory;
 | 
					import javax.xml.parsers.DocumentBuilderFactory;
 | 
				
			||||||
import javax.xml.parsers.ParserConfigurationException;
 | 
					import javax.xml.parsers.ParserConfigurationException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.w3c.dom.Document;
 | 
					import org.w3c.dom.Document;
 | 
				
			||||||
import org.w3c.dom.Element;
 | 
					import org.w3c.dom.Element;
 | 
				
			||||||
 | 
				
			|||||||
@ -23,7 +23,7 @@ import java.util.List;
 | 
				
			|||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.commons.lang.StringEscapeUtils;
 | 
					import org.apache.commons.lang.StringEscapeUtils;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class LibvirtVMDef {
 | 
					public class LibvirtVMDef {
 | 
				
			||||||
 | 
				
			|||||||
@ -28,7 +28,7 @@ import com.cloud.hypervisor.kvm.dpdk.DpdkDriver;
 | 
				
			|||||||
import com.cloud.hypervisor.kvm.dpdk.DpdkDriverImpl;
 | 
					import com.cloud.hypervisor.kvm.dpdk.DpdkDriverImpl;
 | 
				
			||||||
import com.cloud.hypervisor.kvm.dpdk.DpdkHelper;
 | 
					import com.cloud.hypervisor.kvm.dpdk.DpdkHelper;
 | 
				
			||||||
import com.cloud.utils.exception.CloudRuntimeException;
 | 
					import com.cloud.utils.exception.CloudRuntimeException;
 | 
				
			||||||
import org.apache.commons.lang.StringUtils;
 | 
					import org.apache.commons.lang3.StringUtils;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
import org.libvirt.LibvirtException;
 | 
					import org.libvirt.LibvirtException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -64,7 +64,7 @@ public class OvsVifDriver extends VifDriverBase {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String controlCidr = (String)params.get("control.cidr");
 | 
					        String controlCidr = (String)params.get("control.cidr");
 | 
				
			||||||
        if (com.cloud.utils.StringUtils.isNotBlank(controlCidr)) {
 | 
					        if (StringUtils.isNotBlank(controlCidr)) {
 | 
				
			||||||
            _controlCidr = controlCidr;
 | 
					            _controlCidr = controlCidr;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user