summaryrefslogtreecommitdiffstats
path: root/components/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'components/scripts')
-rw-r--r--components/scripts/python/ccsdk_restconf/restconf_client.py44
1 files changed, 26 insertions, 18 deletions
diff --git a/components/scripts/python/ccsdk_restconf/restconf_client.py b/components/scripts/python/ccsdk_restconf/restconf_client.py
index 43e885a5b..92069c571 100644
--- a/components/scripts/python/ccsdk_restconf/restconf_client.py
+++ b/components/scripts/python/ccsdk_restconf/restconf_client.py
@@ -22,53 +22,61 @@ from time import sleep
class RestconfClient:
+ __base_odl_url = "restconf/config/network-topology:network-topology/topology/topology-netconf/node/"
__odl_status_check_limit = 10
__odl_status_check_pause = 1
+ # Once confirmed to be reliable, the check should change to use the connection-status API
__odl_status_check_url = "restconf/operational/network-topology:network-topology/topology/topology-netconf/node/"
- __base_odl_url = "restconf/config/network-topology:network-topology/topology/topology-netconf/node/"
def __init__(self, log, restconf_component_function):
self.__log = log
self.__component_function = restconf_component_function
- def mount_device(self, web_client_service, pnf_id, mount_payload):
- self.__log.debug("mounting device {}", pnf_id)
+ def mount_device(self, web_client_service, nf_id, mount_payload):
+ self.__log.debug("mounting device {}", nf_id)
headers = {"Content-Type": "application/xml"}
- url = self.__base_odl_url + pnf_id
+ url = self.__base_odl_url + nf_id
self.__log.debug("sending mount request, url: {}", url)
web_client_service.exchangeResource("PUT", url, mount_payload, headers)
- self.__wait_for_odl_to_mount(web_client_service, pnf_id)
+ self.__wait_for_odl_to_mount(web_client_service, nf_id)
- def __wait_for_odl_to_mount(self, web_client_service, pnf_id):
+ def __wait_for_odl_to_mount(self, web_client_service, nf_id):
counter = 0
- url = self.__odl_status_check_url + pnf_id
+ url = self.__odl_status_check_url + nf_id
self.__log.info("url for ODL status check: {}", url)
expected_result = '"netconf-node-topology:connection-status":"connected"'
while counter < self.__odl_status_check_limit:
result = web_client_service.exchangeResource("GET", url, "")
if expected_result in result:
- self.__log.info("PNF was mounted successfully on ODL")
+ self.__log.info("NF was mounted successfully on ODL")
return None
sleep(self.__odl_status_check_pause)
counter += 1
- raise Exception("PNF was not mounted on ODL, aborting configuration procedure")
+ raise Exception("NF was not mounted on ODL, aborting configuration procedure")
- def configure_device(self, web_client_service, pnf_id, configlet_resource_path, configlet_to_apply):
- self.log_current_configlet(web_client_service, pnf_id, configlet_resource_path)
- self.__log.info("configuring device: {}, Configlet: {}", pnf_id, configlet_to_apply)
+ def configure_device_json_patch(self, web_client_service, nf_id, configlet_resource_path, configlet_to_apply):
headers = {"Content-Type": "application/yang.patch+json"}
- url = self.__base_odl_url + pnf_id + configlet_resource_path
+ self.__configure_device(web_client_service, nf_id, configlet_resource_path, configlet_to_apply, headers)
+
+ def configure_device_xml_patch(self, web_client_service, nf_id, configlet_resource_path, configlet_to_apply):
+ headers = {"Content-Type": "application/yang.patch+xml"}
+ self.__configure_device(web_client_service, nf_id, configlet_resource_path, configlet_to_apply, headers)
+
+ def __configure_device(self, web_client_service, nf_id, configlet_resource_path, configlet_to_apply, headers):
+ self.__log.debug("headers: {}", headers)
+ self.__log.info("configuring device: {}, Configlet: {}", nf_id, configlet_to_apply)
+ url = self.__base_odl_url + nf_id + configlet_resource_path
self.__log.debug("sending patch request, url: {}", url)
result = web_client_service.exchangeResource("PATCH", url, configlet_to_apply, headers)
self.__log.info("Configuration application result: {}", result)
- def log_current_configlet(self, web_client_service, pnf_id, configlet_resource_path):
- url = self.__base_odl_url + pnf_id + configlet_resource_path
+ def retrieve_device_configuration_subtree(self, web_client_service, nf_id, configlet_resource_path):
+ url = self.__base_odl_url + nf_id + configlet_resource_path
self.__log.debug("sending GET request, url: {}", url)
result = web_client_service.exchangeResource("GET", url, "")
- self.__log.info("Current configuration: {}", result)
+ return result
- def unmount_device(self, web_client_service, pnf_id):
- url = self.__base_odl_url + str(pnf_id)
+ def unmount_device(self, web_client_service, nf_id):
+ url = self.__base_odl_url + nf_id
self.__log.debug("sending unmount request, url: {}", url)
web_client_service.exchangeResource("DELETE", url, "")
d='n279' href='#n279'>279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328
{{/*<!--
    ============LICENSE_START=======================================================
    org.onap.aai
    ================================================================================
    Copyright © 2017 AT&T Intellectual Property. All rights reserved.
    Modifications Copyright © 2018 Amdocs, Bell Canada
    Modifications Copyright © 2020 Orange
    ================================================================================
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
    ============LICENSE_END=========================================================
-->
*/}}<configuration scan="true" scanPeriod="60 seconds" debug="false">
  <statusListener class="ch.qos.logback.core.status.NopStatusListener" />

  <property resource="application.properties" />

  <property name="namespace" value="aai-resources" />

  <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
  <jmxConfigurator />
  <property name="logDirectory" value="${AJSC_HOME}/logs" />
  <!-- Old patterns
    <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
    <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
    <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
    <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%ecompServiceName|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
    <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%ecompServiceName|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
    -->
  <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}" />
  <property name="p_lvl" value="%level" />
  <property name="p_log" value="%logger" />
  <property name="p_mdc" value="%replace(%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}){'\\|', '!'}" />
  <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}" />
  <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}" />
  <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}" />
  <property name="p_thr" value="%thread" />
  <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n" />
  <!-- Patterns from onap demo -->
  <property name="errorPattern" value="%X{LogTimestamp}|%X{RequestID}|%thread|%replace(%X{ServiceName}){'\\|', '!'}|%X{PartnerName}|%X{TargetEntity}|%replace(%X{TargetServiceName}){'\\|', '!'}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
  <property name="debugPattern" value="%X{LogTimestamp}|%X{RequestID}|%msg\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t|^%n" />
  <property name="auditPattern" value="%X{EntryTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%thread||%replace(%X{ServiceName}){'\\|', '!'}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||${p_mak}|${p_mdc}|||%msg%n" />
  <property name="metricPattern" value="%X{InvokeTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%thread||%replace(%X{ServiceName}){'\\|', '!'}|%X{PartnerName}|%X{TargetEntity}|%replace(%X{TargetServiceName}){'\\|', '!'}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|${p_mak}|${p_mdc}|||%msg%n" />
  <property name="transLogPattern" value="%X{LogTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{RequestID}|%X{ServiceInstanceID}|%-10t|%X{ServerFQDN}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%replace(%replace(%X{ResponseDesc}){'\\|', '!'}){'\r|\n', '^'}|%X{InstanceUUID}|%level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{clientIpAddress}||%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{PartnerName}:%m%n" />
  <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
  <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
  <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>
                %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
</pattern>
    </encoder>
  </appender>

  <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/rest/sane.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
</pattern>
    </encoder>
  </appender>

  <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>1000</queueSize>
    <includeCallerData>true</includeCallerData>
    <appender-ref ref="SANE" />
  </appender>
  <appender name="METRIC" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/rest/metrics.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>${metricPattern}</pattern>
    </encoder>
  </appender>

  <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>1000</queueSize>
    <includeCallerData>true</includeCallerData>
    <appender-ref ref="METRIC" />
  </appender>

  <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>DEBUG</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <file>${logDirectory}/rest/debug.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>${debugPattern}</pattern>
    </encoder>
  </appender>

  <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>1000</queueSize>
    <appender-ref ref="DEBUG" />
    <includeCallerData>true</includeCallerData>
  </appender>
  <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/rest/error.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}</fileNamePattern>
    </rollingPolicy>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>WARN</level>
    </filter>
    <encoder>
      <pattern>${errorPattern}</pattern>
    </encoder>
  </appender>

  <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>1000</queueSize>
    <appender-ref ref="ERROR" />
  </appender>

  <appender name="AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${logDirectory}/rest/audit.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>${auditPattern}</pattern>
    </encoder>
  </appender>

  <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>1000</queueSize>
    <includeCallerData>true</includeCallerData>
    <appender-ref ref="AUDIT" />
  </appender>

  <appender name="translog" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>DEBUG</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <file>${logDirectory}/rest/translog.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>${transLogPattern}</pattern>
    </encoder>
  </appender>

  <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>1000</queueSize>
    <includeCallerData>true</includeCallerData>
    <appender-ref ref="translog" />
  </appender>

  <appender name="dmaapAAIEventConsumer" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>WARN</level>
    </filter>
    <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>${errorPattern}</pattern>
    </encoder>

  </appender>

  <appender name="dmaapAAIEventConsumerDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>DEBUG</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>${debugPattern}</pattern>
    </encoder>
  </appender>
  <appender name="dmaapAAIEventConsumerInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>INFO</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <File>${logDirectory}/dmaapAAIEventConsumer/dmaap-transaction.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/dmaap-transaction.log.%d{yyyy-MM-dd}
</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>${auditPattern}</pattern>
    </encoder>
  </appender>
  <appender name="dmaapAAIEventConsumerMetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>INFO</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>${metricPattern}</pattern>
    </encoder>
  </appender>
  <appender name="external" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>WARN</level>
    </filter>
    <file>${logDirectory}/external/external.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>${debugPattern}</pattern>
    </encoder>
  </appender>
  <appender name="auth" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>DEBUG</level>
    </filter>
    <file>${logDirectory}/auth/auth.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>${logDirectory}/auth/auth.log.%d{yyyy-MM-dd}
</fileNamePattern>
    </rollingPolicy>
    <encoder>
      <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}[%thread] %-5level %logger{1024} - %msg%n</pattern>
    </encoder>
  </appender>
  <appender name="asyncAUTH" class="ch.qos.logback.classic.AsyncAppender">
    <queueSize>1000</queueSize>
    <includeCallerData>true</includeCallerData>
    <appender-ref ref="auth" />
  </appender>
  <!-- logback internals logging -->

  <logger name="ch.qos.logback.classic" level="WARN" />
  <logger name="ch.qos.logback.core" level="WARN" />

  <logger name="com.att.aft.dme2" level="WARN" />
  <logger name="com.jayway.jsonpath" level="WARN" />

  <logger name="org.apache" level="OFF" />
  <logger name="org.apache.commons" level="WARN" />
  <logger name="org.apache.zookeeper" level="OFF" />
  <logger name="org.codehaus.groovy" level="WARN" />
  <logger name="org.eclipse.jetty" level="WARN" />
  <!-- Spring related loggers -->
  <logger name="org.springframework" level="WARN" />
  <logger name="org.springframework.beans" level="WARN" />
  <logger name="org.springframework.web" level="WARN" />
  <logger name="org.janusgraph" level="WARN" />
  <logger name="org.zookeeper" level="OFF" />


  <logger name="org.onap.aai" level="DEBUG" additivity="false">
    <appender-ref ref="asyncDEBUG" />
    <appender-ref ref="asyncSANE" />
    <appender-ref ref="STDOUT" />
  </logger>
  <logger name="org.onap.aai.aaf.auth" level="DEBUG" additivity="false">
    <appender-ref ref="asyncAUTH" />
    <appender-ref ref="STDOUT" />
  </logger>
  <logger name="org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog" level="INFO">
    <appender-ref ref="asyncAUDIT" />
  </logger>
  <logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" level="INFO">
    <appender-ref ref="asyncAUDIT" />
  </logger>
  <logger name="org.onap.aai.aailog.logs.AaiDBMetricLog" level="INFO">
    <appender-ref ref="asyncMETRIC" />
  </logger>
  <logger name="org.onap.aai.aailog.logs.AaiDmaapMetricLog" level="INFO">
    <appender-ref ref="dmaapAAIEventConsumerMetric" />
  </logger>
  <logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN">
    <appender-ref ref="asyncERROR" />
  </logger>
  <logger name="org.onap.aai.interceptors.post" level="DEBUG" additivity="false">
    <appender-ref ref="asynctranslog" />
    <appender-ref ref="STDOUT" />
  </logger>

  <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
    <appender-ref ref="dmaapAAIEventConsumer" />
    <appender-ref ref="dmaapAAIEventConsumerDebug" />
  </logger>

  <logger name="com.att.nsa.mr" level="INFO">
    <appender-ref ref="dmaapAAIEventConsumerInfo" />
  </logger>

  <root level="DEBUG">
    <appender-ref ref="external" />
    <appender-ref ref="STDOUT" />
  </root>
</configuration>