summaryrefslogtreecommitdiffstats
path: root/sdnr/wt/odlux/apps/connectApp
diff options
context:
space:
mode:
Diffstat (limited to 'sdnr/wt/odlux/apps/connectApp')
-rw-r--r--sdnr/wt/odlux/apps/connectApp/.babelrc17
-rw-r--r--sdnr/wt/odlux/apps/connectApp/package.json40
-rw-r--r--sdnr/wt/odlux/apps/connectApp/pom.xml161
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts122
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/actions/requiredNetworkElementsActions.ts55
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/components/connectionStatusLog.tsx53
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/components/editNetworkElementDialog.tsx246
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/components/requiredNetworkElements.tsx210
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/components/unknownNetworkElements.tsx211
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/handlers/connectAppRootHandler.tsx42
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/handlers/connectionStatusLogHandler.tsx51
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/handlers/mountedNetworkElementsHandler.tsx111
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/handlers/requiredNetworkElementsHandler.tsx35
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/index.html26
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/models/connectionStatusLog.ts27
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/models/mountedNetworkElements.ts28
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/models/networkElementBase.ts22
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/models/requiredNetworkElements.ts27
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/models/topologyNetconf.ts53
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/plugin.tsx69
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/services/connectService.ts214
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src/views/connectView.tsx116
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src2/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/MyOdluxBundle.java68
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src2/main/resources/OSGI-INF/blueprint/blueprint.xml9
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src2/test/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/test/TestBundleRes.java45
-rw-r--r--sdnr/wt/odlux/apps/connectApp/src2/test/resources/test.js5
-rw-r--r--sdnr/wt/odlux/apps/connectApp/tsconfig.json37
-rw-r--r--sdnr/wt/odlux/apps/connectApp/webpack.config.js139
28 files changed, 0 insertions, 2239 deletions
diff --git a/sdnr/wt/odlux/apps/connectApp/.babelrc b/sdnr/wt/odlux/apps/connectApp/.babelrc
deleted file mode 100644
index 3d8cd1260..000000000
--- a/sdnr/wt/odlux/apps/connectApp/.babelrc
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "presets": [
- ["@babel/preset-react"],
- ["@babel/preset-env", {
- "targets": {
- "chrome": "66"
- },
- "spec": true,
- "loose": false,
- "modules": false,
- "debug": false,
- "useBuiltIns": "usage",
- "forceAllTransforms": true
- }]
- ],
- "plugins": []
-}
diff --git a/sdnr/wt/odlux/apps/connectApp/package.json b/sdnr/wt/odlux/apps/connectApp/package.json
deleted file mode 100644
index 269fa2a8c..000000000
--- a/sdnr/wt/odlux/apps/connectApp/package.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "name": "@odlux/connect-app",
- "version": "0.1.1",
- "description": "A react based modular UI to display network connect data from a database.",
- "main": "index.js",
- "scripts": {
- "start": "webpack-dev-server --env debug",
- "build": "webpack --env release --config webpack.config.js",
- "build:dev": "webpack --env debug --config webpack.config.js"
- },
- "repository": {
- "type": "git",
- "url": "https://git.mfico.de/highstreet-technologies/odlux.git"
- },
- "keywords": [
- "reactjs",
- "redux",
- "ui",
- "framework"
- ],
- "author": "Matthias Fischer",
- "license": "Apache-2.0",
- "dependencies": {
- "@odlux/framework" : "*"
- },
- "peerDependencies": {
- "@types/react": "16.4.14",
- "@types/react-dom": "16.0.8",
- "@types/react-router-dom": "4.3.1",
- "@material-ui/core": "3.8.3",
- "@material-ui/icons": "3.0.2",
- "@types/classnames": "2.2.6",
- "@types/flux": "3.1.8",
- "@types/jquery": "3.3.10",
- "jquery": "3.3.1",
- "react": "16.5.2",
- "react-dom": "16.5.2",
- "react-router-dom": "4.3.1"
- }
-} \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/pom.xml b/sdnr/wt/odlux/apps/connectApp/pom.xml
deleted file mode 100644
index d85feb127..000000000
--- a/sdnr/wt/odlux/apps/connectApp/pom.xml
+++ /dev/null
@@ -1,161 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <parent>
- <groupId>org.onap.ccsdk.parent</groupId>
- <artifactId>odlparent</artifactId>
- <version>1.5.1-SNAPSHOT</version>
- <relativePath/>
- </parent>
-
- <groupId>org.onap.ccsdk.features.sdnr.wt</groupId>
- <artifactId>sdnr-wt-odlux-app-connectApp</artifactId>
- <version>0.7.0-SNAPSHOT</version>
- <packaging>bundle</packaging>
-
- <name>sdnr-wt-odlux-app-connectApp</name>
- <licenses>
- <license>
- <name>Apache License, Version 2.0</name>
- <url>http://www.apache.org/licenses/LICENSE-2.0</url>
- </license>
- </licenses>
-
- <dependencies>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>sdnr-wt-odlux-core-model</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>sdnr-wt-odlux-core-provider</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <pluginRepositories>
- <pluginRepository>
- <id>highstreet repo</id>
- <url>https://cloud-highstreet-technologies.com/mvn/</url>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>always</updatePolicy>
- </snapshots>
- </pluginRepository>
- </pluginRepositories>
-
- <build>
- <sourceDirectory>src2/main/java</sourceDirectory>
- <resources>
- <resource>
- <directory>dist</directory>
- <targetPath>odlux</targetPath>
- </resource>
- <resource>
- <directory>src2/main/resources</directory>
- </resource>
- <resource>
- <directory>src2/test/resources</directory>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <artifactId>maven-clean-plugin</artifactId>
- <configuration>
- <filesets>
- <fileset>
- <directory>dist</directory>
- <followSymlinks>false</followSymlinks>
- </fileset>
- <fileset>
- <directory>node</directory>
- <followSymlinks>false</followSymlinks>
- </fileset>
- <fileset>
- <directory>node_modules</directory>
- <followSymlinks>false</followSymlinks>
- </fileset>
- <fileset>
- <directory>../node_modules</directory>
- <followSymlinks>false</followSymlinks>
- </fileset>
- <!-- eclipse bug build bin folder in basedir -->
- <fileset>
- <directory>bin</directory>
- <followSymlinks>false</followSymlinks>
- </fileset>
- </filesets>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <executions>
- <execution>
- <id>add-test-source</id>
- <phase>generate-test-sources</phase>
- <goals>
- <goal>add-test-source</goal>
- </goals>
- <configuration>
- <sources>
- <source>src2/test/java</source>
- </sources>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>de.jacksitlab</groupId>
- <artifactId>frontend-maven-plugin</artifactId>
- <version>1.7.1</version>
- <executions>
- <execution>
- <id>install node and yarn</id>
- <goals>
- <goal>install-node-and-yarn</goal>
- </goals>
- <!-- optional: default phase is "generate-resources" -->
- <phase>initialize</phase>
- <configuration>
- <nodeVersion>v8.10.0</nodeVersion>
- <yarnVersion>v1.12.3</yarnVersion>
- </configuration>
- </execution>
- <execution>
- <id>yarn build</id>
- <goals>
- <goal>yarn</goal>
- </goals>
- <configuration>
- <arguments>run build</arguments>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- </plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Import-Package>org.onap.ccsdk.features.sdnr.wt.odlux.model.*,com.opensymphony.*</Import-Package>
- <Private-Package/>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts b/sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts
deleted file mode 100644
index 12f7c8594..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/actions/mountedNetworkElementsActions.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import { Action } from '../../../../framework/src/flux/action';
-import { Dispatch } from '../../../../framework/src/flux/store';
-
-import { MountedNetworkElementType } from '../models/mountedNetworkElements';
-import { RequiredNetworkElementType } from '../models/requiredNetworkElements';
-
-import { connectService } from '../services/connectService';
-import { AddSnackbarNotification } from '../../../../framework/src/actions/snackbarActions';
-
-/** Represents the base action. */
-export class BaseAction extends Action { }
-
-/** Represents an action causing the store to load all mounted network elements. */
-export class LoadAllMountedNetworkElementsAction extends BaseAction { }
-
-/** Represents an action causing the store to update all mounted network elements. */
-export class AllMountedNetworkElementsLoadedAction extends BaseAction {
- constructor(public mountedNetworkElements: MountedNetworkElementType[] | null, public error?: string) {
- super();
- }
-}
-
-/** Represents an action causing the store to update all mounted network elements. */
-export class AddOrUpdateMountedNetworkElement extends BaseAction {
- constructor(public mountedNetworkElement: MountedNetworkElementType | null, public error?: string) {
- super();
- }
-}
-
-export class RemoveMountedNetworkElement extends BaseAction {
- constructor(public mountId: string) {
- super();
- }
-}
-
-export class UpdateConnectionStateMountedNetworkElement extends BaseAction {
- constructor(public mountId: string, connectionState: string) {
- super();
- }
-}
-
-
-export class UpdateRequiredMountedNetworkElement extends BaseAction {
- constructor(public mountId: string, public required: boolean) {
- super();
- }
-}
-
-/**
- * Represents an action crator for a async thunk action to add an allready mounted element to the state of this app.
- * Note: Use this action to add created object notified by the websocket.
-*/
-export const addMountedNetworkElementAsyncActionCreator = (mountId: string) => async (dispatch: Dispatch) => {
- return connectService.getMountedNetworkElementByMountId(mountId).then(mountedNetworkElement => {
- mountedNetworkElement && dispatch(new AddOrUpdateMountedNetworkElement(mountedNetworkElement));
- }).catch(error => {
- dispatch(new AddOrUpdateMountedNetworkElement(null, error));
- });
-};
-
-export const updateMountedNetworkElementAsyncActionCreator = (mountId: string) => async (dispatch: Dispatch) => {
- return connectService.getMountedNetworkElementByMountId(mountId).then(mountedNetworkElement => {
- if (mountedNetworkElement) {
- dispatch(new AddOrUpdateMountedNetworkElement(mountedNetworkElement));
- } else {
- dispatch(new RemoveMountedNetworkElement(mountId));
- }
- }).catch(error => {
- dispatch(new AddOrUpdateMountedNetworkElement(null, error));
- });
-};
-
-/** Represents an async thunk action to load all mounted network elements. */
-export const loadAllMountedNetworkElementsAsync = (dispatch: Dispatch) => {
- dispatch(new LoadAllMountedNetworkElementsAction());
- return connectService.getMountedNetworkElementsList().then(mountedNetworkElements => {
- mountedNetworkElements && dispatch(new AllMountedNetworkElementsLoadedAction(mountedNetworkElements));
- }).catch(error => {
- dispatch(new AllMountedNetworkElementsLoadedAction(null, error));
- });
-};
-
-/** Represents an action crator for a async thunk action to mount a network element. */
-export const mountNetworkElementAsyncActionCreator = (networkElement: RequiredNetworkElementType) => (dispatch: Dispatch) => {
- return connectService.mountNetworkElement(networkElement).then((success) => {
- success && (
- dispatch(addMountedNetworkElementAsyncActionCreator(networkElement.mountId)) &&
- dispatch(new AddSnackbarNotification({ message: `Requesting mount [${networkElement.mountId}]`, options: { variant: 'info' } }))
- ) || dispatch(new AddSnackbarNotification({ message: `Failed to mount [${ networkElement.mountId }]`, options: { variant: 'warning' } }));
- }).catch(error => {
- dispatch(new AddOrUpdateMountedNetworkElement(null, error));
- });
-};
-
-/** Represents an action crator for a async thunk action to unmount a network element. */
-export const unmountNetworkElementAsyncActionCreator = (mountId: string) => (dispatch: Dispatch) => {
- return connectService.unmountNetworkElement(mountId).then((success) => {
- success && dispatch(new AddSnackbarNotification({ message: `Requesting unmount [${ mountId }]`, options: { variant: 'info' } }))
- || dispatch(new AddSnackbarNotification({ message: `Failed to unmount [${ mountId }]`, options: { variant: 'warning' } }));
- }).catch(error => {
- dispatch(new AddOrUpdateMountedNetworkElement(null, error));
- });
-};
-
-
diff --git a/sdnr/wt/odlux/apps/connectApp/src/actions/requiredNetworkElementsActions.ts b/sdnr/wt/odlux/apps/connectApp/src/actions/requiredNetworkElementsActions.ts
deleted file mode 100644
index 0e55cadf4..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/actions/requiredNetworkElementsActions.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import { Action } from '../../../../framework/src/flux/action';
-import { Dispatch } from '../../../../framework/src/flux/store';
-import { RequiredNetworkElementType } from '../models/requiredNetworkElements';
-import { requiredNetworkElementsReloadAction } from '../handlers/requiredNetworkElementsHandler';
-import { UpdateRequiredMountedNetworkElement } from '../actions/mountedNetworkElementsActions';
-
-import { AddSnackbarNotification } from '../../../../framework/src/actions/snackbarActions';
-
-import { connectService } from '../services/connectService';
-
-/** Represents the base action. */
-export class BaseAction extends Action { }
-
-
-/** Represents an async thunk action creator to add an element to the required network elements. */
-export const addToRequiredNetworkElementsAsyncActionCreator = (element: RequiredNetworkElementType) => (dispatch: Dispatch) => {
- connectService.insertRequiredNetworkElement(element).then(_ => {
- window.setTimeout(() => {
- dispatch(requiredNetworkElementsReloadAction);
- dispatch(new UpdateRequiredMountedNetworkElement(element.mountId, true));
- dispatch(new AddSnackbarNotification({ message: `Successfully added [${ element.mountId }]`, options: { variant: 'success' } }));
- }, 900);
- });
-};
-
-/** Represents an async thunk action creator to delete an element from the required network elements. */
-export const removeFromRequiredNetworkElementsAsyncActionCreator = (element: RequiredNetworkElementType) => (dispatch: Dispatch) => {
- connectService.deleteRequiredNetworkElement(element).then(_ => {
- window.setTimeout(() => {
- dispatch(requiredNetworkElementsReloadAction);
- dispatch(new UpdateRequiredMountedNetworkElement(element.mountId, false));
- dispatch(new AddSnackbarNotification({ message: `Successfully removed [${ element.mountId }]`, options: { variant: 'success' } }));
- }, 900);
- });
-};
-
-
-
diff --git a/sdnr/wt/odlux/apps/connectApp/src/components/connectionStatusLog.tsx b/sdnr/wt/odlux/apps/connectApp/src/components/connectionStatusLog.tsx
deleted file mode 100644
index 3cc104836..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/components/connectionStatusLog.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import * as React from 'react';
-import connect, { IDispatcher, Connect } from '../../../../framework/src/flux/connect';
-import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore';
-import { MaterialTable, ColumnType, MaterialTableCtorType } from '../../../../framework/src/components/material-table';
-
-import { createConnectionStatusLogActions, createConnectionStatusLogProperties } from '../handlers/connectionStatusLogHandler';
-import { ConnectionStatusLogType } from '../models/connectionStatusLog';
-
-const mapProps = (state: IApplicationStoreState) => ({
- connectionStatusLogProperties: createConnectionStatusLogProperties(state),
-});
-
-const mapDispatch = (dispatcher: IDispatcher) => ({
- connectionStatusLogActions: createConnectionStatusLogActions(dispatcher.dispatch),
-});
-
-const ConnectionStatusTable = MaterialTable as MaterialTableCtorType<ConnectionStatusLogType>;
-
-type ConnectionStatusLogComponentProps = Connect<typeof mapProps, typeof mapDispatch>;
-
-class ConnectionStatusLogComponent extends React.Component<ConnectionStatusLogComponentProps> {
- render(): JSX.Element {
- return (
- <ConnectionStatusTable columns={ [
- { property: "timeStamp", title: "Time", type: ColumnType.text },
- { property: "objectId", title: "Name", type: ColumnType.text },
- { property: "elementStatus", title: "Connection status", type: ColumnType.text, disableFilter: true, disableSorting: true },
- ] } idProperty="_id" { ...this.props.connectionStatusLogActions } {...this.props.connectionStatusLogProperties } >
- </ConnectionStatusTable>
- );
- };
-
-}
-
-export const ConnectionStatusLog = connect(mapProps, mapDispatch)(ConnectionStatusLogComponent);
-export default ConnectionStatusLog; \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/src/components/editNetworkElementDialog.tsx b/sdnr/wt/odlux/apps/connectApp/src/components/editNetworkElementDialog.tsx
deleted file mode 100644
index 32b23a41e..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/components/editNetworkElementDialog.tsx
+++ /dev/null
@@ -1,246 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import * as React from 'react';
-
-import Button from '@material-ui/core/Button';
-import TextField from '@material-ui/core/TextField';
-import Dialog from '@material-ui/core/Dialog';
-import DialogActions from '@material-ui/core/DialogActions';
-import DialogContent from '@material-ui/core/DialogContent';
-import DialogContentText from '@material-ui/core/DialogContentText';
-import DialogTitle from '@material-ui/core/DialogTitle';
-
-import { IDispatcher, connect, Connect } from '../../../../framework/src/flux/connect';
-
-import {
- addToRequiredNetworkElementsAsyncActionCreator,
- removeFromRequiredNetworkElementsAsyncActionCreator
-} from '../actions/requiredNetworkElementsActions';
-
-import { unmountNetworkElementAsyncActionCreator, mountNetworkElementAsyncActionCreator } from '../actions/mountedNetworkElementsActions';
-import { RequiredNetworkElementType } from '../models/requiredNetworkElements';
-
-export enum EditNetworkElementDialogMode {
- None = "none",
- UnknownNetworkElementToRequiredNetworkElements = "unknownNetworkElementToRequiredNetworkElements",
- RequiredNetworkElementToUnknownNetworkElements = "requiredNetworkElementToUnknownNetworkElements",
- MountNetworkElementToRequiredNetworkElements = "mountNetworkElementToRequiredNetworkElements",
- MountNetworkElementToUnknonwNetworkElements = "mountNetworkElementToRequiredUnknownElements",
- MountNetworkElement = "mountNetworkElement",
- UnmountNetworkElement = "unmountNetworkElement",
-}
-
-const mapDispatch = (dispatcher: IDispatcher) => ({
- addToRequiredNetworkElements: (element: RequiredNetworkElementType) => {
- dispatcher.dispatch(addToRequiredNetworkElementsAsyncActionCreator(element));
- },
- removeFromRequiredNetworkElements: (element: RequiredNetworkElementType) => {
- dispatcher.dispatch(removeFromRequiredNetworkElementsAsyncActionCreator(element));
- },
- mountNetworkElement: (element: RequiredNetworkElementType) => {
- dispatcher.dispatch(mountNetworkElementAsyncActionCreator(element));
- },
- mountAndRquireNetworkElement: (element: RequiredNetworkElementType) => {
- dispatcher.dispatch(addToRequiredNetworkElementsAsyncActionCreator(element));
- dispatcher.dispatch(mountNetworkElementAsyncActionCreator(element));
- },
- unmountNetworkElement: (element: RequiredNetworkElementType) => {
- dispatcher.dispatch(unmountNetworkElementAsyncActionCreator(element && element.mountId));
- }
-}
-);
-
-type DialogSettings = {
- dialogTitle: string,
- dialogDescription: string,
- applyButtonText: string,
- cancelButtonText: string,
- enableMountIdEditor: boolean,
- enableUsernameEditor: boolean,
- enableExtendedEditor: boolean,
-}
-
-const settings: { [key: string]: DialogSettings } = {
- [EditNetworkElementDialogMode.None]: {
- dialogTitle: "",
- dialogDescription: "",
- applyButtonText: "",
- cancelButtonText: "",
- enableMountIdEditor: false,
- enableUsernameEditor: false,
- enableExtendedEditor: false,
- },
- [EditNetworkElementDialogMode.UnknownNetworkElementToRequiredNetworkElements] : {
- dialogTitle: "Add to required network elements" ,
- dialogDescription: "Create a new NetworkElement in planning database as clone of existing real NetworkElement." ,
- applyButtonText: "Add to required network elements" ,
- cancelButtonText: "Cancel",
- enableMountIdEditor: false,
- enableUsernameEditor: true,
- enableExtendedEditor: false,
- },
- [EditNetworkElementDialogMode.RequiredNetworkElementToUnknownNetworkElements]: {
- dialogTitle: "Remove from required network elements",
- dialogDescription: "Do you really want to remove the required element:",
- applyButtonText: "Remove network element",
- cancelButtonText: "Cancel",
- enableMountIdEditor: false,
- enableUsernameEditor: false,
- enableExtendedEditor: false,
- },
- [EditNetworkElementDialogMode.MountNetworkElementToUnknonwNetworkElements]: {
- dialogTitle: "Mount to unknown network elements",
- dialogDescription: "Mount this network element:",
- applyButtonText: "Mount network element",
- cancelButtonText: "Cancel",
- enableMountIdEditor: true,
- enableUsernameEditor: true,
- enableExtendedEditor: true,
- },
- [EditNetworkElementDialogMode.MountNetworkElementToRequiredNetworkElements]: {
- dialogTitle: "Mount to required network elements",
- dialogDescription: "Mount this network element:",
- applyButtonText: "Mount network element",
- cancelButtonText: "Cancel",
- enableMountIdEditor: true,
- enableUsernameEditor: true,
- enableExtendedEditor: true,
- },
- [EditNetworkElementDialogMode.MountNetworkElement]: {
- dialogTitle: "Mount network element",
- dialogDescription: "mount this network element:",
- applyButtonText: "mount network element",
- cancelButtonText: "Cancel",
- enableMountIdEditor: false,
- enableUsernameEditor: false,
- enableExtendedEditor: false,
- },
- [EditNetworkElementDialogMode.UnmountNetworkElement]: {
- dialogTitle: "Unmount network element",
- dialogDescription: "unmount this network element:",
- applyButtonText: "Unmount network element",
- cancelButtonText: "Cancel",
- enableMountIdEditor: false,
- enableUsernameEditor: false,
- enableExtendedEditor: false,
- },
-}
-
-type EditNetworkElementDialogComponentProps = Connect<undefined,typeof mapDispatch> & {
- mode: EditNetworkElementDialogMode;
- initialNetworkElement: RequiredNetworkElementType;
- onClose: () => void;
-};
-
-type EditNetworkElementDialogComponentState = RequiredNetworkElementType & {
- required: boolean;
-};
-
-class EditNetworkElementDialogComponent extends React.Component<EditNetworkElementDialogComponentProps, EditNetworkElementDialogComponentState> {
- constructor(props: EditNetworkElementDialogComponentProps) {
- super(props);
-
- this.state = {
- mountId: this.props.initialNetworkElement.mountId,
- host: this.props.initialNetworkElement.host,
- port: this.props.initialNetworkElement.port,
- password: this.props.initialNetworkElement.password,
- username: this.props.initialNetworkElement.username,
- required: false
- };
- }
-
- render(): JSX.Element {
- const setting = settings[this.props.mode];
- return (
- <Dialog open={ this.props.mode !== EditNetworkElementDialogMode.None }>
- <DialogTitle id="form-dialog-title">{ setting.dialogTitle }</DialogTitle>
- <DialogContent>
- <DialogContentText>
- { setting.dialogDescription }
- </DialogContentText>
- <TextField disabled={ !setting.enableMountIdEditor } spellCheck={false} autoFocus margin="dense" id="name" label="Name" type="text" fullWidth value={ this.state.mountId } onChange={(event)=>{ this.setState({mountId: event.target.value}); } } />
- <TextField disabled={ !setting.enableMountIdEditor } spellCheck={false} margin="dense" id="ipaddress" label="IP address" type="text" fullWidth value={ this.state.host } onChange={(event)=>{ this.setState({host: event.target.value}); } }/>
- <TextField disabled={ !setting.enableMountIdEditor } spellCheck={false} margin="dense" id="netconfport" label="NetConf port" type="number" fullWidth value={ this.state.port.toString() } onChange={(event)=>{ this.setState({port: +event.target.value}); } }/>
- { setting.enableUsernameEditor && <TextField disabled={ !setting.enableUsernameEditor } spellCheck={ false } margin="dense" id="username" label="Username" type="text" fullWidth value={ this.state.username } onChange={ (event) => { this.setState({ username: event.target.value }); } } /> || null }
- { setting.enableUsernameEditor && <TextField disabled={ !setting.enableUsernameEditor } spellCheck={ false } margin="dense" id="password" label="Password" type="password" fullWidth value={ this.state.password } onChange={ (event) => { this.setState({ password: event.target.value }); } } /> || null }
- </DialogContent>
- <DialogActions>
- <Button onClick={ (event) => {
- this.onApply({
- mountId: this.state.mountId,
- host: this.state.host,
- port: this.state.port,
- username: this.state.username,
- password: this.state.password
- });
- event.preventDefault();
- event.stopPropagation();
- } } > { setting.applyButtonText } </Button>
- <Button onClick={ (event) => {
- this.onCancel();
- event.preventDefault();
- event.stopPropagation();
- } } color="secondary"> { setting.cancelButtonText } </Button>
- </DialogActions>
- </Dialog>
- )
- }
-
- private onApply = (element: RequiredNetworkElementType) => {
- this.props.onClose && this.props.onClose();
- switch (this.props.mode) {
- case EditNetworkElementDialogMode.UnknownNetworkElementToRequiredNetworkElements:
- element && this.props.addToRequiredNetworkElements(element);
- break;
- case EditNetworkElementDialogMode.RequiredNetworkElementToUnknownNetworkElements:
- element && this.props.removeFromRequiredNetworkElements(element);
- break;
- case EditNetworkElementDialogMode.MountNetworkElementToUnknonwNetworkElements:
- element && this.props.mountNetworkElement(element);
- break;
- case EditNetworkElementDialogMode.MountNetworkElementToRequiredNetworkElements:
- element && this.props.mountAndRquireNetworkElement(element);
- break;
- case EditNetworkElementDialogMode.MountNetworkElement:
- element && this.props.mountNetworkElement(element);
- break;
- case EditNetworkElementDialogMode.UnmountNetworkElement:
- element && this.props.unmountNetworkElement(element);
- break;
- }
- };
-
- private onCancel = () => {
- this.props.onClose && this.props.onClose();
- }
-
- static getDerivedStateFromProps(props: EditNetworkElementDialogComponentProps, state: EditNetworkElementDialogComponentState & { _initialNetworkElement: RequiredNetworkElementType }): EditNetworkElementDialogComponentState & { _initialNetworkElement: RequiredNetworkElementType } {
- if (props.initialNetworkElement !== state._initialNetworkElement) {
- state = {
- ...state,
- ...props.initialNetworkElement,
- _initialNetworkElement: props.initialNetworkElement,
- };
- }
- return state;
- }
-}
-
-export const EditNetworkElementDialog = connect(undefined, mapDispatch)(EditNetworkElementDialogComponent);
-export default EditNetworkElementDialog; \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/src/components/requiredNetworkElements.tsx b/sdnr/wt/odlux/apps/connectApp/src/components/requiredNetworkElements.tsx
deleted file mode 100644
index 2fb7594aa..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/components/requiredNetworkElements.tsx
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import * as React from 'react';
-import { Theme, createStyles, withStyles, WithStyles } from '@material-ui/core/styles';
-
-import AddIcon from '@material-ui/icons/Add';
-import LinkIcon from '@material-ui/icons/Link';
-import LinkOffIcon from '@material-ui/icons/LinkOff';
-import RemoveIcon from '@material-ui/icons/RemoveCircleOutline';
-
-import Button from '@material-ui/core/Button';
-import IconButton from '@material-ui/core/IconButton';
-
-import { MaterialTable, ColumnType, MaterialTableCtorType } from '../../../../framework/src/components/material-table';
-import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore';
-import { connect, Connect, IDispatcher } from '../../../../framework/src/flux/connect';
-import { NavigateToApplication } from '../../../../framework/src/actions/navigationActions';
-
-import { RequiredNetworkElementType } from '../models/requiredNetworkElements';
-import { createRequiredNetworkElementsActions, createRequiredNetworkElementsProperties } from '../handlers/requiredNetworkElementsHandler';
-
-import EditNetworkElementDialog, { EditNetworkElementDialogMode } from './editNetworkElementDialog';
-import { Tooltip } from '@material-ui/core';
-import { NetworkElementBaseType } from 'models/networkElementBase';
-
-const styles = (theme: Theme) => createStyles({
- connectionStatusConnected: {
- color: 'darkgreen',
- },
- connectionStatusConnecting: {
- color: 'blue',
- },
- connectionStatusDisconnected: {
- color: 'red',
- },
- button: {
- margin: 0,
- padding: "6px 6px",
- minWidth: 'unset'
- },
- spacer: {
- marginLeft: theme.spacing.unit,
- marginRight: theme.spacing.unit,
- display: "inline"
- }
-});
-
-const mapProps = (state: IApplicationStoreState) => ({
- requiredNetworkElementsProperties: createRequiredNetworkElementsProperties(state),
- mountedNetworkElements: state.connect.mountedNetworkElements
-});
-
-const mapDispatch = (dispatcher: IDispatcher) => ({
- requiredNetworkElementsActions: createRequiredNetworkElementsActions(dispatcher.dispatch),
- navigateToApplication: (applicationName: string, path?: string) => dispatcher.dispatch(new NavigateToApplication(applicationName, path)),
-});
-
-type RequiredNetworkElementsListComponentProps = WithStyles<typeof styles> & Connect<typeof mapProps, typeof mapDispatch>;
-type RequiredNetworkElementsListComponentState = {
- networkElementToEdit: RequiredNetworkElementType,
- networkElementEditorMode: EditNetworkElementDialogMode
-}
-
-const emptyRequireNetworkElement = { mountId: '', host: '', port: 0 };
-
-const RequiredNetworkElementTable = MaterialTable as MaterialTableCtorType<RequiredNetworkElementType>;
-
-export class RequiredNetworkElementsListComponent extends React.Component<RequiredNetworkElementsListComponentProps, RequiredNetworkElementsListComponentState> {
-
- constructor(props: RequiredNetworkElementsListComponentProps) {
- super(props);
-
- this.state = {
- networkElementToEdit: emptyRequireNetworkElement,
- networkElementEditorMode: EditNetworkElementDialogMode.None
- };
- }
-
- // private navigationCreator
-
- render(): JSX.Element {
- const { classes } = this.props;
- const { networkElementToEdit } = this.state;
- const addRequireNetworkElementAction = {
- icon: AddIcon, tooltip: 'Add', onClick: () => {
- this.setState({
- networkElementEditorMode: EditNetworkElementDialogMode.MountNetworkElementToRequiredNetworkElements,
- networkElementToEdit: emptyRequireNetworkElement,
- });
- }
- };
- return (
- <>
- <RequiredNetworkElementTable customActionButtons={ [addRequireNetworkElementAction] } columns={ [
- { property: "mountId", title: "Name", type: ColumnType.text },
- {
- property: "connectionStatus", title: "Connection Status", type: ColumnType.custom, disableFilter: true, disableSorting: true, customControl: ({ rowData }) => {
- const unknownNetworkElement = this.props.mountedNetworkElements.elements.find(el => el.mountId === rowData.mountId);
- const connectionStatus = unknownNetworkElement && unknownNetworkElement.connectionStatus || 'disconnected';
- const cssClasses = connectionStatus === "connected"
- ? classes.connectionStatusConnected
- : connectionStatus === "disconnected"
- ? classes.connectionStatusDisconnected
- : classes.connectionStatusConnecting
- return <div className={ cssClasses } >{ connectionStatus } </div>
-
- }
- },
- { property: "host", title: "Host", type: ColumnType.text },
- { property: "port", title: "Port", type: ColumnType.text },
- // { property: "username", title: "Username", type: ColumnType.text },
- // { property: "password", title: "Password", type: ColumnType.text },
- {
- property: "actions", title: "Actions", type: ColumnType.custom, customControl: ({ rowData }) => {
- const unknownNetworkElement = this.props.mountedNetworkElements.elements.find(el => el.mountId === rowData.mountId);
- const connectionStatus = unknownNetworkElement && unknownNetworkElement.connectionStatus || 'disconnected';
- return (
- <>
- <div className={ classes.spacer }>
- <Tooltip title={ "Mount" } ><IconButton className={ classes.button } onClick={ event => this.onOpenMountdNetworkElementsDialog(event, rowData) }><LinkIcon /></IconButton></Tooltip>
- <Tooltip title={ "Unmount" } ><IconButton className={ classes.button } onClick={ event => this.onOpenUnmountdNetworkElementsDialog(event, rowData) }><LinkOffIcon /></IconButton></Tooltip>
- <Tooltip title={ "Remove" } ><IconButton className={ classes.button } onClick={ event => this.onOpenRemoveRequiredNetworkElementDialog(event, rowData) } ><RemoveIcon /></IconButton></Tooltip>
- </div>
- <div className={ classes.spacer }>
- <Tooltip title={ "Info" } ><Button className={ classes.button } >I</Button></Tooltip>
- </div>
- <div className={ classes.spacer }>
- <Tooltip title={ "Fault" } ><Button className={ classes.button } onClick={ this.navigateToApplicationHandlerCreator("fault", rowData) } >F</Button></Tooltip>
- <Tooltip title={"Configure"} ><Button className={classes.button} onClick={this.navigateToApplicationHandlerCreator("configuration", rowData)} >C</Button></Tooltip>
- <Tooltip title={ "Accounting " } ><Button className={ classes.button } onClick={ this.navigateToApplicationHandlerCreator("accounting", rowData) }>A</Button></Tooltip>
- <Tooltip title={ "Performance" } ><Button className={ classes.button } onClick={ this.navigateToApplicationHandlerCreator("performance", rowData) }>P</Button></Tooltip>
- <Tooltip title={ "Security" } ><Button className={ classes.button } onClick={ this.navigateToApplicationHandlerCreator("security", rowData) }>S</Button></Tooltip>
- </div>
- </>
- )
- }
- },
- ] } idProperty="mountId" { ...this.props.requiredNetworkElementsActions } { ...this.props.requiredNetworkElementsProperties } asynchronus >
- </RequiredNetworkElementTable>
- <EditNetworkElementDialog
- initialNetworkElement={ networkElementToEdit }
- mode={ this.state.networkElementEditorMode }
- onClose={ this.onCloseEditNetworkElementDialog }
- />
- </>
- );
- };
-
- public componentDidMount() {
- this.props.requiredNetworkElementsActions.onRefresh();
- }
-
- private onOpenRemoveRequiredNetworkElementDialog = (event: React.MouseEvent<HTMLElement>, element: RequiredNetworkElementType) => {
- this.setState({
- networkElementToEdit: element,
- networkElementEditorMode: EditNetworkElementDialogMode.RequiredNetworkElementToUnknownNetworkElements
- });
- event.preventDefault();
- event.stopPropagation();
- }
-
- private onOpenUnmountdNetworkElementsDialog = (event: React.MouseEvent<HTMLElement>, element: RequiredNetworkElementType) => {
- this.setState({
- networkElementToEdit: element,
- networkElementEditorMode: EditNetworkElementDialogMode.UnmountNetworkElement
- });
- event.preventDefault();
- event.stopPropagation();
- }
-
- private onOpenMountdNetworkElementsDialog = (event: React.MouseEvent<HTMLElement>, element: RequiredNetworkElementType) => {
- this.setState({
- networkElementToEdit: element,
- networkElementEditorMode: EditNetworkElementDialogMode.MountNetworkElement
- });
- event.preventDefault();
- event.stopPropagation();
- }
-
- private onCloseEditNetworkElementDialog = () => {
- this.setState({
- networkElementEditorMode: EditNetworkElementDialogMode.None,
- networkElementToEdit: emptyRequireNetworkElement,
- });
- }
-
- private navigateToApplicationHandlerCreator = (applicationName: string, element: NetworkElementBaseType) => (event: React.MouseEvent<HTMLElement>) => {
- this.props.navigateToApplication(applicationName, element.mountId);
- event.preventDefault();
- event.stopPropagation();
- }
-}
-
-export const RequiredNetworkElementsList = withStyles(styles)(connect(mapProps, mapDispatch)(RequiredNetworkElementsListComponent));
-export default RequiredNetworkElementsList; \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/src/components/unknownNetworkElements.tsx b/sdnr/wt/odlux/apps/connectApp/src/components/unknownNetworkElements.tsx
deleted file mode 100644
index 62b969575..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/components/unknownNetworkElements.tsx
+++ /dev/null
@@ -1,211 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import * as React from 'react';
-import { Theme, createStyles, WithStyles, withStyles, Tooltip } from '@material-ui/core';
-
-import AddIcon from '@material-ui/icons/Add';
-import LinkOffIcon from '@material-ui/icons/LinkOff';
-import AddCircleIcon from '@material-ui/icons/AddCircleOutline';
-
-import Button from '@material-ui/core/Button';
-import IconButton from '@material-ui/core/IconButton';
-
-import { IApplicationStoreState } from '../../../../framework/src/store/applicationStore';
-import { MaterialTable, ColumnType, MaterialTableCtorType } from '../../../../framework/src/components/material-table';
-import { Connect, connect, IDispatcher } from '../../../../framework/src/flux/connect';
-import { NavigateToApplication } from '../../../../framework/src/actions/navigationActions';
-
-import { RequiredNetworkElementType } from '../models/requiredNetworkElements';
-import { IMountedNetworkElementsState } from '../handlers/mountedNetworkElementsHandler';
-import EditNetworkElementDialog, { EditNetworkElementDialogMode } from './editNetworkElementDialog';
-import { NetworkElementBaseType } from 'models/networkElementBase';
-
-
-const styles = (theme: Theme) => createStyles({
- button: {
- margin: 0,
- padding: "6px 6px",
- minWidth: 'unset'
- },
- spacer: {
- marginLeft: theme.spacing.unit,
- marginRight: theme.spacing.unit,
- display: "inline"
- }
-});
-
-const mapProps = ({ connect: state }: IApplicationStoreState) => ({
- mountedNetworkElements: state.mountedNetworkElements
-});
-
-const mapDispatch = (dispatcher: IDispatcher) => ({
- navigateToApplication: (applicationName: string, path?: string) => dispatcher.dispatch(new NavigateToApplication(applicationName, path)),
-});
-type UnknownNetworkElementDisplayType = NetworkElementBaseType & {
- connectionStatus: string,
- coreModelRev: string,
- airInterfaceRev: string
-}
-
-type UnknownNetworkElementsListProps = WithStyles<typeof styles> & Connect<typeof mapProps, typeof mapDispatch> & {}
-
-type UnknownNetworkElementsListState = {
-
- unknownNetworkElements: UnknownNetworkElementDisplayType[];
-
- networkElementToEdit: RequiredNetworkElementType;
- networkElementEditorMode: EditNetworkElementDialogMode;
-}
-
-
-const emptyRequireNetworkElement = { mountId: '', host: '', port: 0 };
-const UnknownNetworkElementTable = MaterialTable as MaterialTableCtorType<UnknownNetworkElementDisplayType>;
-export class UnknownNetworkElementsListComponent extends React.Component<UnknownNetworkElementsListProps, UnknownNetworkElementsListState> {
-
- constructor(props: UnknownNetworkElementsListProps) {
- super(props);
-
- this.state = {
- unknownNetworkElements: [],
- networkElementToEdit: emptyRequireNetworkElement,
- networkElementEditorMode: EditNetworkElementDialogMode.None,
- };
- }
-
- static getDerivedStateFromProps(props: UnknownNetworkElementsListProps, state: UnknownNetworkElementsListState & { _mountedNetworkElements: IMountedNetworkElementsState }) {
- if (props.mountedNetworkElements != state._mountedNetworkElements) {
- state.unknownNetworkElements = props.mountedNetworkElements.elements.filter(element => !element.required).map(element => {
-
- // handle onfCoreModelRevision
- const onfCoreModelRevision = element.capabilities.find((cap) => {
- return cap.module === 'core-model' || cap.module === 'CoreModel-CoreNetworkModule-ObjectClasses' ;
- });
- const onfAirInterfaceRevision = element.capabilities.find((cap) => {
- return cap.module === 'microwave-model' || cap.module === 'MicrowaveModel-ObjectClasses-AirInterface' ;
- });
- return {
- mountId: element.mountId,
- host: element.host,
- port: element.port,
- connectionStatus: element.connectionStatus,
- coreModelRev: onfCoreModelRevision && onfCoreModelRevision.revision || 'unknown',
- airInterfaceRev: onfAirInterfaceRevision && onfAirInterfaceRevision.revision || 'unknown'
- }
- }
- );
- }
- return state;
- }
-
- render(): JSX.Element {
- const { classes } = this.props;
- const { networkElementToEdit, networkElementEditorMode, unknownNetworkElements } = this.state;
- const addRequireNetworkElementAction = {
- icon: AddIcon, tooltip: 'Add', onClick: () => {
- this.setState({
- networkElementEditorMode: EditNetworkElementDialogMode.MountNetworkElementToUnknonwNetworkElements,
- networkElementToEdit: emptyRequireNetworkElement,
- });
- }
- };
- return (
- <>
- <UnknownNetworkElementTable customActionButtons={ [addRequireNetworkElementAction] } asynchronus rows={ unknownNetworkElements } columns={ [
- { property: "mountId", title: "Name", type: ColumnType.text },
- { property: "connectionStatus", title: "Connection Status", type: ColumnType.text },
- { property: "host", title: "Host", type: ColumnType.text },
- { property: "port", title: "Port", type: ColumnType.text },
- { property: "coreModelRev", title: "Core Model", type: ColumnType.text },
- { property: "airInterfaceRev", title: "Air interface", type: ColumnType.text },
- {
- property: "actions", title: "Actions", type: ColumnType.custom, customControl: ({ rowData }) => (
- <>
- <div className={ classes.spacer }>
- <Tooltip title={ "Unmount" } ><IconButton className={ classes.button } onClick={ event => this.onOpenUnmountdNetworkElementsDialog(event, rowData) } ><LinkOffIcon /></IconButton></Tooltip>
- <Tooltip title={ "Add to required" } ><IconButton className={ classes.button } onClick={ event => this.onOpenAddToRequiredNetworkElementsDialog(event, rowData) } ><AddCircleIcon /></IconButton></Tooltip>
- </div>
- <div className={ classes.spacer }>
- <Tooltip title={ "Info" } ><Button className={ classes.button } >I</Button></Tooltip>
- </div>
- <div className={ classes.spacer }>
- <Tooltip title={ "Fault" } ><Button className={ classes.button } onClick={ this.navigateToApplicationHandlerCreator("fault", rowData) } >F</Button></Tooltip>
- <Tooltip title={ "Configure" } ><Button className={ classes.button } onClick={ this.navigateToApplicationHandlerCreator("configuration", rowData) } >C</Button></Tooltip>
- <Tooltip title={ "Accounting " } ><Button className={ classes.button } onClick={ this.navigateToApplicationHandlerCreator("accounting", rowData) }>A</Button></Tooltip>
- <Tooltip title={ "Performance" } ><Button className={ classes.button } onClick={ this.navigateToApplicationHandlerCreator("performance", rowData) }>P</Button></Tooltip>
- <Tooltip title={ "Security" } ><Button className={ classes.button } onClick={ this.navigateToApplicationHandlerCreator("security", rowData) }>S</Button></Tooltip>
- </div>
- </>
- )
- },
- ] } idProperty="mountId" >
- </UnknownNetworkElementTable>
-
- <EditNetworkElementDialog
- mode={ networkElementEditorMode }
- initialNetworkElement={ networkElementToEdit }
- onClose={ this.onCloseEditNetworkElementDialog }
- />
- </>
- );
- };
-
- private onOpenAddToRequiredNetworkElementsDialog = (event: React.MouseEvent<HTMLElement>, element: UnknownNetworkElementDisplayType) => {
- this.setState({
- networkElementToEdit: {
- mountId: element.mountId,
- host: element.host,
- port: element.port,
- username: 'admin',
- password: 'admin',
- },
- networkElementEditorMode: EditNetworkElementDialogMode.UnknownNetworkElementToRequiredNetworkElements
- });
- event.preventDefault();
- event.stopPropagation();
- }
-
- private onOpenUnmountdNetworkElementsDialog = (event: React.MouseEvent<HTMLElement>, element: UnknownNetworkElementDisplayType) => {
- this.setState({
- networkElementToEdit: {
- mountId: element.mountId,
- host: element.host,
- port: element.port
- },
- networkElementEditorMode: EditNetworkElementDialogMode.UnmountNetworkElement
- });
- event.preventDefault();
- event.stopPropagation();
- }
-
- private onCloseEditNetworkElementDialog = () => {
- this.setState({
- networkElementEditorMode: EditNetworkElementDialogMode.None,
- networkElementToEdit: emptyRequireNetworkElement,
- });
- }
-
- private navigateToApplicationHandlerCreator = (applicationName: string, element: NetworkElementBaseType) => (event: React.MouseEvent<HTMLElement>) => {
- this.props.navigateToApplication(applicationName, element.mountId);
- event.preventDefault();
- event.stopPropagation();
- }
-
-}
-
-export const UnknownNetworkElementsList = withStyles(styles)(connect(mapProps, mapDispatch)(UnknownNetworkElementsListComponent));
-export default UnknownNetworkElementsList;
diff --git a/sdnr/wt/odlux/apps/connectApp/src/handlers/connectAppRootHandler.tsx b/sdnr/wt/odlux/apps/connectApp/src/handlers/connectAppRootHandler.tsx
deleted file mode 100644
index 1c27f4b32..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/handlers/connectAppRootHandler.tsx
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import { combineActionHandler } from '../../../../framework/src/flux/middleware';
-import { IRequiredNetworkElementsState, requiredNetworkElementsActionHandler } from './requiredNetworkElementsHandler';
-import { IMountedNetworkElementsState, mountedNetworkElementsActionHandler } from './mountedNetworkElementsHandler';
-import { IConnectionStatusLogState, connectionStatusLogActionHandler } from './connectionStatusLogHandler';
-
-export interface IConnectAppStoreState {
- requiredNetworkElements: IRequiredNetworkElementsState;
- mountedNetworkElements: IMountedNetworkElementsState;
- connectionStatusLog: IConnectionStatusLogState;
-}
-
-declare module '../../../../framework/src/store/applicationStore' {
- interface IApplicationStoreState {
- connect: IConnectAppStoreState
- }
-}
-
-const actionHandlers = {
- requiredNetworkElements: requiredNetworkElementsActionHandler,
- mountedNetworkElements: mountedNetworkElementsActionHandler,
- connectionStatusLog: connectionStatusLogActionHandler
-};
-
-export const connectAppRootHandler = combineActionHandler <IConnectAppStoreState>(actionHandlers);
-export default connectAppRootHandler;
diff --git a/sdnr/wt/odlux/apps/connectApp/src/handlers/connectionStatusLogHandler.tsx b/sdnr/wt/odlux/apps/connectApp/src/handlers/connectionStatusLogHandler.tsx
deleted file mode 100644
index 57e1930ed..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/handlers/connectionStatusLogHandler.tsx
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import { createExternal,IExternalTableState } from '../../../../framework/src/components/material-table/utilities';
-import { createSearchDataHandler } from '../../../../framework/src/utilities/elasticSearch';
-
-import { ConnectionStatusLogType } from '../models/connectionStatusLog';
-export interface IConnectionStatusLogState extends IExternalTableState<ConnectionStatusLogType> { }
-
-// create eleactic search material data fetch handler
-const connectionStatusLogSearchHandler = createSearchDataHandler<{ event: ConnectionStatusLogType }, ConnectionStatusLogType>('sdnevents_v1/eventlog', null,
- (event) => ({
- _id: event._id,
- timeStamp: event._source.event.timeStamp,
- objectId: event._source.event.objectId,
- type: event._source.event.type,
- elementStatus: event._source.event.type === 'ObjectCreationNotificationXml'
- ? 'mounted'
- : event._source.event.type === 'ObjectDeletionNotificationXml'
- ? 'unmounted'
- : event._source.event.type === 'AttributeValueChangedNotificationXml'
- ? event._source.event.newValue
- : 'unknown',
- newValue: ''
-
- }),
- (name) => `event.${ name }`);
-
-export const {
- actionHandler: connectionStatusLogActionHandler,
- createActions: createConnectionStatusLogActions,
- createProperties: createConnectionStatusLogProperties,
- reloadAction: connectionStatusLogReloadAction,
-
- // set value action, to change a value
-} = createExternal<ConnectionStatusLogType>(connectionStatusLogSearchHandler, appState => appState.connect.connectionStatusLog);
-
diff --git a/sdnr/wt/odlux/apps/connectApp/src/handlers/mountedNetworkElementsHandler.tsx b/sdnr/wt/odlux/apps/connectApp/src/handlers/mountedNetworkElementsHandler.tsx
deleted file mode 100644
index 089268946..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/handlers/mountedNetworkElementsHandler.tsx
+++ /dev/null
@@ -1,111 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import { IActionHandler } from '../../../../framework/src/flux/action';
-
-import {
- AddOrUpdateMountedNetworkElement,
- AllMountedNetworkElementsLoadedAction,
- LoadAllMountedNetworkElementsAction,
- RemoveMountedNetworkElement,
- UpdateConnectionStateMountedNetworkElement,
- UpdateRequiredMountedNetworkElement
-} from '../actions/mountedNetworkElementsActions';
-
-import { MountedNetworkElementType } from '../models/mountedNetworkElements';
-
-export interface IMountedNetworkElementsState {
- elements: MountedNetworkElementType[];
- busy: boolean;
-}
-
-const mountedNetworkElementsStateInit: IMountedNetworkElementsState = {
- elements: [],
- busy: false
-};
-
-export const mountedNetworkElementsActionHandler: IActionHandler<IMountedNetworkElementsState> = (state = mountedNetworkElementsStateInit, action) => {
- if (action instanceof LoadAllMountedNetworkElementsAction) {
-
- state = {
- ...state,
- busy: true
- };
-
- } else if (action instanceof AllMountedNetworkElementsLoadedAction) {
- if (!action.error && action.mountedNetworkElements) {
- state = {
- ...state,
- elements: action.mountedNetworkElements,
- busy: false
- };
- } else {
- state = {
- ...state,
- busy: false
- };
- }
- } else if (action instanceof AddOrUpdateMountedNetworkElement) {
- if (!action.mountedNetworkElement) return state; // should handle error here
- const index = state.elements.findIndex(el => el.mountId === (action.mountedNetworkElement && action.mountedNetworkElement.mountId));
- if (index > -1) {
- state = {
- ...state,
- elements: [
- ...state.elements.slice(0, index),
- action.mountedNetworkElement,
- ...state.elements.slice(index + 1)
- ]
- }
- } else {
- state = {
- ...state,
- elements: [...state.elements, action.mountedNetworkElement],
- }
- };
- } else if (action instanceof RemoveMountedNetworkElement) {
- state = {
- ...state,
- elements: state.elements.filter(e => e.mountId !== action.mountId),
- };
- } else if (action instanceof UpdateConnectionStateMountedNetworkElement) {
- const index = state.elements.findIndex(el => el.mountId === action.mountId);
- if (index > -1) {
- state = {
- ...state,
- elements: [
- ...state.elements.slice(0, index),
- { ...state.elements[index], connectionStatus: action.mountId },
- ...state.elements.slice(index + 1)
- ]
- }
- }
- } else if (action instanceof UpdateRequiredMountedNetworkElement) {
- const index = state.elements.findIndex(el => el.mountId === action.mountId);
- if (index > -1 && (state.elements[index].required !== action.required)) {
- state = {
- ...state,
- elements: [
- ...state.elements.slice(0, index),
- { ...state.elements[index], required: action.required },
- ...state.elements.slice(index + 1)
- ]
- }
- }
- };
- return state;
-}; \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/src/handlers/requiredNetworkElementsHandler.tsx b/sdnr/wt/odlux/apps/connectApp/src/handlers/requiredNetworkElementsHandler.tsx
deleted file mode 100644
index 10b3b1b07..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/handlers/requiredNetworkElementsHandler.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import { createExternal,IExternalTableState } from '../../../../framework/src/components/material-table/utilities';
-import { createSearchDataHandler } from '../../../../framework/src/utilities/elasticSearch';
-
-import { RequiredNetworkElementType } from '../models/requiredNetworkElements';
-export interface IRequiredNetworkElementsState extends IExternalTableState<RequiredNetworkElementType> { }
-
-// create eleactic search material data fetch handler
-const requiredNetworkElementsSearchHandler = createSearchDataHandler<RequiredNetworkElementType>('mwtn/required-networkelement');
-
-export const {
- actionHandler: requiredNetworkElementsActionHandler,
- createActions: createRequiredNetworkElementsActions,
- createProperties: createRequiredNetworkElementsProperties,
- reloadAction: requiredNetworkElementsReloadAction,
-
- // set value action, to change a value
-} = createExternal<RequiredNetworkElementType>(requiredNetworkElementsSearchHandler, appState => appState.connect.requiredNetworkElements);
-
diff --git a/sdnr/wt/odlux/apps/connectApp/src/index.html b/sdnr/wt/odlux/apps/connectApp/src/index.html
deleted file mode 100644
index 0f95005de..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/index.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-
-<head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <link rel="stylesheet" href="./vendor.css" >
- <title>connectApp</title>
-</head>
-
-<body>
- <div id="app"></div>
- <script type="text/javascript" src="./require.js"></script>
- <script type="text/javascript" src="./config.js"></script>
- <script>
- // run the application
- require(["app","connectApp", "faultApp"], function (app, connectApp, faultApp) {
- connectApp.register();
- faultApp.register();
- app("./app.tsx").runApplication();
- });
- </script>
-</body>
-
-</html> \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/src/models/connectionStatusLog.ts b/sdnr/wt/odlux/apps/connectApp/src/models/connectionStatusLog.ts
deleted file mode 100644
index df43c217a..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/models/connectionStatusLog.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-
-export type ConnectionStatusLogType = {
- _id: string;
- elementStatus: string;
- timeStamp: string;
- objectId: string;
- type: string;
- newValue: string;
-}
-
diff --git a/sdnr/wt/odlux/apps/connectApp/src/models/mountedNetworkElements.ts b/sdnr/wt/odlux/apps/connectApp/src/models/mountedNetworkElements.ts
deleted file mode 100644
index 0be38a615..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/models/mountedNetworkElements.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import { NetworkElementBaseType } from "./networkElementBase";
-
-/**
-* Represents data of an mounted network elements.
-*/
-export type MountedNetworkElementType = NetworkElementBaseType & {
- connectionStatus: string;
- required: boolean;
- capabilities: { module: string, revision: string }[];
-};
-
diff --git a/sdnr/wt/odlux/apps/connectApp/src/models/networkElementBase.ts b/sdnr/wt/odlux/apps/connectApp/src/models/networkElementBase.ts
deleted file mode 100644
index 39278a8e1..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/models/networkElementBase.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-export type NetworkElementBaseType = {
- mountId: string,
- host: string,
- port: number,
-} \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/src/models/requiredNetworkElements.ts b/sdnr/wt/odlux/apps/connectApp/src/models/requiredNetworkElements.ts
deleted file mode 100644
index 42d22afc0..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/models/requiredNetworkElements.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import { NetworkElementBaseType } from "./networkElementBase";
-
-/**
-* Represents data of Required Network Elements.
-*/
-export type RequiredNetworkElementType = NetworkElementBaseType & {
- username?: string;
- password?: string;
-}
-
diff --git a/sdnr/wt/odlux/apps/connectApp/src/models/topologyNetconf.ts b/sdnr/wt/odlux/apps/connectApp/src/models/topologyNetconf.ts
deleted file mode 100644
index 357245d46..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/models/topologyNetconf.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-export interface UnavailableCapability {
- capability: string;
- "failure-reason": string;
-}
-
-export interface NetconfNodeTopologyUnavailableCapabilities {
- "unavailable-capability": UnavailableCapability[];
-}
-
-export interface AvailableCapability {
- "capability-origin": string;
- capability: string;
-}
-
-export interface NetconfNodeTopologyAvailableCapabilities {
- "available-capability": AvailableCapability[];
-}
-
-export interface NetconfNodeTopologyClusteredConnectionStatus {
- "netconf-master-node": string
-}
-
-export interface TopologyNode {
- "node-id": string;
- "netconf-node-topology:clustered-connection-status": NetconfNodeTopologyClusteredConnectionStatus;
- "netconf-node-topology:unavailable-capabilities": NetconfNodeTopologyUnavailableCapabilities;
- "netconf-node-topology:available-capabilities": NetconfNodeTopologyAvailableCapabilities;
- "netconf-node-topology:host": string;
- "netconf-node-topology:connection-status": string;
- "netconf-node-topology:port": number;
-}
-
-export interface Topology {
- "topology-id": string;
- node: TopologyNode[];
-}
diff --git a/sdnr/wt/odlux/apps/connectApp/src/plugin.tsx b/sdnr/wt/odlux/apps/connectApp/src/plugin.tsx
deleted file mode 100644
index aa08e7b15..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/plugin.tsx
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-
-import { faPlug } from '@fortawesome/free-solid-svg-icons';
-
-import applicationManager from '../../../framework/src/services/applicationManager';
-import { subscribe, IFormatedMessage } from '../../../framework/src/services/notificationService';
-
-import connectAppRootHandler from './handlers/connectAppRootHandler';
-import ConnectApplication from './views/connectView';
-
-import {
- addMountedNetworkElementAsyncActionCreator,
- updateMountedNetworkElementAsyncActionCreator,
- loadAllMountedNetworkElementsAsync
-} from './actions/mountedNetworkElementsActions';
-
-import { AddSnackbarNotification } from '../../../framework/src/actions/snackbarActions';
-
-type ObjectNotification = {
- counter: string;
- nodeName: string;
- objectId: string;
- timeStamp: string;
-}
-
-export function register() {
- const applicationApi = applicationManager.registerApplication({
- name: "connect",
- icon: faPlug,
- rootComponent: ConnectApplication,
- rootActionHandler: connectAppRootHandler,
- menuEntry: "Connect"
- });
-
- const updateAllMountedNetworkElements = () => {
- applicationApi.applicationStoreInitialized.then(applicationStore => { applicationStore.dispatch(loadAllMountedNetworkElementsAsync); })
- };
-
- applicationApi.loginEvent.addHandler(updateAllMountedNetworkElements);
- updateAllMountedNetworkElements();
-
- // subscribe to the websocket notifications
- subscribe<ObjectNotification & IFormatedMessage>(["ObjectCreationNotification", "ObjectDeletionNotification", "AttributeValueChangedNotification"], (msg => {
- const store = applicationApi.applicationStore;
- if (msg && msg.notifType === "ObjectCreationNotification" && store) {
- store.dispatch(addMountedNetworkElementAsyncActionCreator(msg.objectId));
- store.dispatch(new AddSnackbarNotification({ message: `Adding network element [${msg.objectId}]`, options: { variant: 'info' } }));
- } else if (msg && (msg.notifType === "ObjectDeletionNotification" || msg.notifType === "AttributeValueChangedNotification") && store) {
- store.dispatch(new AddSnackbarNotification({ message: `Updating network element [${msg.objectId}]`, options: { variant: 'info' } }));
- store.dispatch(updateMountedNetworkElementAsyncActionCreator(msg.objectId));
- }
- }));
-} \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/src/services/connectService.ts b/sdnr/wt/odlux/apps/connectApp/src/services/connectService.ts
deleted file mode 100644
index b50a06ee1..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/services/connectService.ts
+++ /dev/null
@@ -1,214 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import { RequiredNetworkElementType } from '../models/requiredNetworkElements';
-import { MountedNetworkElementType } from '../models/mountedNetworkElements';
-import { Topology, TopologyNode } from '../models/topologyNetconf';
-
-import { requestRest } from '../../../../framework/src/services/restService';
-import { Result, HitEntry } from '../../../../framework/src/models/elasticSearch';
-
-
-/**
- * Represents a web api accessor service for all Network Elements actions.
- */
-class ConnectService {
- /**
- * Gets all known required network elements from the backend.
- */
- public async getAllRequiredNetworkElements(): Promise<(RequiredNetworkElementType & { _id: string })[] | null> {
- const path = 'database/mwtn/required-networkelement/_search';
- const query = { "query": { "match_all": {} } };
-
- const result = await requestRest<Result<RequiredNetworkElementType>>(path, { method: "POST", body: JSON.stringify(query) });
- return result && result.hits && result.hits.hits && result.hits.hits.map(ne => ({
- _id: ne._id,
- mountId: ne._source && ne._source.mountId,
- host: ne._source && ne._source.host,
- port: ne._source && ne._source.port,
- username: ne._source && ne._source.username,
- password: ne._source && ne._source.password,
- })) || null;
- }
-
- public async getRequiredNetworkElementByMountId(mountId:string): Promise<(RequiredNetworkElementType & { _id: string }) | null> {
- const path = `database/mwtn/required-networkelement/${mountId}`;
-
- const result = await requestRest<HitEntry<RequiredNetworkElementType> & { found: boolean }>(path, { method: "GET" });
- return result && result.found && result._source && {
- _id: result._id,
- mountId: result._source.mountId,
- host: result._source.host,
- port: result._source.port,
- username: result._source.username,
- password: result._source.password,
- } || null;
- }
-
- /**
- * Inserts data into the required network elements table.
- */
- public async insertRequiredNetworkElement(element: RequiredNetworkElementType): Promise<RequiredNetworkElementType | null> {
- const path = `database/mwtn/required-networkelement/${ element.mountId }`;
- const result = await requestRest<RequiredNetworkElementType>(path, { method: "POST", body: JSON.stringify(element) });
- return result || null;
- }
-
- /**
- * Deletes data from the Required Network Elements backend.
- */
- public async deleteRequiredNetworkElement(element: RequiredNetworkElementType): Promise<RequiredNetworkElementType | null> {
- const path = `database/mwtn/required-networkelement/${ element.mountId }`;
- const result = await requestRest<RequiredNetworkElementType>(path, { method: "DELETE", body: JSON.stringify(element) });
- return result || null;
- }
-
- private static mapTopologyNode = (mountPoint: TopologyNode, required: boolean ) => {
- // handle onfCapabilities
- let onfCapabilities: { module: string, revision: string }[] | undefined = undefined;
-
- const capId = 'netconf-node-topology:available-capabilities';
- if (mountPoint[capId] && mountPoint[capId]['available-capability']) {
- onfCapabilities = mountPoint[capId]['available-capability'].filter((cap) => {
- return cap.capability.includes('?revision=');
- }).map((cap) => {
- return {
- module: cap.capability.split(')')[1],
- revision: cap.capability.split('?revision=')[1].substring(0, 10)
- };
- }).sort((a, b) => {
- if (a.module < b.module) return -1;
- if (a.module > b.module) return 1;
- return 0;
- });
- }
-
- // handle clustered-connection-status
- const statusId = 'netconf-node-topology:clustered-connection-status';
- let client = 'localhost';
-
- if (mountPoint[statusId] && mountPoint[statusId]['netconf-master-node']) {
- let node = mountPoint[statusId]['netconf-master-node'];
- node = node.substring(node.indexOf('@'));
- client = node.substring(1, node.indexOf(':'));
- }
- const mountId = mountPoint["node-id"];
- return {
- mountId: mountId,
- host: mountPoint["netconf-node-topology:host"],
- port: mountPoint["netconf-node-topology:port"],
- connectionStatus: mountPoint['netconf-node-topology:connection-status'],
- capabilities: onfCapabilities || [],
- required: required,
- client
- }
- }
-
- /** Get all mounted network elements and fills the property required according to the database contents. */
- public async getMountedNetworkElementsList(): Promise<MountedNetworkElementType[] | null> {
- const path = 'restconf/operational/network-topology:network-topology/topology/topology-netconf';
-
- const topologyRequestPomise = requestRest<{ topology: Topology[] | null }>(path, { method: "GET" });
- const requiredNetworkElementsPromise = this.getAllRequiredNetworkElements();
-
- const [netconfResponse, requiredNetworkElements] = await Promise.all([topologyRequestPomise, requiredNetworkElementsPromise]);
-
- // process topologyNetconf (get all known network elements)
- const topologyNetconf = netconfResponse && netconfResponse.topology && netconfResponse.topology.find(topology => topology["topology-id"] === 'topology-netconf');
- let mountPoints = topologyNetconf && topologyNetconf.node && topologyNetconf.node.filter(
- mountPoint => mountPoint['node-id'] !== 'controller-config').map(mountedElement => {
- const required = requiredNetworkElements && requiredNetworkElements.some(
- requiredElement => requiredElement.mountId === mountedElement["node-id"]);
- return ConnectService.mapTopologyNode(mountedElement, !!required);
- });
-
- return mountPoints || [];
- }
-
- /** Get one mounted network element. */
- public async getMountedNetworkElementByMountId(mountId: string): Promise<MountedNetworkElementType | null> {
- const path = 'restconf/operational/network-topology:network-topology/topology/topology-netconf/node/' + mountId;
- const getMountedNetworkElementByMountIdPromise = requestRest<{ node: TopologyNode[] | null }>(path, { method: "GET" });
- const getRequiredNetworkElementByMountIdPromise = this.getRequiredNetworkElementByMountId(mountId);
-
- const [mountedNetworkElement, requiredNetworkElement] = await Promise.all([getMountedNetworkElementByMountIdPromise, getRequiredNetworkElementByMountIdPromise]);
- return mountedNetworkElement && mountedNetworkElement.node && ConnectService.mapTopologyNode(mountedNetworkElement.node[0], requiredNetworkElement && requiredNetworkElement.mountId === mountedNetworkElement.node[0]["node-id"] || false) || null;
- }
-
- /** Mounts an required network element. */
- public async mountNetworkElement(networkElement: RequiredNetworkElementType): Promise<boolean> {
- const path = 'restconf/config/network-topology:network-topology/topology/topology-netconf/node/' + networkElement.mountId;
- const mountXml = [
- '<node xmlns="urn:TBD:params:xml:ns:yang:network-topology">',
- `<node-id>${ networkElement.mountId }</node-id>`,
- `<host xmlns="urn:opendaylight:netconf-node-topology">${ networkElement.host }</host>`,
- `<port xmlns="urn:opendaylight:netconf-node-topology">${ networkElement.port }</port>`,
- `<username xmlns="urn:opendaylight:netconf-node-topology">${ networkElement.username }</username>`,
- `<password xmlns="urn:opendaylight:netconf-node-topology">${ networkElement.password }</password>`,
- ' <tcp-only xmlns="urn:opendaylight:netconf-node-topology">false</tcp-only>',
-
- ' <!-- non-mandatory fields with default values, you can safely remove these if you do not wish to override any of these values-->',
- ' <reconnect-on-changed-schema xmlns="urn:opendaylight:netconf-node-topology">false</reconnect-on-changed-schema>',
- ' <connection-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">20000</connection-timeout-millis>',
- ' <max-connection-attempts xmlns="urn:opendaylight:netconf-node-topology">100</max-connection-attempts>',
- ' <between-attempts-timeout-millis xmlns="urn:opendaylight:netconf-node-topology">2000</between-attempts-timeout-millis>',
- ' <sleep-factor xmlns="urn:opendaylight:netconf-node-topology">1.5</sleep-factor>',
-
- ' <!-- keepalive-delay set to 0 turns off keepalives-->',
- ' <keepalive-delay xmlns="urn:opendaylight:netconf-node-topology">120</keepalive-delay>',
- '</node>'].join('');
-
- try {
- const result = await requestRest<string>(path, {
- method: 'PUT',
- headers: {
- 'Content-Type': 'application/xml',
- 'Accept': 'application/xml'
- },
- body: mountXml
- });
- // expect an empty answer
- return result !== null;
- } catch {
- return false;
- }
- };
-
- /** Unmounts a network element by its id. */
- public async unmountNetworkElement(mountId: string): Promise<boolean> {
- const path = 'restconf/config/network-topology:network-topology/topology/topology-netconf/node/' + mountId;
-
- try {
- const result = await requestRest<string>(path, {
- method: 'DELETE',
- headers: {
- 'Content-Type': 'application/xml',
- 'Accept': 'application/xml'
- },
- });
- // expect an empty answer
- return result !== null;
-
- } catch {
- return false;
- }
- };
-
-
-}
-export const connectService = new ConnectService();
-export default connectService;
diff --git a/sdnr/wt/odlux/apps/connectApp/src/views/connectView.tsx b/sdnr/wt/odlux/apps/connectApp/src/views/connectView.tsx
deleted file mode 100644
index c86b384e1..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src/views/connectView.tsx
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt odlux
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- */
-import * as React from 'react';
-
-import connect, { IDispatcher, Connect } from '../../../../framework/src/flux/connect';
-import { Panel } from '../../../../framework/src/components/material-ui';
-
-import { requiredNetworkElementsReloadAction, createRequiredNetworkElementsActions } from '../handlers/requiredNetworkElementsHandler';
-import { loadAllMountedNetworkElementsAsync } from '../actions/mountedNetworkElementsActions';
-import { connectionStatusLogReloadAction, createConnectionStatusLogActions } from '../handlers/connectionStatusLogHandler';
-
-import { RequiredNetworkElementsList } from '../components/requiredNetworkElements';
-import { ConnectionStatusLog } from '../components/connectionStatusLog';
-import { UnknownNetworkElementsList } from '../components/unknownNetworkElements';
-
-const mapDispatcher = (dispatcher: IDispatcher) => ({
- requiredNetworkElementsActions: createRequiredNetworkElementsActions(dispatcher.dispatch),
- connectionStatusLogActions: createConnectionStatusLogActions(dispatcher.dispatch),
- onLoadUnknownNetworkElements: () => {
- dispatcher.dispatch(loadAllMountedNetworkElementsAsync);
- },
- onLoadRequiredNetworkElements: () => {
- dispatcher.dispatch(requiredNetworkElementsReloadAction);
- },
- onLoadConnectionStatusLog: () => {
- dispatcher.dispatch(connectionStatusLogReloadAction);
- }
-});
-
-type PanelId = null | "RequiredNetworkElements" | "UnknownNetworkElements" | "ConnectionStatusLog";
-
-type ConnectApplicationComponentProps = Connect<undefined, typeof mapDispatcher> ;
-
-type ConnectApplicationComponentState = {
- activePanel: PanelId;
-};
-
-class ConnectApplicationComponent extends React.Component<ConnectApplicationComponentProps, ConnectApplicationComponentState>{
- /**
- * Initialises this instance
- */
- constructor(props: ConnectApplicationComponentProps) {
- super(props);
-
- this.state = {
- activePanel: null
- };
- }
-
- private onTogglePanel = (panelId: PanelId) => {
- const nextActivePanel = panelId === this.state.activePanel ? null : panelId;
- this.setState({
- activePanel: nextActivePanel
- }, () => {
- switch (nextActivePanel) {
- case 'RequiredNetworkElements':
- this.props.onLoadRequiredNetworkElements();
- break;
- case 'UnknownNetworkElements':
- // todo: should we update the application state ?
- break;
- case 'ConnectionStatusLog':
- this.props.onLoadConnectionStatusLog();
- break;
- case null:
- // do nothing if all panels are closed
- break;
- default:
- console.warn("Unknown nextActivePanel [" + nextActivePanel + "] in connectView");
- break;
- }
- });
- };
-
- render(): JSX.Element {
- const { activePanel } = this.state;
-
- return (
- <>
- <Panel activePanel={ activePanel } panelId={ 'RequiredNetworkElements' } onToggle={ this.onTogglePanel } title={ "Required Network Elements" }>
- <RequiredNetworkElementsList />
- </Panel>
- <Panel activePanel={ activePanel } panelId={ 'UnknownNetworkElements' } onToggle={ this.onTogglePanel } title={ "Unknown Network Elements" }>
- <UnknownNetworkElementsList />
- </Panel>
- <Panel activePanel={ activePanel } panelId={ 'ConnectionStatusLog' } onToggle={ this.onTogglePanel } title={ "Connection Status Log" }>
- <ConnectionStatusLog />
- </Panel>
- </>
- );
- };
- public componentDidMount() {
- this.onTogglePanel("RequiredNetworkElements");
- this.props.onLoadUnknownNetworkElements();
- this.props.requiredNetworkElementsActions.onToggleFilter();
- this.props.connectionStatusLogActions.onToggleFilter();
- }
-}
-
-export const ConnectApplication = (connect(undefined, mapDispatcher)(ConnectApplicationComponent));
-export default ConnectApplication; \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/src2/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/MyOdluxBundle.java b/sdnr/wt/odlux/apps/connectApp/src2/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/MyOdluxBundle.java
deleted file mode 100644
index 1e882fc69..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src2/main/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/MyOdluxBundle.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- ******************************************************************************/
-package org.onap.ccsdk.features.sdnr.wt.odlux.bundles;
-
-import org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles.OdluxBundle;
-import org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles.OdluxBundleLoader;
-
-public class MyOdluxBundle extends OdluxBundle {
-
- @Override
- public void initialize() {
- super.initialize();
- }
-
- @Override
- public void clean() {
- super.clean();
- }
-
- @Override
- public String getResourceFileContent(String filename) {
- return super.getResourceFileContent(filename);
- }
-
- @Override
- public boolean hasResource(String filename) {
- return super.hasResource(filename);
- }
-
- @Override
- public void setBundleName(String bundleName) {
- super.setBundleName(bundleName);
- }
-
- @Override
- public void setLoader(OdluxBundleLoader loader) {
- super.setLoader(loader);
- }
-
- @Override
- public String getBundleName() {
- return super.getBundleName();
- }
-
- @Override
- public OdluxBundleLoader getLoader() {
- return super.getLoader();
- }
-
- public MyOdluxBundle() {
- super();
- }
-}
diff --git a/sdnr/wt/odlux/apps/connectApp/src2/main/resources/OSGI-INF/blueprint/blueprint.xml b/sdnr/wt/odlux/apps/connectApp/src2/main/resources/OSGI-INF/blueprint/blueprint.xml
deleted file mode 100644
index adc9b777b..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src2/main/resources/OSGI-INF/blueprint/blueprint.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
- <reference id="loadersvc" availability="mandatory" activation="eager" interface="org.onap.ccsdk.features.sdnr.wt.odlux.model.bundles.OdluxBundleLoader"/>
-
- <bean id="bundle" init-method="initialize" destroy-method="clean" class="org.onap.ccsdk.features.sdnr.wt.odlux.bundles.MyOdluxBundle">
- <property name="loader" ref="loadersvc"/>
- <property name="bundleName" value="connectApp"/>
- <property name="index" value="0"/>
- </bean>
-</blueprint> \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/src2/test/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/test/TestBundleRes.java b/sdnr/wt/odlux/apps/connectApp/src2/test/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/test/TestBundleRes.java
deleted file mode 100644
index edf68e096..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src2/test/java/org/onap/ccsdk/features/sdnr/wt/odlux/bundles/test/TestBundleRes.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * ============LICENSE_START========================================================================
- * ONAP : ccsdk feature sdnr wt
- * =================================================================================================
- * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
- * =================================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
- * in compliance with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software distributed under the License
- * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
- * or implied. See the License for the specific language governing permissions and limitations under
- * the License.
- * ============LICENSE_END==========================================================================
- ******************************************************************************/
-package org.onap.ccsdk.features.sdnr.wt.odlux.bundles.test;
-
-import static org.junit.Assert.*;
-
-import org.junit.Test;
-import org.onap.ccsdk.features.sdnr.wt.odlux.OdluxBundleLoaderImpl;
-import org.onap.ccsdk.features.sdnr.wt.odlux.bundles.MyOdluxBundle;
-
-public class TestBundleRes {
-
- @Test
- public void test() {
- OdluxBundleLoaderImpl loader = OdluxBundleLoaderImpl.getInstance();
- MyOdluxBundle b = new MyOdluxBundle();
- b.setLoader(loader);
- b.setIndex(0);
- b.setBundleName("abc");
- b.initialize();
- assertTrue(loader.getNumberOfBundles()==1);
- assertNotNull(b.getLoader());
- assertEquals("abc",b.getBundleName());
- assertTrue(b.hasResource("test.js"));
- assertNotNull(b.getResourceFileContent("test.js"));
- b.clean();
- assertTrue(loader.getNumberOfBundles()==0);
- }
-
-}
diff --git a/sdnr/wt/odlux/apps/connectApp/src2/test/resources/test.js b/sdnr/wt/odlux/apps/connectApp/src2/test/resources/test.js
deleted file mode 100644
index b47fdc39f..000000000
--- a/sdnr/wt/odlux/apps/connectApp/src2/test/resources/test.js
+++ /dev/null
@@ -1,5 +0,0 @@
-asdac sad
-as
-d
-sad
- sadfa \ No newline at end of file
diff --git a/sdnr/wt/odlux/apps/connectApp/tsconfig.json b/sdnr/wt/odlux/apps/connectApp/tsconfig.json
deleted file mode 100644
index a66b5d828..000000000
--- a/sdnr/wt/odlux/apps/connectApp/tsconfig.json
+++ /dev/null
@@ -1,37 +0,0 @@
-{
- "compilerOptions": {
- "baseUrl": "./src",
- "outDir": "./dist",
- "sourceMap": true,
- "forceConsistentCasingInFileNames": true,
- "allowSyntheticDefaultImports": false,
- "allowUnreachableCode": false,
- "allowUnusedLabels": false,
- "noFallthroughCasesInSwitch": true,
- "noImplicitAny": true,
- "noImplicitReturns": true,
- "noImplicitThis": true,
- "strictNullChecks": true,
- "pretty": true,
- "newLine": "LF",
- "module": "es2015",
- "target": "es2016",
- "moduleResolution": "node",
- "experimentalDecorators": true,
- "jsx": "preserve",
- "lib": [
- "dom",
- "es2015",
- "es2016"
- ],
- "types": [
- "prop-types",
- "react",
- "react-dom"
- ]
- },
- "exclude": [
- "dist",
- "node_modules"
- ]
-}
diff --git a/sdnr/wt/odlux/apps/connectApp/webpack.config.js b/sdnr/wt/odlux/apps/connectApp/webpack.config.js
deleted file mode 100644
index a70e62976..000000000
--- a/sdnr/wt/odlux/apps/connectApp/webpack.config.js
+++ /dev/null
@@ -1,139 +0,0 @@
-/**
- * Webpack 4 configuration file
- * see https://webpack.js.org/configuration/
- * see https://webpack.js.org/configuration/dev-server/
- */
-
-"use strict";
-
-const path = require("path");
-const webpack = require("webpack");
-const CopyWebpackPlugin = require("copy-webpack-plugin");
-const TerserPlugin = require('terser-webpack-plugin');
-
-// const __dirname = (path => path.replace(/^([a-z]\:)/, c => c.toUpperCase()))(process.__dirname());
-
-module.exports = (env) => {
- const distPath = path.resolve(__dirname, env === "release" ? "." : "../..", "dist");
- const frameworkPath = path.resolve(__dirname, env === "release" ? "../../framework" : "../..", "dist");
- return [{
- name: "App",
-
- mode: "none", //disable default behavior
-
- target: "web",
-
- context: path.resolve(__dirname, "src"),
-
- entry: {
- connectApp: ["./plugin.tsx"]
- },
-
- devtool: env === "release" ? false : "source-map",
-
- resolve: {
- extensions: [".ts", ".tsx", ".js", ".jsx"]
- },
-
- output: {
- path: distPath,
- filename: "[name].js",
- library: "[name]",
- libraryTarget: "umd2",
- chunkFilename: "[name].js"
- },
- module: {
- rules: [{
- test: /\.tsx?$/,
- exclude: /node_modules/,
- use: [{
- loader: "babel-loader"
- }, {
- loader: "ts-loader"
- }]
- }, {
- test: /\.jsx?$/,
- exclude: /node_modules/,
- use: [{
- loader: "babel-loader"
- }]
- }]
- },
-
- optimization: {
- noEmitOnErrors: true,
- namedModules: env !== "release",
- minimize: env === "release",
- minimizer: env !== "release" ? [] : [new TerserPlugin({
- terserOptions: {
- warnings: false, // false, true, "verbose"
- compress: {
- drop_console: true,
- drop_debugger: true,
- }
- }
- })],
- },
- plugins: [
- new webpack.DllReferencePlugin({
- context: path.resolve(__dirname, "../../framework/src"),
- manifest: require(path.resolve(frameworkPath, "vendor-manifest.json")),
- sourceType: "umd2"
- }),
- new webpack.DllReferencePlugin({
- context: path.resolve(__dirname, "../../framework/src"),
- manifest: require(path.resolve(frameworkPath, "app-manifest.json")),
- sourceType: "umd2"
- }),
- ...(env === "release") ? [
- new webpack.DefinePlugin({
- "process.env": {
- NODE_ENV: "'production'",
- VERSION: JSON.stringify(require("./package.json").version)
- }
- }),
- ] : [
- new webpack.DefinePlugin({
- "process.env": {
- NODE_ENV: "'development'",
- VERSION: JSON.stringify(require("./package.json").version)
- }
- }),
- new CopyWebpackPlugin([{
- from: 'index.html',
- to: distPath
- }]),
- ]
- ],
-
- devServer: {
- public: "http://localhost:3100",
- contentBase: frameworkPath,
-
- compress: true,
- headers: {
- "Access-Control-Allow-Origin": "*"
- },
- host: "0.0.0.0",
- port: 3100,
- disableHostCheck: true,
- historyApiFallback: true,
- inline: true,
- hot: false,
- quiet: false,
- stats: {
- colors: true
- },
- proxy: {
- "/restconf": {
- target: "http://localhost:8181",
- secure: false
- },
- "/database": {
- target: "http://localhost:8181",
- secure: false
- }
- }
- }
- }];
-}