diff options
Diffstat (limited to 'aai-traversal/src')
253 files changed, 7402 insertions, 3114 deletions
diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/FileMonitorBeans.xml b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/FileMonitorBeans.xml deleted file mode 100644 index 37e929d..0000000 --- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/FileMonitorBeans.xml +++ /dev/null @@ -1,20 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> - - <!--<bean--> - <!--class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" />--> - <!----> - <!--<bean id="ServicePropertiesListener" class="org.onap.aai.ajsc_aai.filemonitor.ServicePropertiesListener" />--> - <!----> - <!--<bean id="ServicePropertiesMap" class="org.onap.aai.ajsc_aai.filemonitor.ServicePropertiesMap" />--> - - <!--<bean id="ServicePropertyService" class="org.onap.aai.ajsc_aai.filemonitor.ServicePropertyService">--> - <!--<property name="loadOnStartup" value="false" />--> - <!--<property name="fileChangedListener" ref="ServicePropertiesListener" />--> - <!--<property name="filePropertiesMap" ref="ServicePropertiesMap" />--> - <!--<property name="ssfFileMonitorPollingInterval" value="15" />--> - <!--<property name="ssfFileMonitorThreadpoolSize" value="10" />--> - <!--</bean>--> -</beans> diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/jaxrsBeans.groovy b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/jaxrsBeans.groovy deleted file mode 100644 index 0749aa4..0000000 --- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/jaxrsBeans.groovy +++ /dev/null @@ -1,23 +0,0 @@ -beans{ - xmlns cxf: "http://camel.apache.org/schema/cxf" - xmlns jaxrs: "http://cxf.apache.org/jaxrs" - xmlns util: "http://www.springframework.org/schema/util" - - SearchProvider(org.onap.aai.rest.search.SearchProvider) - ModelAndNamedQueryRestProvider(org.onap.aai.rest.search.ModelAndNamedQueryRestProvider) - QueryConsumer(org.onap.aai.rest.QueryConsumer) - - V3ThroughV7Retired(org.onap.aai.rest.retired.V3ThroughV7Consumer) - - EchoResponse(org.onap.aai.rest.util.EchoResponse) - - - util.list(id: 'jaxrsServices') { - - ref(bean:'SearchProvider') - ref(bean:'ModelAndNamedQueryRestProvider') - ref(bean:'QueryConsumer') - ref(bean:'V3ThroughV7Retired') - ref(bean:'EchoResponse') - } -}
\ No newline at end of file diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/serviceBeans.xml b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/serviceBeans.xml deleted file mode 100644 index 7dda68b..0000000 --- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/conf/serviceBeans.xml +++ /dev/null @@ -1,98 +0,0 @@ -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cxf="http://cxf.apache.org/core" - xmlns:context="http://www.springframework.org/schema/context" - xmlns:task="http://www.springframework.org/schema/task" xmlns:jms="http://www.springframework.org/schema/jms" - xsi:schemaLocation=" - http://cxf.apache.org/core - http://cxf.apache.org/schemas/core.xsd - http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-2.5.xsd - http://www.springframework.org/schema/task - http://www.springframework.org/schema/task/spring-task-3.0.xsd - http://www.springframework.org/schema/jms - http://www.springframework.org/schema/jms/spring-jms-4.1.xsd"> - - <!-- Your bean definitions goes here --> - <!-- <bean id="performanceLog" name="performanceLog" class="com.att.ajsc.csi.logging.PerformanceTracking" - /> --> - <!-- <bean id="processRestletHeaders" name="processRestletHeaders" class="ajsc.restlet.ProcessRestletHeaders" - /> --> - <bean id="servicePropsBean" name="servicePropsBean" - class="org.onap.aai.ajsc_aai.util.ServicePropertiesMapBean" /> - <bean id="jsonProvider" class="org.onap.aai.restcore.CustomJacksonJaxBJsonProvider" /> - - <bean id="inInterceptor" class="org.onap.aai.interceptors.AAILogJAXRSInInterceptor" /> - <bean id="outInterceptor" class="org.onap.aai.interceptors.AAILogJAXRSOutInterceptor" /> - <cxf:bus bus="cxfBus"> - <cxf:inInterceptors> - <ref bean="inInterceptor" /> - </cxf:inInterceptors> - <cxf:outInterceptors> - <ref bean="outInterceptor" /> - </cxf:outInterceptors> - </cxf:bus> - <context:component-scan base-package="org.onap.aai.tasks" /> - <context:component-scan base-package="org.onap.aai.config" /> - - <task:scheduler id="taskScheduler" pool-size="10" /> - <task:executor id="taskExecutor" pool-size="10" - queue-capacity="5" /> - <task:annotation-driven executor="taskExecutor" - scheduler="taskScheduler" /> - - <bean id="jmsProperties" - class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer" - name="jmsProperties"> - <property name="order" value="99999" /> - <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> - <property name="ignoreUnresolvablePlaceholders" value="true" /> - <property name="properties"> - <value> - - <!-- JMS --> - JMS.BROKER.URL=tcp://localhost:61446 - JMS.QUEUE.NAME=IN_QUEUE - - </value> - </property> - </bean> - - <!-- ActiveMQ connection factory --> - <bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> - <constructor-arg index="0" value="${JMS.BROKER.URL}" /> - </bean> - - <!-- ConnectionFactory Definition --> - <bean id="connectionFactory" - class="org.springframework.jms.connection.CachingConnectionFactory"> - <constructor-arg ref="amqConnectionFactory" /> - </bean> - - <!-- Destination Queue --> - <bean id="destinationQueue" class="org.apache.activemq.command.ActiveMQQueue"> - <constructor-arg index="0" value="${JMS.QUEUE.NAME}" /> - </bean> - - <!-- JmsTemplate Definition --> - <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> - <property name="connectionFactory" ref="connectionFactory" /> - <property name="defaultDestination" ref="destinationQueue" /> - </bean> - - <!-- Message Producer --> - <bean id="messageProducer" class="org.onap.aai.dmaap.AAIDmaapEventJMSProducer" /> - - <!-- Message Consumer from Default Destination --> - <bean id="messageDefaultConsumer" class="org.onap.aai.dmaap.AAIDmaapEventJMSConsumer" /> - - <!-- Message Consumer Container for Default Destination --> - <bean - class="org.springframework.jms.listener.DefaultMessageListenerContainer"> - <property name="connectionFactory" ref="connectionFactory" /> - <property name="destinationName" value="${JMS.QUEUE.NAME}" /> - <property name="messageListener" ref="messageDefaultConsumer" /> - </bean> - -</beans>
\ No newline at end of file diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/docs/README.txt b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/docs/README.txt deleted file mode 100644 index 3707179..0000000 --- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/docs/README.txt +++ /dev/null @@ -1 +0,0 @@ -Place any docs here that you want to access within the ajsc upon deployment of your service. diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/lib/README.txt b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/lib/README.txt deleted file mode 100644 index 639e21b..0000000 --- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/lib/README.txt +++ /dev/null @@ -1 +0,0 @@ -3rd party JAR's needed by your jars (if any) for a ajsc deployment package go here...
\ No newline at end of file diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/props/module.props b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/props/module.props deleted file mode 100644 index 17ebc08..0000000 --- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/props/module.props +++ /dev/null @@ -1 +0,0 @@ -EXAMPLE.PROPERTY=EXAMLE_VALUE
\ No newline at end of file diff --git a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/routes/aai.route b/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/routes/aai.route deleted file mode 100644 index 6a86246..0000000 --- a/aai-traversal/src/main/ajsc/ajsc-aai_v1/ajsc-aai/v1/routes/aai.route +++ /dev/null @@ -1,4 +0,0 @@ -<route xmlns="http://camel.apache.org/schema/spring" trace="true"> - <from uri="att-dme2-servlet:///aai?matchOnUriPrefix=true" /> - <to uri="cxfbean:jaxrsServices?providers=#jsonProvider&bus=#cxfBus" /> -</route>
\ No newline at end of file diff --git a/aai-traversal/src/main/assemble/ajsc_module_assembly.xml b/aai-traversal/src/main/assemble/ajsc_module_assembly.xml deleted file mode 100644 index 4ec4e28..0000000 --- a/aai-traversal/src/main/assemble/ajsc_module_assembly.xml +++ /dev/null @@ -1,66 +0,0 @@ -<assembly - xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> - <id>${version}</id> - <includeBaseDirectory>false</includeBaseDirectory> - <formats> - <format>zip</format> - </formats> - <fileSets> - <fileSet> - <directory>${project.basedir}/target/versioned-ajsc/routes/</directory> - <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/routes/</outputDirectory> - <includes> - <include>*.route</include> - </includes> - - </fileSet> - - <fileSet> - <directory>${project.basedir}/target/versioned-ajsc/docs/</directory> - <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/docs/</outputDirectory> - <includes> - <include>*.*</include> - <!-- <include>*.vm</include> --> - </includes> - - </fileSet> - - <fileSet> - <directory>${project.basedir}/target/versioned-ajsc/lib/</directory> - <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/lib/</outputDirectory> - <includes> - <include>*.jar</include> - </includes> - - </fileSet> - <fileSet> - <directory>${project.basedir}/target/versioned-ajsc/extJars/</directory> - <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/extJars/</outputDirectory> - <includes> - <include>*.jar</include> - </includes> - </fileSet> - - <!-- also try to grab outputs from the "jar" plugin's package phase --> - <fileSet> - <directory>${project.basedir}/target/</directory> - <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/lib/</outputDirectory> - <includes> - <include>*.jar</include> - </includes> - </fileSet> - - <fileSet> - <directory>${project.basedir}/target/versioned-ajsc/conf/</directory> - <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/conf/</outputDirectory> - <includes> - <include>*.*</include> - </includes> - - </fileSet> - </fileSets> - -</assembly> - diff --git a/aai-traversal/src/main/assemble/ajsc_props_assembly.xml b/aai-traversal/src/main/assemble/ajsc_props_assembly.xml deleted file mode 100644 index 5b8a6fa..0000000 --- a/aai-traversal/src/main/assemble/ajsc_props_assembly.xml +++ /dev/null @@ -1,23 +0,0 @@ -<assembly - xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> - <id>${version}_properties</id> - <includeBaseDirectory>false</includeBaseDirectory> - <formats> - <format>zip</format> - </formats> - <fileSets> - <fileSet> - <directory>${project.basedir}/target/versioned-ajsc/props</directory> - <outputDirectory>${module.ajsc.namespace.name}/${module.ajsc.namespace.version}/props/</outputDirectory> - <includes> - <include>*.props</include> - </includes> - - </fileSet> - - </fileSets> - -</assembly> - diff --git a/aai-traversal/src/main/assemble/ajsc_runtime_assembly.xml b/aai-traversal/src/main/assemble/ajsc_runtime_assembly.xml deleted file mode 100644 index e37d366..0000000 --- a/aai-traversal/src/main/assemble/ajsc_runtime_assembly.xml +++ /dev/null @@ -1,44 +0,0 @@ -<assembly - xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> - <id>runtimeEnvironment</id> - <includeBaseDirectory>false</includeBaseDirectory> - <formats> - <format>zip</format> - </formats> - <fileSets> - <fileSet> - <directory>${project.basedir}/target/versioned-runtime/context/</directory> - <outputDirectory>runtime/context/</outputDirectory> - <includes> - <include>*.context</include> - </includes> - </fileSet> - <fileSet> - <directory>${project.basedir}/target/versioned-runtime/serviceProperties/</directory> - <outputDirectory>runtime/serviceProperties/</outputDirectory> - <includes> - <include>*.props</include> - </includes> - </fileSet><fileSet> - <directory>${project.basedir}/target/versioned-runtime/shiroRole</directory> - <outputDirectory>runtime/shiroRole/</outputDirectory> - <includes> - <include>*.json</include> - </includes> - </fileSet><fileSet> - <directory>${project.basedir}/target/versioned-runtime/shiroUser</directory> - <outputDirectory>runtime/shiroUser/</outputDirectory> - <includes> - <include>*.json</include> - </includes> - </fileSet><fileSet> - <directory>${project.basedir}/target/versioned-runtime/shiroUserRole</directory> - <outputDirectory>runtime/shiroUserRole</outputDirectory> - <includes> - <include>*.json</include> - </includes> - </fileSet> - </fileSets> -</assembly>
\ No newline at end of file diff --git a/aai-traversal/src/main/assembly/descriptor.xml b/aai-traversal/src/main/assembly/descriptor.xml new file mode 100644 index 0000000..11c7ba2 --- /dev/null +++ b/aai-traversal/src/main/assembly/descriptor.xml @@ -0,0 +1,32 @@ +<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"> + <id>build</id> + <includeBaseDirectory>false</includeBaseDirectory> + <formats> + <format>dir</format> + </formats> + <fileSets> + <fileSet> + <directory>${project.basedir}/src/main/resources</directory> + <outputDirectory>/resources</outputDirectory> + <includes> + <include>**/*</include> + </includes> + </fileSet> + <fileSet> + <directory>${project.basedir}/src/main/scripts</directory> + <outputDirectory>/bin</outputDirectory> + <includes> + <include>**/*</include> + </includes> + </fileSet> + <fileSet> + <directory>${project.build.directory}</directory> + <outputDirectory>/lib</outputDirectory> + <includes> + <include>*.jar</include> + </includes> + </fileSet> + </fileSets> +</assembly> diff --git a/aai-traversal/src/main/config/ajsc-jetty.xml b/aai-traversal/src/main/config/ajsc-jetty.xml deleted file mode 100644 index b74b071..0000000 --- a/aai-traversal/src/main/config/ajsc-jetty.xml +++ /dev/null @@ -1,164 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd"> -<Configure id="ajsc-server" class="org.eclipse.jetty.server.Server"> - <!-- DO NOT REMOVE!!!! This is setting up the AJSC Context --> - <New id="ajscContext" class="org.eclipse.jetty.webapp.WebAppContext"> - <Set name="contextPath"><SystemProperty name="AJSC_CONTEXT_PATH" /></Set> - <Set name="extractWAR">true</Set> - <Set name="tempDirectory"><SystemProperty name="AJSC_TEMP_DIR" /></Set> - <Set name="war"><SystemProperty name="AJSC_WAR_PATH" /></Set> - <Set name="descriptor"><SystemProperty name="AJSC_HOME" />/etc/runner-web.xml</Set> - <Set name="overrideDescriptor"><SystemProperty name="AJSC_HOME" />/etc/ajsc-override-web.xml</Set> - <Set name="throwUnavailableOnStartupException">true</Set> - <Set name="servletHandler"> - <New class="org.eclipse.jetty.servlet.ServletHandler"> - <Set name="startWithUnavailable">false</Set> - </New> - </Set> - <Set name="extraClasspath"> - <SystemProperty name="AJSC_HOME" />/extJars/aai-core-<SystemProperty name="aai-core.version"/>.jar, - <SystemProperty name="AJSC_HOME" />/extJars/traversal.jar, - <SystemProperty name="AJSC_HOME" />/extJars/logback-core-1.1.7.jar, - <SystemProperty name="AJSC_HOME" />/extJars/logback-access-1.1.7.jar, - <SystemProperty name="AJSC_HOME" />/extJars/eelf-core-1.0.0.jar, - <SystemProperty name="AJSC_HOME" />/extJars/slf4j-api-1.7.21.jar - </Set> - </New> - - <Set name="handler"> - <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection"> - <Set name="handlers"> - <Array type="org.eclipse.jetty.server.Handler"> - <Item> - <New id="Contexts" - class="org.eclipse.jetty.server.handler.ContextHandlerCollection"> - <Set name="Handlers"> - <Array type="org.eclipse.jetty.webapp.WebAppContext"> - <Item> - <Ref refid="ajscContext" /> - </Item> - </Array> - </Set> - </New> - </Item> - <!-- add a RequestLogHandler --> - <Item> - <New id="RequestLogHandler" class="org.eclipse.jetty.server.handler.RequestLogHandler"> - <Set name="requestLog"> - <New id="requestLogImpl" class="ch.qos.logback.access.jetty.RequestLogImpl"> - <Set name="fileName"><SystemProperty name="AJSC_HOME" />/bundleconfig/etc/localhost-access-logback.xml</Set> - </New> - </Set> - </New> - </Item> - </Array> - </Set> - </New> - </Set> - - <Call name="addBean"> - <Arg> - <New id="DeploymentManager" class="org.eclipse.jetty.deploy.DeploymentManager"> - <Set name="contexts"> - <Ref refid="Contexts" /> - </Set> - <Call id="extAppHotDeployProvider" name="addAppProvider"> - <Arg> - <New class="org.eclipse.jetty.deploy.providers.WebAppProvider"> - <Set name="monitoredDirName"><SystemProperty name="AJSC_HOME" />/extApps</Set> - <Set name="scanInterval">10</Set> - <Set name="extractWars">true</Set> - </New> - </Arg> - </Call> - </New> - </Arg> - </Call> - - <Call name="addConnector"> - <Arg> - <New class="org.eclipse.jetty.server.ServerConnector"> - <Arg name="server"> - <Ref refid="ajsc-server" /> - </Arg> - <Set name="port"><SystemProperty name="AJSC_HTTP_PORT" default="8083" /></Set> - </New> - </Arg> - </Call> - - <Call id="sslConnector" name="addConnector"> - <Arg> - <New class="org.eclipse.jetty.server.ServerConnector"> - <Arg name="server"> - <Ref refid="ajsc-server" /> - </Arg> - <Arg name="factories"> - <Array type="org.eclipse.jetty.server.ConnectionFactory"> - <Item> - <New class="org.eclipse.jetty.server.SslConnectionFactory"> - <Arg name="next">http/1.1</Arg> - <Arg name="sslContextFactory"> - <New id="sslContextFactory" class="org.eclipse.jetty.util.ssl.SslContextFactory"> - <Set name="KeyStorePath">file:<SystemProperty name="AJSC_HOME" />/bundleconfig/etc/auth/aai_keystore</Set> - <Set name="KeyStorePassword"> - <Call class="org.eclipse.jetty.util.security.Password" name="deobfuscate"> - <Arg><SystemProperty name="KEY_STORE_PASSWORD" /></Arg> - </Call> - </Set> - <Set name="KeyManagerPassword"> - <Call class="org.eclipse.jetty.util.security.Password" name="deobfuscate"> - <Arg><SystemProperty name="KEY_MANAGER_PASSWORD" /></Arg> - </Call> - </Set> - <Set name="needClientAuth">false</Set> - <Set name="ExcludeProtocols"> - <Array type="java.lang.String"> - <Item>SSL</Item> - <Item>SSLv2</Item> - <Item>SSLv2Hello</Item> - <Item>SSLv3</Item> - <Item>TLSv1</Item> - </Array> - </Set> - </New> - </Arg> - </New> - </Item> - <Item> - <New class="org.eclipse.jetty.server.HttpConnectionFactory"> - <Arg name="config"> - <New class="org.eclipse.jetty.server.HttpConfiguration"> - <Call name="addCustomizer"> - <Arg> - <New class="org.eclipse.jetty.server.SecureRequestCustomizer" /> - </Arg> - </Call> - </New> - </Arg> - </New> - </Item> - </Array> - </Arg> - <Set name="port"><SystemProperty name="AJSC_HTTPS_PORT" default="8446" /></Set> - <Set name="idleTimeout">30000</Set> - </New> - </Arg> - </Call> - - <Get name="ThreadPool"> - <Set name="minThreads"><SystemProperty name="AJSC_JETTY_ThreadCount_MIN" /></Set> - <Set name="maxThreads"><SystemProperty name="AJSC_JETTY_ThreadCount_MAX" /></Set> - <Set name="idleTimeout"><SystemProperty name="AJSC_JETTY_IDLETIME_MAX" /></Set> - <Set name="detailedDump">false</Set> - </Get> - <Call name="addBean"> - <Arg> - <New class="org.eclipse.jetty.security.HashLoginService"> - <Set name="name">Test Realm</Set> - <Set name="config"><SystemProperty name="AJSC_HOME" />/etc/realm.properties</Set> - <Set name="refreshInterval">5</Set> - <Call name="start"></Call> - </New> - </Arg> - </Call> -</Configure> diff --git a/aai-traversal/src/main/config/ajsc-jolokia-override-web.xml b/aai-traversal/src/main/config/ajsc-jolokia-override-web.xml deleted file mode 100644 index b242129..0000000 --- a/aai-traversal/src/main/config/ajsc-jolokia-override-web.xml +++ /dev/null @@ -1,46 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" - metadata-complete="false" version="3.0"> - - <filter-mapping> - <filter-name>InterceptorFilter</filter-name> - <url-pattern>/services/*</url-pattern> - </filter-mapping> - <filter-mapping> - <filter-name>InterceptorFilter</filter-name> - <url-pattern>/rest/*</url-pattern> - </filter-mapping> - - <filter-mapping> - <filter-name>springSecurityFilterChain</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - <servlet-mapping> - <servlet-name>ManagementServlet</servlet-name> - <url-pattern>/mgmt</url-pattern> - </servlet-mapping> - - <servlet-mapping> - <servlet-name>RestletServlet</servlet-name> - <url-pattern>/rest/*</url-pattern> - </servlet-mapping> - - <servlet-mapping> - <servlet-name>CamelServlet</servlet-name> - <url-pattern>/services/*</url-pattern> - </servlet-mapping> - - <servlet> - <servlet-name>jolokia-agent</servlet-name> - <servlet-class>org.jolokia.http.AgentServlet</servlet-class> - <load-on-startup>2</load-on-startup> - </servlet> - - <servlet-mapping> - <servlet-name>jolokia-agent</servlet-name> - <url-pattern>/jolokia/*</url-pattern> - </servlet-mapping> - -</web-app>
\ No newline at end of file diff --git a/aai-traversal/src/main/config/ajsc-override-web.xml b/aai-traversal/src/main/config/ajsc-override-web.xml deleted file mode 100644 index 61e2836..0000000 --- a/aai-traversal/src/main/config/ajsc-override-web.xml +++ /dev/null @@ -1,41 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" - metadata-complete="false" version="3.0"> - - <filter-mapping> - <filter-name>WriteableRequestFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - <filter-mapping> - <filter-name>InterceptorFilter</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - <filter-mapping> - <filter-name>InterceptorFilter</filter-name> - <url-pattern>/rest/*</url-pattern> - </filter-mapping> - - <filter-mapping> - <filter-name>springSecurityFilterChain</filter-name> - <url-pattern>/*</url-pattern> - </filter-mapping> - - <servlet-mapping> - <servlet-name>ManagementServlet</servlet-name> - <url-pattern>/mgmt</url-pattern> - </servlet-mapping> - - <servlet-mapping> - <servlet-name>RestletServlet</servlet-name> - <url-pattern>/rest/*</url-pattern> - </servlet-mapping> - - <servlet-mapping> - <servlet-name>CamelServlet</servlet-name> - <url-pattern>/*</url-pattern> - </servlet-mapping> - - - -</web-app>
\ No newline at end of file diff --git a/aai-traversal/src/main/config/ajsc-request.xml b/aai-traversal/src/main/config/ajsc-request.xml deleted file mode 100644 index 5d09b7a..0000000 --- a/aai-traversal/src/main/config/ajsc-request.xml +++ /dev/null @@ -1,49 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<ns1:ErrorTranslationRequest - xsi:schemaLocation="http://csi.cingular.com/CSI/Namespaces/Types/Private/ErrorTranslationRequest.xsd ErrorTranslationRequest.xsd" - xmlns:ns1="http://csi.cingular.com/CSI/Namespaces/Types/Private/ErrorTranslationRequest.xsd" - xmlns:th="http://csi.cingular.com/CSI/Namespaces/Types/Private/Implementation/TransactionHeader.xsd" - xmlns:err="http://csi.cingular.com/CSI/Namespaces/Types/Public/ErrorResponse.xsd" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> - <ns1:TransactionHeader> - <th:applicationId></th:applicationId> - <th:MessageQualifier> - <th:messageQualifier></th:messageQualifier> - </th:MessageQualifier> - <th:activityCode></th:activityCode> - <th:sequenceNumber></th:sequenceNumber> - <th:extendedSequenceNumber></th:extendedSequenceNumber> - <th:creationDate></th:creationDate> - <th:transactionDate></th:transactionDate> - <th:timeToLive></th:timeToLive> - <th:reasonCode></th:reasonCode> - <th:systemId></th:systemId> - <th:operatorId></th:operatorId> - <th:reference></th:reference> - <th:replyToAddress></th:replyToAddress> - <th:originatorId></th:originatorId> - <th:atlasMessageId></th:atlasMessageId> - </ns1:TransactionHeader> - <ns1:operation></ns1:operation> - <ns1:ServiceEntityFault> - <err:reportingServiceEntity></err:reportingServiceEntity> - <err:faultDate></err:faultDate> - <err:faultSequenceNumber></err:faultSequenceNumber> - <err:faultLevel></err:faultLevel> - <err:faultCode></err:faultCode> - <err:faultDescription></err:faultDescription> - <err:ServiceProviderRawError> - <err:code></err:code> - <err:description></err:description> - <err:BISError> - <err:code></err:code> - <err:description></err:description> - <err:origination></err:origination> - <err:severity></err:severity> - </err:BISError> - </err:ServiceProviderRawError> - </ns1:ServiceEntityFault> - <ns1:conversationID></ns1:conversationID> - <ns1:partnerName></ns1:partnerName> - <ns1:isRESTService></ns1:isRESTService> -</ns1:ErrorTranslationRequest>
\ No newline at end of file diff --git a/aai-traversal/src/main/config/hazelcast-client.properties b/aai-traversal/src/main/config/hazelcast-client.properties deleted file mode 100644 index 2624d3f..0000000 --- a/aai-traversal/src/main/config/hazelcast-client.properties +++ /dev/null @@ -1,25 +0,0 @@ -# -# Copyright (c) 2008-2013, Hazelcast, Inc. All Rights Reserved. -# -# 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. -# - -hazelcast.client.group.name = ajsc -hazelcast.client.group.pass = ajscpass -hazelcast.client.connection.timeout = 30000 -hazelcast.client.connection.attempts.limit = 3 -hazelcast.client.reconnection.timeout = 5000 -hazelcast.client.reconnection.attempts.limit= 5 -hazelcast.client.shuffle.addresses = false -hazelcast.client.update.automatic = true -hazelcast.client.addresses = localhost, 127.0.0.1
\ No newline at end of file diff --git a/aai-traversal/src/main/config/jul-redirect.properties b/aai-traversal/src/main/config/jul-redirect.properties deleted file mode 100644 index 8b6624d..0000000 --- a/aai-traversal/src/main/config/jul-redirect.properties +++ /dev/null @@ -1,13 +0,0 @@ - -# Bridge JUL->slf4j Logging Configuration File -# -# This file bridges the JUL logging infrastructure into -# SLF4J so JUL logs go to logback implementation provided -# in this project. SLF4J also captures log4j and has -# other framework options as well providing a common -# logging infrastructure for capturing all logs from different -# libraries using different frameworks in one place. - -# Global properties -handlers=org.slf4j.bridge.SLF4JBridgeHandler -.level= ALL diff --git a/aai-traversal/src/main/config/keyfile b/aai-traversal/src/main/config/keyfile deleted file mode 100644 index 6a1657e..0000000 --- a/aai-traversal/src/main/config/keyfile +++ /dev/null @@ -1,27 +0,0 @@ -ctRt8XTd7N57kcm0npZOWSDF5I69w9K97cQS_ep0AgxgHmYB0WtYblsrMGuHfyS1o4697zLiIeoS -Nn5kE1kedl4c4HevfuwfoJpWyiugYusNOqbTGQJ1MHOwqiBEJnjXepZEoz1btaW_hDO7uz-BoD4t -SxwNRwVQpcg0_CmBX-yIW2YCIECoxZH9_X_8fcXYHP2VgFxxBpvjgycNQlyN15_VSuLwn3Wj0W8_ -8chRxGURyhp8iEBSb4tIdN5jXkhCma7AP7wreMufFQqXjdfWqIisJPfIpS3znl5IiTOZP22XhHay -gq2KFwABVqjM71m5czEz1ojGkbFEAGImrY-VFHuug2u4ss4VW7TGeJst0z7I5vrn5M6i9Eb6xiGh -jNUebRCV3cYGrtD9SlvjJBVVeP_3OrkxlD4oktx-JTRJzYtXADB5if2gtpYxy84kqrz7ltr5rXUH -zSG7ujKCXOOE_Wk6vQPSjYPnum6R_mxOorCNCvtf6ne85Xd81DZlJM-CleVNdOU7g1xie-gBZPAX -bOvWf6p_pVNmH76v-m4XLAAUqEzt-9PvNmirODiDiY5bNz6l-1ejw8IyQYb37e_3sN_LjF7A9HgB -Dia7kNjsfB7_2vB7R4qjwNLsmTMnQCDANnNpl9VpotZ4blPhhOWhB1Tg3lxc-z-VRV7GBbl_2eQd -3eYUT1Z5Li184W4-pft_TCaDJ1NyaJd1CQxQEuIORdq5B6Q2L9SMmmOOh82Czu5_Ro80IGikHXHp -Lqf2fIaceY_IBAeGp2iPjtXdkghV24vIT49oRfqf6sBKAPy-88xILnMWM6M5bMCETKn7UvM1kV5y -ZQYlsi-36n73ETZyiFs1PLqe8D6dRURrcBG_B9i1MafNiWa-elG6E0X0pSK9CadchSA0KRMaKtfE -6-iyUqE-bx-0ELTbV2y7gLdu5MVtjRmQB5ozoaBq8ik4-jAWAsKpTv4DfWoMp9DkRENlKeauayuT -j_VAGhqy07pIntQKtbK9EP0tndSKtF3WLwHel1I5C3lthhkxxfzpxURBxO1ZJMFJZ6rLu1Ku03zw -LJ7nFFR_YfJ7tnGZE4PEt7MOZNiNoD3__9PthO5HmZdk1gPMrKlojU1hyR3IlbVShUst6rA3MkWk -MD-zlw9mhNgaV3xvPJ945pYPe4C6qIwxXoiXGHyhv_0MpcvuMW-pUuAZXfkuiqNwQnpUTLBD0YJw -uwMbE7sN40e6-BSxEiMOab7s2gShbaK9JjCMQUH_vAuQSZjU4sn53jsS7U4DHntzgxVYttIwGZaU -b-1R7jYphNJnCI8rPB_xjJ0OMssNKT7lYRgG_ZuKvifYvJWt-NwD0z2qoePcRGExXuioRDNR4SlB --RN33dYhp6vRsHKT1oLpl-UJB6dqJlZ2dCsfc7vT1Vs0SYidRYXCUJNBSePI4-1LMlHKOqGASBcg -pl589601-EtO7ch3RoaL26rNXzA-umUWYRPQPZ76wcgK2j4k5Ndub5dWK9jI6UW3RbF6ixe0Yw2j -_Pipt4EX8R6-sb87D69JOOnZlFVB6EcCO07Q7j6DavpUNHlLmDmPgArqODh002scvW1ryMxBR2XE -m3kGQh2IFh5Qru8duxblEYE-lmHGxXVgDtKiKgHwPTkaxcquEtZTEJxaIJIgoKj7SgMzdfbeLlJM -RwbdvExmnRT9ivFImeIV7ACPnfBP3URd82kTG8FyiMvSpdCLL16FWOd9gjZuMstqZrmIVF8tO2WT -COMIx-jqvQD2zS1Ul5p0szJaf-CxBjy7-cJIaAyEToR1T5bBFtQt4sEFxG7XG0cCoXShqclL70TV -W13X5pY55YwHkCR4mRjc0o0ZKStY3OADVLFom1bC9AmMBqU4PsKNAX29LT37WE-I23tQgzid0Ix9 -JuVzlbOTvi19uLYbltrHavU3UbVhYxNNI7Y7tM02xfq3LhGqZG5EPS-WAB9bBixHQqw78cd9iqIr -hHlZW80l1kgs1ezMqgxfwDuiFOZIu9UWQ6vSnTAvfhwJhcr77gSk5Gu957uxzleaS4gVwTYU diff --git a/aai-traversal/src/main/config/runner-web.xml b/aai-traversal/src/main/config/runner-web.xml deleted file mode 100644 index 8a3a316..0000000 --- a/aai-traversal/src/main/config/runner-web.xml +++ /dev/null @@ -1,106 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" - metadata-complete="false" version="3.0"> - - <context-param> - <param-name>contextConfigLocation</param-name> - <param-value>/WEB-INF/spring-servlet.xml, - classpath:applicationContext.xml - </param-value> - </context-param> - - <context-param> - <param-name>spring.profiles.default</param-name> - <param-value>nooauth</param-value> - </context-param> - - <listener> - <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> - </listener> - - <servlet> - <servlet-name>ManagementServlet</servlet-name> - <servlet-class>ajsc.ManagementServlet</servlet-class> - </servlet> - - <filter> - <filter-name>WriteableRequestFilter</filter-name> - <filter-class>com.att.ajsc.csi.writeablerequestfilter.WriteableRequestFilter</filter-class> - </filter> - - <filter> - <filter-name>InterceptorFilter</filter-name> - <filter-class>ajsc.filters.InterceptorFilter</filter-class> - <init-param> - <param-name>preProcessor_interceptor_config_file</param-name> - <param-value>/etc/PreProcessorInterceptors.properties</param-value> - </init-param> - <init-param> - <param-name>postProcessor_interceptor_config_file</param-name> - <param-value>/etc/PostProcessorInterceptors.properties</param-value> - </init-param> - - </filter> - - <servlet> - <servlet-name>RestletServlet</servlet-name> - <servlet-class>ajsc.restlet.RestletSpringServlet</servlet-class> - <init-param> - <param-name>org.restlet.component</param-name> - <param-value>restletComponent</param-value> - </init-param> - </servlet> - - <servlet> - <servlet-name>CamelServlet</servlet-name> - <servlet-class>ajsc.servlet.AjscCamelServlet</servlet-class> - </servlet> - - - <filter> - <filter-name>springSecurityFilterChain</filter-name> - <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> - </filter> - - <servlet> - <servlet-name>spring</servlet-name> - <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> - <load-on-startup>1</load-on-startup> - </servlet> - - - - <servlet-mapping> - <servlet-name>spring</servlet-name> - <url-pattern>/</url-pattern> - </servlet-mapping> - - <listener> - <listener-class> - org.onap.aai.util.AAIAppServletContextListener - </listener-class> - </listener> - <security-constraint> - <web-resource-collection> - <web-resource-name>Open Source</web-resource-name> - <url-pattern>/aai/*</url-pattern> - </web-resource-collection> - <auth-constraint> - <role-name>admin</role-name> - </auth-constraint> - <user-data-constraint> - <transport-guarantee>CONFIDENTIAL</transport-guarantee> - </user-data-constraint> - </security-constraint> - - <login-config> - <auth-method>BASIC</auth-method> - <realm-name>Test Realm</realm-name> - </login-config> - - <security-role> - <role-name>admin</role-name> - </security-role> - -</web-app> diff --git a/aai-traversal/src/main/docker/Dockerfile b/aai-traversal/src/main/docker/Dockerfile new file mode 100644 index 0000000..3e4cd77 --- /dev/null +++ b/aai-traversal/src/main/docker/Dockerfile @@ -0,0 +1,22 @@ +FROM aaionap/aai-common:1.2.0 + + +# Add the proper files into the docker image from your build +WORKDIR /opt/app/aai-traversal + +# Expose the ports for outside linux to use +# 8446 is the important one to be used +EXPOSE 8446 + + +HEALTHCHECK --interval=40s --timeout=10s --retries=3 CMD nc -z -v localhost 8446 || exit 1 + +ENTRYPOINT ["/bin/bash", "/opt/app/aai-traversal/docker-entrypoint.sh"] + +RUN mkdir -p /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-GQ + +VOLUME /opt/aai/logroot/AAI-GQ + +COPY /maven/aai-traversal/ . + +ENV AAI_BUILD_VERSION @aai.docker.version@ diff --git a/aai-traversal/src/main/resources/docker/aai.sh b/aai-traversal/src/main/docker/aai.sh index a253775..a253775 100644 --- a/aai-traversal/src/main/resources/docker/aai.sh +++ b/aai-traversal/src/main/docker/aai.sh diff --git a/aai-traversal/src/main/docker/docker-entrypoint.sh b/aai-traversal/src/main/docker/docker-entrypoint.sh new file mode 100644 index 0000000..efaba95 --- /dev/null +++ b/aai-traversal/src/main/docker/docker-entrypoint.sh @@ -0,0 +1,119 @@ +### +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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========================================================= +### + +APP_HOME=$(pwd); +RESOURCES_HOME=${APP_HOME}/resources/; + +export CHEF_CONFIG_REPO=${CHEF_CONFIG_REPO:-aai-config}; +export CHEF_GIT_URL=${CHEF_GIT_URL:-http://gerrit.onap.org/r/aai}; +export CHEF_CONFIG_GIT_URL=${CHEF_CONFIG_GIT_URL:-$CHEF_GIT_URL}; +export CHEF_DATA_GIT_URL=${CHEF_DATA_GIT_URL:-$CHEF_GIT_URL}; + +export SERVER_PORT=${SERVER_PORT:-8446}; + +export RESOURCES_HOSTNAME=${RESOURCES_HOSTNAME:-aai-resources.api.simpledemo.onap.org}; +export RESOURCES_PORT=${RESOURCES_PORT:-8447}; + +USER_ID=${LOCAL_USER_ID:-9001} +GROUP_ID=${LOCAL_GROUP_ID:-9001} + +if [ $(cat /etc/passwd | grep aaiadmin | wc -l) -eq 0 ]; then + + ln -s bin scripts + ln -s /opt/aai/logroot/AAI-GQ logs + + groupadd aaiadmin -g ${GROUP_ID} || { + echo "Unable to create the group id for ${GROUP_ID}"; + exit 1; + } + useradd --shell=/bin/bash -u ${USER_ID} -g ${GROUP_ID} -o -c "" -m aaiadmin || { + echo "Unable to create the user id for ${USER_ID}"; + exit 1; + } +fi; + +chown -R aaiadmin:aaiadmin /opt/app /opt/aai/logroot /var/chef +find /opt/app/ -name "*.sh" -exec chmod +x {} + + +if [ -f ${APP_HOME}/aai.sh ]; then + mv ${APP_HOME}/aai.sh /etc/profile.d/aai.sh + chmod 755 /etc/profile.d/aai.sh +fi; + +if [ -z ${DISABLE_UPDATE_QUERY} ]; then + UPDATE_QUERY_RAN_FILE="updateQueryRan.txt"; + gosu aaiadmin /opt/app/aai-traversal/bin/install/updateQueryData.sh + gosu aaiadmin touch ${UPDATE_QUERY_RAN_FILE}; +fi + +JAVA_CMD="exec gosu aaiadmin java"; + +JVM_OPTS="${PRE_JVM_OPTS} -XX:+UnlockDiagnosticVMOptions"; +JVM_OPTS="${JVM_OPTS} -XX:+UnsyncloadClass"; +JVM_OPTS="${JVM_OPTS} -XX:+UseConcMarkSweepGC"; +JVM_OPTS="${JVM_OPTS} -XX:+CMSParallelRemarkEnabled"; +JVM_OPTS="${JVM_OPTS} -XX:+UseCMSInitiatingOccupancyOnly"; +JVM_OPTS="${JVM_OPTS} -XX:CMSInitiatingOccupancyFraction=70"; +JVM_OPTS="${JVM_OPTS} -XX:+ScavengeBeforeFullGC"; +JVM_OPTS="${JVM_OPTS} -XX:+CMSScavengeBeforeRemark"; +JVM_OPTS="${JVM_OPTS} -XX:-HeapDumpOnOutOfMemoryError"; +JVM_OPTS="${JVM_OPTS} -XX:+UseParNewGC"; +JVM_OPTS="${JVM_OPTS} -verbose:gc"; +JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails"; +JVM_OPTS="${JVM_OPTS} -XX:+PrintGCTimeStamps"; +JVM_OPTS="${JVM_OPTS} -XX:MaxPermSize=512M"; +JVM_OPTS="${JVM_OPTS} -XX:PermSize=512M"; +JVM_OPTS="${JVM_OPTS} -server"; +JVM_OPTS="${JVM_OPTS} -XX:NewSize=512m"; +JVM_OPTS="${JVM_OPTS} -XX:MaxNewSize=512m"; +JVM_OPTS="${JVM_OPTS} -XX:SurvivorRatio=8"; +JVM_OPTS="${JVM_OPTS} -XX:+DisableExplicitGC"; +JVM_OPTS="${JVM_OPTS} -verbose:gc"; +JVM_OPTS="${JVM_OPTS} -XX:+UseParNewGC"; +JVM_OPTS="${JVM_OPTS} -XX:+CMSParallelRemarkEnabled"; +JVM_OPTS="${JVM_OPTS} -XX:+CMSClassUnloadingEnabled"; +JVM_OPTS="${JVM_OPTS} -XX:+UseConcMarkSweepGC"; +JVM_OPTS="${JVM_OPTS} -XX:-UseBiasedLocking"; +JVM_OPTS="${JVM_OPTS} -XX:ParallelGCThreads=4"; +JVM_OPTS="${JVM_OPTS} -XX:LargePageSizeInBytes=128m"; +JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails"; +JVM_OPTS="${JVM_OPTS} -XX:+PrintGCTimeStamps"; +JVM_OPTS="${JVM_OPTS} -Xloggc:/opt/app/aai-traversal/logs/ajsc-jetty/gc/aai_gc.log"; +JVM_OPTS="${JVM_OPTS} -Dsun.net.inetaddr.ttl=180"; +JVM_OPTS="${JVM_OPTS} -XX:+HeapDumpOnOutOfMemoryError"; +JVM_OPTS="${JVM_OPTS} -XX:HeapDumpPath=/opt/app/aai-traversal/logs/ajsc-jetty/heap-dump"; +JVM_OPTS="${JVM_OPTS} ${POST_JVM_OPTS}"; + +JAVA_OPTS="${PRE_JAVA_OPTS} -DAJSC_HOME=$APP_HOME"; +JAVA_OPTS="${JAVA_OPTS} -Dserver.port=${SERVER_PORT}"; +JAVA_OPTS="${JAVA_OPTS} -DBUNDLECONFIG_DIR=./resources"; +JAVA_OPTS="${JAVA_OPTS} -Dserver.local.startpath=${RESOURCES_HOME}"; +JAVA_OPTS="${JAVA_OPTS} -DAAI_CHEF_ENV=${AAI_CHEF_ENV}"; +JAVA_OPTS="${JAVA_OPTS} -DSCLD_ENV=${SCLD_ENV}"; +JAVA_OPTS="${JAVA_OPTS} -DAFT_ENVIRONMENT=${AFT_ENVIRONMENT}"; +JAVA_OPTS="${JAVA_OPTS} -DlrmName=com.att.ajsc.traversal"; +JAVA_OPTS="${JAVA_OPTS} -DAAI_BUILD_NUMBER=${AAI_BUILD_NUMBER}"; +JAVA_OPTS="${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom"; +JAVA_OPTS="${JAVA_OPTS} -Dloader.path=$APP_HOME/resources"; +JAVA_OPTS="${JAVA_OPTS} ${POST_JAVA_OPTS}"; + +JAVA_MAIN_JAR=$(ls lib/aai-traversal-*SNAPSHOT.jar); + +${JAVA_CMD} ${JVM_OPTS} ${JAVA_OPTS} -jar ${JAVA_MAIN_JAR}; diff --git a/aai-traversal/src/main/java/org/onap/aai/Profiles.java b/aai-traversal/src/main/java/org/onap/aai/Profiles.java new file mode 100644 index 0000000..0b1292d --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/Profiles.java @@ -0,0 +1,12 @@ +package org.onap.aai; + +public final class Profiles { + + public static final String DMAAP = "dmaap"; + public static final String DME2 = "dme2"; + + public static final String ONE_WAY_SSL = "one-way-ssl"; + public static final String TWO_WAY_SSL = "two-way-ssl"; + + private Profiles(){} +} diff --git a/aai-traversal/src/main/java/org/onap/aai/TraversalApp.java b/aai-traversal/src/main/java/org/onap/aai/TraversalApp.java new file mode 100644 index 0000000..fb97908 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/TraversalApp.java @@ -0,0 +1,130 @@ +package org.onap.aai; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import org.onap.aai.config.PropertyPasswordConfiguration; +import org.onap.aai.dbmap.AAIGraph; +import org.onap.aai.exceptions.AAIException; +import org.onap.aai.introspection.ModelInjestor; +import org.onap.aai.logging.LoggingContext; +import org.onap.aai.util.AAIConfig; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration; +import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.core.env.Environment; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import java.util.UUID; + +@SpringBootApplication +// Component Scan provides a way to look for spring beans +// It only searches beans in the following packages +// Any method annotated with @Bean annotation or any class +// with @Component, @Configuration, @Service will be picked up +@ComponentScan(basePackages = { + "org.onap.aai.config", + "org.onap.aai.web", + "org.onap.aai.tasks", + "org.onap.aai.rest", + "com.att.ajsc.common" +}) +@EnableAutoConfiguration(exclude = { + DataSourceAutoConfiguration.class, + DataSourceTransactionManagerAutoConfiguration.class, + HibernateJpaAutoConfiguration.class +}) +public class TraversalApp { + + private static final EELFLogger logger = EELFManager.getInstance().getLogger(TraversalApp.class.getName()); + + private static final String APP_NAME = "aai-traversal"; + + @Autowired + private Environment env; + + @PostConstruct + private void init() throws AAIException { + System.setProperty("org.onap.aai.serverStarted", "false"); + setDefaultProps(); + + LoggingContext.save(); + LoggingContext.component("init"); + LoggingContext.partnerName("NA"); + LoggingContext.targetEntity(APP_NAME); + LoggingContext.requestId(UUID.randomUUID().toString()); + LoggingContext.serviceName(APP_NAME); + LoggingContext.targetServiceName("contextInitialized"); + + logger.info("AAI Server initialization started..."); + + // Setting this property to allow for encoded slash (/) in the path parameter + // This is only needed for tomcat keeping this as temporary + System.setProperty("org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH", "true"); + + logger.info("Starting AAIGraph connections and the ModelInjestor"); + + if(env.acceptsProfiles(Profiles.TWO_WAY_SSL) && env.acceptsProfiles(Profiles.ONE_WAY_SSL)){ + logger.warn("You have seriously misconfigured your application"); + } + + AAIConfig.init(); + ModelInjestor.getInstance(); + AAIGraph.getInstance(); + } + + @PreDestroy + public void cleanup(){ + logger.info("Shutting down both realtime and cached connections"); + AAIGraph.getInstance().graphShutdown(); + } + + public static void main(String[] args) { + + setDefaultProps(); + SpringApplication app = new SpringApplication(TraversalApp.class); + app.setRegisterShutdownHook(true); + app.addInitializers(new PropertyPasswordConfiguration()); + Environment env = app.run(args).getEnvironment(); + + logger.info( + "Application '{}' is running on {}!" , + env.getProperty("spring.application.name"), + env.getProperty("server.port") + ); + + logger.info("Traversal MicroService Started"); + logger.error("Traversal MicroService Started"); + logger.debug("Traversal MicroService Started"); + System.out.println("Traversal Microservice Started"); + } + + public static void setDefaultProps(){ + + if (System.getProperty("file.separator") == null) { + System.setProperty("file.separator", "/"); + } + + String currentDirectory = System.getProperty("user.dir"); + + if (System.getProperty("AJSC_HOME") == null) { + System.setProperty("AJSC_HOME", "."); + } + + if(currentDirectory.contains(APP_NAME)){ + if (System.getProperty("BUNDLECONFIG_DIR") == null) { + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); + } + } else { + if (System.getProperty("BUNDLECONFIG_DIR") == null) { + System.setProperty("BUNDLECONFIG_DIR", "aai-traversal/src/main/resources"); + } + } + + } +} diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsErrorMessageLookupService.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsErrorMessageLookupService.java deleted file mode 100644 index 6aa1f29..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsErrorMessageLookupService.java +++ /dev/null @@ -1,99 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.ajsc_aai; - -//import java.util.HashMap; -//import java.util.Map; - -//import javax.ws.rs.GET; -//import javax.ws.rs.HeaderParam; -//import javax.ws.rs.Path; -//import javax.ws.rs.PathParam; -//import javax.ws.rs.Produces; - -//import org.slf4j.Logger; -//import org.slf4j.LoggerFactory; -//import org.springframework.web.context.ContextLoader; -//import org.springframework.web.context.WebApplicationContext; - -//import ajsc.ErrorMessageLookupService; - -//@Path("/errormessage") -//public class JaxrsErrorMessageLookupService { - - //private final static Logger logger = LoggerFactory - //.getLogger(ErrorMessageLookupService.class); - - //* - //Gets the message. - - //@param input the input - //@param errorCode the error code - //@param appId the app id - //@param operation the operation - //@param messageText the message text - //@param isRESTService the is REST service - //@param faultEntity the fault entity - //@param ConvID the conv ID - //@return the message - //@GET - //@Path("/emls") - //@Produces("text/plain") - //public String getMessage(@PathParam("input") String input, - //@HeaderParam("errorCode") String errorCode, - //@HeaderParam("appId") String appId, - //@HeaderParam("operation") String operation, - //@HeaderParam("messageText") String messageText, - //@HeaderParam("isRESTService") String isRESTService, - //@HeaderParam("faultEntity") String faultEntity, - //@HeaderParam("ConvID") String ConvID) { - - //Map<String, String> headers = new HashMap<String, String>(); - //headers.put(errorCode, errorCode); - //headers.put(appId, appId); - //headers.put(operation, operation); - //headers.put(messageText, messageText); - //headers.put(isRESTService, isRESTService); - //headers.put(faultEntity, faultEntity); - //headers.put(ConvID, ConvID); - - //WebApplicationContext applicationContext = ContextLoader - //.getCurrentWebApplicationContext(); - - //ErrorMessageLookupService e = (ErrorMessageLookupService) applicationContext - //.getBean("errorMessageLookupService"); - - //String message = e.getExceptionDetails(appId, operation, errorCode, - //messageText,isRESTService, faultEntity, ConvID); - - //System.out.println("Error code = " + errorCode); - //System.out.println("appId = " + appId); - //System.out.println("operation = " + operation); - //System.out.println("messageText = " + messageText); - //System.out.println("isRESTService = " + isRESTService); - //System.out.println("faultEntity = " + faultEntity); - //System.out.println("ConvID = " + ConvID); - //return "The exception message is:\n " + message; - //} - -//} - diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsUserService.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsUserService.java deleted file mode 100644 index 29cf62a..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/JaxrsUserService.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.ajsc_aai; - -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import java.util.Map; -import java.util.HashMap; - -@Path("/user") -public class JaxrsUserService { - - private static final Map<String,String> userIdToNameMap; - static { - userIdToNameMap = new HashMap<>(); - userIdToNameMap.put("userID1","Name1"); - userIdToNameMap.put("userID2","Name2"); - } - - /** - * Lookup user. - * - * @param userId the user id - * @return the string - */ - @GET - @Path("/{userId}") - @Produces("text/plain") - public String lookupUser(@PathParam("userId") String userId) { - String name = userIdToNameMap.get(userId); - return name != null ? name : "unknown id"; - } - -} diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesListener.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesListener.java deleted file mode 100644 index c806045..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesListener.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesMap.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesMap.java deleted file mode 100644 index 7274c61..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertiesMap.java +++ /dev/null @@ -1,127 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.ajsc_aai.filemonitor; - -import java.io.File; -import java.io.FileInputStream; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; - -public class ServicePropertiesMap -{ - private static HashMap<String, HashMap<String, String>> mapOfMaps = new HashMap<String, HashMap<String, String>>(); - private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(ServicePropertiesMap.class); - - /** - * Refresh. - * - * @param file the file - * @throws Exception the exception - */ - public static void refresh(File file) throws Exception - { - try - { - LOGGER.info("Loading properties - " + (file != null?file.getName():"")); - - //Store .json & .properties files into map of maps - String filePath = file.getPath(); - - if(filePath.lastIndexOf(".json")>0){ - - ObjectMapper om = new ObjectMapper(); - TypeReference<HashMap<String, String>> typeRef = new TypeReference<HashMap<String, String>>() {}; - HashMap<String, String> propMap = om.readValue(file, typeRef); - HashMap<String, String> lcasePropMap = new HashMap<String, String>(); - for (String key : propMap.keySet() ) - { - String lcaseKey = ifNullThenEmpty(key); - lcasePropMap.put(lcaseKey, propMap.get(key)); - } - - mapOfMaps.put(file.getName(), lcasePropMap); - - - }else if(filePath.lastIndexOf(".properties")>0){ - Properties prop = new Properties(); - FileInputStream fis = new FileInputStream(file); - prop.load(fis); - - @SuppressWarnings("unchecked") - HashMap<String, String> propMap = new HashMap<String, String>((Map)prop); - - mapOfMaps.put(file.getName(), propMap); - } - - LOGGER.info("File - " + file.getName() + " is loaded into the map and the corresponding system properties have been refreshed"); - } - catch (Exception e) - { - LOGGER.error("File " + (file != null?file.getName():"") + " cannot be loaded into the map ", e); - throw new Exception("Error reading map file " + (file != null?file.getName():""), e); - } - } - - /** - * Gets the property. - * - * @param fileName the file name - * @param propertyKey the property key - * @return the property - */ - public static String getProperty(String fileName, String propertyKey) - { - HashMap<String, String> propMap = mapOfMaps.get(fileName); - return propMap!=null?propMap.get(ifNullThenEmpty(propertyKey)):""; - } - - /** - * Gets the properties. - * - * @param fileName the file name - * @return the properties - */ - public static HashMap<String, String> getProperties(String fileName){ - return mapOfMaps.get(fileName); - } - - /** - * If null then empty. - * - * @param key the key - * @return the string - */ - private static String ifNullThenEmpty(String key) { - if (key == null) { - return ""; - } else { - return key; - } - } - -} diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertyService.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertyService.java deleted file mode 100644 index c806045..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/filemonitor/ServicePropertyService.java +++ /dev/null @@ -1,21 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ diff --git a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/util/ServicePropertiesMapBean.java b/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/util/ServicePropertiesMapBean.java deleted file mode 100644 index 71c290b..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/ajsc_aai/util/ServicePropertiesMapBean.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.ajsc_aai.util; - -import org.onap.aai.ajsc_aai.filemonitor.ServicePropertiesMap; - -public class ServicePropertiesMapBean { - - /** - * Gets the property. - * - * @param propFileName the prop file name - * @param propertyKey the property key - * @return the property - */ - public static String getProperty(String propFileName, String propertyKey) { - return ServicePropertiesMap.getProperty(propFileName, propertyKey); - } -} diff --git a/aai-traversal/src/main/java/org/onap/aai/config/DmaapConfig.java b/aai-traversal/src/main/java/org/onap/aai/config/DmaapConfig.java deleted file mode 100644 index 247ecf7..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/config/DmaapConfig.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.config; - -import org.apache.activemq.broker.BrokerService; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class DmaapConfig { - - @Bean(destroyMethod = "stop") - public BrokerService brokerService() throws Exception { - - BrokerService broker = new BrokerService(); - broker.addConnector("tcp://localhost:61446"); - broker.setPersistent(false); - broker.setUseJmx(false); - broker.setSchedulerSupport(false); - broker.start(); - - return broker; - } -} diff --git a/aai-traversal/src/main/java/org/onap/aai/config/JettyPasswordDecoder.java b/aai-traversal/src/main/java/org/onap/aai/config/JettyPasswordDecoder.java new file mode 100644 index 0000000..069d71b --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/config/JettyPasswordDecoder.java @@ -0,0 +1,14 @@ +package org.onap.aai.config; + +import org.eclipse.jetty.util.security.Password; + +public class JettyPasswordDecoder implements PasswordDecoder { + + @Override + public String decode(String input) { + if (input.startsWith("OBF:")) { + return Password.deobfuscate(input); + } + return Password.deobfuscate("OBF:" + input); + } +} diff --git a/aai-traversal/src/main/java/org/onap/aai/config/PasswordDecoder.java b/aai-traversal/src/main/java/org/onap/aai/config/PasswordDecoder.java new file mode 100644 index 0000000..131bc6e --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/config/PasswordDecoder.java @@ -0,0 +1,6 @@ +package org.onap.aai.config; + +public interface PasswordDecoder { + + String decode(String input); +} diff --git a/aai-traversal/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java b/aai-traversal/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java new file mode 100644 index 0000000..a282f85 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java @@ -0,0 +1,62 @@ +package org.onap.aai.config; + +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.springframework.context.ApplicationContextInitializer; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.core.env.CompositePropertySource; +import org.springframework.core.env.ConfigurableEnvironment; +import org.springframework.core.env.EnumerablePropertySource; +import org.springframework.core.env.MapPropertySource; +import org.springframework.core.env.PropertySource; +import org.springframework.stereotype.Component; + +public class PropertyPasswordConfiguration implements ApplicationContextInitializer<ConfigurableApplicationContext> { + + private static final Pattern decodePasswordPattern = Pattern.compile("password\\((.*?)\\)"); + + private PasswordDecoder passwordDecoder = new JettyPasswordDecoder(); + + @Override + public void initialize(ConfigurableApplicationContext applicationContext) { + ConfigurableEnvironment environment = applicationContext.getEnvironment(); + for (PropertySource<?> propertySource : environment.getPropertySources()) { + Map<String, Object> propertyOverrides = new LinkedHashMap<>(); + decodePasswords(propertySource, propertyOverrides); + if (!propertyOverrides.isEmpty()) { + PropertySource<?> decodedProperties = new MapPropertySource("decoded "+ propertySource.getName(), propertyOverrides); + environment.getPropertySources().addBefore(propertySource.getName(), decodedProperties); + } + } + } + + private void decodePasswords(PropertySource<?> source, Map<String, Object> propertyOverrides) { + if (source instanceof EnumerablePropertySource) { + EnumerablePropertySource<?> enumerablePropertySource = (EnumerablePropertySource<?>) source; + for (String key : enumerablePropertySource.getPropertyNames()) { + Object rawValue = source.getProperty(key); + if (rawValue instanceof String) { + String decodedValue = decodePasswordsInString((String) rawValue); + propertyOverrides.put(key, decodedValue); + } + } + } + } + + private String decodePasswordsInString(String input) { + if (input == null) return null; + StringBuffer output = new StringBuffer(); + Matcher matcher = decodePasswordPattern.matcher(input); + while (matcher.find()) { + String replacement = passwordDecoder.decode(matcher.group(1)); + matcher.appendReplacement(output, replacement); + } + matcher.appendTail(output); + return output.toString(); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIContainerFilter.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIContainerFilter.java new file mode 100644 index 0000000..062cb27 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIContainerFilter.java @@ -0,0 +1,22 @@ +package org.onap.aai.interceptors; + +import java.util.UUID; + +import org.onap.aai.util.FormatDate; + +public abstract class AAIContainerFilter { + + protected String genDate() { + FormatDate fd = new FormatDate("YYMMdd-HH:mm:ss:SSS"); + return fd.getDateTime(); + } + + protected boolean isValidUUID(String transId) { + try { + UUID.fromString(transId); + } catch (IllegalArgumentException e) { + return false; + } + return true; + } +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIHeaderProperties.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIHeaderProperties.java index 733383a..8eca9b6 100644 --- a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIHeaderProperties.java +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAIHeaderProperties.java @@ -21,7 +21,21 @@ */ package org.onap.aai.interceptors; -public class AAIHeaderProperties { - +public final class AAIHeaderProperties { + + private AAIHeaderProperties(){} + public static final String REQUEST_CONTEXT = "aai-request-context"; + + public static final String HTTP_METHOD_OVERRIDE = "X-HTTP-Method-Override"; + + public static final String TRANSACTION_ID = "X-TransactionId"; + + public static final String FROM_APP_ID = "X-FromAppId"; + + public static final String AAI_TX_ID = "X-AAI-TXID"; + + public static final String AAI_REQUEST = "X-REQUEST"; + + public static final String AAI_REQUEST_TS = "X-REQUEST-TS"; } diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptor.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptor.java deleted file mode 100644 index 155d387..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptor.java +++ /dev/null @@ -1,286 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.interceptors; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.ws.rs.core.MediaType; - -import org.apache.commons.io.IOUtils; -import org.apache.cxf.helpers.CastUtils; -import org.apache.cxf.interceptor.LoggingMessage; -import org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor; -import org.apache.cxf.message.Message; -import org.onap.aai.exceptions.AAIException; -import org.onap.aai.logging.ErrorLogHelper; -import org.onap.aai.rest.util.EchoResponse; -import org.onap.aai.util.AAIConfig; -import org.onap.aai.util.AAIConstants; -import org.onap.aai.util.FormatDate; -import org.onap.aai.util.HbaseSaltPrefixer; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import org.slf4j.MDC; - -public class AAILogJAXRSInInterceptor extends JAXRSInInterceptor { - - protected final String COMPONENT = "aairest"; - protected final String CAMEL_REQUEST ="CamelHttpUrl"; - private static final Pattern uuidPattern = Pattern.compile("^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"); - private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(AAILogJAXRSInInterceptor.class); - - /** - * {@inheritDoc} - */ - public void handleMessage(Message message) { - - boolean go = false; - String uri = null; - String query = null; - try { - - uri = (String)message.get(CAMEL_REQUEST); - if (uri != null) { - query = (String)message.get(Message.QUERY_STRING); - } - - if (AAIConfig.get(AAIConstants.AAI_LOGGING_HBASE_INTERCEPTOR).equalsIgnoreCase("true") && - AAIConfig.get(AAIConstants.AAI_LOGGING_HBASE_ENABLED).equalsIgnoreCase("true")) { - go = true; - message.getExchange().put("AAI_LOGGING_HBASE_ENABLED", 1); - if (AAIConfig.get(AAIConstants.AAI_LOGGING_HBASE_LOGREQUEST).equalsIgnoreCase("true") ) { - message.getExchange().put("AAI_LOGGING_HBASE_LOGREQUEST", 1); - } - if (AAIConfig.get(AAIConstants.AAI_LOGGING_HBASE_LOGRESPONSE).equalsIgnoreCase("true") ) { - message.getExchange().put("AAI_LOGGING_HBASE_LOGRESPONSE", 1); - } - } - if (AAIConfig.get(AAIConstants.AAI_LOGGING_TRACE_ENABLED).equalsIgnoreCase("true") ) { - go = true; - message.getExchange().put("AAI_LOGGING_TRACE_ENABLED", 1); - if (AAIConfig.get(AAIConstants.AAI_LOGGING_TRACE_LOGREQUEST).equalsIgnoreCase("true") ) { - message.getExchange().put("AAI_LOGGING_TRACE_LOGREQUEST", 1); - } - if (AAIConfig.get(AAIConstants.AAI_LOGGING_TRACE_LOGRESPONSE).equalsIgnoreCase("true") ) { - message.getExchange().put("AAI_LOGGING_TRACE_LOGRESPONSE", 1); - } - } - } catch (AAIException e1) { - ErrorLogHelper.logException(e1); - } - - if ((uri != null) && (uri.contains(EchoResponse.echoPath))) { - // if it's a health check, we don't want to log ANYTHING if it's a lightweight one - if (query == null) { - if (message.getExchange().containsKey("AAI_LOGGING_HBASE_ENABLED")) { - message.getExchange().remove("AAI_LOGGING_HBASE_ENABLED"); - } - if (message.getExchange().containsKey("AAI_LOGGING_TRACE_ENABLED")) { - message.getExchange().remove("AAI_LOGGING_TRACE_ENABLED"); - } - go = false; - } - } - else if ((uri != null) && (uri.contains("/translog/"))) { - // if it's a translog query, we don't want to log the responses - if (message.getExchange().containsKey("AAI_LOGGING_HBASE_LOGRESPONSE")) { - message.getExchange().remove("AAI_LOGGING_HBASE_LOGRESPONSE"); - } - if (message.getExchange().containsKey("AAI_LOGGING_TRACE_LOGRESPONSE")) { - message.getExchange().remove("AAI_LOGGING_TRACE_LOGRESPONSE"); - } - } - - if (go == false) { // there's nothing to do - return; - } - - // DONE: get a TXID based on hostname, time (YYYYMMDDHHMMSSMILLIS, and LoggingMessage.nextId(); 20150326145301-1 - String now = genDate(); - - message.getExchange().put("AAI_RQST_TM", now); - - String id = (String)message.getExchange().get(LoggingMessage.ID_KEY); - - String fullId = null; - try { - if (id == null) { - id = LoggingMessage.nextId(); - } - fullId = AAIConfig.get(AAIConstants.AAI_NODENAME) + "-" + now + "-" + id; - fullId = HbaseSaltPrefixer.getInstance().prependSalt(fullId); - message.getExchange().put(LoggingMessage.ID_KEY, fullId); - } catch (AAIException e1) { - LOGGER.debug("config problem", e1); - } - - if (fullId == null) { - fullId = now + "-" + id; - fullId = HbaseSaltPrefixer.getInstance().prependSalt(fullId); - } - message.put(LoggingMessage.ID_KEY, fullId); - final LoggingMessage buffer = new LoggingMessage("Message", fullId); - - Integer responseCode = (Integer)message.get(Message.RESPONSE_CODE); - if (responseCode != null) { - buffer.getResponseCode().append(responseCode); - } - - String encoding = (String)message.get(Message.ENCODING); - - if (encoding != null) { - buffer.getEncoding().append(encoding); - } - String httpMethod = (String)message.get(Message.HTTP_REQUEST_METHOD); - if (httpMethod != null) { - buffer.getHttpMethod().append(httpMethod); - } - - String ct = (String)message.get(Message.CONTENT_TYPE); - if (ct != null) { - if ("*/*".equals(ct)) { - message.put(Message.CONTENT_TYPE, MediaType.APPLICATION_JSON); - ct = MediaType.APPLICATION_JSON; - } - buffer.getContentType().append(ct); - - } - Object headers = message.get(Message.PROTOCOL_HEADERS); - if (headers != null) { - buffer.getHeader().append(headers); - - Map<String, List<String>> headersList = CastUtils.cast((Map<?, ?>)message.get(Message.PROTOCOL_HEADERS)); - String transId = ""; - List<String> xt = headersList.get("X-TransactionId"); - String newTransId = transId; - boolean missingTransId = false; - boolean replacedTransId = false; - String logMsg = null; - if (xt != null) { - for (String transIdValue : xt) { - transId = transIdValue; - } - Matcher matcher = uuidPattern.matcher(transId); - if (!matcher.find()) { - replacedTransId = true; - // check if there's a colon, and check the first group? - if (transId.contains(":")) { - String[] uuidParts = transId.split(":"); - Matcher matcher2 = uuidPattern.matcher(uuidParts[0]); - if (matcher2.find()) { - newTransId = uuidParts[0]; - } else { - // punt, we tried to find it, it has a colon but no UUID-1 - newTransId = UUID.randomUUID().toString(); - } - } else { - newTransId = UUID.randomUUID().toString(); - } - } - } else { - newTransId = UUID.randomUUID().toString(); - missingTransId = true; - } - - if (missingTransId || replacedTransId) { - List<String> txList = new ArrayList<String>(); - txList.add(newTransId); - headersList.put("X-TransactionId", txList); - if (missingTransId) { - logMsg = "Missing requestID. Assigned " + newTransId; - } else if (replacedTransId) { - logMsg = "Replaced invalid requestID of " + transId + " Assigned " + newTransId; - } - MDC.put("RequestId",newTransId); - } - else { - MDC.put("RequestId",transId); - } - - - List<String> fromAppIdList = headersList.get("X-FromAppId"); - if (fromAppIdList != null) { - String fromAppId = null; - for (String fromAppIdValue : fromAppIdList) { - fromAppId = fromAppIdValue; - } - MDC.put("PartnerName",fromAppId); - } - - List<String> contentType = headersList.get("Content-Type"); - if (contentType == null) { - ct = (String)message.get(Message.CONTENT_TYPE); - headersList.put(Message.CONTENT_TYPE, Collections.singletonList(ct)); - } - - LOGGER.auditEvent("REST " + httpMethod + " " + ((query != null)? uri+"?"+query : uri) + " HbaseTxId=" + fullId); - LOGGER.info(logMsg); - } - - - if (uri != null) { - buffer.getAddress().append(uri); - if (query != null) { - buffer.getAddress().append("?").append(query); - } - } - - InputStream is = message.getContent(InputStream.class); - if (is != null) { - try { - String currentPayload = IOUtils.toString(is, "UTF-8"); - IOUtils.closeQuietly(is); - buffer.getPayload().append(currentPayload); - is = IOUtils.toInputStream(currentPayload, "UTF-8"); - message.setContent(InputStream.class, is); - IOUtils.closeQuietly(is); - } catch (Exception e) { - // It's ok to not have request input content - // throw new Fault(e); - } - } - - // this will be saved in the message exchange, and can be pulled out later... - message.getExchange().put(fullId + "_REQUEST", buffer.toString()); - } - - /** - * Gen date. - * - * @param aaiLogger the aai logger - * @param logline the logline - * @return the string - */ - protected String genDate() { - FormatDate fd = new FormatDate("YYMMdd-HH:mm:ss:SSS"); - return fd.getDateTime(); - } - -} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptor.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptor.java deleted file mode 100644 index a280023..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptor.java +++ /dev/null @@ -1,303 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.interceptors; - -import java.io.OutputStream; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.cxf.helpers.CastUtils; -import org.apache.cxf.interceptor.LoggingMessage; -import org.apache.cxf.io.CacheAndWriteOutputStream; -import org.apache.cxf.io.CachedOutputStream; -import org.apache.cxf.io.CachedOutputStreamCallback; -import org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor; -import org.apache.cxf.message.Message; -import org.onap.aai.exceptions.AAIException; -import org.onap.aai.logging.ErrorLogHelper; -import org.onap.aai.util.AAIConfig; -import org.onap.aai.util.AAIConstants; -import org.onap.aai.util.FormatDate; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -// right after the request is complete, there may be content -public class AAILogJAXRSOutInterceptor extends JAXRSOutInterceptor { - - private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(AAILogJAXRSOutInterceptor.class); - - protected final String COMPONENT = "aairest"; - protected final String CAMEL_REQUEST = "CamelHttpUrl"; - - /** - * {@inheritDoc} - */ - public void handleMessage(Message message) { - - String fullId = (String) message.getExchange().get(LoggingMessage.ID_KEY); - - Map<String, List<String>> headers = CastUtils.cast((Map<?, ?>) message.get(Message.PROTOCOL_HEADERS)); - if (headers == null) { - headers = new HashMap<String, List<String>>(); - } - - headers.put("X-AAI-TXID", Collections.singletonList(fullId)); - message.put(Message.PROTOCOL_HEADERS, headers); - - Message outMessage = message.getExchange().getOutMessage(); - final OutputStream os = outMessage.getContent(OutputStream.class); - if (os == null) { - return; - } - - // we only want to register the callback if there is good reason for it. - if (message.getExchange().containsKey("AAI_LOGGING_HBASE_ENABLED") || message.getExchange().containsKey("AAI_LOGGING_TRACE_ENABLED")) { - - final CacheAndWriteOutputStream newOut = new CacheAndWriteOutputStream(os); - message.setContent(OutputStream.class, newOut); - newOut.registerCallback(new LoggingCallback(message, os)); - } - - } - - class LoggingCallback implements CachedOutputStreamCallback { - - private final Message message; - private final OutputStream origStream; - - public LoggingCallback(final Message msg, final OutputStream os) { - this.message = msg; - this.origStream = os; - } - - public void onFlush(CachedOutputStream cos) { - - } - - public void onClose(CachedOutputStream cos) { - - String getValue = ""; - String postValue = ""; - String logValue = ""; - - try { - logValue = AAIConfig.get("aai.transaction.logging"); - getValue = AAIConfig.get("aai.transaction.logging.get"); - postValue = AAIConfig.get("aai.transaction.logging.post"); - } catch (AAIException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - if (!message.getExchange().containsKey("AAI_LOGGING_HBASE_ENABLED") && !message.getExchange().containsKey("AAI_LOGGING_TRACE_ENABLED")) { - return; - } - - String fullId = (String) message.getExchange().get(LoggingMessage.ID_KEY); - - Message inMessage = message.getExchange().getInMessage(); - String transId = null; - String fromAppId = null; - - Map<String, List<String>> headersList = CastUtils.cast((Map<?, ?>) inMessage.get(Message.PROTOCOL_HEADERS)); - if (headersList != null) { - List<String> xt = headersList.get("X-TransactionId"); - if (xt != null) { - for (String transIdValue : xt) { - transId = transIdValue; - } - } - List<String> fa = headersList.get("X-FromAppId"); - if (fa != null) { - for (String fromAppIdValue : fa) { - - fromAppId = fromAppIdValue; - } - } - } - - String httpMethod = (String) inMessage.get(Message.HTTP_REQUEST_METHOD); - - String uri = (String) inMessage.get(CAMEL_REQUEST); - String fullUri = uri; - if (uri != null) { - String query = (String) message.get(Message.QUERY_STRING); - if (query != null) { - fullUri = uri + "?" + query; - } - } - - String request = (String) message.getExchange().get(fullId + "_REQUEST"); - - Message outMessage = message.getExchange().getOutMessage(); - - final LoggingMessage buffer = new LoggingMessage("OUTMessage", fullId); - - // should we check this, and make sure it's not an error? - Integer responseCode = (Integer) outMessage.get(Message.RESPONSE_CODE); - if (responseCode == null) { - responseCode = 200; // this should never happen, but just in - // case we don't get one - } - buffer.getResponseCode().append(responseCode); - - String encoding = (String) outMessage.get(Message.ENCODING); - - if (encoding != null) { - buffer.getEncoding().append(encoding); - } - - String ct = (String) outMessage.get(Message.CONTENT_TYPE); - if (ct != null) { - buffer.getContentType().append(ct); - } - - Object headers = outMessage.get(Message.PROTOCOL_HEADERS); - if (headers != null) { - buffer.getHeader().append(headers); - } - - Boolean ss = false; - if (responseCode >= 200 && responseCode <= 299) { - ss = true; - } - String response = buffer.toString(); - - // this should have been set by the in interceptor - String rqstTm = (String) message.getExchange().get("AAI_RQST_TM"); - - // just in case it wasn't, we'll put this here. not great, but it'll - // have a val. - if (rqstTm == null) { - rqstTm = genDate(); - } - - - String respTm = genDate(); - - try { - String actualRequest = request; - StringBuilder builder = new StringBuilder(); - cos.writeCacheTo(builder, 100000); - // here comes my xml: - String payload = builder.toString(); - - String actualResponse = response; - if (payload == null) { - - } else { - actualResponse = response + payload; - } - - // we only log to AAI log if it's eanbled in the config props - // file - if (message.getExchange().containsKey("AAI_LOGGING_TRACE_ENABLED")) { - - if (message.getExchange().containsKey("AAI_LOGGING_TRACE_LOGREQUEST")) { - - // strip newlines from request - String traceRequest = actualRequest; - traceRequest = traceRequest.replace("\n", " "); - traceRequest = traceRequest.replace("\r", ""); - traceRequest = traceRequest.replace("\t", ""); - LOGGER.debug(traceRequest); - } - if (message.getExchange().containsKey("AAI_LOGGING_TRACE_LOGRESPONSE")) { - // strip newlines from response - String traceResponse = actualResponse; - traceResponse = traceResponse.replace("\n", " "); - traceResponse = traceResponse.replace("\r", ""); - traceResponse = traceResponse.replace("\t", ""); - - LOGGER.debug(traceResponse); - } - } - - // we only log to HBASE if it's enabled in the config props file - // TODO: pretty print XML/JSON. we might need to get the payload - // and envelope seperately - if (message.getExchange().containsKey("AAI_LOGGING_HBASE_ENABLED")) { - if (!message.getExchange().containsKey("AAI_LOGGING_HBASE_LOGREQUEST")) { - actualRequest = "loggingDisabled"; - } - if (!message.getExchange().containsKey("AAI_LOGGING_HBASE_LOGRESPONSE")) { - actualResponse = "loggingDisabled"; - } - - LOGGER.debug("action={}, urlin={}, HbTransId={}", httpMethod, fullUri, fullId); - - if (logValue.equals("false")) { - } else if (getValue.equals("false") && httpMethod.equals("GET")) { - } else if (postValue.equals("false") && httpMethod.equals("POST")) { - } else { - putTransaction(transId, responseCode.toString(), rqstTm, respTm, fromAppId + ":" + transId, fullUri, httpMethod, request, response, actualResponse); - - } - } - } catch (Exception ex) { - // ignore - } - - message.setContent(OutputStream.class, origStream); - - LOGGER.auditEvent("HTTP Response Code: {}", responseCode.toString()); - } - - } - - protected String genDate() { - FormatDate fd = new FormatDate("YYMMdd-HH:mm:ss:SSS"); - return fd.getDateTime(); - } - - public String putTransaction(String tid, String status, String rqstTm, String respTm, String srcId, String rsrcId, String rsrcType, String rqstBuf, String respBuf, String actualResponse) { - String tm = null; - - if (tid == null || "".equals(tid)) { - tm = this.genDate(); - tid = tm + "-"; - } - - String htid = tid; - - if (rqstTm == null || "".equals(rqstTm)) { - rqstTm = tm; - } - - if (respTm == null || "".equals(respTm)) { - respTm = tm; - } - - try { - LOGGER.debug(" transactionId:" + tid + " status: " + status + " rqstDate: " + rqstTm + " respDate: " + respTm + " sourceId: " + srcId + " resourceId: " - + rsrcId + " resourceType: " + rsrcType + " payload rqstBuf: " + rqstBuf + " payload respBuf: " + respBuf + " Payload Error Messages: " + actualResponse); - return htid; - } catch (Exception e) { - ErrorLogHelper.logError("AAI_4000", "Exception updating HBase:"); - return htid; - } - - } -} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/PostAaiAjscInterceptor.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/PostAaiAjscInterceptor.java deleted file mode 100644 index 1849b10..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/interceptors/PostAaiAjscInterceptor.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.interceptors; - -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.onap.aai.logging.LoggingContext; -import org.onap.aai.logging.LoggingContext.StatusCode; -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; - -import ajsc.beans.interceptors.AjscInterceptor; - -public class PostAaiAjscInterceptor implements AjscInterceptor { - - private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(PostAaiAjscInterceptor.class); - - private static class LazyAaiAjscInterceptor { - public static final PostAaiAjscInterceptor INSTANCE = new PostAaiAjscInterceptor(); - } - - public static PostAaiAjscInterceptor getInstance() { - return LazyAaiAjscInterceptor.INSTANCE; - } - - @Override - public boolean allowOrReject(HttpServletRequest req, HttpServletResponse resp, Map<?, ?> paramMap) - throws Exception { - final int httpStatusCode = resp.getStatus(); - LoggingContext.responseCode(Integer.toString(httpStatusCode)); - if ( httpStatusCode < 200 || httpStatusCode > 299 ) { - LoggingContext.statusCode(StatusCode.ERROR); - LoggingContext.responseDescription("Error"); - LOGGER.error(req.getRequestURL() + " call failed with responseCode=" + httpStatusCode); - } - else { - LoggingContext.responseDescription(LoggingContext.responseMap.get(LoggingContext.SUCCESS)); - LoggingContext.statusCode(StatusCode.COMPLETE); - LOGGER.info(req.getRequestURL() + " call succeeded"); - } - LoggingContext.clear(); - return true; - } -} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/PreAaiAjscInterceptor.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/PreAaiAjscInterceptor.java deleted file mode 100644 index b510d4b..0000000 --- a/aai-traversal/src/main/java/org/onap/aai/interceptors/PreAaiAjscInterceptor.java +++ /dev/null @@ -1,63 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.interceptors; - -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.onap.aai.logging.LoggingContext; - -import ajsc.beans.interceptors.AjscInterceptor; - -public class PreAaiAjscInterceptor implements AjscInterceptor { - private final static String TARGET_ENTITY = "aai-traversal"; - - private static class LazyAaiAjscInterceptor { - public static final PreAaiAjscInterceptor INSTANCE = new PreAaiAjscInterceptor(); - } - - public static PreAaiAjscInterceptor getInstance() { - return LazyAaiAjscInterceptor.INSTANCE; - } - - @Override - public boolean allowOrReject(HttpServletRequest req, HttpServletResponse resp, Map<?, ?> paramMap) - throws Exception { - - LoggingContext.init(); - - String serviceName = req.getMethod() + " " + req.getRequestURI().toString(); - LoggingContext.partnerName(req.getHeader("X-FromAppId")); - String queryStr = req.getQueryString(); - if ( queryStr != null ) { - serviceName = serviceName + "?" + queryStr; - } - LoggingContext.serviceName(serviceName); - LoggingContext.targetEntity(TARGET_ENTITY); - LoggingContext.targetServiceName("allowOrReject"); - LoggingContext.requestId(req.getHeader("X-TransactionId")); - LoggingContext.successStatusFields(); - return true; - } -} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/package-info.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/package-info.java new file mode 100644 index 0000000..131d46c --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/package-info.java @@ -0,0 +1,17 @@ +/** + * <b>Interceptors</b> package is subdivided to pre and post interceptors + * If you want to add an additional interceptor you would need to add + * the priority level to AAIRequestFilterPriority or AAIResponsePriority + * to give a value which indicates the order in which the interceptor + * will be triggered and also you will add that value like here + * + * <pre> + * <code> + * @Priority(AAIRequestFilterPriority.YOUR_PRIORITY) + * public class YourInterceptor extends AAIContainerFilter implements ContainerRequestFilter { + * + * } + * </code> + * </pre> + */ +package org.onap.aai.interceptors;
\ No newline at end of file diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/post/AAIResponseFilterPriority.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/AAIResponseFilterPriority.java new file mode 100644 index 0000000..d14c24f --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/AAIResponseFilterPriority.java @@ -0,0 +1,13 @@ +package org.onap.aai.interceptors.post; + +public final class AAIResponseFilterPriority { + + private AAIResponseFilterPriority() {} + + public static final int HEADER_MANIPULATION = 1000; + + public static final int RESPONSE_TRANS_LOGGING = 2000; + + public static final int RESET_LOGGING_CONTEXT = 3000; + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResetLoggingContext.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResetLoggingContext.java new file mode 100644 index 0000000..d1b74d2 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResetLoggingContext.java @@ -0,0 +1,50 @@ +package org.onap.aai.interceptors.post; + +import java.io.IOException; + +import javax.annotation.Priority; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerResponseContext; +import javax.ws.rs.container.ContainerResponseFilter; + +import org.onap.aai.interceptors.AAIContainerFilter; +import org.onap.aai.logging.LoggingContext; +import org.onap.aai.logging.LoggingContext.StatusCode; +import org.springframework.beans.factory.annotation.Autowired; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; + +@Priority(AAIResponseFilterPriority.RESET_LOGGING_CONTEXT) +public class ResetLoggingContext extends AAIContainerFilter implements ContainerResponseFilter { + + private static final EELFLogger LOGGER = EELFManager.getInstance().getLogger(ResetLoggingContext.class); + + @Autowired + private HttpServletRequest httpServletRequest; + + @Override + public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) + throws IOException { + + this.cleanLoggingContext(); + + } + + private void cleanLoggingContext() { + final String responseCode = LoggingContext.responseCode(); + String url = httpServletRequest.getRequestURL().toString(); + + if (responseCode != null && responseCode.startsWith("ERR.")) { + LoggingContext.statusCode(StatusCode.ERROR); + LOGGER.error(url + " call failed with responseCode=" + responseCode); + } else { + LoggingContext.statusCode(StatusCode.COMPLETE); + LOGGER.info(url + " call succeeded"); + } + + LoggingContext.clear(); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java new file mode 100644 index 0000000..a26334f --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java @@ -0,0 +1,30 @@ +package org.onap.aai.interceptors.post; + +import java.io.IOException; + +import javax.annotation.Priority; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerResponseContext; +import javax.ws.rs.container.ContainerResponseFilter; + +import org.onap.aai.interceptors.AAIContainerFilter; +import org.onap.aai.interceptors.AAIHeaderProperties; + +@Priority(AAIResponseFilterPriority.HEADER_MANIPULATION) +public class ResponseHeaderManipulation extends AAIContainerFilter implements ContainerResponseFilter { + + + @Override + public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) + throws IOException { + + updateResponseHeaders(requestContext, responseContext); + + } + + private void updateResponseHeaders(ContainerRequestContext requestContext, + ContainerResponseContext responseContext) { + responseContext.getHeaders().add(AAIHeaderProperties.AAI_TX_ID, requestContext.getProperty(AAIHeaderProperties.AAI_TX_ID)); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java new file mode 100644 index 0000000..7b18e45 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java @@ -0,0 +1,106 @@ +package org.onap.aai.interceptors.post; + +import java.io.IOException; +import java.util.Objects; +import java.util.Optional; + +import javax.annotation.Priority; +import javax.servlet.http.HttpServletResponse; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerResponseContext; +import javax.ws.rs.container.ContainerResponseFilter; + +import org.onap.aai.exceptions.AAIException; +import org.onap.aai.interceptors.AAIContainerFilter; +import org.onap.aai.interceptors.AAIHeaderProperties; +import org.onap.aai.logging.ErrorLogHelper; +import org.onap.aai.util.AAIConfig; +import org.springframework.beans.factory.annotation.Autowired; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import com.google.gson.JsonObject; + +@Priority(AAIResponseFilterPriority.RESPONSE_TRANS_LOGGING) +public class ResponseTransactionLogging extends AAIContainerFilter implements ContainerResponseFilter { + + private static final EELFLogger TRANSACTION_LOGGER = EELFManager.getInstance().getLogger(ResponseTransactionLogging.class); + + @Autowired + private HttpServletResponse httpServletResponse; + + @Override + public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) + throws IOException { + + this.transLogging(requestContext, responseContext); + + } + + private void transLogging(ContainerRequestContext requestContext, ContainerResponseContext responseContext) { + + String logValue; + String getValue; + String postValue; + + try { + logValue = AAIConfig.get("aai.transaction.logging"); + getValue = AAIConfig.get("aai.transaction.logging.get"); + postValue = AAIConfig.get("aai.transaction.logging.post"); + } catch (AAIException e) { + return; + } + + String transId = requestContext.getHeaderString(AAIHeaderProperties.TRANSACTION_ID); + String fromAppId = requestContext.getHeaderString(AAIHeaderProperties.FROM_APP_ID); + String fullUri = requestContext.getUriInfo().getRequestUri().toString(); + String requestTs = (String)requestContext.getProperty(AAIHeaderProperties.AAI_REQUEST_TS); + + String httpMethod = requestContext.getMethod(); + + String status = Integer.toString(responseContext.getStatus()); + + String request = (String)requestContext.getProperty(AAIHeaderProperties.AAI_REQUEST); + String response = this.getResponseString(responseContext); + + if (!Boolean.parseBoolean(logValue)) { + } else if (!Boolean.parseBoolean(getValue) && "GET".equals(httpMethod)) { + } else if (!Boolean.parseBoolean(postValue) && "POST".equals(httpMethod)) { + } else { + + JsonObject logEntry = new JsonObject(); + logEntry.addProperty("transactionId", transId); + logEntry.addProperty("status", status); + logEntry.addProperty("rqstDate", requestTs); + logEntry.addProperty("respDate", this.genDate()); + logEntry.addProperty("sourceId", fromAppId + ":" + transId); + logEntry.addProperty("resourceId", fullUri); + logEntry.addProperty("resourceType", httpMethod); + logEntry.addProperty("rqstBuf", Objects.toString(request, "")); + logEntry.addProperty("respBuf", Objects.toString(response, "")); + + try { + TRANSACTION_LOGGER.debug(logEntry.toString()); + } catch (Exception e) { + ErrorLogHelper.logError("AAI_4000", "Exception writing transaction log."); + } + } + + } + + private String getResponseString(ContainerResponseContext responseContext) { + JsonObject response = new JsonObject(); + response.addProperty("ID", responseContext.getHeaderString(AAIHeaderProperties.AAI_TX_ID)); + response.addProperty("Content-Type", this.httpServletResponse.getContentType()); + response.addProperty("Response-Code", responseContext.getStatus()); + response.addProperty("Headers", responseContext.getHeaders().toString()); + Optional<Object> entityOptional = Optional.ofNullable(responseContext.getEntity()); + if(entityOptional.isPresent()){ + response.addProperty("Entity", entityOptional.get().toString()); + } else { + response.addProperty("Entity", ""); + } + return response.toString(); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/AAIRequestFilterPriority.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/AAIRequestFilterPriority.java new file mode 100644 index 0000000..b3fc1b1 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/AAIRequestFilterPriority.java @@ -0,0 +1,18 @@ +package org.onap.aai.interceptors.pre; + +public final class AAIRequestFilterPriority { + + private AAIRequestFilterPriority() {} + + public static final int REQUEST_TRANS_LOGGING = 1000; + + public static final int HEADER_VALIDATION = 2000; + + public static final int SET_LOGGING_CONTEXT = 3000; + + public static final int AUTHORIZATION = 4000; + + public static final int HEADER_MANIPULATION = 5000; + + public static final int REQUEST_MODIFICATION = 6000; +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java new file mode 100644 index 0000000..88a492f --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java @@ -0,0 +1,88 @@ +/*- + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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========================================================= + */ + +package org.onap.aai.interceptors.pre; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +import javax.annotation.Priority; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerRequestFilter; +import javax.ws.rs.container.PreMatching; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.onap.aai.exceptions.AAIException; +import org.onap.aai.interceptors.AAIContainerFilter; +import org.onap.aai.interceptors.AAIHeaderProperties; +import org.onap.aai.logging.ErrorLogHelper; + +@PreMatching +@Priority(AAIRequestFilterPriority.HEADER_VALIDATION) +public class HeaderValidation extends AAIContainerFilter implements ContainerRequestFilter { + + @Override + public void filter(ContainerRequestContext requestContext) throws IOException { + + Optional<Response> oResp; + + String transId = requestContext.getHeaderString(AAIHeaderProperties.TRANSACTION_ID); + String fromAppId = requestContext.getHeaderString(AAIHeaderProperties.FROM_APP_ID); + + List<MediaType> acceptHeaderValues = requestContext.getAcceptableMediaTypes(); + + oResp = this.validateHeaderValuePresence(fromAppId, "AAI_4009", acceptHeaderValues); + if (oResp.isPresent()) { + requestContext.abortWith(oResp.get()); + return; + } + oResp = this.validateHeaderValuePresence(transId, "AAI_4010", acceptHeaderValues); + if (oResp.isPresent()) { + requestContext.abortWith(oResp.get()); + return; + } + + if (!this.isValidUUID(transId)) { + transId = UUID.randomUUID().toString(); + requestContext.getHeaders().get(AAIHeaderProperties.TRANSACTION_ID).clear(); + requestContext.getHeaders().add(AAIHeaderProperties.TRANSACTION_ID, transId); + } + + } + + private Optional<Response> validateHeaderValuePresence(String value, String errorCode, + List<MediaType> acceptHeaderValues) { + Response response = null; + AAIException aaie; + if (value == null) { + aaie = new AAIException(errorCode); + return Optional.of(Response.status(aaie.getErrorObject().getHTTPResponseCode()) + .entity(ErrorLogHelper.getRESTAPIErrorResponse(acceptHeaderValues, aaie, new ArrayList<>())) + .build()); + } + + return Optional.ofNullable(response); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java new file mode 100644 index 0000000..63a92cf --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java @@ -0,0 +1,71 @@ +/*- + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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========================================================= + */ + +package org.onap.aai.interceptors.pre; + +import java.io.IOException; +import java.util.Collections; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.annotation.Priority; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerRequestFilter; +import javax.ws.rs.container.PreMatching; +import javax.ws.rs.core.MultivaluedMap; + +import org.onap.aai.interceptors.AAIContainerFilter; +import org.onap.aai.interceptors.AAIHeaderProperties; +import org.springframework.beans.factory.annotation.Autowired; + +@PreMatching +@Priority(AAIRequestFilterPriority.HEADER_MANIPULATION) +public class RequestHeaderManipulation extends AAIContainerFilter implements ContainerRequestFilter { + + @Autowired + private HttpServletRequest httpServletRequest; + + private static final Pattern versionedEndpoint = Pattern.compile("^/aai/(v\\d+)"); + + @Override + public void filter(ContainerRequestContext requestContext) throws IOException { + + String uri = httpServletRequest.getRequestURI(); + this.addRequestContext(uri, requestContext.getHeaders()); + + } + + private void addRequestContext(String uri, MultivaluedMap<String, String> requestHeaders) { + + String rc = ""; + + Matcher match = versionedEndpoint.matcher(uri); + if (match.find()) { + rc = match.group(1); + } + + if (requestHeaders.containsKey(AAIHeaderProperties.REQUEST_CONTEXT)) { + requestHeaders.remove(AAIHeaderProperties.REQUEST_CONTEXT); + } + requestHeaders.put(AAIHeaderProperties.REQUEST_CONTEXT, Collections.singletonList(rc)); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java new file mode 100644 index 0000000..a5f8789 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java @@ -0,0 +1,77 @@ +/*- + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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========================================================= + */ + +package org.onap.aai.interceptors.pre; + +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; + +import javax.annotation.Priority; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerRequestFilter; +import javax.ws.rs.container.PreMatching; +import javax.ws.rs.core.MultivaluedMap; +import javax.ws.rs.core.UriBuilder; + +import org.onap.aai.interceptors.AAIContainerFilter; + +@PreMatching +@Priority(AAIRequestFilterPriority.HEADER_VALIDATION) +public class RequestModification extends AAIContainerFilter implements ContainerRequestFilter { + + @Override + public void filter(ContainerRequestContext requestContext) throws IOException { + + this.cleanDME2QueryParams(requestContext); + + } + + private void cleanDME2QueryParams(ContainerRequestContext request) { + UriBuilder builder = request.getUriInfo().getRequestUriBuilder(); + MultivaluedMap<String, String> queries = request.getUriInfo().getQueryParameters(); + + String[] blacklist = { "version", "envContext", "routeOffer" }; + Set<String> blacklistSet = Arrays.stream(blacklist).collect(Collectors.toSet()); + + boolean remove = true; + + for (String param : blacklistSet) { + if (!queries.containsKey(param)) { + remove = false; + break; + } + } + + if (remove) { + for (Map.Entry<String, List<String>> query : queries.entrySet()) { + String key = query.getKey(); + if (blacklistSet.contains(key)) { + builder.replaceQueryParam(key); + } + } + } + request.setRequestUri(builder.build()); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java new file mode 100644 index 0000000..83d89ae --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java @@ -0,0 +1,113 @@ +/*- + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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========================================================= + */ + +package org.onap.aai.interceptors.pre; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Random; +import java.util.UUID; + +import javax.annotation.Priority; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerRequestFilter; +import javax.ws.rs.container.PreMatching; +import javax.ws.rs.core.MediaType; + +import org.glassfish.jersey.message.internal.ReaderWriter; +import org.glassfish.jersey.server.ContainerException; +import org.onap.aai.exceptions.AAIException; +import org.onap.aai.interceptors.AAIContainerFilter; +import org.onap.aai.interceptors.AAIHeaderProperties; +import org.onap.aai.util.AAIConfig; +import org.onap.aai.util.AAIConstants; +import org.onap.aai.util.HbaseSaltPrefixer; +import org.springframework.beans.factory.annotation.Autowired; + +import com.google.gson.JsonObject; + +@PreMatching +@Priority(AAIRequestFilterPriority.REQUEST_TRANS_LOGGING) +public class RequestTransactionLogging extends AAIContainerFilter implements ContainerRequestFilter { + + @Autowired + private HttpServletRequest httpServletRequest; + + @Override + public void filter(ContainerRequestContext requestContext) throws IOException { + + String currentTimeStamp = genDate(); + String fullId = this.getAAITxIdToHeader(currentTimeStamp); + this.addToRequestContext(requestContext, AAIHeaderProperties.AAI_TX_ID, fullId); + this.addToRequestContext(requestContext, AAIHeaderProperties.AAI_REQUEST, this.getRequest(requestContext, fullId)); + this.addToRequestContext(requestContext, AAIHeaderProperties.AAI_REQUEST_TS, currentTimeStamp); + } + + private void addToRequestContext(ContainerRequestContext requestContext, String name, String aaiTxIdToHeader) { + requestContext.setProperty(name, aaiTxIdToHeader); + } + + private String getAAITxIdToHeader(String currentTimeStamp) { + String txId = UUID.randomUUID().toString(); + try { + txId = HbaseSaltPrefixer.getInstance().prependSalt(AAIConfig.get(AAIConstants.AAI_NODENAME) + "-" + + currentTimeStamp + "-" + new Random(System.currentTimeMillis()).nextInt(99999)); + } catch (AAIException e) { + } + + return txId; + } + + private String getRequest(ContainerRequestContext requestContext, String fullId) { + + JsonObject request = new JsonObject(); + request.addProperty("ID", fullId); + request.addProperty("Http-Method", requestContext.getMethod()); + String contentType = httpServletRequest.getContentType(); + + if(contentType == null){ + contentType = MediaType.APPLICATION_JSON; + requestContext.getHeaders().add("Content-Type", contentType); + } + + request.addProperty("Content-Type", contentType); + request.addProperty("Headers", requestContext.getHeaders().toString()); + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + InputStream in = requestContext.getEntityStream(); + + try { + if (in.available() > 0) { + ReaderWriter.writeTo(in, out); + byte[] requestEntity = out.toByteArray(); + request.addProperty("Payload", new String(requestEntity, "UTF-8")); + requestContext.setEntityStream(new ByteArrayInputStream(requestEntity)); + } + } catch (IOException ex) { + throw new ContainerException(ex); + } + + return request.toString(); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/SetLoggingContext.java b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/SetLoggingContext.java new file mode 100644 index 0000000..76de206 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/interceptors/pre/SetLoggingContext.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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========================================================= + */ + +package org.onap.aai.interceptors.pre; + +import java.io.IOException; + +import javax.annotation.Priority; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.container.ContainerRequestContext; +import javax.ws.rs.container.ContainerRequestFilter; +import javax.ws.rs.container.PreMatching; + +import org.onap.aai.interceptors.AAIContainerFilter; +import org.onap.aai.interceptors.AAIHeaderProperties; +import org.onap.aai.logging.LoggingContext; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.env.Environment; + +@PreMatching +@Priority(AAIRequestFilterPriority.SET_LOGGING_CONTEXT) +public class SetLoggingContext extends AAIContainerFilter implements ContainerRequestFilter { + + @Autowired + private Environment environment; + + @Autowired + private HttpServletRequest httpServletRequest; + + @Override + public void filter(ContainerRequestContext requestContext) throws IOException { + + String uri = httpServletRequest.getRequestURI(); + String queryString = httpServletRequest.getQueryString(); + + if(queryString != null && !queryString.isEmpty()){ + uri = uri + "?" + queryString; + } + + String httpMethod = requestContext.getMethod(); + String transId = requestContext.getHeaderString(AAIHeaderProperties.TRANSACTION_ID); + String fromAppId = requestContext.getHeaderString(AAIHeaderProperties.FROM_APP_ID); + + LoggingContext.init(); + LoggingContext.requestId(transId); + LoggingContext.partnerName(fromAppId); + LoggingContext.targetEntity(environment.getProperty("spring.application.name")); + LoggingContext.component(fromAppId); + LoggingContext.serviceName(httpMethod + " " + uri); + LoggingContext.targetServiceName(httpMethod + " " + uri); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/rest/retired/RetiredConsumer.java b/aai-traversal/src/main/java/org/onap/aai/rest/retired/RetiredConsumer.java index 0188142..301fa5c 100644 --- a/aai-traversal/src/main/java/org/onap/aai/rest/retired/RetiredConsumer.java +++ b/aai-traversal/src/main/java/org/onap/aai/rest/retired/RetiredConsumer.java @@ -35,7 +35,7 @@ import javax.ws.rs.core.HttpHeaders; import javax.ws.rs.core.Response; import javax.ws.rs.core.UriInfo; -import org.apache.cxf.jaxrs.ext.PATCH; +import io.swagger.jaxrs.PATCH; import org.onap.aai.exceptions.AAIException; import org.onap.aai.logging.ErrorLogHelper; diff --git a/aai-traversal/src/main/java/org/onap/aai/rest/util/EchoResponse.java b/aai-traversal/src/main/java/org/onap/aai/rest/util/EchoResponse.java index 55a07e4..1dfc99f 100644 --- a/aai-traversal/src/main/java/org/onap/aai/rest/util/EchoResponse.java +++ b/aai-traversal/src/main/java/org/onap/aai/rest/util/EchoResponse.java @@ -42,11 +42,12 @@ import org.onap.aai.restcore.RESTAPI; /** * The Class EchoResponse. */ +@Path("/util") public class EchoResponse extends RESTAPI { protected static String authPolicyFunctionName = "util"; - public static final String echoPath = "/util/echo"; + public static final String echoPath = "/echo"; /** * Simple health-check API that echos back the X-FromAppId and X-TransactionId to clients. diff --git a/aai-traversal/src/main/java/org/onap/aai/web/JerseyConfiguration.java b/aai-traversal/src/main/java/org/onap/aai/web/JerseyConfiguration.java new file mode 100644 index 0000000..96fd2a2 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/web/JerseyConfiguration.java @@ -0,0 +1,127 @@ +package org.onap.aai.web; + +import org.glassfish.jersey.filter.LoggingFilter; +import org.glassfish.jersey.server.ResourceConfig; +import org.glassfish.jersey.servlet.ServletProperties; +import org.onap.aai.rest.QueryConsumer; +import org.onap.aai.rest.retired.V3ThroughV7Consumer; +import org.onap.aai.rest.search.ModelAndNamedQueryRestProvider; +import org.onap.aai.rest.search.SearchProvider; +import org.onap.aai.rest.util.EchoResponse; +import org.reflections.Reflections; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Profile; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; + +import javax.annotation.Priority; +import javax.ws.rs.ApplicationPath; +import javax.ws.rs.container.ContainerRequestFilter; +import javax.ws.rs.container.ContainerResponseFilter; +import java.util.List; +import java.util.Set; +import java.util.logging.Logger; +import java.util.stream.Collectors; + +@Component +@ApplicationPath("/aai") +public class JerseyConfiguration extends ResourceConfig { + + private static final Logger log = Logger.getLogger(JerseyConfiguration.class.getName()); + + private Environment env; + + @Autowired + public JerseyConfiguration(Environment env) { + + this.env = env; + + register(SearchProvider.class); + register(ModelAndNamedQueryRestProvider.class); + register(QueryConsumer.class); + + register(V3ThroughV7Consumer.class); + register(EchoResponse.class); + + //Request Filters + registerFiltersForRequests(); + // Response Filters + registerFiltersForResponses(); + + property(ServletProperties.FILTER_FORWARD_ON_404, true); + + // Following registers the request headers and response headers + // If the LoggingFilter second argument is set to true, it will print response value as well + if ("true".equalsIgnoreCase(env.getProperty("aai.request.logging.enabled"))) { + register(new LoggingFilter(log, false)); + } + } + + public void registerFiltersForRequests() { + + // Find all the classes within the interceptors package + Reflections reflections = new Reflections("org.onap.aai.interceptors"); + // Filter them based on the clazz that was passed in + Set<Class<? extends ContainerRequestFilter>> filters = reflections.getSubTypesOf(ContainerRequestFilter.class); + + + // Check to ensure that each of the filter has the @Priority annotation and if not throw exception + for (Class filterClass : filters) { + if (filterClass.getAnnotation(Priority.class) == null) { + throw new RuntimeException("Container filter " + filterClass.getName() + " does not have @Priority annotation"); + } + } + + // Turn the set back into a list + List<Class<? extends ContainerRequestFilter>> filtersList = filters + .stream() + .filter(f -> { + if (f.isAnnotationPresent(Profile.class) + && !env.acceptsProfiles(f.getAnnotation(Profile.class).value())) { + return false; + } + return true; + }) + .collect(Collectors.toList()); + + // Sort them by their priority levels value + filtersList.sort((c1, c2) -> Integer.valueOf(c1.getAnnotation(Priority.class).value()).compareTo(c2.getAnnotation(Priority.class).value())); + + // Then register this to the jersey application + filtersList.forEach(this::register); + } + + public void registerFiltersForResponses() { + + // Find all the classes within the interceptors package + Reflections reflections = new Reflections("org.onap.aai.interceptors"); + // Filter them based on the clazz that was passed in + Set<Class<? extends ContainerResponseFilter>> filters = reflections.getSubTypesOf(ContainerResponseFilter.class); + + + // Check to ensure that each of the filter has the @Priority annotation and if not throw exception + for (Class filterClass : filters) { + if (filterClass.getAnnotation(Priority.class) == null) { + throw new RuntimeException("Container filter " + filterClass.getName() + " does not have @Priority annotation"); + } + } + + // Turn the set back into a list + List<Class<? extends ContainerResponseFilter>> filtersList = filters.stream() + .filter(f -> { + if (f.isAnnotationPresent(Profile.class) + && !env.acceptsProfiles(f.getAnnotation(Profile.class).value())) { + return false; + } + return true; + }) + .collect(Collectors.toList()); + + // Sort them by their priority levels value + filtersList.sort((c1, c2) -> Integer.valueOf(c1.getAnnotation(Priority.class).value()).compareTo(c2.getAnnotation(Priority.class).value())); + + // Then register this to the jersey application + filtersList.forEach(this::register); + } + +} diff --git a/aai-traversal/src/main/java/org/onap/aai/web/LocalHostAccessLog.java b/aai-traversal/src/main/java/org/onap/aai/web/LocalHostAccessLog.java new file mode 100644 index 0000000..4344e36 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/web/LocalHostAccessLog.java @@ -0,0 +1,39 @@ +package org.onap.aai.web; + +import ch.qos.logback.access.jetty.RequestLogImpl; +import org.eclipse.jetty.server.handler.HandlerCollection; +import org.eclipse.jetty.server.handler.RequestLogHandler; +import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; +import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory; +import org.springframework.boot.context.embedded.jetty.JettyServerCustomizer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Arrays; + +@Configuration +public class LocalHostAccessLog { + + @Bean + public EmbeddedServletContainerFactory jettyConfigBean(){ + JettyEmbeddedServletContainerFactory jef = new JettyEmbeddedServletContainerFactory(); + jef.addServerCustomizers((JettyServerCustomizer) server -> { + + HandlerCollection handlers = new HandlerCollection(); + + Arrays.stream(server.getHandlers()).forEach(handlers::addHandler); + + RequestLogHandler requestLogHandler = new RequestLogHandler(); + requestLogHandler.setServer(server); + + RequestLogImpl requestLogImpl = new RequestLogImpl(); + requestLogImpl.setResource("/localhost-access-logback.xml"); + requestLogImpl.start(); + + requestLogHandler.setRequestLog(requestLogImpl); + handlers.addHandler(requestLogHandler); + server.setHandler(handlers); + }); + return jef; + } +} diff --git a/aai-traversal/src/main/java/org/onap/aai/web/WebConfiguration.java b/aai-traversal/src/main/java/org/onap/aai/web/WebConfiguration.java new file mode 100644 index 0000000..a85fcf9 --- /dev/null +++ b/aai-traversal/src/main/java/org/onap/aai/web/WebConfiguration.java @@ -0,0 +1,27 @@ +package org.onap.aai.web; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; + +@Configuration +public class WebConfiguration { + + @Bean + public WebMvcConfigurerAdapter forwardToIndex() { + return new WebMvcConfigurerAdapter() { + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addViewController("/swagger").setViewName( + "redirect:/swagger/index.html"); + registry.addViewController("/swagger/").setViewName( + "redirect:/swagger/index.html"); + registry.addViewController("/docs").setViewName( + "redirect:/docs/html/index.html"); + registry.addViewController("/docs/").setViewName( + "redirect:/docs/html/index.html"); + } + }; + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/application.properties b/aai-traversal/src/main/resources/application.properties new file mode 100644 index 0000000..bdb7535 --- /dev/null +++ b/aai-traversal/src/main/resources/application.properties @@ -0,0 +1,72 @@ +# The following info parameters are being referenced by ajsc6 +info.build.artifact=aai-traversal +info.build.name=traversal +info.build.description=Traversal Microservice +info.build.version=1.1.0 + +spring.application.name=aai-traversal +spring.jersey.type=filter + +server.contextPath=/ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + +spring.profiles.active=production +#The max number of active threads in this pool +server.tomcat.max-threads=200 +#The minimum number of threads always kept alive +server.tomcat.min-Spare-Threads=25 +#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads +server.tomcat.max-idle-time=60000 + + +#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept +#com.att.ajsc.common.interceptors.PreInterceptor.url=/** +#com.att.ajsc.common.interceptors.PostInterceptor.url=/** + +#Servlet context parameters +server.context_parameters.p-name=value #context parameter with p-name as key and value as value. +kubernetes.namespace=org-onap-aai + +# If you get an application startup failure that the port is already taken +# If thats not it, please check if the key-store file path makes sense +server.local.startpath=aai-traversal/src/main/resources/ +server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties + +server.port=8446 +server.ssl.enabled-protocols=TLSv1.1,TLSv1.2 +server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.client-auth=want +server.ssl.key-store-type=JKS + +# JMS bind address host port +jms.bind.address=tcp://localhost:61647 +dmaap.ribbon.eureka.enabled=false +dmaap.ribbon.listOfServers=localhost:3904 +# Number of milliseconds to wait before making ping requests again +dmaap.ribbon.ServerListRefreshInterval=75000 +dmaap.ribbon.NFLoadBalancerPingInterval=75000 +dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule +dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl +dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true +dmaap.ribbon.ServerDownFailureLimit=1 +# This needs to be verified but it seems that adding this property should automatically +# Make the dmaap client change the url from http to https depending on the server +dmaap.ribbon.securePorts=3905 + +# Custom Dmaap Specific Configuration +dmaap.ribbon.username= +dmaap.ribbon.password= +dmaap.ribbon.health.endpoint=/topics/AAI-EVENT +# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing +dmaap.ribbon.pingport.timeout=3 + +niws.loadbalancer.dmaap.filterCircuitTripped=true +niws.loadbalancer.dmaap.connectionFailureCountThreshold=3 +niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180 +#dmaap.ribbon.retryableStatusCodes=404,503 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2 +#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true diff --git a/aai-traversal/src/main/resources/docker/Dockerfile b/aai-traversal/src/main/resources/docker/Dockerfile deleted file mode 100644 index dc28e15..0000000 --- a/aai-traversal/src/main/resources/docker/Dockerfile +++ /dev/null @@ -1,31 +0,0 @@ -FROM aaionap/aai-common:1.1.0 - -RUN mkdir -p /opt/aaihome/aaiadmin /opt/aai/logroot/AAI-RES /opt/app/aai-traversal/bin /opt/app/aai-traversal/extApps; - -# Add the proper files into the docker image from your build -ADD ./opt/app/aai-traversal /opt/app/aai-traversal -ADD ./commonLibs/ /opt/app/commonLibs/ -ADD init-chef.sh /opt/app/aai-traversal/init-chef.sh -ADD docker-entrypoint.sh /opt/app/aai-traversal/docker-entrypoint.sh -ADD aai.sh /etc/profile.d/aai.sh - -# Change the permissions of aai shell script and all scripts in the microservice to be executable -RUN chmod 644 /etc/profile.d/aai.sh && \ - find /opt/app/aai-traversal -name "*.sh" -exec chmod 755 {} + - -# Set the log directory to be mountable so the logs will be persisted -VOLUME /opt/aai/logroot/AAI-GQ - -# Expose the ports that needs to be available from the container -EXPOSE 8447 - -# During the startup of the container, this will be the starting directory -WORKDIR /opt/app/aai-traversal - -# When the container is started this is the entrypoint script -# that docker will run. Make sure this script doesn't end abruptly -# Docker entrypoint will run exec command to make that main process -# Using the exec form here will ensure the java process is main - -ENTRYPOINT ["/bin/bash", "/opt/app/aai-traversal/docker-entrypoint.sh"] - diff --git a/aai-traversal/src/main/resources/docker/commonLibs/README b/aai-traversal/src/main/resources/docker/commonLibs/README deleted file mode 100644 index 00e36c0..0000000 --- a/aai-traversal/src/main/resources/docker/commonLibs/README +++ /dev/null @@ -1 +0,0 @@ -// this file's presence ensures commonLibs folder is present when image is created
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/docker/docker-entrypoint.sh b/aai-traversal/src/main/resources/docker/docker-entrypoint.sh deleted file mode 100644 index 1a57d9a..0000000 --- a/aai-traversal/src/main/resources/docker/docker-entrypoint.sh +++ /dev/null @@ -1,134 +0,0 @@ -# -# ============LICENSE_START======================================================= -# org.onap.aai -# ================================================================================ -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# 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========================================================= -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -# - -# Set the current path to be the application home and common libs home -export APP_HOME=$(pwd); -COMMONLIBS_HOME="/opt/app/commonLibs"; - -export CHEF_CONFIG_REPO=${CHEF_CONFIG_REPO:-aai-config}; -export CHEF_GIT_URL=${CHEF_GIT_URL:-http://gerrit.onap.org/r/aai}; -export CHEF_CONFIG_GIT_URL=${CHEF_CONFIG_GIT_URL:-$CHEF_GIT_URL}; -export CHEF_DATA_GIT_URL=${CHEF_DATA_GIT_URL:-$CHEF_GIT_URL}; - -export RESOURCES_HOSTNAME=${RESOURCES_HOSTNAME:-aai-resources.api.simpledemo.onap.org}; -export RESOURCES_PORT=${RESOURCES_PORT:-8447}; - -USER_ID=${LOCAL_USER_ID:-9001} - -if [ $(cat /etc/passwd | grep aaiadmin | wc -l) -eq 0 ]; then - useradd --shell=/bin/bash -u ${USER_ID} -o -c "" -m aaiadmin || { - echo "Unable to create the user id for ${USER_ID}"; - exit 1; - } -fi; - -chown -R aaiadmin:aaiadmin /opt/app /var/chef /opt/aai/logroot - -gosu aaiadmin ./init-chef.sh || { - echo "Unable to run init chef script, please check logs"; - exit 1; -} - -httpPort=8086; -httpsPort=8446; - -AAI_CORE_JAR=$(ls ${APP_HOME}/extJars/aai-core*.jar); - -# Get the basename of the aai-core-X.Y.Z-SNAPSHOT.jar -# Then extract the X.Y.Z-SNAPSHOT part -AAI_CORE_VERSION=$(basename ${AAI_CORE_JAR} | grep -o '[0-9]*\.[0-9]*\.[0-9]*[^.]*'); - - -cd ${APP_HOME}; - -# If the variable DISABLE_UPDATE_QUERY is empty -# then the update query date shell script will be ran -# This makes it configurable to run update query or not - -if [ -z ${DISABLE_UPDATE_QUERY} ]; then - - while ! nc -z ${RESOURCES_HOSTNAME} ${RESOURCES_PORT} ; - do - echo "Waiting for resources to be up"; - sleep 5; - done - - UPDATE_QUERY_RAN_FILE="updateQueryRan.txt"; - - AAICONFIG_FILE=/opt/app/aai-traversal/bundleconfig/etc/appprops/aaiconfig.properties; - - if [ ! -f ${UPDATE_QUERY_RAN_FILE} ]; then - OLD_RESOURCES_URL=$(grep -o "^aai.server.url=.*" ${AAICONFIG_FILE} | cut -d"=" -f2-); - TEMP_RESOURCES_URL=https://${RESOURCES_HOSTNAME}:${RESOURCES_PORT}/aai/v11/; - sed -i "s%^aai.server.url=.*$%aai.server.url=${TEMP_RESOURCES_URL}%g" ${AAICONFIG_FILE}; - gosu aaiadmin /opt/app/aai-traversal/bin/install/updateQueryData.sh - touch ${UPDATE_QUERY_RAN_FILE}; - sed -i "s%^aai.server.url=.*$%aai.server.url=${OLD_RESOURCES_URL}%g" ${AAICONFIG_FILE}; - fi -fi - -CP=${COMMONLIBS_HOME}/*; -CP="$CP":${APP_HOME}/etc; -CP="$CP":${APP_HOME}/lib/*; -CP="$CP":${APP_HOME}/extJars/logback-access-1.1.7.jar; -CP="$CP":${APP_HOME}/extJars/logback-core-1.1.7.jar; -CP="$CP":${AAI_CORE_JAR}; - -# You can add additional jvm options by adding environment variable JVM_PRE_OPTS -# If you need to add more jvm options at the end then you can use JVM_POST_OPTS -JVM_OPTS="${JVM_PRE_OPTS} ${JVM_OPTS}"; -JVM_OPTS="${JVM_OPTS} -server -XX:NewSize=512m -XX:MaxNewSize=512m"; -JVM_OPTS="${JVM_OPTS} -XX:SurvivorRatio=8"; -JVM_OPTS="${JVM_OPTS} -XX:+DisableExplicitGC -verbose:gc -XX:+UseParNewGC"; -JVM_OPTS="${JVM_OPTS} -XX:+CMSParallelRemarkEnabled -XX:+CMSClassUnloadingEnabled"; -JVM_OPTS="${JVM_OPTS} -XX:+UseConcMarkSweepGC -XX:-UseBiasedLocking"; -JVM_OPTS="${JVM_OPTS} -XX:ParallelGCThreads=4"; -JVM_OPTS="${JVM_OPTS} -XX:LargePageSizeInBytes=128m "; -JVM_OPTS="${JVM_OPTS} -XX:+PrintGCDetails -XX:+PrintGCTimeStamps"; -JVM_OPTS="${JVM_OPTS} -Xloggc:${APP_HOME}/logs/gc/graph-query_gc.log"; -JVM_OPTS="${JVM_OPTS} -XX:+HeapDumpOnOutOfMemoryError"; -JVM_OPTS="${JVM_OPTS} ${JVM_POST_OPTS}"; - -# You can add additional java options by adding environment variable JAVA_PRE_OPTS -# If you need to add more jvm options at the end then you can use JAVA_POST_OPTS -JAVA_OPTS="${JAVA_PRE_OPTS} ${JAVA_OPTS}"; -JAVA_OPTS="${JAVA_OPTS} -Dsun.net.inetaddr.ttl=180"; -JAVA_OPTS="${JAVA_OPTS} -Dhttps.protocols=TLSv1.1,TLSv1.2"; -JAVA_OPTS="${JAVA_OPTS} -DSOACLOUD_SERVICE_VERSION=1.0.1"; -JAVA_OPTS="${JAVA_OPTS} -DAJSC_HOME=${APP_HOME}"; -JAVA_OPTS="${JAVA_OPTS} -DAJSC_CONF_HOME=${APP_HOME}/bundleconfig"; -JAVA_OPTS="${JAVA_OPTS} -DAJSC_SHARED_CONFIG=${APP_HOME}/bundleconfig"; -JAVA_OPTS="${JAVA_OPTS} -DAFT_HOME=${APP_HOME}"; -JAVA_OPTS="${JAVA_OPTS} -DAAI_CORE_VERSION=${AAI_CORE_VERSION}"; -JAVA_OPTS="${JAVA_OPTS} -Daai-core.version=${AAI_CORE_VERSION}"; -JAVA_OPTS="${JAVA_OPTS} -Dlogback.configurationFile=${APP_HOME}/bundleconfig/etc/logback.xml"; -JAVA_OPTS="${JAVA_OPTS} ${JAVA_POST_OPTS}"; - -JAVA_ARGS="${JAVA_PRE_ARGS} ${JAVA_ARGS}"; -JAVA_ARGS="${JAVA_ARGS} context=/"; -JAVA_ARGS="${JAVA_ARGS} port=$httpPort"; -JAVA_ARGS="${JAVA_ARGS} sslport=$httpsPort"; -JAVA_ARGS="${JAVA_ARGS} ${JAVA_POST_ARGS}"; - -JAVA_CMD="exec gosu aaiadmin java"; -# Run the following command as aai-admin using gosu and make that process main -${JAVA_CMD} -cp ${CLASSPATH}:${CP} ${JVM_OPTS} ${JAVA_OPTS} com.att.ajsc.runner.Runner ${JAVA_ARGS} "$@" diff --git a/aai-traversal/src/main/resources/docker/init-chef.sh b/aai-traversal/src/main/resources/docker/init-chef.sh deleted file mode 100644 index a8802db..0000000 --- a/aai-traversal/src/main/resources/docker/init-chef.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -# -# ============LICENSE_START======================================================= -# org.onap.aai -# ================================================================================ -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# 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========================================================= -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -# - -############################################################################## -# Script to initialize the chef-repo branch and.chef -# -############################################################################## - -cd /var/chef; - -if [ ! -d "aai-config" ]; then - - git clone --depth 1 -b ${CHEF_BRANCH} --single-branch ${CHEF_CONFIG_GIT_URL}/${CHEF_CONFIG_REPO}.git aai-config || { - echo "Error: Unable to clone the aai-config repo with url: ${CHEF_GIT_URL}/${CHEF_CONFIG_REPO}.git"; - exit 1; - } - -fi - -if [ -d "aai-config/cookbooks/aai-traversal" ]; then - - (cd aai-config/cookbooks/aai-traversal/ && \ - for f in $(ls); do mv $f ../; done && \ - cd ../ && rmdir aai-traversal); - -fi; - -if [ ! -d "aai-data" ]; then - - git clone --depth 1 -b ${CHEF_BRANCH} --single-branch ${CHEF_DATA_GIT_URL}/aai-data.git aai-data || { - echo "Error: Unable to clone the aai-data repo with url: ${CHEF_GIT_URL}"; - exit 1; - } - -fi - -chef-solo \ - -c /var/chef/aai-data/chef-config/dev/.knife/solo.rb \ - -j /var/chef/aai-config/cookbooks/runlist-aai-traversal.json \ - -E ${AAI_CHEF_ENV}; - diff --git a/aai-traversal/src/main/resources/etc/.gitignore b/aai-traversal/src/main/resources/etc/.gitignore new file mode 100644 index 0000000..48bd738 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/.gitignore @@ -0,0 +1 @@ +/oxm/ diff --git a/aai-traversal/src/main/resources/etc/appprops/Introscope.properties b/aai-traversal/src/main/resources/etc/appprops/Introscope.properties new file mode 100644 index 0000000..319381e --- /dev/null +++ b/aai-traversal/src/main/resources/etc/appprops/Introscope.properties @@ -0,0 +1,8 @@ +#CSI environment uses the Introscope java agent for monitoring services. The AJSC has provided an implementation class that +#provides basic information to the Introscope Enterprise Manager for each http request/response. + +introscopeEventClass=com.att.ajsc.introscope.IntroscopeEventNotifierImpl +serviceName=N/A +conversationId=N/A +uniqueID=N/A +userID=N/A diff --git a/aai-traversal/src/main/resources/etc/appprops/PostProcessorInterceptors.properties b/aai-traversal/src/main/resources/etc/appprops/PostProcessorInterceptors.properties new file mode 100644 index 0000000..ca31a26 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/appprops/PostProcessorInterceptors.properties @@ -0,0 +1,3 @@ +#This properties file is for defining any PostProcessorInterceptors that have been created for your AJSC service. + +/**=org.onap.aai.interceptors.PostAaiAjscInterceptor diff --git a/aai-traversal/src/main/resources/etc/appprops/aaiEventDMaaPPublisher.properties b/aai-traversal/src/main/resources/etc/appprops/aaiEventDMaaPPublisher.properties new file mode 100644 index 0000000..4aa7445 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/appprops/aaiEventDMaaPPublisher.properties @@ -0,0 +1,4 @@ +Protocol=http +contenttype=application/json +host=localhost:3904 +topic=AAI-EVENT diff --git a/aai-traversal/src/test/resources/bundleconfig-local/etc/appprops/aaiconfig.properties b/aai-traversal/src/main/resources/etc/appprops/aaiconfig.properties index 2fdb55e..0c263be 100644 --- a/aai-traversal/src/test/resources/bundleconfig-local/etc/appprops/aaiconfig.properties +++ b/aai-traversal/src/main/resources/etc/appprops/aaiconfig.properties @@ -43,14 +43,18 @@ aai.transaction.logging=true aai.transaction.logging.get=true aai.transaction.logging.post=true -aai.server.url.base=https://localhost:8446/aai/ -aai.server.url=https://localhost:8446/aai/v10/ -aai.global.callback.url=https://localhost:8446/aai/ +aai.tools.enableBasicAuth=true +aai.tools.username=AAI +aai.tools.password=AAI + +aai.server.url.base=https://localhost:8443/aai/ +aai.server.url=https://localhost:8443/aai/v12/ +aai.global.callback.url=https://localhost:8443/aai/ aai.auth.cspcookies_on=false aai.dbmodel.filename=ex5.json aai.truststore.filename=aai_keystore -aai.truststore.passwd.x= +aai.truststore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 aai.keystore.filename=aai-client-cert.p12 aai.keystore.passwd.x= @@ -60,7 +64,8 @@ hbase.notificationTable.name=aainotification-dev1.dev hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS hbase.zookeeper.quorum=ONAPserverTBD hbase.zookeeper.property.clientPort=2181 -hbase.zookeeper.znode.parent=/hbase-unsecure +hbase.zookeeper.znode.parent=/hbase + # single primary server aai.primary.filetransfer.serverlist=ONAPserverTBD @@ -74,44 +79,42 @@ aai.rsync.options.list=-v|-t aai.rsync.remote.user=aaiadmin aai.rsync.enabled=y -aai.notification.current.version=v10 +aai.notification.current.version=v12 aai.notificationEvent.default.status=UNPROCESSED aai.notificationEvent.default.eventType=AAI-EVENT aai.notificationEvent.default.domain=devINT1 aai.notificationEvent.default.sourceName=aai aai.notificationEvent.default.sequenceNumber=0 aai.notificationEvent.default.severity=NORMAL -aai.notificationEvent.default.version=v10 +aai.notificationEvent.default.version=v12 # This one lets us enable/disable resource-version checking on updates/deletes aai.resourceversion.enableflag=true aai.logging.maxStackTraceEntries=10 -aai.default.api.version=v10 +aai.default.api.version=v12 # Used by Model-processing code aai.model.delete.sleep.per.vtx.msec=500 -aai.model.query.resultset.maxcount=30 +aai.model.query.resultset.maxcount=50 aai.model.query.timeout.sec=90 aai.model.proc.max.levels=50 aai.edgeTag.proc.max.levels=50 -# Used by the ForceDelete tool -aai.forceDel.protected.nt.list=cloud-region -aai.forceDel.protected.edge.count=10 -aai.forceDel.protected.descendant.count=10 - aai.dmaap.workload.enableEventProcessing=true aai.realtime.clients=RO,SDNC,MSO aai.server.rebind=g +aai.jms.enable=false + #timeout for traversal enabled flag aai.traversal.timeoutenabled=true #timeout app specific -aai.traversal.timeout.appspecific=JUNITTESTAPP1,-1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAI-FILEGEN-GFPIP,-1 +aai.traversal.timeout.appspecific=JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAI-FILEGEN-GFPIP,-1 #default timeout limit added for traversal if not overridden (in ms) aai.traversal.timeoutlimit=180000 + diff --git a/aai-traversal/src/main/resources/etc/appprops/default-logback.xml b/aai-traversal/src/main/resources/etc/appprops/default-logback.xml new file mode 100644 index 0000000..655157b --- /dev/null +++ b/aai-traversal/src/main/resources/etc/appprops/default-logback.xml @@ -0,0 +1,43 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + 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========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration debug="false"> + <property name="defaultPattern" value="%d{MM/dd-HH:mm:ss.SSS}|%logger|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}|%X{Timer}|%msg%n" /> + + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern>${defaultPattern}</pattern> + </encoder> + </appender> + + <logger name="org.reflections" level="WARN"/> + <logger name="org.apache.zookeeper" level="WARN"/> + <logger name="org.apache.hadoop" level="WARN"/> + <logger name="com.thinkaurelius" level="WARN"/> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <root level="INFO"> + <appender-ref ref="STDOUT"/> + </root> +</configuration> diff --git a/aai-traversal/src/main/resources/etc/appprops/error.properties b/aai-traversal/src/main/resources/etc/appprops/error.properties new file mode 100644 index 0000000..ba71275 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/appprops/error.properties @@ -0,0 +1,172 @@ +# Adding comment trying to trigger a build +#------------------------------------------------------------------------------- ---------- +#Key=Disposition:Category:Severity:Error Code:HTTP ResponseCode:RESTError Code:Error Message +#------------------------------------------------------------------------------- ---------- +# testing code, please don't change unless error utility source code changes +AAI_TESTING=5:2:WARN:0000:400:0001:Error code for testing + +# General success +AAI_0000=0:0:INFO:0000:200:0000:Success + +# health check success +AAI_0001=0:0:INFO:0001:200:0001:Success X-FromAppId=%1 X-TransactionId=%2 +AAI_0002=0:0:INFO:0002:200:0001:Successful health check + +# Success with additional info +AAI_0003=0:3:INFO:0003:202:0003:Success with additional info performing %1 on %2. Added %3 with key %4 +AAI_0004=0:3:INFO:0004:202:0003:Added prerequisite object to db + +#--- aairest: 3000-3299 +# svc errors +AAI_3000=5:2:INFO:3000:400:3000:Invalid input performing %1 on %2 +AAI_3001=5:6:INFO:3001:404:3001:Resource not found for %1 using id %2 +AAI_3002=5:1:WARN:3002:400:3002:Error writing output performing %1 on %2 +AAI_3003=5:1:WARN:3003:400:3003:Failed to make edge to missing target node of type %3 with keys %4 performing %1 on %2 +AAI_3005=5:6:WARN:3005:404:3001:Node cannot be directly accessed for read, must be accessed via ancestor(s) +AAI_3006=5:6:WARN:3006:404:3001:Node cannot be directly accessed for write, must be accessed via ancestor(s) +AAI_3007=5:6:INFO:3007:410:3007:This version (%1) of the API is retired, please migrate to %2 +AAI_3008=5:6:WARN:3008:400:3008:URI is not encoded in UTF-8 +AAI_3009=5:6:WARN:3009:400:3002:Malformed URL +AAI_3010=5:6:WARN:3010:400:3002:Cannot write via this URL +AAI_3011=5:6:WARN:3011:400:3000:Unknown XML namespace used in payload +AAI_3012=5:6:WARN:3012:400:3012:Unrecognized AAI function +AAI_3013=5:6:WARN:3013:400:3013:Query payload missing required parameters %1 +AAI_3014=5:6:WARN:3014:400:3014:Query payload is invalid %1 +# pol errors +AAI_3100=5:1:WARN:3100:400:3100:Unsupported operation %1 +AAI_3101=5:1:WARN:3101:403:3101:Attempt by client %1 to execute API %2 +AAI_3102=5:1:WARN:3102:400:3102:Error parsing input performing %1 on %2 +AAI_3300=5:1:WARN:3300:403:3300:Unauthorized +AAI_3301=5:1:WARN:3301:401:3301:Stale credentials +AAI_3302=5:1:WARN:3302:401:3301:Not authenticated +AAI_3303=5:1:WARN:3303:403:3300:Too many objects would be returned by this request, please refine your request and retry + +#--- aaigen: 4000-4099 +AAI_4000=5:4:ERROR:4000:500:3002:Internal Error +AAI_4001=5:4:FATAL:4001:500:3002:Configuration file not found +AAI_4002=5:4:FATAL:4002:500:3002:Error reading Configuration file +AAI_4003=5:4:ERROR:4003:500:3002:Error writing to log file +AAI_4004=5:4:FATAL:4004:500:3002:Error reading/parsing the error properties file +AAI_4005=5:4:FATAL:4005:500:3002:Missing or invalid configuration parameter +AAI_4006=5:4:FATAL:4006:500:3002:Unexpected error in service +AAI_4007=5:4:WARN:4007:500:3102:Input parsing error +AAI_4008=5:4:ERROR:4008:500:3002:Output parsing error +AAI_4009=4:0:WARN:4009:400:3000:Invalid X-FromAppId in header +AAI_4010=4:0:WARN:4010:400:3000:Invalid X-TransactionId in header +AAI_4011=5:4:ERROR:4011:500:3002:Missing data for REST error response +AAI_4014=4:0:WARN:4014:400:3000:Invalid Accept header +AAI_4015=4:0:WARN:4015:400:3000:You must provide at least one indexed property +AAI_4016=4:0:WARN:4016:400:3000:The depth parameter must be a number or the string "all" +AAI_4017=5:2:INFO:4017:400:3000:Could not set property +AAI_4018=5:2:WARN:4018:400:3000:Unable to convert the string to integer +#--- aaidbmap: 5102-5199 +AAI_5102=5:4:FATAL:5102:500:3002:Graph database is null after open +AAI_5105=5:4:ERROR:5105:500:3002:Unexpected error reading/updating database +AAI_5106=5:4:WARN:5106:404:3001:Node not found +AAI_5107=5:2:WARN:5107:400:3000:Required information missing +AAI_5108=5:2:WARN:5108:200:0:Unexpected information in request being ignored + +#--- aaidbgen: 6101-6199 +AAI_6101=5:4:ERROR:6101:500:3002:null TitanGraph object passed +AAI_6102=5:4:WARN:6102:400:3000:Passed-in property is not valid for this nodeType +AAI_6103=5:4:WARN:6103:400:3000:Required Node-property not found in input data +AAI_6104=5:4:WARN:6104:400:3000:Required Node-property was passed with no data +AAI_6105=5:4:WARN:6105:400:3000:Node-Key-Property not defined in DbMaps +AAI_6106=5:4:WARN:6106:400:3000:Passed-in property is not valid for this edgeType +AAI_6107=5:4:WARN:6107:400:3000:Required Edge-property not found in input data +AAI_6108=5:4:WARN:6108:400:3000:Required Edge-property was passed with no data +AAI_6109=5:4:WARN:6109:400:3000:Bad dependent Node value +AAI_6110=5:4:ERROR:6110:400:3100:Node cannot be deleted +AAI_6111=5:4:WARN:6111:400:3000:JSON processing error +AAI_6112=5:4:ERROR:6112:400:3000:More than one node found by getUniqueNode() +AAI_6114=5:4:INFO:6114:404:3001:Node Not Found +AAI_6115=5:4:ERROR:6115:400:3000:Unrecognized NodeType +AAI_6116=5:4:ERROR:6116:400:3000:Unrecognized Property +AAI_6117=5:4:ERROR:6117:400:3000:Uniqueness constraint violated +AAI_6118=5:4:WARN:6118:400:3000:Required Field not passed. +AAI_6120=5:4:WARN:6120:400:3000:Bad Parameter Passed +AAI_6121=5:4:ERROR:6121:400:3000:Problem with internal AAI reference data +AAI_6122=5:4:ERROR:6122:400:3000:Data Set not complete in DB for this request +AAI_6123=5:4:ERROR:6123:500:3000:Bad Data found by DataGrooming Tool - Investigate +AAI_6124=5:4:ERROR:6124:500:3000:File read/write error +AAI_6125=5:4:WARN:6125:500:3000:Problem Pulling Data Set +AAI_6126=5:4:ERROR:6126:400:3000:Edge cannot be deleted +AAI_6127=5:4:INFO:6127:404:3001:Edge Not Found +AAI_6128=5:4:INFO:6128:500:3000:Unexpected error +AAI_6129=5:4:INFO:6129:404:3003:Error making edge to target node +AAI_6130=5:4:WARN:6130:412:3000:Precondition Required +AAI_6131=5:4:WARN:6131:412:3000:Precondition Failed +AAI_6132=5:4:WARN:6132:400:3000:Bad Model Definition +AAI_6133=5:4:WARN:6133:400:3000:Bad Named Query Definition +AAI_6134=5:4:ERROR:6134:500:6134:Could not persist transaction to storage back end. Exhausted retry amount +AAI_6135=5:4:WARN:6135:412:3000:Resource version specified on create +AAI_6136=5:4:ERROR:6136:400:3000:Object cannot hold multiple items +AAI_6137=5:4:ERROR:6137:400:3000:Cannot perform writes on multiple vertices +AAI_6138=5:4:ERROR:6138:400:3000:Cannot delete multiple vertices +AAI_6139=5:4:ERROR:6139:404:3000:Attempted to add edge to vertex that does not exist +AAI_6140=5:4:ERROR:6140:400:3000:Edge multiplicity violated +AAI_6141=5:4:WARN:6141:400:3000:Please Refine Query +AAI_6142=5:4:INFO:6142:400:3000:Retrying transaction +AAI_6143=5:4:INFO:6143:400:3000:Ghost vertex found +AAI_6144=5:4:WARN:6144:400:3000:Cycle found in graph +AAI_6145=5:4:ERROR:6145:400:3000:Cannot create a nested/containment edge via relationship +AAI_6146=5:4:ERROR:6146:400:3000:Ambiguous identity map found, use a URI instead +AAI_6147=5:4:ERROR:6147:400:3000:Payload Limit Reached, reduce payload + +#--- aaicsvp: 7101-7199 +AAI_7101=5:4:ERROR:7101:500:3002:Unexpected error in CSV file processing +AAI_7102=5:4:ERROR:7102:500:3002:Error in cleanup temporary directory +#AAI_7103=4:2:ERROR:7103:500:3002:Unsupported user +AAI_7104=5:4:ERROR:7104:500:3002:Failed to create directory +AAI_7105=5:4:ERROR:7105:500:3002:Temporary directory exists +AAI_7106=5:4:ERROR:7106:500:3002:Cannot delete +AAI_7107=5:4:ERROR:7107:500:3002:Input file does not exist +AAI_7108=5:4:ERROR:7108:500:3002:Output file does not exist +AAI_7109=5:4:ERROR:7109:500:3002:Error closing file +AAI_7110=5:4:ERROR:7110:500:3002:Error loading/reading properties file +AAI_7111=5:4:ERROR:7111:500:3002:Error executing shell script +AAI_7112=5:4:ERROR:7112:500:3002:Error creating output file +AAI_7113=5:4:ERROR:7113:500:3002:Trailer record error +AAI_7114=5:4:ERROR:7114:500:3002:Input file error +AAI_7115=5:4:ERROR:7115:500:3002:Unexpected error +AAI_7116=5:4:ERROR:7116:500:3002:Request error +AAI_7117=5:4:ERROR:7117:500:3002:Error in get http client object +AAI_7118=5:4:ERROR:7118:500:3002:Script Error +AAI_7119=5:4:ERROR:7119:500:3002:Unknown host + +#--- aaisdnc: 7201-7299 +AAI_7202=5:4:ERROR:7202:500:3002:Error getting connection to odl +AAI_7203=5:4:ERROR:7203:500:3002:Unexpected error calling DataChangeNotification API +AAI_7204=5:4:ERROR:7204:500:3002:Error returned by DataChangeNotification API +AAI_7205=5:4:ERROR:7205:500:3002:Unexpected error running notifySDNCOnUpdate +#AAI_7206=5:4:ERROR:7206:500:3002:Invalid data returned from ODL + +#--- NotificationEvent, using UEB space +AAI_7350=5:4:ERROR:7305:500:3002:Notification event creation failed + +#--- aairestctlr: 7401-7499 +AAI_7401=5:4:ERROR:7401:500:3002:Error connecting to AAI REST API +AAI_7402=5:4:ERROR:7402:500:3002:Unexpected error +AAI_7403=5:4:WARN:7403:400:3001:Request error +AAI_7404=5:4:INFO:7404:404:3001:Node not found +AAI_7405=5:4:WARN:7405:200:0:UUID not formatted correctly, generating UUID +AAI_7406=5:4:ERROR:7406:400:7406:Request Timed Out + +#--- aaicsiovals: 7501-7599 +#AAI_7501=5:4:WARN:7501:500:3002:Error getting connection to CSI-OVALS +AAI_7502=5:4:WARN:7502:500:3002:Bad parameter when trying to build request for CSI-OVALS +AAI_7503=5:4:WARN:7503:500:3002:Error returned by CSI-OVALS + +#--- aaiauth: 9101-9199 +AAI_9101=5:0:WARN:9101:403:3300:User is not authorized to perform function +#AAI_9102=5:0:WARN:9102:401:3301:Refresh credentials from source +#AAI_9103=5:0:WARN:9103:403:3300:User not found +#AAI_9104=5:0:WARN:9104:401:3302:Authentication error +#AAI_9105=5:0:WARN:9105:403:3300:Authorization error +#AAI_9106=5:0:WARN:9106:403:3300:Invalid AppId +#AAI_9107=5:0:WARN:9107:403:3300:No Username in Request +AAI_9107=5:0:WARN:9107:403:3300:SSL is not provided in request, please contact admin + +#--- aaiinstar: 9201-9299 +#AAI_9201=5:4:ERROR:9201:500:3002:Unable to send notification +AAI_9202=5:4:ERROR:9202:500:3002:Unable to start a thread diff --git a/aai-traversal/src/test/resources/inmemory_titan.properties b/aai-traversal/src/main/resources/etc/appprops/gremlin-server-config.yaml index cf4bbfd..a9de31f 100644 --- a/aai-traversal/src/test/resources/inmemory_titan.properties +++ b/aai-traversal/src/main/resources/etc/appprops/gremlin-server-config.yaml @@ -20,4 +20,6 @@ # ECOMP is a trademark and service mark of AT&T Intellectual Property. # -storage.backend=inmemory +hosts: [localhost] +port: 8182 +serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV1d0 }
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/appprops/logging.properties b/aai-traversal/src/main/resources/etc/appprops/logging.properties new file mode 100644 index 0000000..e029cc4 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/appprops/logging.properties @@ -0,0 +1,128 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You 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. + +handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler + +.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +# this is where we will limit logging on components +org.apache.hadoop.level=WARNING +org.apache.zookeeper.level=WARNING +org.reflections.level=WARNING +com.thinkaurelius.level=WARNING + +1catalina.org.apache.juli.FileHandler.level = FINE +1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +1catalina.org.apache.juli.FileHandler.prefix = catalina. + +2localhost.org.apache.juli.FileHandler.level = FINE +2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +2localhost.org.apache.juli.FileHandler.prefix = localhost. + +3manager.org.apache.juli.FileHandler.level = FINE +3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +3manager.org.apache.juli.FileHandler.prefix = manager. + +4host-manager.org.apache.juli.FileHandler.level = FINE +4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +4host-manager.org.apache.juli.FileHandler.prefix = host-manager. + +java.util.logging.ConsoleHandler.level = INFO +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + + + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler + +# For example, set the org.apache.catalina.util.LifecycleBase logger to log +# each component that extends LifecycleBase changing state: +#org.apache.catalina.util.LifecycleBase.level = FINE + +# To see debug messages in TldLocationsCache, uncomment the following line: +#org.apache.jasper.compiler.TldLocationsCache.level = FINE + + +################################ +# OpenEJB/TomEE specific loggers +################################ +# +# ACTIVATE LEVEL/HANDLERS YOU WANT +# IF YOU ACTIVATE 5tomee.org.apache.juli.FileHandler +# ADD IT TO handlers LINE LIKE: +# +# handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# +# LEVELS: +# ======= +# +# OpenEJB.level = WARNING +# OpenEJB.options.level = INFO +# OpenEJB.server.level = INFO +# OpenEJB.startup.level = INFO +# OpenEJB.startup.service.level = WARNING +# OpenEJB.startup.config.level = INFO +# OpenEJB.hsql.level = INFO +# CORBA-Adapter.level = WARNING +# Transaction.level = WARNING +# org.apache.activemq.level = SEVERE +# org.apache.geronimo.level = SEVERE +# openjpa.level = WARNING +# OpenEJB.cdi.level = INFO +# org.apache.webbeans.level = INFO +# org.apache.openejb.level = FINE +# +# HANDLERS: +# ========= +# +# OpenEJB.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# OpenEJB.options.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# OpenEJB.server.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# OpenEJB.startup.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# OpenEJB.startup.service.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# OpenEJB.startup.config.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# OpenEJB.hsql.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# CORBA-Adapter.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# Transaction.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# org.apache.activemq.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# org.apache.geronimo.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# openjpa.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# OpenEJB.cdi.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# org.apache.webbeans.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# org.apache.openejb.handlers = 5tomee.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler +# +# TOMEE HANDLER SAMPLE: +# ===================== +# +# 5tomee.org.apache.juli.FileHandler.level = FINEST +# 5tomee.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +# 5tomee.org.apache.juli.FileHandler.prefix = tomee. + diff --git a/aai-traversal/src/main/resources/etc/appprops/methodMapper.properties b/aai-traversal/src/main/resources/etc/appprops/methodMapper.properties new file mode 100644 index 0000000..d6c1158 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/appprops/methodMapper.properties @@ -0,0 +1,24 @@ +{ + "ActiveAndAvailableInventory-Traversal" : [{ + "logicalName" : "getAAIResource", + "method" : "get", + "url" : "/aai/*" + }, { + "logicalName" : "putAAIResource", + "method" : "put", + "url" : "/aai/*" + }, { + "logicalName" : "deleteAAIResource", + "method" : "delete", + "url" : "/aai/*" + }, { + "logicalName" : "postAAIResource", + "method" : "post", + "url" : "/aai/*" + }, { + "logicalName" : "patchAAIResource", + "method" : "patch", + "url" : "/aai/*" + } + ] +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/appprops/preferredRoute.txt b/aai-traversal/src/main/resources/etc/appprops/preferredRoute.txt new file mode 100644 index 0000000..662b0aa --- /dev/null +++ b/aai-traversal/src/main/resources/etc/appprops/preferredRoute.txt @@ -0,0 +1 @@ +preferredRouteKey=MR1
\ No newline at end of file diff --git a/aai-traversal/src/test/resources/config/etc/titan-cached.properties b/aai-traversal/src/main/resources/etc/appprops/titan-cached.properties index 2333d2a..0106788 100644 --- a/aai-traversal/src/test/resources/config/etc/titan-cached.properties +++ b/aai-traversal/src/main/resources/etc/appprops/titan-cached.properties @@ -22,12 +22,13 @@ query.fast-property=true # the following parameters are not reloaded automatically and require a manual bounce +#storage.backend=inmemory storage.backend=inmemory -storage.hostname=ONAPserverTBD +storage.hostname=localhost #schema.default=none storage.lock.wait-time=300 -storage.hbase.table=aaigraph-dev1.dev +storage.hbase.table=aaigraph-dev02 storage.hbase.ext.zookeeper.znode.parent=/hbase-unsecure #caching on cache.db-cache = true diff --git a/aai-traversal/src/test/resources/config/etc/titan-realtime.properties b/aai-traversal/src/main/resources/etc/appprops/titan-realtime.properties index 2d1d21d..ace08b3 100644 --- a/aai-traversal/src/test/resources/config/etc/titan-realtime.properties +++ b/aai-traversal/src/main/resources/etc/appprops/titan-realtime.properties @@ -22,15 +22,16 @@ query.fast-property=true # the following parameters are not reloaded automatically and require a manual bounce +#storage.backend=inmemory storage.backend=inmemory -storage.hostname=ONAPserverTBD +storage.hostname=localhost #schema.default=none storage.lock.wait-time=300 -storage.hbase.table=aaigraph-dev1.dev +storage.hbase.table=aaigraph-dev02 storage.hbase.ext.zookeeper.znode.parent=/hbase-unsecure # Setting db-cache to false ensure the fastest propagation of changes across servers cache.db-cache = false #load graphson file on startup -load.snapshot.file=true +load.snapshot.file=false diff --git a/aai-traversal/src/main/resources/etc/auth/aai_keystore b/aai-traversal/src/main/resources/etc/auth/aai_keystore Binary files differnew file mode 100644 index 0000000..1ddef0c --- /dev/null +++ b/aai-traversal/src/main/resources/etc/auth/aai_keystore diff --git a/aai-traversal/src/main/resources/etc/query/stored-queries.json b/aai-traversal/src/main/resources/etc/query/stored-queries.json new file mode 100644 index 0000000..8d18fd7 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/query/stored-queries.json @@ -0,0 +1,266 @@ +{ + "stored-queries":[{ + "cloud-region-fromVnf":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vserver').store('x').createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x').cap('x').unfold().dedup()" + } + },{ + "linked-devices":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'lag-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'newvce', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface')).dedup().until(builder.newInstance().getVerticesByProperty('aai-node-type', new ArrayList<>(Arrays.asList('generic-vnf','newvce','vserver')))).repeat(builder.newInstance().union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'lag-interface', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'lag-interface'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vlan'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'lag-interface', 'logical-link'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'lag-interface'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l-interface', 'logical-link'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'l-interface'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vlan', 'logical-link'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'vlan'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'generic-vnf'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'lag-interface', 'generic-vnf'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'newvce'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vserver')).dedup().simplePath()).store('x').cap('x').unfold().dedup()" + } + },{ + "cloud-region-sites":{ + "query":{ + "required-properties":["owner"] + }, + "stored-query":"builder.getVerticesByProperty('aai-node-type', 'cloud-region').getVerticesByProperty('cloud-owner', owner).store('x').createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'complex').store('x').cap('x').unfold()" + } + },{ + "pserver-fromConfiguration":{ + "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'configuration', 'logical-link').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'l-interface').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'generic-vnf').store('x').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pnf').store('x')).cap('x').unfold().dedup()" + } + },{ + "spaas-topology-fromServiceInstance":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'flavor').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'image').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l-interface', 'logical-link').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x'))).cap('x').unfold().dedup()" + } + },{ + "vnf-instances-fromServiceInstancebyModelVersion":{ + "query":{ + "required-properties":["vnfType","modelVersionId"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').getVerticesByProperty('vnf-type', vnfType).getVerticesByProperty('model-version-id-local', modelVersionId).store('x').cap('x').unfold().dedup()" + } + },{ + "pnf-topology":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'pnf', 'p-interface').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link')).as('item').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x').createEdgeTraversal(EdgeType.COUSIN, 'physical-link', 'p-interface').where(builder.newInstance().not(builder.newInstance().cap('item'))).store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'p-interface', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'p-interface', 'pnf').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pnf', 'complex').store('x')).cap('x').unfold().dedup()" + } + },{ + "so-request-vfModule":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vf-module', 'generic-vnf').store('x').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vf-module', 'vserver').createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vf-module', 'volume-group').store('x')).cap('x').unfold().dedup()" + } + },{ + "ucpe-instance":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'cloud-region').createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'complex')).store('x').cap('x').unfold().dedup()" + } + },{ + "images-fromCloudRegionNfType":{ + "query":{ + "required-properties":["nfType"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'cloud-region', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'vserver').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').getVerticesByProperty('nf-type',nfType)).createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'image').store('x').cap('x').unfold().dedup()" + } + },{ + "site-l3network-cloudRegion":{ + "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'complex', 'l3-network').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'cloud-region').store('x').cap('x').unfold()" + } + },{ + "pnf-fromModel-byRegion":{ + "query":{ + "required-properties":["equipVendor","equipModel","cloudRegionId"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'pnf').getVerticesByProperty('equip-vendor', equipVendor).getVerticesByProperty('equip-model', equipModel).where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pnf', 'complex').createEdgeTraversal(EdgeType.COUSIN, 'complex', 'cloud-region').getVerticesByProperty('cloud-region-id', cloudRegionId)).store('x').cap('x').unfold().dedup()" + } + },{ + "topology-fromCloudRegionIdandServiceId":{ + "query":{ + "required-properties":["serviceId"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'cloud-region', 'availability-zone').createEdgeTraversal(EdgeType.COUSIN, 'availability-zone', 'generic-vnf').getVerticesByProperty('service-id',serviceId).union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'flavor').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'image').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'volume').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'snapshot').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'vf-module').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l-interface', 'logical-link').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')))).cap('x').unfold().dedup()" + } + },{ + "network-name-fromNetwork-role":{ + "query":{ + "required-properties":["networkRole"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'l3-network').getVerticesByProperty('network-role', networkRole).store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'network-policy').store('x').cap('x').unfold().dedup()" + } + },{ + "service-sites":{ + "query":{ + "required-properties":["customerId","type"] + }, + "stored-query":"builder.getVerticesByProperty('global-customer-id', customerId).createEdgeTraversal(EdgeType.TREE, 'customer', 'service-subscription').getVerticesByProperty('service-type', type).createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'service-instance').store('x').createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region')).store('x').cap('x').unfold().dedup()" + } + },{ + "pserver-fromConfigurationFilterInterfaceId":{ + "query":{ + "required-properties":["interfaceId"] + }, + "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'configuration', 'logical-link').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'l-interface').getVerticesByProperty('interface-id', interfaceId).store('x')).union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'logical-link', 'generic-vnf').store('x').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pnf').store('x')).cap('x').unfold().dedup()" + } + },{ + "cloudRegion-fromCountry":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'complex', 'cloud-region').store('x').cap('x').unfold().dedup()" + } + },{ + "sites-byCountryFilterCloudRegionVer":{ + "query":{ + "required-properties":["cloudRegionVersion"] + }, + "stored-query":"builder.where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'complex', 'l3-network').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'cloud-region').getVerticesByProperty('cloud-region-version', cloudRegionVersion)).store('x').cap('x').unfold().dedup()" + } + },{ + "vnf-topology-fromVfModule":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'vf-module', 'generic-vnf').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'allotted-resource').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'vf-module').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'volume-group').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'),),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'),)).cap('x').unfold().dedup()" + } + },{ + "serviceModels-byDistributionStatus":{ + "query":{ + "required-properties":["distributionStatus"] + }, + "stored-query":"builder.getVerticesByProperty('model-type', 'service').where(builder.newInstance().createEdgeTraversal(EdgeType.TREE,'model', 'model-ver').getVerticesByProperty('distribution-status', distributionStatus)).store('x').createEdgeTraversal(EdgeType.TREE,'model', 'model-ver').getVerticesByProperty('distribution-status', distributionStatus).store('x').cap('x').unfold().dedup()" + } + },{ + "vserver-fromVnf":{ + "query":{ + "required-properties":["nfcFunction"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').getVerticesByProperty('nfc-function', nfcFunction).store('x').createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vserver').store('x').createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x')).cap('x').unfold().dedup()" + } + },{ + "sites-byCloudRegionId":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'l3-network').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'complex').store('x').cap('x').unfold().dedup()" + } + },{ + "availabilityZoneAndComplex-fromCloudRegion":{ + "stored-query":"builder.union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'cloud-region', 'availability-zone').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'complex').store('x')).cap('x').unfold().dedup()" + } + },{ + "locationNetTypeNetRole-fromCloudRegion":{ + "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'cloud-region', 'complex').store('x').createEdgeTraversal(EdgeType.COUSIN, 'complex', 'l3-network').store('x').cap('x').unfold().dedup()" + } + },{ + "service-fromPserverandSubsName":{ + "query":{ + "required-properties":["subscriberName"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').where(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').where(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').getVerticesByProperty('subscriber-name', subscriberName)).store('x')).store('x').cap('x').unfold().dedup()" + } + },{ + "nfType-fromCloudRegion":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'cloud-region', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').store('x').cap('x').unfold().dedup()" + } + },{ + "sites-byCountryFilterCloudRegionId":{ + "query":{ + "required-properties":["cloudRegionId"] + }, + "stored-query":"builder.where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'complex', 'l3-network').createEdgeTraversal(EdgeType.COUSIN, 'l3-network', 'cloud-region').getVerticesByProperty('cloud-region-id', cloudRegionId)).store('x').cap('x').unfold().dedup()" + } + },{ + "complex-fromVnf":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').store('x').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x').createEdgeTraversal(EdgeType.COUSIN,'pserver', 'complex')).store('x').cap('x').unfold().dedup()" + } + },{ + "queryvnfFromModelbyRegion":{ + "query":{ + "required-properties":["cloudRegionId"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').getVerticesByProperty('cloud-region-id', cloudRegionId)).store('x').cap('x').unfold().dedup()" + } + },{ + "colocated-devices":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'complex', 'pserver').store('x').createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'complex', 'pnf').store('x').createEdgeTraversal(EdgeType.TREE, 'pnf', 'p-interface').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x'))).cap('x').unfold().dedup()" + } + },{ + "cloudRegion-fromCountryCloudRegionVersion":{ + "query":{ + "required-properties":["cloudRegionVersion"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'complex', 'cloud-region').getVerticesByProperty('cloud-region-version', cloudRegionVersion).store('x').cap('x').unfold().dedup()" + } + },{ + "cloudRegion-fromNfType":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x').cap('x').unfold().dedup()" + } + },{ + "cloudRegion-fromNfTypeVendorVersion":{ + "query":{ + "required-properties":["nfType"] + }, + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'image', 'vserver').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').getVerticesByProperty('nf-type',nfType)).createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x').cap('x').unfold().dedup()" + } + },{ + "vnf-topology-fromServiceInstance":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'allotted-resource').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'vf-module').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'volume-group').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x')))).cap('x').unfold().dedup()" + } + },{ + "ucpe-topology":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').where(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link')).as('item').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x').createEdgeTraversal(EdgeType.COUSIN, 'physical-link', 'p-interface').where(builder.newInstance().not(builder.newInstance().cap('item'))).store('x').createEdgeTraversal(EdgeType.TREE, 'p-interface', 'pnf').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'generic-vnf').store('x').as('vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnf-image').store('x').select('vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x').createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').store('x').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').store('x').as('vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnf-image').store('x').select('vnf').createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x').createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').store('x').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x')).cap('x').unfold().dedup()" + } + },{ + "topology-summary":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'image').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'flavor').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'))).cap('x').unfold().dedup()" + } + },{ + "topology-detail":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'platform').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'line-of-business').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'owning-entity').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'project').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'))).cap('x').unfold().dedup()" + } + },{ + "vnfs-fromPserver":{ + "query":{ + "required-properties":["hostname"] + }, + "stored-query":"builder.where(builder.newInstance().union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').getVerticesByProperty('hostname', hostname),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').getVerticesByProperty('hostname', hostname))).store('x').cap('x').unfold().dedup()" + } + },{ + "pending-topology-detail":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'platform').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'line-of-business').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'owning-entity').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'project').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vnfc', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vnfc', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vip-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vip-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vip-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vip-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')).dedup()).cap('x').unfold().dedup()" + } + },{ + "vnfs-fromServiceInstance":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x').cap('x').unfold().dedup()" + } + },{ + "owning-entity-fromService-instance":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN,'service-instance', 'owning-entity').store('x').cap('x').unfold().dedup()" + } + },{ + "pservers-fromVnf":{ + "stored-query":"builder.union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x')).cap('x').unfold().dedup()" + } + },{ + "fn-topology":{ + "stored-query":"builder.union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'line-of-business', 'generic-vnf').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x')).dedup().union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pnf').store('x')).cap('x').unfold().dedup()" + } + },{ + "edge-tag":{ + "stored-query":"builder.emit().repeat(builder.newInstance().union(builder.newInstance().outE().getVerticesByProperty(tag, \"OUT\").inV(), builder.newInstance().inE().getVerticesByProperty(tag, \"IN\").outV()).dedup())" + } + },{ + "topology-detail-fromVserver":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'complex').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'generic-vnf').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'platform').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'line-of-business').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'owning-entity').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'project').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x'))).cap('x').unfold().dedup()" + } + },{ + "vserverlogicallink-frompServer":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.COUSIN, 'pserver', 'vserver').store('x').createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.COUSIN, 'l-interface', 'logical-link').store('x').cap('x').unfold().dedup()" + } + },{ + "vnf-topology-fromVnf":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'service-instance').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'allotted-resource').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'vf-module').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'volume-group').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'),),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'tenant').store('x').createEdgeTraversal(EdgeType.TREE, 'tenant', 'cloud-region').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'),)).cap('x').unfold().dedup()" + } + },{ + "service-topology":{ + "stored-query":"builder.store('x').createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'generic-vnf').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnfc').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vip-ipv4-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vip-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vnfc', 'vip-ipv6-address-list').store('x').createEdgeTraversal(EdgeType.COUSIN, 'vip-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vnfc', 'l3-interface-ipv4-address-list').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x') ), builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vnfc', 'l3-interface-ipv6-address-list').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x') ) ), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vserver').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.TREE,'vserver','tenant').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv4-address-list', 'subnet').store('x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x') ), builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x').union( builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'l3-network').store('x'), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'l3-interface-ipv6-address-list', 'subnet').store( 'x').createEdgeTraversal(EdgeType.TREE, 'subnet', 'l3-network').store('x') ) ), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'vserver', 'pserver').store('x') ), builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'pserver').store('x').createEdgeTraversal(EdgeType.TREE, 'pserver', 'p-interface').store('x').createEdgeTraversal(EdgeType.COUSIN, 'p-interface', 'physical-link').store('x') ).cap('x').unfold().dedup()" + } + },{ + "access-service-fromServiceInstance":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'service-instance', 'service-subscription').store('x').createEdgeTraversal(EdgeType.TREE, 'service-subscription', 'customer').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'service-instance', 'forwarding-path').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'forwarding-path', 'configuration').store('x').createEdgeTraversal(EdgeType.TREE, 'configuration', 'evc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'forwarding-path', 'forwarder').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'forwarder', 'configuration').store('x').createEdgeTraversal(EdgeType.TREE, 'configuration', 'forwarder-evc').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'forwarder', 'p-interface').store('x').createEdgeTraversal(EdgeType.TREE, 'p-interface', 'pnf').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'forwarder', 'lag-interface').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'lag-interface', 'pnf').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'lag-interface', 'logical-link').getVerticesByProperty('link-type', 'LAG').store('x'))))).cap('x').unfold().dedup()" + } + },{ + "count-vnf-byVnfType":{ + "stored-query":"builder.getVerticesByProperty('aai-node-type', 'generic-vnf').groupCount().by('vnf-type').store('x').unfold()" + } + },{ + "pservers-withNoComplex":{ + "stored-query":"builder.getVerticesByProperty('aai-node-type', 'pserver').where(builder.newInstance().not(builder.newInstance().both().getVerticesByProperty('aai-node-type', 'complex'))).store('x').unfold()" + } + },{ + "gfp-vserver-data":{ + "stored-query":"builder.createEdgeTraversal(EdgeType.TREE, 'vserver', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vlan').store('x')).cap('x').unfold().dedup()" + } + },{ + "gfp-vnf-data":{ + "stored-query":"builder.store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'l-interface').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'l3-interface-ipv6-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vlan').store('x').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l3-interface-ipv6-address-list').store('x'))),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'generic-vnf', 'lag-interface').createEdgeTraversal(EdgeType.TREE, 'lag-interface', 'l-interface').store('x').createEdgeTraversal(EdgeType.TREE, 'l-interface', 'vlan').union(builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l3-interface-ipv4-address-list').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.TREE, 'vlan', 'l3-interface-ipv6-address-list').store('x')),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'vnf-image').store('x'),builder.newInstance().createEdgeTraversal(EdgeType.COUSIN, 'generic-vnf', 'network-profile').store('x')).cap('x').unfold().dedup()" + } + }] +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/closed-loop-named-query-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/closed-loop-named-query-1.0.json new file mode 100644 index 0000000..2ff66f8 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/closed-loop-named-query-1.0.json @@ -0,0 +1,78 @@ +{ + "named-query-uuid" : "4ff56a54-9e3f-46b7-a337-07a1d3c6b469", + "named-query-name" : "closed-loop-named-query", + "named-query-version" : "1.0", + "description" : "Named Query - For closed loop flow", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getClfiRoadmTailSummary-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getClfiRoadmTailSummary-1.0.json new file mode 100644 index 0000000..a30e797 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getClfiRoadmTailSummary-1.0.json @@ -0,0 +1,94 @@ +{
+ "named-query-uuid" : "4f448e43-339f-4c1c-85f6-896c444e25ca",
+ "named-query-name" : "GetClfiRoadmTailSummary",
+ "named-query-version" : "1.0",
+ "description" : "Named query - Get CLFI ROADM Tail Summary",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "862b25a1-262a-4961-bdaa-cdc55d69785a"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComplexByPnfName-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComplexByPnfName-1.0.json new file mode 100644 index 0000000..fef6c91 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComplexByPnfName-1.0.json @@ -0,0 +1,32 @@ +{ + "named-query-uuid" : "d27ccfea-7098-42d7-a4cd-bbddb37bf205", + "named-query-name" : "getComplexByPnfName", + "named-query-version" : "1.0", + "description" : "Named Query - get complex by pnfName", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "862b25a1-262a-4961-bdaa-cdc55d69785a" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.0.json new file mode 100644 index 0000000..d3e307c --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.0.json @@ -0,0 +1,98 @@ +{ + "named-query-uuid" : "ed0a0f5b-cf79-4784-88b2-911cd726cd3d", + "named-query-name" : "get-component-list", + "named-query-version" : "1.0", + "description" : "Named Query - Get Component List", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.1.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.1.json new file mode 100644 index 0000000..f275950 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.1.json @@ -0,0 +1,135 @@ +{ + "named-query-uuid" : "0367193e-c785-4d5f-9cb8-7bc89dc9ddb7", + "named-query-name" : "get-component-list", + "named-query-version" : "1.1", + "description" : "Named Query - Get Component List", + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-instance-id", "service-instance-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "166c050d-f69d-4305-943e-0bc58c3a26cf" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.2.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.2.json new file mode 100644 index 0000000..22ba4c0 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getComponentList-1.2.json @@ -0,0 +1,139 @@ +{ + "named-query-uuid" : "2a183f99-2c66-482b-ade5-7962efd801ef", + "named-query-name" : "get-component-list", + "named-query-version" : "1.2", + "description" : "Named Query - Get Component List", + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-instance-id", "service-instance-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "do-not-output" : "true", + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fcec1b02-b2d0-4834-aef8-d71be04717dd" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexHostname-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexHostname-1.0.json new file mode 100644 index 0000000..a610aa6 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexHostname-1.0.json @@ -0,0 +1,32 @@ +{ + "named-query-uuid" : "670a94e9-874f-4087-8501-62d4d289c519", + "named-query-name" : "dhv-complex-by-hostname", + "named-query-version" : "1.0", + "description" : "Named Query - DHV Complex By Hostname", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexLocationId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexLocationId-1.0.json new file mode 100644 index 0000000..70d6db1 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVComplexLocationId-1.0.json @@ -0,0 +1,32 @@ +{ + "named-query-uuid" : "59490c32-eaae-488d-8442-f301b1ed43a9", + "named-query-name" : "dhv-complex-by-location-id", + "named-query-version" : "1.0", + "description" : "Named Query - DHV Complex By LocationId", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLink-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLink-1.0.json new file mode 100644 index 0000000..6e90b61 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLink-1.0.json @@ -0,0 +1,58 @@ +{ + "named-query-uuid" : "47e5e7c7-719e-45af-b96f-0c15fa0691b9", + "named-query-name" : "logical-link-by-vnf-name", + "named-query-version" : "1.0", + "description" : "Named Query - get logical-link by vnf-name", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLinkByCircuitId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLinkByCircuitId-1.0.json new file mode 100644 index 0000000..62de1b8 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVLogicalLinkByCircuitId-1.0.json @@ -0,0 +1,19 @@ +{ + "named-query-uuid" : "4028faed-b7d5-4059-9d49-7df06da9ebfb", + "named-query-name" : "logical-link-by-circuit-id-", + "named-query-version" : "1.0", + "description" : "Named Query - get logical-link by circuit-id", + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0" + } ] + } ] + } + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.0.json new file mode 100644 index 0000000..a0ba2fe --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.0.json @@ -0,0 +1,273 @@ +{ + "named-query-uuid" : "b546a34b-7e71-45dc-9907-4cbdcf675c64", + "named-query-name" : "dhv-service-topology", + "named-query-version" : "1.0", + "description" : "Named Query - DHV Service Topology", + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-instance-id", "persona-model-id", "service-instance-name", "service-instance-location-id" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-type", "temp-ub-sub-account-id" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "global-customer-id" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b" + } ] + } ] + } + }, { + "property-collect-list" : [ "service-instance-id", "persona-model-id", "service-instance-name", "service-instance-location-id" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "vnf-name", "vnf-id", "vnf-type", "prov-status", "operational-state" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "interface-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "vlan-interface", "vlan-id-inner", "vlan-id-outer", "vlan-description", "speed-value", "speed-units" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "l3-interface-ipv4-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv6-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv4-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv6-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060" + } ] + } ] + } + }, { + "property-collect-list" : [ "vserver-name", "vserver-id", "prov-status" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "interface-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "vlan-interface", "vlan-id-inner", "vlan-id-outer", "vlan-description", "speed-value", "speed-units" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "l3-interface-ipv4-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv6-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv4-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv6-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060" + } ] + } ] + } + }, { + "property-collect-list" : [ "hostname" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "interface-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-provider-name" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "c822d81f-822f-4304-9623-1025b53da568" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.1.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.1.json new file mode 100644 index 0000000..2512590 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology-1.1.json @@ -0,0 +1,273 @@ +{ + "named-query-uuid" : "888d6065-e1ff-409c-ac6b-baafc4777788", + "named-query-name" : "dhv-service-topology", + "named-query-version" : "1.1", + "description" : "Named Query - DHV Service Topology", + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-instance-id", "model-invariant-id", "service-instance-name", "service-instance-location-id" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-type", "temp-ub-sub-account-id" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "global-customer-id" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b" + } ] + } ] + } + }, { + "property-collect-list" : [ "service-instance-id", "persona-model-id", "service-instance-name", "service-instance-location-id" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "vnf-name", "vnf-id", "vnf-type", "prov-status", "operational-state" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "interface-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "vlan-interface", "vlan-id-inner", "vlan-id-outer", "vlan-description", "speed-value", "speed-units" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "l3-interface-ipv4-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv6-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv4-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv6-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060" + } ] + } ] + } + }, { + "property-collect-list" : [ "vserver-name", "vserver-id", "prov-status" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "interface-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "vlan-interface", "vlan-id-inner", "vlan-id-outer", "vlan-description", "speed-value", "speed-units" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "l3-interface-ipv4-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv6-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv4-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "property-collect-list" : [ "l3-interface-ipv6-address" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060" + } ] + } ] + } + }, { + "property-collect-list" : [ "hostname" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "interface-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-provider-name" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "c822d81f-822f-4304-9623-1025b53da568" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology2-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology2-1.0.json new file mode 100644 index 0000000..986c50a --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getDHVServiceTopology2-1.0.json @@ -0,0 +1,321 @@ +{ + "named-query-uuid" : "09236f18-a9d2-4468-9086-464b8385b706", + "named-query-name" : "dhv-service-topology-2", + "named-query-version" : "1.0", + "description" : "Named Query - DHV Service Topology 2", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "aad85df2-09be-40fa-b867-16415e4e10e2" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82966045-43ee-4982-8307-7e9610866140" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "f6d6a23d-a1a9-48ff-8419-b6530da2d381" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getL3networkCloudRegionByNetworkRole-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getL3networkCloudRegionByNetworkRole-1.0.json new file mode 100644 index 0000000..d6b3c34 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getL3networkCloudRegionByNetworkRole-1.0.json @@ -0,0 +1,71 @@ +{ + "named-query-uuid" : "96e54642-c0e1-4aa2-af53-e37c623b8d01", + "named-query-name" : "l3network-cloud-region-by-network-role", + "named-query-version" : "1.0", + "description" : "Named Query - get l3Network and cloudRegion by networkRole", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getLogicalLinkByCloudRegionId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getLogicalLinkByCloudRegionId-1.0.json new file mode 100644 index 0000000..e987d36 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getLogicalLinkByCloudRegionId-1.0.json @@ -0,0 +1,32 @@ +{ + "named-query-uuid" : "25096aa7-bc97-4ece-8a81-41dd28cd0f7d", + "named-query-name" : "getLogicalLinkByCloudRegionId", + "named-query-version" : "1.0", + "description" : "Named query - get logical link by cloud region id", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getPinterfacePhysicalLinkBySvcInstId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getPinterfacePhysicalLinkBySvcInstId-1.0.json new file mode 100644 index 0000000..e8b377b --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getPinterfacePhysicalLinkBySvcInstId-1.0.json @@ -0,0 +1,84 @@ +{ + "named-query-uuid" : "75d55786-200b-49fd-92d7-1393e755d693", + "named-query-name" : "pinterface-physical-link-by-service-instance-id", + "named-query-version" : "1.0", + "description" : "Named Query - get pInterface and physicalLink by serviceInstanceId", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "c822d81f-822f-4304-9623-1025b53da568" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getRouterRoadmTailSummary-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getRouterRoadmTailSummary-1.0.json new file mode 100644 index 0000000..6f775e8 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getRouterRoadmTailSummary-1.0.json @@ -0,0 +1,120 @@ +{
+ "named-query-uuid" : "cbf22b8a-f29a-4b9b-a466-a878095b258a",
+ "named-query-name" : "GetRouterRoadmTailSummary",
+ "named-query-version" : "1.0",
+ "description" : "Named query - Get Router ROADM Tail Summary",
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "862b25a1-262a-4961-bdaa-cdc55d69785a"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd"
+ } ]
+ } ]
+ }
+ }, {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "named-query-elements" : {
+ "named-query-element" : [ {
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "94043c37-4e73-439c-a790-0fdd697924cd"
+ } ]
+ } ]
+ }
+ } ]
+ },
+ "relationship-list" : {
+ "relationship" : [ {
+ "related-to" : "model",
+ "relationship-data" : [ {
+ "relationship-key" : "model.model-invariant-id",
+ "relationship-value" : "862b25a1-262a-4961-bdaa-cdc55d69785a"
+ } ]
+ } ]
+ }
+ } ]
+ }
+}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceModel-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceModel-1.0.json new file mode 100644 index 0000000..035dc8c --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceModel-1.0.json @@ -0,0 +1,93 @@ +{ + "named-query-uuid" : "3fb4d3d3-36c1-4162-9fe9-3e2c68a9da81", + "named-query-name" : "getServiceInstanceModel-1.0", + "named-query-version" : "1.0", + "description" : "Named query - Get service instance model", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "related-lookups" : { + "related-lookup" : [ { + "source-node-type" : "vf-module", + "source-node-property" : "model-invariant-id-local", + "target-node-type" : "model", + "target-node-property" : "model-invariant-id", + "property-collect-list" : [ "model-invariant-id", "model-type" ] + }, + { + "source-node-type" : "vf-module", + "source-node-property" : "model-version-id-local", + "target-node-type" : "model-ver", + "target-node-property" : "model-version-id", + "property-collect-list" : [ "model-name", "model-version-id", "model-version" ] + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5" + } ] + } ] + } + } ] + }, + "related-lookups" : { + "related-lookup" : [ { + "source-node-type" : "generic-vnf", + "source-node-property" : "model-invariant-id-local", + "target-node-type" : "model", + "target-node-property" : "model-invariant-id", + "property-collect-list" : [ "model-invariant-id", "model-type" ] + }, + { + "source-node-type" : "generic-vnf", + "source-node-property" : "model-version-id-local", + "target-node-type" : "model-ver", + "target-node-property" : "model-version-id", + "property-collect-list" : [ "model-name", "model-version-id", "model-version" ] + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "related-lookups" : { + "related-lookup" : [ { + "source-node-type" : "service-instance", + "source-node-property" : "model-invariant-id-local", + "target-node-type" : "model", + "target-node-property" : "model-invariant-id", + "property-collect-list" : [ "model-invariant-id", "model-type" ] + }, + { + "source-node-type" : "service-instance", + "source-node-property" : "model-invariant-id-local", + "target-node-type" : "model", + "target-node-property" : "model-invariant-id", + "property-collect-list" : [ "model-name", "model-version-id", "model-version" ] + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceSummary-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceSummary-1.0.json new file mode 100644 index 0000000..971b1a2 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getServiceInstanceSummary-1.0.json @@ -0,0 +1,126 @@ +{ + "named-query-uuid" : "5aaae840-ca96-4e5f-9308-58883564a80f", + "named-query-name" : "get-service-instance-summary", + "named-query-version" : "1.0", + "description" : "Named Query - Get Service Instance Summary", + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-instance-id", "service-instance-name", "operational-status" ], + "named-query-elements" : { + "named-query-element" : [ { + "do-not-output" : "true", + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "cloud-region-id" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "3d560d81-57d0-438b-a2a1-5334dba0651a" + } ] + } ] + } + }, { + "property-collect-list" : [ "service-type" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "global-customer-id", "subscriber-name" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b" + } ] + } ] + } + }, { + "do-not-output" : "true", + "named-query-elements" : { + "named-query-element" : [ { + "do-not-output" : "true", + "named-query-elements" : { + "named-query-element" : [ { + "do-not-output" : "true", + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "cloud-region-id" ], + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getSvcSubscriberModelInfo-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getSvcSubscriberModelInfo-1.0.json new file mode 100644 index 0000000..5dcd475 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getSvcSubscriberModelInfo-1.0.json @@ -0,0 +1,46 @@ +{ + "named-query-uuid" : "6e806bc2-8f9b-4534-bb68-be91267ff6c8", + "named-query-name" : "get-service-instance-model-info", + "named-query-version" : "1.0", + "description" : "Named Query - Get Service Instance Model Info", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "do-not-output" : "false", + "related-lookups" : { + "related-lookup" : [ { + "source-node-type" : "service-instance", + "source-node-property" : "model-invariant-id-local", + "target-node-type" : "model", + "target-node-property" : "model-invariant-id", + "property-collect-list" : ["model-invariant-id", "model-type", "model-description" ] + }, { + "source-node-type" : "service-instance", + "source-node-property" : "model-version-id-local", + "target-node-type" : "model-ver", + "target-node-property" : "model-version-id", + "property-collect-list" : [ "model-version-id", "model-name", "model-version", "model-description" ] + } ] + }, + "relationship-list" : { + "relationship" : [ { + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b" + } ] + } ] + } + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcInstance-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcInstance-1.0.json new file mode 100644 index 0000000..ee1bec5 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcInstance-1.0.json @@ -0,0 +1,87 @@ +{ + "named-query-uuid" : "3c167fdb-5a99-46a3-8165-e566d289358d", + "named-query-name" : "getTenantInfoAtSvcInstance", + "named-query-version" : "1.0", + "description" : "Named Query - Tenant Info At Service Instance", + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "service-instance-id", "service-instance-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "vnf-id", "vnf-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "property-collect-list" : [ "vserver-id", "vserver-name" ], + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcSubscription-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcSubscription-1.0.json new file mode 100644 index 0000000..e520585 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getTenantInfoAtSvcSubscription-1.0.json @@ -0,0 +1,58 @@ +{ + "named-query-uuid" : "35b13965-ef9d-4597-9859-bde64c521c91", + "named-query-name" : "getTenantInfoAtSvcSubscription", + "named-query-version" : "1.0", + "description" : "Named Query - Tenant Info At ServiceSubscription", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "af91c2f7-35fc-43cf-a13d-443f385b2353" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b" + } ] + } ] + } + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVnfVlanByCircuitId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVnfVlanByCircuitId-1.0.json new file mode 100644 index 0000000..2260ab3 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVnfVlanByCircuitId-1.0.json @@ -0,0 +1,58 @@ +{ + "named-query-uuid" : "9abb2661-d92c-4f84-aea6-b16acfa00e22", + "named-query-name" : "generic-vnf-vlan-by-circuit-id", + "named-query-version" : "1.0", + "description" : "Named Query - get genericVnf and vlan by circuitId", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "cea0a982-8d55-4093-921e-418fbccf7060" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0" + } ] + } ] + } + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVserver-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVserver-1.0.json new file mode 100644 index 0000000..2107523 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getVserver-1.0.json @@ -0,0 +1,126 @@ +{ + "named-query-uuid" : "f199cb88-5e69-4b1f-93e0-6f257877d066", + "named-query-name" : "getVserver-1.0", + "named-query-version" : "1.0", + "description" : "Named query - Get vserver", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6" + } ] + } ] + } + }, { + "named-query-elements" : { + "named-query-element" : [ { + "related-lookups" : { + "related-lookup" : [ { + "source-node-type" : "vf-module", + "source-node-property" : "model-invariant-id-local", + "target-node-type" : "model", + "target-node-property" : "model-invariant-id", + "property-collect-list" : [ "model-invariant-id", "model-type" ] + }, + { + "source-node-type" : "vf-module", + "source-node-property" : "model-version-id-local", + "target-node-type" : "model-ver", + "target-node-property" : "model-version-id", + "property-collect-list" : ["model-name", "model-version-id", "model-version" ] + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5" + } ] + } ] + } + }, { + "related-lookups" : { + "related-lookup" : [ { + "source-node-type" : "service-instance", + "source-node-property" : "model-invariant-id-local", + "target-node-type" : "model", + "target-node-property" : "model-invariant-id", + "property-collect-list" : [ "model-invariant-id", "model-type" ] + }, + { + "source-node-type" : "service-instance", + "source-node-property" : "model-version-id-local", + "target-node-type" : "model-ver", + "target-node-property" : "model-version-id", + "property-collect-list" : [ "model-name", "model-version-id", "model-version" ] + }] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + }, + "related-lookups" : { + "related-lookup" : [ { + "source-node-type" : "generic-vnf", + "source-node-property" : "model-invariant-id-local", + "target-node-type" : "model", + "target-node-property" : "model-invariant-id", + "property-collect-list" : [ "model-invariant-id", "model-type" ] + }, + { + "source-node-type" : "generic-vnf", + "source-node-property" : "model-version-id-local", + "target-node-type" : "model-ver", + "target-node-property" : "model-version-id", + "property-collect-list" : [ "model-name", "model-version-id", "model-version" ] + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getWlBundleId-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getWlBundleId-1.0.json new file mode 100644 index 0000000..203aa38 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/getWlBundleId-1.0.json @@ -0,0 +1,81 @@ +{ + "named-query-uuid" : "88aae9bc-9b3d-44c8-a0ba-3c4911da755c", + "named-query-name" : "GetWlBundleId", + "named-query-version" : "1.0", + "description" : "Named query for wavelength services with same Bundle Id", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "2e1a602a-acd8-4f78-94ff-618b802a303b" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + }, { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "fe012535-2c31-4a39-a739-612374c638a0" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "86ffe6e5-4d0e-4cec-80b5-5c38aa3eff98" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-esr-system-info-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-esr-system-info-1.0.json new file mode 100644 index 0000000..c371796 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-esr-system-info-1.0.json @@ -0,0 +1,71 @@ +{ + "named-query-uuid" : "037eb932-edac-48f5-9782-c19c0aa5a031", + "named-query-name" : "vnf-to-esr-system-info", + "named-query-version" : "1.0", + "description" : "Named Query - VNF to ESR System Info", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "0562518b-e5b3-49f4-8ad8-19b43766c79d" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "425b2158-e51d-4509-9945-dad4556474a3" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-service-instance-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-service-instance-1.0.json new file mode 100644 index 0000000..53e6f26 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/named-query-json/vnf-to-service-instance-1.0.json @@ -0,0 +1,45 @@ +{ + "named-query-uuid" : "a93ac487-409c-4e8c-9e5f-334ae8f99087", + "named-query-name" : "vnf-to-service-instance", + "named-query-version" : "1.0", + "description" : "Named Query - VNF to Service Instance", + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "named-query-elements" : { + "named-query-element" : [ { + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "82194af1-3c2c-485a-8f44-420e22a9eaa4" + } ] + } ] + } + } ] + }, + "relationship-list" : { + "relationship" : [ { + "related-to" : "model", + "relationship-data" : [ { + "relationship-key" : "model.model-invariant-id", + "relationship-value" : "acc6edd8-a8d4-4b93-afaa-0994068be14c" + } ] + } ] + } + } ] + } +}
\ No newline at end of file diff --git a/aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/resource-model-json/000-README b/aai-traversal/src/main/resources/etc/scriptdata/resource-model-json/000-README index 9647972..9647972 100644 --- a/aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/resource-model-json/000-README +++ b/aai-traversal/src/main/resources/etc/scriptdata/resource-model-json/000-README diff --git a/aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/service-model-json/000-README b/aai-traversal/src/main/resources/etc/scriptdata/service-model-json/000-README index bb30e02..bb30e02 100644 --- a/aai-traversal/src/test/resources/bundleconfig-local/etc/scriptdata/service-model-json/000-README +++ b/aai-traversal/src/main/resources/etc/scriptdata/service-model-json/000-README diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-1.0.json new file mode 100644 index 0000000..9d3e00c --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "af593b4b-490e-4665-ad74-2f6351c0a7ce", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "fd7fb09e-d930-41b9-b83f-cfde9df48640", + "model-version" : "1.0", + "model-name" : "action" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-data-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-data-1.0.json new file mode 100644 index 0000000..7229f5a --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/action-data-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "9551346c-7d8b-4daf-9926-b93e96e2344a", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "2f80c596-27e5-4ca9-b5bb-e03a7fd4c0fd", + "model-version" : "1.0", + "model-name" : "action-data" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/allotted-resource-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/allotted-resource-1.0.json new file mode 100644 index 0000000..9329af8 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/allotted-resource-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "f6d6a23d-a1a9-48ff-8419-b6530da2d381", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "7ad0915f-25c0-4a70-b9bc-185a75f87564", + "model-version" : "1.0", + "model-name" : "allotted-resource" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/availability-zone-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/availability-zone-1.0.json new file mode 100644 index 0000000..0c423fe --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/availability-zone-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "61b88c01-d819-41c0-8e21-7fd7ba47148e", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "6c092fb1-21b2-456b-9e01-67fb4de1896e", + "model-version" : "1.0", + "model-name" : "availability-zone" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/az-and-dvs-switches-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/az-and-dvs-switches-1.0.json new file mode 100644 index 0000000..620a33d --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/az-and-dvs-switches-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "53dc00d4-e6d9-48ec-b6cc-3d3797e9b896", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "b2dea88d-78a0-49bf-95c9-5819df08e966", + "model-version" : "1.0", + "model-name" : "az-and-dvs-switches" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/class-of-service-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/class-of-service-1.0.json new file mode 100644 index 0000000..2b28152 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/class-of-service-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "18094b19-d16d-4822-8acf-e92c6aefa178", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "d2fb27cc-15eb-4c4e-828e-71d41aaecc5b", + "model-version" : "1.0", + "model-name" : "class-of-service" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cloud-region-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cloud-region-1.0.json new file mode 100644 index 0000000..a2957c4 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cloud-region-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "425b2158-e51d-4509-9945-dad4556474a3", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "2a160989-b202-47dd-874b-4a0f275998f7", + "model-version" : "1.0", + "model-name" : "cloud-region" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/complex-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/complex-1.0.json new file mode 100644 index 0000000..c8ca766 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/complex-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "af91c2f7-35fc-43cf-a13d-443f385b2353", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "3a8ab1ee-9220-4fe8-b89c-9251d160ddc2", + "model-version" : "1.0", + "model-name" : "complex" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/configuration-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/configuration-1.0.json new file mode 100644 index 0000000..939f175 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/configuration-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "166c050d-f69d-4305-943e-0bc58c3a26cf", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "5a175add-57e4-4a5d-8b02-c36f1d69c52b", + "model-version" : "1.0", + "model-name" : "configuration" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/connector-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/connector-1.0.json new file mode 100644 index 0000000..f9bfed0 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/connector-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "4c01c948-7607-4d66-8a6c-99c2c2717936", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "22104c9f-29fd-462f-be07-96cd6b46dd33", + "model-version" : "1.0", + "model-name" : "connector" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/constrained-element-set-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/constrained-element-set-1.0.json new file mode 100644 index 0000000..44f5de2 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/constrained-element-set-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "c0292b4f-ee97-40cc-8c2e-f967c48f5701", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "01102126-9c04-4a89-945b-b131e61e95d7", + "model-version" : "1.0", + "model-name" : "constrained-element-set" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-assignment-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-assignment-1.0.json new file mode 100644 index 0000000..87eee5c --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-assignment-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "fcb8d46b-b656-4ad6-8fa4-22cef74b443f", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "44e5cb1f-0938-41aa-b766-d4595109fe89", + "model-version" : "1.0", + "model-name" : "ctag-assignment" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-pool-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-pool-1.0.json new file mode 100644 index 0000000..c85e267 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ctag-pool-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "46c51d4e-d67e-4a9c-b1f5-49b1e9c6fcaa", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "2056c41f-23b9-4de7-9f50-819adad37d76", + "model-version" : "1.0", + "model-name" : "ctag-pool" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/customer-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/customer-1.0.json new file mode 100644 index 0000000..35cf683 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/customer-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "c1d4305f-cdbd-4bbe-9069-a2f4978fd89e", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "d4df5c27-98a1-4812-a8aa-c17f055b7a3f", + "model-version" : "1.0", + "model-name" : "customer" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cvlan-tag-entry-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cvlan-tag-entry-1.0.json new file mode 100644 index 0000000..95211f2 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/cvlan-tag-entry-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "245cf4b0-7cc5-4eea-bbd9-753e939adcab", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "c3878ffb-8d85-4114-bee6-e4074a9db10b", + "model-version" : "1.0", + "model-name" : "cvlan-tag-entry" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/dvs-switch-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/dvs-switch-1.0.json new file mode 100644 index 0000000..22dc769 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/dvs-switch-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "98fbb471-1f86-428e-bd8a-c8a25de6fa23", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "4cb44ae8-e3ab-452a-9f95-bcc8a44c55ea", + "model-version" : "1.0", + "model-name" : "dvs-switch" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/edge-prop-names-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/edge-prop-names-1.0.json new file mode 100644 index 0000000..4ed663f --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/edge-prop-names-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "7a08cad4-8759-46a5-8245-095d1ba57ac6", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "f0442326-8201-4d0e-857c-74b4ddcbfc9f", + "model-version" : "1.0", + "model-name" : "edge-prop-names" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/element-choice-set-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/element-choice-set-1.0.json new file mode 100644 index 0000000..46c7348 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/element-choice-set-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "9a011958-7165-47a3-b872-00951d1f09ae", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "af27fbfd-598d-44da-aeae-0f9d3a5fcd6a", + "model-version" : "1.0", + "model-name" : "element-choice-set" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/entitlement-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/entitlement-1.0.json new file mode 100644 index 0000000..b6bf0e8 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/entitlement-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "ae75b5a0-d5e1-4f3a-b8fb-37626a753da3", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "7e27ba2e-b7db-4e13-9fae-d142152ef98a", + "model-version" : "1.0", + "model-name" : "entitlement" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/esr-system-info-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/esr-system-info-1.0.json new file mode 100644 index 0000000..54a3bc8 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/esr-system-info-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "0562518b-e5b3-49f4-8ad8-19b43766c79d", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "5ded840b-42aa-4692-a7ac-9a6ed5f3146b", + "model-version" : "1.0", + "model-name" : "esr-system-info" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/flavor-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/flavor-1.0.json new file mode 100644 index 0000000..c44e554 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/flavor-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "bace8d1c-a261-4041-9e37-823117415d0f", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "36200fb5-f251-4f5d-a520-7c5ad5c2cd4b", + "model-version" : "1.0", + "model-name" : "flavor" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/generic-vnf-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/generic-vnf-1.0.json new file mode 100644 index 0000000..afab83a --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/generic-vnf-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "acc6edd8-a8d4-4b93-afaa-0994068be14c", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "93a6166f-b3d5-4f06-b4ba-aed48d009ad9", + "model-version" : "1.0", + "model-name" : "generic-vnf" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/group-assignment-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/group-assignment-1.0.json new file mode 100644 index 0000000..33e1495 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/group-assignment-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "7cc05f25-7ba2-42b7-a237-c5662a1689e1", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "fe578080-ce19-4604-8760-fc264fbb2565", + "model-version" : "1.0", + "model-name" : "group-assignment" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/image-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/image-1.0.json new file mode 100644 index 0000000..59f095b --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/image-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "3f4c7204-739b-4bbb-87a7-8a6856439c90", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "f6a038c2-820c-42ba-8c2b-375e24e8f932", + "model-version" : "1.0", + "model-name" : "image" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/include-node-filter-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/include-node-filter-1.0.json new file mode 100644 index 0000000..83d9255 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/include-node-filter-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "2a2d8ad2-af0a-4e1f-9982-0c899e7dc827", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "f05f804d-7057-4ffe-bdc5-39f2f0c9c9fd", + "model-version" : "1.0", + "model-name" : "include-node-filter" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/instance-group-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/instance-group-1.0.json new file mode 100644 index 0000000..81eeff0 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/instance-group-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "3bf1e610-45f7-4ad6-b833-ca4c5ee6a3fd", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "8e6ee9dc-9017-444a-83b3-219edb018128", + "model-version" : "1.0", + "model-name" : "instance-group" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-1.0.json new file mode 100644 index 0000000..307d29d --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "cd57d844-9017-4078-aa19-926935a3d77c", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "69957f4a-2155-4b95-8d72-d6dd9b88b27b", + "model-version" : "1.0", + "model-name" : "inventory-item" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-data-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-data-1.0.json new file mode 100644 index 0000000..46cb9f0 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/inventory-item-data-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "87a383ae-cf03-432e-a9de-04e6a622d0fd", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "0e54bb87-bd6e-4a2b-ad1c-6d935b87ae51", + "model-version" : "1.0", + "model-name" : "inventory-item-data" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ipsec-configuration-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ipsec-configuration-1.0.json new file mode 100644 index 0000000..165ebbe --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/ipsec-configuration-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "aca4c310-cb45-42bd-9f88-73e40ba7b962", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "d949fd10-36bf-408a-ac7a-cad5004d2e0d", + "model-version" : "1.0", + "model-name" : "ipsec-configuration" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/key-data-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/key-data-1.0.json new file mode 100644 index 0000000..f0f7cb4 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/key-data-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "f5faa464-c2f2-4cc3-89d2-a90452dc3a07", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "c23ea04d-1a3b-453d-bc49-a6c783a5e92b", + "model-version" : "1.0", + "model-name" : "key-data" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l-interface-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l-interface-1.0.json new file mode 100644 index 0000000..0f63ba5 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l-interface-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "cea0a982-8d55-4093-921e-418fbccf7060", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "a32613fd-18b9-459e-aab8-fffb3912966a", + "model-version" : "1.0", + "model-name" : "l-interface" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv4-address-list-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv4-address-list-1.0.json new file mode 100644 index 0000000..0bb4d41 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv4-address-list-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "aad85df2-09be-40fa-b867-16415e4e10e2", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "41e76b6f-1e06-4fd4-82cd-81c50fc4574b", + "model-version" : "1.0", + "model-name" : "l3-interface-ipv4-address-list" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv6-address-list-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv6-address-list-1.0.json new file mode 100644 index 0000000..9a830f4 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-interface-ipv6-address-list-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "82966045-43ee-4982-8307-7e9610866140", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "d040621d-541a-477b-bb1b-a2b61b14e295", + "model-version" : "1.0", + "model-name" : "l3-interface-ipv6-address-list" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-network-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-network-1.0.json new file mode 100644 index 0000000..0d92d38 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/l3-network-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "3d560d81-57d0-438b-a2a1-5334dba0651a", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "9111f20f-e680-4001-b83f-19a2fc23bfc1", + "model-version" : "1.0", + "model-name" : "l3-network" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-interface-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-interface-1.0.json new file mode 100644 index 0000000..9bf0715 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-interface-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "e0ee9bde-c1fc-4651-a95d-8e0597bf7d70", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "ce95f7c3-b61b-4758-ae9e-7e943b1c103d", + "model-version" : "1.0", + "model-name" : "lag-interface" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-link-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-link-1.0.json new file mode 100644 index 0000000..44046a9 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/lag-link-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "86ffe6e5-4d0e-4cec-80b5-5c38aa3eff98", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "d29a087a-af59-4053-a3f8-0f95a92faa75", + "model-version" : "1.0", + "model-name" : "lag-link" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-1.0.json new file mode 100644 index 0000000..fc79b60 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "b9a9b337-1f86-42d3-b9f9-f987a089507c", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "6889274b-a1dc-40ab-9090-93677e13e2e6", + "model-version" : "1.0", + "model-name" : "license" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-key-resource-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-key-resource-1.0.json new file mode 100644 index 0000000..b56df16 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/license-key-resource-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "9022ebfe-b54f-4911-a6b2-8c3f5ec189b7", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "24b25f8c-b8bd-4c62-9421-87c12667aac9", + "model-version" : "1.0", + "model-name" : "license-key-resource" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/logical-link-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/logical-link-1.0.json new file mode 100644 index 0000000..66300e7 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/logical-link-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "fe012535-2c31-4a39-a739-612374c638a0", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "a1481a38-f8ba-4ae4-bdf1-06c2c6af4c54", + "model-version" : "1.0", + "model-name" : "logical-link" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/metadatum-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/metadatum-1.0.json new file mode 100644 index 0000000..1110746 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/metadatum-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "86dbb63a-265e-4614-993f-6771c30b56a5", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "6bae950e-8939-41d3-a6a7-251b03e4c1fc", + "model-version" : "1.0", + "model-name" : "metadatum" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-1.0.json new file mode 100644 index 0000000..4c5da8c --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "06d1418a-5faa-452d-a94b-a2829df5f67b", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "1f51c05c-b164-4c27-9c03-5cbb239fd6be", + "model-version" : "1.0", + "model-name" : "model" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-constraint-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-constraint-1.0.json new file mode 100644 index 0000000..37b7272 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-constraint-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "c28966f3-e758-4483-b37b-a90b05d3dd33", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "ad70dd19-f156-4fb5-a865-97b5563b0d37", + "model-version" : "1.0", + "model-name" : "model-constraint" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-element-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-element-1.0.json new file mode 100644 index 0000000..6e4df08 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-element-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "2076e726-3577-477a-a300-7fa65cd4df11", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "753e813a-ba9e-4a1d-ab34-b2f6dc6eec0c", + "model-version" : "1.0", + "model-name" : "model-element" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-ver-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-ver-1.0.json new file mode 100644 index 0000000..98511b0 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/model-ver-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "b5cd462f-e426-4146-b1fe-5475ae272c3d", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "93f2f8bc-cb12-4a01-96c8-3d2649e4ab8f", + "model-name" : "model-ver", + "model-version" : "1.0" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/multicast-configuration-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/multicast-configuration-1.0.json new file mode 100644 index 0000000..c76e423 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/multicast-configuration-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "ea78c9e3-514d-4a0a-9162-13837fa54c35", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "666a06ee-4b57-46df-bacf-908da8f10c3f", + "model-version" : "1.0", + "model-name" : "multicast-configuration" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-1.0.json new file mode 100644 index 0000000..7aef873 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "80b712fd-0ad3-4180-a99c-8c995cf1cc32", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "5c3b7c33-afa3-4be5-8da7-1a5ac6f99896", + "model-version" : "1.0", + "model-name" : "named-query" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-element-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-element-1.0.json new file mode 100644 index 0000000..6f6d11a --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/named-query-element-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "3c504d40-b847-424c-9d25-4fb7e0a3e994", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "204c641a-3494-48c8-979a-86856f5fd32a", + "model-version" : "1.0", + "model-name" : "named-query-element" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-policy-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-policy-1.0.json new file mode 100644 index 0000000..a28b19e --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-policy-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "6aa05779-94d7-4d8b-9bee-59ef2ab0c246", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "a0ccd9dc-7062-4940-9bcc-e91dd28af510", + "model-version" : "1.0", + "model-name" : "network-policy" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-profile-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-profile-1.0.json new file mode 100644 index 0000000..30d6d9d --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/network-profile-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "2734b44a-b8a2-40f6-957d-6256589e5d00", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "01f45471-4240-498c-a9e1-235dc0b8b4a6", + "model-version" : "1.0", + "model-name" : "network-profile" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/newvce-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/newvce-1.0.json new file mode 100644 index 0000000..b2285d4 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/newvce-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "4b05ec9c-c55d-4987-83ff-e08d6ddb694f", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "7c79e11f-a408-4593-aa86-ba948a1236af", + "model-version" : "1.0", + "model-name" : "newvce" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/oam-network-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/oam-network-1.0.json new file mode 100644 index 0000000..7a3cd18 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/oam-network-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "2851cf01-9c40-4064-87d4-6184a6fcff35", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "f4fb34f3-fd6e-4a8f-a3fb-4ab61a343b79", + "model-version" : "1.0", + "model-name" : "oam-network" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/p-interface-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/p-interface-1.0.json new file mode 100644 index 0000000..3d02918 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/p-interface-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "94043c37-4e73-439c-a790-0fdd697924cd", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "d2cdb2d0-fc1f-4a57-a89e-591b1c4e3754", + "model-version" : "1.0", + "model-name" : "p-interface" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/physical-link-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/physical-link-1.0.json new file mode 100644 index 0000000..904a4cc --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/physical-link-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "c822d81f-822f-4304-9623-1025b53da568", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "9c523936-95b4-4d7f-9f53-6bdfe0cf2c05", + "model-version" : "1.0", + "model-name" : "physical-link" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pnf-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pnf-1.0.json new file mode 100644 index 0000000..9260b17 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pnf-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "862b25a1-262a-4961-bdaa-cdc55d69785a", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "e9f1fa7d-c839-418a-9601-03dc0d2ad687", + "model-version" : "1.0", + "model-name" : "pnf" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/port-group-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/port-group-1.0.json new file mode 100644 index 0000000..8aac84d --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/port-group-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "8ce940fb-55d7-4230-9e7f-a56cc2741f77", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "03e8bb6b-b48a-46ae-b5d4-e5af577e6844", + "model-version" : "1.0", + "model-name" : "port-group" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/property-constraint-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/property-constraint-1.0.json new file mode 100644 index 0000000..4db5389 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/property-constraint-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "f4a863c3-6886-470a-a6ae-05723837ea45", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "81706bbd-981e-4362-ae20-995cbcb2d995", + "model-version" : "1.0", + "model-name" : "property-constraint" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pserver-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pserver-1.0.json new file mode 100644 index 0000000..a22b859 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/pserver-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "6d932c8f-463b-4e76-83fb-87acfbaa2e2d", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "72f0d495-bc27-4653-9e1a-eef76bd34bc9", + "model-version" : "1.0", + "model-name" : "pserver" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/related-lookup-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/related-lookup-1.0.json new file mode 100644 index 0000000..e67fa07 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/related-lookup-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "468f6f5b-2996-41bb-b2a3-7cf9613ebb9b", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "0988bab5-bf4f-4938-a419-ab249867d12a", + "model-version" : "1.0", + "model-name" : "related-lookup" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/reserved-prop-names-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/reserved-prop-names-1.0.json new file mode 100644 index 0000000..1bfc7d3 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/reserved-prop-names-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "0c3e0ba3-618c-498d-9127-c8d42b00170f", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "ac49d26d-9163-430e-934a-13b738a04f5c", + "model-version" : "1.0", + "model-name" : "reserved-prop-names" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/result-data-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/result-data-1.0.json new file mode 100644 index 0000000..059dfb0 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/result-data-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "ff656f23-6185-406f-9006-4b26834f3e1c", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "4e9b50aa-5227-4f6f-b489-62e6bbc03c79", + "model-version" : "1.0", + "model-name" : "result-data" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/route-table-reference-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/route-table-reference-1.0.json new file mode 100644 index 0000000..f7910a9 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/route-table-reference-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "a8614b63-2636-4c4f-98df-fd448c4241db", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "fed7e326-03a7-45ff-a3f2-471470d268c4", + "model-version" : "1.0", + "model-name" : "route-table-reference" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/routing-instance-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/routing-instance-1.0.json new file mode 100644 index 0000000..caec0d6 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/routing-instance-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "1c2ded4f-8b01-4193-829c-966847dfec3e", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "3ccbcbc7-d19e-44d5-a52f-7e18aa8d69fa", + "model-version" : "1.0", + "model-name" : "routing-instance" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/secondary-filter-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/secondary-filter-1.0.json new file mode 100644 index 0000000..cef0a94 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/secondary-filter-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "738ff299-6290-4c00-8998-bd0e96a07b93", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "1380619d-dd1a-4cec-b755-c6407833e065", + "model-version" : "1.0", + "model-name" : "secondary-filter" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/segmentation-assignment-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/segmentation-assignment-1.0.json new file mode 100644 index 0000000..4335e10 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/segmentation-assignment-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "6e814aee-46e1-4583-a9d4-0049bfd2b59b", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "c5171ae0-44fb-4c04-b482-d56702241a44", + "model-version" : "1.0", + "model-name" : "segmentation-assignment" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-1.0.json new file mode 100644 index 0000000..ab3295a --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "07a3a60b-1b6c-4367-8173-8014386f89e3", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "ecce2c42-3957-4ae0-9442-54bc6afe27b6", + "model-version" : "1.0", + "model-name" : "service" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-capability-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-capability-1.0.json new file mode 100644 index 0000000..038a993 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-capability-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "b1a7cc05-d19d-443b-a5d1-733e325c4232", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "f9cfec1b-18da-4bba-bd83-4b26cca115cd", + "model-version" : "1.0", + "model-name" : "service-capability" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-instance-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-instance-1.0.json new file mode 100644 index 0000000..b5ef861 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-instance-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "82194af1-3c2c-485a-8f44-420e22a9eaa4", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "46b92144-923a-4d20-b85a-3cbd847668a9", + "model-version" : "1.0", + "model-name" : "service-instance" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-subscription-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-subscription-1.0.json new file mode 100644 index 0000000..2af765f --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/service-subscription-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "2e1a602a-acd8-4f78-94ff-618b802a303b", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "5e68299a-79f2-4bfb-8fbc-2bae877a2459", + "model-version" : "1.0", + "model-name" : "service-subscription" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-1.0.json new file mode 100644 index 0000000..eef13ea --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "db63f3e6-f8d1-484e-8d5e-191600b7914b", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "7106bc02-6552-4fc3-8a56-4f3df9034531", + "model-version" : "1.0", + "model-name" : "site-pair" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-set-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-set-1.0.json new file mode 100644 index 0000000..3c77903 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/site-pair-set-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "5d4dae3e-b402-4bfd-909e-ece12ff75d26", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "a5c6c1bc-dc38-468e-9459-bb08f87247df", + "model-version" : "1.0", + "model-name" : "site-pair-set" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/snapshot-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/snapshot-1.0.json new file mode 100644 index 0000000..24ea90b --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/snapshot-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "24de00ef-aead-4b52-995b-0adf8d4bd90d", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "962a7c8b-687f-4d32-a775-fe098e214bcd", + "model-version" : "1.0", + "model-name" : "snapshot" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/sriov-vf-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/sriov-vf-1.0.json new file mode 100644 index 0000000..a5c077a --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/sriov-vf-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "04b2935f-33c4-40a9-8af0-8b52690042dc", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "1e8b331f-3d4a-4160-b7aa-f4d5a8916625", + "model-version" : "1.0", + "model-name" : "sriov-vf" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/start-node-filter-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/start-node-filter-1.0.json new file mode 100644 index 0000000..743d89e --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/start-node-filter-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "083093a3-e407-447a-ba5d-7583e4d23e1d", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "aad96fd3-e75f-42fc-9777-3450c36f1168", + "model-version" : "1.0", + "model-name" : "start-node-filter" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/subnet-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/subnet-1.0.json new file mode 100644 index 0000000..f6b2e55 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/subnet-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "1b2c9ba7-e449-4831-ba15-3073672f5ef2", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "f902a6bc-6be4-4fe5-8458-a6ec0056b374", + "model-version" : "1.0", + "model-name" : "subnet" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tagged-inventory-item-list-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tagged-inventory-item-list-1.0.json new file mode 100644 index 0000000..5146b99 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tagged-inventory-item-list-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "e78a7eaa-f65d-4919-9c2b-5b258c8c4d7e", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "c246f6e2-e3a1-4697-94c0-5672a7fbbf04", + "model-version" : "1.0", + "model-name" : "tagged-inventory-item-list" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tenant-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tenant-1.0.json new file mode 100644 index 0000000..e105783 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tenant-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "97c26c99-6870-44c1-8a07-1d900d3f4ce6", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "abcc54bc-bb74-49dc-9043-7f7171707545", + "model-version" : "1.0", + "model-name" : "tenant" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tunnel-xconnect-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tunnel-xconnect-1.0.json new file mode 100644 index 0000000..5c6d5c6 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/tunnel-xconnect-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "50b9e2fa-005c-4bbe-b651-3251dece4cd8", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "e7cb4ca8-e1a5-4487-a716-4ae0bcd8aef5", + "model-version" : "1.0", + "model-name" : "tunnel-xconnect" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/update-node-key-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/update-node-key-1.0.json new file mode 100644 index 0000000..25c5efd --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/update-node-key-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "fe81c801-f65d-408a-b2b7-a729a18f8154", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "6004cfa6-eb6d-4062-971f-b1fde6b74aa0", + "model-version" : "1.0", + "model-name" : "update-node-key" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vce-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vce-1.0.json new file mode 100644 index 0000000..45f01d4 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vce-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "bab6dceb-e7e6-4301-a5e0-a7399b48d792", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "b6cf54b5-ec45-43e1-be64-97b4e1513333", + "model-version" : "1.0", + "model-name" : "vce" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vf-module-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vf-module-1.0.json new file mode 100644 index 0000000..383d187 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vf-module-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "ef86f9c5-2165-44f3-8fc3-96018b609ea5", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "c00563ae-812b-4e62-8330-7c4d0f47088a", + "model-version" : "1.0", + "model-name" : "vf-module" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vig-server-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vig-server-1.0.json new file mode 100644 index 0000000..6fd8d24 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vig-server-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "bed7c3b7-35d0-4cd9-abde-41b20e68b28e", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "8e8c22f1-fbdf-48ea-844c-8bdeb44e7b16", + "model-version" : "1.0", + "model-name" : "vig-server" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/virtual-data-center-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/virtual-data-center-1.0.json new file mode 100644 index 0000000..a36361e --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/virtual-data-center-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "5150abcf-0c5f-4593-9afe-a19c48fc4824", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "6dd43ced-d789-47af-a759-d3abc14e3ac1", + "model-version" : "1.0", + "model-name" : "virtual-data-center" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vlan-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vlan-1.0.json new file mode 100644 index 0000000..64608f8 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vlan-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "d2b1eaf1-ae59-4116-9ee4-aa0179faa4f8", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "257d88a5-a269-4c35-944f-aca04fbdb791", + "model-version" : "1.0", + "model-name" : "vlan" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnf-image-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnf-image-1.0.json new file mode 100644 index 0000000..1756e38 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnf-image-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "f9a628ff-7aa0-40e2-a93d-02d91c950982", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "c4d3e747-ba4a-4b17-9896-94c6f18c19d3", + "model-version" : "1.0", + "model-name" : "vnf-image" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnfc-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnfc-1.0.json new file mode 100644 index 0000000..8c663a7 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vnfc-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "96129eb9-f0de-4e05-8af2-73146473f766", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "5761e0a7-c6df-4d8a-9ebd-b8f445054dec", + "model-version" : "1.0", + "model-name" : "vnfc" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-1.0.json new file mode 100644 index 0000000..dd5d239 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "ddd739b4-2b25-46c4-affc-41a32af5cc42", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "0fbe2e8f-4d91-4415-a772-88387049b38d", + "model-version" : "1.0", + "model-name" : "volume" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-group-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-group-1.0.json new file mode 100644 index 0000000..4ccde3a --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/volume-group-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "fcec1b02-b2d0-4834-aef8-d71be04717dd", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "99d44c90-1f61-4418-b9a6-56586bf38c79", + "model-version" : "1.0", + "model-name" : "volume-group" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpe-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpe-1.0.json new file mode 100644 index 0000000..ed5017e --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpe-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "053ec3a7-5b72-492d-b54d-123805a9b967", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "203817d3-829c-42d4-942d-2a935478e993", + "model-version" : "1.0", + "model-name" : "vpe" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpls-pe-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpls-pe-1.0.json new file mode 100644 index 0000000..0d072bc --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpls-pe-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "457ba89b-334c-4fbd-acc4-160ac0e0cdc0", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "b1566228-6785-4ce1-aea2-053736f80341", + "model-version" : "1.0", + "model-name" : "vpls-pe" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpn-binding-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpn-binding-1.0.json new file mode 100644 index 0000000..e0439b6 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vpn-binding-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "9e23b675-db2b-488b-b459-57aa9857baa0", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "21a146e5-9901-448c-9197-723076770119", + "model-version" : "1.0", + "model-name" : "vpn-binding" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vserver-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vserver-1.0.json new file mode 100644 index 0000000..a069209 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/vserver-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "ff69d4e0-a8e8-4108-bdb0-dd63217e63c7", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "8ecb2c5d-7176-4317-a255-26274edfdd53", + "model-version" : "1.0", + "model-name" : "vserver" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/zone-1.0.json b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/zone-1.0.json new file mode 100644 index 0000000..8427ded --- /dev/null +++ b/aai-traversal/src/main/resources/etc/scriptdata/widget-model-json/zone-1.0.json @@ -0,0 +1,11 @@ +{ + "model-invariant-id" : "16f7cb93-e807-4065-816b-9cdf391d4992", + "model-type" : "widget", + "model-vers" : { + "model-ver" : [ { + "model-version-id" : "f7f21a66-4714-431c-af17-52d64e21de95", + "model-name" : "zone", + "model-version" : "1.0" + } ] + } +} diff --git a/aai-traversal/src/main/resources/etc/sysprops/sys-props.properties b/aai-traversal/src/main/resources/etc/sysprops/sys-props.properties new file mode 100644 index 0000000..44d58d5 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/sysprops/sys-props.properties @@ -0,0 +1,140 @@ +#This file is used for defining AJSC system properties for different configuration schemes and is necessary for the AJSC to run properly. +#The sys-props.properties file is used for running locally. The template.sys-props.properties file will be used when deployed +#to a SOA/CSI Cloud node. + +#AJSC System Properties. The following properties are required for ALL AJSC services. If you are adding System Properties for your +#particular service, please add them AFTER all AJSC related System Properties. + +#For Cadi Authorization, use value="authentication-scheme-1 +CadiAuthN=authentication-scheme-1 + +#For Basic Authorization, use value="authentication-scheme-1 +authN=authentication-scheme-2 + +#Persistence used for AJSC meta-data storage. For most environments, "file" should be used. +ajscPersistence=file + +# If using hawtio for local development, these properties will allow for faster server startup and usage for local development +hawtio.authenticationEnabled=false +hawtio.config.pullOnStartup=false + +#Removes the extraneous restlet console output +org.restlet.engine.loggerFacadeClass=org.restlet.ext.slf4j.Slf4jLoggerFacade + +#server.host property to be enabled for local DME2 related testing +#server.host=<Your network IP address> + +#Enable/disable SSL (values=true/false). This property also determines which protocol to use (https if true, http otherwise), to register services into GRM through DME2. +enableSSL=false + +#Enable/disable csi logging (values=true/false). This can be disabled during local development +csiEnable=false + +#Enable/disable EJB Container +ENABLE_EJB=false + +#Enable/disable OSGI +isOSGIEnable=false + +#Configure JMS Queue (WMQ/TIBCO) +JMS_BROKER=WMQ + +#JMS properties needed for CSI Logging +JMS_TIBCO_PROVIDER_URL=ONAPserverTBD +JMS_LOGGER_USER_NAME=spm2 +JMS_LOGGER_PASSWORD=its4test +JMS_LOGGER_AUDIT_QUEUE_BINDING=pub.m2e.audit.logger.queue +JMS_LOGGER_PERF_QUEUE_BINDING=log.csi.performance02 + +#WMQ connectivity +JMS_WMQ_PROVIDER_URL=aftdsc://AFTUAT/34.07/-84.28 +JMS_WMQ_CONNECTION_FACTORY_NAME=aftdsc://AFTUAT/?service=CSILOG,version=1.0,bindingType=fusionBus,envContext=Q,Q25A=YES +JMS_WMQ_INITIAL_CONNECTION_FACTORY_NAME=com.att.aft.jms.FusionCtxFactory +JMS_WMQ_AUDIT_DESTINATION_NAME=queue:///CSILOGQL.M2E.DASHBOARD01.NOT.Q25A +JMS_WMQ_PERF_DESTINATION_NAME=queue:///CSILOGQL.M2E.PERFORMANCE01.NOT.Q25A + + +#CSI related variables for CSM framework +csm.hostname=d1a-m2e-q112m2e1.edc.cingular.net + +#Enable/disable endpoint level logging (values=true/false). This can be disabled during local development +endpointLogging=false + +#SOA_CLOUD_ENV is used to register your service with dme2 and can be turned off for local development (values=true/false). +SOA_CLOUD_ENV=false + +#CONTINUE_ON_LISTENER_EXCEPTION will exit the application if there is a DME2 exception at the time of registration. +CONTINUE_ON_LISTENER_EXCEPTION=false + +#Jetty Container ThreadCount Configuration Variables +AJSC_JETTY_ThreadCount_MIN=10 +AJSC_JETTY_ThreadCount_MAX=500 +AJSC_JETTY_IDLETIME_MAX=60000 +AJSC_JETTY_BLOCKING_QUEUE_SIZE=100 + +#Camel Context level default threadPool Profile configuration +CAMEL_POOL_SIZE=10 +CAMEL_MAX_POOL_SIZE=20 +CAMEL_KEEP_ALIVE_TIME=60 +CAMEL_MAX_QUEUE_SIZE=1000 + +#File Monitor configurations +ssf_filemonitor_polling_interval=5 +ssf_filemonitor_threadpool_size=10 + +#GRM/DME2 System Properties +AFT_DME2_CONN_IDLE_TIMEOUTMS=5000 +AJSC_ENV=SOACLOUD + +SOACLOUD_NAMESPACE=com.att.ajsc +SOACLOUD_ENV_CONTEXT=DEV +SOACLOUD_PROTOCOL=http +SOACLOUD_ROUTE_OFFER=DEFAULT + +sslport=8446 +server.port=8083 + +AFT_LATITUDE=23.4 +AFT_LONGITUDE=33.6 +AFT_ENVIRONMENT=AFTUAT + +#Restlet Component Default Properties +RESTLET_COMPONENT_CONTROLLER_DAEMON=true +RESTLET_COMPONENT_CONTROLLER_SLEEP_TIME_MS=100 +RESTLET_COMPONENT_INBOUND_BUFFER_SIZE=8192 +RESTLET_COMPONENT_MIN_THREADS=1 +RESTLET_COMPONENT_MAX_THREADS=10 +RESTLET_COMPONENT_LOW_THREADS=8 +RESTLET_COMPONENT_MAX_QUEUED=0 +RESTLET_COMPONENT_MAX_CONNECTIONS_PER_HOST=-1 +RESTLET_COMPONENT_MAX_TOTAL_CONNECTIONS=-1 +RESTLET_COMPONENT_OUTBOUND_BUFFER_SIZE=8192 +RESTLET_COMPONENT_PERSISTING_CONNECTIONS=true +RESTLET_COMPONENT_PIPELINING_CONNECTIONS=false +RESTLET_COMPONENT_THREAD_MAX_IDLE_TIME_MS=60000 +RESTLET_COMPONENT_USE_FORWARDED_HEADER=false +RESTLET_COMPONENT_REUSE_ADDRESS=true + +#Externalized jar and properties file location. In CSI environments, there are a few libs that have been externalized to aid +#in CSTEM maintenance of the versions of these libs. The most important to the AJSC is the DME2 lib. Not only is this lib necessary +#for proper registration of your AJSC service on a node, but it is also necessary for running locally as well. Another framework +#used in CSI envs is the CSM framework. These 2 framework libs are shown as "provided" dependencies within the pom.xml. These +#dependencies will be copied into the target/commonLibs folder with the normal "mvn clean package" goal of the AJSC. They will +#then be added to the classpath via AJSC_EXTERNAL_LIB_FOLDERS system property. Any files (mainly property files) that need +#to be on the classpath should be added to the AJSC_EXTERNAL_PROPERTIES_FOLDERS system property. The default scenario when +#testing your AJSC service locally will utilize the target/commonLibs directory for DME2 and CSM related artifacts and 2 +#default csm properties files will be used for local testing with anything CSM knorelated. +#NOTE: we are using maven-replacer-plugin to replace "(doubleUnderscore)basedir(doubleUnderscore)" with ${basedir} within the +#target directory for running locally. Multiple folder locations can be separated by the pipe ("|") character. +#Please, NOTE: for running locally, we are setting this system property in the antBuild/build.xml "runLocal" target and in the +#"runAjsc" profile within the pom.xml. This is to most effectively use maven variables (${basedir}, most specifically. Therefore, +#when running locally, the following 2 properties should be set within the profile(s) themselves. +#Example: target/commonLibs|target/otherLibs +#AJSC_EXTERNAL_LIB_FOLDERS=__basedir__/target/commonLibs +#AJSC_EXTERNAL_PROPERTIES_FOLDERS=__basedir__/ajsc-shared-config/etc +#End of AJSC System Properties + +#Service System Properties. Please, place any Service related System Properties below. +KEY_STORE_PASSWORD=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 +KEY_MANAGER_PASSWORD=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 +AAI_CORE_VERSION=1.2.0-SNAPSHOT diff --git a/aai-traversal/src/main/resources/etc/sysprops/template.sys-props.properties b/aai-traversal/src/main/resources/etc/sysprops/template.sys-props.properties new file mode 100644 index 0000000..c9060f9 --- /dev/null +++ b/aai-traversal/src/main/resources/etc/sysprops/template.sys-props.properties @@ -0,0 +1,115 @@ +#This file is used for defining AJSC system properties for different configuration schemes and is necessary for the AJSC to run properly. +#The sys-props.properties file is used for running locally. + +#For Cadi Authorization, use value="authentication-scheme-1" +CadiAuthN=__AJSC_CADI_AUTHN__ + +#For Basic Authorization, use value="authentication-scheme-1" +authN=__AJSC_AUTH_SCHEME__ + +#Persistence used for AJSC meta-data storage. For most environments, "file" should be used. +ajscPersistence=__AJSC_PERSISTENCE__ + +#Configure externalized logback location +logback.configurationFile=__LOGBACK_CONFIG_FILE__ + +# If using hawtio for local development, these properties will allow for faster server startup and usage for local development. +# You may wish to deploy hawtio.war to dev/test environments to help debugging as well, but should not be used in PROD env. +hawtio.authenticationEnabled=__HAWTIO_AUTHENTICATION_ENABLED__ +hawtio.config.pullOnStartup=__HAWTIO_CONFIG_PULLONSTARTUP__ + +#Removes the extraneous restlet console output +org.restlet.engine.loggerFacadeClass=org.restlet.ext.slf4j.Slf4jLoggerFacade + +#Enable/disable SSL (values=true/false). +enableSSL=__AJSC_ENABLE_SSL__ + +#Enable/disable csi logging (values=true/false). +csiEnable=__CSI_ENABLE__ + +#Enable/disable EJB Container +ENABLE_EJB=__ENABLE_EJB__ + +#Enable/disable OSGI +isOSGIEnable=__OSGI_ENABLE__ + +#Configure JMS Queue (WMQ/TIBCO) +JMS_BROKER=WMQ + +#JMS properties needed for CSI Logging +JMS_TIBCO_PROVIDER_URL=ONAPserverTBD +JMS_LOGGER_USER_NAME=spm2 +JMS_LOGGER_PASSWORD= +JMS_LOGGER_AUDIT_QUEUE_BINDING=pub.m2e.audit.logger.queue +JMS_LOGGER_PERF_QUEUE_BINDING=log.csi.performance02 + +#WMQ connectivity +JMS_WMQ_PROVIDER_URL=__JMS_WMQ_PROVIDER_URL__ +JMS_WMQ_CONNECTION_FACTORY_NAME=__JMS_WMQ_CONNECTION_FACTORY_NAME__ +JMS_WMQ_INITIAL_CONNECTION_FACTORY_NAME=__JMS_WMQ_INITIAL_CONNECTION_FACTORY_NAME__ +JMS_WMQ_AUDIT_DESTINATION_NAME=__JMS_WMQ_AUDIT_DESTINATION_NAME__ +JMS_WMQ_PERF_DESTINATION_NAME=__JMS_WMQ_PERF_DESTINATION_NAME__ + +#CSI related variables for CSM framework +csm.hostname=d1a-m2e-q112m2e1.edc.cingular.net + +#Enable/disable endpoint level logging (values=true/false). +endpointLogging=__END_POINT_LEVEL_LOGGING__ + +#SOA_CLOUD_ENV is used to register your service with dme2 (values=true/false). +SOA_CLOUD_ENV=__SOA_CLOUD_ENV__ + +#Jetty Container ThreadCount Configuration Variables +AJSC_JETTY_ThreadCount_MAX=__AJSC_JETTY_ThreadCount_MAX__ +AJSC_JETTY_ThreadCount_MIN=__AJSC_JETTY_ThreadCount_MIN__ +AJSC_JETTY_IDLETIME_MAX=__AJSC_JETTY_IDLETIME_MAX__ +AJSC_SERVICE_NAMESPACE=ActiveAndAvailableInventory-Traversal +AJSC_SERVICE_VERSION=__AJSC_SERVICE_VERSION__ +AJSC_JETTY_BLOCKING_QUEUE_SIZE=100 + +#Camel Context level default threadPool Profile configuration +CAMEL_POOL_SIZE=__CAMEL_POOL_SIZE__ +CAMEL_MAX_POOL_SIZE=__CAMEL_MAX_POOL_SIZE__ +CAMEL_KEEP_ALIVE_TIME=__CAMEL_KEEP_ALIVE_TIME__ +CAMEL_MAX_QUEUE_SIZE=__CAMEL_MAX_QUEUE_SIZE__ + +#File Monitor configurations +ssf_filemonitor_polling_interval=__AJSC_SSF_FILE_MONITOR_POLLING_INTERVAL__ +ssf_filemonitor_threadpool_size=__AJSC_SSF_FILE_MONITOR_THREAD_POOL_SIZE__ + +#GRM/DME2 System Properties below +AFT_DME2_CONN_IDLE_TIMEOUTMS=__AFT_DME2_CONN_IDLE_TIMEOUTMS__ +AJSC_ENV=__AJSC_ENV__ +SOACLOUD_NAMESPACE=__SOA_CLOUD_NAMESPACE__ +SOACLOUD_ENV_CONTEXT=__SCLD_ENV__ +SOACLOUD_PROTOCOL=__SOACLOUD_PROTOCOL__ +SOACLOUD_ROUTE_OFFER=__AAIENV__ +sslport=8446 +server.port=8083 +AFT_LATITUDE=__LATITUDE__ +AFT_LONGITUDE=__LONGITUDE__ +AFT_ENVIRONMENT=__AFT_ENVIRONMENT__ + +#Restlet Component Properties +RESTLET_COMPONENT_CONTROLLER_DAEMON=__RESTLET_COMPONENT_CONTROLLER_DAEMON__ +RESTLET_COMPONENT_CONTROLLER_SLEEP_TIME_MS=__RESTLET_COMPONENT_CONTROLLER_SLEEP_TIME_MS__ +RESTLET_COMPONENT_INBOUND_BUFFER_SIZE=__RESTLET_COMPONENT_INBOUND_BUFFER_SIZE__ +RESTLET_COMPONENT_MIN_THREADS=__RESTLET_COMPONENT_MIN_THREADS__ +RESTLET_COMPONENT_MAX_THREADS=__RESTLET_COMPONENT_MAX_THREADS__ +RESTLET_COMPONENT_LOW_THREADS=__RESTLET_COMPONENT_LOW_THREADS__ +RESTLET_COMPONENT_MAX_QUEUED=__RESTLET_COMPONENT_MAX_QUEUED__ +RESTLET_COMPONENT_MAX_CONNECTIONS_PER_HOST=__RESTLET_COMPONENT_MAX_CONNECTIONS_PER_HOST__ +RESTLET_COMPONENT_MAX_TOTAL_CONNECTIONS=__RESTLET_COMPONENT_MAX_TOTAL_CONNECTIONS__ +RESTLET_COMPONENT_OUTBOUND_BUFFER_SIZE=__RESTLET_COMPONENT_OUTBOUND_BUFFER_SIZE__ +RESTLET_COMPONENT_PERSISTING_CONNECTIONS=__RESTLET_COMPONENT_PERSISTING_CONNECTIONS__ +RESTLET_COMPONENT_PIPELINING_CONNECTIONS=__RESTLET_COMPONENT_PIPELINING_CONNECTIONS__ +RESTLET_COMPONENT_THREAD_MAX_IDLE_TIME_MS=__RESTLET_COMPONENT_THREAD_MAX_IDLE_TIME_MS__ +RESTLET_COMPONENT_USE_FORWARDED_HEADER=__RESTLET_COMPONENT_USE_FORWARDED_HEADER__ +RESTLET_COMPONENT_REUSE_ADDRESS=__RESTLET_COMPONENT_REUSE_ADDRESS__ + +AJSC_EXTERNAL_LIB_FOLDERS=__CSM_LIB__|__DME2_LIB__|__AJSC_EXTERNAL_LIB_FOLDERS__ +AJSC_EXTERNAL_PROPERTIES_FOLDERS=__AJSC_SHARED_CONFIG__|__AJSC_EXTERNAL_PROPERTIES_FOLDERS__ + +KEY_STORE_PASSWORD=__KEY_STORE_PASSWORD__ +KEY_MANAGER_PASSWORD=__KEY_MANAGER_PASSWORD__ +AAI_CORE_VERSION=1.2.0-SNAPSHOT diff --git a/aai-traversal/src/main/resources/localhost-access-logback.xml b/aai-traversal/src/main/resources/localhost-access-logback.xml new file mode 100644 index 0000000..a318796 --- /dev/null +++ b/aai-traversal/src/main/resources/localhost-access-logback.xml @@ -0,0 +1,62 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + 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========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration> + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <appender name="ACCESS" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder"> + <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern> + </encoder> + </appender> + <appender-ref ref="ACCESS" /> +</configuration> + +<!-- +%a - Remote IP address +%A - Local IP address +%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent +%B - Bytes sent, excluding HTTP headers +%h - Remote host name +%H - Request protocol +%l - Remote logical username from identd (always returns '-') +%m - Request method +%p - Local port +%q - Query string (prepended with a '?' if it exists, otherwise an empty string +%r - First line of the request +%s - HTTP status code of the response +%S - User session ID +%t - Date and time, in Common Log Format format +%u - Remote user that was authenticated +%U - Requested URL path +%v - Local server name +%I - current request thread name (can compare later with stacktraces) + +%z - Custom pattern that parses the cert for the subject +%y - Custom pattern determines rest or dme2 + -->
\ No newline at end of file diff --git a/aai-traversal/src/main/resources/logback.xml b/aai-traversal/src/main/resources/logback.xml new file mode 100644 index 0000000..4bdc015 --- /dev/null +++ b/aai-traversal/src/main/resources/logback.xml @@ -0,0 +1,391 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + 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========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<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-traversal"/> + + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <jmxConfigurator /> + <property name="logDirectory" value="${AJSC_HOME}/logs" /> + <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%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}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%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}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%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|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> --> + <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%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}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%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"/> + + <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"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="DEBUG" /> + </appender> + + <appender name="ERROR" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <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> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfErrorLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfAuditLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfTransLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <logger name="org.onap.aai" level="DEBUG" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + <appender-ref ref="asyncSANE" /> + </logger> + + <!-- 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="com.blog.spring.jms" level="WARN" /> + <logger name="com.jayway.jsonpath" level="WARN" /> + + <!-- AJSC Services (bootstrap services) --> + <logger name="ajsc" level="WARN" /> + <logger name="ajsc.RouteMgmtService" level="WARN" /> + <logger name="ajsc.ComputeService" level="WARN" /> + <logger name="ajsc.VandelayService" level="WARN" /> + <logger name="ajsc.FilePersistenceService" level="WARN" /> + <logger name="ajsc.UserDefinedJarService" level="WARN" /> + <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> + <logger name="ajsc.LoggingConfigurationService" level="WARN" /> + + <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet + logging) --> + <logger name="org.codehaus.groovy" level="WARN" /> + <logger name="com.att.scamper" level="WARN" /> + <logger name="ajsc.utils" level="WARN" /> + <logger name="ajsc.utils.DME2Helper" level="WARN" /> + <logger name="ajsc.filters" level="WARN" /> + <logger name="ajsc.beans.interceptors" level="WARN" /> + <logger name="ajsc.restlet" level="WARN" /> + <logger name="ajsc.servlet" level="WARN" /> + <logger name="com.att.ajsc" level="WARN" /> + <logger name="com.att.ajsc.csi.logging" level="WARN" /> + <logger name="com.att.ajsc.filemonitor" level="WARN" /> + <logger name="com.netflix.loadbalancer" level="WARN" /> + + <logger name="org.apache.zookeeper" level="WARN" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + May aid in troubleshooting) --> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="WARN" /> + <logger name="org.apache.camel.component.restlet" level="WARN" /> + + <logger name="org.hibernate.validator" level="WARN" /> + <logger name="org.hibernate" level="WARN" /> + <logger name="org.hibernate.ejb" level="OFF" /> + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <logger name="org.eclipse.jetty" level="WARN" /> + + <!-- logback jms appenders & loggers definition starts here --> + <appender name="auditLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="perfLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <logger name="AuditRecord" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="AuditRecord_DirectCall" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="PerfTrackerRecord" level="INFO" additivity="false"> + <appender-ref ref="perfLogs" /> + </logger> + <!-- logback jms appenders & loggers definition ends here --> + + <logger name="org.onap.aai.interceptors.post" level="DEBUG" + additivity="false"> + <appender-ref ref="asynctranslog" /> + </logger> + + <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false"> + <appender-ref ref="dmaapAAIEventConsumer" /> + <appender-ref ref="dmaapAAIEventConsumerDebug" /> + <appender-ref ref="dmaapAAIEventConsumerMetric" /> + </logger> + + <logger name="org.apache" level="WARN" /> + <logger name="org.zookeeper" level="WARN" /> + <logger name="com.thinkaurelius" level="WARN" /> + <logger name="com.att.aft.dme2" level="WARN" /> + + <!-- ============================================================================ --> + <!-- General EELF logger --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="WARN" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + </logger> + + <root level="DEBUG"> + <appender-ref ref="external" /> + </root> +</configuration> diff --git a/aai-traversal/src/main/config/realm.properties b/aai-traversal/src/main/resources/realm.properties index fb692cc..fb692cc 100644 --- a/aai-traversal/src/main/config/realm.properties +++ b/aai-traversal/src/main/resources/realm.properties diff --git a/aai-traversal/src/main/runtime/context/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.context b/aai-traversal/src/main/runtime/context/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.context deleted file mode 100644 index 8514196..0000000 --- a/aai-traversal/src/main/runtime/context/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.context +++ /dev/null @@ -1 +0,0 @@ -{"context":{"contextClass":"ajsc.Context","contextId":"__module_ajsc_namespace_name__:__module_ajsc_namespace_version__","contextName":"__module_ajsc_namespace_name__","contextVersion":"__module_ajsc_namespace_version__","description":"__module_ajsc_namespace_name__ Context"}}
\ No newline at end of file diff --git a/aai-traversal/src/main/runtime/context/default#0.context b/aai-traversal/src/main/runtime/context/default#0.context deleted file mode 100644 index d1b5ab4..0000000 --- a/aai-traversal/src/main/runtime/context/default#0.context +++ /dev/null @@ -1 +0,0 @@ -{"context":{"contextClass":"ajsc.Context","contextId":"default:0","contextName":"default","contextVersion":"0","description":"Default Context"}}
\ No newline at end of file diff --git a/aai-traversal/src/main/runtime/deploymentPackage/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.json b/aai-traversal/src/main/runtime/deploymentPackage/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.json deleted file mode 100644 index d0954cf..0000000 --- a/aai-traversal/src/main/runtime/deploymentPackage/__module.ajsc.namespace.name__#__module.ajsc.namespace.version__.json +++ /dev/null @@ -1 +0,0 @@ -{"deploymentPackage":{"Class":"ajsc.DeploymentPackage","Id":"__module.ajsc.namespace.name__:__module_ajsc_namespace_version__","namespace":"__module_ajsc_namespace_name__","namespaceVersion":"__module_ajsc_namespace_version__","description":"__module_ajsc_namespace_name__ __module_ajsc_namespace_version__ - default description","userId":"ajsc"}}
\ No newline at end of file diff --git a/aai-traversal/src/main/runtime/shiroRole/ajscadmin.json b/aai-traversal/src/main/runtime/shiroRole/ajscadmin.json deleted file mode 100644 index f5e981e..0000000 --- a/aai-traversal/src/main/runtime/shiroRole/ajscadmin.json +++ /dev/null @@ -1 +0,0 @@ -{"shiroRoleClass":"ajsc.auth.ShiroRole","shiroRoleId":"ajscadmin","name":"ajscadmin","permissions":"[ajscadmin:*, ajsc:*]"}
\ No newline at end of file diff --git a/aai-traversal/src/main/runtime/shiroRole/contextadmin#__module.ajsc.namespace.name__.json b/aai-traversal/src/main/runtime/shiroRole/contextadmin#__module.ajsc.namespace.name__.json deleted file mode 100644 index 2dae9f5..0000000 --- a/aai-traversal/src/main/runtime/shiroRole/contextadmin#__module.ajsc.namespace.name__.json +++ /dev/null @@ -1 +0,0 @@ -{"shiroRoleClass":"ajsc.auth.ShiroRole","shiroRoleId":"contextadmin:__module_ajsc_namespace_name__","name":"contextadmin:__module_ajsc_namespace_name__","permissions":"[]"}
\ No newline at end of file diff --git a/aai-traversal/src/main/runtime/shiroRole/contextadmin#default.json b/aai-traversal/src/main/runtime/shiroRole/contextadmin#default.json deleted file mode 100644 index 5de814e..0000000 --- a/aai-traversal/src/main/runtime/shiroRole/contextadmin#default.json +++ /dev/null @@ -1 +0,0 @@ -{"shiroRoleClass":"ajsc.auth.ShiroRole","shiroRoleId":"contextadmin:default","name":"contextadmin:default","permissions":"[]"}
\ No newline at end of file diff --git a/aai-traversal/src/main/runtime/shiroUser/ajsc.json b/aai-traversal/src/main/runtime/shiroUser/ajsc.json deleted file mode 100644 index f4c7855..0000000 --- a/aai-traversal/src/main/runtime/shiroUser/ajsc.json +++ /dev/null @@ -1 +0,0 @@ -{"shiroUserClass":"ajsc.auth.ShiroUser","shiroUserId":"ajsc","passwordHash":"9471697417008c880720ba54c6038791ad7e98f3b88136fe34f4d31a462dd27a","permissions":"[*:*]","username":"ajsc"}
\ No newline at end of file diff --git a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#ajscadmin.json b/aai-traversal/src/main/runtime/shiroUserRole/ajsc#ajscadmin.json deleted file mode 100644 index cb8d483..0000000 --- a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#ajscadmin.json +++ /dev/null @@ -1 +0,0 @@ -{"shiroUserRoleClass":"ajsc.auth.ShiroUserRole","shiroUserRoleId":"ajsc:ajscadmin","roleId":"ajscadmin","userId":"ajsc"}
\ No newline at end of file diff --git a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#__module.ajsc.namespace.name__.json b/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#__module.ajsc.namespace.name__.json deleted file mode 100644 index 95d2361..0000000 --- a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#__module.ajsc.namespace.name__.json +++ /dev/null @@ -1 +0,0 @@ -{"shiroUserRoleClass":"ajsc.auth.ShiroUserRole","shiroUserRoleId":"ajsc:contextadmin:__module_ajsc_namespace_name__","roleId":"contextadmin:__module_ajsc_namespace_name__","userId":"ajsc"}
\ No newline at end of file diff --git a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#default.json b/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#default.json deleted file mode 100644 index 2bd5063..0000000 --- a/aai-traversal/src/main/runtime/shiroUserRole/ajsc#contextadmin#default.json +++ /dev/null @@ -1 +0,0 @@ -{"shiroUserRoleClass":"ajsc.auth.ShiroUserRole","shiroUserRoleId":"ajsc:contextadmin:default","roleId":"contextadmin:default","userId":"ajsc"}
\ No newline at end of file diff --git a/aai-traversal/src/main/scripts/common_functions.sh b/aai-traversal/src/main/scripts/common_functions.sh new file mode 100644 index 0000000..8bd881a --- /dev/null +++ b/aai-traversal/src/main/scripts/common_functions.sh @@ -0,0 +1,56 @@ +#!/bin/ksh + +# Common functions that can be used throughout multiple scripts +# In order to call these functions, this file needs to be sourced + +# Checks if the user that is currently running is aaiadmin +check_user(){ + + userid=$( id | cut -f2 -d"(" | cut -f1 -d")" ) + + if [ "${userid}" != "aaiadmin" ]; then + echo "You must be aaiadmin to run $0. The id used $userid." + exit 1 + fi +} + +# Sources the profile and sets the project home +source_profile(){ + . /etc/profile.d/aai.sh + PROJECT_HOME=/opt/app/aai-traversal +} + +# Runs the spring boot jar based on which main class +# to execute and which logback file to use for that class +execute_spring_jar(){ + + className=$1; + logbackFile=$2; + + shift 2; + + EXECUTABLE_JAR=$(ls ${PROJECT_HOME}/lib/aai-traversal-*SNAPSHOT.jar); + + JAVA_OPTS="${JAVA_PRE_OPTS}"; + JAVA_OPTS="-DAJSC_HOME=$PROJECT_HOME"; + JAVA_OPTS="$JAVA_OPTS -DBUNDLECONFIG_DIR=resources"; + JAVA_OPTS="$JAVA_OPTS -Daai.home=$PROJECT_HOME "; + JAVA_OPTS="$JAVA_OPTS -Dhttps.protocols=TLSv1.1,TLSv1.2"; + JAVA_OPTS="$JAVA_OPTS -Dloader.main=${className}"; + JAVA_OPTS="$JAVA_OPTS -Dlogback.configurationFile=${logbackFile}"; + JAVA_OPTS="${JAVA_OPTS} ${JAVA_POST_OPTS}"; + + ${JAVA_HOME}/bin/java ${JVM_OPTS} ${JAVA_OPTS} -jar ${EXECUTABLE_JAR} "$@" +} + +# Prints the start date and the script that the user called +start_date(){ + echo + echo `date` " Starting $0" +} + +# Prints the end date and the script that the user called +end_date(){ + echo + echo `date` " Done $0" +} diff --git a/aai-traversal/src/main/scripts/deleteNamedQuery.sh b/aai-traversal/src/main/scripts/deleteNamedQuery.sh index 2d19a9c..43aaae7 100644 --- a/aai-traversal/src/main/scripts/deleteNamedQuery.sh +++ b/aai-traversal/src/main/scripts/deleteNamedQuery.sh @@ -22,15 +22,11 @@ # # -# This script deletes the named query in bundleconfig/etc/scriptdata/named-query-json directory +# This script deletes the named query in resources/etc/scriptdata/named-query-json directory # PROGNAME=$(basename $0) -<<<<<<< HEAD -OUTFILE=$PROJECT_HOME/logs/misc/${PROGNAME}.log.$(date +\%Y-\%m-\%d) -======= OUTFILE=/opt/app/aai-traversal/logs/misc/${PROGNAME}.log.$(date +\%Y-\%m-\%d) ->>>>>>> codecloud/release/1802 #OUTFILE=/c/temp/${PROGNAME}.log.$(date +\%Y-\%m-\%d) TS=$(date "+%Y-%m-%d %H:%M:%S") @@ -49,23 +45,15 @@ error_exit () { } j=0 -<<<<<<< HEAD -for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/named-query-json/*.json|sort -f` -======= -for filepath in `ls /opt/app/aai-traversal/bundleconfig/etc/scriptdata/named-query-json/*.json|sort -f` ->>>>>>> codecloud/release/1802 -#for filepath in `ls /c/sources/aai/aaigitnew/bundleconfig-local/etc/scriptdata/named-query-json/*.json|sort -f` +for filepath in `ls /opt/app/aai-traversal/resources/etc/scriptdata/named-query-json/*.json|sort -f` +#for filepath in `ls /c/sources/aai/aaigitnew/resources-local/etc/scriptdata/named-query-json/*.json|sort -f` do j=$(expr "$j" + 1) filename=$(basename $filepath) echo "Begin deleteTool for named-query $filename" | tee -a $OUTFILE vers=`grep named-query-uuid $filepath|cut -d':' -f2|cut -d'"' -f2` resource=service-design-and-creation/named-queries/named-query/$vers -<<<<<<< HEAD -echo "y" | $PROJECT_HOME/scripts/deleteTool.sh $resource >> $OUTFILE 2>&1 || error_exit "$resource $filepath" $j -======= echo "y" | /opt/app/aai-traversal/scripts/deleteTool.sh $resource >> $OUTFILE 2>&1 || error_exit "$resource $filepath" $j ->>>>>>> codecloud/release/1802 echo "End deleteTool for named-query $filename" | tee -a $OUTFILE done diff --git a/aai-traversal/src/main/scripts/deleteTool.sh b/aai-traversal/src/main/scripts/deleteTool.sh index 60c3e1c..8d51437 100644 --- a/aai-traversal/src/main/scripts/deleteTool.sh +++ b/aai-traversal/src/main/scripts/deleteTool.sh @@ -50,7 +50,7 @@ fi . /etc/profile.d/aai.sh PROJECT_HOME=/opt/app/aai-traversal -prop_file=$PROJECT_HOME/bundleconfig/etc/appprops/aaiconfig.properties +prop_file=$PROJECT_HOME/resources/etc/appprops/aaiconfig.properties log_dir=$PROJECT_HOME/logs/misc today=$(date +\%Y-\%m-\%d) @@ -80,7 +80,7 @@ fi if [ $MISSING_PROP = false ]; then if [ $USEBASICAUTH = false ]; then - AUTHSTRING="--cert $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPrivateKey.pem" + AUTHSTRING="--cert $PROJECT_HOME/resources/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/resources/etc/auth/aaiClientPrivateKey.pem" else AUTHSTRING="-u $CURLUSER:$CURLPASSWORD" fi diff --git a/aai-traversal/src/main/scripts/getTool.sh b/aai-traversal/src/main/scripts/getTool.sh index 39d4e87..df0456f 100644 --- a/aai-traversal/src/main/scripts/getTool.sh +++ b/aai-traversal/src/main/scripts/getTool.sh @@ -46,7 +46,7 @@ fi . /etc/profile.d/aai.sh PROJECT_HOME=/opt/app/aai-traversal -prop_file=$PROJECT_HOME/bundleconfig/etc/appprops/aaiconfig.properties +prop_file=$PROJECT_HOME/resources/etc/appprops/aaiconfig.properties log_dir=$PROJECT_HOME/logs/misc today=$(date +\%Y-\%m-\%d) @@ -76,7 +76,7 @@ fi if [ $MISSING_PROP = false ]; then if [ $USEBASICAUTH = false ]; then - AUTHSTRING="--cert $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPrivateKey.pem" + AUTHSTRING="--cert $PROJECT_HOME/resources/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/resources/etc/auth/aaiClientPrivateKey.pem" else AUTHSTRING="-u $CURLUSER:$CURLPASSWORD" fi diff --git a/aai-traversal/src/main/scripts/install/updateQueryData.sh b/aai-traversal/src/main/scripts/install/updateQueryData.sh index 3c7f1bf..a5723d0 100644 --- a/aai-traversal/src/main/scripts/install/updateQueryData.sh +++ b/aai-traversal/src/main/scripts/install/updateQueryData.sh @@ -41,7 +41,7 @@ error_exit () { } j=0 -for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/widget-model-json/*.json|sort -f` +for filepath in `ls $PROJECT_HOME/resources/etc/scriptdata/widget-model-json/*.json|sort -f` do j=$(expr "$j" + 1) filename=$(basename $filepath) @@ -54,7 +54,7 @@ echo "End putTool for widget $filename" | tee -a $OUTFILE done j=0 -for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/named-query-json/*.json|sort -f` +for filepath in `ls $PROJECT_HOME/resources/etc/scriptdata/named-query-json/*.json|sort -f` do j=$(expr "$j" + 1) filename=$(basename $filepath) @@ -67,7 +67,7 @@ echo "End putTool for named-query $filename" | tee -a $OUTFILE done j=0 -for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/resource-model-json/*.json|sort -f` +for filepath in `ls $PROJECT_HOME/resources/etc/scriptdata/resource-model-json/*.json|sort -f` do j=$(expr "$j" + 1) filename=$(basename $filepath) @@ -80,7 +80,7 @@ echo "End putTool for resource model $filename" | tee -a $OUTFILE done j=0 -for filepath in `ls $PROJECT_HOME/bundleconfig/etc/scriptdata/service-model-json/*.json|sort -f` +for filepath in `ls $PROJECT_HOME/resources/etc/scriptdata/service-model-json/*.json|sort -f` do j=$(expr "$j" + 1) filename=$(basename $filepath) diff --git a/aai-traversal/src/main/scripts/putTool.sh b/aai-traversal/src/main/scripts/putTool.sh index be273a2..6630d8f 100644 --- a/aai-traversal/src/main/scripts/putTool.sh +++ b/aai-traversal/src/main/scripts/putTool.sh @@ -22,14 +22,9 @@ # # -<<<<<<< HEAD -# The script is called with a resource, filepath and an optional argument to -# ignore HTTP failure codes which would otherwise indicate a failure. -======= # The script is called with a resource, filepath, an optional argument to # ignore HTTP failure codes which would otherwise indicate a failure, # and an optional argument to display more data. ->>>>>>> codecloud/release/1802 # It invokes a PUT on the resource with the file using curl # Uses aaiconfig.properties for authorization type and url. The HTTP response # code is checked. Responses between 200 and 299 are considered success. @@ -51,8 +46,6 @@ contains() { fi } -<<<<<<< HEAD -======= display_usage() { cat <<EOF Usage: $0 [options] @@ -70,7 +63,6 @@ if [ $# -eq 0 ]; then exit 1 fi ->>>>>>> codecloud/release/1802 # remove leading slash when present RESOURCE=`echo $1 | sed "s,^/,,"` if [ -z $RESOURCE ]; then @@ -98,12 +90,10 @@ fi . /etc/profile.d/aai.sh PROJECT_HOME=/opt/app/aai-traversal -prop_file=$PROJECT_HOME/bundleconfig/etc/appprops/aaiconfig.properties +prop_file=$PROJECT_HOME/resources/etc/appprops/aaiconfig.properties log_dir=$PROJECT_HOME/logs/misc today=$(date +\%Y-\%m-\%d) -<<<<<<< HEAD -======= RETURNRESPONSE=false if [ ${#} -ne 2 ]; then if [ "$3" = "-display" ]; then @@ -116,7 +106,6 @@ if [ ${#} -ne 3 ]; then fi fi ->>>>>>> codecloud/release/1802 MISSING_PROP=false RESTURL=`grep ^aai.server.url= $prop_file |cut -d'=' -f2 |tr -d "\015"` if [ -z $RESTURL ]; then @@ -143,26 +132,19 @@ fi if [ $MISSING_PROP = false ]; then if [ $USEBASICAUTH = false ]; then - AUTHSTRING="--cert $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/bundleconfig/etc/auth/aaiClientPrivateKey.pem" + AUTHSTRING="--cert $PROJECT_HOME/resources/etc/auth/aaiClientPublicCert.pem --key $PROJECT_HOME/resources/etc/auth/aaiClientPrivateKey.pem" else AUTHSTRING="-u $CURLUSER:$CURLPASSWORD" fi -<<<<<<< HEAD - result=`curl --request PUT -sL -w "%{http_code}" -o /dev/null -k $AUTHSTRING -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE` - #echo "result is $result." - RC=0; - if [ $? -eq 0 ]; then -======= - + if [ $RETURNRESPONSE = true ]; then - curl --request PUT -sL -k $AUTHSTRING -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE | python -mjson.tool + curl --request PUT -sL -k $AUTHSTRING -H "Content-Type: application/json" -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE | python -mjson.tool RC=$? else - result=`curl --request PUT -sL -w "%{http_code}" -o /dev/null -k $AUTHSTRING -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE` + result=`curl --request PUT -sL -w "%{http_code}" -o /dev/null -k $AUTHSTRING -H "Content-Type: application/json" -H "X-FromAppId: $XFROMAPPID" -H "X-TransactionId: $XTRANSID" -H "Accept: application/json" -T $JSONFILE $RESTURL$RESOURCE` #echo "result is $result." RC=0; if [ $? -eq 0 ]; then ->>>>>>> codecloud/release/1802 case $result in +([0-9])?) #if [[ "$result" -eq 412 || "$result" -ge 200 && $result -lt 300 ]] @@ -191,18 +173,11 @@ if [ $MISSING_PROP = false ]; then ;; esac -<<<<<<< HEAD - else - echo "FAILED to send request to $RESTURL" - RC=-1 - fi -======= else echo "FAILED to send request to $RESTURL" RC=-1 fi fi ->>>>>>> codecloud/release/1802 else echo "usage: $0 resource file [expected-failure-codes]" RC=-1 diff --git a/aai-traversal/src/main/swm/package/nix/common/deinstall.env b/aai-traversal/src/main/swm/package/nix/common/deinstall.env new file mode 100644 index 0000000..fb0a9f5 --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/common/deinstall.env @@ -0,0 +1,10 @@ + +# This file is used to set the environment which the install_*.sh files +# will use when executing. Only set variables that must be derived at +# installation time here. For variables that should be set by the installer +# in SWM, add VariableDescriptor elements to the descriptor.xml. Place +# logical steps in the install_preproc.sh or install_postproc.sh. + +. `dirname $0`/common.env + +AAI_USER=aaiadmin;export AAI_USER diff --git a/aai-traversal/src/main/swm/package/nix/common/install_postproc.sh b/aai-traversal/src/main/swm/package/nix/common/install_postproc.sh new file mode 100644 index 0000000..ab5f2b7 --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/common/install_postproc.sh @@ -0,0 +1,39 @@ +#!/bin/sh + +### +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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========================================================= +### + +############################################################################## +# - SCLD GRM SERVICE +# - Copyright 2009 AT&T Intellectual Properties +############################################################################## + + +. `dirname $0`/install.env + +cd ${ROOT_DIR}; + +TEMPLATE_YAML_FILE=${ROOT_DIR}/docker-compose.template.yaml +YAML_FILE=${ROOT_DIR}/docker-compose.yaml + +sh ${UTILPATH}/findreplace.sh ${TEMPLATE_YAML_FILE} ${YAML_FILE} || exit 200 +rm ${TEMPLATE_YAML_FILE} + +exit 0 diff --git a/aai-traversal/src/main/swm/package/nix/deinstall/preproc/pre_proc b/aai-traversal/src/main/swm/package/nix/deinstall/preproc/pre_proc new file mode 100644 index 0000000..5f88c41 --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/deinstall/preproc/pre_proc @@ -0,0 +1,4 @@ +#!/bin/sh + +cd ../../common +exec sh -x ./deinstall_preproc.sh diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/docker-compose.template.yaml b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/docker-compose.template.yaml new file mode 100644 index 0000000..74ae555 --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/docker-compose.template.yaml @@ -0,0 +1,51 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# 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========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +# SCLD_ENV is for the environment context for dme2 +# AAI_CHEF_ENV is used for both dme2 properites and +# also used by chef to generate appropriate properties + +version: '2' +services: + aai-traversal: + image: __REGISTRY__/__NAMESPACE__/aai-traversal:__IMAGE_VERSION__ + network_mode: host + environment: + - LOCAL_USER_ID=__LOCAL_USER_ID__ + - LOCAL_GROUP_ID=__LOCAL_GROUP_ID__ + volumes: + - /opt/aai/logroot/AAI-GQ:/opt/aai/logroot/AAI-GQ + - /opt/app/aai-traversal/appconfig/aai-client-cert.p12:/opt/app/aai-traversal/resources/etc/auth/aai-client-cert.p12 + - /opt/app/aai-traversal/appconfig/tomcat_keystore:/opt/app/aai-traversal/resources/etc/auth/tomcat_keystore + - /opt/app/aai-traversal/appconfig/aai_policy.json:/opt/app/aai-traversal/resources/etc/auth/aai_policy.json + - /opt/app/aai-traversal/appconfig/aaiconfig.properties:/opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties + - /opt/app/aai-traversal/appconfig/application.properties:/opt/app/aai-traversal/resources/application.properties + - /opt/app/aai-traversal/appconfig/dme2.properties:/opt/app/aai-traversal/resources/dme2.properties + - /opt/app/aai-traversal/appconfig/localhost-access-logback.xml:/opt/app/aai-traversal/resources/localhost-access-logback.xml + - /opt/app/aai-traversal/appconfig/logback.xml:/opt/app/aai-traversal/resources/logback.xml + - /opt/app/aai-traversal/appconfig/titan-cached.properties:/opt/app/aai-traversal/resources/etc/appprops/titan-cached.properties + - /opt/app/aai-traversal/appconfig/titan-realtime.properties:/opt/app/aai-traversal/resources/etc/appprops/titan-realtime.properties + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/execTool.sh b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/execTool.sh new file mode 100644 index 0000000..ab634c0 --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/execTool.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +export WORKING_DIR="$( cd "$(dirname "$0")" ; pwd -P )/" + +DOCKER_COMPOSE_CMD="docker-compose -f ${WORKING_DIR}/docker-compose.yaml"; + +ARG=$1; + +if [ -z "$ARG" ]; then + echo "Error: You need to at least provide one argument which is the script to execute"; + exit 1; +fi; + +if [ "${ARG}" = "--debug" ]; then + + SCRIPT_NAME=$2; + + if [ -z "$SCRIPT_NAME" ]; then + echo "Error: You need to provide the tool name after specifying the --debug flag"; + exit 1; + fi; + + shift 2; + +else + SCRIPT_NAME=$1; + shift 1; +fi; + +CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} ps -q aai-traversal); + +if [ $? -ne 0 ]; then + echo "Error: seems like the container is not running, please run the commands to start aai-traversal"; + exit 1; +fi; + +if [ ${SCRIPT_NAME} = "putTool.sh" ]; then + + PAYLOAD_FILE=$2; + + if [ ! -z "${PAYLOAD_FILE}" ] && [ -f "${PAYLOAD_FILE}" ]; then + docker cp ${PAYLOAD_FILE} ${CONTAINER_NAME}:/tmp/$(basename ${PAYLOAD_FILE}) + fi; +fi; + +${DOCKER_COMPOSE_CMD} exec --user aaiadmin aai-traversal ls /opt/app/aai-traversal/scripts/${SCRIPT_NAME} && { + + if [ "${ARG}" = "--debug" ]; then + ${DOCKER_COMPOSE_CMD} exec --user aaiadmin aai-traversal bash -x /opt/app/aai-traversal/scripts/${SCRIPT_NAME} "$@" + else + ${DOCKER_COMPOSE_CMD} exec --user aaiadmin aai-traversal /opt/app/aai-traversal/scripts/${SCRIPT_NAME} "$@" + fi; + + exit 0; +} || { + echo "Unable to find the tool in the /opt/app/aai-traversal/scripts"; + exit 1; +} diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/kill_resources.sh b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/kill_resources.sh new file mode 100644 index 0000000..00855da --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/kill_resources.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +. /etc/profile.d/aai.sh +PROJECT_HOME=/opt/app/aai-traversal + +docker-compose -f ${PROJECT_HOME}/docker-compose.yaml stop && \ + docker-compose -f ${PROJECT_HOME}/docker-compose.yaml rm -f diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/start_resources.sh b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/start_resources.sh new file mode 100644 index 0000000..61819d4 --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/start_resources.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +. /etc/profile.d/aai.sh +PROJECT_HOME=/opt/app/aai-traversal + +docker-compose -f ${PROJECT_HOME}/docker-compose.yaml up -d || exit 200 diff --git a/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/stop_resources.sh b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/stop_resources.sh new file mode 100644 index 0000000..009e597 --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/dist_files/opt/app/aai-traversal/stop_resources.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +. /etc/profile.d/aai.sh +PROJECT_HOME=/opt/app/aai-traversal + +docker-compose -f ${PROJECT_HOME}/docker-compose.yaml stop || exit 200 diff --git a/aai-traversal/src/main/swm/package/nix/initinst/postproc/post_proc b/aai-traversal/src/main/swm/package/nix/initinst/postproc/post_proc new file mode 100644 index 0000000..d017750 --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/initinst/postproc/post_proc @@ -0,0 +1,4 @@ +#!/bin/sh + +cd ../../common +exec sh -x ./install_postproc.sh diff --git a/aai-traversal/src/main/swm/package/nix/install/postproc/post_proc b/aai-traversal/src/main/swm/package/nix/install/postproc/post_proc new file mode 100644 index 0000000..d017750 --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/install/postproc/post_proc @@ -0,0 +1,4 @@ +#!/bin/sh + +cd ../../common +exec sh -x ./install_postproc.sh diff --git a/aai-traversal/src/main/swm/package/nix/install/preproc/pre_proc b/aai-traversal/src/main/swm/package/nix/install/preproc/pre_proc new file mode 100644 index 0000000..3f1b26f --- /dev/null +++ b/aai-traversal/src/main/swm/package/nix/install/preproc/pre_proc @@ -0,0 +1,4 @@ +#!/bin/sh + +cd ../../common +exec sh -x ./install_preproc.sh diff --git a/aai-traversal/src/main/xjb/bindings.xjb b/aai-traversal/src/main/xjb/bindings.xjb deleted file mode 100644 index b7629d3..0000000 --- a/aai-traversal/src/main/xjb/bindings.xjb +++ /dev/null @@ -1,21 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> -<jaxb:bindings - version="2.1" - xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" - xmlns:xs="http://www.w3.org/2001/XMLSchema"> - <jaxb:bindings scd="x-schema::a" xmlns:a="http://org.openecomp.aai.inventory/v7"> - <jaxb:schemaBindings> - <jaxb:package name="org.openecomp.aai.domain.yang.v7"/> - </jaxb:schemaBindings> - </jaxb:bindings> - <jaxb:bindings scd="x-schema::a" xmlns:a="http://org.openecomp.aai.inventory/v8"> - <jaxb:schemaBindings> - <jaxb:package name="org.openecomp.aai.domain.yang.v8"/> - </jaxb:schemaBindings> - </jaxb:bindings> - <jaxb:bindings scd="x-schema::a" xmlns:a="http://org.openecomp.aai.inventory/v9"> - <jaxb:schemaBindings> - <jaxb:package name="org.openecomp.aai.domain.yang"/> - </jaxb:schemaBindings> - </jaxb:bindings> -</jaxb:bindings>
\ No newline at end of file diff --git a/aai-traversal/src/test/java/org/onap/aai/AAIGremlinQueryTest.java b/aai-traversal/src/test/java/org/onap/aai/AAIGremlinQueryTest.java new file mode 100644 index 0000000..4210596 --- /dev/null +++ b/aai-traversal/src/test/java/org/onap/aai/AAIGremlinQueryTest.java @@ -0,0 +1,126 @@ +package org.onap.aai; + +import com.jayway.jsonpath.JsonPath; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.aai.config.PropertyPasswordConfiguration; +import org.onap.aai.exceptions.AAIException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.embedded.LocalServerPort; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.http.*; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.web.client.RestTemplate; + +import javax.ws.rs.core.Response; +import java.io.UnsupportedEncodingException; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.Assert.assertNotNull; + +/** + * A sample junit test using spring boot that provides the ability to spin + * up the application from the junit layer and run rest requests against + * SpringBootTest annotation with web environment requires which spring boot + * class to load and the random port starts the application on a random port + * and injects back into the application for the field with annotation LocalServerPort + * <p> + * + * This can be used to potentially replace a lot of the fitnesse tests since + * they will be testing against the same thing except fitnesse uses hbase + */ +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = TraversalApp.class) +@TestPropertySource(locations = "classpath:application-test.properties") +@ContextConfiguration(initializers = PropertyPasswordConfiguration.class) +@Import(TraversalTestConfiguration.class) +public class AAIGremlinQueryTest { + + private HttpTestUtil httpTestUtil; + + private String pserverUri; + + private String hostname; + + @Autowired + RestTemplate restTemplate; + + @LocalServerPort + int randomPort; + + private HttpEntity httpEntity; + + private HttpHeaders headers; + + private String baseUrl; + + @Before + public void setup() throws Exception { + + httpTestUtil = new HttpTestUtil(); + + hostname = UUID.randomUUID().toString(); + + pserverUri ="/aai/v11/cloud-infrastructure/pservers/pserver/" + hostname; + + Map<String, String> pserverMap = new HashMap<>(); + pserverMap.put("hostname", hostname); + String payload = PayloadUtil.getTemplatePayload("pserver.json", pserverMap); + httpTestUtil.doPut(pserverUri, payload); + + headers = new HttpHeaders(); + + headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); + headers.setContentType(MediaType.APPLICATION_JSON); + headers.add("Real-Time", "true"); + headers.add("X-FromAppId", "JUNIT"); + headers.add("X-TransactionId", "JUNIT"); + + baseUrl = "https://localhost:" + randomPort; + } + + @Test + public void testPserverCount() throws Exception { + Map<String, String> gremlinQueryMap = new HashMap<>(); + gremlinQueryMap.put("gremlin-query", "g.V().has('hostname', '" + hostname + "').count()"); + + String payload = PayloadUtil.getTemplatePayload("gremlin-query.json", gremlinQueryMap); + + ResponseEntity responseEntity = null; + + String endpoint = "/aai/v11/query?format=console"; + + httpEntity = new HttpEntity(payload, headers); + responseEntity = restTemplate.exchange(baseUrl + endpoint, HttpMethod.PUT, httpEntity, String.class); + assertThat(responseEntity.getStatusCode(), is(HttpStatus.OK)); + + String result = JsonPath.read(responseEntity.getBody().toString(), "$.results[0].result"); + assertThat(result, is("1")); + } + + @After + public void tearDown() throws UnsupportedEncodingException, AAIException { + + Response response = httpTestUtil.doGet(pserverUri); + + assertNotNull("Expected the response to be returned", response); + assertThat(response.getStatus(), is(200)); + + String body = response.getEntity().toString(); + String resourceVersion = JsonPath.read(body, "$.resource-version"); + + response = httpTestUtil.doDelete(pserverUri, resourceVersion); + assertNotNull("Expected the response to be returned", response); + assertThat(response.getStatus(), is(204)); + } +} diff --git a/aai-traversal/src/test/java/org/onap/aai/TraversalTestConfiguration.java b/aai-traversal/src/test/java/org/onap/aai/TraversalTestConfiguration.java new file mode 100644 index 0000000..e4c6f19 --- /dev/null +++ b/aai-traversal/src/test/java/org/onap/aai/TraversalTestConfiguration.java @@ -0,0 +1,125 @@ +/** + * ============LICENSE_START======================================================= + * org.onap.aai + * ================================================================================ + * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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========================================================= + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. + */ +package org.onap.aai; + +import com.att.eelf.configuration.EELFLogger; +import com.att.eelf.configuration.EELFManager; +import org.apache.http.client.HttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.ssl.SSLContextBuilder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.core.env.Environment; +import org.springframework.http.HttpStatus; +import org.springframework.http.client.ClientHttpResponse; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.util.ResourceUtils; +import org.springframework.web.client.ResponseErrorHandler; +import org.springframework.web.client.RestTemplate; + +import javax.net.ssl.SSLContext; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.security.KeyStore; + +@TestConfiguration +public class TraversalTestConfiguration { + + private static final EELFLogger logger = EELFManager.getInstance().getLogger(TraversalTestConfiguration.class); + + @Autowired + private Environment env; + + /** + * Create a RestTemplate bean, using the RestTemplateBuilder provided + * by the auto-configuration. + */ + @Bean + RestTemplate restTemplate(RestTemplateBuilder builder) throws Exception { + + char[] trustStorePassword = env.getProperty("server.ssl.trust-store-password").toCharArray(); + char[] keyStorePassword = env.getProperty("server.ssl.key-store-password").toCharArray(); + + String keyStore = env.getProperty("server.ssl.key-store"); + String trustStore = env.getProperty("server.ssl.trust-store"); + + SSLContextBuilder sslContextBuilder = SSLContextBuilder.create(); + + if(env.acceptsProfiles("two-way-ssl")){ + sslContextBuilder = sslContextBuilder.loadKeyMaterial(loadPfx(keyStore, keyStorePassword), keyStorePassword); + } + + SSLContext sslContext = sslContextBuilder + .loadTrustMaterial(ResourceUtils.getFile(trustStore), trustStorePassword) + .build(); + + HttpClient client = HttpClients.custom() + .setSSLContext(sslContext) + .setSSLHostnameVerifier((s, sslSession) -> true) + .build(); + + RestTemplate restTemplate = builder + .requestFactory(new HttpComponentsClientHttpRequestFactory(client)) + .build(); + + restTemplate.setErrorHandler(new ResponseErrorHandler() { + @Override + public boolean hasError(ClientHttpResponse clientHttpResponse) throws IOException { + if (clientHttpResponse.getStatusCode() != HttpStatus.OK) { + + logger.debug("Status code: " + clientHttpResponse.getStatusCode()); + + if (clientHttpResponse.getStatusCode() == HttpStatus.FORBIDDEN) { + logger.debug("Call returned a error 403 forbidden resposne "); + return true; + } + + if(clientHttpResponse.getRawStatusCode() % 100 == 5){ + logger.debug("Call returned a error " + clientHttpResponse.getStatusText()); + return true; + } + } + + return false; + } + + @Override + public void handleError(ClientHttpResponse clientHttpResponse) throws IOException { + } + }); + + return restTemplate; + } + + private KeyStore loadPfx(String file, char[] password) throws Exception { + KeyStore keyStore = KeyStore.getInstance("PKCS12"); + File key = ResourceUtils.getFile(file); + try (InputStream in = new FileInputStream(key)) { + keyStore.load(in, password); + } + return keyStore; + } +} diff --git a/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingInvalidDataTest.java b/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingInvalidDataTest.java index bd3705e..64d77a9 100644 --- a/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingInvalidDataTest.java +++ b/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingInvalidDataTest.java @@ -38,7 +38,6 @@ import com.thinkaurelius.titan.graphdb.types.system.EmptyVertex; import com.thinkaurelius.titan.graphdb.types.vertices.EdgeLabelVertex; import com.thinkaurelius.titan.graphdb.types.vertices.PropertyKeyVertex; import org.apache.commons.lang.ObjectUtils; -import org.apache.openjpa.kernel.exps.Exp; import org.apache.tinkerpop.gremlin.structure.Graph; import org.apache.tinkerpop.gremlin.structure.T; import org.apache.tinkerpop.gremlin.structure.Vertex; @@ -81,7 +80,7 @@ public class ModelBasedProcessingInvalidDataTest { @BeforeClass public static void configure() throws Exception { System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); loader = LoaderFactory.createLoaderForVersion(ModelType.MOXY, AAIProperties.LATEST); diff --git a/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingTest.java b/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingTest.java index 406d122..dc8871d 100644 --- a/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingTest.java +++ b/aai-traversal/src/test/java/org/onap/aai/dbgraphgen/ModelBasedProcessingTest.java @@ -74,10 +74,9 @@ public class ModelBasedProcessingTest { @BeforeClass public static void configure() throws Exception { System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); loader = LoaderFactory.createLoaderForVersion(ModelType.MOXY, AAIProperties.LATEST); - } @Before diff --git a/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphNamedQueryTest.java b/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphNamedQueryTest.java index 552dbe4..029565d 100644 --- a/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphNamedQueryTest.java +++ b/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphNamedQueryTest.java @@ -98,7 +98,7 @@ public class SearchGraphNamedQueryTest { } private void addWidgets() { - String widgetPath = "." + AAIConstants.AAI_FILESEP + "bundleconfig-local" + AAIConstants.AAI_FILESEP + "etc" + + String widgetPath = "." + AAIConstants.AAI_FILESEP + "src/main/resources" + AAIConstants.AAI_FILESEP + "etc" + AAIConstants.AAI_FILESEP + "scriptdata"+ AAIConstants.AAI_FILESEP + "widget-model-json"; File dir = new File(widgetPath); @@ -120,7 +120,7 @@ public class SearchGraphNamedQueryTest { } private void addNamedQueries() { - String namedQueryPath = "." + AAIConstants.AAI_FILESEP + "bundleconfig-local" + AAIConstants.AAI_FILESEP + "etc" + + String namedQueryPath = "." + AAIConstants.AAI_FILESEP + "src/main/resources" + AAIConstants.AAI_FILESEP + "etc" + AAIConstants.AAI_FILESEP + "scriptdata"+ AAIConstants.AAI_FILESEP + "named-query-json"; File dir = new File(namedQueryPath); @@ -152,7 +152,7 @@ public class SearchGraphNamedQueryTest { httpTestUtil = new HttpTestUtil(); System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); searchGraph = new SearchGraph(); diff --git a/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphTest.java b/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphTest.java index f624828..ba108a6 100644 --- a/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphTest.java +++ b/aai-traversal/src/test/java/org/onap/aai/dbgraphmap/SearchGraphTest.java @@ -27,7 +27,6 @@ import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSo import org.apache.tinkerpop.gremlin.structure.Graph; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.apache.tinkerpop.gremlin.structure.VertexProperty; -import org.apache.velocity.util.ArrayListWrapper; import org.eclipse.persistence.dynamic.DynamicEntity; import org.junit.Assert; import org.junit.Before; @@ -100,7 +99,7 @@ public class SearchGraphTest { public void setup(){ System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); searchGraph = new SearchGraph(); @@ -376,4 +375,4 @@ public class SearchGraphTest { searchGraph.runNodesQuery(httpHeaders,"model-ver",edgeFilter, filter,dbEngine,loader,urlBuilder); } -}
\ No newline at end of file +} diff --git a/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptorTest.java b/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptorTest.java deleted file mode 100644 index 40de5a9..0000000 --- a/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSInInterceptorTest.java +++ /dev/null @@ -1,204 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.interceptors; - -import org.apache.cxf.message.Exchange; -import org.apache.cxf.message.ExchangeImpl; -import org.apache.cxf.message.Message; -import org.junit.Before; -import org.junit.Test; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.mockito.Mockito.*; - -public class AAILogJAXRSInInterceptorTest { - - private AAILogJAXRSInInterceptor aaiLogJAXRSInInterceptor; - - private Message message; - private Exchange exchange; - private InputStream is; - private Map<String, List<String>> headers; - - - @Before - public void setup(){ - - aaiLogJAXRSInInterceptor = new AAILogJAXRSInInterceptor(); - - message = mock(Message.class); - exchange = spy(new ExchangeImpl()); - - is = getClass().getClassLoader().getResourceAsStream("logback.xml"); - - headers = new HashMap<>(); - headers.put("X-FromAppId", Arrays.asList("JUNIT")); - headers.put("X-TransactionId", Arrays.asList("JUNIT")); - headers.put("Content-Type", Arrays.asList("application/json")); - headers.put("Accept", Arrays.asList("application/json")); - } - - @Test - public void testHandleMessageWhenNotCamelRequest() throws IOException { - - when(message.getExchange()).thenReturn(exchange); - when(message.getContent(InputStream.class)).thenReturn(is); - when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - - when(message.get("CamelHttpUrl")).thenReturn("/somestring"); - aaiLogJAXRSInInterceptor.handleMessage(message); - } - - @Test - public void testHandleMessageWhenUUIDHasMultiple() throws IOException { - - Map<String, List<String>> headers = new HashMap<>(); - - headers.put("X-FromAppId", Arrays.asList("JUNIT")); - headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja")); - headers.put("Content-Type", Arrays.asList("application/json")); - headers.put("Accept", Arrays.asList("application/json")); - - when(message.getExchange()).thenReturn(exchange); - when(message.getContent(InputStream.class)).thenReturn(is); - when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - - when(message.get("CamelHttpUrl")).thenReturn("/somestring"); - aaiLogJAXRSInInterceptor.handleMessage(message); - } - - @Test - public void testHandleMessageWhenMissingTransactionId() throws IOException { - - Map<String, List<String>> headers = new HashMap<>(); - - headers.put("X-FromAppId", Arrays.asList("JUNIT")); - headers.put("Content-Type", Arrays.asList("application/json")); - headers.put("Accept", Arrays.asList("application/json")); - - when(message.getExchange()).thenReturn(exchange); - when(message.getContent(InputStream.class)).thenReturn(is); - when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - - when(message.get("CamelHttpUrl")).thenReturn("/somestring"); - aaiLogJAXRSInInterceptor.handleMessage(message); - } - - @Test - public void testHandleMessageWhenMissingContentType() throws IOException { - - Map<String, List<String>> headers = new HashMap<>(); - - headers.put("X-FromAppId", Arrays.asList("JUNIT")); - headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja")); - headers.put("Accept", Arrays.asList("application/json")); - - when(message.getExchange()).thenReturn(exchange); - when(message.getContent(InputStream.class)).thenReturn(is); - when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - - when(message.get("CamelHttpUrl")).thenReturn("/somestring"); - aaiLogJAXRSInInterceptor.handleMessage(message); - } - - @Test - public void testHandleMessageWhenQueryExistsAndUriEcho() throws IOException { - - Map<String, List<String>> headers = new HashMap<>(); - - headers.put("X-FromAppId", Arrays.asList("JUNIT")); - headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja")); - headers.put("Content-Type", Arrays.asList("application/json")); - headers.put("Accept", Arrays.asList("application/json")); - - when(message.getExchange()).thenReturn(exchange); - when(message.getContent(InputStream.class)).thenReturn(is); - when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - when(message.get(Message.QUERY_STRING)).thenReturn(null); - when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true); - when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn(""); - when(exchange.containsKey("AAI_LOGGING_TRACE_ENABLED")).thenReturn(true); - when(exchange.remove("AAI_LOGGING_TRACE_ENABLED")).thenReturn(""); - when(message.get("CamelHttpUrl")).thenReturn("/util/echo"); - aaiLogJAXRSInInterceptor.handleMessage(message); - } - - @Test - public void testHandleMessageWhenQueryExistsAndUriTranslog() throws IOException { - - Map<String, List<String>> headers = new HashMap<>(); - - headers.put("X-FromAppId", Arrays.asList("JUNIT")); - headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja")); - headers.put("Content-Type", Arrays.asList("application/json")); - headers.put("Accept", Arrays.asList("application/json")); - - when(message.getExchange()).thenReturn(exchange); - when(message.getContent(InputStream.class)).thenReturn(is); - when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - when(message.get(Message.QUERY_STRING)).thenReturn(null); - when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true); - when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn(""); - when(exchange.containsKey("AAI_LOGGING_TRACE_ENABLED")).thenReturn(true); - when(exchange.remove("AAI_LOGGING_TRACE_ENABLED")).thenReturn(""); - when(message.get("CamelHttpUrl")).thenReturn("/translog/"); - aaiLogJAXRSInInterceptor.handleMessage(message); - } - - @Test - public void testHandleMessageWhenPutMessageKeyReturnsException() throws IOException { - - Map<String, List<String>> headers = new HashMap<>(); - - headers.put("X-FromAppId", Arrays.asList("JUNIT")); - headers.put("X-TransactionId", Arrays.asList("jfasodjf:fjaosjfidsaj:afsidjfaodfja")); - headers.put("Content-Type", Arrays.asList("application/json")); - headers.put("Accept", Arrays.asList("application/json")); - - when(message.getExchange()).thenReturn(exchange); - when(message.getContent(InputStream.class)).thenReturn(is); - when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - when(message.get(Message.QUERY_STRING)).thenReturn(null); - when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true); - when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn(""); - when(exchange.containsKey("AAI_LOGGING_TRACE_ENABLED")).thenReturn(true); - when(exchange.remove("AAI_LOGGING_TRACE_ENABLED")).thenReturn(""); - when(message.get("CamelHttpUrl")).thenReturn("/translog/"); - when(message.get(Message.ENCODING)).thenReturn("http"); - when(message.get(Message.RESPONSE_CODE)).thenReturn(200); - - aaiLogJAXRSInInterceptor.handleMessage(message); - } -}
\ No newline at end of file diff --git a/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptorTest.java b/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptorTest.java deleted file mode 100644 index 52c6a42..0000000 --- a/aai-traversal/src/test/java/org/onap/aai/interceptors/AAILogJAXRSOutInterceptorTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.interceptors; - -import org.apache.cxf.io.CacheAndWriteOutputStream; -import org.apache.cxf.message.Exchange; -import org.apache.cxf.message.ExchangeImpl; -import org.apache.cxf.message.Message; -import org.junit.Before; -import org.junit.Test; - -import java.io.IOException; -import java.io.OutputStream; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.mockito.Mockito.*; - -public class AAILogJAXRSOutInterceptorTest { - - private AAILogJAXRSOutInterceptor aaiLogJAXRSOutInterceptor; - - private Message message; - private Exchange exchange; - private OutputStream out; - private Map<String, List<String>> headers; - private Message outMessage; - private Message inMessage; - - - @Before - public void setup(){ - - aaiLogJAXRSOutInterceptor = new AAILogJAXRSOutInterceptor(); - - message = mock(Message.class); - exchange = spy(new ExchangeImpl()); - out = mock(OutputStream.class); - outMessage = mock(Message.class); - inMessage = mock(Message.class); - - - headers = new HashMap<>(); - headers.put("X-FromAppId", Arrays.asList("JUNIT")); - headers.put("X-TransactionId", Arrays.asList("JUNIT")); - headers.put("Content-Type", Arrays.asList("application/json")); - headers.put("Accept", Arrays.asList("application/json")); - } - - @Test - public void testHandleMessageWhenNotCamelRequest() throws IOException { - - when(message.getExchange()).thenReturn(exchange); - when(message.getContent(OutputStream.class)).thenReturn(out); - when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - when(exchange.getOutMessage()).thenReturn(outMessage); - when(outMessage.getContent(OutputStream.class)).thenReturn(out); - when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true); - when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn(""); - - when(message.get("CamelHttpUrl")).thenReturn("/somestring"); - aaiLogJAXRSOutInterceptor.handleMessage(message); - } - - @Test - public void testLogCallBack(){ - - when(message.getExchange()).thenReturn(exchange); - when(message.getContent(OutputStream.class)).thenReturn(out); - when(message.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(message.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - when(exchange.getOutMessage()).thenReturn(outMessage); - - when(outMessage.getContent(OutputStream.class)).thenReturn(out); - when(exchange.containsKey("AAI_LOGGING_HBASE_ENABLED")).thenReturn(true); - when(exchange.remove("AAI_LOGGING_HBASE_ENABLED")).thenReturn(""); - when(exchange.getInMessage()).thenReturn(inMessage); - - when(inMessage.getExchange()).thenReturn(exchange); - when(inMessage.getContent(OutputStream.class)).thenReturn(out); - when(inMessage.get(Message.PROTOCOL_HEADERS)).thenReturn(headers); - when(inMessage.get(Message.CONTENT_TYPE)).thenReturn("*/*"); - - AAILogJAXRSOutInterceptor.LoggingCallback loggingCallback = new AAILogJAXRSOutInterceptor().new LoggingCallback(message, out); - final CacheAndWriteOutputStream newOut = new CacheAndWriteOutputStream(out); - loggingCallback.onClose(newOut); - } - -}
\ No newline at end of file diff --git a/aai-traversal/src/test/java/org/onap/aai/interceptors/PostAaiAjscInterceptorTest.java b/aai-traversal/src/test/java/org/onap/aai/interceptors/PostAaiAjscInterceptorTest.java deleted file mode 100644 index fcc1ee3..0000000 --- a/aai-traversal/src/test/java/org/onap/aai/interceptors/PostAaiAjscInterceptorTest.java +++ /dev/null @@ -1,75 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.interceptors; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mockito; -import org.onap.aai.logging.LoggingContext; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -public class PostAaiAjscInterceptorTest { - - private PostAaiAjscInterceptor postAaiAjscInterceptor; - - @Before - public void setup(){ - postAaiAjscInterceptor = new PostAaiAjscInterceptor(); - } - - @Test - public void getInstance() throws Exception { - PostAaiAjscInterceptor interceptor = PostAaiAjscInterceptor.getInstance(); - assertNotNull(interceptor); - } - - @Test - public void testAllowOrRejectIfSuccess() throws Exception { - - HttpServletRequest request = Mockito.mock(HttpServletRequest.class); - HttpServletResponse response = Mockito.mock(HttpServletResponse.class); - response.setStatus(200); - Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("/fadsjoifj")); - - boolean success = postAaiAjscInterceptor.allowOrReject(request, response, null); - - assertTrue("Expecting the post interceptor to return success regardless", success); - } - - @Test - public void testAllowOrRejectIfFailure() throws Exception { - - HttpServletRequest request = Mockito.mock(HttpServletRequest.class); - HttpServletResponse response = Mockito.mock(HttpServletResponse.class); - response.setStatus(400); - Mockito.when(request.getRequestURL()).thenReturn(new StringBuffer("/fadsjoifj")); - - boolean success = postAaiAjscInterceptor.allowOrReject(request, response, null); - - assertTrue("Expecting the post interceptor to return success regardless", success); - } -}
\ No newline at end of file diff --git a/aai-traversal/src/test/java/org/onap/aai/interceptors/PreAaiAjscInterceptorTest.java b/aai-traversal/src/test/java/org/onap/aai/interceptors/PreAaiAjscInterceptorTest.java deleted file mode 100644 index 35651c3..0000000 --- a/aai-traversal/src/test/java/org/onap/aai/interceptors/PreAaiAjscInterceptorTest.java +++ /dev/null @@ -1,63 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.interceptors; - -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mockito; - -import javax.servlet.http.HttpServletRequest; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.anyString; - -public class PreAaiAjscInterceptorTest { - - private PreAaiAjscInterceptor preAaiAjscInterceptor; - - @Before - public void setup(){ - preAaiAjscInterceptor = new PreAaiAjscInterceptor(); - } - - @Test - public void getInstance() throws Exception { - PreAaiAjscInterceptor interceptor = PreAaiAjscInterceptor.getInstance(); - assertNotNull(interceptor); - } - - @Test - public void testAllowOrRejectIfSuccess() throws Exception { - - HttpServletRequest request = Mockito.mock(HttpServletRequest.class); - - Mockito.when(request.getRequestURI()).thenReturn("/fadsjoifj"); - Mockito.when(request.getHeader(anyString())).thenReturn("JUNIT-Test"); - Mockito.when(request.getMethod()).thenReturn("GET"); - - boolean success = preAaiAjscInterceptor.allowOrReject(request, null, null); - - assertTrue("Expecting the post interceptor to return success regardless", success); - } - -}
\ No newline at end of file diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/GetCustomQueryConfigTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/GetCustomQueryConfigTest.java index 9001f48..5988b43 100644 --- a/aai-traversal/src/test/java/org/onap/aai/rest/search/GetCustomQueryConfigTest.java +++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/GetCustomQueryConfigTest.java @@ -16,7 +16,7 @@ public class GetCustomQueryConfigTest { @Before public void setUp() throws Exception { System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); configJson = "{\n \"stored-queries\": [{\n" + diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/ModelAndNamedQueryRestProviderTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/ModelAndNamedQueryRestProviderTest.java index 9ab7bc5..2acf5ec 100644 --- a/aai-traversal/src/test/java/org/onap/aai/rest/search/ModelAndNamedQueryRestProviderTest.java +++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/ModelAndNamedQueryRestProviderTest.java @@ -89,7 +89,7 @@ public class ModelAndNamedQueryRestProviderTest { public void setup(){ logger.info("Starting the setup for the integration tests of Rest Endpoints"); System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); modelAndNamedQueryRestProvider = new ModelAndNamedQueryRestProvider(); httpHeaders = mock(HttpHeaders.class); diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/QueryTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/QueryTest.java index ae54449..25d91ce 100644 --- a/aai-traversal/src/test/java/org/onap/aai/rest/search/QueryTest.java +++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/QueryTest.java @@ -73,7 +73,7 @@ public abstract class QueryTest { public void setUp() throws AAIException, NoEdgeRuleFoundException { System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); MockitoAnnotations.initMocks(this); graph = TinkerGraph.open(); createGraph(); diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/SearchProviderTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/SearchProviderTest.java index bb04653..102bc2f 100644 --- a/aai-traversal/src/test/java/org/onap/aai/rest/search/SearchProviderTest.java +++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/SearchProviderTest.java @@ -85,7 +85,7 @@ public class SearchProviderTest { public void setup(){ logger.info("Starting the setup for the integration tests of Rest Endpoints"); System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); searchProvider = new SearchProvider(); httpHeaders = mock(HttpHeaders.class); diff --git a/aai-traversal/src/test/java/org/onap/aai/rest/search/SimpleFormatTest.java b/aai-traversal/src/test/java/org/onap/aai/rest/search/SimpleFormatTest.java index 17ddfc5..106bb44 100644 --- a/aai-traversal/src/test/java/org/onap/aai/rest/search/SimpleFormatTest.java +++ b/aai-traversal/src/test/java/org/onap/aai/rest/search/SimpleFormatTest.java @@ -76,7 +76,7 @@ public class SimpleFormatTest { public void setUp() throws AAIException, NoEdgeRuleFoundException { System.setProperty("AJSC_HOME", "."); - System.setProperty("BUNDLECONFIG_DIR", "bundleconfig-local"); + System.setProperty("BUNDLECONFIG_DIR", "src/main/resources"); MockitoAnnotations.initMocks(this); graph = TinkerGraph.open(); loader = LoaderFactory.createLoaderForVersion(ModelType.MOXY, Version.v10); diff --git a/aai-traversal/src/test/java/org/onap/aai/retiredcustomer/JaxrsUserServiceTest.java b/aai-traversal/src/test/java/org/onap/aai/retiredcustomer/JaxrsUserServiceTest.java deleted file mode 100644 index 3e323dd..0000000 --- a/aai-traversal/src/test/java/org/onap/aai/retiredcustomer/JaxrsUserServiceTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.retiredcustomer; - -import com.att.eelf.configuration.EELFLogger; -import com.att.eelf.configuration.EELFManager; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mockito; -import org.onap.aai.ajsc_aai.JaxrsUserService; -import org.onap.aai.introspection.Version; -import org.onap.aai.rest.retired.RetiredConsumer; - -import javax.ws.rs.core.*; -import java.util.*; - -import static org.junit.Assert.assertNotNull; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Mockito.when; - -public class JaxrsUserServiceTest { - - - protected static final MediaType APPLICATION_JSON = MediaType.valueOf("application/json"); - - private static final Set<Integer> VALID_HTTP_STATUS_CODES = new HashSet<>(); - - static { - VALID_HTTP_STATUS_CODES.add(200); - VALID_HTTP_STATUS_CODES.add(201); - VALID_HTTP_STATUS_CODES.add(204); - } - - protected JaxrsUserService jaxrsUserService; - protected HttpHeaders httpHeaders; - protected UriInfo uriInfo; - - private MultivaluedMap<String, String> headersMultiMap; - private MultivaluedMap<String, String> queryParameters; - - private List<String> aaiRequestContextList; - - private List<MediaType> outputMediaTypes; - - private static final EELFLogger logger = EELFManager.getInstance().getLogger(RetiredConsumer.class.getName()); - - @Before - public void setup(){ - logger.info("Starting the setup for the integration tests of Rest Endpoints"); - - jaxrsUserService = new JaxrsUserService(); - httpHeaders = Mockito.mock(HttpHeaders.class); - uriInfo = Mockito.mock(UriInfo.class); - - headersMultiMap = new MultivaluedHashMap<>(); - queryParameters = Mockito.spy(new MultivaluedHashMap<>()); - - headersMultiMap.add("X-FromAppId", "JUNIT"); - headersMultiMap.add("X-TransactionId", UUID.randomUUID().toString()); - headersMultiMap.add("Real-Time", "true"); - headersMultiMap.add("Accept", "application/json"); - headersMultiMap.add("aai-request-context", ""); - - outputMediaTypes = new ArrayList<>(); - outputMediaTypes.add(APPLICATION_JSON); - - aaiRequestContextList = new ArrayList<>(); - aaiRequestContextList.add(""); - - when(httpHeaders.getAcceptableMediaTypes()).thenReturn(outputMediaTypes); - when(httpHeaders.getRequestHeaders()).thenReturn(headersMultiMap); - - when(httpHeaders.getRequestHeader("aai-request-context")).thenReturn(aaiRequestContextList); - - - when(uriInfo.getQueryParameters()).thenReturn(queryParameters); - when(uriInfo.getQueryParameters(false)).thenReturn(queryParameters); - - // TODO - Check if this is valid since RemoveDME2QueryParameters seems to be very unreasonable - Mockito.doReturn(null).when(queryParameters).remove(anyObject()); - - when(httpHeaders.getMediaType()).thenReturn(APPLICATION_JSON); - } - @Test - public void lookUpUserTest(){ - when(uriInfo.getPath()).thenReturn("/user?userID1"); - String response = jaxrsUserService.lookupUser("userID1"); - assertNotNull(response); - - - } -} diff --git a/aai-traversal/src/test/java/org/onap/aai/util/AAIAppServletContextListenerTest.java b/aai-traversal/src/test/java/org/onap/aai/util/AAIAppServletContextListenerTest.java deleted file mode 100644 index 9573d1f..0000000 --- a/aai-traversal/src/test/java/org/onap/aai/util/AAIAppServletContextListenerTest.java +++ /dev/null @@ -1,178 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * 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========================================================= - * - * ECOMP is a trademark and service mark of AT&T Intellectual Property. - */ -package org.onap.aai.util; - -import ch.qos.logback.classic.Level; -import ch.qos.logback.classic.Logger; -import ch.qos.logback.classic.PatternLayout; -import ch.qos.logback.classic.spi.ILoggingEvent; -import ch.qos.logback.core.AppenderBase; -import org.apache.commons.lang.ObjectUtils; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.onap.aai.dbmap.AAIGraph; -import org.onap.aai.logging.ErrorLogHelper; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.agent.PowerMockAgent; -import org.powermock.modules.junit4.rule.PowerMockRule; -import org.slf4j.LoggerFactory; - -import javax.servlet.ServletContextEvent; -import java.util.ArrayList; -import java.util.List; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -@PrepareForTest({AAIGraph.class, AAIConfig.class, ErrorLogHelper.class}) -public class AAIAppServletContextListenerTest { - - @Rule - public PowerMockRule rule = new PowerMockRule(); - - static { - PowerMockAgent.initializeIfNeeded(); - } - - private ServletContextEvent arg; - private AAIAppServletContextListener listener; - - /** - * Initialize. - */ - @Before - @PrepareForTest({AAIGraph.class, AAIConfig.class, ErrorLogHelper.class}) - public void initialize(){ - arg = PowerMockito.mock(ServletContextEvent.class); - PowerMockito.mockStatic(AAIGraph.class); - PowerMockito.mockStatic(AAIConfig.class); - PowerMockito.mockStatic(ErrorLogHelper.class); - - listener = new AAIAppServletContextListener(); - configureLog(); - } - - /** - * Test contextDestroyed. - */ - @Test(expected = NullPointerException.class) - @Ignore - public void testContextDestroyed(){ - listener.contextDestroyed(arg); - assertTrue(logContains(Level.DEBUG, "AAI Server shutdown")); - assertTrue(logContains(Level.INFO, "AAI graph shutdown")); - } - - /** - * Test contextInitialized. - */ - @Test - //@Ignore - public void testContextInitialized(){ - listener.contextInitialized(arg); - assertFalse(logContains(Level.DEBUG, "Loading aaiconfig.properties")); - assertFalse(logContains(Level.DEBUG, "Loading error.properties")); - assertFalse(logContains(Level.DEBUG, "Loading graph database")); - assertFalse(logContains(Level.INFO, "AAI Server initialization")); - } - - - /** - * Helper method to check if a String appears in the desired log level. - * - * @param level Log level to use - * @param expected String to search for - * @return True if search String is found, false otherwise - */ - private boolean logContains(Level level, String expected) { - String actual[] = RecordingAppender.messages(); - for (String log : actual) { - if (log.contains(level.toString()) && log.contains(expected)) - return true; - } - return false; - } - - /** - * Set logging level, and initialize log-appender. - */ - private void configureLog() { - org.slf4j.Logger rootLogger = LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); - rootLogger.debug("debug"); - // rootLogger.(); - // rootLogger.addAppender(RecordingAppender.appender(new PatternLayout())); - } - -} - - -/** - * Appender class that appends log messages to a String List when some logging event occurs - */ -class RecordingAppender extends AppenderBase<ILoggingEvent> { - private static List<String> messages = new ArrayList<String>(); - private static RecordingAppender appender = new RecordingAppender(); - private PatternLayout patternLayout; - - private RecordingAppender() { - super(); - } - - /** - * @param patternLayout Pattern to format log message - * @return Current appender - */ - public static RecordingAppender appender(PatternLayout patternLayout) { - appender.patternLayout = patternLayout; - appender.clear(); - return appender; - } - - @Override - protected void append(ILoggingEvent event) { - messages.add(patternLayout.doLayout(event)); - } - - public void close() {} - - public boolean requiresLayout() { - return false; - } - - /** - * @return Return logs as a String array - */ - public static String[] messages() { - return (String[]) messages.toArray(new String[messages.size()]); - } - - /** - * Clear the message container - */ - private void clear() { - messages.clear(); - } - -} diff --git a/aai-traversal/src/test/resources/application-test.properties b/aai-traversal/src/test/resources/application-test.properties new file mode 100644 index 0000000..9b6934b --- /dev/null +++ b/aai-traversal/src/test/resources/application-test.properties @@ -0,0 +1,70 @@ +# The following info parameters are being referenced by ajsc6 +info.build.artifact=aai-traversal +info.build.name=traversal +info.build.description=Traversal Microservice +info.build.version=1.1.0 + +spring.application.name=aai-traversal +spring.jersey.type=filter + +server.contextPath=/ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + +spring.profiles.active=production +#The max number of active threads in this pool +server.tomcat.max-threads=200 +#The minimum number of threads always kept alive +server.tomcat.min-Spare-Threads=25 +#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads +server.tomcat.max-idle-time=60000 + + +#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept +#com.att.ajsc.common.interceptors.PreInterceptor.url=/** +#com.att.ajsc.common.interceptors.PostInterceptor.url=/** + +#Servlet context parameters +server.context_parameters.p-name=value #context parameter with p-name as key and value as value. +kubernetes.namespace=org-onap-aai + +# If you get an application startup failure that the port is already taken +# If thats not it, please check if the key-store file path makes sense +server.local.startpath=src/main/resources/ +server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties + +server.port=8446 +server.ssl.enabled-protocols=TLSv1.1,TLSv1.2 +server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.client-auth=want +server.ssl.key-store-type=JKS + +# JMS bind address host port +jms.bind.address=tcp://localhost:61647 +dmaap.ribbon.eureka.enabled=false +dmaap.ribbon.listOfServers=localhost:3904 +# Number of milliseconds to wait before making ping requests again +dmaap.ribbon.ServerListRefreshInterval=75000 +dmaap.ribbon.NFLoadBalancerPingInterval=75000 +dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule +dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl +dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true +dmaap.ribbon.ServerDownFailureLimit=1 +# This needs to be verified but it seems that adding this property should automatically +# Make the dmaap client change the url from http to https depending on the server +dmaap.ribbon.securePorts=3905 + +# Custom Dmaap Specific Configuration +dmaap.ribbon.health.endpoint=/topics/AAI-EVENT +# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing +dmaap.ribbon.pingport.timeout=3 + +niws.loadbalancer.dmaap.filterCircuitTripped=true +niws.loadbalancer.dmaap.connectionFailureCountThreshold=3 +niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180 +#dmaap.ribbon.retryableStatusCodes=404,503 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2 +#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true diff --git a/aai-traversal/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json b/aai-traversal/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json deleted file mode 100644 index 9706ce9..0000000 --- a/aai-traversal/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "roles": [{ - "name": "testRole", - "functions": [{ - "name": "testFunction", - "methods": [{ - "name": "GET" - }, { - "name": "DELETE" - }, { - "name": "PUT" - } - ] - } - ], - "users": [{ - "username": "testUser" - } - ] - }, { - "name": "testBasicAuth", - "functions": [{ - "name": "testBasicAuthFuncyion", - "methods": [{ - "name": "GET" - } - ] - } - ], - "users": [{ - "user": "testBasicAuthUser", - "pass": "OBF:1ytc1vu91v2p1rxf1mqh1v8s1z0d1msn1san1mqf1z0h1v9u1msl1rvf1v1p1vv11yta" - } - ] - } - ] -}
\ No newline at end of file diff --git a/aai-traversal/src/test/resources/log4j.properties b/aai-traversal/src/test/resources/log4j.properties deleted file mode 100644 index 2e68f61..0000000 --- a/aai-traversal/src/test/resources/log4j.properties +++ /dev/null @@ -1,3 +0,0 @@ -log4j.logger.org.apache.zookeeper=WARN -log4j.logger.org.apache.hadoop.hbase.zookeeper=WARN -log4j.logger.org.apache.hadoop.hbase.client=WARN
\ No newline at end of file diff --git a/aai-traversal/src/test/resources/logback.xml b/aai-traversal/src/test/resources/logback.xml index 38499e0..f79a189 100644 --- a/aai-traversal/src/test/resources/logback.xml +++ b/aai-traversal/src/test/resources/logback.xml @@ -22,14 +22,371 @@ --> <configuration scan="true" scanPeriod="60 seconds" debug="false"> + <statusListener class="ch.qos.logback.core.status.NopStatusListener" /> - <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n</pattern> - </encoder> - </appender> + <property resource="application.properties" /> - <root level="INFO"> - <appender-ref ref="CONSOLE"/> - </root> + <property name="namespace" value="aai-traversal"/> + + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <jmxConfigurator /> + <property name="logDirectory" value="${AJSC_HOME}/logs" /> + <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%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}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%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}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%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|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> --> + <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%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}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%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"/> + + <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"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="DEBUG" /> + </appender> + + <appender name="ERROR" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <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> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfErrorLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfAuditLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfTransLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</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 class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <logger name="org.onap.aai" level="DEBUG" additivity="true"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + <appender-ref ref="asyncSANE" /> + </logger> + + <!-- 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="com.blog.spring.jms" level="WARN" /> + <logger name="com.jayway.jsonpath" level="WARN" /> + + <!-- AJSC Services (bootstrap services) --> + <logger name="ajsc" level="WARN" /> + <logger name="ajsc.RouteMgmtService" level="WARN" /> + <logger name="ajsc.ComputeService" level="WARN" /> + <logger name="ajsc.VandelayService" level="WARN" /> + <logger name="ajsc.FilePersistenceService" level="WARN" /> + <logger name="ajsc.UserDefinedJarService" level="WARN" /> + <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> + <logger name="ajsc.LoggingConfigurationService" level="WARN" /> + + <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet + logging) --> + <logger name="org.codehaus.groovy" level="WARN" /> + <logger name="com.att.scamper" level="WARN" /> + <logger name="ajsc.utils" level="WARN" /> + <logger name="ajsc.utils.DME2Helper" level="WARN" /> + <logger name="ajsc.filters" level="WARN" /> + <logger name="ajsc.beans.interceptors" level="WARN" /> + <logger name="ajsc.restlet" level="WARN" /> + <logger name="ajsc.servlet" level="WARN" /> + <logger name="com.att.ajsc" level="WARN" /> + <logger name="com.att.ajsc.csi.logging" level="WARN" /> + <logger name="com.att.ajsc.filemonitor" level="WARN" /> + <logger name="com.netflix.loadbalancer" level="WARN" /> + + <logger name="org.apache.zookeeper" level="WARN" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + May aid in troubleshooting) --> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="WARN" /> + <logger name="org.apache.camel.component.restlet" level="WARN" /> + + <logger name="org.hibernate.validator" level="WARN" /> + <logger name="org.hibernate" level="WARN" /> + <logger name="org.hibernate.ejb" level="OFF" /> + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <logger name="org.eclipse.jetty" level="WARN" /> + + <!-- logback jms appenders & loggers definition starts here --> + <appender name="auditLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="perfLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <logger name="AuditRecord" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="AuditRecord_DirectCall" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="PerfTrackerRecord" level="INFO" additivity="false"> + <appender-ref ref="perfLogs" /> + </logger> + <!-- logback jms appenders & loggers definition ends here --> + + <logger name="org.onap.aai.interceptors.post" level="DEBUG" + additivity="false"> + <appender-ref ref="asynctranslog" /> + </logger> + + <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false"> + <appender-ref ref="dmaapAAIEventConsumer" /> + <appender-ref ref="dmaapAAIEventConsumerDebug" /> + <appender-ref ref="dmaapAAIEventConsumerMetric" /> + </logger> + + <logger name="org.apache" level="WARN" /> + <logger name="org.zookeeper" level="WARN" /> + <logger name="com.thinkaurelius" level="WARN" /> + <logger name="com.att.aft.dme2" level="WARN" /> + + <!-- ============================================================================ --> + <!-- General EELF logger --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="WARN" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + </logger> + + <root level="DEBUG"> + <appender-ref ref="external" /> + <appender-ref ref="STDOUT" /> + </root> </configuration> diff --git a/aai-traversal/src/test/resources/payloads/templates/pserver.json b/aai-traversal/src/test/resources/payloads/templates/pserver.json new file mode 100644 index 0000000..dbaf2a9 --- /dev/null +++ b/aai-traversal/src/test/resources/payloads/templates/pserver.json @@ -0,0 +1,3 @@ +{ + "hostname": "${hostname}" +} diff --git a/aai-traversal/src/test/resources/test_aaiconfig.properties b/aai-traversal/src/test/resources/test_aaiconfig.properties deleted file mode 100644 index 4f130da..0000000 --- a/aai-traversal/src/test/resources/test_aaiconfig.properties +++ /dev/null @@ -1,99 +0,0 @@ -# -# ============LICENSE_START======================================================= -# org.onap.aai -# ================================================================================ -# Copyright © 2017 AT&T Intellectual Property. All rights reserved. -# ================================================================================ -# 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========================================================= -# -# ECOMP is a trademark and service mark of AT&T Intellectual Property. -# - -#################################################################### -# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE -# TEMPLATE AND *ALL* DATAFILES -#################################################################### - -aai.config.checktime=1000 - -# this could come from siteconfig.pl? -aai.config.nodename=AutomaticallyOverwritten - -aai.logging.hbase.interceptor=true -aai.logging.hbase.enabled=true -aai.logging.hbase.logrequest=true -aai.logging.hbase.logresponse=true - -aai.logging.trace.enabled=true -aai.logging.trace.logrequest=false -aai.logging.trace.logresponse=false - -aai.auth.cspcookies_on=false -aai.dbmodel.filename=ex5.json - -aai.server.url.base=https://localhost:8446/aai/ -aai.server.url=https://localhost:8446/aai/v12/ - -aai.truststore.filename=aai_keystore -aai.truststore.passwd.x= -aai.keystore.filename=aai-client-cert.p12 -aai.keystore.passwd.x= - -# the following parameters are not reloaded automatically and require a manual bounce -storage.backend=hbase -storage.hostname=ONAPserverTBD -#schema.default=none -storage.lock.wait-time=300 -storage.hbase.table=aaigraph-dev1.dev -storage.hbase.ext.zookeeper.znode.parent=/hbase-unsecure -# Setting db-cache to false ensure the fastest propagation of changes across servers -cache.db-cache = false -#cache.db-cache-clean-wait = 20 -#cache.db-cache-time = 180000 -#cache.db-cache-size = 0.5 - -# for transaction log -hbase.table.name=aailogging-dev1.dev -hbase.notificationTable.name=aainotification-dev1.dev -hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS -hbase.zookeeper.quorum=ONAPserverTBD -hbase.zookeeper.property.clientPort=2181 -hbase.zookeeper.znode.parent=/hbase-unsecure - -# single primary server -aai.primary.filetransfer.serverlist=ONAPserverTBD -aai.primary.filetransfer.primarycheck=echo:8443/aai/util/echo -aai.primary.filetransfer.pingtimeout=5000 -aai.primary.filetransfer.pingcount=5 - -#rsync properties -aai.rsync.command=rsync -aai.rsync.options.list=-v|-t -aai.rsync.remote.user=aaiadmin -aai.rsync.enabled=y - -aai.notification.current.version=v12 -aai.notificationEvent.default.status=UNPROCESSED -aai.notificationEvent.default.eventType=AAI-EVENT -aai.notificationEvent.default.domain=devINT1 -aai.notificationEvent.default.sourceName=aai -aai.notificationEvent.default.sequenceNumber=0 -aai.notificationEvent.default.severity=NORMAL -aai.notificationEvent.default.version=v9 -# This one lets us enable/disable resource-version checking on updates/deletes -aai.resourceversion.enableflag=true -aai.logging.maxStackTraceEntries=10 -aai.default.api.version=v12 - - |