diff options
Diffstat (limited to 'appc-adapters/appc-iaas-adapter')
3 files changed, 98 insertions, 95 deletions
diff --git a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/impl/ProviderAdapterImpl.java b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/impl/ProviderAdapterImpl.java index e9e6309c9..6d0f0a0de 100644 --- a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/impl/ProviderAdapterImpl.java +++ b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/impl/ProviderAdapterImpl.java @@ -113,7 +113,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server restartServer(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.RESTART_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Server) op.doOperation(params, context); @@ -122,7 +122,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server stopServer(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.STOP_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Server) op.doOperation(params, context); @@ -131,7 +131,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server startServer(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.START_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Server) op.doOperation(params, context); @@ -140,7 +140,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server rebuildServer(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.REBUILD_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Server) op.doOperation(params, context); @@ -149,7 +149,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server terminateServer(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.TERMINATE_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Server) op.doOperation(params, context); @@ -158,7 +158,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server evacuateServer(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.EVACUATE_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); // pass this object's reference to EvacuateServer to allow rebuild after evacuate @@ -169,7 +169,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server migrateServer(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.MIGRATE_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Server) op.doOperation(params, context); @@ -178,7 +178,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server vmStatuschecker(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.VMSTATUSCHECK_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Server) op.doOperation(params, context); @@ -187,7 +187,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Stack terminateStack(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.TERMINATE_STACK); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Stack) op.doOperation(params, context); @@ -196,7 +196,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Stack snapshotStack(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.SNAPSHOT_STACK); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Stack) op.doOperation(params, context); @@ -205,7 +205,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Stack restoreStack(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.RESTORE_STACK); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Stack) op.doOperation(params, context); @@ -214,7 +214,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server lookupServer(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.LOOKUP_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Server) op.doOperation(params, context); @@ -223,7 +223,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Image createSnapshot(Map<String, String> params, SvcLogicContext context) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.SNAPSHOT_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); op.setDefaultDomain(DEFAULT_DOMAIN); return (Image) op.doOperation(params, context); @@ -316,7 +316,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { // TODO Auto-generated method stub IProviderOperation op = factory.getOperationObject(Operation.ATTACHVOLUME_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); return (Server) op.doOperation(params, ctx); } @@ -324,7 +324,7 @@ public class ProviderAdapterImpl implements ProviderAdapter { public Server dettachVolume(Map<String, String> params, SvcLogicContext ctx) throws APPCException { IProviderOperation op = factory.getOperationObject(Operation.DETACHVOLUME_SERVICE); op.setProviderCache(this.providerCache); - op.setDefaultPass(DEFAULT_PASS); + op.setDefaultPassword(DEFAULT_PASS); op.setDefaultUser(DEFAULT_USER); return (Server) op.doOperation(params, ctx); } diff --git a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/api/IProviderOperation.java b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/api/IProviderOperation.java index 3417762d1..41e7bd0a4 100644 --- a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/api/IProviderOperation.java +++ b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/api/IProviderOperation.java @@ -68,7 +68,7 @@ public interface IProviderOperation { /** * should be initialized by user * - * @param defaultPass + * @param defaultPassword */ - void setDefaultPass(String defaultPass); + void setDefaultPassword(String defaultPassword); } diff --git a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/impl/base/ProviderOperation.java b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/impl/base/ProviderOperation.java index 2b50dbe8a..2a48e27b6 100644 --- a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/impl/base/ProviderOperation.java +++ b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/provider/operation/impl/base/ProviderOperation.java @@ -24,8 +24,30 @@ package org.onap.appc.adapter.iaas.provider.operation.impl.base; +import static com.att.eelf.configuration.Configuration.MDC_SERVICE_NAME; +import static org.onap.appc.adapter.iaas.provider.operation.common.constants.Constants.MDC_ADAPTER; +import static org.onap.appc.adapter.iaas.provider.operation.common.constants.Constants.MDC_SERVICE; + +import com.att.cdp.exceptions.ZoneException; +import com.att.cdp.zones.Context; +import com.att.cdp.zones.model.ModelObject; +import com.att.cdp.zones.model.Server; +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import com.att.eelf.i18n.EELFResourceManager; +import java.net.URI; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.regex.Pattern; +import org.glassfish.grizzly.http.util.HttpStatus; import org.onap.appc.adapter.iaas.ProviderAdapter; -import org.onap.appc.adapter.iaas.impl.*; +import org.onap.appc.adapter.iaas.impl.IdentityURL; +import org.onap.appc.adapter.iaas.impl.ProviderCache; +import org.onap.appc.adapter.iaas.impl.RequestContext; +import org.onap.appc.adapter.iaas.impl.RequestFailedException; +import org.onap.appc.adapter.iaas.impl.TenantCache; +import org.onap.appc.adapter.iaas.impl.VMURL; import org.onap.appc.adapter.iaas.provider.operation.api.IProviderOperation; import org.onap.appc.adapter.iaas.provider.operation.common.constants.Constants; import org.onap.appc.adapter.iaas.provider.operation.common.enums.Outcome; @@ -35,65 +57,49 @@ import org.onap.appc.exceptions.APPCException; import org.onap.appc.i18n.Msg; import org.onap.appc.pool.Pool; import org.onap.appc.pool.PoolExtensionException; -import com.att.cdp.zones.Context; -import com.att.cdp.zones.model.ModelObject; -import com.att.cdp.zones.model.Server; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.att.eelf.i18n.EELFResourceManager; import org.onap.ccsdk.sli.core.sli.SvcLogicContext; -import org.glassfish.grizzly.http.util.HttpStatus; import org.slf4j.MDC; -import java.net.URI; -import java.util.Map; -import java.util.Set; -import java.util.regex.Pattern; -import static org.onap.appc.adapter.iaas.provider.operation.common.constants.Constants.MDC_ADAPTER; -import static org.onap.appc.adapter.iaas.provider.operation.common.constants.Constants.MDC_SERVICE; -import static com.att.eelf.configuration.Configuration.MDC_SERVICE_NAME; public abstract class ProviderOperation implements IProviderOperation { private static final EELFLogger logger = EELFManager.getInstance().getLogger(ProviderOperation.class); protected static final Configuration configuration = ConfigurationFactory.getConfiguration(); - public void setProviderCache(Map<String, ProviderCache> providerCache) { - this.providerCache = providerCache; - } /** * A cache of providers that are predefined. */ private Map<String /* provider name */, ProviderCache> providerCache; + /** + * The username and password to use for dynamically created connections + */ + private String defaultUser; + private String defaultPassword; + private String defaultDomain; + @Override public void setDefaultUser(String defaultUser) { - DEFAULT_USER = defaultUser; + this.defaultUser = defaultUser; } - public void setDefaultPass(String defaultPass) { - DEFAULT_PASS = defaultPass; + @Override + public void setDefaultPassword(String defaultPassword) { + this.defaultPassword = defaultPassword; } @Override - public void setDefaultDomain(String defaultDomain) { - DEFAULT_DOMAIN = defaultDomain; + public void setProviderCache(Map<String, ProviderCache> providerCache) { + this.providerCache = providerCache; } - /** - * The username and password to use for dynamically created connections - */ - private static String DEFAULT_USER; - private static String DEFAULT_PASS; - private static String DEFAULT_DOMAIN; - + @Override + public void setDefaultDomain(String defaultDomain) { + this.defaultDomain = defaultDomain; + } /** * set MDC props - * - * @param service - * @param serviceName - * @param adapterName */ protected void setMDC(String service, String serviceName, String adapterName) { MDC.put(MDC_ADAPTER, adapterName); @@ -103,10 +109,6 @@ public abstract class ProviderOperation implements IProviderOperation { /** * initial log of the operation - * - * @param msg - * @param params - * @param context */ protected void logOperation(Msg msg, Map<String, String> params, SvcLogicContext context) { @@ -123,8 +125,8 @@ public abstract class ProviderOperation implements IProviderOperation { * @param parameters The parameters to be printed to the log */ private void debugParameters(Map<String, String> parameters) { - for (String key : parameters.keySet()) { - logger.debug(Msg.PROPERTY_VALUE, key, parameters.get(key)); + for (Entry<String, String> entry : parameters.entrySet()) { + logger.debug(Msg.PROPERTY_VALUE, entry.getKey(), entry.getValue()); } } @@ -175,10 +177,10 @@ public abstract class ProviderOperation implements IProviderOperation { * @throws RequestFailedException If the parameters are not valid */ protected void validateParametersExist(Map<String, String> parameters, String... propertyNames) - throws RequestFailedException { + throws RequestFailedException { boolean success = true; StringBuilder msg = - new StringBuilder(EELFResourceManager.format(Msg.MISSING_REQUIRED_PROPERTIES, MDC.get(MDC_SERVICE))); + new StringBuilder(EELFResourceManager.format(Msg.MISSING_REQUIRED_PROPERTIES, MDC.get(MDC_SERVICE))); msg.append(Constants.NL); for (String propertyName : propertyNames) { String value = parameters.get(propertyName); @@ -194,40 +196,41 @@ public abstract class ProviderOperation implements IProviderOperation { if (!success) { logger.error(msg.toString()); throw new RequestFailedException("Check Parameters", msg.toString(), HttpStatus.BAD_REQUEST_400, - (Server) null); + (Server) null); } } /** * @param rc The request context that manages the state and recovery of the request for the life of its processing. - * @param code - * @param message */ protected void doFailure(RequestContext rc, HttpStatus code, String message) { try { doFailure(rc, code, message, null); - } catch (APPCException ignored) { - /* never happens */} + } catch (APPCException e) { + logger.error("An APPC exception caught. Should never happen", e); + } } protected void doFailure(RequestContext rc, HttpStatus code, String message, Throwable cause) throws APPCException { SvcLogicContext svcLogic = rc.getSvcLogicContext(); String msg = (message == null) ? code.getReasonPhrase() : message; if (msg.contains("\n")) { - msg = msg.substring(0, msg.indexOf("\n")); + msg = msg.substring(0, msg.indexOf('\n')); } String status; try { status = Integer.toString(code.getStatusCode()); } catch (Exception e) { + logger.error("Error when parsing status code", e); status = "500"; } svcLogic.setStatus(Outcome.FAILURE.toString()); svcLogic.setAttribute(org.onap.appc.Constants.ATTRIBUTE_ERROR_CODE, status); svcLogic.setAttribute(org.onap.appc.Constants.ATTRIBUTE_ERROR_MESSAGE, msg); - if (null != cause) + if (null != cause) { throw new APPCException(cause); + } } /** @@ -238,14 +241,14 @@ public abstract class ProviderOperation implements IProviderOperation { SvcLogicContext svcLogic = rc.getSvcLogicContext(); svcLogic.setStatus(Outcome.SUCCESS.toString()); svcLogic.setAttribute(org.onap.appc.Constants.ATTRIBUTE_ERROR_CODE, - Integer.toString(HttpStatus.OK_200.getStatusCode())); + Integer.toString(HttpStatus.OK_200.getStatusCode())); } - protected boolean validateVM(RequestContext rc, String appName, String vm_url, VMURL vm) - throws RequestFailedException { + protected boolean validateVM(RequestContext rc, String appName, String vmUrl, VMURL vm) + throws RequestFailedException { String msg; if (vm == null) { - msg = EELFResourceManager.format(Msg.INVALID_SELF_LINK_URL, appName, vm_url); + msg = EELFResourceManager.format(Msg.INVALID_SELF_LINK_URL, appName, vmUrl); logger.error(msg); doFailure(rc, HttpStatus.INTERNAL_SERVER_ERROR_500, msg); return true; @@ -267,8 +270,9 @@ public abstract class ProviderOperation implements IProviderOperation { // noinspection ResultOfMethodCallIgnored URI.create(vm.toString()); } catch (Exception e) { + logger.error("An error occurred when validating vm url", e); throw new RequestFailedException( - String.format("The value %s is not well formed [%s].", name, vm.toString())); + String.format("The value %s is not well formed [%s].", name, vm.toString())); } // Check the tenant and vmid segments @@ -277,11 +281,11 @@ public abstract class ProviderOperation implements IProviderOperation { if (!pattern.matcher(vm.getTenantId()).matches()) { throw new RequestFailedException( - String.format("The value %s has an invalid tenantId [%s].", name, vm.getTenantId())); + String.format("The value %s has an invalid tenantId [%s].", name, vm.getTenantId())); } if (!pattern.matcher(vm.getServerId()).matches()) { throw new RequestFailedException( - String.format("The value %s has an invalid serverId [%s].", name, vm.getServerId())); + String.format("The value %s has an invalid serverId [%s].", name, vm.getServerId())); } } @@ -291,9 +295,8 @@ public abstract class ProviderOperation implements IProviderOperation { cache.setIdentityURL(ident.toString()); cache.setProviderName(ident.toString()); - // cache.setProviderType("OpenStack"); - TenantCache tenant = cache.addTenant(vm.getTenantId(), null, DEFAULT_USER, DEFAULT_PASS, DEFAULT_DOMAIN); + TenantCache tenant = cache.addTenant(vm.getTenantId(), null, defaultUser, defaultPassword, defaultDomain); // Make sure we could initialize the the cache otherwise return null if (tenant != null && tenant.isInitialized()) { @@ -343,7 +346,7 @@ public abstract class ProviderOperation implements IProviderOperation { providerCache.put(cache.getProviderName(), cache); } else { String msg = EELFResourceManager.format(Msg.UNKNOWN_PROVIDER, providerName, - providerCache.keySet().toString()); + providerCache.keySet().toString()); logger.error(msg); doFailure(rc, HttpStatus.INTERNAL_SERVER_ERROR_500, msg); return null; @@ -352,8 +355,8 @@ public abstract class ProviderOperation implements IProviderOperation { if (providerName == null) { logger.debug( - String.format("Using the default provider cache [%s] since no valid identity url was passed in.", - cache.getIdentityURL())); + String.format("Using the default provider cache [%s] since no valid identity url was passed in.", + cache.getIdentityURL())); } // get the tenant cache for the vm @@ -362,8 +365,7 @@ public abstract class ProviderOperation implements IProviderOperation { if (tenantCache == null) { // no tenantCache matching tenant, add tenant to the provider cache - tenantCache = cache.addTenant(vm.getTenantId(), null, DEFAULT_USER, DEFAULT_PASS, DEFAULT_DOMAIN); - + tenantCache = cache.addTenant(vm.getTenantId(), null, defaultUser, defaultPassword, defaultDomain); if (tenantCache == null) { // tenant not found String msg = EELFResourceManager.format(Msg.SERVER_NOT_FOUND, selfLinkURL); @@ -384,24 +386,21 @@ public abstract class ProviderOperation implements IProviderOperation { while (rc.attempt()) { try { Context context = pool.reserve(); - /* * Insert logic here to test the context for connectivity because we may have gotten one from the * pool that was previously created. */ - if (context.isStale()) { - context.relogin(); - } + reloginIfNeeded(context); return context; } catch (PoolExtensionException e) { String msg = EELFResourceManager.format(Msg.CONNECTION_FAILED_RETRY, providerName, identityURL, - tenantName, tenantId, e.getMessage(), Long.toString(rc.getRetryDelay()), - Integer.toString(rc.getAttempts()), Integer.toString(rc.getRetryLimit())); + tenantName, tenantId, e.getMessage(), Long.toString(rc.getRetryDelay()), + Integer.toString(rc.getAttempts()), Integer.toString(rc.getRetryLimit())); logger.error(msg, e); rc.delay(); } catch (Exception e) { String msg = EELFResourceManager.format(Msg.SERVER_OPERATION_EXCEPTION, e, - e.getClass().getSimpleName(), "find", selfLinkURL, tenantCache.getTenantName()); + e.getClass().getSimpleName(), "find", selfLinkURL, tenantCache.getTenantName()); logger.error(msg, e); doFailure(rc, HttpStatus.INTERNAL_SERVER_ERROR_500, msg); @@ -415,19 +414,24 @@ public abstract class ProviderOperation implements IProviderOperation { return null; } - String msg = EELFResourceManager.format(Msg.SERVER_NOT_FOUND, selfLinkURL); logger.error(msg); doFailure(rc, HttpStatus.NOT_FOUND_404, msg); return null; } - protected Context resolveContext(RequestContext rc, Map<String, String> params, String appName, String vm_url) - throws RequestFailedException { + private void reloginIfNeeded(Context context) throws ZoneException { + if (context.isStale()) { + context.relogin(); + } + } + + protected Context resolveContext(RequestContext rc, Map<String, String> params, String appName, String vmUrl) + throws RequestFailedException { - VMURL vm = VMURL.parseURL(vm_url); + VMURL vm = VMURL.parseURL(vmUrl); if (vm == null) { - String msg = EELFResourceManager.format(Msg.INVALID_SELF_LINK_URL, appName, vm_url); + String msg = EELFResourceManager.format(Msg.INVALID_SELF_LINK_URL, appName, vmUrl); doFailure(rc, HttpStatus.INTERNAL_SERVER_ERROR_500, msg); logger.error(msg); return null; @@ -436,14 +440,13 @@ public abstract class ProviderOperation implements IProviderOperation { IdentityURL ident = IdentityURL.parseURL(params.get(ProviderAdapter.PROPERTY_IDENTITY_URL)); String identStr = (ident == null) ? null : ident.toString(); - return getContext(rc, vm_url, identStr); + return getContext(rc, vmUrl, identStr); } - protected abstract ModelObject executeProviderOperation(Map<String, String> params, SvcLogicContext context) - throws APPCException; + throws APPCException; @Override public ModelObject doOperation(Map<String, String> params, SvcLogicContext context) throws APPCException { |