summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--aai-core/src/main/java/org/onap/aai/logging/LoggingContext.java61
-rw-r--r--aai-core/src/main/java/org/onap/aai/util/AAIConstants.java4
-rw-r--r--aai-schema/src/main/resources/aai_schema/aai_schema_v12.xsd14
-rw-r--r--aai-schema/src/main/resources/oxm/aai_oxm_v12.xml10
4 files changed, 79 insertions, 10 deletions
diff --git a/aai-core/src/main/java/org/onap/aai/logging/LoggingContext.java b/aai-core/src/main/java/org/onap/aai/logging/LoggingContext.java
index 1e61c659..7d9dcce5 100644
--- a/aai-core/src/main/java/org/onap/aai/logging/LoggingContext.java
+++ b/aai-core/src/main/java/org/onap/aai/logging/LoggingContext.java
@@ -48,7 +48,16 @@ public class LoggingContext {
private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(LoggingContext.class);
private static final String PREVIOUS_CONTEXTS_KEY = "_PREVIOUS_CONTEXTS";
-
+
+ //Response codes from ECOMP Logging Guidelines
+ public static final String SUCCESS = "0";
+ public static final String PERMISSION_ERROR = "100";
+ public static final String AVAILABILITY_TIMEOUT_ERROR = "200";
+ public static final String DATA_ERROR = "200";
+ public static final String SCHEMA_ERROR = "400";
+ public static final String BUSINESS_PROCESS_ERROR = "500";
+ public static final String UNKNOWN_ERROR = "900";
+
//ECOMP Specific Log Event Fields
public static enum LoggingField {
START_TIME("startTime"),
@@ -75,7 +84,7 @@ public class LoggingContext {
//ECOMP Specific Metric Log Event Fields
TARGET_ENTITY("targetEntity"),
-
+ TARGET_SERVICE_NAME("targetServiceName"),
//A&AI Specific Log Event Fields
COMPONENT("component"),
STOP_WATCH_START("stopWatchStart");
@@ -99,7 +108,7 @@ public class LoggingContext {
LoggingContext.serverIpAddress();
}
- private static void startTime() {
+ public static void startTime() {
MDC.put(LoggingField.START_TIME.toString(), LogFormatTools.getCurrentDateTime());
}
@@ -115,8 +124,7 @@ public class LoggingContext {
MDC.put(LoggingField.REQUEST_ID.toString(), requestId.toString());
}
- public static void requestId(String requestId) throws AAIException {
-
+ public static void requestId(String requestId) {
try {
if(requestId == null){
throw new IllegalArgumentException();
@@ -129,7 +137,15 @@ public class LoggingContext {
} catch (IllegalArgumentException e) {
final UUID generatedRequestUuid = UUID.randomUUID();
MDC.put(LoggingField.REQUEST_ID.toString(), generatedRequestUuid.toString());
- LOGGER.warn("Unable to use UUID " + requestId + " (Not formatted properly). Using generated UUID=" + generatedRequestUuid);
+ LoggingContext.save();
+ AAIException ex = new AAIException("AAI_7405", e);
+ String responseCode = Integer.toString(ex.getErrorObject().getHTTPResponseCode().getStatusCode());
+ LoggingContext.responseCode(responseCode);
+
+ LOGGER.warn("Unable to use UUID " + requestId + " (Not formatted properly). Using generated UUID="
+ + generatedRequestUuid);
+ LoggingContext.restore();
+
}
}
@@ -177,6 +193,10 @@ public class LoggingContext {
MDC.put(LoggingField.SEVERITY.toString(), String.valueOf(severity));
}
+ public static void successStatusFields() {
+ responseCode(SUCCESS);
+ statusCode(LoggingContext.StatusCode.COMPLETE);
+ }
private static void serverIpAddress() {
try {
MDC.put(LoggingField.SERVER_IP_ADDRESS.toString(), InetAddress.getLocalHost().getHostAddress());
@@ -247,6 +267,17 @@ public class LoggingContext {
MDC.put(LoggingField.TARGET_ENTITY.toString(), targetEntity);
}
+ public static void targetServiceName(String targetServiceName) {
+ MDC.put(LoggingField.TARGET_SERVICE_NAME.toString(), targetServiceName);
+ }
+
+ public static boolean isStopWatchStarted() {
+ final String rawStopWatchStart = MDC.get(LoggingField.STOP_WATCH_START.toString());
+ if (rawStopWatchStart == null) {
+ return false;
+ }
+ return true;
+ }
public static void stopWatchStart() {
MDC.put(LoggingField.STOP_WATCH_START.toString(), String.valueOf(System.nanoTime()));
}
@@ -328,10 +359,12 @@ public class LoggingContext {
@SuppressWarnings("unchecked")
final Iterator<String> keys = previousContext.keys();
-
+ boolean foundElapsedTime = false;
while (keys.hasNext()) {
final String key = keys.next();
-
+ if (LoggingField.ELAPSED_TIME.toString().equals(key)) {
+ foundElapsedTime = true;
+ }
try {
MDC.put(key, previousContext.getString(key));
} catch (JSONException e) {
@@ -339,12 +372,22 @@ public class LoggingContext {
// or the value is invalid (they are all strings)
}
}
-
+ if ( !foundElapsedTime ) {
+ MDC.remove(LoggingField.ELAPSED_TIME.toString());
+ }
MDC.put(PREVIOUS_CONTEXTS_KEY, removeLast(previousContexts).toString());
} catch (JSONException e) {
//Ignore, the previousContext is serialized from a JSONObject
}
}
+ public static void restoreIfPossible() {
+ try {
+ restore();
+ }
+ catch (LoggingContextNotExistsException e) {
+ //Ignore
+ }
+ }
/**
* AJSC declares an ancient version of org.json:json in one of the parent POMs of this project.
diff --git a/aai-core/src/main/java/org/onap/aai/util/AAIConstants.java b/aai-core/src/main/java/org/onap/aai/util/AAIConstants.java
index 9b7afe52..9c0eac0e 100644
--- a/aai-core/src/main/java/org/onap/aai/util/AAIConstants.java
+++ b/aai-core/src/main/java/org/onap/aai/util/AAIConstants.java
@@ -38,7 +38,6 @@ public final class AAIConstants {
/** etc directory, relative to AAI_HOME */
public static final String AAI_HOME_ETC = AAI_HOME_BUNDLECONFIG + AAI_FILESEP + "etc" + AAI_FILESEP;
public static final String AAI_HOME_ETC_APP_PROPERTIES = AAI_HOME_ETC + "appprops" + AAI_FILESEP;
- public static final String AAI_V2_OUTPUT_TRANSFORMS = AAIConstants.AAI_HOME_ETC_APP_PROPERTIES + AAIConstants.AAI_FILESEP + "output" + AAIConstants.AAI_FILESEP;
public static final String AAI_HOME_ETC_AUTH = AAI_HOME_ETC + "auth" + AAI_FILESEP;
public static final String AAI_CONFIG_FILENAME = AAI_HOME_ETC_APP_PROPERTIES + "aaiconfig.properties";
public static final String AAI_AUTH_CONFIG_FILENAME = AAI_HOME_ETC_AUTH + "aai_policy.json";
@@ -142,6 +141,9 @@ public final class AAIConstants {
/** Service description for LRSI */
public static final String AAI_SERVICEDESCRIPTION_LRSI = "aai.servicedescription.lrsi";
+ /** Micro-service Names */
+ public static final String AAI_TRAVERSAL_MS = "aai-traversal";
+ public static final String AAI_RESOURCES_MS = "aai-resources";
/**
* Instantiates a new AAI constants.
*/
diff --git a/aai-schema/src/main/resources/aai_schema/aai_schema_v12.xsd b/aai-schema/src/main/resources/aai_schema/aai_schema_v12.xsd
index 21448d2c..346a825c 100644
--- a/aai-schema/src/main/resources/aai_schema/aai_schema_v12.xsd
+++ b/aai-schema/src/main/resources/aai_schema/aai_schema_v12.xsd
@@ -7247,6 +7247,20 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
</xs:appinfo>
</xs:annotation>
</xs:element>
+ <xs:element name="tunnel-bandwidth" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="DHV Site Effective Bandwidth")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="vendor-allowed-max-bandwidth" type="xs:string" minOccurs="0">
+ <xs:annotation>
+ <xs:appinfo>
+ <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="Velocloud Nominal Throughput - VNT")</annox:annotate>
+ </xs:appinfo>
+ </xs:annotation>
+ </xs:element>
<xs:element name="resource-version" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:appinfo>
diff --git a/aai-schema/src/main/resources/oxm/aai_oxm_v12.xml b/aai-schema/src/main/resources/oxm/aai_oxm_v12.xml
index e9a4c172..9f9b2131 100644
--- a/aai-schema/src/main/resources/oxm/aai_oxm_v12.xml
+++ b/aai-schema/src/main/resources/oxm/aai_oxm_v12.xml
@@ -2942,7 +2942,17 @@
<xml-properties>
<xml-property name="description" value="id of the configuration used to customize the resource" />
</xml-properties>
+ </xml-element>
+ <xml-element java-attribute="tunnelBandwidth" name="tunnel-bandwidth" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="DHV Site Effective Bandwidth" />
+ </xml-properties>
</xml-element>
+ <xml-element java-attribute="vendorAllowedMaxBandwidth" name="vendor-allowed-max-bandwidth" type="java.lang.String">
+ <xml-properties>
+ <xml-property name="description" value="Velocloud Nominal Throughput - VNT" />
+ </xml-properties>
+ </xml-element>
<xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
<xml-properties>
<xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />