From: elinuxhenrik
Date: Fri, 20 Mar 2020 08:41:11 +0000 (+0100)
Subject: Remove dashboard
X-Git-Tag: 2.0.0~106^2
X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;ds=inline;h=959850589ac84183193eacc21563801229600334;hp=a2ad32a98e7a3f32214d3ecd7ca9730e3602d11f;p=nonrtric.git
Remove dashboard
Change-Id: Ie4b99fc7b9e5c3cfb7c9ca9584bc59902316c5ae
Issue-ID: NONRTRIC-168
Signed-off-by: elinuxhenrik
---
diff --git a/dashboard/.gitignore b/dashboard/.gitignore
deleted file mode 100644
index 1fe9c87d..00000000
--- a/dashboard/.gitignore
+++ /dev/null
@@ -1,53 +0,0 @@
-# See http://help.github.com/ignore-files/ for more about ignoring files.
-
-/logs
-
-# compiled output
-/dist
-/tmp
-/out-tsc
-
-# dependencies
-/node
-/node_modules
-
-/.classpath
-/.project
-/.settings
-target
-/.mvn/wrapper/maven-wrapper.jar
-/.tox
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-/build/
-
-### visual studio ###
-.vs
-**/.vscode
-
-# OSx cruft
-**/.DS_Store
-
-# documentation
-.tox
-docs/_build/*
diff --git a/dashboard/LICENSES.txt b/dashboard/LICENSES.txt
deleted file mode 100644
index 4ec63577..00000000
--- a/dashboard/LICENSES.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-LICENSES.txt
-
-Unless otherwise specified, all software contained herein is licensed
-under the Apache License, Version 2.0 (the "Software License");
-you may not use this software except in compliance with the Software
-License. You may obtain a copy of the Software License at
-
-http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the Software License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the Software License for the specific language governing permissions
-and limitations under the Software License.
-
-
-
-Unless otherwise specified, all documentation contained herein is licensed
-under the Creative Commons License, Attribution 4.0 Intl. (the
-"Documentation License"); you may not use this documentation except in
-compliance with the Documentation License. You may obtain a copy of the
-Documentation License at
-
-https://creativecommons.org/licenses/by/4.0/
-
-Unless required by applicable law or agreed to in writing, documentation
-distributed under the Documentation License is distributed on an "AS IS"
-BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-implied. See the Documentation License for the specific language governing
-permissions and limitations under the Documentation License.
diff --git a/dashboard/README.md b/dashboard/README.md
deleted file mode 100644
index 03da2f29..00000000
--- a/dashboard/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# O-RAN-SC NonRT RIC Dashboard Web Application
-
-The O-RAN NonRT RIC Dashboard provides administrative and operator
-functions for a radio access network (RAN) controller.
-This web app consists of an Angular (version 8) front end
-and a Java (version 11) Spring-Boot (version 2.1) back end.
-
-Please see the documentation in the docs/ folder.
-
-The backend server publishes live API documentation at the
-URL `http://your-host-name-here:8080/swagger-ui.html`
-
-## License
-
-Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
-Modifications Copyright (C) 2019 Nordix Foundation
-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.
diff --git a/dashboard/pom.xml b/dashboard/pom.xml
deleted file mode 100644
index ca7673a1..00000000
--- a/dashboard/pom.xml
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
- 4.0.0
-
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.1.9.RELEASE
-
-
- org.o-ran-sc.nonrt.ric-dashboard
- ric-dash-parent
- NonRT RIC Dashboard project
- pom
- 1.0.1-SNAPSHOT
-
- 11
-
- AT&T Intellectual Property
- O-RAN-SC
- 2019
- apache_v2
- ========================LICENSE_START=================================
- ========================LICENSE_END===================================
-
-
- webapp-frontend
- webapp-backend
-
-
-
-
- org.codehaus.mojo
- license-maven-plugin
-
- ${lmp.organization.name}
- ${lmp.inception.year}
- ${lmp.project.name}
- ${lmp.license.name}
- ${lmp.process.start.tag}
- ${lmp.process.end.tag}
- false
-
-
-
- first
-
- update-file-header
-
- process-sources
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
-
- ${java.version}
-
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
-
-
- attach-sources
-
- jar
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-deploy-plugin
-
- true
-
-
-
-
- org.sonarsource.scanner.maven
- sonar-maven-plugin
- 3.6.0.1398
-
-
-
-
-
- org.codehaus.mojo
- license-maven-plugin
- 1.20
-
-
-
-
-
diff --git a/dashboard/tox.ini b/dashboard/tox.ini
deleted file mode 100644
index 72742cff..00000000
--- a/dashboard/tox.ini
+++ /dev/null
@@ -1,30 +0,0 @@
-# documentation only
-[tox]
-minversion = 2.0
-envlist =
- docs,
- docs-linkcheck,
-skipsdist = true
-
-[testenv:docs]
-basepython = python3
-deps =
- sphinx
- sphinx-rtd-theme
- sphinxcontrib-httpdomain
- recommonmark
- lfdocs-conf
-
-commands =
- sphinx-build -W -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
- echo "Generated docs available in {toxinidir}/docs/_build/html"
-whitelist_externals = echo
-
-[testenv:docs-linkcheck]
-basepython = python3
-deps = sphinx
- sphinx-rtd-theme
- sphinxcontrib-httpdomain
- recommonmark
- lfdocs-conf
-commands = sphinx-build -W -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck
diff --git a/dashboard/webapp-backend/.gitignore b/dashboard/webapp-backend/.gitignore
deleted file mode 100644
index e3d7171b..00000000
--- a/dashboard/webapp-backend/.gitignore
+++ /dev/null
@@ -1,34 +0,0 @@
-/.classpath
-/.project
-/.settings
-/target/
-/logs/
-/.mvn/wrapper/maven-wrapper.jar
-bin/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-/build/
-
-/application-tlab2.properties
-/application.properties
-/dashboard-users.json
diff --git a/dashboard/webapp-backend/README.md b/dashboard/webapp-backend/README.md
deleted file mode 100644
index 5dd1b1ea..00000000
--- a/dashboard/webapp-backend/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# RIC Dashboard Web Application Backend
-
-The RIC Dashboard back-end provides REST services to the Dashboard
-front-end Typescript features running in the user's browser. For
-production use, it also serves the Angular application files.
-
-Please see the documentation in the docs/ folder.
-
-The backend server publishes live API documentation at the
-URL `http://your-host-name-here:8080/swagger-ui.html`
-
-## License
-
-Copyright (C) 2019 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.
diff --git a/dashboard/webapp-backend/config/.gitignore b/dashboard/webapp-backend/config/.gitignore
deleted file mode 100644
index edd66f16..00000000
--- a/dashboard/webapp-backend/config/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/key.properties
-/portal.properties
diff --git a/dashboard/webapp-backend/config/key.properties.template b/dashboard/webapp-backend/config/key.properties.template
deleted file mode 100644
index a8d44e39..00000000
--- a/dashboard/webapp-backend/config/key.properties.template
+++ /dev/null
@@ -1,21 +0,0 @@
-# ========================LICENSE_START=================================
-# O-RAN-SC
-# %%
-# Copyright (C) 2019 AT&T Intellectual Property
-# %%
-# 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===================================
-
-# Template for the file that provides a secret key for the RIC Dashboard.
-
-cipher.enc.key =
diff --git a/dashboard/webapp-backend/config/portal.properties.template b/dashboard/webapp-backend/config/portal.properties.template
deleted file mode 100644
index 8c7fec79..00000000
--- a/dashboard/webapp-backend/config/portal.properties.template
+++ /dev/null
@@ -1,34 +0,0 @@
-# ========================LICENSE_START=================================
-# O-RAN-SC
-# %%
-# Copyright (C) 2019 AT&T Intellectual Property
-# %%
-# 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===================================
-
-# Template for the file that provides properties for the EPSDK-FW library.
-# This file must be present on the Java classpath.
-
-# The following properties are the same in every deployment
-
-portal.api.impl.class = org.oransc.ric.portal.dashboard.portalapi.PortalRestCentralServiceImpl
-role_access_centralized = remote
-
-# The following properties are DIFFERENT in every deployment
-
-# URL of portal login screen
-ecomp_redirect_url = http://localhost/portal
-# URL of portal API
-ecomp_rest_url = http://localhost/portal
-# Value assigned by portal instance
-ueb_app_key = abcdef1234567890
diff --git a/dashboard/webapp-backend/eclipse-formatter.xml b/dashboard/webapp-backend/eclipse-formatter.xml
deleted file mode 100644
index 7339434a..00000000
--- a/dashboard/webapp-backend/eclipse-formatter.xml
+++ /dev/null
@@ -1,315 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dashboard/webapp-backend/pom.xml b/dashboard/webapp-backend/pom.xml
deleted file mode 100644
index e8475613..00000000
--- a/dashboard/webapp-backend/pom.xml
+++ /dev/null
@@ -1,347 +0,0 @@
-
-
-
- 4.0.0
-
- org.o-ran-sc.nonrt.ric-dashboard
- ric-dash-parent
- 1.0.1-SNAPSHOT
-
- ric-dash-be
- NonRT RIC Dashboard Webapp backend
-
- 2.9.2
- 2.7.1
- 1.7.9
- 2.8.1
- 1.18.0
-
- 0
-
-
-
- onap-releases
- ONAP - Release Repository
- https://nexus.onap.org/content/repositories/releases
-
-
-
-
-
- org.onap.portal.sdk
- epsdk-fw
- 2.6.0
-
-
- commons-logging
- commons-logging
-
-
- log4j
- log4j
-
-
- log4j
- apache-log4j-extras
-
-
- org.slf4j
- slf4j-log4j12
-
-
- junit
- junit
-
-
- commons-fileupload
- commons-fileupload
-
-
- commons-beanutils
- commons-beanutils
-
-
-
- org.powermock
- powermock-module-junit4
-
-
-
- org.powermock
- powermock-api-mockito
-
-
-
-
- org.springframework.boot
- spring-boot-starter-security
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.slf4j
- slf4j-api
-
-
- org.apache.axis2
- axis2-kernel
- ${apache-axis2.version}
-
-
-
- org.slf4j
- jcl-over-slf4j
-
-
- ch.qos.logback
- logback-classic
-
-
- ch.qos.logback
- logback-core
-
-
- io.springfox
- springfox-swagger2
- ${springfox.version}
-
-
- io.springfox
- springfox-swagger-ui
- ${springfox.version}
-
-
- org.immutables
- value
- ${immutable.version}
- provided
-
-
- org.immutables
- gson
- ${immutable.version}
-
-
-
-
- org.mockito
- mockito-core
- test
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- org.junit.jupiter
- junit-jupiter-api
- test
-
-
- org.junit.jupiter
- junit-jupiter-engine
- test
-
-
- org.junit.platform
- junit-platform-launcher
- test
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
- net.revelc.code.formatter
- formatter-maven-plugin
- ${formatter-maven-plugin.version}
-
- ${project.basedir}/eclipse-formatter.xml
-
-
-
-
- com.diffplug.spotless
- spotless-maven-plugin
- ${spotless-maven-plugin.version}
-
-
-
-
- com,java,javax,org
-
-
-
-
-
-
-
- org.codehaus.mojo
- license-maven-plugin
-
-
- src
-
-
- **/*.json
-
-
-
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
-
- true
-
-
- ${project.version}-b${build.number}
-
-
-
-
-
- maven-resources-plugin
-
-
- copy-resources
- validate
-
- copy-resources
-
-
- ${project.build.directory}/classes/resources/
-
-
- ${project.parent.basedir}/webapp-frontend/dist/dashApp/
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-deploy-plugin
-
- true
-
-
-
- org.jacoco
- jacoco-maven-plugin
- 0.8.4
-
-
- default-prepare-agent
-
- prepare-agent
-
-
-
- default-report
- prepare-package
-
- report
-
-
-
-
-
-
- io.fabric8
- docker-maven-plugin
- 0.30.0
-
- true
-
- ${env.CONTAINER_PULL_REGISTRY}
- ${env.CONTAINER_PUSH_REGISTRY}
-
-
-
-
- o-ran-sc/nonrtric-dashboard:${project.version}
-
- openjdk:11-jre-slim
-
-
- ${project.version}
-
-
- artifact
-
-
-
- mkdir /logs
- chmod -R 777 /logs
-
-
-
-
- java
- -Xms128m
- -Xmx256m
- -cp
- maven:maven/${project.artifactId}-${project.version}.${project.packaging}
- -Dloader.main=org.oransc.ric.portal.dashboard.DashboardApplication
- -Djava.security.egd=file:/dev/./urandom
- org.springframework.boot.loader.PropertiesLauncher
-
-
-
-
-
-
-
-
-
-
- build
- push
-
-
-
-
-
-
-
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardApplication.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardApplication.java
deleted file mode 100644
index 7602c06d..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardApplication.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard;
-
-import java.lang.invoke.MethodHandles;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.annotation.ComponentScan;
-
-@SpringBootApplication
-// Limit scan to dashboard classes; exclude generated API classes
-@ComponentScan("org.oransc.ric.portal.dashboard")
-public class DashboardApplication {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- public static void main(String[] args) {
- SpringApplication.run(DashboardApplication.class);
- // Ensure this appears on the console by using level WARN
- logger.warn("main: version '{}' successful start",
- getImplementationVersion(MethodHandles.lookup().lookupClass()));
- }
-
- /**
- * Gets version details for the specified class.
- *
- * @param clazz
- * Class to get the version
- *
- * @return the value of the MANIFEST.MF property Implementation-Version as
- * written by maven when packaged in a jar; 'unknown' otherwise.
- */
- public static String getImplementationVersion(Class> clazz) {
- String classPath = clazz.getResource(clazz.getSimpleName() + ".class").toString();
- return classPath.startsWith("jar") ? clazz.getPackage().getImplementationVersion() : "unknown-not-jar";
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardConstants.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardConstants.java
deleted file mode 100644
index 4b5d9a4a..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardConstants.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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.oransc.ric.portal.dashboard;
-
-public abstract class DashboardConstants {
-
- private DashboardConstants() {
- // Sonar insists on hiding the constructor
- }
-
- public static final String ENDPOINT_PREFIX = "/api";
- // Factor out method names used in multiple controllers
- public static final String VERSION_METHOD = "version";
- public static final String APP_NAME_AC = "AC";
- public static final String APP_NAME_MC = "MC";
- // The role names are defined by ONAP Portal.
- // The prefix "ROLE_" is required by Spring.
- // These are used in Java code annotations that require constants.
- public static final String ROLE_NAME_STANDARD = "Standard_User";
- public static final String ROLE_NAME_ADMIN = "System_Administrator";
- private static final String ROLE_PREFIX = "ROLE_";
- public static final String ROLE_ADMIN = ROLE_PREFIX + ROLE_NAME_ADMIN;
- public static final String ROLE_STANDARD = ROLE_PREFIX + ROLE_NAME_STANDARD;
- public static final String POLICY_CONTROLLER_USERNAME = "admin";
- public static final String POLICY_CONTROLLER_PASSWORD = "Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U";
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardUserManager.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardUserManager.java
deleted file mode 100644
index 0de3ae2b..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/DashboardUserManager.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard;
-
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-import java.io.File;
-import java.io.IOException;
-import java.lang.invoke.MethodHandles;
-import java.nio.file.Files;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.onap.portalsdk.core.onboarding.exception.PortalAPIException;
-import org.onap.portalsdk.core.restful.domain.EcompRole;
-import org.onap.portalsdk.core.restful.domain.EcompUser;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Provides simple user-management services.
- *
- * This first implementation serializes user details to a file.
- */
-public class DashboardUserManager {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- // This default value is only useful for development and testing.
- public static final String USER_FILE_PATH = "dashboard-users.json";
-
- private final File userFile;
- private final List users;
-
- /**
- * Development/test-only constructor that uses default file path.
- *
- * @param clear
- * If true, start empty and remove any existing file.
- *
- * @throws IOException
- * On file error
- */
- public DashboardUserManager(boolean clear) throws IOException {
- this(USER_FILE_PATH);
- if (clear) {
- logger.debug("ctor: removing file {}", userFile.getAbsolutePath());
- File f = new File(DashboardUserManager.USER_FILE_PATH);
- if (f.exists())
- Files.delete(f.toPath());
- users.clear();
- }
- }
-
- /**
- * Constructur that accepts a file path
- *
- * @param userFilePath
- * File path
- * @throws IOException
- * If file cannot be read
- */
- public DashboardUserManager(final String userFilePath) throws IOException {
- logger.debug("ctor: userfile {}", userFilePath);
- if (userFilePath == null)
- throw new IllegalArgumentException("Missing or empty user file property");
- userFile = new File(userFilePath);
- logger.debug("ctor: managing users in file {}", userFile.getAbsolutePath());
- if (userFile.exists()) {
- final ObjectMapper mapper = new ObjectMapper();
- users = mapper.readValue(userFile, new TypeReference>() {});
- } else {
- users = new ArrayList<>();
- }
- }
-
- /**
- * Gets the current users.
- *
- * @return List of EcompUser objects, possibly empty
- */
- public List getUsers() {
- return this.users;
- }
-
- /**
- * Gets the user with the specified login Id
- *
- * @param loginId
- * Desired login Id
- * @return User object; null if Id is not known
- */
- public EcompUser getUser(String loginId) {
- for (EcompUser u : this.users) {
- if (u.getLoginId().equals(loginId)) {
- logger.debug("getUser: match on {}", loginId);
- return u;
- }
- }
- logger.debug("getUser: no match on {}", loginId);
- return null;
- }
-
- private void saveUsers() throws IOException {
- final ObjectMapper mapper = new ObjectMapper();
- mapper.writeValue(userFile, users);
- }
-
- /*
- * Allow at most one thread to create a user at one time.
- */
- public synchronized void createUser(EcompUser user) throws PortalAPIException {
- if (logger.isDebugEnabled()) {
- logger.debug("createUser: loginId is {}", user.getLoginId());
- }
- if (users.contains(user))
- throw new PortalAPIException("User exists: " + user.getLoginId());
- users.add(user);
- try {
- saveUsers();
- } catch (Exception ex) {
- throw new PortalAPIException("Save failed", ex);
- }
- }
-
- /*
- * Allow at most one thread to modify a user at one time. We still have
- * last-edit-wins of course.
- */
- public synchronized void updateUser(String loginId, EcompUser user) throws PortalAPIException {
- logger.debug("editUser: loginId is {}", loginId);
- int index = users.indexOf(user);
- if (index < 0)
- throw new PortalAPIException("User does not exist: " + user.getLoginId());
- users.remove(index);
- users.add(user);
- try {
- saveUsers();
- } catch (Exception ex) {
- throw new PortalAPIException("Save failed", ex);
- }
- }
-
- // Test infrastructure
- public static void main(String[] args) throws Exception {
- DashboardUserManager dum = new DashboardUserManager(false);
- EcompUser user = new EcompUser();
- user.setActive(true);
- user.setLoginId("demo");
- user.setFirstName("First");
- user.setLastName("Last");
- EcompRole role = new EcompRole();
- role.setId(1L);
- role.setName(DashboardConstants.ROLE_NAME_ADMIN);
- Set roles = new HashSet<>();
- roles.add(role);
- user.setRoles(roles);
- dum.createUser(user);
- logger.debug("Created user {}", user);
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/AdminConfiguration.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/AdminConfiguration.java
deleted file mode 100644
index 8c646fec..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/AdminConfiguration.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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.oransc.ric.portal.dashboard.config;
-
-import java.io.IOException;
-import java.lang.invoke.MethodHandles;
-
-import org.oransc.ric.portal.dashboard.DashboardUserManager;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-
-/**
- * Creates an instance of the user manager.
- */
-@Configuration
-@Profile("!test")
-public class AdminConfiguration {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- // Populated by the autowired constructor
- private final String userfile;
-
- @Autowired
- public AdminConfiguration(@Value("${userfile}") final String userfile) {
- logger.debug("ctor userfile '{}'", userfile);
- this.userfile = userfile;
- }
-
- @Bean
- // The bean (method) name must be globally unique
- public DashboardUserManager userManager() throws IOException {
- return new DashboardUserManager(userfile);
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/PortalApiConfiguration.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/PortalApiConfiguration.java
deleted file mode 100644
index 520f27ff..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/PortalApiConfiguration.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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.oransc.ric.portal.dashboard.config;
-
-import java.lang.invoke.MethodHandles;
-
-import org.onap.portalsdk.core.onboarding.crossapi.PortalRestAPIProxy;
-import org.onap.portalsdk.core.onboarding.util.PortalApiConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.web.servlet.ServletRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-
-@Configuration
-@Profile("!test")
-public class PortalApiConfiguration {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- /**
- * Instantiates the EPSDK-FW servlet that implements the API called by Portal.
- * Needed because this app is not configured to scan the EPSDK-FW packages;
- * there's also a chance that Spring-Boot does not automatically
- * process @WebServlet annotations.
- *
- * @return Servlet registration bean for the Portal Rest API proxy servlet.
- */
- @Bean
- public ServletRegistrationBean portalApiProxyServletBean() {
- logger.debug("portalApiProxyServletBean");
- PortalRestAPIProxy servlet = new PortalRestAPIProxy();
- final ServletRegistrationBean servletBean =
- new ServletRegistrationBean<>(servlet, PortalApiConstants.API_PREFIX + "/*");
- servletBean.setName("PortalRestApiProxyServlet");
- return servletBean;
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/SpringContextCache.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/SpringContextCache.java
deleted file mode 100644
index 3887e53e..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/SpringContextCache.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard.config;
-
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.stereotype.Component;
-
-/**
- * Allows non-Spring-managed classes to obtain the Spring application context.
- */
-@Component
-public class SpringContextCache implements ApplicationContextAware {
-
- private ApplicationContext applicationContext = null;
-
- @Override
- public void setApplicationContext(final ApplicationContext appContext) {
- applicationContext = appContext;
- }
-
- public ApplicationContext getApplicationContext() {
- return applicationContext;
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/SwaggerConfiguration.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/SwaggerConfiguration.java
deleted file mode 100644
index 435414af..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/SwaggerConfiguration.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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.oransc.ric.portal.dashboard.config;
-
-import org.oransc.ric.portal.dashboard.DashboardApplication;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.builders.RequestHandlerSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.service.Contact;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
-
-/**
- * http://www.baeldung.com/swagger-2-documentation-for-spring-rest-api
- */
-@Configuration
-@EnableSwagger2
-public class SwaggerConfiguration {
-
- /**
- * @return new Docket
- */
- @Bean
- public Docket api() {
- return new Docket(DocumentationType.SWAGGER_2).select() //
- .apis(RequestHandlerSelectors.basePackage(DashboardApplication.class.getPackage().getName())) //
- .paths(PathSelectors.any()) //
- .build() //
- .apiInfo(apiInfo());
- }
-
- private ApiInfo apiInfo() {
- final String version = DashboardApplication.class.getPackage().getImplementationVersion();
- return new ApiInfoBuilder() //
- .title("RIC Dashboard backend") //
- .description("Proxies access to RIC services.")//
- .termsOfServiceUrl("Terms of service") //
- .contact(new Contact("RIC Dashboard Dev Team", //
- "http://no-docs-yet.org/", //
- "noreply@O-RAN-SC.org")) //
- .license("Apache 2.0 License").licenseUrl("http://www.apache.org/licenses/LICENSE-2.0") //
- .version(version == null ? "version not available" : version) //
- .build();
- }
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/WebSecurityConfiguration.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/WebSecurityConfiguration.java
deleted file mode 100644
index e70b6122..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/config/WebSecurityConfiguration.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2019 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard.config;
-
-import java.io.IOException;
-import java.lang.invoke.MethodHandles;
-import java.lang.reflect.InvocationTargetException;
-
-import org.onap.portalsdk.core.onboarding.util.PortalApiConstants;
-import org.oransc.ric.portal.dashboard.DashboardUserManager;
-import org.oransc.ric.portal.dashboard.controller.PolicyController;
-import org.oransc.ric.portal.dashboard.controller.SimpleErrorController;
-import org.oransc.ric.portal.dashboard.portalapi.PortalAuthManager;
-import org.oransc.ric.portal.dashboard.portalapi.PortalAuthenticationFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
-import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
-
-@Configuration
-@EnableWebSecurity
-@EnableGlobalMethodSecurity(securedEnabled = true)
-@Profile("!test")
-public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- // Although constructor arguments are recommended over field injection,
- // this results in fewer lines of code.
- @Value("${portalapi.security}")
- private Boolean portalapiSecurity;
- @Value("${portalapi.appname}")
- private String appName;
- @Value("${portalapi.username}")
- private String userName;
- @Value("${portalapi.password}")
- private String password;
- @Value("${portalapi.decryptor}")
- private String decryptor;
- @Value("${portalapi.usercookie}")
- private String userCookie;
-
- @Autowired
- DashboardUserManager userManager;
-
- @Override
- protected void configure(HttpSecurity http) throws Exception {
- logger.debug("configure: portalapi.username {}", userName);
- // A chain of ".and()" always baffles me
- http.authorizeRequests().anyRequest().authenticated();
- http.headers().frameOptions().disable();
- http.csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());
- http.addFilterBefore(portalAuthenticationFilterBean(), BasicAuthenticationFilter.class);
- }
-
- /**
- * Resource paths that do not require authentication, especially including
- * Swagger-generated documentation.
- */
- @SuppressWarnings("squid:S1075")
- protected static final String[] OPEN_PATHS = { //
- "/v2/api-docs", //
- "/swagger-resources/**", //
- "/swagger-ui.html", //
- "/webjars/**", //
- PortalApiConstants.API_PREFIX + "/**", //
- PolicyController.CONTROLLER_PATH + "/" + PolicyController.VERSION_METHOD, //
- SimpleErrorController.ERROR_PATH};
-
- @Override
- public void configure(WebSecurity web) throws Exception {
- // This disables Spring security, but not the app's filter.
- web.ignoring().antMatchers(OPEN_PATHS);
- }
-
- @Bean
- public PortalAuthManager portalAuthManagerBean() throws ClassNotFoundException, InstantiationException,
- IllegalAccessException, InvocationTargetException, NoSuchMethodException {
- return new PortalAuthManager(appName, userName, password, decryptor, userCookie);
- }
-
- /*
- * If this is annotated with @Bean, it is created automatically AND REGISTERED,
- * and Spring processes annotations in the source of the class. However, the
- * filter is added in the chain apparently in the wrong order. Alternately, with
- * no @Bean and added to the chain up in the configure() method in the desired
- * order, the ignoring() matcher pattern configured above causes Spring to
- * bypass this filter, which seems to me means the filter participates
- * correctly.
- */
- public PortalAuthenticationFilter portalAuthenticationFilterBean() throws ClassNotFoundException,
- InstantiationException, IllegalAccessException, IOException, InvocationTargetException, NoSuchMethodException {
- return new PortalAuthenticationFilter(portalapiSecurity, portalAuthManagerBean(), this.userManager);
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/CustomResponseEntityExceptionHandler.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/CustomResponseEntityExceptionHandler.java
deleted file mode 100644
index b113d644..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/CustomResponseEntityExceptionHandler.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard.controller;
-
-import java.lang.invoke.MethodHandles;
-
-import org.oransc.ric.portal.dashboard.model.ErrorTransport;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.client.HttpStatusCodeException;
-import org.springframework.web.client.RestClientResponseException;
-import org.springframework.web.context.request.WebRequest;
-import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
-
-/**
- * Catches certain exceptions. This controller advice factors out try-catch
- * blocks in many controller methods.
- *
- * Also see:
- * https://www.baeldung.com/exception-handling-for-rest-with-spring
- * https://www.springboottutorial.com/spring-boot-exception-handling-for-rest-services
- */
-@ControllerAdvice
-public class CustomResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
-
- // Superclass has "logger" that is exposed here, so use a different name
- private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- /**
- * Logs the error and generates a JSON response when a REST controller method
- * takes a RestClientResponseException. This is thrown by the Http client when a
- * remote method returns a non-2xx code. All the controller methods are proxies
- * in that they just forward the request along to a remote system, so if that
- * remote system fails, return 502 plus some details about the failure, rather
- * than the generic 500 that Spring-Boot will return on an uncaught exception.
- *
- * Why 502? I quote:
HTTP server received an invalid response from a
- * server it consulted when acting as a proxy or gateway.
- *
- * @param ex
- * The exception
- *
- * @param request
- * The original request
- *
- * @return A response entity with status code 502 plus some details in the body.
- */
- @ExceptionHandler({RestClientResponseException.class})
- public final ResponseEntity handleProxyMethodException(Exception ex, WebRequest request) {
- // Capture the full stack trace in the log.
- log.error("handleProxyMethodException: request {}, exception {}", request.getDescription(false),
- ex.getMessage());
- if (ex instanceof HttpStatusCodeException) {
- HttpStatusCodeException hsce = (HttpStatusCodeException) ex;
- return new ResponseEntity<>(new ErrorTransport(hsce.getRawStatusCode(), hsce.getResponseBodyAsString(),
- ex.toString(), request.getDescription(false)), HttpStatus.BAD_GATEWAY);
- } else {
- return new ResponseEntity<>(new ErrorTransport(500, ex), HttpStatus.BAD_GATEWAY);
- }
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/Html5PathsController.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/Html5PathsController.java
deleted file mode 100644
index 2385298e..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/Html5PathsController.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2019 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard.controller;
-
-import java.io.IOException;
-import java.lang.invoke.MethodHandles;
-import java.net.URL;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-
-/**
- * Listens for requests to known Angular routes.
- */
-@Controller
-public class Html5PathsController {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- /**
- * Forwards the browser to the index (main) page upon request of a known route.
- * This unfortunately requires duplication of the Angular route strings in the
- * path mappings on this method. Could switch to a regex pattern instead someday
- * if the routes change too often.
- *
- * https://stackoverflow.com/questions/44692781/configure-spring-boot-to-redirect-404-to-a-single-page-app
- *
- * @param request
- * HttpServletRequest
- * @param response
- * HttpServletResponse
- * @throws IOException
- * On error
- */
- @GetMapping("/policy")
- public void forwardAngularRoutes(HttpServletRequest request, HttpServletResponse response) throws IOException {
- URL url = new URL(request.getScheme(), request.getServerName(), request.getServerPort(), "/index.html");
- if (logger.isDebugEnabled())
- logger.debug("forwardAngularRoutes: {} redirected to {}", request.getRequestURI(), url);
- response.sendRedirect(url.toString());
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/PolicyController.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/PolicyController.java
deleted file mode 100644
index 713d39a1..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/PolicyController.java
+++ /dev/null
@@ -1,139 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard.controller;
-
-import io.swagger.annotations.ApiOperation;
-
-import java.lang.invoke.MethodHandles;
-
-import javax.servlet.http.HttpServletResponse;
-
-import org.oransc.ric.portal.dashboard.DashboardConstants;
-import org.oransc.ric.portal.dashboard.policyagentapi.PolicyAgentApi;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.access.annotation.Secured;
-import org.springframework.util.Assert;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * Proxies calls from the front end to the Policy agent API.
- *
- * If a method throws RestClientResponseException, it is handled by
- * {@link CustomResponseEntityExceptionHandler#handleProxyMethodException(Exception, org.springframework.web.context.request.WebRequest)}
- * which returns status 502. All other exceptions are handled by Spring which
- * returns status 500.
- */
-@RestController
-@RequestMapping(value = PolicyController.CONTROLLER_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
-public class PolicyController {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- // Publish paths in constants so tests are easy to write
- public static final String CONTROLLER_PATH = DashboardConstants.ENDPOINT_PREFIX + "/policy";
- // Endpoints
- public static final String VERSION_METHOD = DashboardConstants.VERSION_METHOD;
- public static final String POLICY_TYPES_METHOD = "policytypes";
- public static final String POLICY_TYPE_ID_NAME = "policy_type_id";
- public static final String POLICIES_NAME = "policies";
- public static final String POLICY_INSTANCE_ID_NAME = "policy_instance_id";
-
- // Populated by the autowired constructor
- private final PolicyAgentApi policyAgentApi;
-
- @Autowired
- public PolicyController(final PolicyAgentApi policyAgentApi) {
- Assert.notNull(policyAgentApi, "API must not be null");
- this.policyAgentApi = policyAgentApi;
- logger.debug("ctor: configured with client type {}", policyAgentApi.getClass().getName());
- }
-
- /*
- * The fields are defined in the Policy Control Typescript interface.
- */
- @ApiOperation(value = "Gets the policy types from Near Realtime-RIC")
- @GetMapping(POLICY_TYPES_METHOD)
- @Secured({DashboardConstants.ROLE_ADMIN, DashboardConstants.ROLE_STANDARD})
- public ResponseEntity getAllPolicyTypes(HttpServletResponse response) {
- logger.debug("getAllPolicyTypes");
- return this.policyAgentApi.getAllPolicyTypes();
- }
-
- @ApiOperation(value = "Returns the policy instances for the given policy type.")
- @GetMapping(POLICY_TYPES_METHOD + "/{" + POLICY_TYPE_ID_NAME + "}/" + POLICIES_NAME)
- @Secured({DashboardConstants.ROLE_ADMIN, DashboardConstants.ROLE_STANDARD})
- public ResponseEntity getPolicyInstances(@PathVariable(POLICY_TYPE_ID_NAME) String policyTypeIdString) {
- logger.debug("getPolicyInstances {}", policyTypeIdString);
- return this.policyAgentApi.getPolicyInstancesForType(policyTypeIdString);
- }
-
- @ApiOperation(value = "Returns a policy instance of a type")
- @GetMapping(POLICY_TYPES_METHOD + "/{" + POLICY_TYPE_ID_NAME + "}/" + POLICIES_NAME + "/{" + POLICY_INSTANCE_ID_NAME
- + "}")
- @Secured({DashboardConstants.ROLE_ADMIN, DashboardConstants.ROLE_STANDARD})
- public ResponseEntity
", //
- "", //
- "");
- }
-
- /**
- * Searches the request for a cookie with the specified name.
- *
- * @param request
- * HttpServletRequest
- * @param cookieName
- * Cookie name
- * @return Cookie, or null if not found.
- */
- private Cookie getCookie(HttpServletRequest request, String cookieName) {
- Cookie[] cookies = request.getCookies();
- if (cookies != null)
- for (Cookie cookie : cookies)
- if (cookie.getName().equals(cookieName))
- return cookie;
- return null;
- }
-
- /**
- * Gets the ECOMP Portal service cookie value.
- *
- * @param request
- * @return Cookie value, or null if not found.
- */
- private String getPortalSessionId(HttpServletRequest request) {
- Cookie ep = getCookie(request, PortalApiConstants.EP_SERVICE);
- if (ep == null)
- return null;
- return ep.getValue();
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalRestCentralServiceImpl.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalRestCentralServiceImpl.java
deleted file mode 100644
index b8f3e894..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalRestCentralServiceImpl.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard.portalapi;
-
-import java.io.IOException;
-import java.lang.invoke.MethodHandles;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.onap.portalsdk.core.onboarding.crossapi.IPortalRestCentralService;
-import org.onap.portalsdk.core.onboarding.exception.PortalAPIException;
-import org.onap.portalsdk.core.restful.domain.EcompUser;
-import org.oransc.ric.portal.dashboard.DashboardUserManager;
-import org.oransc.ric.portal.dashboard.config.SpringContextCache;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-
-/**
- * Implements the contract used by the Portal to transmit user details to this
- * on-boarded application. The requests are intercepted first by a servlet in
- * the EPSDK-FW library, which proxies the calls to these methods.
- *
- * An instance of this class is created upon first request to the API. But this
- * class is found and instantiated via Class.forName(), so cannot use Spring
- * annotations.
- */
-public class PortalRestCentralServiceImpl implements IPortalRestCentralService {
-
- private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
- @Autowired
- private SpringContextCache springContextCache;
- private final PortalAuthManager authManager;
- private final DashboardUserManager userManager;
-
- public PortalRestCentralServiceImpl() throws IOException, PortalAPIException {
- final ApplicationContext context = springContextCache.getApplicationContext();
- authManager = context.getBean(PortalAuthManager.class);
- userManager = context.getBean(DashboardUserManager.class);
- }
-
- /*
- * Answers the Portal API credentials.
- */
- @Override
- public Map getAppCredentials() throws PortalAPIException {
- logger.debug("getAppCredentials");
- return authManager.getAppCredentials();
- }
-
- /*
- * Extracts the user ID from a cookie in the header
- */
- @Override
- public String getUserId(HttpServletRequest request) throws PortalAPIException {
- logger.debug("getuserId");
- return authManager.validateEcompSso(request);
- }
-
- @Override
- public void pushUser(EcompUser user) throws PortalAPIException {
- logger.debug("pushUser: {}", user);
- userManager.createUser(user);
- }
-
- @Override
- public void editUser(String loginId, EcompUser user) throws PortalAPIException {
- logger.debug("editUser: {}", user);
- userManager.updateUser(loginId, user);
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalSdkDecryptorAes.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalSdkDecryptorAes.java
deleted file mode 100644
index 09b4dfea..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalSdkDecryptorAes.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard.portalapi;
-
-import org.onap.portalsdk.core.onboarding.exception.CipherUtilException;
-import org.onap.portalsdk.core.onboarding.util.CipherUtil;
-
-public class PortalSdkDecryptorAes implements IPortalSdkDecryptor {
-
- @Override
- @SuppressWarnings("squid:CallToDeprecatedMethod")
- public String decrypt(String cipherText) throws CipherUtilException {
- return CipherUtil.decrypt(cipherText);
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalSdkDecryptorPkc.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalSdkDecryptorPkc.java
deleted file mode 100644
index 10205277..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/portalapi/PortalSdkDecryptorPkc.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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.oransc.ric.portal.dashboard.portalapi;
-
-import org.onap.portalsdk.core.onboarding.exception.CipherUtilException;
-import org.onap.portalsdk.core.onboarding.util.CipherUtil;
-
-public class PortalSdkDecryptorPkc implements IPortalSdkDecryptor {
-
- public String decrypt(String cipherText) throws CipherUtilException {
- return CipherUtil.decryptPKC(cipherText);
- }
-
-}
diff --git a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/util/HttpsURLConnectionUtils.java b/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/util/HttpsURLConnectionUtils.java
deleted file mode 100644
index f687483d..00000000
--- a/dashboard/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/util/HttpsURLConnectionUtils.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard.util;
-
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-
-import org.apache.axis2.java.security.TrustAllTrustManager;
-
-/**
- * Disables and enables certificate and host-name checking in
- * HttpsURLConnection, the default JVM implementation of the HTTPS/TLS protocol.
- * Has no effect on implementations such as Apache Http Client, Ok Http.
- *
- * https://stackoverflow.com/questions/23504819/how-to-disable-ssl-certificate-checking-with-spring-resttemplate/58291331#58291331
- */
-public final class HttpsURLConnectionUtils {
-
- private static final HostnameVerifier jvmHostnameVerifier = HttpsURLConnection.getDefaultHostnameVerifier();
-
- private static final HostnameVerifier trivialHostnameVerifier =
- (hostname, sslSession) -> hostname.equalsIgnoreCase(sslSession.getPeerHost());
-
- private static final TrustManager[] UNQUESTIONING_TRUST_MANAGER = new TrustManager[] {new TrustAllTrustManager()};
-
- public static void turnOffSslChecking() throws NoSuchAlgorithmException, KeyManagementException {
- HttpsURLConnection.setDefaultHostnameVerifier(trivialHostnameVerifier);
- // Install the all-trusting trust manager
- SSLContext sc = SSLContext.getInstance("TLS");
- sc.init(null, UNQUESTIONING_TRUST_MANAGER, null);
- HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
- }
-
- public static void turnOnSslChecking() throws KeyManagementException, NoSuchAlgorithmException {
- HttpsURLConnection.setDefaultHostnameVerifier(jvmHostnameVerifier);
- // Return it to the initial state (discovered by reflection, now hardcoded)
- SSLContext sc = SSLContext.getInstance("TLS");
- sc.init(null, null, null);
- HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
- }
-
- private HttpsURLConnectionUtils() {
- throw new UnsupportedOperationException("Do not instantiate libraries.");
- }
-}
diff --git a/dashboard/webapp-backend/src/main/resources/ESAPI.properties b/dashboard/webapp-backend/src/main/resources/ESAPI.properties
deleted file mode 100644
index 9a26119b..00000000
--- a/dashboard/webapp-backend/src/main/resources/ESAPI.properties
+++ /dev/null
@@ -1,385 +0,0 @@
-# ========================LICENSE_START=================================
-# O-RAN-SC
-# %%
-# Copyright (C) 2019 AT&T Intellectual Property
-# %%
-# 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===================================
-
-#===========================================================================
-# ESAPI Configuration
-#
-# If true, then print all the ESAPI properties set here when they are loaded.
-# If false, they are not printed. Useful to reduce output when running JUnit tests.
-# If you need to troubleshoot a properties related problem, turning this on may help.
-# This is 'false' in the src/test/resources/.esapi version. It is 'true' by
-# default for reasons of backward compatibility with earlier ESAPI versions.
-ESAPI.printProperties=false
-
-# ESAPI is designed to be easily extensible. You can use the reference implementation
-# or implement your own providers to take advantage of your enterprise's security
-# infrastructure. The functions in ESAPI are referenced using the ESAPI locator, like:
-#
-# String ciphertext =
-# ESAPI.encryptor().encrypt("Secret message"); // Deprecated in 2.0
-# CipherText cipherText =
-# ESAPI.encryptor().encrypt(new PlainText("Secret message")); // Preferred
-#
-# Below you can specify the classname for the provider that you wish to use in your
-# application. The only requirement is that it implement the appropriate ESAPI interface.
-# This allows you to switch security implementations in the future without rewriting the
-# entire application.
-#
-# ExperimentalAccessController requires ESAPI-AccessControlPolicy.xml in .esapi directory
-ESAPI.AccessControl=org.owasp.esapi.reference.DefaultAccessController
-# FileBasedAuthenticator requires users.txt file in .esapi directory
-ESAPI.Authenticator=org.owasp.esapi.reference.FileBasedAuthenticator
-ESAPI.Encoder=org.owasp.esapi.reference.DefaultEncoder
-ESAPI.Encryptor=org.owasp.esapi.reference.crypto.JavaEncryptor
-
-ESAPI.Executor=org.owasp.esapi.reference.DefaultExecutor
-ESAPI.HTTPUtilities=org.owasp.esapi.reference.DefaultHTTPUtilities
-ESAPI.IntrusionDetector=org.owasp.esapi.reference.DefaultIntrusionDetector
-#ESAPI.Logger=org.owasp.esapi.reference.JavaLogFactory
-ESAPI.Randomizer=org.owasp.esapi.reference.DefaultRandomizer
-ESAPI.Validator=org.owasp.esapi.reference.DefaultValidator
-
-#===========================================================================
-# ESAPI Authenticator
-#
-Authenticator.AllowedLoginAttempts=3
-#Authenticator.MaxOldPasswordHashes=13
-Authenticator.UsernameParameterName=username
-#Authenticator.PasswordParameterName=password
-# RememberTokenDuration (in days)
-Authenticator.RememberTokenDuration=14
-# Session Timeouts (in minutes)
-Authenticator.IdleTimeoutDuration=20
-Authenticator.AbsoluteTimeoutDuration=120
-
-#===========================================================================
-# ESAPI Encoder
-#
-# ESAPI canonicalizes input before validation to prevent bypassing filters with encoded attacks.
-# Failure to canonicalize input is a very common mistake when implementing validation schemes.
-# Canonicalization is automatic when using the ESAPI Validator, but you can also use the
-# following code to canonicalize data.
-#
-# ESAPI.Encoder().canonicalize( "%22hello world"" );
-#
-# Multiple encoding is when a single encoding format is applied multiple times. Allowing
-# multiple encoding is strongly discouraged.
-Encoder.AllowMultipleEncoding=false
-
-# Mixed encoding is when multiple different encoding formats are applied, or when
-# multiple formats are nested. Allowing multiple encoding is strongly discouraged.
-Encoder.AllowMixedEncoding=false
-
-# The default list of codecs to apply when canonicalizing untrusted data. The list should include the codecs
-# for all downstream interpreters or decoders. For example, if the data is likely to end up in a URL, HTML, or
-# inside JavaScript, then the list of codecs below is appropriate. The order of the list is not terribly important.
-Encoder.DefaultCodecList=HTMLEntityCodec,PercentCodec,JavaScriptCodec
-
-
-#===========================================================================
-# ESAPI Encryption
-#
-# The ESAPI Encryptor provides basic cryptographic functions with a simplified API.
-# To get started, generate a new key using java -classpath esapi.jar org.owasp.esapi.reference.crypto.JavaEncryptor
-# There is not currently any support for key rotation, so be careful when changing your key and salt as it
-# will invalidate all signed, encrypted, and hashed data.
-#
-# WARNING: Not all combinations of algorithms and key lengths are supported.
-# If you choose to use a key length greater than 128, you MUST download the
-# unlimited strength policy files and install in the lib directory of your JRE/JDK.
-# See http://java.sun.com/javase/downloads/index.jsp for more information.
-#
-# Backward compatibility with ESAPI Java 1.4 is supported by the two deprecated API
-# methods, Encryptor.encrypt(String) and Encryptor.decrypt(String). However, whenever
-# possible, these methods should be avoided as they use ECB cipher mode, which in almost
-# all circumstances a poor choice because of it's weakness. CBC cipher mode is the default
-# for the new Encryptor encrypt / decrypt methods for ESAPI Java 2.0. In general, you
-# should only use this compatibility setting if you have persistent data encrypted with
-# version 1.4 and even then, you should ONLY set this compatibility mode UNTIL
-# you have decrypted all of your old encrypted data and then re-encrypted it with
-# ESAPI 2.0 using CBC mode. If you have some reason to mix the deprecated 1.4 mode
-# with the new 2.0 methods, make sure that you use the same cipher algorithm for both
-# (256-bit AES was the default for 1.4; 128-bit is the default for 2.0; see below for
-# more details.) Otherwise, you will have to use the new 2.0 encrypt / decrypt methods
-# where you can specify a SecretKey. (Note that if you are using the 256-bit AES,
-# that requires downloading the special jurisdiction policy files mentioned above.)
-#
-# ***** IMPORTANT: Do NOT forget to replace these with your own values! *****
-# To calculate these values, you can run:
-# java -classpath esapi.jar org.owasp.esapi.reference.crypto.JavaEncryptor
-#
-Encryptor.MasterKey=tzfztf56ftv
-Encryptor.MasterSalt=123456ztrewq
-
-# Provides the default JCE provider that ESAPI will "prefer" for its symmetric
-# encryption and hashing. (That is it will look to this provider first, but it
-# will defer to other providers if the requested algorithm is not implemented
-# by this provider.) If left unset, ESAPI will just use your Java VM's current
-# preferred JCE provider, which is generally set in the file
-# "$JAVA_HOME/jre/lib/security/java.security".
-#
-# The main intent of this is to allow ESAPI symmetric encryption to be
-# used with a FIPS 140-2 compliant crypto-module. For details, see the section
-# "Using ESAPI Symmetric Encryption with FIPS 140-2 Cryptographic Modules" in
-# the ESAPI 2.0 Symmetric Encryption User Guide, at:
-# http://owasp-esapi-java.googlecode.com/svn/trunk/documentation/esapi4java-core-2.0-symmetric-crypto-user-guide.html
-# However, this property also allows you to easily use an alternate JCE provider
-# such as "Bouncy Castle" without having to make changes to "java.security".
-# See Javadoc for SecurityProviderLoader for further details. If you wish to use
-# a provider that is not known to SecurityProviderLoader, you may specify the
-# fully-qualified class name of the JCE provider class that implements
-# java.security.Provider. If the name contains a '.', this is interpreted as
-# a fully-qualified class name that implements java.security.Provider.
-#
-# NOTE: Setting this property has the side-effect of changing it in your application
-# as well, so if you are using JCE in your application directly rather than
-# through ESAPI (you wouldn't do that, would you? ;-), it will change the
-# preferred JCE provider there as well.
-#
-# Default: Keeps the JCE provider set to whatever JVM sets it to.
-Encryptor.PreferredJCEProvider=
-
-# AES is the most widely used and strongest encryption algorithm. This
-# should agree with your Encryptor.CipherTransformation property.
-# By default, ESAPI Java 1.4 uses "PBEWithMD5AndDES" and which is
-# very weak. It is essentially a password-based encryption key, hashed
-# with MD5 around 1K times and then encrypted with the weak DES algorithm
-# (56-bits) using ECB mode and an unspecified padding (it is
-# JCE provider specific, but most likely "NoPadding"). However, 2.0 uses
-# "AES/CBC/PKCSPadding". If you want to change these, change them here.
-# Warning: This property does not control the default reference implementation for
-# ESAPI 2.0 using JavaEncryptor. Also, this property will be dropped
-# in the future.
-# @deprecated
-Encryptor.EncryptionAlgorithm=AES
-# For ESAPI Java 2.0 - New encrypt / decrypt methods use this.
-Encryptor.CipherTransformation=AES/CBC/PKCS5Padding
-
-# Applies to ESAPI 2.0 and later only!
-# Comma-separated list of cipher modes that provide *BOTH*
-# confidentiality *AND* message authenticity. (NIST refers to such cipher
-# modes as "combined modes" so that's what we shall call them.) If any of these
-# cipher modes are used then no MAC is calculated and stored
-# in the CipherText upon encryption. Likewise, if one of these
-# cipher modes is used with decryption, no attempt will be made
-# to validate the MAC contained in the CipherText object regardless
-# of whether it contains one or not. Since the expectation is that
-# these cipher modes support support message authenticity already,
-# injecting a MAC in the CipherText object would be at best redundant.
-#
-# Note that as of JDK 1.5, the SunJCE provider does not support *any*
-# of these cipher modes. Of these listed, only GCM and CCM are currently
-# NIST approved. YMMV for other JCE providers. E.g., Bouncy Castle supports
-# GCM and CCM with "NoPadding" mode, but not with "PKCS5Padding" or other
-# padding modes.
-Encryptor.cipher_modes.combined_modes=GCM,CCM,IAPM,EAX,OCB,CWC
-
-# Applies to ESAPI 2.0 and later only!
-# Additional cipher modes allowed for ESAPI 2.0 encryption. These
-# cipher modes are in _addition_ to those specified by the property
-# 'Encryptor.cipher_modes.combined_modes'.
-# Note: We will add support for streaming modes like CFB & OFB once
-# we add support for 'specified' to the property 'Encryptor.ChooseIVMethod'
-# (probably in ESAPI 2.1).
-# DISCUSS: Better name?
-Encryptor.cipher_modes.additional_allowed=CBC
-
-# 128-bit is almost always sufficient and appears to be more resistant to
-# related key attacks than is 256-bit AES. Use '_' to use default key size
-# for cipher algorithms (where it makes sense because the algorithm supports
-# a variable key size). Key length must agree to what's provided as the
-# cipher transformation, otherwise this will be ignored after logging a
-# warning.
-#
-# NOTE: This is what applies BOTH ESAPI 1.4 and 2.0. See warning above about mixing!
-Encryptor.EncryptionKeyLength=128
-
-# Because 2.0 uses CBC mode by default, it requires an initialization vector (IV).
-# (All cipher modes except ECB require an IV.) There are two choices: we can either
-# use a fixed IV known to both parties or allow ESAPI to choose a random IV. While
-# the IV does not need to be hidden from adversaries, it is important that the
-# adversary not be allowed to choose it. Also, random IVs are generally much more
-# secure than fixed IVs. (In fact, it is essential that feed-back cipher modes
-# such as CFB and OFB use a different IV for each encryption with a given key so
-# in such cases, random IVs are much preferred. By default, ESAPI 2.0 uses random
-# IVs. If you wish to use 'fixed' IVs, set 'Encryptor.ChooseIVMethod=fixed' and
-# uncomment the Encryptor.fixedIV.
-#
-# Valid values: random|fixed|specified 'specified' not yet implemented; planned for 2.1
-Encryptor.ChooseIVMethod=random
-# If you choose to use a fixed IV, then you must place a fixed IV here that
-# is known to all others who are sharing your secret key. The format should
-# be a hex string that is the same length as the cipher block size for the
-# cipher algorithm that you are using. The following is an *example* for AES
-# from an AES test vector for AES-128/CBC as described in:
-# NIST Special Publication 800-38A (2001 Edition)
-# "Recommendation for Block Cipher Modes of Operation".
-# (Note that the block size for AES is 16 bytes == 128 bits.)
-#
-Encryptor.fixedIV=0x000102030405060708090a0b0c0d0e0f
-
-# Whether or not CipherText should use a message authentication code (MAC) with it.
-# This prevents an adversary from altering the IV as well as allowing a more
-# fool-proof way of determining the decryption failed because of an incorrect
-# key being supplied. This refers to the "separate" MAC calculated and stored
-# in CipherText, not part of any MAC that is calculated as a result of a
-# "combined mode" cipher mode.
-#
-# If you are using ESAPI with a FIPS 140-2 cryptographic module, you *must* also
-# set this property to false.
-Encryptor.CipherText.useMAC=true
-
-# Whether or not the PlainText object may be overwritten and then marked
-# eligible for garbage collection. If not set, this is still treated as 'true'.
-Encryptor.PlainText.overwrite=true
-
-# Do not use DES except in a legacy situations. 56-bit is way too small key size.
-#Encryptor.EncryptionKeyLength=56
-#Encryptor.EncryptionAlgorithm=DES
-
-# TripleDES is considered strong enough for most purposes.
-# Note: There is also a 112-bit version of DESede. Using the 168-bit version
-# requires downloading the special jurisdiction policy from Sun.
-#Encryptor.EncryptionKeyLength=168
-#Encryptor.EncryptionAlgorithm=DESede
-
-Encryptor.HashAlgorithm=SHA-512
-Encryptor.HashIterations=1024
-Encryptor.DigitalSignatureAlgorithm=SHA1withDSA
-Encryptor.DigitalSignatureKeyLength=1024
-Encryptor.RandomAlgorithm=SHA1PRNG
-Encryptor.CharacterEncoding=UTF-8
-
-# This is the Pseudo Random Function (PRF) that ESAPI's Key Derivation Function
-# (KDF) normally uses. Note this is *only* the PRF used for ESAPI's KDF and
-# *not* what is used for ESAPI's MAC. (Currently, HmacSHA1 is always used for
-# the MAC, mostly to keep the overall size at a minimum.)
-#
-# Currently supported choices for JDK 1.5 and 1.6 are:
-# HmacSHA1 (160 bits), HmacSHA256 (256 bits), HmacSHA384 (384 bits), and
-# HmacSHA512 (512 bits).
-# Note that HmacMD5 is *not* supported for the PRF used by the KDF even though
-# the JDKs support it. See the ESAPI 2.0 Symmetric Encryption User Guide
-# further details.
-Encryptor.KDF.PRF=HmacSHA256
-#===========================================================================
-# ESAPI Logging
-# Set the application name if these logs are combined with other applications
-Logger.ApplicationName=portal_ric_dashboard
-# If you use an HTML log viewer that does not properly HTML escape log data, you can set LogEncodingRequired to true
-Logger.LogEncodingRequired=false
-# Determines whether ESAPI should log the application name. This might be clutter in some single-server/single-app environments.
-Logger.LogApplicationName=true
-# Determines whether ESAPI should log the server IP and port. This might be clutter in some single-server environments.
-Logger.LogServerIP=true
-# LogFileName, the name of the logging file. Provide a full directory path (e.g., C:\\ESAPI\\ESAPI_logging_file) if you
-# want to place it in a specific directory.
-Logger.LogFileName=portal_ric_dashboard_esapi_log
-# MaxLogFileSize, the max size (in bytes) of a single log file before it cuts over to a new one (default is 10,000,000)
-Logger.MaxLogFileSize=10000000
-
-
-#===========================================================================
-# ESAPI Intrusion Detection
-#
-# Each event has a base to which .count, .interval, and .action are added
-# The IntrusionException will fire if we receive "count" events within "interval" seconds
-# The IntrusionDetector is configurable to take the following actions: log, logout, and disable
-# (multiple actions separated by commas are allowed e.g. event.test.actions=log,disable
-#
-# Custom Events
-# Names must start with "event." as the base
-# Use IntrusionDetector.addEvent( "test" ) in your code to trigger "event.test" here
-# You can also disable intrusion detection completely by changing
-# the following parameter to true
-#
-IntrusionDetector.Disable=false
-#
-IntrusionDetector.event.test.count=2
-IntrusionDetector.event.test.interval=10
-IntrusionDetector.event.test.actions=disable,log
-
-# Exception Events
-# All EnterpriseSecurityExceptions are registered automatically
-# Call IntrusionDetector.getInstance().addException(e) for Exceptions that do not extend EnterpriseSecurityException
-# Use the fully qualified classname of the exception as the base
-
-# any intrusion is an attack
-IntrusionDetector.org.owasp.esapi.errors.IntrusionException.count=1
-IntrusionDetector.org.owasp.esapi.errors.IntrusionException.interval=1
-IntrusionDetector.org.owasp.esapi.errors.IntrusionException.actions=log,disable,logout
-
-# for test purposes
-# CHECKME: Shouldn't there be something in the property name itself that designates
-# that these are for testing???
-IntrusionDetector.org.owasp.esapi.errors.IntegrityException.count=10
-IntrusionDetector.org.owasp.esapi.errors.IntegrityException.interval=5
-IntrusionDetector.org.owasp.esapi.errors.IntegrityException.actions=log,disable,logout
-
-# rapid validation errors indicate scans or attacks in progress
-# org.owasp.esapi.errors.ValidationException.count=10
-# org.owasp.esapi.errors.ValidationException.interval=10
-# org.owasp.esapi.errors.ValidationException.actions=log,logout
-
-# sessions jumping between hosts indicates session hijacking
-IntrusionDetector.org.owasp.esapi.errors.AuthenticationHostException.count=2
-IntrusionDetector.org.owasp.esapi.errors.AuthenticationHostException.interval=10
-IntrusionDetector.org.owasp.esapi.errors.AuthenticationHostException.actions=log,logout
-
-
-#===========================================================================
-# ESAPI Validation
-#
-# The ESAPI Validator works on regular expressions with defined names. You can define names
-# either here, or you may define application specific patterns in a separate file defined below.
-# This allows enterprises to specify both organizational standards as well as application specific
-# validation rules.
-#
-Validator.ConfigurationFile=validation.properties
-Validator.ConfigurationFile.MultiValued=false
-
-# Validators used by ESAPI
-Validator.AccountName=^[a-zA-Z0-9]{3,20}$
-Validator.SystemCommand=^[a-zA-Z\\-\\/]{1,64}$
-Validator.RoleName=^[a-z]{1,20}$
-
-#the word TEST below should be changed to your application
-#name - only relative URL's are supported
-Validator.Redirect=^\\/test.*$
-
-# Global HTTP Validation Rules
-# Values with Base64 encoded data (e.g. encrypted state) will need at least [a-zA-Z0-9\/+=]
-Validator.HTTPScheme=^(http|https)$
-Validator.HTTPServerName=^[a-zA-Z0-9_.\\-]*$
-Validator.HTTPParameterName=^[a-zA-Z0-9_]{1,32}$
-Validator.HTTPParameterValue=^[a-zA-Z0-9.\\-\\/+=@_ ]*$
-Validator.HTTPCookieName=^[a-zA-Z0-9\\-_]{1,32}$
-Validator.HTTPCookieValue=^[a-zA-Z0-9\\-\\/+=_ ]*$
-Validator.HTTPHeaderName=^[a-zA-Z0-9\\-_]{1,32}$
-Validator.HTTPHeaderValue=^[a-zA-Z0-9()\\-=\\*\\.\\?;,+\\/:&_ ]*$
-Validator.HTTPContextPath=^\\/?[a-zA-Z0-9.\\-\\/_]*$
-Validator.HTTPServletPath=^[a-zA-Z0-9.\\-\\/_]*$
-Validator.HTTPPath=^[a-zA-Z0-9.\\-_]*$
-Validator.HTTPQueryString=^[a-zA-Z0-9()\\-=\\*\\.\\?;,+\\/:&_ %]*$
-Validator.HTTPURI=^[a-zA-Z0-9()\\-=\\*\\.\\?;,+\\/:&_ ]*$
-Validator.HTTPURL=^.*$
-Validator.HTTPJSESSIONID=^[A-Z0-9]{10,30}$
-
-# Validation of file related input
-Validator.FileName=^[a-zA-Z0-9!@#$%^&{}\\[\\]()_+\\-=,.~'` ]{1,255}$
-Validator.DirectoryName=^[a-zA-Z0-9:/\\\\!@#$%^&{}\\[\\]()_+\\-=,.~'` ]{1,255}$
diff --git a/dashboard/webapp-backend/src/main/resources/application.properties b/dashboard/webapp-backend/src/main/resources/application.properties
deleted file mode 100644
index cfb1f8cd..00000000
--- a/dashboard/webapp-backend/src/main/resources/application.properties
+++ /dev/null
@@ -1,63 +0,0 @@
-# ========================LICENSE_START=================================
-# O-RAN-SC
-# %%
-# Copyright (C) 2019 AT&T Intellectual Property
-# Modifications Copyright (C) 2019 Nordix Foundation
-# %%
-# 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===================================
-
-# Defines NonRT RIC Dashboard property keys and default values.
-# Create a copy in the launch directory to override values; or
-# copy to "application-abc.properties" as mentioned in the README.
-
-# A spring property but without a "spring" prefix;
-# the port number is chosen RANDOMLY when running tests
-server.port = 8080
-
-# path to file that stores user details;
-# use a persistent volume in a K8S deployment
-userfile = users.json
-
-# boolean flag whether to enforce Portal user and roles on requests
-portalapi.security = false
-# class that decrypts ciphertext from Portal
-portalapi.decryptor = org.oransc.ric.portal.dashboard.portalapi.PortalSdkDecryptorAes
-# name of request cookie with user ID
-portalapi.usercookie = UserId
-
-# portal credentials must be supplied at deployment time
-portalapi.appname = RIC Dashboard
-portalapi.username =
-portalapi.password =
-
-# endpoint URLs must be supplied at deployment time
-# NOTE: change policycontroller.url.prefix to http://localhost:8081 when running
-# dashboard locally (i.e., not inside the docker container)
-policycontroller.url.prefix = http://policy-agent-container:8081
-
-
-# Kubernetes API via https://github.com/nokia/caas-ingress
-# Set insecure=true to disable SSL certificate and hostname checking
-caasingress.insecure = true
-caasingress.aux.url.prefix = https://jar-app-props-default-caas-ingress-aux-URL
-caasingress.aux.url.suffix = /api
-caasingress.plt.url.prefix = https://jar-app-props-default-caas-ingress-plt-URL
-caasingress.plt.url.suffix = /api
-
-# Mimic slow endpoints by defining sleep period, in milliseconds
-mock.config.delay = 0
-
-# Kibana report on metrics
-metrics.url.ac = http://jar-app-props-kibana-url-ac
-metrics.url.mc = http://jar-app-props-kibana-url-mc
diff --git a/dashboard/webapp-backend/src/main/resources/key.properties b/dashboard/webapp-backend/src/main/resources/key.properties
deleted file mode 100644
index 85a56895..00000000
--- a/dashboard/webapp-backend/src/main/resources/key.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-# ========================LICENSE_START=================================
-# O-RAN-SC
-# %%
-# Copyright (C) 2019 AT&T Intellectual Property
-# %%
-# 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===================================
-
-# Test properties for the EPSDK-FW library.
-# This file must be present on the Java classpath.
-
-cipher.enc.key = bogus
diff --git a/dashboard/webapp-backend/src/main/resources/logback.xml b/dashboard/webapp-backend/src/main/resources/logback.xml
deleted file mode 100644
index 213d105a..00000000
--- a/dashboard/webapp-backend/src/main/resources/logback.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${pattern}
-
-
-
-
- ${logDirectory}/${componentName}.log
- true
-
- ${logDirectory}/${componentName}.%i.log.zip
- 1
- 9
-
-
- 10MB
-
-
-
- ${pattern}
-
-
-
-
-
-
-
-
-
- >
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dashboard/webapp-backend/src/main/resources/portal.properties b/dashboard/webapp-backend/src/main/resources/portal.properties
deleted file mode 100644
index 8c7fec79..00000000
--- a/dashboard/webapp-backend/src/main/resources/portal.properties
+++ /dev/null
@@ -1,34 +0,0 @@
-# ========================LICENSE_START=================================
-# O-RAN-SC
-# %%
-# Copyright (C) 2019 AT&T Intellectual Property
-# %%
-# 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===================================
-
-# Template for the file that provides properties for the EPSDK-FW library.
-# This file must be present on the Java classpath.
-
-# The following properties are the same in every deployment
-
-portal.api.impl.class = org.oransc.ric.portal.dashboard.portalapi.PortalRestCentralServiceImpl
-role_access_centralized = remote
-
-# The following properties are DIFFERENT in every deployment
-
-# URL of portal login screen
-ecomp_redirect_url = http://localhost/portal
-# URL of portal API
-ecomp_rest_url = http://localhost/portal
-# Value assigned by portal instance
-ueb_app_key = abcdef1234567890
diff --git a/dashboard/webapp-backend/src/main/resources/static/error.html b/dashboard/webapp-backend/src/main/resources/static/error.html
deleted file mode 100644
index 1b7633f6..00000000
--- a/dashboard/webapp-backend/src/main/resources/static/error.html
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
-
-Static error page
-
-
-
-
Non RT RIC Dashboard Error
-
The previous request could not be processed.
-Click here to reload the application
-
-
diff --git a/dashboard/webapp-backend/src/main/resources/validation.properties b/dashboard/webapp-backend/src/main/resources/validation.properties
deleted file mode 100644
index c7a5c795..00000000
--- a/dashboard/webapp-backend/src/main/resources/validation.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-# ========================LICENSE_START=================================
-# O-RAN-SC
-# %%
-# Copyright (C) 2019 AT&T Intellectual Property
-# %%
-# 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===================================
-
-# empty file to suppress OWASP complaints emitted to stdout
diff --git a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/DashboardTestServer.java b/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/DashboardTestServer.java
deleted file mode 100644
index 80a272f3..00000000
--- a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/DashboardTestServer.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2020 Nordix Foundation
- * %%
- * 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.oransc.ric.portal.dashboard;
-
-import java.lang.invoke.MethodHandles;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-/**
- * This class supports front-end web development. Placing this class in the test
- * area allows excluding the mock configuration classes and the Mockito
- * dependencies from the packaged version of the app.
- *
- * To launch a development server set the environment variable as listed below.
- * This runs a Spring-Boot server with mock back-end beans, and keeps the server
- * alive for manual testing. Supply this JVM argument:
- *
- *
- Copyright (C) 2019 AT&T Intellectual Property. Licensed under the Apache License, Version 2.0.
-
- Modifications Copyright (C) 2019 Nordix Foundation
-
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/app/footer/footer.component.scss b/dashboard/webapp-frontend/src/app/footer/footer.component.scss
deleted file mode 100644
index fb87ba5f..00000000
--- a/dashboard/webapp-frontend/src/app/footer/footer.component.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-.copyright__text {
- color: gray;
- letter-spacing: 0.1rem;
- font-size: 10px;
- margin-left: 10px;
-}
-
-.copyright__text-dark {
- color: gray;
-}
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/app/footer/footer.component.spec.ts b/dashboard/webapp-frontend/src/app/footer/footer.component.spec.ts
deleted file mode 100644
index 6f802973..00000000
--- a/dashboard/webapp-frontend/src/app/footer/footer.component.spec.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { FooterComponent } from './footer.component';
-
-describe('FooterComponent', () => {
- let component: FooterComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ FooterComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(FooterComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/footer/footer.component.ts b/dashboard/webapp-frontend/src/app/footer/footer.component.ts
deleted file mode 100644
index b776c9be..00000000
--- a/dashboard/webapp-frontend/src/app/footer/footer.component.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-import { Component, OnInit } from '@angular/core';
-import { DashboardSuccessTransport } from '../interfaces/dashboard.types';
-import { DashboardService } from '../services/dashboard/dashboard.service';
-import { UiService } from '../services/ui/ui.service';
-
-@Component({
- selector: 'rd-footer',
- templateUrl: './footer.component.html',
- styleUrls: ['./footer.component.scss']
-})
-
-/**
- * Fetches the version on load for display in the footer
- */
-export class FooterComponent implements OnInit {
- darkMode: boolean;
- dashboardVersion: string;
-
- // Inject the service
- constructor(private dashboardService: DashboardService,
- private ui: UiService) { }
-
- ngOnInit() {
- this.dashboardVersion = '0.0';
- // this.dashboardService.getVersion().subscribe((res: DashboardSuccessTransport) => this.dashboardVersion = res.data);
- this.ui.darkModeState.subscribe((isDark) => {
- this.darkMode = isDark;
- });
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/interfaces/ac-xapp.types.ts b/dashboard/webapp-frontend/src/app/interfaces/ac-xapp.types.ts
deleted file mode 100644
index 125f72f5..00000000
--- a/dashboard/webapp-frontend/src/app/interfaces/ac-xapp.types.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-// Models of data used by the AC xApp
-
-export interface ACAdmissionIntervalControl {
- enforce: boolean;
- window_length: number;
- blocking_rate: number;
- trigger_threshold: number;
-}
-
-export interface ACAdmissionIntervalControlAck {
- status: string;
- message: string;
-}
diff --git a/dashboard/webapp-frontend/src/app/interfaces/anr-xapp.types.ts b/dashboard/webapp-frontend/src/app/interfaces/anr-xapp.types.ts
deleted file mode 100644
index 6b7db25d..00000000
--- a/dashboard/webapp-frontend/src/app/interfaces/anr-xapp.types.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-// Models of data used by the ANR xApp
-
-export interface ANRGgNodeBTable {
- gNodeBIds: Array;
-}
-
-export interface ANRNeighborCellRelationTable {
- ncrtRelations: Array;
-}
-
-export interface ANRNeighborCellRelation {
- servingCellNrcgi: string;
- neighborCellNrpci: string;
- neighborCellNrcgi: string;
- flagNoHo: boolean;
- flagNoXn: boolean;
- flagNoRemove: boolean;
-}
-
-export interface ANRNeighborCellRelationMod {
- servingCellNrcgi: string;
- neighborCellNrpci: string;
- neighborCellNrcgi: string;
- flagNoHo: boolean;
- flagNoXn: boolean;
- flagNoRemove: boolean;
-}
diff --git a/dashboard/webapp-frontend/src/app/interfaces/app-mgr.types.ts b/dashboard/webapp-frontend/src/app/interfaces/app-mgr.types.ts
deleted file mode 100644
index 064967cb..00000000
--- a/dashboard/webapp-frontend/src/app/interfaces/app-mgr.types.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-// Models of data used by the App Manager
-
-export interface XMSubscription {
- eventType: string;
- id: string;
- maxRetries: number;
- retryTimer: number;
- targetUrl: string;
-}
-
-/**
- * Name is the only required field
- */
-export interface XMXappInfo {
- name: string;
- configName?: string;
- namespace?: string;
- serviceName?: string;
- imageRepo?: string;
- hostname?: string;
-}
-
-export interface XMXappInstance {
- ip: string;
- name: string;
- port: number;
- status: string;
- rxMessages: Array;
- txMessages: Array;
-}
-
-export interface XMDeployableApp {
- name: string;
- version: string;
-}
-
-export interface XMDeployedApp {
- name: string;
- status: string;
- version: string;
- instances: Array;
-}
-
-export interface XappControlRow {
- xapp: string;
- instance: XMXappInstance;
-}
diff --git a/dashboard/webapp-frontend/src/app/interfaces/dashboard.types.ts b/dashboard/webapp-frontend/src/app/interfaces/dashboard.types.ts
deleted file mode 100644
index 90dfd150..00000000
--- a/dashboard/webapp-frontend/src/app/interfaces/dashboard.types.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-// Models of data used by Dashboard admin services
-
-export interface DashboardSuccessTransport {
- status: number;
- data: string;
-}
-
-export interface EcompRoleFunction {
- name: string;
- code: string;
- type: string;
- action: string;
-}
-
-export interface EcompRole {
- id: number;
- name: string;
- [position: number]: EcompRoleFunction;
-}
-
-export interface EcompUser {
- orgId?: number;
- managerId?: string;
- firstName?: string;
- middleInitial?: string;
- lastName?: string;
- phone?: string;
- email?: string;
- hrid?: string;
- orgUserId?: string;
- orgCode?: string;
- orgManagerUserId?: string;
- jobTitle?: string;
- loginId: string;
- active: boolean;
- [position: number]: EcompRole;
-}
diff --git a/dashboard/webapp-frontend/src/app/interfaces/e2-mgr.types.ts b/dashboard/webapp-frontend/src/app/interfaces/e2-mgr.types.ts
deleted file mode 100644
index f303c14e..00000000
--- a/dashboard/webapp-frontend/src/app/interfaces/e2-mgr.types.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-// Models of data used by the E2 Manager
-
-export interface E2SetupRequest {
- ranName: string;
- ranIp: string;
- ranPort: string;
-}
-
-export interface E2ErrorResponse {
- errorCode: string;
- errorMessage: string;
-}
-
-export interface E2NodebIdentityGlobalNbId {
- nbId: string;
- plmnId: string;
-}
-
-export interface E2NodebIdentity {
- inventoryName: string;
- globalNbId: E2NodebIdentityGlobalNbId;
-}
-
-export interface E2GetNodebResponse {
- connectionStatus: string; // actually one-of, but model as string
- enb: object; // don't model this until needed
- failureType: string; // actually one-of, but model as string
- gnb: object; // don't model this until needed
- ip: string;
- nodeType: string; // actually one-of, but model as string
- port: number; // actually integer
- ranName: string;
- setupFailure: object; // don't model this until needed
-}
-
-export interface E2RanDetails {
- nodebIdentity: E2NodebIdentity;
- nodebStatus: E2GetNodebResponse;
-}
-
-export interface RanDialogFormData {
- ranIp: string;
- ranName: string;
- ranPort: string;
- ranType: string;
-}
diff --git a/dashboard/webapp-frontend/src/app/interfaces/policy.types.ts b/dashboard/webapp-frontend/src/app/interfaces/policy.types.ts
deleted file mode 100644
index b6ecce62..00000000
--- a/dashboard/webapp-frontend/src/app/interfaces/policy.types.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-
-// Models of data used by the Policy Control
-
-export interface PolicyType {
- name: string;
- schema: string;
- schemaObject: any;
-}
-
-export interface PolicyInstance {
- id: string;
- json: string;
- ric: string;
- service: string;
- lastModified: string;
-}
-
-export interface PolicyInstanceAck {
- status: string;
- message: string;
-}
diff --git a/dashboard/webapp-frontend/src/app/main/main.component.html b/dashboard/webapp-frontend/src/app/main/main.component.html
deleted file mode 100644
index f05fd503..00000000
--- a/dashboard/webapp-frontend/src/app/main/main.component.html
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
diff --git a/dashboard/webapp-frontend/src/app/main/main.component.scss b/dashboard/webapp-frontend/src/app/main/main.component.scss
deleted file mode 100644
index aeb3b5d9..00000000
--- a/dashboard/webapp-frontend/src/app/main/main.component.scss
+++ /dev/null
@@ -1,27 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-.main__container {
- display: grid;
- grid-template-columns: repeat(3, 1fr);
- grid-template-rows: repeat(auto-fill, 1fr);
- align-items: center;
- justify-items: center;
- height: 100%;
-}
diff --git a/dashboard/webapp-frontend/src/app/main/main.component.spec.ts b/dashboard/webapp-frontend/src/app/main/main.component.spec.ts
deleted file mode 100644
index 47f86b48..00000000
--- a/dashboard/webapp-frontend/src/app/main/main.component.spec.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { MainComponent } from './main.component';
-
-describe('MainComponent', () => {
- let component: MainComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ MainComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(MainComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/main/main.component.ts b/dashboard/webapp-frontend/src/app/main/main.component.ts
deleted file mode 100644
index 8967a429..00000000
--- a/dashboard/webapp-frontend/src/app/main/main.component.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { Component, OnInit } from '@angular/core';
-
-@Component({
- selector: 'rd-main',
- templateUrl: './main.component.html',
- styleUrls: ['./main.component.scss']
-})
-export class MainComponent implements OnInit {
-
- constructor() { }
-
- ngOnInit() { }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/navigation/sidenav-list/sidenav-list.component.html b/dashboard/webapp-frontend/src/app/navigation/sidenav-list/sidenav-list.component.html
deleted file mode 100644
index 9dea90a4..00000000
--- a/dashboard/webapp-frontend/src/app/navigation/sidenav-list/sidenav-list.component.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- homeHome
-
-
- assignmentPolicy
-
-
diff --git a/dashboard/webapp-frontend/src/app/navigation/sidenav-list/sidenav-list.component.scss b/dashboard/webapp-frontend/src/app/navigation/sidenav-list/sidenav-list.component.scss
deleted file mode 100644
index 72c724e9..00000000
--- a/dashboard/webapp-frontend/src/app/navigation/sidenav-list/sidenav-list.component.scss
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-a {
- text-decoration: none;
- color: black;
-}
-
-.dark a {
- color: white;
-}
-
-a:hover, a:active{
- color: lightgray;
-}
-
-.nav-caption{
- display: inline-block;
- padding-left: 6px;
-}
diff --git a/dashboard/webapp-frontend/src/app/navigation/sidenav-list/sidenav-list.component.ts b/dashboard/webapp-frontend/src/app/navigation/sidenav-list/sidenav-list.component.ts
deleted file mode 100644
index 80c3cd8e..00000000
--- a/dashboard/webapp-frontend/src/app/navigation/sidenav-list/sidenav-list.component.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { Component, OnInit, Output, EventEmitter } from '@angular/core';
-import { UiService } from '../../services/ui/ui.service';
-
-@Component({
- selector: 'rd-sidenav-list',
- templateUrl: './sidenav-list.component.html',
- styleUrls: ['./sidenav-list.component.scss']
-})
-export class SidenavListComponent implements OnInit {
- darkMode: boolean;
- @Output() sidenavClose = new EventEmitter();
-
- constructor(private ui: UiService) { }
-
- ngOnInit() {
- this.ui.darkModeState.subscribe((isDark) => {
- this.darkMode = isDark;
- });
- }
-
- public onSidenavClose = () => {
- this.sidenavClose.emit();
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/policy-control/policy-control.component.html b/dashboard/webapp-frontend/src/app/policy-control/policy-control.component.html
deleted file mode 100644
index f1852070..00000000
--- a/dashboard/webapp-frontend/src/app/policy-control/policy-control.component.html
+++ /dev/null
@@ -1,80 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/app/policy-control/policy-instance.component.scss b/dashboard/webapp-frontend/src/app/policy-control/policy-instance.component.scss
deleted file mode 100644
index 6a18c342..00000000
--- a/dashboard/webapp-frontend/src/app/policy-control/policy-instance.component.scss
+++ /dev/null
@@ -1,52 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-
-.instances-table {
- width: 90%;
- min-width: 1200px;
- margin-top: 10px;
- margin-bottom: 10px;
- background-color: grayscale($color: #eeeaea);
-}
-
-.mat-column-instanceId {
- word-wrap: break-word;
- white-space: unset;
- flex: 0 0 28%;
- width: 28%;
-}
-
-
-.table-dark {
- background-color: #2d2d3d;
-}
-
-.action-cell {
- display: flex;
- justify-content: flex-end;
-}
-
-.display-none {
- display: none;
-}
-
-.spinner-container mat-spinner {
- margin: 0 auto 0 auto;
-}
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/app/policy-control/policy-instance.component.ts b/dashboard/webapp-frontend/src/app/policy-control/policy-instance.component.ts
deleted file mode 100644
index ecf6f36c..00000000
--- a/dashboard/webapp-frontend/src/app/policy-control/policy-instance.component.ts
+++ /dev/null
@@ -1,129 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-
-import { MatSort } from '@angular/material';
-import { Component, OnInit, ViewChild, Input, AfterViewInit } from '@angular/core';
-import { MatDialog } from '@angular/material/dialog';
-import { PolicyType } from '../interfaces/policy.types';
-import { PolicyInstanceDataSource } from './policy-instance.datasource';
-import { ErrorDialogService } from '../services/ui/error-dialog.service';
-import { NotificationService } from '../services/ui/notification.service';
-import { PolicyService } from '../services/policy/policy.service';
-import { ConfirmDialogService } from './../services/ui/confirm-dialog.service';
-import { PolicyInstance } from '../interfaces/policy.types';
-import { PolicyInstanceDialogComponent } from './policy-instance-dialog.component';
-import { getPolicyDialogProperties } from './policy-instance-dialog.component';
-import { HttpErrorResponse, HttpResponse } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { UiService } from '../services/ui/ui.service';
-
-@Component({
- selector: 'rd-policy-instance',
- templateUrl: './policy-instance.component.html',
- styleUrls: ['./policy-instance.component.scss']
-})
-
-
-export class PolicyInstanceComponent implements OnInit, AfterViewInit {
- instanceDataSource: PolicyInstanceDataSource;
- @Input() policyType: PolicyType;
- @Input() expanded: Observable;
- @ViewChild(MatSort, { static: true }) sort: MatSort;
- darkMode: boolean;
-
- constructor(
- private policySvc: PolicyService,
- private dialog: MatDialog,
- private errorDialogService: ErrorDialogService,
- private notificationService: NotificationService,
- private confirmDialogService: ConfirmDialogService,
- private ui: UiService) {
- }
-
- ngOnInit() {
- this.instanceDataSource = new PolicyInstanceDataSource(this.policySvc, this.sort, this.notificationService, this.policyType);
- this.expanded.subscribe((isExpanded: boolean) => this.onExpand(isExpanded));
- this.ui.darkModeState.subscribe((isDark) => {
- this.darkMode = isDark;
- });
- }
-
- ngAfterViewInit() {
- this.instanceDataSource.sort = this.sort;
- }
-
- private onExpand(isExpanded: boolean) {
- if (isExpanded) {
- this.instanceDataSource.loadTable();
- }
- }
-
- modifyInstance(instance: PolicyInstance): void {
- this.policySvc.getPolicy(this.policyType.name, instance.id).subscribe(
- (refreshedJson: any) => {
- instance.json = JSON.stringify(refreshedJson);
- this.dialog.open(PolicyInstanceDialogComponent, getPolicyDialogProperties(this.policyType, instance, this.darkMode));
- },
- (httpError: HttpErrorResponse) => {
- this.notificationService.error('Could not refresh instance ' + httpError.message);
- this.dialog.open(PolicyInstanceDialogComponent, getPolicyDialogProperties(this.policyType, instance, this.darkMode));
- }
- );
- }
-
- hasInstances(): boolean {
- return this.instanceDataSource.rowCount > 0;
- }
-
- toLocalTime(utcTime: string): string {
- const date = new Date(utcTime);
- const toutc = date.toUTCString();
- return new Date(toutc + " UTC").toLocaleString();
-
- }
-
- deleteInstance(instance: PolicyInstance): void {
- this.confirmDialogService
- .openConfirmDialog('Are you sure you want to delete this policy instance?')
- .afterClosed().subscribe(
- (res: any) => {
- if (res) {
- this.policySvc.deletePolicy(this.policyType.name, instance.id)
- .subscribe(
- (response: HttpResponse) => {
- switch (response.status) {
- case 200:
- this.notificationService.success('Delete succeeded!');
- this.instanceDataSource.loadTable();
- break;
- default:
- this.notificationService.warn('Delete failed.');
- }
- },
- (error: HttpErrorResponse) => {
- this.errorDialogService.displayError(error.message);
- });
- }
- });
- }
-
-
-
-}
diff --git a/dashboard/webapp-frontend/src/app/policy-control/policy-instance.datasource.ts b/dashboard/webapp-frontend/src/app/policy-control/policy-instance.datasource.ts
deleted file mode 100644
index b82ee753..00000000
--- a/dashboard/webapp-frontend/src/app/policy-control/policy-instance.datasource.ts
+++ /dev/null
@@ -1,103 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-
-import { DataSource } from '@angular/cdk/collections';
-import { HttpErrorResponse } from '@angular/common/http';
-import { MatSort } from '@angular/material';
-import { Observable } from 'rxjs/Observable';
-import { BehaviorSubject } from 'rxjs/BehaviorSubject';
-import { merge } from 'rxjs';
-import { of } from 'rxjs/observable/of';
-import { catchError, finalize, map } from 'rxjs/operators';
-import { PolicyInstance } from '../interfaces/policy.types';
-import { PolicyService } from '../services/policy/policy.service';
-import { NotificationService } from '../services/ui/notification.service';
-import { PolicyType } from '../interfaces/policy.types';
-
-export class PolicyInstanceDataSource extends DataSource {
-
- private policyInstanceSubject = new BehaviorSubject([]);
-
- private loadingSubject = new BehaviorSubject(false);
-
- public loading$ = this.loadingSubject.asObservable();
-
- public rowCount = 1; // hide footer during intial load
-
- constructor(
- private policySvc: PolicyService,
- public sort: MatSort,
- private notificationService: NotificationService,
- private policyType: PolicyType) {
- super();
- }
-
- loadTable() {
- this.loadingSubject.next(true);
- this.policySvc.getPolicyInstances(this.policyType.name)
- .pipe(
- catchError((her: HttpErrorResponse) => {
- this.notificationService.error('Failed to get policy instances: ' + her.message);
- return of([]);
- }),
- finalize(() => this.loadingSubject.next(false))
- )
- .subscribe((instances: PolicyInstance[]) => {
- this.rowCount = instances.length;
- this.policyInstanceSubject.next(instances);
- });
- }
-
- connect(): Observable {
- const dataMutations = [
- this.policyInstanceSubject.asObservable(),
- this.sort.sortChange
- ];
- return merge(...dataMutations).pipe(map(() => {
- return this.getSortedData([...this.policyInstanceSubject.getValue()]);
- }));
- }
-
- disconnect(): void {
- this.policyInstanceSubject.complete();
- this.loadingSubject.complete();
- }
-
- private getSortedData(data: PolicyInstance[]) {
- if (!this.sort || !this.sort.active || this.sort.direction === '') {
- return data;
- }
-
- return data.sort((a, b) => {
- const isAsc = this.sort.direction === 'asc';
- switch (this.sort.active) {
- case 'instanceId': return compare(a.id, b.id, isAsc);
- case 'ric': return compare(a.ric, b.ric, isAsc);
- case 'service': return compare(a.service, b.service, isAsc);
- case 'lastModified': return compare(a.lastModified, b.lastModified, isAsc)
- default: return 0;
- }
- });
- }
-}
-
-function compare(a: string, b: string, isAsc: boolean) {
- return (a < b ? -1 : 1) * (isAsc ? 1 : -1);
-}
diff --git a/dashboard/webapp-frontend/src/app/policy-control/policy-type.datasource.ts b/dashboard/webapp-frontend/src/app/policy-control/policy-type.datasource.ts
deleted file mode 100644
index 97d792e8..00000000
--- a/dashboard/webapp-frontend/src/app/policy-control/policy-type.datasource.ts
+++ /dev/null
@@ -1,106 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-
-import { CollectionViewer, DataSource } from '@angular/cdk/collections';
-import { HttpErrorResponse } from '@angular/common/http';
-import { MatSort } from '@angular/material';
-import { Observable } from 'rxjs/Observable';
-import { BehaviorSubject } from 'rxjs/BehaviorSubject';
-import { merge } from 'rxjs';
-import { of } from 'rxjs/observable/of';
-import { catchError, finalize, map } from 'rxjs/operators';
-import { PolicyType } from '../interfaces/policy.types';
-import { PolicyService } from '../services/policy/policy.service';
-import { NotificationService } from '../services/ui/notification.service';
-
-export class PolicyTypeDataSource extends DataSource {
-
- private policyTypeSubject = new BehaviorSubject([]);
-
- private loadingSubject = new BehaviorSubject(false);
-
- public loading$ = this.loadingSubject.asObservable();
-
- public rowCount = 1; // hide footer during intial load
-
- constructor(private policySvc: PolicyService,
- private sort: MatSort,
- private notificationService: NotificationService) {
- super();
- }
-
- loadTable() {
- this.loadingSubject.next(true);
- this.policySvc.getPolicyTypes()
- .pipe(
- catchError((her: HttpErrorResponse) => {
- this.notificationService.error('Failed to get policy types: ' + her.message);
- return of([]);
- }),
- finalize(() => this.loadingSubject.next(false))
- )
- .subscribe((types: PolicyType[]) => {
- this.rowCount = types.length;
- for (let i = 0; i < types.length; i++) {
- const policyType = types[i];
- try {
- policyType.schemaObject = JSON.parse(policyType.schema);
- } catch (jsonError) {
- console.error('Could not parse schema: ' + policyType.schema);
- policyType.schemaObject = { description: 'Incorrect schema: ' + jsonError };
- }
- }
- this.policyTypeSubject.next(types);
- });
- }
-
- connect(collectionViewer: CollectionViewer): Observable {
- const dataMutations = [
- this.policyTypeSubject.asObservable(),
- this.sort.sortChange
- ];
- return merge(...dataMutations).pipe(map(() => {
- return this.getSortedData([...this.policyTypeSubject.getValue()]);
- }));
- }
-
- disconnect(collectionViewer: CollectionViewer): void {
- this.policyTypeSubject.complete();
- this.loadingSubject.complete();
- }
-
- private getSortedData(data: PolicyType[]) {
- if (!this.sort.active || this.sort.direction === '') {
- return data;
- }
-
- return data.sort((a, b) => {
- const isAsc = this.sort.direction === 'asc';
- switch (this.sort.active) {
- case 'name': return compare(a.name, b.name, isAsc);
- default: return 0;
- }
- });
- }
-}
-
-function compare(a: any, b: any, isAsc: boolean) {
- return (a < b ? -1 : 1) * (isAsc ? 1 : -1);
-}
diff --git a/dashboard/webapp-frontend/src/app/rd-routing.module.ts b/dashboard/webapp-frontend/src/app/rd-routing.module.ts
deleted file mode 100644
index 57b9d57c..00000000
--- a/dashboard/webapp-frontend/src/app/rd-routing.module.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { Routes, RouterModule } from '@angular/router';
-import { MainComponent } from './main/main.component';
-import { PolicyControlComponent } from './policy-control/policy-control.component';
-
-
-const routes: Routes = [
- { path: '', component: MainComponent },
- { path: 'policy', component: PolicyControlComponent }
-];
-
-@NgModule({
- imports: [
- CommonModule,
- RouterModule.forRoot(routes)],
- exports: [
- RouterModule
- ],
- declarations: []
-})
-
-export class RdRoutingModule { }
diff --git a/dashboard/webapp-frontend/src/app/rd.component.html b/dashboard/webapp-frontend/src/app/rd.component.html
deleted file mode 100644
index 1c2c3c79..00000000
--- a/dashboard/webapp-frontend/src/app/rd.component.html
+++ /dev/null
@@ -1,117 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Demo
- demo@o-ran-sc.org
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Light
-
- Dark
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/app/rd.component.scss b/dashboard/webapp-frontend/src/app/rd.component.scss
deleted file mode 100644
index ddefe090..00000000
--- a/dashboard/webapp-frontend/src/app/rd.component.scss
+++ /dev/null
@@ -1,379 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-.root__container {
- width: 100vw;
- height: 100vh;
- display: grid;
- grid-template-columns: auto;
- grid-template-rows: 0.5fr auto;
- position: relative;
-}
-
-/*
-================
- Header
-================
-*/
-mat-sidenav-container,
-mat-sidenav-content,
-mat-sidenav {
- height: 100%;
-}
-
-mat-sidenav {
- width: 250px;
-}
-
-main {
- padding: 10px;
-}
-
-/*
- Slide Menu
-= = = = = = = = =
-*/
-.side-menu__dark {
- color: white;
- background: gray;
-}
-
-.side-menu__container {
- position: fixed;
- left: 0;
- top: 0;
- width: 100%;
- height: 100%;
- overflow: hidden;
- pointer-events: none;
- z-index: 25;
-}
-
-.side-menu__container-active {
- pointer-events: auto;
-}
-
-.side-menu__container::before {
- content: '';
- cursor: pointer;
- position: absolute;
- display: block;
- top: 0;
- left: 0;
- height: 100%;
- width: 100%;
- background-color: #0c1066;
- opacity: 0;
- transition: opacity 300ms linear;
- will-change: opacity;
-}
-
-.side-menu__container-active::before {
- opacity: 0.3;
-}
-
-.slide-menu {
- box-sizing: border-box;
- transform: translateX(-103%);
- position: relative;
- top: 0;
- left: 0;
- z-index: 10;
- height: 100%;
- width: 90%;
- max-width: 26rem;
- background-color: white;
- box-shadow: 0 0 2rem rgba(0, 0, 255, 0.1);
- display: grid;
- grid-template-columns: 1fr;
- grid-template-rows: 2fr 4fr 1fr;
- grid-gap: 1rem;
- transition: transform 300ms linear;
- will-change: transform;
-}
-
-.slide-menu-active {
- transform: none;
-}
-
-.menu-header.menu-header__dark {
- background: #2B244D;
-}
-
-.menu-header {
- background: linear-gradient(to right, rgb(181, 199, 192), #82bbb6);
- display: grid;
- grid-template-rows: 1fr 4fr;
- grid-template-columns: 1fr 4fr;
- grid-template-areas: "greeting greeting""image details";
- box-sizing: border-box;
- width: 100%;
- align-content: center;
- color: white;
- box-shadow: 0 0.5rem 2rem rgba(0, 0, 255, 0.2);
-}
-
-mat-drawer {
- width: 340px;
-}
-
-mat-drawer-content {
- overflow: overlay;
-}
-
-.menumargin-top {
- margin-top: 10px;
-}
-
-.greeting__text {
- grid-area: greeting;
- font-size: 1.25rem;
- letter-spacing: 0.15rem;
- text-transform: uppercase;
- margin-top: 1rem;
- justify-self: center;
- align-self: center;
-}
-
-.account-details {
- grid-area: details;
- display: flex;
- flex-flow: column;
- margin-left: 1rem;
- align-self: center;
-}
-
-.name__text {
- font-size: 1.15rem;
- margin-bottom: 0.5rem;
-}
-
-.email__text {
- font-size: 0.9rem;
- letter-spacing: 0.1rem;
-}
-
-.menu-body {
- display: grid;
- width: 100%;
-}
-
-.profile-image__container {
- grid-area: image;
- margin-right: 0.5rem;
- border-radius: 50%;
- height: 4rem;
- width: 4rem;
- overflow: hidden;
- display: flex;
- justify-content: center;
- align-items: center;
- background-color: white;
- align-self: center;
- margin-left: 2rem;
-}
-
-.profile__image {
- max-width: 4rem;
-}
-
-.home_bg_image {
- height: 40em;
- background-size: cover;
- width: auto;
- background-image: url('../assets/intelligence.png');
- background-position: 50% 50%;
-}
-
-/*Header*/
-.main__header {
- width: 100%;
- display: grid;
- grid-template-columns: 1fr 1fr 0.25fr;
- grid-template-rows: 1fr;
- box-shadow: 0 0 2rem rgba(0, 0, 255, 0.1);
- height: 4rem;
- margin: 0;
- align-items: center;
- transition: background-color 500ms linear;
- animation: fadein 1s ease-in-out 0ms 1;
-}
-
-.main__header-dark {
- background-color: #2B244D;
- color: white;
-}
-
-.toggle-button__container {
- cursor: pointer;
- position: relative;
- margin: 0 0.5rem;
-}
-
-.mode-toggle__input {
- -webkit-appearance: none;
- -moz-appearance: none;
-}
-
-.mode-toggle__bg {
- height: 1rem;
- width: 2rem;
- border-radius: 0.5rem;
- background-color: rgba(0, 0, 0, 0.5);
- display: inline-block;
- transition: background-color 300ms linear;
-}
-
-.mode-toggle__circle {
- height: 1.30rem;
- width: 1.30rem;
- background-color: #2B244D;
- position: absolute;
- top: -0.2rem;
- border-radius: 50%;
- box-shadow: 0 0 0 rgba(0, 0, 255, 0.5);
- transition: left 300ms linear;
- left: 0.1rem;
-}
-
-.mode-toggle__circle-checked {
- background-color: white;
- left: 1.75rem;
-}
-
-.mode-toggle__bg-checked {
- background-color: #FF0070;
-}
-
-.mode-toggle__text {
- font-size: 0.75rem;
- text-transform: uppercase;
- letter-spacing: 0.1rem;
-}
-
-/*Content*/
-.left__section {
- display: grid;
- grid-template-rows: 1fr;
- grid-template-columns: 1fr 1fr;
- max-width: 5rem;
-}
-
-.left__section3Col {
- display: grid;
- grid-template-rows: 1fr;
- grid-template-columns: 1fr 1fr 1fr;
- max-width: 6rem;
-}
-
-.date__text {
- text-transform: uppercase;
- letter-spacing: 0.1rem;
- display: inline;
- margin: 0.5rem 0;
-}
-
-/*SVGs*/
-.hamburger__icon {
- position: relative;
- z-index: 35;
- height: 2rem;
- padding: 0.5rem 1.5rem;
- margin-right: 1rem;
- cursor: pointer;
-}
-
-.logo__icon {
- height: 2rem;
- margin-left: 1rem;
-}
-
-.logo__text {
- fill: #2B244D;
-}
-
-.logo__text-dark {
- fill: #ffffff;
-}
-
-.hamburger__icon__fill {
- fill: #2B244D;
-}
-
-.hamburger__icon__fill-dark {
- fill: #ffffff;
-}
-
-/*
-================
- Body
-================
-*/
-
-.main__container {
- height: 100%;
- width: 100%;
-}
-
-.main__container__body {
- min-height: calc(100vh - 140px);
-}
-
-.main-container__bg {
- position: absolute;
- top: 0;
- left: 0;
- z-index: -2;
- opacity: 0;
- background: white;
- transition: opacity 300ms linear;
-}
-
-.main-container__bg-dark {
- opacity: 1;
- background: linear-gradient(to bottom, rgb(62, 59, 68), rgb(11, 10, 15));
- transition: opacity 300ms linear;
-}
-
-/*
-================-
- Footer
-================
-*/
-.main__footer {
- background: transparent;
- z-index: 100;
-}
-
-.main__footer-dark {
- background-color: #2B244D;
- color: white;
-}
-
-.main-footer__bg-dark {
- opacity: 1;
- background: rgb(11, 10, 15);
- transition: opacity 300ms linear;
-}
-
-@media only screen and (max-width: 300px) {
- .slide-menu {
- width: 100%;
- }
-}
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/app/rd.component.spec.ts b/dashboard/webapp-frontend/src/app/rd.component.spec.ts
deleted file mode 100644
index 852386c3..00000000
--- a/dashboard/webapp-frontend/src/app/rd.component.spec.ts
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { TestBed, async } from '@angular/core/testing';
-import { RouterTestingModule } from '@angular/router/testing';
-import { AppComponent } from './app.component';
-
-describe('AppComponent', () => {
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- imports: [
- RouterTestingModule
- ],
- declarations: [
- AppComponent
- ],
- }).compileComponents();
- }));
-
- it('should create the app', () => {
- const fixture = TestBed.createComponent(AppComponent);
- const app = fixture.debugElement.componentInstance;
- expect(app).toBeTruthy();
- });
-
- it(`should have as title 'dashApp'`, () => {
- const fixture = TestBed.createComponent(AppComponent);
- const app = fixture.debugElement.componentInstance;
- expect(app.title).toEqual('dashApp');
- });
-
- it('should render title in a h1 tag', () => {
- const fixture = TestBed.createComponent(AppComponent);
- fixture.detectChanges();
- const compiled = fixture.debugElement.nativeElement;
- expect(compiled.querySelector('h1').textContent).toContain('Welcome to dashApp!');
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/rd.component.ts b/dashboard/webapp-frontend/src/app/rd.component.ts
deleted file mode 100644
index a6078a07..00000000
--- a/dashboard/webapp-frontend/src/app/rd.component.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { Component, OnInit } from '@angular/core';
-import { UiService } from './services/ui/ui.service';
-import { CookieService } from 'ngx-cookie';
-
-@Component({
- selector: 'rd-root',
- templateUrl: './rd.component.html',
- styleUrls: ['./rd.component.scss']
-})
-export class RdComponent implements OnInit {
- private showMenu = false;
- private darkMode: boolean;
- private 'DARK_MODE_COOKIE' = 'darkMode';
-
- constructor(private cookieService: CookieService, private ui: UiService) {
- }
-
- ngOnInit() {
- const dark = this.cookieService.get(this.DARK_MODE_COOKIE);
- if (dark) {
- this.ui.darkModeState.next(dark === 'yes');
- }
-
- this.ui.darkModeState.subscribe((value) => {
- this.darkMode = value;
- });
- }
-
- toggleMenu() {
- this.showMenu = !this.showMenu;
- }
-
- modeToggleSwitch() {
- this.ui.darkModeState.next(!this.darkMode);
- this.cookieService.put(this.DARK_MODE_COOKIE, this.darkMode ? 'yes' : 'no');
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/rd.module.ts b/dashboard/webapp-frontend/src/app/rd.module.ts
deleted file mode 100644
index d44ffe54..00000000
--- a/dashboard/webapp-frontend/src/app/rd.module.ts
+++ /dev/null
@@ -1,149 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * Modifications Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-import { BrowserModule } from '@angular/platform-browser';
-// tslint:disable-next-line:max-line-length
-import {
- MatButtonModule, MatButtonToggleModule, MatCardModule, MatCheckboxModule,
- MatDialogModule, MatExpansionModule, MatFormFieldModule, MatGridListModule,
- MatIconModule, MatInputModule, MatListModule, MatMenuModule, MatPaginatorModule,
- MatProgressSpinnerModule, MatSelectModule, MatSidenavModule, MatSliderModule,
- MatSlideToggleModule, MatSnackBarModule, MatSortModule, MatTableModule,
- MatTabsModule, MatToolbarModule
-} from '@angular/material';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { HttpClientModule } from '@angular/common/http';
-import { NgModule } from '@angular/core';
-import { MatRadioModule } from '@angular/material/radio';
-import { MatTooltipModule } from '@angular/material/tooltip';
-import { ChartsModule } from 'ng2-charts';
-import { MDBBootstrapModule } from 'angular-bootstrap-md';
-import { FormsModule, ReactiveFormsModule } from '@angular/forms';
-import { ToastrModule } from 'ngx-toastr';
-import { AppMgrService } from './services/app-mgr/app-mgr.service';
-import { ConfirmDialogComponent } from './ui/confirm-dialog/confirm-dialog.component';
-import { DashboardService } from './services/dashboard/dashboard.service';
-import { E2ManagerService } from './services/e2-mgr/e2-mgr.service';
-import { ErrorDialogComponent } from './ui/error-dialog/error-dialog.component';
-import { ErrorDialogService } from './services/ui/error-dialog.service';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { FooterComponent } from './footer/footer.component';
-import { LoadingDialogComponent } from './ui/loading-dialog/loading-dialog.component';
-import { MainComponent } from './main/main.component';
-import { MaterialDesignFrameworkModule } from 'angular6-json-schema-form';
-import { ModalEventComponent } from './ui/modal-event/modal-event.component';
-import { PolicyCardComponent } from './ui/policy-card/policy-card.component';
-import { PolicyControlComponent } from './policy-control/policy-control.component';
-import { PolicyInstanceComponent } from './policy-control/policy-instance.component';
-import { PolicyInstanceDialogComponent } from './policy-control/policy-instance-dialog.component';
-import { RdComponent } from './rd.component';
-import { RdRoutingModule } from './rd-routing.module';
-import { SidenavListComponent } from './navigation/sidenav-list/sidenav-list.component';
-import { UiService } from './services/ui/ui.service';
-import { CookieModule } from 'ngx-cookie';
-
-@NgModule({
- declarations: [
- ConfirmDialogComponent,
- ErrorDialogComponent,
- FooterComponent,
- LoadingDialogComponent,
- MainComponent,
- ModalEventComponent,
- PolicyCardComponent,
- PolicyControlComponent,
- PolicyInstanceComponent,
- PolicyInstanceDialogComponent,
- RdComponent,
- SidenavListComponent,
- ],
- imports: [
- BrowserModule,
- BrowserAnimationsModule,
- ChartsModule,
- FlexLayoutModule,
- FormsModule,
- HttpClientModule,
- MatButtonModule,
- MatButtonToggleModule,
- MatCardModule,
- MatCheckboxModule,
- MatDialogModule,
- MaterialDesignFrameworkModule,
- MatExpansionModule,
- MatFormFieldModule,
- MatGridListModule,
- MatIconModule,
- MatInputModule,
- MatListModule,
- MatMenuModule,
- MatPaginatorModule,
- MatProgressSpinnerModule,
- MatRadioModule,
- MatSelectModule,
- MatSliderModule,
- MatSidenavModule,
- MatSlideToggleModule,
- MatSnackBarModule,
- MatSortModule,
- MatTableModule,
- MatTabsModule,
- MatToolbarModule,
- MatTooltipModule,
- MDBBootstrapModule.forRoot(),
- RdRoutingModule,
- ReactiveFormsModule,
- ToastrModule.forRoot(),
- CookieModule.forRoot(),
- ],
- exports: [
- ErrorDialogComponent,
- FormsModule,
- MatButtonModule,
- MatButtonToggleModule,
- MatCardModule,
- MatDialogModule,
- MatExpansionModule,
- MatFormFieldModule,
- MatGridListModule,
- MatIconModule,
- MatInputModule,
- MatListModule,
- MatSidenavModule,
- MatSliderModule,
- MatSlideToggleModule,
- MatTabsModule
- ],
- entryComponents: [
- ConfirmDialogComponent,
- ErrorDialogComponent,
- LoadingDialogComponent,
- PolicyInstanceDialogComponent
- ],
- providers: [
- AppMgrService,
- DashboardService,
- E2ManagerService,
- ErrorDialogService,
- UiService
- ],
- bootstrap: [RdComponent]
-})
-export class RdModule { }
diff --git a/dashboard/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.spec.ts b/dashboard/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.spec.ts
deleted file mode 100644
index b3bf4d41..00000000
--- a/dashboard/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.spec.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { TestBed } from '@angular/core/testing';
-
-import { ACXappService } from './ac-xapp.service';
-
-describe('ACXappService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: ACXappService = TestBed.get(ACXappService);
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.ts b/dashboard/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.ts
deleted file mode 100644
index d25e9db9..00000000
--- a/dashboard/webapp-frontend/src/app/services/ac-xapp/ac-xapp.service.ts
+++ /dev/null
@@ -1,83 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
- import { Injectable } from '@angular/core';
- import { HttpClient } from '@angular/common/http';
- import { Observable } from 'rxjs';
- import { map } from 'rxjs/operators';
-import { ACAdmissionIntervalControl, ACAdmissionIntervalControlAck } from '../../interfaces/ac-xapp.types';
-import { DashboardSuccessTransport } from '../../interfaces/dashboard.types';
-
-/**
- * Services for calling the Dashboard's A1 endpoints to get/put AC policies.
- */
-@Injectable({
- providedIn: 'root'
-})
-export class ACXappService {
-
- private basePath = 'api/a1-p';
- private policyPath = 'policies';
- private acPolicyName = 'admission_control_policy';
-
- private buildPath(...args: any[]) {
- let result = this.basePath;
- args.forEach(part => {
- result = result + '/' + part;
- });
- return result;
- }
-
- constructor(private httpClient: HttpClient) {
- // injects to variable httpClient
- }
-
- /**
- * Gets version details
- * @returns Observable that should yield a String
- */
- getVersion(): Observable {
- const url = this.buildPath('version');
- return this.httpClient.get(url).pipe(
- // Extract the string here
- map(res => res['data'])
- );
- }
-
- /**
- * Gets admission control policy.
- * @returns Observable that should yield an ACAdmissionIntervalControl
- */
- getPolicy(): Observable {
- const url = this.buildPath(this.policyPath, this.acPolicyName);
- return this.httpClient.get(url);
- }
-
- /**
- * Puts admission control policy.
- * @param policy an instance of ACAdmissionIntervalControl
- * @returns Observable that should yield a response code, no data
- */
- putPolicy(policy: ACAdmissionIntervalControl): Observable {
- const url = this.buildPath(this.policyPath, this.acPolicyName);
- return this.httpClient.put(url, policy, { observe: 'response' });
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/services/anr-xapp/anr-xapp.service.spec.ts b/dashboard/webapp-frontend/src/app/services/anr-xapp/anr-xapp.service.spec.ts
deleted file mode 100644
index c47dcd8e..00000000
--- a/dashboard/webapp-frontend/src/app/services/anr-xapp/anr-xapp.service.spec.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
- import { TestBed } from '@angular/core/testing';
-
-import { ANRXappService } from './anr-xapp.service';
-
-describe('ANRXappService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: ANRXappService = TestBed.get(ANRXappService);
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/anr-xapp/anr-xapp.service.ts b/dashboard/webapp-frontend/src/app/services/anr-xapp/anr-xapp.service.ts
deleted file mode 100644
index e06b7081..00000000
--- a/dashboard/webapp-frontend/src/app/services/anr-xapp/anr-xapp.service.ts
+++ /dev/null
@@ -1,136 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { Injectable } from '@angular/core';
-import { HttpClient, HttpParams } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
-import { DashboardSuccessTransport } from '../../interfaces/dashboard.types';
-import { ANRNeighborCellRelation, ANRNeighborCellRelationMod } from '../../interfaces/anr-xapp.types';
-
-@Injectable({
- providedIn: 'root'
-})
-export class ANRXappService {
-
- // Trailing slashes are confusing so omit them here
- private basePath = 'api/xapp/anr';
- private ncrtPath = 'ncrt';
- private servingPath = 'servingcells';
- private neighborPath = 'neighborcells';
-
- constructor(private httpClient: HttpClient) {
- // injects to variable httpClient
- }
-
- private buildPath(...args: any[]) {
- let result = this.basePath;
- args.forEach(part => {
- result = result + '/' + part;
- });
- return result;
- }
-
- /**
- * Gets ANR xApp client version details
- * @returns Observable that should yield a String
- */
- getVersion(): Observable {
- const url = this.buildPath('version');
- return this.httpClient.get(url).pipe(
- // Extract the string here
- map(res => res['data'])
- );
- }
-
- /**
- * Performs a liveness probe
- * @returns Observable that should yield a response code (no data)
- */
- getHealthAlive(): Observable {
- const url = this.buildPath('health/alive');
- return this.httpClient.get(url, { observe: 'response' });
- }
-
- /**
- * Performs a readiness probe
- * @returns Observable that should yield a response code (no data)
- */
- getHealthReady(): Observable {
- const url = this.buildPath('health/ready');
- return this.httpClient.get(url, { observe: 'response' });
- }
-
-/**
- * Gets array of gNodeB IDs
- * @returns Observable that should yield a string array
- */
- getgNodeBs(): Observable {
- const url = this.buildPath('gnodebs');
- return this.httpClient.get(url).pipe(
- // Extract the array of IDs here
- map(res => res['gNodeBIds'])
- );
- }
-
- /**
- * Gets the neighbor cell relation table for all gNodeBs or based on query parameters
- * @param ggnbId Optional parameter for the gNB ID
- * @param servingCellNrcgi Serving cell NRCGI
- * @param neighborCellNrpci Neighbor cell NRPCI
- * @returns Observable of ANR neighbor cell relation array
- */
- getNcrtInfo(ggnodeb: string = '', servingCellNrcgi: string = '', neighborCellNrpci: string = ''): Observable {
- const url = this.buildPath(this.ncrtPath);
- return this.httpClient.get(url, {
- params: new HttpParams()
- .set('ggnodeb', ggnodeb)
- .set('servingCellNrcgi', servingCellNrcgi)
- .set('neighborCellNrpci', neighborCellNrpci)
- }).pipe(
- // Extract the array of relations here
- map(res => res['ncrtRelations'])
- );
- }
-
- /**
- * Modify neighbor cell relation based on Serving Cell NRCGI and Neighbor Cell NRPCI
- * @param servingCellNrcgi Serving cell NRCGI
- * @param neighborCellNrpci Neighbor cell NRPCI
- * @param mod Values to store in the specified relation
- * @returns Observable that yields a response code only, no data
- */
- modifyNcr(servingCellNrcgi: string, neighborCellNrpci: string, mod: ANRNeighborCellRelationMod): Observable {
- const url = this.buildPath(this.ncrtPath, this.servingPath, servingCellNrcgi, this.neighborPath, neighborCellNrpci);
- return this.httpClient.put(url, mod, { observe: 'response' });
- }
-
- /**
- * Deletes neighbor cell relation based on Serving Cell NRCGI and Neighbor Cell NRPCI
- * @param servingCellNrcgi Serving cell NRCGI
- * @param neighborCellNrpci Neighbor cell NRPCI
- * @returns Observable that yields a response code only, no data
- */
- deleteNcr(servingCellNrcgi: string, neighborCellNrpci: string): Observable {
- const url = this.buildPath(this.ncrtPath, this.servingPath, servingCellNrcgi, this.neighborPath, neighborCellNrpci);
- return this.httpClient.delete(url, { observe: 'response' });
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/services/app-mgr/app-mgr.service.spec.ts b/dashboard/webapp-frontend/src/app/services/app-mgr/app-mgr.service.spec.ts
deleted file mode 100644
index fcc2aaad..00000000
--- a/dashboard/webapp-frontend/src/app/services/app-mgr/app-mgr.service.spec.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { TestBed } from '@angular/core/testing';
-import { AppMgrService } from './app-mgr.service';
-
-describe('AppMgrService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: AppMgrService = TestBed.get(AppMgrService);
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/app-mgr/app-mgr.service.ts b/dashboard/webapp-frontend/src/app/services/app-mgr/app-mgr.service.ts
deleted file mode 100644
index afe7a657..00000000
--- a/dashboard/webapp-frontend/src/app/services/app-mgr/app-mgr.service.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { Injectable } from '@angular/core';
-import { HttpClient, HttpResponse } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { XMXappInfo, XMDeployableApp, XMDeployedApp } from '../../interfaces/app-mgr.types';
-
-@Injectable()
-export class AppMgrService {
-
- constructor(private httpClient: HttpClient) {
- // injects to variable httpClient
- }
-
- private basePath = 'api/appmgr';
-
- getDeployable(): Observable {
- return this.httpClient.get(this.basePath + '/xapps/list');
- }
-
- getDeployed(): Observable {
- return this.httpClient.get(this.basePath + '/xapps');
- }
-
- deployXapp(name: string): Observable> {
- const xappInfo: XMXappInfo = { name: name };
- return this.httpClient.post((this.basePath + '/xapps'), xappInfo, { observe: 'response' });
- }
-
- undeployXapp(name: string): Observable> {
- return this.httpClient.delete((this.basePath + '/xapps'+ '/' + name), { observe: 'response' });
- }
-
- getConfig(): Observable{
- return this.httpClient.get("/assets/mockdata/config.json");
- //return this.httpClient.get((this.basePath + '/config'));
- }
-
- putConfig(config: any): Observable> {
- return this.httpClient.put((this.basePath + '/config' ), config, { observe: 'response' });
- }
-
-
-}
diff --git a/dashboard/webapp-frontend/src/app/services/caas-ingress/caas-ingress.service.spec.ts b/dashboard/webapp-frontend/src/app/services/caas-ingress/caas-ingress.service.spec.ts
deleted file mode 100644
index 9d007ad5..00000000
--- a/dashboard/webapp-frontend/src/app/services/caas-ingress/caas-ingress.service.spec.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { TestBed } from '@angular/core/testing';
-
-import { CaasIngressService } from './caas-ingress.service';
-
-describe('CaasIngressService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: CaasIngressService = TestBed.get(CaasIngressService);
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/caas-ingress/caas-ingress.service.ts b/dashboard/webapp-frontend/src/app/services/caas-ingress/caas-ingress.service.ts
deleted file mode 100644
index 359a08f0..00000000
--- a/dashboard/webapp-frontend/src/app/services/caas-ingress/caas-ingress.service.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { V1PodList } from '@kubernetes/client-node';
-import { Observable } from 'rxjs';
-
-/**
-* Services for calling the Dashboard's caas-ingress endpoints to get Kubernetes details.
-*/
-@Injectable({
- providedIn: 'root'
-})
-export class CaasIngressService {
-
- private basePath = 'api/caas-ingress';
- private podsPath = 'pods';
-
- private buildPath(...args: any[]) {
- let result = this.basePath;
- args.forEach(part => {
- result = result + '/' + part;
- });
- return result;
- }
-
- constructor(private httpClient: HttpClient) {
- // injects to variable httpClient
- }
-
- /**
- * Gets list of pods
- * @returns Observable that should yield a V1PodList
- */
- getPodList(cluster: string, namespace: string): Observable {
- const url = this.buildPath('pods', 'cluster', cluster, 'namespace', namespace);
- return this.httpClient.get(url);
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/services/dashboard/dashboard.service.spec.ts b/dashboard/webapp-frontend/src/app/services/dashboard/dashboard.service.spec.ts
deleted file mode 100644
index 606adb3a..00000000
--- a/dashboard/webapp-frontend/src/app/services/dashboard/dashboard.service.spec.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { TestBed } from '@angular/core/testing';
-
-import { DashboardService } from './dashboard.service';
-
-describe('DashboardService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: DashboardService = TestBed.get(DashboardService);
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/dashboard/dashboard.service.ts b/dashboard/webapp-frontend/src/app/services/dashboard/dashboard.service.ts
deleted file mode 100644
index a9f2df62..00000000
--- a/dashboard/webapp-frontend/src/app/services/dashboard/dashboard.service.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { DashboardSuccessTransport, EcompUser } from '../../interfaces/dashboard.types';
-
-@Injectable({
- providedIn: 'root'
-})
-
-/**
- * Services to query the dashboard's admin endpoints.
- */
-export class DashboardService {
-
- private basePath = 'api/admin/';
-
- constructor(private httpClient: HttpClient) {
- // injects to variable httpClient
- }
-
- /**
- * Checks app health
- * @returns Observable that should yield a DashboardSuccessTransport
- */
- getHealth(): Observable {
- return this.httpClient.get(this.basePath + 'health');
- }
-
- /**
- * Gets Dashboard version details
- * @returns Observable that should yield a DashboardSuccessTransport object
- */
- getVersion(): Observable {
- return this.httpClient.get(this.basePath + 'version');
- }
-
- /**
- * Gets Dashboard users
- * @returns Observable that should yield a EcompUser array
- */
- getUsers(): Observable {
- return this.httpClient.get(this.basePath + 'user');
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/services/e2-mgr/e2-mgr.service.spec.ts b/dashboard/webapp-frontend/src/app/services/e2-mgr/e2-mgr.service.spec.ts
deleted file mode 100644
index b9e009c1..00000000
--- a/dashboard/webapp-frontend/src/app/services/e2-mgr/e2-mgr.service.spec.ts
+++ /dev/null
@@ -1,33 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { TestBed } from '@angular/core/testing';
-
-import { E2ManagerService } from './e2-mgr.service';
-
-describe('CatalogService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: E2ManagerService
- = TestBed.get(E2ManagerService
- );
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/e2-mgr/e2-mgr.service.ts b/dashboard/webapp-frontend/src/app/services/e2-mgr/e2-mgr.service.ts
deleted file mode 100644
index b3388cf6..00000000
--- a/dashboard/webapp-frontend/src/app/services/e2-mgr/e2-mgr.service.ts
+++ /dev/null
@@ -1,83 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { Injectable } from '@angular/core';
-import { HttpClient, HttpResponse } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
-import { E2RanDetails, E2SetupRequest } from '../../interfaces/e2-mgr.types';
-import { DashboardSuccessTransport } from '../../interfaces/dashboard.types';
-
-@Injectable({
- providedIn: 'root'
-})
-
-export class E2ManagerService {
-
- private basePath = 'api/e2mgr/nodeb/';
-
- constructor(private httpClient: HttpClient) {
- // injects to variable httpClient
- }
-
- /**
- * Gets E2 client version details
- * @returns Observable that should yield a String
- */
- getVersion(): Observable {
- const url = this.basePath + 'version';
- return this.httpClient.get(url).pipe(
- // Extract the string here
- map(res => res['data'])
- );
- }
-
- /**
- * Gets RAN details
- * @returns Observable that should yield an array of objects
- */
- getRan(): Observable> {
- return this.httpClient.get>(this.basePath + 'ran');
- }
-
- /**
- * Sends a request to setup an ENDC/gNodeB connection
- * @returns Observable. On success there is no data, only a code.
- */
- endcSetup(req: E2SetupRequest): Observable> {
- return this.httpClient.post(this.basePath + 'endc-setup', req, { observe: 'response' });
- }
-
- /**
- * Sends a request to setup an X2/eNodeB connection
- * @returns Observable. On success there is no data, only a code.
- */
- x2Setup(req: E2SetupRequest): Observable> {
- return this.httpClient.post(this.basePath + 'x2-setup', req, { observe: 'response' });
- }
-
- /**
- * Sends a request to drop all RAN connections
- * @returns Observable with body.
- */
- nodebPut(): Observable {
- return this.httpClient.put((this.basePath + 'shutdown'), { observe: 'body' });
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/services/policy/policy.service.spec.ts b/dashboard/webapp-frontend/src/app/services/policy/policy.service.spec.ts
deleted file mode 100644
index de1f4e6b..00000000
--- a/dashboard/webapp-frontend/src/app/services/policy/policy.service.spec.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-import { TestBed } from '@angular/core/testing';
-
-import { PolicyService } from './policy.service';
-
-describe('PolicyService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: PolicyService = TestBed.get(PolicyService);
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/policy/policy.service.ts b/dashboard/webapp-frontend/src/app/services/policy/policy.service.ts
deleted file mode 100644
index 6af517f4..00000000
--- a/dashboard/webapp-frontend/src/app/services/policy/policy.service.ts
+++ /dev/null
@@ -1,110 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
-import { PolicyType, PolicyInstance, PolicyInstanceAck } from '../../interfaces/policy.types';
-import { DashboardSuccessTransport } from '../../interfaces/dashboard.types';
-
-/**
- * Services for calling the policy endpoints.
- */
-@Injectable({
- providedIn: 'root'
-})
-export class PolicyService {
-
- private basePath = 'api/policy';
- private policyTypePath = 'policytypes';
- private policyPath = 'policies';
-
- private buildPath(...args: any[]) {
- let result = this.basePath;
- args.forEach(part => {
- result = result + '/' + part;
- });
- return result;
- }
-
- constructor(private httpClient: HttpClient) {
- // injects to variable httpClient
- }
-
- /**
- * Gets version details
- * @returns Observable that should yield a String
- */
- getVersion(): Observable {
- const url = this.buildPath('version');
- return this.httpClient.get(url).pipe(
- // Extract the string here
- map(res => res['data'])
- );
- }
-
- getPolicyTypes(): Observable {
- const url = this.buildPath(this.policyTypePath);
- return this.httpClient.get(url);
- }
-
- getPolicyInstances(policyTypeId: string): Observable {
- const url = this.buildPath(this.policyTypePath, policyTypeId, this.policyPath);
- return this.httpClient.get(url);
- }
-
- /**
- * Gets policy parameters.
- * @returns Observable that should yield a policy instance
- */
- getPolicy(policyTypeId: string, policyInstanceId: string): Observable {
- const url = this.buildPath(this.policyTypePath, policyTypeId, this.policyPath, policyInstanceId);
- return this.httpClient.get(url);
- }
-
- /**
- * Creates or replaces policy instance.
- * @param policyTypeId ID of the policy type that the instance will have
- * @param policyInstanceId ID of the instance
- * @param policyJson Json with the policy content
- * @returns Observable that should yield a response code, no data
- */
- putPolicy(policyTypeId: string, policyInstanceId: string, policyJson: string, ric: string): Observable {
- const url = this.buildPath(this.policyTypePath, policyTypeId, this.policyPath, policyInstanceId) + "?ric=" + ric;
- return this.httpClient.put(url, policyJson, { observe: 'response' });
- }
-
- /**
- * Deletes a policy instance.
- * @param policyTypeId
- * @returns Observable that should yield a response code, no data
- */
- deletePolicy(policyTypeId: string, policyInstanceId: string): Observable {
- const url = this.buildPath(this.policyTypePath, policyTypeId, this.policyPath, policyInstanceId);
- return this.httpClient.delete(url, { observe: 'response' });
- }
-
-
- getRics(policyTypeId: string): Observable {
- const url = this.buildPath('rics') + '?policyType=' + policyTypeId;
- return this.httpClient.get(url);
- }
-}
diff --git a/dashboard/webapp-frontend/src/app/services/ui/confirm-dialog.service.spec.ts b/dashboard/webapp-frontend/src/app/services/ui/confirm-dialog.service.spec.ts
deleted file mode 100644
index e7a115ee..00000000
--- a/dashboard/webapp-frontend/src/app/services/ui/confirm-dialog.service.spec.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { TestBed } from '@angular/core/testing';
-
-import { ConfirmDialogService } from './confirm-dialog.service';
-
-describe('ConfirmDialogService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: ConfirmDialogService = TestBed.get(ConfirmDialogService);
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/ui/confirm-dialog.service.ts b/dashboard/webapp-frontend/src/app/services/ui/confirm-dialog.service.ts
deleted file mode 100644
index 184d64f1..00000000
--- a/dashboard/webapp-frontend/src/app/services/ui/confirm-dialog.service.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { Injectable } from '@angular/core';
-import { MatDialog } from '@angular/material/dialog';
-import { ConfirmDialogComponent } from './../../ui/confirm-dialog/confirm-dialog.component';
-import { UiService } from './ui.service';
-
-@Injectable({
- providedIn: 'root'
-})
-export class ConfirmDialogService {
-
- darkMode: boolean;
- panelClass = '';
-
- constructor(private dialog: MatDialog,
- private ui: UiService) { }
-
- openConfirmDialog(msg: string) {
- this.ui.darkModeState.subscribe((isDark) => {
- this.darkMode = isDark;
- });
- if (this.darkMode) {
- this.panelClass = 'dark-theme';
- } else {
- this.panelClass = '';
- }
- return this.dialog.open(ConfirmDialogComponent, {
- panelClass: this.panelClass,
- width: '480px',
- position: { top: '100px' },
- data: {
- message: msg
- }
- });
- }
-}
diff --git a/dashboard/webapp-frontend/src/app/services/ui/error-dialog.service.ts b/dashboard/webapp-frontend/src/app/services/ui/error-dialog.service.ts
deleted file mode 100644
index bd5587d5..00000000
--- a/dashboard/webapp-frontend/src/app/services/ui/error-dialog.service.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { ErrorDialogComponent } from '../../ui/error-dialog/error-dialog.component';
-import { HttpErrorResponse } from '@angular/common/http';
-import { MatDialog } from '@angular/material/dialog';
-import { Injectable } from '@angular/core';
-import { UiService } from './ui.service';
-
-@Injectable()
-export class ErrorDialogService {
-
- darkMode: boolean;
- panelClass = '';
- public errorMessage = '';
-
- constructor(private dialog: MatDialog,
- private ui: UiService) { }
-
- public displayError(error: string) {
- this.ui.darkModeState.subscribe((isDark) => {
- this.darkMode = isDark;
- });
- if (this.darkMode) {
- this.panelClass = 'dark-theme';
- } else {
- this.panelClass = '';
- }
- return this.dialog.open(ErrorDialogComponent, {
- panelClass: this.panelClass,
- width: '400px',
- position: { top: '100px' },
- disableClose: true,
- data: { 'errorMessage': error }
- });
- }
-}
diff --git a/dashboard/webapp-frontend/src/app/services/ui/loading-dialog.service.spec.ts b/dashboard/webapp-frontend/src/app/services/ui/loading-dialog.service.spec.ts
deleted file mode 100644
index a73be7ce..00000000
--- a/dashboard/webapp-frontend/src/app/services/ui/loading-dialog.service.spec.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { TestBed } from '@angular/core/testing';
-
-import { LoadingDialogService } from './loading-dialog.service';
-
-describe('LoadingDialogService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: LoadingDialogService = TestBed.get(LoadingDialogService);
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/ui/loading-dialog.service.ts b/dashboard/webapp-frontend/src/app/services/ui/loading-dialog.service.ts
deleted file mode 100644
index d40928b3..00000000
--- a/dashboard/webapp-frontend/src/app/services/ui/loading-dialog.service.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { Injectable } from '@angular/core';
-import { MatDialog, MatDialogRef } from '@angular/material/dialog';
-import { LoadingDialogComponent } from './../../ui/loading-dialog/loading-dialog.component';
-import { UiService } from './ui.service';
-
-@Injectable({
- providedIn: 'root'
-})
-export class LoadingDialogService {
-
- darkMode: boolean;
- panelClass = '';
-
- constructor(private dialog: MatDialog,
- private ui: UiService) { }
-
- private loadingDialogRef: MatDialogRef;
-
- startLoading(msg: string) {
- this.ui.darkModeState.subscribe((isDark) => {
- this.darkMode = isDark;
- });
- if (this.darkMode) {
- this.panelClass = 'dark-theme';
- } else {
- this.panelClass = '';
- }
- this.loadingDialogRef = this.dialog.open(LoadingDialogComponent, {
- panelClass: this.panelClass,
- disableClose: true,
- width: '480px',
- position: { top: '100px' },
- data: {
- message: msg
- }
- });
- }
-
- stopLoading() {
- this.loadingDialogRef.close();
- }
-
-}
-
-
diff --git a/dashboard/webapp-frontend/src/app/services/ui/notification.service.spec.ts b/dashboard/webapp-frontend/src/app/services/ui/notification.service.spec.ts
deleted file mode 100644
index 97047205..00000000
--- a/dashboard/webapp-frontend/src/app/services/ui/notification.service.spec.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { TestBed } from '@angular/core/testing';
-
-import { NotificationService } from './notification.service';
-
-describe('NotificationService', () => {
- beforeEach(() => TestBed.configureTestingModule({}));
-
- it('should be created', () => {
- const service: NotificationService = TestBed.get(NotificationService);
- expect(service).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/services/ui/notification.service.ts b/dashboard/webapp-frontend/src/app/services/ui/notification.service.ts
deleted file mode 100644
index c7fe03f7..00000000
--- a/dashboard/webapp-frontend/src/app/services/ui/notification.service.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { Injectable } from '@angular/core';
-import { ToastrService } from 'ngx-toastr';
-
-@Injectable({
- providedIn: 'root'
-})
-export class NotificationService {
-
- constructor(public toastr: ToastrService) { }
-
- successConfig = {
- timeOut: 10000,
- closeButton: true
- };
-
- warningConfig = {
- disableTimeOut: true,
- closeButton: true
- };
-
- errorConfig = {
- disableTimeOut: true,
- closeButton: true
- };
-
- success(msg: string) {
- this.toastr.success(msg, '', this.successConfig);
- }
-
- warn(msg: string) {
- this.toastr.warning(msg, '', this.warningConfig);
- }
-
- error(msg: string) {
- this.toastr.error(msg, '', this.errorConfig);
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/services/ui/ui.service.spec.ts b/dashboard/webapp-frontend/src/app/services/ui/ui.service.spec.ts
deleted file mode 100644
index 3df0e9c0..00000000
--- a/dashboard/webapp-frontend/src/app/services/ui/ui.service.spec.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import {inject, TestBed} from '@angular/core/testing';
-
-import {UiService} from './ui.service';
-
-describe('UiService', () => {
- beforeEach(() => {
- TestBed.configureTestingModule({
- providers: [UiService]
- });
- });
-
- it('should be created', inject([UiService], (service: UiService) => {
- expect(service).toBeTruthy();
- }));
-});
diff --git a/dashboard/webapp-frontend/src/app/services/ui/ui.service.ts b/dashboard/webapp-frontend/src/app/services/ui/ui.service.ts
deleted file mode 100644
index 30f92d09..00000000
--- a/dashboard/webapp-frontend/src/app/services/ui/ui.service.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { Injectable } from '@angular/core';
-import { BehaviorSubject } from 'rxjs';
-
-@Injectable()
-export class UiService {
-
- darkModeState: BehaviorSubject;
-
- constructor() {
- // TODO: if the user is signed in get the default value from Firebase
- this.darkModeState = new BehaviorSubject(true);
- }
-}
diff --git a/dashboard/webapp-frontend/src/app/ui/confirm-dialog/confirm-dialog.component.html b/dashboard/webapp-frontend/src/app/ui/confirm-dialog/confirm-dialog.component.html
deleted file mode 100644
index 7e86ba02..00000000
--- a/dashboard/webapp-frontend/src/app/ui/confirm-dialog/confirm-dialog.component.html
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
- {{data.message}}
-
-
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/app/ui/confirm-dialog/confirm-dialog.component.spec.ts b/dashboard/webapp-frontend/src/app/ui/confirm-dialog/confirm-dialog.component.spec.ts
deleted file mode 100644
index 1edce02a..00000000
--- a/dashboard/webapp-frontend/src/app/ui/confirm-dialog/confirm-dialog.component.spec.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { ConfirmDialogComponent } from './confirm-dialog.component';
-
-describe('ConfirmDialogComponent', () => {
- let component: ConfirmDialogComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ ConfirmDialogComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(ConfirmDialogComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/ui/confirm-dialog/confirm-dialog.component.ts b/dashboard/webapp-frontend/src/app/ui/confirm-dialog/confirm-dialog.component.ts
deleted file mode 100644
index 3d99530d..00000000
--- a/dashboard/webapp-frontend/src/app/ui/confirm-dialog/confirm-dialog.component.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { Component, OnInit, Inject } from '@angular/core';
-import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
-
-@Component({
- selector: 'rd-confirm-dialog',
- templateUrl: './confirm-dialog.component.html',
-})
-export class ConfirmDialogComponent implements OnInit {
-
- constructor(@Inject(MAT_DIALOG_DATA) public data,
- public dialogRef: MatDialogRef) { }
-
- ngOnInit() {
- }
-
- closeDialog() {
- this.dialogRef.close(false);
- }
-}
diff --git a/dashboard/webapp-frontend/src/app/ui/error-dialog/error-dialog.component.html b/dashboard/webapp-frontend/src/app/ui/error-dialog/error-dialog.component.html
deleted file mode 100644
index 8516b94e..00000000
--- a/dashboard/webapp-frontend/src/app/ui/error-dialog/error-dialog.component.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
{{data.errorMessage}}
-
-
-
-
-
diff --git a/dashboard/webapp-frontend/src/app/ui/error-dialog/error-dialog.component.scss b/dashboard/webapp-frontend/src/app/ui/error-dialog/error-dialog.component.scss
deleted file mode 100644
index 23de19eb..00000000
--- a/dashboard/webapp-frontend/src/app/ui/error-dialog/error-dialog.component.scss
+++ /dev/null
@@ -1,25 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
- .error_message_text {
- overflow-y: overlay;
- max-height: 150px;
- }
-
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/app/ui/error-dialog/error-dialog.component.ts b/dashboard/webapp-frontend/src/app/ui/error-dialog/error-dialog.component.ts
deleted file mode 100644
index 6b5111de..00000000
--- a/dashboard/webapp-frontend/src/app/ui/error-dialog/error-dialog.component.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { Component, OnInit, Inject } from '@angular/core';
-import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
-
-export interface ErrorData {
- errorMessage: string;
-}
-
-@Component({
- selector: 'rd-error-dialog',
- templateUrl: './error-dialog.component.html',
- styleUrls: ['./error-dialog.component.scss']
-})
-
-export class ErrorDialogComponent {
-
- constructor(private dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data: ErrorData) { }
-
- public closeDialog = () => {
- this.dialogRef.close();
- }
-}
diff --git a/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.html b/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.html
deleted file mode 100644
index 75d6e591..00000000
--- a/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.html
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- {{data.message}}
-
-
-
-
diff --git a/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.scss b/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.scss
deleted file mode 100644
index fb669306..00000000
--- a/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.scss
+++ /dev/null
@@ -1,23 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-mat-spinner {
- margin: 10px
-}
diff --git a/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.spec.ts b/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.spec.ts
deleted file mode 100644
index 40fa832d..00000000
--- a/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.spec.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { LoadingDialogComponent } from './loading-dialog.component';
-
-describe('LoadingDialogComponent', () => {
- let component: LoadingDialogComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ LoadingDialogComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(LoadingDialogComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.ts b/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.ts
deleted file mode 100644
index c78ae4ea..00000000
--- a/dashboard/webapp-frontend/src/app/ui/loading-dialog/loading-dialog.component.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-import { Component, OnInit, Inject } from '@angular/core';
-import { MAT_DIALOG_DATA } from '@angular/material/dialog';
-
-@Component({
- selector: 'rd-loading-dialog',
- templateUrl: './loading-dialog.component.html',
- styleUrls: ['./loading-dialog.component.scss']
-})
-export class LoadingDialogComponent implements OnInit {
-
- constructor(@Inject(MAT_DIALOG_DATA) public data) { }
-
- ngOnInit() {
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.html b/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.html
deleted file mode 100644
index 197561fd..00000000
--- a/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.html
+++ /dev/null
@@ -1,70 +0,0 @@
-
-
-
-
-
-
-
-
-
-
xApp Info
-
-
-
-
-
-
-
-
-
-
-
xApp Manager Params
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.scss b/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.scss
deleted file mode 100644
index e69de29b..00000000
diff --git a/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.spec.ts b/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.spec.ts
deleted file mode 100644
index 0e4cf9d7..00000000
--- a/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.spec.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { async, ComponentFixture, TestBed } from '@angular/core/testing';
-
-import { ModalEventComponent } from './modal-event.component';
-
-describe('ModalEventComponent', () => {
- let component: ModalEventComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [ ModalEventComponent ]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(ModalEventComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.ts b/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.ts
deleted file mode 100644
index 18f51635..00000000
--- a/dashboard/webapp-frontend/src/app/ui/modal-event/modal-event.component.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { Component, Input, OnInit , Output, EventEmitter } from '@angular/core';
-import { FormControl, Validators } from '@angular/forms';
-
-@Component({
- selector: 'rd-modal-event',
- templateUrl: './modal-event.component.html',
- styleUrls: ['./modal-event.component.scss']
-})
-export class ModalEventComponent implements OnInit {
-
- public renderValue;
-
- @Input() value;
- @Input() rowData: any;
- @Output() save: EventEmitter = new EventEmitter();
- contactFormModalHelm = new FormControl('', Validators.required);
- onOpened(event: any) {
- console.log(event);
- }
-
-
- constructor() { }
-
- ngOnInit() {
- this.renderValue = this.value;
- }
-
- example() {
- alert(this.renderValue);
- }
-
- onDeployxApp() {
- this.save.emit(this.rowData);
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.html b/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.html
deleted file mode 100644
index 2c82628b..00000000
--- a/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
- Policy Control
-
- buildConfig
-
-
-
-
-
-
-
diff --git a/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.scss b/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.scss
deleted file mode 100644
index 30a3dfa7..00000000
--- a/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.scss
+++ /dev/null
@@ -1,58 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-.policy__card {
- background-color: #ffffff;
- box-shadow: 0 0 2rem rgba(0, 0, 255, 0.1);
- display: grid;
- grid-template-columns: 1fr;
- grid-template-rows: 1fr 1fr;
- padding: 2rem;
- margin: 2rem;
- width: 19rem;
- height: 30rem;
- justify-items: center;
- cursor: pointer;
- border-radius: 1.75rem;
- animation: fadein 1.25s ease-in-out 0ms 1;
- color: #443282;
-}
-
-.add__card-dark {
- background: linear-gradient(to bottom, rgb(78, 78, 129), rgb(45, 44, 61));
- color: white;
-}
-
-.card__title {
- text-transform: uppercase;
- letter-spacing: 0.1rem;
-}
-
-.body__container {
- align-self: end;
- display: flex;
- justify-content: space-between;
- align-items: center;
- flex-flow: column;
-}
-
-.add__icon {
- width: 10rem;
- margin-bottom: 1.15rem;
-}
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.spec.ts b/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.spec.ts
deleted file mode 100644
index eb678a96..00000000
--- a/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.spec.ts
+++ /dev/null
@@ -1,44 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-import {async, ComponentFixture, TestBed} from '@angular/core/testing';
-
-import {PolicyCardComponent} from './policy-card.component';
-
-describe('PolicyCardComponent', () => {
- let component: PolicyCardComponent;
- let fixture: ComponentFixture;
-
- beforeEach(async(() => {
- TestBed.configureTestingModule({
- declarations: [PolicyCardComponent]
- })
- .compileComponents();
- }));
-
- beforeEach(() => {
- fixture = TestBed.createComponent(PolicyCardComponent);
- component = fixture.componentInstance;
- fixture.detectChanges();
- });
-
- it('should create', () => {
- expect(component).toBeTruthy();
- });
-});
diff --git a/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.ts b/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.ts
deleted file mode 100644
index 902e2604..00000000
--- a/dashboard/webapp-frontend/src/app/ui/policy-card/policy-card.component.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 Nordix Foundation
- * %%
- * 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===================================
- */
-import { Component, OnDestroy, OnInit } from '@angular/core';
-import { Router } from '@angular/router';
-import { UiService } from '../../services/ui/ui.service';
-
-@Component({
- selector: 'rd-policy-card',
- templateUrl: './policy-card.component.html',
- styleUrls: ['./policy-card.component.scss']
-})
-export class PolicyCardComponent implements OnInit, OnDestroy {
- darkMode: boolean;
-
- constructor(public router: Router, private ui: UiService) { }
-
- ngOnInit() {
- this.ui.darkModeState.subscribe((isDark) => {
- this.darkMode = isDark;
- });
- }
-
- ngOnDestroy() { }
-
- openDetails() {
- this.router.navigateByUrl('../../policy');
- }
-
-}
diff --git a/dashboard/webapp-frontend/src/assets/ORANlogo.png b/dashboard/webapp-frontend/src/assets/ORANlogo.png
deleted file mode 100644
index 4c3dfb1b..00000000
Binary files a/dashboard/webapp-frontend/src/assets/ORANlogo.png and /dev/null differ
diff --git a/dashboard/webapp-frontend/src/assets/at_t.png b/dashboard/webapp-frontend/src/assets/at_t.png
deleted file mode 100644
index 3cced1d5..00000000
Binary files a/dashboard/webapp-frontend/src/assets/at_t.png and /dev/null differ
diff --git a/dashboard/webapp-frontend/src/assets/intelligence.png b/dashboard/webapp-frontend/src/assets/intelligence.png
deleted file mode 100644
index c40693e0..00000000
Binary files a/dashboard/webapp-frontend/src/assets/intelligence.png and /dev/null differ
diff --git a/dashboard/webapp-frontend/src/assets/latency.png b/dashboard/webapp-frontend/src/assets/latency.png
deleted file mode 100644
index 874d11b3..00000000
Binary files a/dashboard/webapp-frontend/src/assets/latency.png and /dev/null differ
diff --git a/dashboard/webapp-frontend/src/assets/mockdata/config.json b/dashboard/webapp-frontend/src/assets/mockdata/config.json
deleted file mode 100644
index 255b3fe7..00000000
--- a/dashboard/webapp-frontend/src/assets/mockdata/config.json
+++ /dev/null
@@ -1,872 +0,0 @@
-[
- {
- "metadata": {
- "name": "Automatic Neighbor Relation",
- "configName": "anr-appconfig",
- "namespace": "ricxapp"
- },
- "descriptor": {
- "$id": "http://example.com/root.json",
- "$schema": "http://json-schema.org/draft-07/schema#",
- "definitions": {},
- "properties": {
- "controls": {
- "$id": "#/properties/controls",
- "properties": {
- "active": {
- "$id": "#/properties/controls/properties/active",
- "default": false,
- "examples": [
- true
- ],
- "title": "The Active Schema",
- "type": "boolean"
- },
- "interfaceId": {
- "$id": "#/properties/controls/properties/interfaceId",
- "properties": {
- "globalENBId": {
- "$id": "#/properties/controls/properties/interfaceId/properties/globalENBId",
- "properties": {
- "bits": {
- "$id": "#/properties/controls/properties/interfaceId/properties/globalENBId/properties/bits",
- "default": 0,
- "examples": [
- 28
- ],
- "title": "The Bits Schema",
- "maximum": 1024,
- "type": "integer"
- },
- "id": {
- "$id": "#/properties/controls/properties/interfaceId/properties/globalENBId/properties/id",
- "default": 0,
- "examples": [
- 202251
- ],
- "title": "The Id Schema",
- "type": "integer"
- },
- "plmnid": {
- "$id": "#/properties/controls/properties/interfaceId/properties/globalENBId/properties/plmnid",
- "default": "",
- "examples": [
- "310150"
- ],
- "pattern": "^(.*)$",
- "title": "The Plmnid Schema",
- "type": "string"
- }
- },
- "required": [
- "plmnid",
- "id",
- "bits"
- ],
- "title": "The Globalenbid Schema",
- "type": "object"
- }
- },
- "required": [
- "globalENBId"
- ],
- "title": "The Interfaceid Schema",
- "type": "object"
- },
- "subscription": {
- "$id": "#/properties/controls/properties/subscription",
- "properties": {
- "retries": {
- "$id": "#/properties/controls/properties/subscription/properties/retries",
- "default": 0,
- "examples": [
- 1
- ],
- "title": "The Retries Schema",
- "type": "integer"
- },
- "retryto": {
- "$id": "#/properties/controls/properties/subscription/properties/retryto",
- "default": 0,
- "examples": [
- 2
- ],
- "title": "The Retryto Schema",
- "type": "integer"
- }
- },
- "required": [
- "retries",
- "retryto"
- ],
- "title": "The Subscription Schema",
- "type": "object"
- }
- },
- "required": [
- "active",
- "subscription",
- "interfaceId"
- ],
- "title": "The Controls Schema",
- "type": "object"
- },
- "db": {
- "$id": "#/properties/db",
- "properties": {
- "host": {
- "$id": "#/properties/db/properties/host",
- "default": "",
- "examples": [
- "localhost"
- ],
- "pattern": "^(.*)$",
- "title": "The Host Schema",
- "type": "string"
- },
- "namespaces": {
- "$id": "#/properties/db/properties/namespaces",
- "items": {
- "$id": "#/properties/db/properties/namespaces/items",
- "default": "",
- "examples": [
- "sdl",
- "rnib"
- ],
- "pattern": "^(.*)$",
- "title": "The Items Schema",
- "type": "string"
- },
- "title": "The Namespaces Schema",
- "type": "array"
- },
- "port": {
- "$id": "#/properties/db/properties/port",
- "default": 0,
- "examples": [
- 6379
- ],
- "title": "The Port Schema",
- "type": "integer"
- }
- },
- "required": [
- "host",
- "port",
- "namespaces"
- ],
- "title": "The Db Schema",
- "type": "object"
- },
- "local": {
- "$id": "#/properties/local",
- "properties": {
- "host": {
- "$id": "#/properties/local/properties/host",
- "default": "",
- "examples": [
- ":8080"
- ],
- "pattern": "^(.*)$",
- "title": "The Host Schema",
- "type": "string"
- }
- },
- "required": [
- "host"
- ],
- "title": "The Local Schema",
- "type": "object"
- },
- "logger": {
- "$id": "#/properties/logger",
- "properties": {
- "level": {
- "$id": "#/properties/logger/properties/level",
- "default": 0,
- "examples": [
- 3
- ],
- "title": "The Level Schema",
- "type": "integer"
- }
- },
- "required": [
- "level"
- ],
- "title": "The Logger Schema",
- "type": "object"
- },
- "metrics": {
- "$id": "#/properties/metrics",
- "items": {
- "$id": "#/properties/metrics/items",
- "properties": {
- "description": {
- "$id": "#/properties/metrics/items/properties/description",
- "default": "",
- "examples": [
- "The total number of UE context creation events"
- ],
- "pattern": "^(.*)$",
- "title": "The Description Schema",
- "type": "string"
- },
- "enabled": {
- "$id": "#/properties/metrics/items/properties/enabled",
- "default": false,
- "examples": [
- true
- ],
- "title": "The Enabled Schema",
- "type": "boolean"
- },
- "name": {
- "$id": "#/properties/metrics/items/properties/name",
- "default": "",
- "examples": [
- "UEContextCreated"
- ],
- "pattern": "^(.*)$",
- "title": "The Name Schema",
- "type": "string"
- },
- "type": {
- "$id": "#/properties/metrics/items/properties/type",
- "default": "",
- "examples": [
- "counter"
- ],
- "pattern": "^(.*)$",
- "title": "The Type Schema",
- "type": "string"
- }
- },
- "required": [
- "name",
- "type",
- "enabled",
- "description"
- ],
- "title": "The Items Schema",
- "type": "object"
- },
- "title": "The Metrics Schema",
- "type": "array"
- },
- "rmr": {
- "$id": "#/properties/rmr",
- "properties": {
- "maxSize": {
- "$id": "#/properties/rmr/properties/maxSize",
- "default": 0,
- "examples": [
- 2072
- ],
- "title": "The Maxsize Schema",
- "type": "integer"
- },
- "numWorkers": {
- "$id": "#/properties/rmr/properties/numWorkers",
- "default": 0,
- "examples": [
- 1
- ],
- "title": "The Numworkers Schema",
- "type": "integer"
- },
- "protPort": {
- "$id": "#/properties/rmr/properties/protPort",
- "default": "",
- "examples": [
- "tcp:4560"
- ],
- "pattern": "^(.*)$",
- "title": "The Protport Schema",
- "type": "string"
- },
- "rxMessages": {
- "$id": "#/properties/rmr/properties/rxMessages",
- "items": {
- "$id": "#/properties/rmr/properties/rxMessages/items",
- "default": "",
- "examples": [
- "RIC_SUB_RESP",
- "RIC_SUB_FAILURE",
- "RIC_SUB_DEL_RESP",
- "RIC_SUB_DEL_FAILURE",
- "RIC_INDICATION"
- ],
- "pattern": "^(.*)$",
- "title": "The Items Schema",
- "type": "string"
- },
- "title": "The Rxmessages Schema",
- "type": "array"
- },
- "txMessages": {
- "$id": "#/properties/rmr/properties/txMessages",
- "items": {
- "$id": "#/properties/rmr/properties/txMessages/items",
- "default": "",
- "examples": [
- "RIC_SUB_REQ",
- "RIC_SUB_DEL_REQ"
- ],
- "pattern": "^(.*)$",
- "title": "The Items Schema",
- "type": "string"
- },
- "title": "The Txmessages Schema",
- "type": "array"
- }
- },
- "required": [
- "protPort",
- "maxSize",
- "numWorkers",
- "txMessages",
- "rxMessages"
- ],
- "title": "The Rmr Schema",
- "type": "object"
- }
- },
- "required": [
- "local",
- "logger",
- "rmr",
- "db",
- "controls",
- "metrics"
- ],
- "title": "The Root Schema",
- "type": "object"
- },
- "config": {
- "controls": {
- "active": true,
- "interfaceId": {
- "globalENBId": {
- "bits": 28,
- "id": 202251,
- "plmnid": "310150"
- }
- },
- "subscription": {
- "retries": 1,
- "retryto": 2
- }
- },
- "db": {
- "host": "localhost",
- "namespaces": [
- "sdl",
- "rnib"
- ],
- "port": 6379
- },
- "local": {
- "host": ":8080"
- },
- "logger": {
- "level": 3
- },
- "metrics": [
- {
- "description": "The total number of UE context creation events",
- "enabled": true,
- "name": "UEContextCreated",
- "type": "counter"
- },
- {
- "description": "The total number of UE context release events",
- "enabled": true,
- "name": "UEContextReleased",
- "type": "counter"
- }
- ],
- "rmr": {
- "maxSize": 2072,
- "numWorkers": 1,
- "protPort": "tcp:4560",
- "rxMessages": [
- "RIC_SUB_RESP",
- "RIC_SUB_FAILURE",
- "RIC_SUB_DEL_RESP",
- "RIC_SUB_DEL_FAILURE",
- "RIC_INDICATION"
- ],
- "txMessages": [
- "RIC_SUB_REQ",
- "RIC_SUB_DEL_REQ"
- ]
- }
- },
- "layout": [
- {
- "key": "controls.active",
- "title": "Active"
- },
- {
- "key": "controls.interfaceId.globalENBId",
- "title": "Global ENB Id"
- },
- {
- "type": "flex",
- "flex-flow": "row wrap",
- "items": [
- {
- "key": "controls.interfaceId.globalENBId.plmnid",
- "title": "Plmn Id"
- },
- {
- "key": "controls.interfaceId.globalENBId.id",
- "title": "Id"
-
- },
- {
- "key": "controls.interfaceId.globalENBId.bits",
- "title": "Bits"
- }
- ]
- },
- {
- "key": "controls.subscription",
- "title": "Subscription"
- },
- {
- "type": "flex",
- "flex-flow": "row wrap",
- "items": [
- {
- "key": "controls.subscription.retries",
- "title": "Retries"
- },
- {
- "key": "controls.subscription.retryto",
- "title": "Retry to"
- }
- ]
- }
- ]
- },
- {
- "metadata": {
- "name": "UE Event Collector",
- "configName": "UEEC-appconfig",
- "namespace": "ricxapp"
- },
- "descriptor": {
- "definitions": {},
- "$schema": "http://json-schema.org/draft-07/schema#",
- "$id": "http://example.com/root.json",
- "type": "object",
- "title": "The Root Schema",
- "required": [
- "local",
- "logger",
- "rmr",
- "db",
- "controls",
- "metrics"
- ],
- "properties": {
- "local": {
- "$id": "#/properties/local",
- "type": "object",
- "title": "The Local Schema",
- "required": [
- "host"
- ],
- "properties": {
- "host": {
- "$id": "#/properties/local/properties/host",
- "type": "string",
- "title": "The Host Schema",
- "default": "",
- "examples": [
- ":8080"
- ],
- "pattern": "^(.*)$"
- }
- }
- },
- "logger": {
- "$id": "#/properties/logger",
- "type": "object",
- "title": "The Logger Schema",
- "required": [
- "level"
- ],
- "properties": {
- "level": {
- "$id": "#/properties/logger/properties/level",
- "type": "integer",
- "title": "The Level Schema",
- "default": 0,
- "examples": [
- 3
- ]
- }
- }
- },
- "rmr": {
- "$id": "#/properties/rmr",
- "type": "object",
- "title": "The Rmr Schema",
- "required": [
- "protPort",
- "maxSize",
- "numWorkers",
- "txMessages",
- "rxMessages"
- ],
- "properties": {
- "protPort": {
- "$id": "#/properties/rmr/properties/protPort",
- "type": "string",
- "title": "The Protport Schema",
- "default": "",
- "examples": [
- "tcp:4560"
- ],
- "pattern": "^(.*)$"
- },
- "maxSize": {
- "$id": "#/properties/rmr/properties/maxSize",
- "type": "integer",
- "title": "The Maxsize Schema",
- "default": 0,
- "examples": [
- 2072
- ]
- },
- "numWorkers": {
- "$id": "#/properties/rmr/properties/numWorkers",
- "type": "integer",
- "title": "The Numworkers Schema",
- "default": 0,
- "examples": [
- 1
- ]
- },
- "txMessages": {
- "$id": "#/properties/rmr/properties/txMessages",
- "type": "array",
- "title": "The Txmessages Schema",
- "items": {
- "$id": "#/properties/rmr/properties/txMessages/items",
- "type": "string",
- "title": "The Items Schema",
- "default": "",
- "examples": [
- "RIC_SUB_REQ",
- "RIC_SUB_DEL_REQ"
- ],
- "pattern": "^(.*)$"
- }
- },
- "rxMessages": {
- "$id": "#/properties/rmr/properties/rxMessages",
- "type": "array",
- "title": "The Rxmessages Schema",
- "items": {
- "$id": "#/properties/rmr/properties/rxMessages/items",
- "type": "string",
- "title": "The Items Schema",
- "default": "",
- "examples": [
- "RIC_SUB_RESP",
- "RIC_SUB_FAILURE",
- "RIC_SUB_DEL_RESP",
- "RIC_SUB_DEL_FAILURE",
- "RIC_INDICATION"
- ],
- "pattern": "^(.*)$"
- }
- }
- }
- },
- "db": {
- "$id": "#/properties/db",
- "type": "object",
- "title": "The Db Schema",
- "required": [
- "host",
- "port",
- "namespaces"
- ],
- "properties": {
- "host": {
- "$id": "#/properties/db/properties/host",
- "type": "string",
- "title": "The Host Schema",
- "default": "",
- "examples": [
- "localhost"
- ],
- "pattern": "^(.*)$"
- },
- "port": {
- "$id": "#/properties/db/properties/port",
- "type": "integer",
- "title": "The Port Schema",
- "default": 0,
- "examples": [
- 6379
- ]
- },
- "namespaces": {
- "$id": "#/properties/db/properties/namespaces",
- "type": "array",
- "title": "The Namespaces Schema",
- "items": {
- "$id": "#/properties/db/properties/namespaces/items",
- "type": "string",
- "title": "The Items Schema",
- "default": "",
- "examples": [
- "sdl",
- "rnib"
- ],
- "pattern": "^(.*)$"
- }
- }
- }
- },
- "controls": {
- "$id": "#/properties/controls",
- "type": "object",
- "title": "The Controls Schema",
- "required": [
- "active",
- "requestorId",
- "ranFunctionId",
- "ricActionId",
- "interfaceId"
- ],
- "properties": {
- "active": {
- "$id": "#/properties/controls/properties/active",
- "type": "boolean",
- "title": "The Active Schema",
- "default": false,
- "examples": [
- true
- ]
- },
- "requestorId": {
- "$id": "#/properties/controls/properties/requestorId",
- "type": "integer",
- "title": "The Requestorid Schema",
- "default": 0,
- "examples": [
- 66
- ]
- },
- "ranFunctionId": {
- "$id": "#/properties/controls/properties/ranFunctionId",
- "type": "integer",
- "title": "The Ranfunctionid Schema",
- "default": 0,
- "examples": [
- 1
- ]
- },
- "ricActionId": {
- "$id": "#/properties/controls/properties/ricActionId",
- "type": "integer",
- "title": "The Ricactionid Schema",
- "default": 0,
- "examples": [
- 0
- ]
- },
- "interfaceId": {
- "$id": "#/properties/controls/properties/interfaceId",
- "type": "object",
- "title": "The Interfaceid Schema",
- "required": [
- "globalENBId"
- ],
- "properties": {
- "globalENBId": {
- "$id": "#/properties/controls/properties/interfaceId/properties/globalENBId",
- "type": "object",
- "title": "The Globalenbid Schema",
- "required": [
- "plmnId",
- "eNBId"
- ],
- "properties": {
- "plmnId": {
- "$id": "#/properties/controls/properties/interfaceId/properties/globalENBId/properties/plmnId",
- "type": "string",
- "title": "The Plmnid Schema",
- "default": "",
- "examples": [
- "43962"
- ],
- "pattern": "^(.*)$"
- },
- "eNBId": {
- "$id": "#/properties/controls/properties/interfaceId/properties/globalENBId/properties/eNBId",
- "type": "string",
- "title": "The Enbid Schema",
- "default": "",
- "examples": [
- "43962"
- ],
- "pattern": "^(.*)$"
- }
- }
- }
- }
- }
- }
- },
- "metrics": {
- "$id": "#/properties/metrics",
- "type": "array",
- "title": "The Metrics Schema",
- "items": {
- "$id": "#/properties/metrics/items",
- "type": "object",
- "title": "The Items Schema",
- "required": [
- "name",
- "type",
- "enabled",
- "description"
- ],
- "properties": {
- "name": {
- "$id": "#/properties/metrics/items/properties/name",
- "type": "string",
- "title": "The Name Schema",
- "default": "",
- "examples": [
- "UEContextCreated"
- ],
- "pattern": "^(.*)$"
- },
- "type": {
- "$id": "#/properties/metrics/items/properties/type",
- "type": "string",
- "title": "The Type Schema",
- "default": "",
- "examples": [
- "counter"
- ],
- "pattern": "^(.*)$"
- },
- "enabled": {
- "$id": "#/properties/metrics/items/properties/enabled",
- "type": "boolean",
- "title": "The Enabled Schema",
- "default": false,
- "examples": [
- true
- ]
- },
- "description": {
- "$id": "#/properties/metrics/items/properties/description",
- "type": "string",
- "title": "The Description Schema",
- "default": "",
- "examples": [
- "The total number of UE context creation events"
- ],
- "pattern": "^(.*)$"
- }
- }
- }
- }
- }
- },
- "config": {
- "local": {
- "host": ":8080"
- },
- "logger": {
- "level": 3
- },
- "rmr": {
- "protPort": "tcp:4560",
- "maxSize": 2072,
- "numWorkers": 1,
- "txMessages": [ "RIC_SUB_REQ", "RIC_SUB_DEL_REQ" ],
- "rxMessages": [ "RIC_SUB_RESP", "RIC_SUB_FAILURE", "RIC_SUB_DEL_RESP", "RIC_SUB_DEL_FAILURE", "RIC_INDICATION" ]
- },
- "db": {
- "host": "localhost",
- "port": 6379,
- "namespaces": [ "sdl", "rnib" ]
- },
- "controls": {
- "active": true,
- "requestorId": 66,
- "ranFunctionId": 1,
- "ricActionId": 0,
- "interfaceId": {
- "globalENBId": {
- "plmnId": "43962",
- "eNBId": "43962"
- }
- }
- },
- "metrics": [
- {
- "name": "UEContextCreated",
- "type": "counter",
- "enabled": true,
- "description": "The total number of UE context creation events"
- },
- {
- "name": "UEContextReleased",
- "type": "counter",
- "enabled": true,
- "description": "The total number of UE context release events"
- }
- ]
- },
- "layout": [
- {
- "key": "controls.active",
- "title": "Active"
- },
- {
- "key": "controls.requestorId",
- "title": "Requestor Id"
- },
- {
- "key": "controls.ranFunctionId",
- "title": "RAN Function Id"
- },
- {
- "key": "controls.ricActionId",
- "title": "RIC Action Id"
- },
- {
- "key": "controls.interfaceId.globalENBId",
- "title": "Global ENB Id"
- },
- {
- "type": "flex",
- "flex-flow": "row wrap",
- "items": [
- {
- "key": "controls.interfaceId.globalENBId.plmnId",
- "title": "Plmn Id"
- },
- {
- "key": "controls.interfaceId.globalENBId.eNBId",
- "title": "ENB Id"
-
- }
- ]
- }
- ]
- }
-]
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/assets/mockdata/db.json b/dashboard/webapp-frontend/src/assets/mockdata/db.json
deleted file mode 100644
index 31bd4734..00000000
--- a/dashboard/webapp-frontend/src/assets/mockdata/db.json
+++ /dev/null
@@ -1,36 +0,0 @@
-{
- "config": [
- {
- "id": "jsonURL",
- "value": "http://localhost:3000"
- },
- {
- "id": "host",
- "value": "http://localhost:3000"
- },
- {
- "id": "metricspath",
- "value": "/a1ric/metrics"
- },
- {
- "id": "delaypath",
- "value": "/a1ric/delay"
- },
- {
- "id": "loadpath",
- "value": "/a1ric/load"
- }
- ],
- "metrics": {
- "latency": 11,
- "load": 100,
- "ricload": 100,
- "time": 123
- },
- "delay": {
- "delay": 64877
- },
- "load": {
- "load": 1
- }
-}
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/assets/mockdata/routes.json b/dashboard/webapp-frontend/src/assets/mockdata/routes.json
deleted file mode 100644
index 0745958c..00000000
--- a/dashboard/webapp-frontend/src/assets/mockdata/routes.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "/a1ric/*": "/$1",
- "/:resource/:id/show": "/:resource/:id"
-}
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/assets/oran-logo.png b/dashboard/webapp-frontend/src/assets/oran-logo.png
deleted file mode 100644
index c3b6ce56..00000000
Binary files a/dashboard/webapp-frontend/src/assets/oran-logo.png and /dev/null differ
diff --git a/dashboard/webapp-frontend/src/assets/policy.png b/dashboard/webapp-frontend/src/assets/policy.png
deleted file mode 100644
index 11df15d7..00000000
Binary files a/dashboard/webapp-frontend/src/assets/policy.png and /dev/null differ
diff --git a/dashboard/webapp-frontend/src/assets/profile_default.png b/dashboard/webapp-frontend/src/assets/profile_default.png
deleted file mode 100644
index 2b90bf05..00000000
Binary files a/dashboard/webapp-frontend/src/assets/profile_default.png and /dev/null differ
diff --git a/dashboard/webapp-frontend/src/assets/xAppControl.png b/dashboard/webapp-frontend/src/assets/xAppControl.png
deleted file mode 100644
index 9458a858..00000000
Binary files a/dashboard/webapp-frontend/src/assets/xAppControl.png and /dev/null differ
diff --git a/dashboard/webapp-frontend/src/environments/environment.prod.ts b/dashboard/webapp-frontend/src/environments/environment.prod.ts
deleted file mode 100644
index 58489a2c..00000000
--- a/dashboard/webapp-frontend/src/environments/environment.prod.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-export const environment = {
- production: true
-};
diff --git a/dashboard/webapp-frontend/src/environments/environment.ts b/dashboard/webapp-frontend/src/environments/environment.ts
deleted file mode 100644
index c7873a3b..00000000
--- a/dashboard/webapp-frontend/src/environments/environment.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-// This file can be replaced during build by using the `fileReplacements` array.
-// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
-// The list of file replacements can be found in `angular.json`.
-
-export const environment = {
- production: false
-};
-
-/*
- * For easier debugging in development mode, you can import the following file
- * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
- *
- * This import should be commented out in production mode because it will have a negative impact
- * on performance if an error is thrown.
- */
-// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
diff --git a/dashboard/webapp-frontend/src/favicon.ico b/dashboard/webapp-frontend/src/favicon.ico
deleted file mode 100644
index 00b0fd0e..00000000
Binary files a/dashboard/webapp-frontend/src/favicon.ico and /dev/null differ
diff --git a/dashboard/webapp-frontend/src/index.html b/dashboard/webapp-frontend/src/index.html
deleted file mode 100644
index f423e923..00000000
--- a/dashboard/webapp-frontend/src/index.html
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
- Non RT RIC Dashboard
-
-
-
-
-
-
-
-
diff --git a/dashboard/webapp-frontend/src/karma.conf.js b/dashboard/webapp-frontend/src/karma.conf.js
deleted file mode 100644
index a125d9b2..00000000
--- a/dashboard/webapp-frontend/src/karma.conf.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-// Karma configuration file, see link for more information
-// https://karma-runner.github.io/1.0/config/configuration-file.html
-
-module.exports = function (config) {
- config.set({
- basePath: '',
- frameworks: ['jasmine', '@angular-devkit/build-angular'],
- plugins: [
- require('karma-jasmine'),
- require('karma-chrome-launcher'),
- require('karma-jasmine-html-reporter'),
- require('karma-coverage-istanbul-reporter'),
- require('@angular-devkit/build-angular/plugins/karma')
- ],
- client: {
- clearContext: false // leave Jasmine Spec Runner output visible in browser
- },
- coverageIstanbulReporter: {
- dir: require('path').join(__dirname, '../coverage'),
- reports: ['html', 'lcovonly', 'text-summary'],
- fixWebpackSourcePaths: true
- },
- reporters: ['progress', 'kjhtml'],
- port: 9876,
- colors: true,
- logLevel: config.LOG_INFO,
- autoWatch: true,
- browsers: ['Chrome'],
- singleRun: false
- });
-};
diff --git a/dashboard/webapp-frontend/src/main.ts b/dashboard/webapp-frontend/src/main.ts
deleted file mode 100644
index 60c66e48..00000000
--- a/dashboard/webapp-frontend/src/main.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-import { enableProdMode } from '@angular/core';
-import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
-
-import { RdModule } from './app/rd.module';
-import { environment } from './environments/environment';
-
-if (environment.production) {
- enableProdMode();
-}
-
-platformBrowserDynamic().bootstrapModule(RdModule)
- .catch(err => console.error(err));
diff --git a/dashboard/webapp-frontend/src/polyfills.ts b/dashboard/webapp-frontend/src/polyfills.ts
deleted file mode 100644
index 09fd208a..00000000
--- a/dashboard/webapp-frontend/src/polyfills.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-/**
- * This file includes polyfills needed by Angular and is loaded before the app.
- * You can add your own extra polyfills to this file.
- *
- * This file is divided into 2 sections:
- * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
- * 2. Application imports. Files imported after ZoneJS that should be loaded before your main
- * file.
- *
- * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
- * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
- * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
- *
- * Learn more in https://angular.io/guide/browser-support
- */
-
-/***************************************************************************************************
- * BROWSER POLYFILLS
- */
-
-/** IE9, IE10, IE11, and Chrome <55 requires all of the following polyfills.
- * This also includes Android Emulators with older versions of Chrome and Google Search/Googlebot
- */
-
-// import 'core-js/es6/symbol';
-// import 'core-js/es6/object';
-// import 'core-js/es6/function';
-// import 'core-js/es6/parse-int';
-// import 'core-js/es6/parse-float';
-// import 'core-js/es6/number';
-// import 'core-js/es6/math';
-// import 'core-js/es6/string';
-// import 'core-js/es6/date';
-// import 'core-js/es6/array';
-// import 'core-js/es6/regexp';
-// import 'core-js/es6/map';
-// import 'core-js/es6/weak-map';
-// import 'core-js/es6/set';
-
-/** IE10 and IE11 requires the following for NgClass support on SVG elements */
-// import 'classlist.js'; // Run `npm install --save classlist.js`.
-
-/** IE10 and IE11 requires the following for the Reflect API. */
-// import 'core-js/es6/reflect';
-
-/**
- * Web Animations `@angular/platform-browser/animations`
- * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.
- * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).
- */
-// import 'web-animations-js'; // Run `npm install --save web-animations-js`.
-
-/**
- * By default, zone.js will patch all possible macroTask and DomEvents
- * user can disable parts of macroTask/DomEvents patch by setting following flags
- * because those flags need to be set before `zone.js` being loaded, and webpack
- * will put import in the top of bundle, so user need to create a separate file
- * in this directory (for example: zone-flags.ts), and put the following flags
- * into that file, and then add the following code before importing zone.js.
- * import './zone-flags.ts';
- *
- * The flags allowed in zone-flags.ts are listed here.
- *
- * The following flags will work for all browsers.
- *
- * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
- * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
- * (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
- *
- * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js
- * with the following flag, it will bypass `zone.js` patch for IE/Edge
- *
- * (window as any).__Zone_enable_cross_context_check = true;
- *
- */
-
-/***************************************************************************************************
- * Zone JS is required by default for Angular itself.
- */
-import 'zone.js/dist/zone'; // Included with Angular CLI.
-
-
-/***************************************************************************************************
- * APPLICATION IMPORTS
- */
diff --git a/dashboard/webapp-frontend/src/styles.scss b/dashboard/webapp-frontend/src/styles.scss
deleted file mode 100644
index c37fc42c..00000000
--- a/dashboard/webapp-frontend/src/styles.scss
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-@import '~bootstrap/dist/css/bootstrap.min.css';
-@import '~@angular/material/prebuilt-themes/deeppurple-amber.css';
-@import './styles/dark-theme';
-
-/* for sidenav to take a whole page */
-html,
-body {
- margin: 0;
- height: 100%;
- font-family: Helvetica, Arial, sans-serif;
-}
-
-/* notification */
-.confirm-dialog-container span.content-span {
- padding: 35px 16px 20px 16px;
- text-align: center;
- font-size: 20px;
-}
-
-.rd-global-page-title {
- margin-left: 0.5%;
- color: #432c85;
- font-size: 25px;
- font-weight: 100;
-}
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/styles/dark-theme.scss b/dashboard/webapp-frontend/src/styles/dark-theme.scss
deleted file mode 100644
index 6214081c..00000000
--- a/dashboard/webapp-frontend/src/styles/dark-theme.scss
+++ /dev/null
@@ -1,37 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-
-@import '~@angular/material/theming';
-@include mat-core();
-
-.dark-theme {
- color: white;
- $dark-primary: mat-palette($mat-blue-grey);
- $dark-accent: mat-palette($mat-amber, A200, A100, A400);
- $dark-warn: mat-palette($mat-red);
-
- $dark-theme: mat-dark-theme($dark-primary, $dark-accent, $dark-warn);
-
- @include angular-material-theme($dark-theme);
-}
-
-.dark-theme .rd-global-page-title {
- color: white;
-}
\ No newline at end of file
diff --git a/dashboard/webapp-frontend/src/test.ts b/dashboard/webapp-frontend/src/test.ts
deleted file mode 100644
index e9d6a820..00000000
--- a/dashboard/webapp-frontend/src/test.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 AT&T Intellectual Property
- * %%
- * 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===================================
- */
-// This file is required by karma.conf.js and loads recursively all the .spec and framework files
-
-import 'zone.js/dist/zone-testing';
-import { getTestBed } from '@angular/core/testing';
-import {
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting
-} from '@angular/platform-browser-dynamic/testing';
-
-declare const require: any;
-
-// First, initialize the Angular testing environment.
-getTestBed().initTestEnvironment(
- BrowserDynamicTestingModule,
- platformBrowserDynamicTesting()
-);
-// Then we find all the tests.
-const context = require.context('./', true, /\.spec\.ts$/);
-// And load the modules.
-context.keys().map(context);
diff --git a/dashboard/webapp-frontend/src/tsconfig.app.json b/dashboard/webapp-frontend/src/tsconfig.app.json
deleted file mode 100644
index 190fd300..00000000
--- a/dashboard/webapp-frontend/src/tsconfig.app.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "extends": "../tsconfig.json",
- "compilerOptions": {
- "outDir": "../out-tsc/app",
- "types": []
- },
- "exclude": [
- "test.ts",
- "**/*.spec.ts"
- ]
-}
diff --git a/dashboard/webapp-frontend/src/tsconfig.spec.json b/dashboard/webapp-frontend/src/tsconfig.spec.json
deleted file mode 100644
index de773363..00000000
--- a/dashboard/webapp-frontend/src/tsconfig.spec.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "../tsconfig.json",
- "compilerOptions": {
- "outDir": "../out-tsc/spec",
- "types": [
- "jasmine",
- "node"
- ]
- },
- "files": [
- "test.ts",
- "polyfills.ts"
- ],
- "include": [
- "**/*.spec.ts",
- "**/*.d.ts"
- ]
-}
diff --git a/dashboard/webapp-frontend/src/tslint.json b/dashboard/webapp-frontend/src/tslint.json
deleted file mode 100644
index 30581c63..00000000
--- a/dashboard/webapp-frontend/src/tslint.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "extends": "../tslint.json",
- "rules": {
- "directive-selector": [
- true,
- "attribute",
- "rd",
- "camelCase"
- ],
- "component-selector": [
- true,
- "element",
- "rd",
- "kebab-case"
- ]
- }
-}
diff --git a/dashboard/webapp-frontend/tsconfig.json b/dashboard/webapp-frontend/tsconfig.json
deleted file mode 100644
index 457bef42..00000000
--- a/dashboard/webapp-frontend/tsconfig.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "compileOnSave": false,
- "compilerOptions": {
- "baseUrl": "./",
- "downlevelIteration": true,
- "outDir": "./dist/out-tsc",
- "sourceMap": true,
- "declaration": false,
- "module": "esnext",
- "moduleResolution": "node",
- "emitDecoratorMetadata": true,
- "experimentalDecorators": true,
- "importHelpers": true,
- "target": "es5",
- "typeRoots": [
- "node_modules/@types"
- ],
- "lib": [
- "es2018",
- "dom"
- ]
- }
-}
diff --git a/dashboard/webapp-frontend/tslint.json b/dashboard/webapp-frontend/tslint.json
deleted file mode 100644
index a9193519..00000000
--- a/dashboard/webapp-frontend/tslint.json
+++ /dev/null
@@ -1,131 +0,0 @@
-{
- "rulesDirectory": [
- "codelyzer"
- ],
- "rules": {
- "arrow-return-shorthand": true,
- "callable-types": true,
- "class-name": true,
- "comment-format": [
- true,
- "check-space"
- ],
- "curly": true,
- "deprecation": {
- "severity": "warn"
- },
- "eofline": true,
- "forin": true,
- "import-blacklist": [
- true,
- "rxjs/Rx"
- ],
- "import-spacing": true,
- "indent": [
- true,
- "spaces"
- ],
- "interface-over-type-literal": true,
- "label-position": true,
- "max-line-length": [
- true,
- 140
- ],
- "member-access": false,
- "member-ordering": [
- true,
- {
- "order": [
- "static-field",
- "instance-field",
- "static-method",
- "instance-method"
- ]
- }
- ],
- "no-arg": true,
- "no-bitwise": true,
- "no-console": [
- true,
- "debug",
- "info",
- "time",
- "timeEnd",
- "trace"
- ],
- "no-construct": true,
- "no-debugger": true,
- "no-duplicate-super": true,
- "no-empty": false,
- "no-empty-interface": true,
- "no-eval": true,
- "no-inferrable-types": [
- true,
- "ignore-params"
- ],
- "no-misused-new": true,
- "no-non-null-assertion": true,
- "no-redundant-jsdoc": true,
- "no-shadowed-variable": true,
- "no-string-literal": false,
- "no-string-throw": true,
- "no-switch-case-fall-through": true,
- "no-trailing-whitespace": true,
- "no-unnecessary-initializer": true,
- "no-unused-expression": true,
- "no-use-before-declare": true,
- "no-var-keyword": true,
- "object-literal-sort-keys": false,
- "one-line": [
- true,
- "check-open-brace",
- "check-catch",
- "check-else",
- "check-whitespace"
- ],
- "prefer-const": true,
- "quotemark": [
- true,
- "single"
- ],
- "radix": true,
- "semicolon": [
- true,
- "always"
- ],
- "triple-equals": [
- true,
- "allow-null-check"
- ],
- "typedef-whitespace": [
- true,
- {
- "call-signature": "nospace",
- "index-signature": "nospace",
- "parameter": "nospace",
- "property-declaration": "nospace",
- "variable-declaration": "nospace"
- }
- ],
- "unified-signatures": true,
- "variable-name": false,
- "whitespace": [
- true,
- "check-branch",
- "check-decl",
- "check-operator",
- "check-separator",
- "check-type"
- ],
- "no-output-on-prefix": true,
- "no-inputs-metadata-property": true,
- "no-outputs-metadata-property": true,
- "no-host-metadata-property": true,
- "no-input-rename": true,
- "no-output-rename": true,
- "use-lifecycle-interface": true,
- "use-pipe-transform-interface": true,
- "component-class-suffix": true,
- "directive-class-suffix": true
- }
-}
diff --git a/pom.xml b/pom.xml
index a2564e35..840cb0f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -34,8 +34,7 @@
policy-agent
- sdnc-a1-controller
- dashboard
+ sdnc-a1-controllernear-rt-ric-simulator