import org.onap.appc.adapter.openstack.heat.model.Snapshot;
import org.onap.appc.exceptions.APPCException;
import org.onap.appc.i18n.Msg;
+import org.onap.appc.logging.LoggingConstants;
+import org.onap.appc.logging.LoggingUtils;
import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
import org.slf4j.MDC;
import java.text.DateFormat;
private static final EELFLogger logger = EELFManager.getInstance().getLogger(SnapshotStack.class);
private static EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
-
private Snapshot snapshotStack(@SuppressWarnings("unused") RequestContext rc, Stack stack)
throws ZoneException, RequestFailedException {
Snapshot snapshot = new Snapshot();
Context context = stack.getContext();
-
OpenStackContext osContext = (OpenStackContext) context;
-
final HeatConnector heatConnector = osContext.getHeatConnector();
((OpenStackContext) context).refreshIfStale(heatConnector);
-
trackRequest(context);
RequestState.put("SERVICE", "Orchestration");
RequestState.put("SERVICE_URL", heatConnector.getEndpoint());
-
Heat heat = heatConnector.getClient();
-
SnapshotResource snapshotResource = new SnapshotResource(heat);
-
setTimeForMetricsLogger();
-
try {
-
snapshot = snapshotResource.create(stack.getName(), stack.getId(), new CreateSnapshotParams()).execute();
-
// wait for the stack deletion
StackResource stackResource = new StackResource(heat);
if (!waitForStack(stack, stackResource, "SNAPSHOT_COMPLETE")) {
throw new RequestFailedException("Stack Snapshot failed.");
}
-
} catch (OpenStackBaseException e) {
ExceptionMapper.mapException(e);
}
-
return snapshot;
}
RequestContext rc = new RequestContext(ctx);
rc.isAlive();
ctx.setAttribute("SNAPSHOT_STATUS", "STACK_NOT_FOUND");
-
setTimeForMetricsLogger();
-
String vm_url = null;
Context context = null;
- String tenantName = "Unknown";//to be used also in case of exception
+ String tenantName = "Unknown";// to be used also in case of exception
try {
validateParametersExist(params, ProviderAdapter.PROPERTY_INSTANCE_URL,
ProviderAdapter.PROPERTY_PROVIDER_NAME, ProviderAdapter.PROPERTY_STACK_ID);
-
String stackId = params.get(ProviderAdapter.PROPERTY_STACK_ID);
String appName = configuration.getProperty(Constants.PROPERTY_APPLICATION_NAME);
vm_url = params.get(ProviderAdapter.PROPERTY_INSTANCE_URL);
context = resolveContext(rc, params, appName, vm_url);
-
if (context != null) {
- tenantName = context.getTenantName();//this varaible also is used in case of exception
+ tenantName = context.getTenantName();// this varaible also is used in case of exception
stack = lookupStack(rc, context, stackId);
logger.debug(Msg.STACK_FOUND, vm_url, tenantName, stack.getStatus().toString());
logger.info(EELFResourceManager.format(Msg.SNAPSHOTING_STACK, stack.getName()));
metricsLogger.info(EELFResourceManager.format(Msg.SNAPSHOTING_STACK, stack.getName()));
-
Snapshot snapshot = snapshotStack(rc, stack);
-
ctx.setAttribute(ProviderAdapter.DG_OUTPUT_PARAM_NAMESPACE + ProviderAdapter.PROPERTY_SNAPSHOT_ID,
snapshot.getId());
-
logger.info(EELFResourceManager.format(Msg.STACK_SNAPSHOTED, stack.getName(), snapshot.getId()));
metricsLogger.info(EELFResourceManager.format(Msg.STACK_SNAPSHOTED, stack.getName(), snapshot.getId()));
context.close();
} else {
ctx.setAttribute(Constants.DG_ATTRIBUTE_STATUS, "failure");
}
-
} catch (ResourceNotFoundException e) {
String msg = EELFResourceManager.format(Msg.STACK_NOT_FOUND, e, vm_url);
logger.error(msg);
throws APPCException {
setMDC(Operation.SNAPSHOT_STACK.toString(), "App-C IaaS Adapter:Snapshot-Stack", ADAPTER_NAME);
logOperation(Msg.SNAPSHOTING_STACK, params, context);
-
setTimeForMetricsLogger();
-
metricsLogger.info("Executing Provider Operation: Snapshot Stack");
-
return snapshotStack(params, context);
}
private void setTimeForMetricsLogger() {
- long startTime = System.currentTimeMillis();
- TimeZone tz = TimeZone.getTimeZone("UTC");
- DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
- df.setTimeZone(tz);
- long endTime = System.currentTimeMillis();
- long duration = endTime - startTime;
- String durationStr = String.valueOf(duration);
- String endTimeStrUTC = df.format(new Date());
- MDC.put("EndTimestamp", endTimeStrUTC);
- MDC.put("ElapsedTime", durationStr);
- MDC.put("TargetEntity", "cdp");
- MDC.put("TargetServiceName", "snapshot stack");
- MDC.put("ClassName", "org.onap.appc.adapter.iaas.provider.operation.impl.SnapshotStack");
+ String timestamp = LoggingUtils.generateTimestampStr(((Date) new Date()).toInstant());
+ MDC.put(LoggingConstants.MDCKeys.BEGIN_TIMESTAMP, timestamp);
+ MDC.put(LoggingConstants.MDCKeys.END_TIMESTAMP, timestamp);
+ MDC.put(LoggingConstants.MDCKeys.ELAPSED_TIME, "0");
+ MDC.put(LoggingConstants.MDCKeys.STATUS_CODE, LoggingConstants.StatusCodes.COMPLETE);
+ MDC.put(LoggingConstants.MDCKeys.TARGET_ENTITY, "cdp");
+ MDC.put(LoggingConstants.MDCKeys.TARGET_SERVICE_NAME, "snapshot stack");
+ MDC.put(LoggingConstants.MDCKeys.CLASS_NAME,
+ "org.onap.appc.adapter.iaas.provider.operation.impl.SnapshotStack");
}
}