Remove GBP-UI and all Dlux dependencies 22/70422/1
authorMichal Cmarada <michal.cmarada@pantheon.tech>
Fri, 6 Apr 2018 11:10:19 +0000 (13:10 +0200)
committerMichal Cmarada <michal.cmarada@pantheon.tech>
Fri, 6 Apr 2018 11:10:19 +0000 (13:10 +0200)
Change-Id: Ia8c152a0938bc0b51d250ab713e51088fa4ea5d8
Signed-off-by: Michal Cmarada <michal.cmarada@pantheon.tech>
78 files changed:
artifacts/pom.xml
demos/gbpsfc-env/README.md
demos/vpp-demo/readme.rst
features/features-groupbasedpolicy/pom.xml
features/odl-groupbasedpolicy-ofoverlay/pom.xml
features/odl-groupbasedpolicy-ui/pom.xml [deleted file]
features/pom.xml
groupbasedpolicy-ui/.gitignore [deleted file]
groupbasedpolicy-ui/bundle/pom.xml [deleted file]
groupbasedpolicy-ui/bundle/src/main/resources/org/opendaylight/blueprint/blueprint.xml [deleted file]
groupbasedpolicy-ui/module/pom.xml [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/.bowerrc [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/.gitignore [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/bower.json [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/build.config.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.css [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.module.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/common/topology/next_topology.directive.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/common/topology/next_topology.module.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/common/topology/next_topology.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/index.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/root.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/add-contract.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract-list.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/contract/dialog-add-contract.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/add-endpoint.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/dialog-add-endpoint.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoint.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoints-list.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoints.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoints.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/side_panel_endpoints_detail.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/sxp-mapping-list.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/sxp-mapping.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/add-epg.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/dialog-add-epg.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg-list.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/forwarding/forwarding.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/gulpfile.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/main.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/package.json [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/policy/policy.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/policy/policy.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy-list.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/contract-list-sidepanel.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/contract-sidepanel.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/epg-list-sidepanel.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/epg-sidepanel.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/clause-sidepanel.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/contract-list-sidepanel.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/contract-sidepanel.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/epg-list-sidepanel.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/epg-sidepanel.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/rule-sidepanel.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/subject-sidepanel.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/sfc/dialog-sfc-topology.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/sfc/dialog-sfc-topology.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/sfc/sfc.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/add-tenant.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/dialog-add-tenant.tpl.html [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant-list.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant.controller.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant.service.js [deleted file]
groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant.tpl.html [deleted file]
groupbasedpolicy-ui/pom.xml [deleted file]
neutron-ovsdb/src/main/yang/module-settings.yang
pom.xml

index 9af296902570700259ff50a5eb5e104839e95a78..b07328d11f7532be339ef9b8e204f7e3cda2ef4b 100755 (executable)
         <classifier>features</classifier>
         <type>xml</type>
       </dependency>
         <classifier>features</classifier>
         <type>xml</type>
       </dependency>
-      <dependency>
-        <groupId>${project.groupId}</groupId>
-        <artifactId>odl-groupbasedpolicy-ui</artifactId>
-        <version>${project.version}</version>
-        <classifier>features</classifier>
-        <type>xml</type>
-      </dependency>
       <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>odl-groupbasedpolicy-ip-sgt-distribution-service</artifactId>
       <dependency>
         <groupId>${project.groupId}</groupId>
         <artifactId>odl-groupbasedpolicy-ip-sgt-distribution-service</artifactId>
index 90a176b5939873afde2d98ff47ec061e364de8c0..565357f9f8e70681a79fce14819c89f70abba484 100644 (file)
@@ -10,7 +10,7 @@ This is to ensure that each OVS gets a unique UUID as the Box file will re-use t
 
 After the first time it is very quick.
 
 
 After the first time it is very quick.
 
-1. Set up Vagrant. 
+1. Set up Vagrant.
   * Edit env.sh for NUM_NODES. (Keep all other vars the same for this version)
   * Each VM takes approximately 1G RAM, 2GB used HDD (40GB)
   * demo-gbp1: 3 VMs.
   * Edit env.sh for NUM_NODES. (Keep all other vars the same for this version)
   * Each VM takes approximately 1G RAM, 2GB used HDD (40GB)
   * demo-gbp1: 3 VMs.
@@ -27,14 +27,14 @@ vagrant up
 3. Start controller.
   * Currently it is expected that that controller runs on the host hosting the VMs.
   * Tested using groupbasedpolicy beryllium
 3. Start controller.
   * Currently it is expected that that controller runs on the host hosting the VMs.
   * Tested using groupbasedpolicy beryllium
-               If you are building and get 'illegal unicode escape' error, 
-               you have to rename two yang files in 'groupbasedpolicy\ui-backend\src\main\yang'. 
-               These files have to start with a character other than 'u'. 
+               If you are building and get 'illegal unicode escape' error,
+               you have to rename two yang files in 'groupbasedpolicy\ui-backend\src\main\yang'.
+               These files have to start with a character other than 'u'.
                E.g. rename 'ui-backend.yang' to 'aui-backend.yang' and 'ui-backend-impl.yang' to 'aui-backend-impl.yang'.
   * Start controller by running bin/karaf and install following features in karaf:
 
 ```
                E.g. rename 'ui-backend.yang' to 'aui-backend.yang' and 'ui-backend-impl.yang' to 'aui-backend-impl.yang'.
   * Start controller by running bin/karaf and install following features in karaf:
 
 ```
- feature:install odl-groupbasedpolicy-ofoverlay odl-groupbasedpolicy-ui odl-restconf
+ feature:install odl-groupbasedpolicy-ofoverlay odl-restconf
 ```
 
   * Run `log:tail | grep renderer` and wait until the following message appears in the log:
 ```
 
   * Run `log:tail | grep renderer` and wait until the following message appears in the log:
@@ -44,7 +44,7 @@ INFO - OFOverlayRenderer - org.opendaylight.groupbasedpolicy.ofoverlay-renderer
   * Now you can ^C the log:tail if you wish
 
 #Demos:
   * Now you can ^C the log:tail if you wish
 
 #Demos:
-* demo-gbp1: 
+* demo-gbp1:
   * 8 docker containers in 2 x EPGs (web, client)
   * contract with ICMP and HTTP
 * demo-symmetry:
   * 8 docker containers in 2 x EPGs (web, client)
   * contract with ICMP and HTTP
 * demo-symmetry:
@@ -72,7 +72,7 @@ To run, from host folder where Vagrantfile located do:
 ` ./startdemo.sh demo-gbp1`
 
 After this, `infrastructure_config.py` will be copied from `/demo-gbp1`, and you are ready to start testing.
 ` ./startdemo.sh demo-gbp1`
 
 After this, `infrastructure_config.py` will be copied from `/demo-gbp1`, and you are ready to start testing.
+
 ###To test:
 
 SSH to test VM (may take some seconds):
 ###To test:
 
 SSH to test VM (may take some seconds):
@@ -91,7 +91,7 @@ docker ps
 ```
 
 Notice there are containers from two different endpoint groups, "h35" and "h36".
 ```
 
 Notice there are containers from two different endpoint groups, "h35" and "h36".
-Enter into the shell on one of "h36" (web) container (on `gbpsfc1` it will be `h36_4`, its IP is `10.0.36.4`, 
+Enter into the shell on one of "h36" (web) container (on `gbpsfc1` it will be `h36_4`, its IP is `10.0.36.4`,
 you will need it later).
 *(You need double ENTER after `docker attach`)*
 ```bash
 you will need it later).
 *(You need double ENTER after `docker attach`)*
 ```bash
@@ -105,11 +105,11 @@ python -m SimpleHTTPServer 80
 
 Press `Ctrl-P-Q` to return to your root shell on `gbpsfc1`
 
 
 Press `Ctrl-P-Q` to return to your root shell on `gbpsfc1`
 
-Enter into one of "h35" (client) container, 
-ping the container where HTTP server runs, 
+Enter into one of "h35" (client) container,
+ping the container where HTTP server runs,
 and connect to index page:
 
 and connect to index page:
 
-*We use eternal loop here to imitate web activity. 
+*We use eternal loop here to imitate web activity.
 After finishing your test, you might want to stop the loop with `Ctrl-C`*
 ```
 docker attach h35_{x}
 After finishing your test, you might want to stop the loop with `Ctrl-C`*
 ```
 docker attach h35_{x}
@@ -186,7 +186,7 @@ while true; do curl 10.0.36.4; sleep 1; done
 Ctrl-P-Q to detach from docker, leaving the client making HTTP requests, and logoff gbpsfc1.
 
 
 Ctrl-P-Q to detach from docker, leaving the client making HTTP requests, and logoff gbpsfc1.
 
 
-Look around: use "vagrant ssh" to the various machines 
+Look around: use "vagrant ssh" to the various machines
  * take packet captures on eth1.
  * sudo ovs-dpctl dump-flows`
 
  * take packet captures on eth1.
  * sudo ovs-dpctl dump-flows`
 
index c8cd0b0cf88d3a5a154cfb7df5493e06e8651463..c12dda0da20df1b3f046f8c67ccc6d6806987a15 100644 (file)
@@ -32,7 +32,7 @@ On controller the script will start ODL in debug mode.
 
 You need to install following features in ODL (logs are optional)::
 
 
 You need to install following features in ODL (logs are optional)::
 
-    feature:install odl-vbd-ui odl-groupbasedpolicy-ui odl-groupbasedpolicy-neutron-vpp-mapper odl-restconf
+    feature:install odl-vbd-ui odl-groupbasedpolicy-neutron-vpp-mapper odl-restconf
 
     log:set ERROR org.opendaylight.netconf
     log:set TRACE org.opendaylight.groupbasedpolicy.renderer.vpp
 
     log:set ERROR org.opendaylight.netconf
     log:set TRACE org.opendaylight.groupbasedpolicy.renderer.vpp
index fee2eaf57ecfb7feaadf8775b4bd487f610e8d75..c7915f0096633c700cfb6c5b4dedf0373941d8cd 100644 (file)
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>odl-groupbasedpolicy-ui</artifactId>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>odl-groupbasedpolicy-ip-sgt-distribution-service</artifactId>
         <dependency>
             <groupId>${project.groupId}</groupId>
             <artifactId>odl-groupbasedpolicy-ip-sgt-distribution-service</artifactId>
index 4b9b33acae4c1470ee5fa7bada9018529f4ccbd4..8899b630ef66e4a831585778b1ec16c82ebaefb4 100644 (file)
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
             <type>xml</type>
             <classifier>features</classifier>
         </dependency>
-        <dependency>
-            <groupId>org.opendaylight.sfc</groupId>
-            <artifactId>odl-sfc-ui</artifactId>
-            <version>${sfc.version}</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
     </dependencies>
 </project>
     </dependencies>
 </project>
diff --git a/features/odl-groupbasedpolicy-ui/pom.xml b/features/odl-groupbasedpolicy-ui/pom.xml
deleted file mode 100644 (file)
index 1b5c049..0000000
+++ /dev/null
@@ -1,50 +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.opendaylight.odlparent</groupId>
-        <artifactId>single-feature-parent</artifactId>
-        <version>3.0.2</version>
-        <relativePath/>
-    </parent>
-
-    <groupId>org.opendaylight.groupbasedpolicy</groupId>
-    <artifactId>odl-groupbasedpolicy-ui</artifactId>
-    <version>0.8.0-SNAPSHOT</version>
-    <packaging>feature</packaging>
-    <!--
-         UI
-    -->
-    <!-- <name> formatting is used by autorelease to parse and notify projects on
-       build failure. Please do not modify this unless you have a good reason. -->
-    <name>ODL :: groupbasedpolicy :: ${project.artifactId}</name>
-
-    <dependencyManagement>
-        <dependencies>
-            <!-- ODL-GBP-ARTIFACTS -->
-            <dependency>
-                <groupId>${project.groupId}</groupId>
-                <artifactId>groupbasedpolicy-artifacts</artifactId>
-                <version>${project.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <dependencies>
-        <dependency>
-            <groupId>${project.groupId}</groupId>
-            <artifactId>groupbasedpolicy-ui-bundle</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.opendaylight.dlux</groupId>
-            <artifactId>odl-dlux-core</artifactId>
-            <version>0.8.0-SNAPSHOT</version>
-            <type>xml</type>
-            <classifier>features</classifier>
-        </dependency>
-    </dependencies>
-</project>
index c54c44ff8707d05b97cb207d5d47ab51da24d1c9..74be4228e8e8c5ad812a9b427db169382c6743ad 100755 (executable)
@@ -27,7 +27,6 @@
         <module>odl-groupbasedpolicy-neutron-and-ofoverlay</module>
         <module>odl-groupbasedpolicy-vpp</module>
         <module>odl-groupbasedpolicy-neutron-vpp-mapper</module>
         <module>odl-groupbasedpolicy-neutron-and-ofoverlay</module>
         <module>odl-groupbasedpolicy-vpp</module>
         <module>odl-groupbasedpolicy-neutron-vpp-mapper</module>
-        <module>odl-groupbasedpolicy-ui</module>
         <module>odl-groupbasedpolicy-ip-sgt-distribution-service</module>
         <module>odl-groupbasedpolicy-ne-location-provider</module>
         <module>odl-groupbasedpolicy-ios-xe</module>
         <module>odl-groupbasedpolicy-ip-sgt-distribution-service</module>
         <module>odl-groupbasedpolicy-ne-location-provider</module>
         <module>odl-groupbasedpolicy-ios-xe</module>
diff --git a/groupbasedpolicy-ui/.gitignore b/groupbasedpolicy-ui/.gitignore
deleted file mode 100644 (file)
index 91325d4..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-module/node
-module/src/main/resources/gbp/node_modules
-module/src/main/resources/gbp/vendor
-module/src/main/resources/gbp/node/
diff --git a/groupbasedpolicy-ui/bundle/pom.xml b/groupbasedpolicy-ui/bundle/pom.xml
deleted file mode 100644 (file)
index b85b20a..0000000
+++ /dev/null
@@ -1,95 +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.opendaylight.groupbasedpolicy</groupId>
-    <artifactId>groupbasedpolicy-ui</artifactId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>groupbasedpolicy-ui-bundle</artifactId>
-  <!-- <name> formatting is used by autorelease to parse and notify projects on
-       build failure. Please do not modify this unless you have a good reason. -->
-  <name>ODL :: groupbasedpolicy :: ${project.artifactId}</name>
-  <packaging>bundle</packaging>
-
-    <properties>
-        <dlux.version>0.8.0-SNAPSHOT</dlux.version>
-    </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.opendaylight.dlux</groupId>
-      <artifactId>loader</artifactId>
-        <version>${dlux.version}</version>
-    </dependency>
-     <dependency>
-      <groupId>org.opendaylight.groupbasedpolicy</groupId>
-      <artifactId>groupbasedpolicy-ui-module</artifactId>
-      <version>${project.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>javax.servlet</groupId>
-      <artifactId>javax.servlet-api</artifactId>
-      <version>3.1.0</version>
-    </dependency>
-  </dependencies>
- <build>
-   <resources>
-      <resource>
-        <directory>target/generated-resources</directory>
-      </resource>
-      <resource>
-        <directory>src/main/resources</directory>
-      </resource>
-    </resources>
-    <plugins>
-     <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-     <!--loader Resources-->
-          <execution>
-            <id>unpack-loader-resources</id>
-            <goals>
-              <goal>unpack-dependencies</goal>
-            </goals>
-            <phase>generate-resources</phase>
-            <configuration>
-              <outputDirectory>${project.build.directory}/generated-resources</outputDirectory>
-              <groupId>org.opendaylight.dlux</groupId>
-              <includeArtifactIds>groupbasedpolicy-ui-module</includeArtifactIds>
-                <includes>gbp/build\/**</includes>
-                <excludes>META-INF\/**,gbp/node\/**,gbp/node_modules\/**</excludes>
-              <excludeTransitive>true</excludeTransitive>
-              <ignorePermissions>false</ignorePermissions>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.felix</groupId>
-        <artifactId>maven-bundle-plugin</artifactId>
-        <extensions>true</extensions>
-        <configuration>
-          <instructions>
-            <Import-Package>
-              org.osgi.service.http,
-              org.osgi.framework;version="1.0.0",
-              org.opendaylight.dlux.loader,
-              org.slf4j
-            </Import-Package>
-            <Export-Package></Export-Package>
-          </instructions>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-  <scm>
-    <connection>scm:git:ssh://git.opendaylight.org:29418/dlux.git</connection>
-    <developerConnection>scm:git:ssh://git.opendaylight.org:29418/dlux.git</developerConnection>
-    <tag>HEAD</tag>
-    <url>https://wiki.opendaylight.org/view/OpenDaylight_dlux:Main</url>
-  </scm>
-</project>
diff --git a/groupbasedpolicy-ui/bundle/src/main/resources/org/opendaylight/blueprint/blueprint.xml b/groupbasedpolicy-ui/bundle/src/main/resources/org/opendaylight/blueprint/blueprint.xml
deleted file mode 100644 (file)
index 632a18b..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0">
-    <reference id="httpService" availability="mandatory" activation="eager" interface="org.osgi.service.http.HttpService"/>
-    <reference id="loader" availability="mandatory" activation="eager" interface="org.opendaylight.dlux.loader.DluxModuleLoader"/>
-    <bean id="bundle" init-method="initialize" destroy-method="clean" class="org.opendaylight.dlux.loader.DluxModule">
-        <property name="httpService" ref="httpService"/>
-        <property name="loader" ref="loader"/>
-        <property name="moduleName" value="gbp"/>
-        <property name="url" value="/src/app/gbp"/>
-        <property name="directory" value="/gbp/build"/>
-        <property name="requireJs" value="app/gbp/main"/>
-        <property name="angularJs" value="app.gbp"/>
-        <property name="cssDependencies">
-            <list>
-                <value>src/app/gbp/common/gbp.css</value>
-                <value>src/app/gbp/vendor/angular-material/angular-material.min.css</value>
-                <value>src/app/gbp/vendor/angular-material-data-table/dist/md-data-table.min.css</value>
-                <value>src/app/gbp/vendor/roboto-fontface/css/roboto-fontface.css</value>
-                <value>src/app/gbp/vendor/NeXt/css/next.min.css</value>
-                <value>https://fonts.googleapis.com/icon?family=Material+Icons</value>
-                <value>http://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css</value>
-            </list>
-        </property>
-    </bean>
-</blueprint>
diff --git a/groupbasedpolicy-ui/module/pom.xml b/groupbasedpolicy-ui/module/pom.xml
deleted file mode 100644 (file)
index 1e0062c..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2014 Inocybe Technologies, and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<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.opendaylight.groupbasedpolicy</groupId>
-    <artifactId>groupbasedpolicy-ui</artifactId>
-    <version>0.8.0-SNAPSHOT</version>
-  </parent>
-
-  <artifactId>groupbasedpolicy-ui-module</artifactId>
-  <!-- <name> formatting is used by autorelease to parse and notify projects on
-       build failure. Please do not modify this unless you have a good reason. -->
-  <name>ODL :: groupbasedpolicy :: ${project.artifactId}</name>
-  <description>GBP UI Module Resources</description>
-  <packaging>jar</packaging>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>com.github.eirslett</groupId>
-                <artifactId>frontend-maven-plugin</artifactId>
-                <version>1.0</version>
-                <configuration>
-                    <nodeVersion>v6.2.2</nodeVersion>
-                    <npmVersion>3.9.5</npmVersion>
-                    <workingDirectory>src/main/resources/gbp/</workingDirectory>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>npm</id>
-                        <goals>
-                            <goal>install-node-and-npm</goal>
-                            <goal>npm</goal>
-                        </goals>
-                        <phase>generate-resources</phase>
-                    </execution>
-                    <execution>
-                        <id>bower</id>
-                        <goals>
-                            <goal>bower</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>gulp</id>
-                        <goals>
-                            <goal>gulp</goal>
-                        </goals>
-                        <configuration>
-                            <arguments>build</arguments>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/.bowerrc b/groupbasedpolicy-ui/module/src/main/resources/gbp/.bowerrc
deleted file mode 100644 (file)
index 5bdbb80..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-       "directory" : "vendor"
-}
\ No newline at end of file
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/.gitignore b/groupbasedpolicy-ui/module/src/main/resources/gbp/.gitignore
deleted file mode 100644 (file)
index 63e5a75..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules/
-vendor/
-build/
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/bower.json b/groupbasedpolicy-ui/module/src/main/resources/gbp/bower.json
deleted file mode 100644 (file)
index c7e438e..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "name": "opendaylight-gbp",
-  "version": "0.5.0",
-  "dependencies": {
-    "angular-animate": "~1.4.0",
-    "angular-aria": "~1.4.0",
-    "angular-material": "1.0.5",
-    "roboto-fontface": "~0.4.3",
-    "angular-material-data-table": "~0.9.11",
-    "NeXt": "~0.9.1"
-  },
-  "resolutions": {
-    "angular": "~1.4.0"
-  }
-}
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/build.config.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/build.config.js
deleted file mode 100644 (file)
index b53052b..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * This file/module contains all configuration for the build process.
- */
-module.exports = {
-    /**
-     * The `build_dir` folder is where our projects are compiled during
-     * development and the `compile_dir` folder is where our app resides once it's
-     * completely built.
-     */
-    build_dir: 'build',
-    app_dir: 'app',
-
-    /**
-     * This is a collection of file patterns that refer to our app code (the
-     * stuff in `src/`). These file paths are used in the configuration of
-     * build tasks. `js` is all project javascript, less tests. `ctpl` contains
-     * our reusable components' (`src/common`) template HTML files, while
-     * `atpl` contains the same, but for our app's code. `html` is just our
-     * main HTML file, `less` is our main stylesheet, and `unit` contains our
-     * app's unit tests.
-     */
-    app_files: {
-        js: ['*/**/*.js', '!node/**/*.*', '!node_modules/**/*.*', '!vendor/**/*.*'],
-        root_js: ['main.js'],
-
-        templates: ['*/**/*.tpl.html'],
-    },
-
-    assets_files: {
-        css: ['common/*.css'],
-    },
-
-    /**
-     * This is a collection of files used during testing only.
-     */
-
-
-    /**
-     * This is the same as `app_files`, except it contains patterns that
-     * reference vendor code (`vendor/`) that we need to place into the build
-     * process somewhere. While the `app_files` property ensures all
-     * standardized files are collected for compilation, it is the user's job
-     * to ensure non-standardized (i.e. vendor-related) files are handled
-     * appropriately in `vendor_files.js`.
-     *
-     * The `vendor_files.js` property holds files to be automatically
-     * concatenated and minified with our project source files.
-     *
-     * The `vendor_files.css` property holds any CSS files to be automatically
-     * included in our app.
-     *
-     * The `vendor_files.assets` property holds any assets to be copied along
-     * with our app's assets. This structure is flattened, so it is not
-     * recommended that you use wildcards.
-     */
-    vendor_files: {
-        js: [
-            'angular-material/angular-material.min.js',
-            'angular-animate/angular-animate.min.js',
-            'angular-aria/angular-aria.min.js',
-            'angular-material-data-table/dist/md-data-table.min.js',
-            'angular-messages/angular-messages.min.js',
-            'NeXt/js/next.min.js',
-        ],
-        css: [
-            'angular-material/angular-material.min.css',
-            'roboto-fontface/css/roboto-fontface.css',
-            'angular-material-data-table/dist/md-data-table.min.css',
-            'NeXt/css/next.min.css',
-
-        ],
-        fonts: [
-            'roboto-fontface/fonts/*.*',
-            'NeXt/fonts/*.*',
-        ]
-    }
-
-};
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.controller.js
deleted file mode 100644 (file)
index b11358a..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-define([
-    'app/gbp/common/gbp.service',
-    'app/gbp/resolved-policy/resolved-policy-list.service',
-    'app/gbp/endpoints/sxp-mapping-list.service'
-], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('RootGbpCtrl', RootGbpCtrl);
-
-    RootGbpCtrl.$inject = ['$mdDialog', '$rootScope', '$scope', '$state',
-        'EndpointsListService', 'NextTopologyService', 'ResolvedPolicyListService', 'RootGbpService',
-        'TenantListService', 'SxpMappingListService'];
-
-    function RootGbpCtrl($mdDialog, $rootScope, $scope, $state,
-        EndpointsListService, NextTopologyService, ResolvedPolicyListService, RootGbpService,
-        TenantListService, SxpMappingListService) {
-
-        /* properties */
-        $scope.apiType = 'operational';
-        $scope.activeObject = null;
-        $scope.endpoints = EndpointsListService.createList();
-        $scope.endpointSgtList = SxpMappingListService.createList();
-        $scope.innerObj = {};
-        $scope.rootTenant = null;
-        $scope.rootTenants = TenantListService.createList();
-        $scope.resolvedPolicy = {};
-        $scope.sidePanelObject = null;
-        $scope.sidePanelPage = false;
-        $scope.sidePanelPageEndpoint = false;
-        $scope.stateUrl = null;
-        $scope.topologyData = { nodes: [], links: [] };
-        $scope.viewPath = 'src/app/gbp/';
-
-        var resolvedPolicies = ResolvedPolicyListService.createList();
-        getResolvedPolicies();
-
-        /* methods */
-        $scope.broadcastFromRoot = broadcastFromRoot;
-        $scope.closeSidePanel = closeSidePanel;
-        $scope.openSfcDialog = openSfcDialog;
-        $scope.openSidePanel = openSidePanel;
-        $scope.setRootTenant = setRootTenant;
-        $scope.fillTopologyData = fillTopologyData;
-        $scope.highlightNode = highlightNode;
-        $scope.highlightLink = highlightLink;
-        $scope.fadeAll = fadeAll;
-        $scope.rootOpenEndpointDialog = rootOpenEndpointDialog;
-        $scope.rootDeleteEndpointDialog = rootDeleteEndpointDialog;
-
-        RootGbpService.setMainClass();
-        init();
-
-        /* implementations */
-
-        /**
-         *
-         * @param eventName
-         * @param val
-         */
-        function broadcastFromRoot(eventName, val) {
-            $scope.$broadcast(eventName, val);
-        }
-
-        /**
-         *
-         */
-        function closeSidePanel() {
-            if($scope.sidePanelPage) {
-                $scope.sidePanelPage = false;
-                $scope.sidePanelObject = null;
-                $scope.fadeAll();
-            }
-        }
-
-        /**
-         *
-         * @param source
-         * @param target
-         * @param contract
-         * @param tenant
-         * @returns {{id: string, source: *, target: *, tenant: *}}
-         */
-        function createLink( linkId, type) {
-            var linkIdParts = linkId.split('++');
-            return {
-                'id': linkId,
-                'source': linkIdParts[1],
-                'target': linkIdParts[2],
-                'tenant': $scope.rootTenant,
-                'type': type,
-            };
-        }
-
-        /**
-         *
-         * @param nodeName
-         * @param tenantId
-         * @returns {Object}
-         */
-        function createNode(nodeName) {
-            return {
-                'id': nodeName,
-                'tenantId': $scope.rootTenant,
-                'node-id': nodeName,
-                'label': nodeName,
-            };
-        }
-
-        /**
-         *
-         */
-        function fadeAll() {
-            $rootScope.nxTopology && NextTopologyService.fadeInAllLayers($rootScope.nxTopology);
-        }
-
-        /**
-         * reads resolvedPolicies list, prepares nodes and links for topology and fills them
-         */
-        function fillTopologyData() {
-            var tempTopoData = {nodes: [], links: []};
-            $scope.resolvedPolicy = resolvedPolicies.aggregateResolvedPolicies();
-
-            tempTopoData.nodes = Object.keys($scope.resolvedPolicy.epgs).map(function (key) {
-                return createNode(key);
-            });
-
-            tempTopoData.links = Object.keys($scope.resolvedPolicy.contracts).map(function (key) {
-                return createLink(key, $scope.resolvedPolicy.contracts[key].type);
-            });
-
-            $scope.topologyData = tempTopoData;
-            $scope.topologyLoaded = true;
-        }
-
-        function getResolvedPolicies() {
-            if($scope.rootTenant) {
-                resolvedPolicies.get($scope.rootTenant, fillTopologyData);
-            }
-        }
-
-        /**
-         *
-         * @param node
-         */
-        function highlightNode(node) {
-            NextTopologyService.highlightNode($rootScope.nxTopology, node);
-        }
-
-        /**
-         *
-         * @param link
-         */
-        function highlightLink(link) {
-            NextTopologyService.highlightLink($rootScope.nxTopology, link);
-        }
-
-        /**
-         *
-         */
-        function init() {
-            $scope.rootTenants.clearData();
-            $scope.rootTenants.get('config');
-            $state.go('main.gbp.index.resolvedPolicy');
-            $scope.endpointSgtList.get();
-
-
-        }
-
-        /**
-         *
-         * @param chainName
-         */
-        function openSfcDialog(chainName) {
-            $mdDialog.show({
-                clickOutsideToClose: true,
-                controller: 'SfcTopologyController',
-                preserveScope: true,
-                templateUrl: $scope.viewPath + 'sfc/dialog-sfc-topology.tpl.html',
-                parent: angular.element(document.body),
-                scope: $scope,
-                locals: {
-                    chainName: chainName
-                }
-            });
-        }
-
-
-        /**
-         * Sets '$scope.sidePanelPage' to true. This variable is watched in index.tpl.html template
-         * and opens/closes side panel
-         */
-        function openSidePanel(page, object, type, element) {
-            $scope.sidePanelPage = page;
-            $scope.sidePanelObject = object;
-
-            switch(type) {
-                case 'subject':
-                    $scope.innerObj.subject = element;
-                    break;
-                case 'clause':
-                    $scope.innerObj.clause = element;
-                    break;
-                case 'rule':
-                    $scope.innerObj.rule = element;
-                    break;
-                default:
-            }
-        }
-
-        /**
-         *
-         */
-        function setRootTenant() {
-            $scope.broadcastFromRoot('ROOT_TENANT_CHANGED');
-
-            if ($scope.stateUrl.startsWith('/resolved-policy')) {
-                getResolvedPolicies();
-                if($scope.sidePanelObject) {
-                    if($scope.sidePanelObject['contract-id'])
-                        openSidePanel('resolved-policy/sidepanel/views/contract-list-sidepanel');
-                    else
-                        openSidePanel('resolved-policy/sidepanel/views/epg-list-sidepanel');
-                }
-            }
-        }
-
-        /**
-         * fills $scope.stateUrl with loaded url
-         * It's called on $viewContentLoaded event
-         */
-        function setStateUrl() {
-            $scope.stateUrl = $state.current.url;
-            closeSidePanel();
-
-            if ($scope.stateUrl.startsWith('/resolved-policy')) {
-                getResolvedPolicies();
-            }
-        }
-
-        function rootOpenEndpointDialog(operation, endpointData) {
-            $scope.disableKeyFieldsEditing = operation === 'edit';
-            $mdDialog.show({
-                clickOutsideToClose: true,
-                controller: 'AddEndpointController',
-                preserveScope: true,
-                templateUrl: $scope.viewPath + 'endpoints/dialog-add-endpoint.tpl.html',
-                parent: angular.element(document.body),
-                scope: $scope,
-                locals: {
-                    endpoint: endpointData
-                }
-            });
-        }
-
-        function rootDeleteEndpointDialog(endpointData) {
-            var confirm = $mdDialog.confirm()
-                .title('Delete endpoint')
-                .textContent('Do you want to delete endpoint?')
-                .ok('Delete')
-                .cancel('Cancel');
-
-            $mdDialog.show(confirm).then(function () {
-                endpointData.deleteEndpoint(function () {
-                    $scope.$broadcast('endpointChanged');
-                });
-            }, function () {
-
-            });
-        }
-
-        /* event listeners */
-        /**
-         * Event fired after content loaded, setStateUrl function is called to fill stateUrl method
-         */
-        $scope.$on('$viewContentLoaded', setStateUrl);
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.css b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.css
deleted file mode 100644 (file)
index 60105a9..0000000
+++ /dev/null
@@ -1,363 +0,0 @@
-#page_logo {
-    display: none;
-}
-
-.h100 {
-    height:100%
-}
-
-.w100 {
-    width:100%
-}
-
-.gbpUiGlobalWrapper {
-    background: #ffffff;
-    margin-bottom: 0!important;
-    min-height: 100%;
-    padding: 0px;
-}
-
-.gbpUiGlobalWrapper .main {
-    top: 0px;
-    height: 100%;
-}
-
-.gbpUiWrapper {
-    background-color: #414042;
-}
-
-.gbpUiWrapper .pageContent {
-    margin: 0px;
-    padding: 0px;
-    width: 100%;
-    height: 100%;
-}
-
-.gbpUiWrapper .side-panel {
-    width: 400px;
-    color: #000 ! important;
-    border: 1px solid #000;
-}
-
-.gbpUiWrapper .h100 {
-    height: 100%;
-}
-
-.gbpUiWrapper.w100 {
-    width: 100%;
-}
-
-.gbpUiWrapper.flt-r {
-    float: right;
-}
-
-/* LAYOUT */
-.layout-padding-lr15 {
-    padding: 0 15px;
-}
-
-/* TABLES */
-.gbpUiWrapper .md-table span {
-    color: rgba(0,0,0,.87);
-}
-.gbpUiWrapper .md-table-pagination span {
-    color: rgba(0,0,0,.87);
-    font-weight: normal;
-}
-.gbpUiWrapper button.md-button.md-icon-button.w85 {
-    width: 85px;
-}
-
-/* BUTTONS */
-.gbpUiWrapper button.md-primary span {
-    color: rgb(33,150,243);
-}
-.gbpUiWrapper button .md-icon {
-    width: 30px;
-}
-
-/* DIALOG */
-.gbpDialogWrapper button.md-primary span {
-    color: rgba(0,0,0,0.87);
-}
-.gbpDialogWrapper button.md-primary[disabled] span {
-    color: rgba(0,0,0,0.26);
-}
-
-.gbpUiWrapper svg, div#next-vpp-topo svg {
-    border: none;
-    background-image: none;
-}
-
-.gbpUiWrapper svg g.node text {
-    pointer-events: auto !important;
-}
-
-.expander md-content {
-    line-height: 15px;
-    width: 100%;
-}
-
-.expander .md-list-item-inner {
-    flex-flow: row wrap;
-}
-
-.expand-button {
-    min-width: 0px !important;
-    min-height: 0px !important;
-    margin-top: 0 !important;
-    margin-bottom: 0 !important;
-    line-height: normal !important;
-}
-
-#graph-container {
-    padding-left: 0;
-    background-color: #ffffff;
-    width: 100%;
-    height: 100%;
-}
-
-/* $mdDialog.confirm */
-md-dialog button span {
-    color: #000;
-}
-
-div.layout-padding h3 {
-    color: black;
-}
-
-md-sidenav span {
-    color: inherit !important;
-}
-
-div.md-primary.md-subheader.ng-scope > div > span > span {
-  color: rgb(33,150,243);
-}
-
-.md-subheader {
-    font-weight: bold !important;
-}
-
-md-sidenav > md-toolbar > div > h2 > span {
-    margin: 20px 0;
-    color: #666;
-}
-
-span.flex-35 > strong {
-    color: rgba(0,0,0,0.87);
-}
-
-span.ng-binding.flex {
-    color: rgba(0,0,0,0.87);
-}
-
-md-select:not([disabled]) .md-select-value .md-text {
-       color: black;
-}
-
-.md-input-has-value label {
-    color: rgba(0,0,0,0.54);
-}
-
-md-select-value span {
-       color: rgba(0,0,0,0.26);
-    font-weight: bold;
-    margin-bottom: 5px;
-    line-height: 1.428571429;
-}
-
-md-select-value span div {
-    font-weight: normal;
-}
-
-.md-chips {
-        padding: 0 0 0 0 !important;
-}
-
-md-dialog-content > div:first-child {
-    padding-top: 20px;
-    padding-bottom: 20px;
-}
-
-.gbpUiGlobalWrapper .md-locked-open {
-    width: 500px;
-    min-width: 500px;
-}
-
-.breadcrumbs {
-    display: inline-block;
-    font-size: 16px;
-    font-weight: 500;
-    line-height: 1em;
-    padding-left: 0;
-    margin: 10px 0;
-}
-
-.breadcrumbs .breadcrumb {
-    display: inline-block;
-    color: rgba(0,0,0,.54);
-    background-color: transparent;
-    padding: 0;
-    font-size: 13px;
-    margin-bottom: 0 !important;
-    vertical-align: middle;
-    max-height: 20px;
-    line-height: 20px;
-}
-
-.breadcrumbs .breadcrumb[role="button"] {
-    color: rgb(33, 150, 243);
-    cursor: pointer;
-}
-
-.breadcrumb i {
-    font-size: 20px !important;
-}
-
-.layout-padding-r10 {
-    padding-right: 10px;
-}
-
-.layout-padding-b15 {
-    padding-bottom: 15px;
-}
-
-.order {
-    color: #000 !important;
-    margin: 0;
-}
-
-.status-circle.allow {
-    color: green;
-}
-
-.status-circle.require-contract {
-    color: orange;
-}
-
-md-ink-bar {
-    background: red !important;
-}
-
-md-tab-item > span {
-    color: rgba(0,0,0,0.54);
-}
-
-md-tab-item.md-tab.ng-scope.ng-isolate-scope.md-ink-ripple.md-active > span {
-    color: rgb(16,108,200);
-}
-
-.layout-padding-lr15.ng-scope.layout-column > div {
-    padding-top: 15px;
-}
-
-div.md-primary.md-subheader > div > span > span {
-    color: rgb(33,150,243);
-}
-
-div.md-secondary.md-subheader.ng-scope > div > span > span {
-    color: rgb(33,150,243) !important;
-}
-
-li > md-autocomplete-parent-scope > span {
-    color: rgba(0,0,0,.54);
-}
-
-#tenantSelector div, #tenantSelector .md-select-placeholder span {
-    color: white;
-    font-weight: normal;
-}
-
-md-input-container md-select md-select-value span {
-    font-weight: 500;
-    font-size: 14px;
-    font-style: inherit;
-    font-variant: inherit;
-    font-family: inherit;
-    letter-spacing: 0.010em;
-}
-
-#select_container_1 {
-    z-index:1001;
-}
-
-md-list-item.md-4-line .md-list-item-text h3{
-    font-size: 16px;
-    font-weight: 400;
-    letter-spacing: 0.010em;
-    margin: 0 0 0px 0;
-    line-height: 1.2em;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    color: rgba(0,0,0,0.87);
-}
-
-md-list-item.md-4-line .md-list-item-text p {
-    font-size: 14px;
-    font-weight: 500;
-    letter-spacing: 0.010em;
-    margin: 0 0 0 0;
-    line-height: 1.6em;
-    color: rgba(0,0,0,0.54);
-}
-
-
-md-list-item.md-4-line {
-    height: auto;
-    min-height: 100px;
-}
-
-section.legendBox{
-    position: absolute !important;
-    right: 0;
-    top: 0;
-    z-index: 1;
-    width: 200px;
-}
-
-section.legendBox ul li {
-    list-style-type: none;
-}
-
-.reload-button i {
-    vertical-align: middle;
-}
-
-section.legendBox ul .line.green {
-    border-top: 2px solid #68bd6b;
-}
-
-section.legendBox ul .line.blue {
-    border-top: 2px solid #84a3ff;
-}
-
-section.legendBox ul .line {
-    display: -moz-inline-stack;
-    display: inline-block;
-    vertical-align: top;
-    zoom: 1;
-    margin: 9px 5px 0 0;
-    width: 50px;
-}
-
-.margin-lr0 {
-    margin-right: 0 !important;
-    margin-left: 0 !important;
-}
-
-.popover-title {
-    color: black;
-}
-
-.popover-content span {
-    color: black;
-}
-
-.popover-content h5 {
-    color: black;
-}
-
-.n-topology-nav-setting > span {
-    color: #999999;
-}
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.module.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.module.js
deleted file mode 100644 (file)
index 61ead75..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-define([
-    'app/routingConfig',
-    'Restangular',
-    'angular-translate-loader-partial',
-    'angular-animate',
-    'angular-aria',
-    'angular-material',
-    'angular-material-data-table',
-    'angular-messages',
-    'app/gbp/common/topology/next_topology.module',], function () {
-
-    var gbp = angular.module('app.gbp',
-        [
-            'app.core', 'ui.router.state', 'restangular', 'ngAnimate', 'ngAria', 'ngMaterial', 'md.data.table',
-            'ngMessages', 'app.nextTopo',
-        ]);
-
-    gbp.register = gbp; // for adding services, controllers, directives etc. to angular module before bootstrap
-
-    gbp.config(function ($stateProvider, $compileProvider, $controllerProvider, $provide, NavHelperProvider,
-                         $translateProvider, $translatePartialLoaderProvider, $urlRouterProvider, $mdThemingProvider) {
-        gbp.register = {
-            controller: $controllerProvider.register,
-            directive: $compileProvider.directive,
-            factory: $provide.factory,
-            service: $provide.service,
-        };
-
-        $urlRouterProvider.otherwise('/gbp/index');
-
-        /*$translatePartialLoaderProvider.addPart('app/gbp/assets/data/locale');*/
-
-        NavHelperProvider.addControllerUrl('app/gbp/common/gbp.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/contract/add-contract.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/contract/contract.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/endpoints/endpoints.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/endpoints/add-endpoint.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/epg/epg.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/policy/policy.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/resolved-policy/resolved-policy.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/sfc/dialog-sfc-topology.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/resolved-policy/sidepanel/epg-sidepanel.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/resolved-policy/sidepanel/epg-list-sidepanel.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/resolved-policy/sidepanel/contract-sidepanel.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/resolved-policy/sidepanel/contract-list-sidepanel.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/tenant/add-tenant.controller');
-        NavHelperProvider.addControllerUrl('app/gbp/tenant/tenant.controller');
-
-        NavHelperProvider.addToMenu('gbp', {
-            'link': '#/gbp/index',
-            'active': 'main.gbp',
-            'title': 'GBP',
-            'icon': 'icon-level-down',
-            'page': {
-                'title': 'GBP',
-                'description': 'GBP ui'
-            }
-        });
-
-        var access = routingConfig.accessLevels;
-
-        $stateProvider.state('main.gbp', {
-            url: 'gbp',
-            abstract: true,
-            // access: access.public,
-            views: {
-                'content': {
-                    templateUrl: 'src/app/gbp/common/views/root.tpl.html'
-
-                },
-            },
-        });
-
-        $stateProvider.state('main.gbp.index', {
-            url: '/index',
-            access: access.admin,
-            views: {
-                '': {
-                    controller: 'RootGbpCtrl',
-                    templateUrl: 'src/app/gbp/common/views/index.tpl.html'
-                },
-            },
-        });
-
-        $stateProvider.state('main.gbp.index.tenant', {
-            url: '/tenant',
-            access: access.admin,
-            templateUrl: 'src/app/gbp/common/views/index.tpl.html',
-            views: {
-                '': {
-                    controller: 'TenantController',
-                    templateUrl: 'src/app/gbp/tenant/tenant.tpl.html',
-                },
-            },
-        });
-
-        $stateProvider.state('main.gbp.index.policy', {
-            url: '/policy',
-            access: access.admin,
-            templateUrl: 'src/app/gbp/common/views/index.tpl.html',
-            views: {
-                'main_top': {
-                    controller: 'EpgController',
-                    templateUrl: 'src/app/gbp/epg/epg.tpl.html',
-                },
-                'main_bottom': {
-                    controller: 'ContractController',
-                    templateUrl: 'src/app/gbp/contract/contract.tpl.html',
-                },
-            },
-        });
-
-        $stateProvider.state('main.gbp.index.policy.epg', {
-            url: '/epg',
-            access: access.admin,
-            templateUrl: 'src/app/gbp/common/views/index.tpl.html',
-            views: {
-                '': {
-                    controller: 'PolicyController',
-                    templateUrl: 'src/app/gbp/policy/policy.tpl.html',
-                },
-                'sidePanel': {
-                    controller: 'EpgController',
-                    templateUrl: 'src/app/gbp/epg/epg.tpl.html',
-                },
-            },
-        });
-
-        $stateProvider.state('main.gbp.index.contract', {
-            url: '/policy/contract',
-            access: access.admin,
-            templateUrl: 'src/app/gbp/common/views/index.tpl.html',
-            views: {
-                '': {
-                    controller: 'ContractController',
-                    templateUrl: 'src/app/gbp/contract/contract.tpl.html',
-                },
-            },
-        });
-
-        $stateProvider.state('main.gbp.index.contractId', {
-            url: '/policy/contract/{contractId}',
-            access: access.admin,
-            templateUrl: 'src/app/gbp/common/views/index.tpl.html',
-            views: {
-                '': {
-                    controller: 'ContractController',
-                    templateUrl: 'src/app/gbp/contract/contract.tpl.html',
-                },
-            },
-        });
-
-        $stateProvider.state('main.gbp.index.resolvedPolicy', {
-            url: '/resolved-policy',
-            access: access.admin,
-            templateUrl: 'src/app/gbp/common/views/index.tpl.html',
-            views: {
-                '': {
-                    controller: 'ResolvedPolicyController',
-                    templateUrl: 'src/app/gbp/resolved-policy/resolved-policy.tpl.html',
-                },
-            },
-        });
-
-        $stateProvider.state('main.gbp.index.endpoints', {
-            url: '/endpoints',
-            access: access.admin,
-            templateUrl: 'src/app/gbp/common/views/index.tpl.html',
-            views: {
-                '': {
-                    controller: 'EndpointsController',
-                    templateUrl: 'src/app/gbp/endpoints/endpoints.tpl.html',
-                },
-            },
-        });
-
-        $mdThemingProvider.theme('default')
-            .primaryPalette('blue')
-            .accentPalette('blue-grey');
-    });
-
-    return gbp;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/gbp.service.js
deleted file mode 100644 (file)
index 7eb65a5..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('RootGbpService', RootGbpService);
-
-    RootGbpService.$inject = [];
-
-    function RootGbpService() {
-        this.setMainClass = setMainClass;
-
-        /**
-         * Sets gbpUiGlobalWrapper to override padding on parent class
-         */
-        function setMainClass(){
-            if ($('.gbpUiWrapper').length) {
-                $('.gbpUiWrapper').closest('.col-xs-12').addClass('gbpUiGlobalWrapper');
-            }
-        }
-    }
-
-    return RootGbpService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/topology/next_topology.directive.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/topology/next_topology.directive.js
deleted file mode 100644 (file)
index 4eebf31..0000000
+++ /dev/null
@@ -1,414 +0,0 @@
-define(['next-ui'], function() {
-
-       var NextTopology = function (NextTopologyService){
-        return {
-                           restrict: 'E',
-                scope: {
-                    topologyData: '=',
-                    cbkFunctions: '=?',
-                    dictionaries: '=?',
-                    topo: '=?',
-                    topoColors: '=?'
-                },
-                           template: '<div id="graph-container" class="col-md-12"></div>',
-                           link: function(scope) {
-                               var saveTopoInterval = null;
-
-                               scope.topo = null;
-
-                               /**
-                                * Colors used for topology objects
-                                * @type {nx.data.Dictionary}
-                                */
-                               scope.topoColors = new nx.data.Dictionary({
-                                       'operational': '#0f9d58',
-                                       'configured': '#464646',
-                                       'operational-mixed': '#C4AF00',
-                                       'down': '#FF0000',
-                                       'default': '#8C8C8C',
-                                       'forwarding-box': '#0386d2',
-                                       'host': '#8C8C8C'
-                               });
-
-                               /**
-                                * init next topology graph
-                                */
-                               scope.init = function (successCbk) {
-                                       // register "font" icon
-                                       nx.graphic.Icons.registerFontIcon('devicedown', 'FontAwesome', "\uf057", 20);
-
-                    var circle = "<defs xmlns='http://www.w3.org/2000/svg'><marker id='circle' viewBox='-3 -3 6 6' markerWidth='6' markerHeight='6' orient='auto'> <circle r='3' fill='#68BD6B'></circle></marker></defs>";
-
-                                       var app = new nx.ui.Application();
-                                       // set app containter
-                                       document.getElementById('graph-container').innerHTML = '';
-                                       app.container(document.getElementById('graph-container'));
-
-                    scope.topo = NextTopologyService.getNxTopClass(scope.topoColors);
-                    scope.setTopoEvents();
-                    scope.topo.stage().addDefString(circle);
-
-                                       extendLinkClass();
-                                       extendNodeClass();
-                                       extendedTooltip();
-                                       // TODO: remove when come to decision about depiction of node status
-                                       //createNodeStatusLayer();
-                                       defineCustomEvents();
-
-
-
-                                       // App events - if app is resized
-                                       app.on('resize', function(){
-                                               scope.topo.adaptToContainer();
-                                       });
-
-                                       // Attach topo to app
-                                       scope.topo.attach(app);
-
-                                       if ( successCbk ) {
-                                               successCbk();
-                                       }
-                               };
-
-                               /**
-                                * NX topo events
-                                */
-                               scope.setTopoEvents = function () {
-                                       // Fired when the app is ready and displayed
-                                       scope.topo.on('ready', function (sender, event) {
-                                               scope.topo.data(scope.topologyData);
-
-                                               // load saved data
-                                               if ( scope.dictionaries ){
-                                                       var data = NextTopologyService.readTopologyDataFromLS();
-                                                       NextTopologyService.setTopologyDataFromLS(data, scope.topo, scope.dictionaries.nodes);
-                                               }
-
-                                               // clear interval after reload data
-                                               if ( saveTopoInterval ) {
-                                                       clearInterval(saveTopoInterval);
-                                               }
-
-                                               // set interval for saving topo nodes position
-                                               saveTopoInterval = window.setInterval(function(){NextTopologyService.saveTopologyDataToLS(scope.topo);}, 5000);
-                                       });
-
-                                       // Fired when topology is generated
-                                       scope.topo.on('topologyGenerated', function(sender, event) {
-
-                                               // use custom events for the topology
-                                               // TODO: remove when come to decision about depiction of node status
-                                               //sender.attachLayer("status", "NodeStatus");
-                                               sender.registerScene('ce', 'CustomEvents');
-                                               sender.activateScene('ce');
-                                               scope.topo.tooltipManager().showNodeTooltip(false);
-                                       });
-                               };
-
-                               /**
-                                * Watching topology data
-                                */
-                               scope.$watch('topologyData', function(){
-                                       //console.log('scope.topologyData', scope.topologyData);
-
-                                       //if( scope.topologyData.nodes.length ) { //&& initialized === false
-                                               scope.init(scope.cbkFunctions.topologyGenerated);
-                                       //}
-                               });
-
-                               /**
-                                * Extend base nx node class function
-                                */
-                               function extendNodeClass(){
-                                       nx.define('ExtendedNode', nx.graphic.Topology.Node, {
-                                               view: function(view){
-
-                                                       view.content.push({
-                                                               "name": "deviceDownBadge",
-                                                               "type": "nx.graphic.Group",
-                                                               "content": [
-                                                                       {
-                                                                               "name": "deviceDownBadgeBg",
-                                                                               "type": "nx.graphic.Rect",
-                                                                               "props": {
-                                                                                       "class": "device-down-bg",
-                                                                                       "height": 1,
-                                                                                       "visible": false
-                                                                               }
-                                                                       },
-                                                                       {
-                                                                               "name": "deviceDownBadgeText",
-                                                                               "type": "nx.graphic.Icon",
-                                                                               "props": {
-                                                                                       "class": "icon",
-                                                                                       "iconType": "devicedown",
-                                                                                       "color": "#ff0000",
-                                                                                       "showIcon": true,
-                                                                                       "scale": 1,
-                                                                                       "visible": false
-                                                                               }
-                                                                       }
-                                                               ]
-                                                       });
-                                                       return view;
-                                               },
-                                               methods: {
-                                                       // inherit properties/parent's data
-                                                       init: function(args){
-                                                               this.inherited(args);
-                                                               var stageScale = this.topology().stageScale();
-                                                               this.view('label').setStyle('font-size', 14 * stageScale);
-                                                       },
-                                                       // inherit parent's model
-                                                       'setModel': function(model) {
-                                                               this.inherited(model);
-
-                                                               // if status is down
-                                this._drawDeviceDownBadge(this.model());
-
-                                                       },
-                                                       "_drawDeviceDownBadge": function(model){
-
-                                                               var badge, badgeBg, badgeText,
-                                                                       icon, iconSize, iconScale,
-                                                                       bound, boundMax, badgeTransform,
-                                                                       badgeVisibility = model.get("status") === "configured";
-
-                                                               // views of badge
-                                                               badge = this.view("deviceDownBadge");
-                                                               badgeBg = this.view("deviceDownBadgeBg");
-                                                               badgeText = this.view("deviceDownBadgeText");
-
-                                                               // view of device icon
-                                                               icon = this.view('icon');
-                                                               iconSize = icon.size();
-                                                               iconScale = icon.scale();
-
-                                                               // define position of the badge
-                                                               badgeTransform = {
-                                                                       x: iconSize.width * iconScale / -2.5,
-                                                                       y: iconSize.height * iconScale / 3
-                                                               };
-
-                                                               // make badge visible
-                                                               badgeText.set("visible", badgeVisibility);
-
-                                                               // get bounds and apply them for white background
-                                                               bound = badge.getBound();
-                                                               boundMax = Math.max(bound.width - 6, 1);
-                                                               badgeBg.sets({
-                                                                       width: boundMax,
-                                                                       visible: badgeVisibility
-                                                               });
-
-                                                               // set position of the badge
-                                                               badgeBg.setTransform(badgeTransform.x, badgeTransform.y);
-                                                               badgeText.setTransform(badgeTransform.x, badgeTransform.y);
-
-                                                       },
-                                                       "_showDownBadge": function(){
-                                                               this.view("deviceDownBadgeBg").set("visible", true);
-                                                               this.view("deviceDownBadgeText").set("visible", true);
-                                                       },
-                                                       "_hideDownBadge": function(){
-                                                               this.view("deviceDownBadgeBg").set("visible", false);
-                                                               this.view("deviceDownBadgeText").set("visible", false);
-                                                       }
-                                               }
-                                       });
-                               }
-
-                               /**
-                                * Extend base nx link class function
-                                */
-                               function extendLinkClass () {
-                                       nx.define('ExtendedLink', nx.graphic.Topology.Link, {
-                                               view: function(view){
-                                                       view.content.push({
-                                                               name: 'badge',
-                                                               type: 'nx.graphic.Group',
-                                                               content: [
-                                                                       {
-                                                                               name: 'badgeBg',
-                                                                               type: 'nx.graphic.Rect',
-                                                                               props: {
-                                                                                       'class': 'link-set-circle',
-                                                                                       height: 1
-                                                                               }
-                                                                       },
-                                                                       {
-                                                                               name: 'badgeText',
-                                                                               type: 'nx.graphic.Text',
-                                                                               props: {
-                                                                                       'class': 'link-set-text',
-                                                                                       y: 1
-                                                                               }
-                                                                       }
-                                                               ]
-                                                       });
-                                                       return view;
-                                               },
-                                               properties: {
-                                                       stageScale: {
-                                                               set: function (a) {
-                                                                       this.view("badge").setTransform(null, null, a);
-                                                                       var b = (this._width || 1) * a;
-                                                                       this.view("line").dom().setStyle("stroke-width", b);
-                                                                       this.view("path").dom().setStyle("stroke-width", b);
-                                                                       this._stageScale = a;
-                                                                       this.update();
-                                                               }
-                                                       }
-                                               },
-                                               methods: {
-                                                       // inherit properties/parent's data
-                                                       init: function(args){
-                                                               this.inherited(args);
-                                                               this.topology().fit();
-                                                       },
-                                                       // inherit parent's model
-                                                       'setModel': function(model) {
-                                                               this.inherited(model);
-                                                               //if(model._data.linksIntegrity){
-                                                               //      this.view('statusIcon').set('src', 'assets/images/attention.png');
-                                                               //}
-                                                       },
-                                                       // when topology's updated
-                                                       update: function(){
-                                                               /*
-                                                               this.inherited();
-
-                                                               // ECMP badge settings
-                                                               var badge = this.view('badge');
-                                                               var badgeText = this.view('badgeText');
-                                                               var badgeBg = this.view('badgeBg');
-                                                               var statusIcon = this.view('statusIcon');
-                                                               var status = this.model()._data.status;
-                                                               ECMP, not needed here
-                                                               if( this.model()._data.gLinks.length > 2 ) {
-                                                                       badgeText.sets({
-                                                                               text: status.operational + '/' + status.configured,
-                                                                               visible: true
-                                                                       });
-                                                                       var bound = badge.getBound();
-                                                                       var boundMax = Math.max(bound.width - 6, 1);
-                                                                       badgeBg.sets({width: boundMax, visible: true});
-                                                                       badgeBg.setTransform(boundMax / -2);
-                                                                       var centerPoint = this.centerPoint();
-                                                                       badge.setTransform(centerPoint.x, centerPoint.y);
-                                                               }
-                                                               // record source & target 'node-id's
-                                                               var sourceNode = this.model().source()._data;
-                                                               this.model()._data.sourceName = this.model().source()._data.label;
-                                                               this.model()._data.targetName = this.model().target()._data.label;
-
-                                                               this.view("badge").visible(true);
-                                                               this.view("badgeBg").visible(true);
-                                                               this.view("badgeText").visible(true);
-
-                                //set correct link color
-                                this.set('color',this.getColor());
-                                */
-
-                                this.setProviderStyleLine();
-                                                               this.set('color', this.getColor());
-                                                       },
-                                                       // generate the color for a link
-                                                       getColor: function(){
-                                                               // get color depend on status
-                                                               var color = this.model()._data.type === 'chain' ? '#3366ff' : '#009900';
-                                                               // make it available outside next
-                                                               this.model()._data.linkColor = color;
-                                                               return color;
-                            },
-
-                            setProviderStyleLine: function() {
-                                var _offset = this.getOffset();
-                                var offset = new nx.geometry.Vector(0, _offset);
-                                var stageScale = this.stageScale();
-                                var line = this.reverse() ? this.line().negate() : this.line();
-                                var lineEl = this.view('line');
-                                var newLine = line.translate(offset).pad(25 * stageScale, 17 * stageScale);
-                                lineEl.sets({
-                                    x1: newLine.start.x,
-                                    y1: newLine.start.y,
-                                    x2: newLine.end.x,
-                                    y2: newLine.end.y
-                                });
-                                lineEl.setStyle('marker-start', 'url(#circle)');
-                            }
-                                               }
-                                       });
-                               }
-
-                               /**
-                                * Extended class for tooltip nx component
-                                */
-                               function extendedTooltip(){
-                                       nx.define('ExtendedTooltip', nx.ui.Component, {
-                                               properties: {
-                                                       node: {},
-                                                       topology: {}
-                                               },
-                                               view: NextTopologyService.getTooltipContent()
-                                       });
-
-                               }
-
-                               /**
-                                * Define custom events for topology componets
-                                */
-                               function defineCustomEvents(){
-                                       nx.define('CustomEvents', nx.graphic.Topology.DefaultScene, {
-                                               methods: {
-                                                       clickNode: function(sender, node){
-                                                               if ( scope.cbkFunctions.clickNode ) {
-                                                                       scope.cbkFunctions.clickNode(node);
-                                                               }
-                                                       },
-                                                       clickLink: function(sender, link){
-                                                               if ( scope.cbkFunctions.clickLink ) {
-                                                                       scope.cbkFunctions.clickLink(link);
-                                                               }
-                                                       }
-                                               }
-
-                                       });
-                               }
-
-                               // TODO: remove when come to decision about depiction of node status
-                               ///**
-                               // * Creating new node status layer - circles representing device status - up, down
-                               // */
-                               //function createNodeStatusLayer(){
-                               //      nx.define("NodeStatus", nx.graphic.Topology.Layer, {
-                               //      nx.define("NodeStatus", nx.graphic.Topology.Layer, {
-                               //              methods: {
-                               //                      draw: function() {
-                               //                              var topo = this.topology();
-                               //                              topo.eachNode(function(node) {
-                               //                                      var nodeStatus = node._model._data.status === 'operational' ? node._model._data.status : 'down',
-                               //                                              //type = node._model._data.type,
-                               //                                              dot = new nx.graphic.Circle({
-                               //                                                      r: 6,
-                               //                                                      cx: -30,
-                               //                                                      cy: -0
-                               //                                              });
-                               //
-                               //                                      dot.set("fill", topoColors.getItem(nodeStatus));
-                               //                                      dot.attach(node);
-                               //                                      node.dot = dot;
-                               //                              }, this);
-                               //                      }
-                               //              }
-                               //      });
-                               //}
-
-                       }
-               };
-       };
-
-       NextTopology.$inject=['NextTopologyService'];
-
-       return NextTopology;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/topology/next_topology.module.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/topology/next_topology.module.js
deleted file mode 100644 (file)
index 44bc096..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-var controllers = [
-
-];
-
-var services = [
-    'app/gbp/common/topology/next_topology.service'
-];
-
-var models = [
-
-];
-
-var directives = [
-    'app/gbp/common/topology/next_topology.directive'
-];
-
-define(['angular'].concat(controllers).concat(services).concat(models).concat(directives),
-
-    function(angular, NextTopologyService, NextTopology ) {
-        'use strict';
-
-        angular
-            .module('app.nextTopo', [])
-            .config(config);
-
-        function config() {
-
-        }
-
-        angular.module('app.nextTopo')
-            .service('NextTopologyService', NextTopologyService)
-            .directive('nextTopology', NextTopology);
-
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/topology/next_topology.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/topology/next_topology.service.js
deleted file mode 100644 (file)
index f9e5dd9..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-define(['next-ui'], function () {
-    'use strict';
-
-    /**
-     * Service to handle next directive
-     */
-    function NextTopologyService() {
-        /**
-         * Create base nx topology object
-         * @param nx
-         * @returns {nx.graphic.Topology}
-         */
-        this.getNxTopClass = function (topoColors) {
-            return new nx.graphic.Topology({
-                        adaptive: true,
-                        scalable: true,
-                        nodeConfig: {
-                            label: 'model.label',
-                            //iconType: 'model.icon',
-                            iconType: 'unlinked',
-                            color: function (node, model) {
-                                return topoColors.getItem('forwarding-box');
-                            }
-                        },
-                        linkConfig: {
-                            // connected to hosts links have different colors
-                            width: function (model, link) {
-                                return (model._data.gLinks && model._data.gLinks.length > 2) ? 5 : 3;
-                            },
-                            linkType: 'curve'
-                        },
-                        tooltipManagerConfig: {
-                            nodeTooltipContentClass: 'ExtendedTooltip',
-                            showLinkTooltip: false
-                        },
-                        dataProcessor: 'force',
-                        identityKey: 'id',
-                        showIcon: true,
-                        theme: 'blue',
-                        enableSmartNode: false,
-                        linkInstanceClass: 'ExtendedLink',
-                        nodeInstanceClass: 'ExtendedNode'
-                    });
-        };
-
-        /**
-         * Method for getting right link's color based on status
-         * @param status
-         * @param topoColors
-         * @returns {*}
-         */
-        this.getLinkColor = function (status, topoColors) {
-            var color = null;
-
-            if ( status ) {
-                // all links are operational
-                if ( status.operational === status.configured ) {
-                    color =  topoColors.getItem('operational');
-                } else {
-                    // operational less than configured
-                    if (status.operational < status.configured && status.operational) {
-                        color = topoColors.getItem('operational-mixed');
-                    } else {
-                        // if operational and something else presented
-                        if (!status.operational && status.configured) {
-                            // if the link is between forwarding boxes, it's considered down
-                            /*if ( model.source()._data.type === 'forwarding-box' && model.target()._data.type === 'forwarding-box' ) {
-                                color = topoColors.getItem('down');
-                            } else {
-                                // otherwise just configured connection
-                                color = topoColors.getItem('configured');
-                            }*/
-
-                            color = topoColors.getItem('down');
-                            // otherwise
-                        } else {
-                            color = topoColors.getItem('default');
-                        }
-                    }
-                }
-
-            } else {
-                color = topoColors.getItem('default');
-            }
-
-            return color;
-        };
-
-        /**
-         * Service for reading topo nodes data from local storage
-         * @returns {*}
-         */
-        this.readTopologyDataFromLS = function(){
-            var data = null;
-
-            try {
-                data = JSON.parse(localStorage.getItem("verizonTopologyData"));
-            } catch(e) {
-                console.info('Local Storage read parse error:', e);
-            }
-
-            return data;
-        };
-
-        /**
-         * Set loaded nodes data from local storage
-         * @param data
-         * @param topo
-         * @param nodesDict
-         */
-        this.setTopologyDataFromLS = function (data, topo, nodesDict) {
-            if ( data && data.nodes ) {
-
-                data.nodes.forEach(function(node, index){
-                    var nodeInst = topo.getNode(nodesDict.getItem(node.nodeName));
-                    if(nodeInst !== undefined)
-                        nodeInst.position({'x': node.x, 'y': node.y});
-                });
-            }
-        };
-
-        /**
-         * Prepare and save data to local storage
-         * @param topo
-         */
-        this.saveTopologyDataToLS = function (topo) {
-            var data = {'nodes': []},
-                nodesLayer = topo.getLayer('nodes');
-
-            // prepare data for writing
-            nodesLayer.eachNode(function(node){
-                data.nodes.push({
-                    'x': node.x(),
-                    'y': node.y(),
-                    'nodeName': node.model()._data['node-id']
-                });
-            });
-
-            // save to local storage
-            try {
-                localStorage.setItem("verizonTopologyData", JSON.stringify(data));
-            } catch(e) {
-                console.info('Local Storage save error:', e);
-            }
-        };
-
-        /**
-         * Service for fade out all topo layers
-         * @param topo
-         */
-        this.fadeOutAllLayers = function(topo){
-            nx.each(topo.layers(), function(layer) {
-                layer.fadeOut(true);
-            }, this);
-        };
-
-        /**
-         * Service for fade in all topo layers
-         * @param topo
-         */
-        this.fadeInAllLayers = function(topo){
-            //fade out all layers
-            var linksLayerHighlightElements = topo.getLayer('links').highlightedElements(),
-                nodeLayerHighlightElements = topo.getLayer('nodes').highlightedElements();
-
-            //Clears previous
-            nodeLayerHighlightElements.clear();
-            linksLayerHighlightElements.clear();
-
-            nx.each(topo.layers(), function(layer) {
-                layer.fadeIn(true);
-            }, this);
-        };
-
-        /**
-         * Service for highlighting node with(without) links
-         * @param topo
-         * @param targetId
-         * @param noLinks
-         */
-        this.highlightNode = function (topo, targetId, noLinks) {
-            var nodeLayer = topo.getLayer('nodes'),
-                linksLayer = topo.getLayer('links'),
-                linksLayerHighlightElements = linksLayer.highlightedElements(),
-                nodeLayerHighlightElements = nodeLayer.highlightedElements();
-
-            //Clears previous
-            nodeLayerHighlightElements.clear();
-            linksLayerHighlightElements.clear();
-
-            //Highlight node
-            nodeLayerHighlightElements.add(topo.getNode(targetId));
-            if(!noLinks) {
-                //highlight links
-                linksLayerHighlightElements.addRange(nx.util.values(topo.getNode(targetId).links()));
-            }
-            else{
-                linksLayer.fadeOut(true);
-            }
-        };
-
-        /**
-         * Service for highlighting link
-         * @param topo
-         * @param linkId
-         */
-        this.highlightLink = function(topo, linkId) {
-            var nodeLayer = topo.getLayer('nodes'),
-                linksLayer = topo.getLayer('links'),
-                linksLayerHighlightElements = linksLayer.highlightedElements(),
-                nodeLayerHighlightElements = nodeLayer.highlightedElements(),
-                link = topo.getLink(linkId);
-
-            //Clears previous
-            nodeLayerHighlightElements.clear();
-            linksLayerHighlightElements.clear();
-
-            //highlight link
-            linksLayerHighlightElements.add(link);
-            //highlight connected nodes
-            nodeLayerHighlightElements.addRange(nx.util.values({source: topo.getNode(link.model().sourceID()), target: topo.getNode(link.model().targetID())}));
-        };
-
-        /**
-         * Service for highlighting selected links path
-         * @param topo
-         * @param links - array of nx links obj
-         */
-        this.highlightPath = function(topo, links){
-                // clear the path layer and get its instance
-            var pathLayer = this.clearPathLayer(topo),
-                // define a path
-                path = new nx.graphic.Topology.Path({
-                    'pathWidth': 5,
-                    'links': links,
-                    'arrow': 'cap'
-                });
-
-            // add the path
-            pathLayer.addPath(path);
-        };
-
-        /**
-         * Completely clear all paths from path layer
-         * @param topo
-         * @returns {*} path instance
-         */
-        this.clearPathLayer = function(topo){
-            var pathLayer = topo.getLayer("paths");
-            pathLayer.clear();
-            return pathLayer;
-        };
-
-        /**
-         * Service for returning nx tooltip skeleton
-         * @returns {{content: *[]}}
-         */
-        this.getTooltipContent  = function () {
-            return {
-                content: [
-                    {
-                        tag: "div",
-                        props: {
-                            class: "n-topology-tooltip-header"
-                        },
-                        content: [
-                            {
-                                tag: 'span',
-                                props: {
-                                    class: "n-topology-tooltip-header-text"
-                                },
-                                content: '{#node.model.label}'
-                            }
-                        ]
-                    },
-                    {
-                        tag: "div",
-                        props: {
-                            class: "n-topology-tooltip-content n-list"
-                        },
-                        content: [
-                            {
-                                tag: 'ul',
-                                props: {
-                                    class: "n-list-wrap",
-                                    style: "font-size: 0.8em"
-                                },
-                                content: [
-                                    {
-                                        tag: 'li',
-                                        props: {
-                                            class: "n-list-item-i",
-                                            role: "listitem"
-                                        },
-                                        content: [
-                                            {
-                                                tag: "label",
-                                                content: "Status",
-                                                props: {
-                                                    style: "display: block; margin-top: 10px;"
-                                                }
-                                            },
-                                            {
-                                                tag: "span",
-                                                content: "{#node.model.status}"
-                                            }
-                                        ]
-                                    },
-                                    {
-                                        tag: 'li',
-                                        props: {
-                                            class: "n-list-item-i",
-                                            role: "listitem"
-                                        },
-                                        content: [
-                                            {
-                                                tag: "label",
-                                                content: "DataPath ID",
-                                                props: {
-                                                    style: "display: block; margin-top: 10px;"
-                                                }
-                                            },
-                                            {
-                                                tag: "span",
-                                                content: "{#node.model.datapath-id}"
-                                            }
-                                        ]
-                                    },
-                                    {
-                                        tag: 'li',
-                                        props: {
-                                            class: "n-list-item-i",
-                                            role: "listitem"
-                                        },
-                                        content: [
-                                            {
-                                                tag: "label",
-                                                content: "Type",
-                                                props: {
-                                                    style: "display: block; margin-top: 10px;"
-                                                }
-                                            },
-                                            {
-                                                tag: "span",
-                                                content: "{#node.model.data.type}"
-                                            }
-                                        ]
-                                    }
-                                ]
-                            }
-                        ]
-                    }
-                ]
-            };
-        };
-    }
-
-    NextTopologyService.$inject=[];
-
-    return NextTopologyService;
-
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/index.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/index.tpl.html
deleted file mode 100644 (file)
index 4184d60..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<div layout="row" class="gbpUiWrapper" flex>
-    <div layout="column" role="main" flex class="master-view">
-        <md-toolbar>
-            <div class="md-toolbar-tools">
-                <!--<md-button ng-href="#/gbp/index/tenant" ng-click="closeSidePanel()" class="md-primary">Tenant</md-button>
-                <md-menu class="md-primary" class="md-toolbar-tools" style="background-color:rgb(33,150,243);color:black;">
-                    <md-button ng-click="$mdOpenMenu($event)" style="background-color:rgb(33,150,243);color:black;">Policy</md-button>
-                    <md-menu-content style="background-color:rgb(33,150,243);color:black;">
-                        <md-button ng-click="" ng-disabled="policyDisabled" ng-href="#/gbp/index/policy/epg" style="background-color:rgb(33,150,243);color:black;">EPGs</md-button>
-                        <md-button ng-click="" ng-disabled="policyDisabled" ng-href="#/gbp/index/policy/contract" style="background-color:rgb(33,150,243);color:black;">Contracts</md-button>
-                    </md-menu-content>
-                </md-menu>-->
-                <md-button ng-click="closeSidePanel()" ng-href="#/gbp/index/resolved-policy">Resolved Policy</md-button>
-                <md-button ng-click="closeSidePanel()" ng-href="#/gbp/index/endpoints">Endpoints</md-button>
-                <span flex></span>
-                <md-button ng-if="('main.gbp.index.resolvedPolicy' | isState) && rootTenant" ng-click="openSidePanel('resolved-policy/sidepanel/views/epg-list-sidepanel')" ng-href="">Endpoint-groups</md-button>
-                <md-button ng-if="('main.gbp.index.resolvedPolicy' | isState) && rootTenant" ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-list-sidepanel')" ng-href="">Contracts</md-button>
-                <md-input-container style="margin-right: 10px;">
-                    <md-select ng-model="rootTenant"
-                               placeholder="select tenant"
-                               md-on-close="setRootTenant();"
-                               id="tenantSelector">
-                        <md-option ng-repeat="tenant in rootTenants.data" ng-value="tenant.data.id">{{ tenant.data.id }}</md-option>
-                    </md-select>
-                </md-input-container>
-            </div>
-        </md-toolbar>
-        <!-- <md-content md-scroll-y flex ui-view></md-content> -->
-        <md-content md-scroll-y flex ui-view>
-            <md-content md-scroll-y flex ui-view="main_top" class="col-md-6"></md-content>
-            <md-content md-scroll-y flex ui-view="main_bottom" class="col-md-6"></md-content>
-        </md-content>
-    </div>
-    <!-- Node's side pannel -->
-    <md-sidenav class="md-sidenav-right md-whiteframe-z1 detail-view" md-is-locked-open="sidePanelPage">
-        <md-toolbar>
-            <div class="md-toolbar-tools">
-                <h2>
-                    <span>Sidepanel</span>
-                </h2>
-                <span flex></span>
-                <md-button ng-click="closeSidePanel()" class="md-button">Close panel</md-button>
-            </div>
-        </md-toolbar>
-        <md-content flex>
-            <div flex layout="column" ui-view="sidePanel">
-                <ng-include ng-if="sidePanelPage" src="viewPath + sidePanelPage + '.tpl.html'"></ng-include>
-            </div>
-        </md-content>
-    </md-sidenav>
-</div>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/root.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/common/views/root.tpl.html
deleted file mode 100644 (file)
index 8eb8679..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<div class="main" ui-view layout="row" flex></div>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/add-contract.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/add-contract.controller.js
deleted file mode 100644 (file)
index 199d78f..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-define([
-    'app/gbp/contract/contract.service'
-], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('AddContractController', AddContractController);
-
-    AddContractController.$inject = ['$mdDialog', '$scope', 'ContractService', 'contract'];
-    /* @ngInject */
-    function AddContractController($mdDialog, $scope, ContractService, contract) {
-        /* properties */
-        $scope.contract = contract ? contract : ContractService.createObject();
-
-        /* methods */
-        $scope.closeDialog = closeDialog;
-        $scope.save = save;
-        /* Implementations */
-
-        function closeDialog(){
-            $mdDialog.cancel();
-            $scope.getContractList();
-        }
-
-        function save() {
-            $scope.contract.put($scope.rootTenant.data.id, function (data) {
-                $scope.closeDialog();
-            }, function (err) {
-            } );
-        }
-
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract-list.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract-list.service.js
deleted file mode 100644 (file)
index 54251ce..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('ContractListService', ContractListService);
-
-    ContractListService.$inject = ['Restangular', 'ContractService'];
-
-    function ContractListService(Restangular, ContractService) {
-        /* methods */
-        this.createList = createList;
-
-        function ContractList() {
-            /* properties */
-            this.data = [];
-
-            /* methods */
-            this.setData = setData;
-            this.get = get;
-            this.clearData = clearData;
-
-            /* Implementation */
-            /**
-             * fills ContractList object with data
-             * @param data
-             */
-            function setData(data) {
-                var self = this;
-                data.forEach(function (dataElement) {
-                    self.data.push(ContractService.createObject(dataElement));
-                });
-            }
-
-            function clearData() {
-                var self = this;
-                self.data = [];
-            }
-
-            function get(dataStore, tenantId) {
-                /* jshint validthis:true */
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one(dataStore).one('policy:tenants')
-                    .one('tenant').one(tenantId).one('policy');
-
-                return restObj.get().then(function (data) {
-                    self.setData(data.policy.contract);
-                });
-            }
-        }
-
-        function createList() {
-            var obj = new ContractList();
-
-            return obj;
-        }
-    }
-
-    return ContractListService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.controller.js
deleted file mode 100644 (file)
index b482760..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-define([
-    'app/gbp/contract/contract.service',
-    'app/gbp/contract/contract-list.service',
-], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('ContractController', ContractController);
-
-    ContractController.$inject = ['$mdDialog', '$scope', 'TenantListService', 'TenantService', 'ContractService', 'ContractListService', '$stateParams'];
-
-    function ContractController($mdDialog, $scope, TenantListService, TenantService, ContractService, ContractListService, $stateParams) {
-        $scope.contracts = ContractListService.createList();
-        $scope.openContractDialog = openContractDialog;
-        $scope.contractsTableQuery = {
-            order: 'data.id',
-            limit: 25,
-            page: 1,
-            options: [25, 50, 100],
-            filter: '',
-        };
-        $scope.getContractList = getContractList;
-        $scope.deleteContractDialog = deleteContractDialog;
-
-        getContractList();
-
-        function getContractList() {
-            $scope.contracts.clearData();
-            $scope.contracts.get($scope.rootTenant.data.id);
-        }
-
-        function openContractDialog(contractData) {
-            $mdDialog.show({
-                clickOutsideToClose: true,
-                controller: 'AddContractController',
-                preserveScope: true,
-                templateUrl: 'src/app/gbp/contract/dialog-add-contract.tpl.html',
-                parent: angular.element(document.body),
-                scope: $scope,
-                locals: {
-                    contract: contractData,
-                },
-            });
-        }
-
-        function deleteContractDialog(contractData) {
-            var confirm = $mdDialog.confirm()
-                .title('Delete contract')
-                .textContent('Do you want to delete contract ' + contractData.data.id + '?')
-                .ok('Delete')
-                .cancel('Cancel');
-
-            $mdDialog.show(confirm).then(function () {
-                contractData.deleteContract($scope.rootTenant.data.id,
-                    function () {
-                        $scope.getContractList();
-                    }
-                );
-            }, function () {
-
-            });
-        }
-
-        $scope.$on('ROOT_TENANT_CHANGED', getContractList);
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.service.js
deleted file mode 100644 (file)
index 6d1c66c..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('ContractService', ContractService);
-
-    ContractService.$inject = ['Restangular'];
-
-    function ContractService(Restangular) {
-        /* methods */
-        this.createObject = createObject;
-
-        /**
-         * Contract constructor
-         * @constructor
-         */
-        function Contract() {
-            /* properties */
-            this.data = {};
-            /* methods */
-            this.setData = setData;
-            this.get = get;
-            this.put = put;
-            this.deleteContract = deleteContract;
-
-            /* Implementation */
-            /**
-             * fills Contract object with data
-             * @param data
-             */
-            function setData(data) {
-                this.data.id = data.id;
-                this.data.description = data.description;
-                this.data.parent = data.parent;
-
-                // TODO: use objects
-                this.data['forwarding-context'] = data['forwarding-context'];
-                this.data.target = data.target;
-                this.data.subject = data.subject;
-                this.data.clause = data.clause;
-                this.data.quality = data.quality;
-            }
-
-            /**
-             * gets one Contract object from Restconf
-             * @param id
-             * @returns {*}
-             */
-            function get(idContract, idTenant, apiType) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one(apiType).one('policy:tenants')
-                            .one('tenant').one(idTenant).one('policy').one('contract').one(idContract);
-
-                return restObj.get().then(function (data) {
-                    self.setData(data.contract[0]);
-                });
-            }
-
-            function put(id, successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
-                    .one(id).one('policy').one('contract').one(self.data.id),
-                    dataObj = { contract: [self.data] };
-
-                return restObj.customPUT(dataObj).then(function (data) {
-                    successCallback(data);
-                }, function (res) {
-
-                });
-            }
-
-            function deleteContract(id, successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
-                    .one(id).one('policy').one('contract').one(self.data.id);
-
-                return restObj.remove().then(function (data) {
-                    successCallback(data);
-                }, function (res) {
-
-                });
-            }
-
-        }
-
-        /**
-         * creates Contract object and fills it with data if available
-         * @param data
-         * @returns {Contract}
-         */
-        function createObject(data) {
-            var obj = new Contract();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-    }
-
-    return ContractService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/contract.tpl.html
deleted file mode 100644 (file)
index 071990e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<section flex layout="column">
-    <div flex layout="row">
-        <md-button ng-click="openContractDialog()" class="md-primary">Add</md-button>
-        <md-button ng-click="getContractList()" class="md-primary">Reload</md-button>
-    </div>
-    <md-table-container ng-if="contracts.data.length" ng-hide="contractId.length">
-        <table md-table>
-            <thead md-head md-order="contractsTableQuery.order">
-            <tr md-row>
-                <th md-column md-order-by="data.id"><span>Id</span></th>
-                <th md-column md-order-by="data.parent"><span>Parent</span></th>
-                <th md-column md-order-by="data.description"><span>Description</span></th>
-                <th md-column><span>Actions</span></th>
-            </tr>
-            </thead>
-            <tbody md-body>
-            <tr md-row ng-repeat="contract in contracts.data | filter: contractsTableQuery.filter  | orderBy : contractsTableQuery.order | limitTo: contractsTableQuery.limit : (contractsTableQuery.page -1) * contractsTableQuery.limit">
-                <td md-cell>{{contract.data.id}}</td>
-                <td md-cell>{{contract.data.parent}}</td>
-                <td md-cell>{{contract.data.description}}</td>
-                <td md-cell>
-                    <md-button class="md-icon-button" ng-click="openContractDialog(contract)">
-                        <md-icon>edit</md-icon>
-                    </md-button>
-                    <md-button class="md-icon-button" ng-click="deleteContractDialog(contract)">
-                        <md-icon>delete</md-icon>
-                    </md-button>
-                </td>
-            </tr>
-
-            </tbody>
-        </table>
-        <md-table-pagination md-limit="contractsTableQuery.limit"
-                             md-page="contractsTableQuery.page"
-                             md-options="contractsTableQuery.options"
-                             md-total="{{contracts.data.length}}"
-                             md-page-select="options.pageSelect">
-        </md-table-pagination>
-    </md-table-container>
-
-    <section ng-if="contractId.length">
-        Details of contract: <u>{{contract1}}</u><br /><br />
-        <u>contract1:</u><br />
-        id: {{contract.data.id}}<br />
-        description: {{contract.data.description}}<br />
-        parent:{{contract.data.parent}}<br />
-        his containers:</b><br />
-        <u>Target object:</u><br />{{contract.data.target}}
-        <u>Subject object:</u><br />{{contract.data.subject}}
-        <u>Clause object:</u><br />{{contract.data.clause}}
-        <u>Quality object:</u><br />{{contract.data.quality}}
-    </section>
-
-</section>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/dialog-add-contract.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/contract/dialog-add-contract.tpl.html
deleted file mode 100644 (file)
index 8e84c1a..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<md-dialog ng-cloak class="gbpDialogWrapper">
-    <form name="contractForm">
-        <md-toolbar>
-            <div class="md-toolbar-tools">
-                <h2>contract</h2>
-                <span flex></span>
-                <md-button ng-click="closeDialog()" class="md-button">Close dialog</md-button>
-            </div>
-        </md-toolbar>
-        <md-dialog-content style="width:350px;">
-            <div layout="column" class="layout-padding-lr15">
-                <div layout="row">
-                    <md-input-container flex>
-                        <label>Id</label>
-                        <input name="id" ng-model="contract.data.id" ng-required="true">
-                        <div ng-messages="contractForm.id.$error">
-                            <div ng-message="required">Required field</div>
-                        </div>
-                    </md-input-container>
-                    <md-input-container flex>
-                        <label>Parent</label>
-                        <input name="parent" ng-model="contract.data.parent" ng-pattern="/^[a-zA-Z]([a-zA-Z0-9\\-_.])*$/" ng-required="true">
-                        <div ng-messages="contractForm.parent.$error">
-                            <div ng-message="required">Required field.</div>
-                            <div ng-message="pattern">
-                                Invalid pattern.
-                                <md-tooltip md-direction="right" style="padding-left: 10px;">Value must match: ^[a-zA-Z]([a-zA-Z0-9\\-_.])*$</md-tooltip>
-                            </div>
-                        </div>
-                    </md-input-container>
-                </div>
-                <div layout="row">
-                    <md-input-container flex>
-                        <label>Description</label>
-                        <input name="description" ng-model="contract.data.description">
-                    </md-input-container>
-                </div>
-            </div>
-        </md-dialog-content>
-        <md-dialog-actions layout="row">
-            <span flex></span>
-            <md-button ng-click="closeDialog()" class="md-primary">
-                Close
-            </md-button>
-            <md-button ng-click="save()" style="margin-right:20px;" ng-disabled="contractForm.$invalid" class="md-primary">
-                Save
-            </md-button>
-        </md-dialog-actions>
-    </form>
-</md-dialog>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/add-endpoint.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/add-endpoint.controller.js
deleted file mode 100644 (file)
index baeb00e..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-define([
-    'app/gbp/endpoints/endpoint.service',
-    'app/gbp/forwarding/forwarding.service',
-], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('AddEndpointController', AddEndpointController);
-
-    AddEndpointController.$inject = ['$state', '$filter', '$mdDialog', '$scope', 'EndpointService', 'endpoint', 'ForwardingService'];
-    /* @ngInject */
-    function AddEndpointController($state, $filter, $mdDialog, $scope, EndpointService, endpoint, ForwardingService) {
-        /* properties */
-
-        $scope.endpoint = endpoint ? endpoint : EndpointService.createObject();
-        if (!$scope.endpoint.data.tenant) {
-            $scope.endpoint.data.tenant = $scope.rootTenant ? $scope.rootTenant : null;
-        }
-        $scope.epgsChips = {
-            selectedItem: null,
-            searchText: null,
-        };
-        $scope.epgsListOfChoosenTenant = [];
-        $scope.forwarding = ForwardingService.createObject();
-        $scope.forwardingContexts = [];
-        $scope.forwardingNetworkDomainIds = [];
-        $scope.regexps = {
-            'ipv4cidr': '(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))',
-            'ipv6cidr': 's*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([1-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))',
-            'mac-address': '([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})',
-        };
-
-        $scope.regexps['ip-prefix'] = '(('+$scope.regexps.ipv4cidr + ')|(' + $scope.regexps.ipv6cidr + '))';
-
-        /* methods */
-        $scope.closeDialog = closeDialog;
-        $scope.save = save;
-        $scope.filterContextIds = filterContextIds;
-        $scope.filterNetworkDomainIds = filterNetworkDomainIds;
-        $scope.searchEpgs = searchEpgs;
-        $scope.populateScopeAfterTenantSelected = populateScopeAfterTenantSelected;
-
-        populateScopeAfterTenantSelected();
-
-        /* Implementations */
-        $scope.forwarding.get(postForwardingGet);
-
-        function closeDialog(){
-            $mdDialog.cancel();
-            if($state.current.name == 'main.gbp.index.endpoints')
-                $scope.getEndpointsList();
-        }
-
-        function save() {
-            if ($scope.endpoint.data['network-containment'] && $scope.endpoint.data['network-containment']['network-domain-id']) {
-                $scope.endpoint.data['network-containment']['network-domain-type'] = 'l2-l3-forwarding:subnet';
-            }
-            else {
-                delete $scope.endpoint.data['network-containment'];
-            }
-            $scope.endpoint.post(function () {
-                $scope.closeDialog();
-                $scope.broadcastFromRoot('endpointChanged');
-            }, function () {
-            } );
-        }
-
-        function filterContextIds(contextType) {
-            $scope.forwardingContexts =  $filter('filter')($scope.forwarding.data['forwarding-context'], {'context-type': contextType});
-        }
-
-        function filterNetworkDomainIds(networkDomainType) {
-            $scope.forwardingNetworkDomainIds =  $filter('filter')($scope.forwarding.data['network-domain'], {'network-domain-type': networkDomainType});
-        }
-
-        function populateEpgsListOfChoosenTenant() {
-            $scope.rootTenants.data.some(function (tenant) {
-                if (tenant.data.id === $scope.endpoint.data.tenant) {
-                    $scope.epgsListOfChoosenTenant = tenant.data.policy['endpoint-group'].map(function (ele) { return ele.id; } );
-                }
-            });
-        }
-
-        function searchEpgs(query) {
-            var self = this,
-                results = query ? self.epgsListOfChoosenTenant.filter(createFilterFor(query) ) : self.epgsListOfChoosenTenant;
-            return results;
-        }
-
-        function createFilterFor(query) {
-            return function filterFn(epg) {
-                return (epg.toLowerCase().indexOf(query.toLowerCase()) === 0);
-            };
-        }
-
-        function postForwardingGet() {
-            var tenantForwarding = $filter('filter')($scope.forwarding.data, { 'tenant-id': $scope.endpoint.data.tenant });
-
-            if (tenantForwarding && tenantForwarding.length) {
-                $scope.forwarding.data = tenantForwarding[0];
-                $scope.filterNetworkDomainIds('l2-l3-forwarding:subnet');
-            }
-
-            if ($scope.endpoint && $scope.endpoint.data['context-type']) {
-                $scope.filterContextIds($scope.endpoint.data['context-type']);
-            }
-        }
-
-        function populateScopeAfterTenantSelected() {
-            populateEpgsListOfChoosenTenant();
-        }
-
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/dialog-add-endpoint.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/dialog-add-endpoint.tpl.html
deleted file mode 100644 (file)
index a53e560..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-<md-dialog ng-cloak class="gbpDialogWrapper">
-    <form name="endpointForm">
-        <md-toolbar>
-            <div class="md-toolbar-tools">
-                <h2>Add Endpoint</h2>
-                <span flex></span>
-                <md-button ng-click="closeDialog()" class="md-button">Close dialog</md-button>
-            </div>
-        </md-toolbar>
-        <md-dialog-content style="width:800px;">
-            <md-tabs md-dynamic-height flex>
-                <md-tab label="Endpoint">
-                    <div layout="column" class="layout-padding-lr15">
-                        <div layout="row">
-                            <md-input-container flex >
-                                <label>Tenant Id</label>
-                                <md-select ng-model="endpoint.data.tenant" md-on-close="populateScopeAfterTenantSelected();" aria-label="Tenant select">
-                                    <md-option ng-repeat="tenant in rootTenants.data" ng-value="tenant.data.id">{{ tenant.data.id }}</md-option>
-                                </md-select>
-                            </md-input-container>
-                        </div>
-                        <div layout="row">
-                            <md-input-container flex>
-                                <label>Context Type</label>
-                                <md-select name="contextTypeSelect" ng-model="endpoint.data['context-type']"
-                                           ng-change="filterContextIds(endpoint.data['context-type'])"
-                                           aria-label="Context type select"
-                                           ng-required="true">
-                                    <md-option ng-repeat="contextType in ['l2-l3-forwarding:l2-bridge-domain', 'l2-l3-forwarding:l2-flood-domain', 'l2-l3-forwarding:l3-context']"
-                                               ng-value="contextType">
-                                        {{ contextType }}
-                                    </md-option>
-                                </md-select>
-                                <div ng-messages="endpointForm.contextTypeSelect.$error" ng-show="endpointForm.contextTypeSelect.$touched">
-                                    <div ng-message="required">Required field</div>
-                                </div>
-                            </md-input-container>
-                            <md-input-container flex ng-if="forwardingContexts.length">
-                                <label>Context Id</label>
-                                <md-select name="contextIdSelect" ng-model="endpoint.data['context-id']"
-                                           aria-label="Context Id select"
-                                           ng-required="true">
-                                    <md-option ng-repeat="contextId in forwardingContexts"
-                                               ng-value="contextId['context-id']">
-                                        {{ contextId['context-id'] }}
-                                    </md-option>
-                                </md-select>
-                                <div ng-messages="endpointForm.contextIdSelect.$error" ng-show="endpointForm.contextIdSelect.$touched">
-                                    <div ng-message="required">Required field</div>
-                                </div>
-                            </md-input-container>
-                            <md-input-container flex ng-if="!forwardingContexts.length">
-                                <label>Context Id</label>
-                                <input ng-model="endpoint.data['context-id']" />
-                            </md-input-container>
-                        </div>
-                        <div layout="row">
-                            <md-input-container flex>
-                                <label>Address Type</label>
-                                <md-select name="AddressType" ng-model="endpoint.data['address-type']" aria-label="Address Type select" ng-required="true">
-                                    <md-option ng-repeat="addressType in ['l2-l3-forwarding:mac-address-type', 'l2-l3-forwarding:ip-prefix-type']"
-                                               ng-value="addressType">
-                                        {{ addressType }}
-                                    </md-option>
-                                </md-select>
-                                <div ng-messages="endpointForm.AddressType.$error" ng-show="endpointForm.AddressType.$touched">
-                                    <div ng-message="required">Required field</div>
-                                </div>
-                            </md-input-container>
-                            <md-input-container flex>
-                                <label>Address</label>
-                                <input name="address" ng-model="endpoint.data.address" ng-required="true"
-                                       ng-pattern="(endpoint.data['address-type'] === 'l2-l3-forwarding:mac-address-type' ? regexps['mac-address'] : regexps['ip-prefix'])">
-                                <div ng-messages="endpointForm.address.$error" ng-show="endpointForm.address.$touched">
-                                    <div ng-message="required">Required field</div>
-                                    <div ng-message="pattern">Expected correct address type format</div>
-                               </div>
-                            </md-input-container>
-                        </div>
-                        <div layout="row">
-                            <md-input-container flex ng-if="forwardingNetworkDomainIds.length">
-                                <label>Network Containment - Network Domain Id</label>
-                                <md-select name="networkDomainIdSelect"
-                                           ng-model="endpoint.data['network-containment']['network-domain-id']"
-                                           aria-label="Network Domain Id select">
-                                    <md-option value="{{undefined}}"></md-option>
-                                    <md-option ng-repeat="NetworkDomainId in forwardingNetworkDomainIds"
-                                               ng-value="NetworkDomainId['network-domain-id']"
-                                               ng-required="true" >
-                                        {{ NetworkDomainId['network-domain-id'] }}
-                                    </md-option>
-                                </md-select>
-                            </md-input-container>
-                            <md-input-container flex ng-if="!forwardingNetworkDomainIds.length">
-                                <label>Network Containment - Network Domain Id</label>
-                                <input name="networkDomainIdInput" ng-model="endpoint.data['network-containment']['network-domain-id']"/>
-                            </md-input-container>
-                        </div>
-                        <div layout="row">
-                            <md-input-container flex>
-                            <label>Endpoint Group</label>
-                                <md-chips
-                                               name="epgs"
-                                               ng-model="endpoint.data['endpoint-group']"
-                                               md-autocomplete-snap
-                                               flex>
-                                               <md-autocomplete
-                                                       md-selected-item="epgsChips.selectedItem"
-                                                       md-search-text="epgsChips.searchText"
-                                                       md-items="epg in searchEpgs(epgsChips.searchText)"
-                                                       md-item-text="epg"
-                                        placeholder="{{!endpoint.data.tenant ? 'Select Tenant first' : 'Add an item'}}"
-                                                       md-autocomplete-wrap-override
-                                                       md-input-name="epAutocomplete"
-                                                       flex
-                                        ng-disabled="!endpoint.data.tenant">
-                                                       <md-item-template>
-                                                               <span md-highlight-text="epgsChips.searchText">{{epg}}</span>
-                                                       </md-item-template>
-                                                       <md-not-found>
-                                                               No matches found.
-                                                       </md-not-found>
-                                               </md-autocomplete>
-                                               <md-chip-template>
-                                                       <span>{{$chip}}</span>
-                                               </md-chip-template>
-                                   </md-chips>
-                            </md-input-container>
-                        </div>
-                        <div layout="row">
-                            <md-input-container flex>
-                                <label>Condition</label>
-                                <md-chips ng-model="endpoint.data.condition"
-                                          placeholder="Add an item">
-                                </md-chips>
-                            </md-input-container>
-                        </div>
-                    </div>
-                </md-tab>
-                <md-tab label="Location">
-                    <div layout="column" class="layout-padding-lr15">
-                        <md-subheader class="md-primary">Absolute location</md-subheader>
-                        <div layout="row">
-                            <md-input-container flex>
-                                <label>Internal node</label>
-                                <input name="AbsoluteLocationInternalNode" ng-model="endpoint.data['absolute-location']['internal-node']">
-                            </md-input-container>
-                        </div>
-                        <div layout="row">
-                            <md-input-container flex>
-                                <label>Internal node connector</label>
-                                <input name="AbsoluteLocationInternalNodeConnector" ng-model="endpoint.data['absolute-location']['internal-node-connector']">
-                            </md-input-container>
-                        </div>
-                    </div>
-                </md-tab>
-            </md-tabs>
-        </md-dialog-content>
-        <md-dialog-actions layout="row">
-            <span flex></span>
-            <md-button ng-click="closeDialog()" class="md-primary">
-                Close
-            </md-button>
-            <md-button ng-click="save()" style="margin-right:20px;" ng-disabled="endpointForm.$invalid" class="md-primary">
-                Save
-            </md-button>
-        </md-dialog-actions>
-    </form>
-</md-dialog>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoint.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoint.service.js
deleted file mode 100644 (file)
index 53a38f5..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('EndpointService', EndpointService);
-
-    EndpointService.$inject = ['Restangular'];
-
-    function EndpointService(Restangular) {
-        /* methods */
-        this.createObject = createObject;
-
-        /**
-         * Endpoint constructor
-         * @constructor
-         */
-        function Endpoint() {
-            /* properties */
-            this.data = {};
-            this.data['endpoint-group'] = [];
-            this.data.condition = [];
-
-            /* methods */
-            this.setData = setData;
-            this.post = post;
-            this.deleteEndpoint = deleteEndpoint;
-            this.getEndpointContextTypeAcronym = getEndpointContextTypeAcronym;
-
-            /* Implementation */
-
-            function getEndpointContextTypeAcronym() {
-                switch(this.data['context-type']) {
-                    case 'l2-l3-forwarding:l2-bridge-domain':
-                        return 'L2B';
-                    case 'l2-l3-forwarding:l2-flood-domain':
-                        return 'L2F';
-                    default:
-                        return 'L3';
-                }
-            }
-            /**
-             * fills Endpoint object with data
-             * @param data
-             */
-
-            function setData(data) {
-                this.data['context-type'] = data['context-type'];
-                this.data['context-id'] = data['context-id'];
-                this.data['address-type'] = data['address-type'];
-                this.data.address = data.address;
-                this.data['network-containment'] = data['network-containment'];
-                this.data.tenant = data.tenant;
-                this.data['endpoint-group'] = data['endpoint-group'] ? data['endpoint-group'] : [];
-                this.data.condition = data.condition ? data.condition : [];
-                this.data.timestamp = data.timestamp ? data.timestamp : Date();
-                if (this.data['absolute-location']){
-                    this.data['absolute-location']['internal-node'] = data['absolute-location']['internal-node'];
-                    this.data['absolute-location']['internal-node-connector'] = data['absolute-location']['internal-node-connector'];
-                }
-            }
-            /**
-             * gets one Endpoint object from Restconf
-             * @param id
-             * @returns {*}
-             */
-
-            function post(successCbk) {
-
-                var self = this,
-                    restObj = Restangular.one('restconf').one('operations').one('base-endpoint:register-endpoint'),
-                    reqData = {
-                        'input': {
-                            'address-endpoint-reg': [
-                                self.data,
-                            ],
-                        },
-                    };
-                restObj.customPOST(reqData).then(function (data) {
-                    successCbk(data);
-                }, function () {
-
-                });
-            }
-
-            function deleteEndpoint(successCallback) {
-                var self = this,
-                    tmpEndpointObject = {
-                        'context-type': self.data['context-type'],
-                        'context-id': self.data['context-id'],
-                        'address': self.data.address,
-                        'address-type': self.data['address-type'],
-                    };
-                var restObj = Restangular
-                        .one('restconf')
-                        .one('operations')
-                        .one('base-endpoint:unregister-endpoint'),
-                    reqData = {
-                        'input': {
-                            'address-endpoint-unreg': [
-                                tmpEndpointObject,
-                            ],
-                        },
-                    };
-                return restObj.customPOST(reqData).then(function () {
-                    (successCallback() || angular.noop)();
-                }, function () {
-
-                });
-            }
-        }
-
-        /**
-         * creates Endpoint object and fills it with data if available
-         * @param data
-         * @returns {Endpoint}
-         */
-        function createObject(data) {
-            var obj = new Endpoint();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-    }
-
-    return EndpointService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoints-list.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoints-list.service.js
deleted file mode 100644 (file)
index 369d4e3..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('EndpointsListService', EndpointsListService);
-
-    EndpointsListService.$inject = ['$filter', 'Restangular', 'EndpointService'];
-
-    function EndpointsListService($filter, Restangular, EndpointService) {
-        /* methods */
-        this.createList = createList;
-
-        function EndpointsList() {
-            /* properties */
-            this.data = [];
-
-            /* methods */
-            this.setData = setData;
-            this.get = get;
-            this.getByEpg = getByEpg;
-            this.getByTenantId = getByTenantId;
-            this.clearData = clearData;
-
-            /* Implementation */
-            /**
-             * fills EndpointsList object with data
-             * @param data
-             */
-            function setData(data) {
-                var self = this;
-
-                self.clearData();
-                data && data.forEach(function (dataElement) {
-                    self.data.push(EndpointService.createObject(dataElement));
-                });
-            }
-
-            function clearData() {
-                var self = this;
-                self.data = [];
-            }
-
-            function get() {
-                /* jshint validthis:true */
-                var self = this;
-                var restObj = Restangular.one('restconf').one('operational').one('base-endpoint:endpoints');
-
-                return restObj.get().then(function (data) {
-                    self.setData(data.endpoints['address-endpoints']['address-endpoint']);
-                });
-            }
-
-            function getByEpg(epg, tenant, successCallback) {
-                /* jshint validthis:true */
-                var self = this;
-                var restObj = Restangular.one('restconf').one('operational').one('base-endpoint:endpoints');
-
-                return restObj.get().then(function (data) {
-                    var endpoints = $filter('filter')(
-                        data.endpoints['address-endpoints']['address-endpoint'].map(function(endpoint) {
-                            return endpoint;
-                        }),
-                        function (ep) {
-                            if (ep.tenant === tenant && ep['endpoint-group'].indexOf(epg.id) !== -1) {
-                                return true;
-                            }
-                        }
-                    );
-                    self.setData(endpoints);
-
-                    (successCallback || angular.noop)();
-                });
-            }
-
-            function getByTenantId(rootTenant) {
-                var self = this;
-                var restObj = Restangular.one('restconf').one('operational').one('base-endpoint:endpoints');
-                return restObj.get().then(function (data) {
-                    var endpoints = $filter('filter')(data.endpoints['address-endpoints']['address-endpoint'].map(function(endpoint) {
-                        return endpoint;
-                    }), { 'tenant': rootTenant });
-                    self.setData(endpoints);
-                });
-            }
-
-        }
-
-        function createList() {
-            var obj = new EndpointsList();
-
-            return obj;
-        }
-    }
-
-    return EndpointsListService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoints.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoints.controller.js
deleted file mode 100644 (file)
index 967886f..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-define([
-    'app/gbp/endpoints/endpoint.service',
-    'app/gbp/endpoints/endpoints-list.service',
-], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('EndpointsController', EndpointsController);
-
-    EndpointsController.$inject = ['$scope', '$mdDialog', 'EndpointsListService'];
-
-    function EndpointsController($scope, $mdDialog, EndpointsListService) {
-        /* properties */
-        $scope.endpoints = EndpointsListService.createList();
-        $scope.disableKeyFieldsEditing = false;
-        $scope.endpointsTableQuery = {
-            order: "data['context-id']",
-            limit: 25,
-            page: 1,
-            options: [25, 50, 100],
-            filter: '',
-        };
-        /* methods */
-        $scope.openEndpointDialog = openEndpointDialog;
-        $scope.getEndpointsList = getEndpointsList;
-        $scope.deleteEndpointDialog = deleteEndpointDialog;
-
-        $scope.getEndpointsList();
-
-        function getEndpointsList() {
-            $scope.endpoints.clearData();
-            $scope.rootTenant ? $scope.endpoints.getByTenantId($scope.rootTenant) : $scope.endpoints.get($scope.rootTenant);
-
-            $scope.endpointSgtList.clearData();
-            $scope.endpointSgtList.get();
-        }
-
-        function openEndpointDialog(operation, endpointData) {
-            $scope.disableKeyFieldsEditing = operation === 'edit';
-            $mdDialog.show({
-                clickOutsideToClose: true,
-                controller: 'AddEndpointController',
-                preserveScope: true,
-                templateUrl: $scope.viewPath + 'endpoints/dialog-add-endpoint.tpl.html',
-                parent: angular.element(document.body),
-                scope: $scope,
-                locals: {
-                    endpoint: endpointData,
-                },
-            });
-        }
-
-        function deleteEndpointDialog(endpointData) {
-            var confirm = $mdDialog.confirm()
-                .title('Delete endpoint')
-                .textContent('Do you want to delete endpoint?')
-                .ok('Delete')
-                .cancel('Cancel');
-
-            $mdDialog.show(confirm).then(function () {
-                endpointData.deleteEndpoint(function () {
-                    $scope.getEndpointsList();
-                });
-            }, function () {
-
-            });
-        }
-
-        $scope.$on('ROOT_TENANT_CHANGED', function () {
-            $scope.getEndpointsList();
-        });
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoints.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/endpoints.tpl.html
deleted file mode 100644 (file)
index 3294806..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<section flex layout="column">
-    <div flex layout="row">
-        <md-button ng-click="openEndpointDialog('add', null)" class="md-primary">Add</md-button>
-        <md-button ng-click="getEndpointsList()" class="md-primary">Reload</md-button>
-    </div>
-    <md-table-container ng-if="endpoints.data.length">
-        <table md-table>
-            <thead md-head md-order="endpointsTableQuery.order">
-            <tr md-row>
-                <th md-column md-order-by="data['context-id']"><span>Context Id</span></th>
-                <th md-column md-order-by="data.address"><span>Address</span></th>
-                <th md-column md-order-by="data.tenant"><span>Tenant</span></th>
-                <th md-column ><span>Endpoint Group</span></th>
-                <th md-column><span>Actions</span></th>
-            </tr>
-            </thead>
-            <tbody md-body>
-            <tr md-row ng-repeat="endpoint in endpoints.data | filter: endpointsTableQuery.filter  | orderBy : endpointsTableQuery.order | limitTo: endpointsTableQuery.limit : (endpointsTableQuery.page -1) * endpointsTableQuery.limit">
-                <td md-cell class="pointer" ng-click="openSidePanel('endpoints/side_panel_endpoints_detail', endpoint, null);">{{ endpoint.data['context-id'] }}</td>
-                <td md-cell class="pointer" ng-click="openSidePanel('endpoints/side_panel_endpoints_detail', endpoint, null);">{{ endpoint.data.address }}</td>
-                <td md-cell class="pointer" ng-click="openSidePanel('endpoints/side_panel_endpoints_detail', endpoint, null);">{{ endpoint.data.tenant }}</td>
-                <td md-cell>
-                    <span ng-repeat="epg in endpoint.data['endpoint-group']">{{epg}}<span ng-if="!$last">, </span>
-                    </span>
-                </td>
-                <td md-cell>
-                    <md-button class="md-icon-button" ng-click="openEndpointDialog('edit', endpoint)">
-                        <md-icon>edit</md-icon>
-                    </md-button>
-                    <md-button class="md-icon-button" ng-click="deleteEndpointDialog(endpoint)">
-                        <md-icon>delete</md-icon>
-                    </md-button>
-                </td>
-            </tr>
-            </tbody>
-        </table>
-        <md-table-pagination md-limit="endpointsTableQuery.limit"
-                             md-page="endpointsTableQuery.page"
-                             md-options="endpointsTableQuery.options"
-                             md-total="{{endpoints.data.length}}"
-                             md-page-select="options.pageSelect">
-        </md-table-pagination>
-    </md-table-container>
-</section>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/side_panel_endpoints_detail.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/side_panel_endpoints_detail.tpl.html
deleted file mode 100644 (file)
index cc9487d..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<md-content>
-    <md-subheader class="md-primary">Endpoint properties</md-subheader>
-    <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row" ng-if="sidePanelObject.data.tenant.length">
-        <span flex="35"><strong>Tenant</strong></span><span flex>{{ sidePanelObject.data.tenant }}</span>
-    </div>
-    <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row" ng-if="sidePanelObject.data['endpoint-group'].length">
-        <span flex="35"><strong>Endpoint group</strong></span><span ng-repeat="epg in sidePanelObject.data['endpoint-group']">{{epg}}<span ng-if="!$last">, </span>
-        </span>
-    </div>
-    <md-divider style="margin-bottom: 10px; margin-top: 10px;"></md-divider>
-    <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row">
-        <span flex="35"><strong>Context type</strong></span><span flex>{{ sidePanelObject.data['context-type'] }}</span>
-    </div>
-    <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row">
-        <span flex="35"><strong>Context Id</strong></span><span flex>{{ sidePanelObject.data['context-id'] }}</span>
-    </div>
-    <md-divider style="margin-bottom: 10px; margin-top: 10px;"></md-divider>
-    <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row">
-        <span flex="35"><strong>Address type</strong></span><span flex>{{ sidePanelObject.data['address-type'] }}</span>
-    </div>
-    <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row">
-        <span flex="35"><strong>Address</strong></span><span flex>{{ sidePanelObject.data.address }}</span>
-    </div>
-    <md-divider style="margin-bottom: 10px; margin-top: 10px;"></md-divider>
-    <section ng-if="sidePanelObject.data['network-containment']['network-domain-type'].length">
-        <md-subheader class="md-secondary" style="color: rgb(33,150,243);">Network domain</md-subheader>
-        <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row">
-            <span flex="35"><strong>Id</strong></span><span flex>{{ sidePanelObject.data['network-containment']['network-domain-id'] }}</span>
-        </div>
-        <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row">
-            <span flex="35"><strong>type</strong></span><span flex>{{ sidePanelObject.data['network-containment']['network-domain-type'] }}</span>
-        </div>
-        <md-divider style="margin-bottom: 10px; margin-top: 10px;"></md-divider>
-    </section>
-    <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row" ng-if="sidePanelObject.data.condition.length">
-        <span flex="35"><strong>Condition</strong></span><span ng-repeat="cndt in sidePanelObject.data.condition">{{cndt}}<span ng-if="!$last">, </span>
-        </span>
-    </div>
-    <section ng-if="sidePanelObject.data['absolute-location']['internal-node'].length || sidePanelObject.data['absolute-location']['internal-node-connector'].length">
-        <label class=".md-subhead">Absolute Location</label>
-        <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row" ng-if="sidePanelObject.data['absolute-location']['internal-node']">
-            <span flex="35"><strong>Internal node</strong></span><span flex>{{ sidePanelObject.data['absolute-location']['internal-node'] }}</span>
-        </div>
-        <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row" ng-if="sidePanelObject.data['absolute-location']['internal-node-connector']">
-            <span flex="35"><strong>Internal node connector</strong></span><span flex>{{ sidePanelObject.data['absolute-location']['internal-node-connector'] }}</span>
-        </div>
-    </section>
-    <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row" ng-if="sidePanelObject.data.timestamp">
-        <span flex="35"><strong>Timestamp</strong></span><span flex>{{ sidePanelObject.data.timestamp | date: 'short'}}</span>
-    </div>
-    <div layout="row" class="layout-padding-lr15 .layout-padding-b15 layout-row" ng-if="endpointSgtList.findSgtsForEndpoint(sidePanelObject).length">
-        <span flex="35"><strong>SGT</strong></span><span>{{ endpointSgtList.findSgtsForEndpoint(sidePanelObject) }}</span>
-    </div>
-<md-content>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/sxp-mapping-list.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/sxp-mapping-list.service.js
deleted file mode 100644 (file)
index 4a3f3db..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-define(['app/gbp/endpoints/sxp-mapping.service'], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('SxpMappingListService', SxpMappingListService);
-
-    SxpMappingListService.$inject = ['$filter', 'Restangular', 'SxpMappingService'];
-
-    function SxpMappingListService($filter, Restangular, SxpMappingService) {
-        /* methods */
-        this.createList = createList;
-
-        function EndpointsSgtList() {
-            /* properties */
-            this.data = [];
-
-            /* methods */
-            this.setData = setData;
-            this.get = get;
-            this.clearData = clearData;
-            this.findSgtsForEndpoint = findSgtsForEndpoint;
-
-            /* Implementation */
-            /**
-             * fills EndpointsSgtList object with data
-             * @param data
-             */
-            function setData(data) {
-                var self = this;
-
-                data && data.forEach(function (dataElement) {
-                    self.data.push(SxpMappingService.createObject(dataElement));
-                });
-            }
-
-            function clearData() {
-                var self = this;
-                self.data = [];
-            }
-
-            function get() {
-                /* jshint validthis:true */
-                var self = this;
-                var restObj = Restangular.one('restconf').one('config').one('sxp-mapper-model:sxp-mapper');
-
-                return restObj.get().then(function (data) {
-                    self.setData(data['sxp-mapper']['endpoint-policy-template-by-sgt']);
-                });
-            }
-
-            function findSgtsForEndpoint(EPobject) {
-                var self = this,
-                    result = self.data.map(function (ele) {
-                    // properties correction
-                    var condition = ele.data.conditions === undefined ? [] : ele.data.conditions,
-                        epg = ele.data['endpoint-groups'] === undefined ? [] : ele.data['endpoint-groups'];
-
-                    return condition.length==EPobject.data.condition.length && condition.every(function(v,i) { return ($.inArray(v,EPobject.data.condition) != -1)}) &&
-                           epg.length==EPobject.data['endpoint-group'].length && epg.every(function(v,i) { return ($.inArray(v,EPobject.data['endpoint-group']) != -1)}) &&
-                           angular.equals(ele.data.tenant, EPobject.data.tenant) ? ele.data.sgt : false;
-                }).filter(Boolean);
-                return result.toString();
-            }
-        }
-
-        function createList() {
-            var obj = new EndpointsSgtList();
-
-            return obj;
-        }
-    }
-
-    return SxpMappingListService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/sxp-mapping.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/endpoints/sxp-mapping.service.js
deleted file mode 100644 (file)
index 569228b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('SxpMappingService', SxpMappingService);
-
-    function SxpMappingService() {
-        /* methods */
-        this.createObject = createObject;
-
-        /**
-         * EndpointSgt constructor
-         * @constructor
-         */
-        function EndpointSgt() {
-            /* properties */
-            this.data = {};
-
-            /* methods */
-            this.setData = setData;
-
-            /* Implementation */
-            /**
-             * fills EndpointSgt object with data
-             * @param data
-             */
-
-            function setData(data) {
-                this.data = {};
-                this.data.sgt = data.sgt;
-                this.data['endpoint-groups'] = data['endpoint-groups'];
-                this.data.conditions = data.conditions;
-                this.data.tenant = data.tenant;
-            }
-        }
-
-        /**
-         * creates EndpointSgt object and fills it with data if available
-         * @param data
-         * @returns {EndpointSgt}
-         */
-        function createObject(data) {
-            var obj = new EndpointSgt();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-    }
-
-    return SxpMappingService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/add-epg.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/add-epg.controller.js
deleted file mode 100644 (file)
index eee5e77..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-define([
-    'app/gbp/epg/epg.service'
-], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('AddEpgController', AddEpgController);
-
-    AddEpgController.$inject = ['$mdDialog', '$scope', 'EpgService', 'epg'];
-    /* @ngInject */
-    function AddEpgController($mdDialog, $scope, EpgService, epg) {
-        /* properties */
-        $scope.epg = epg ? epg : EpgService.createObject();
-
-        /* methods */
-        $scope.closeDialog = closeDialog;
-        $scope.save = save;
-
-        /* Implementations */
-
-        function closeDialog(){
-            $mdDialog.cancel();
-            $scope.getEpgList();
-        }
-
-        function save() {
-            $scope.epg.put($scope.rootTenant, function(data) {
-                $scope.closeDialog();
-            }, function(err) {
-            } );
-        }
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/dialog-add-epg.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/dialog-add-epg.tpl.html
deleted file mode 100644 (file)
index 65b0483..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-<md-dialog ng-cloak class="gbpDialogWrapper">
-    <form name="epgForm">
-        <md-toolbar>
-            <div class="md-toolbar-tools">
-                <h2>EPG</h2>
-                <span flex></span>
-                <md-button ng-click="closeDialog()" class="md-button">Close dialog</md-button>
-            </div>
-        </md-toolbar>
-        <md-dialog-content style="width:350px;">
-            <div layout="column" class="layout-padding-lr15">
-                <div layout="row">
-                    <md-input-container flex>
-                        <label>Id</label>
-                        <input name="id" ng-model="epg.data.id" ng-required="true">
-                        <div ng-messages="epgForm.id.$error" md-auto-hide="false">
-                            <div ng-message="required">Required field</div>
-                        </div>
-                    </md-input-container>
-                    <md-input-container flex>
-                        <label>Name</label>
-                        <input name="name" ng-model="epg.data.name" ng-required="true" ng-pattern="/^[a-zA-Z]([a-zA-Z0-9\\-_.])*$/">
-                        <div ng-messages="epgForm.name.$error" md-auto-hide="false">
-                            <div ng-message="required">Required field</div>
-                            <div ng-message="pattern">
-                                Invalid pattern.
-                                <md-tooltip md-direction="right" style="padding-left: 10px;">Value must matches: ^[a-zA-Z]([a-zA-Z0-9\\-_.])*$</md-tooltip>
-                            </div>
-                        </div>
-                    </md-input-container>
-                </div>
-                <div layout="row">
-                    <md-input-container flex>
-                        <label>Description</label>
-                        <input name="description" ng-model="epg.data.description">
-                    </md-input-container>
-                </div>
-                <div layout="row">
-                    <md-input-container flex>
-                        <label>intra-group-policy</label>
-                        <md-select name="intraGroupPolicy" ng-model="epg.data['intra-group-policy']">
-                            <md-option ng-repeat="igp in ['', 'allow', 'require-contract']" ng-value="igp">{{igp}}</md-option>
-                        </md-select>
-                    </md-input-container>
-                </div>
-                <div layout="row">
-                    <md-input-container flex>
-                        <label>network-domain</label>
-                        <input name="networkDomain" ng-model="epg.data['network-domain']">
-                    </md-input-container>
-                    <md-input-container flex>
-                        <label>parent</label>
-                        <input name="parent" ng-model="epg.data.parent">
-                    </md-input-container>
-                </div>
-            </div>
-        </md-dialog-content>
-        <md-dialog-actions layout="row">
-            <span flex></span>
-            <md-button ng-click="closeDialog()" class="md-primary">
-                Close
-            </md-button>
-            <md-button ng-click="save()" style="margin-right:20px;" ng-disabled="epgForm.$invalid" class="md-primary">
-                Save
-            </md-button>
-        </md-dialog-actions>
-    </form>
-</md-dialog>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg-list.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg-list.service.js
deleted file mode 100644 (file)
index d0a58ba..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-define([], function() {
-    'use strict';
-
-    angular.module('app.gbp').service('EpgListService', EpgListService);
-
-    EpgListService.$inject = ['Restangular', 'EpgService'];
-
-    function EpgListService(Restangular, EpgService) {
-        /* methods */
-        this.createList = createList;
-
-        function EpgList() {
-            /* properties */
-            this.data = [];
-            /* methods */
-            this.setData = setData;
-            this.get = get;
-
-            /* Implementation */
-            /**
-             * fills EpgList object with data
-             * @param data
-             */
-            function setData(data) {
-                var self = this;
-                data.forEach(function(dataElement) {
-                    self.data.push(EpgService.createObject(dataElement));
-                });
-            }
-
-            function get(dataStore, idTenant) {
-                /* jshint validthis:true */
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one(dataStore).one('policy:tenants').one('tenant')
-                    .one(idTenant).one('policy');
-
-                return restObj.get().then(function(data) {
-                    if (data.policy['endpoint-group']) {
-                        self.setData(data.policy['endpoint-group']);
-                    }
-                });
-            }
-        }
-
-        function createList() {
-            var obj = new EpgList();
-
-            return obj;
-        }
-    }
-
-    return EpgListService;
-});
\ No newline at end of file
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.controller.js
deleted file mode 100644 (file)
index d301396..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-define([
-    'app/gbp/epg/epg.service',
-    'app/gbp/epg/epg-list.service',
-], function() {
-    'use strict';
-
-    angular.module('app.gbp').controller('EpgController', EpgController);
-
-    EpgController.$inject = ['$scope', '$stateParams', '$mdDialog', 'EpgService', 'EpgListService'];
-
-    function EpgController($scope, $stateParams, $mdDialog, EpgService, EpgListService) {
-        $scope.epgsTableQuery = {};
-
-        // $scope.epg = EpgService.createObject();
-        // $scope.epg.get($stateParams.epgId, $stateParams.tenantId);
-
-        $scope.epgs = EpgListService.createList();
-
-        /* methods */
-        $scope.getEpgList = getEpgList;
-        $scope.openEpgDialog = openEpgDialog;
-        $scope.deleteEpgDialog = deleteEpgDialog;
-
-        init();
-
-        /* Implementations */
-
-        /**
-         * fills $scope.epgs array with data from data store
-         */
-        function getEpgList() {
-            if($stateParams.tenantId) {
-                $scope.epgs = EpgListService.createList();
-                $scope.epgs.get('config', $stateParams.tenantId);
-            }
-            else {
-                $scope.epgs = EpgListService.createList();
-                $scope.epgs.get('config', $scope.rootTenant);
-            }
-        }
-
-        /**
-         * Initializing function
-         */
-        function init() {
-            $scope.epgsTableQuery = {
-                order: 'data.id',
-                limit: 25,
-                page: 1,
-                options: [25, 50, 100],
-                filter: ''
-            };
-
-            getEpgList();
-        }
-
-        function openEpgDialog(epgData) {
-            $mdDialog.show({
-                clickOutsideToClose: true,
-                controller: 'AddEpgController',
-                preserveScope: true,
-                templateUrl: 'src/app/gbp/epg/dialog-add-epg.tpl.html',
-                parent: angular.element(document.body),
-                scope: $scope,
-                locals: {
-                    epg: epgData
-                }
-            });
-        }
-
-        function deleteEpgDialog(epgData) {
-            var confirm = $mdDialog.confirm()
-                .title('Delete EPG')
-                .textContent('Do you want to delete EPG ' + epgData.data.name + '?')
-                .ok('Delete')
-                .cancel('Cancel');
-
-            $mdDialog.show(confirm).then(function() {
-                epgData.deleteEpg($scope.rootTenant,
-                    function() {
-                        $scope.getEpgList();
-                    }
-                );
-            }, function() {
-
-            });
-        }
-    }
-});
\ No newline at end of file
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.service.js
deleted file mode 100644 (file)
index 646321e..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-define([], function() {
-    'use strict';
-
-    angular.module('app.gbp').service('EpgService', EpgService);
-
-    EpgService.$inject = ['Restangular'];
-
-    function EpgService(Restangular) {
-        /* methods */
-        this.createObject = createObject;
-
-
-        /**
-         * Epg constructor
-         * @constructor
-         */
-        function Epg() {
-            /* properties */
-            this.data = {};
-            /* methods */
-            this.setData = setData;
-            this.get = get;
-            this.put = put;
-            this.deleteEpg = deleteEpg;
-
-            /* Implementation */
-            /**
-             * fills Epg object with data
-             * @param data
-             */
-            function setData(data) {
-                this.data.id = data.id;
-                this.data.name = data.name;
-                this.data.description = data.description;
-                this.data['intra-group-policy'] = data['intra-group-policy'];
-
-                this.data['consumer-named-selector'] = data['consumer-named-selector'];
-                this.data['provider-named-selector'] = data['provider-named-selector'];
-                this.data['consumer-target-selector'] = data['consumer-target-selector'];
-                this.data['provider-target-selector'] = data['provider-target-selector'];
-
-                this.data['network-domain'] = data['network-domain'];
-                this.data.parent = data.parent;
-
-                this.data.requirement = data.requirement;
-                this.data.capability = data.capability;
-            }
-
-            /**
-             * gets one Epg object from Restconf
-             * @param id
-             * @returns {*}
-             */
-            function get(idEpg, idTenant, apiType, successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one(apiType).one('policy:tenants').one('tenant')
-                    .one(idTenant).one('policy').one('endpoint-group').one(this.data.id || idEpg);
-
-                return restObj.get().then(function(data) {
-                    self.setData(data['endpoint-group'][0]);
-                    successCallback();
-                });
-            }
-
-            function put(idTenant, successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
-                    .one(idTenant).one('policy').one('endpoint-group').one(self.data.id),
-                    dataObj = {'endpoint-group': [self.data]};
-
-                return restObj.customPUT(dataObj).then(function(data) {
-                    successCallback(data);
-                }, function(res) {
-
-                });
-            }
-
-            function deleteEpg(idTenant, successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
-                    .one(idTenant).one('policy').one('endpoint-group').one(self.data.id);
-
-                return restObj.remove().then(function(data) {
-                    successCallback(data);
-                }, function(res) {
-
-                });
-            }
-        }
-
-        /**
-         * creates Epg object and fills it with data if available
-         * @param data
-         * @returns {Epg}
-         */
-        function createObject(data) {
-            var obj = new Epg();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-    }
-
-    return EpgService;
-});
\ No newline at end of file
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/epg/epg.tpl.html
deleted file mode 100644 (file)
index 52aec48..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-<section flex layout="column">
-       <div flex layout="row">
-           <md-button ng-click="openEpgDialog()" class="md-primary">Add</md-button>
-           <md-button ng-click="getEpgList()" class="md-primary">Reload</md-button>
-       </div>
-    <md-table-container ng-if="epgs.data.length">
-        <table md-table>
-            <thead md-head md-order="epgsTableQuery.order">
-            <tr md-row>
-                   <th md-column md-order-by="data.id"><span>Id</span></th>
-                   <th md-column md-order-by="data.name"><span>Name</span></th>
-                   <th md-column md-order-by="data.description"><span>Description</span></th>
-                   <th md-column md-order-by="data['intra-group-policy']"><span>intra-group-policy</span></th>
-                   <th md-column md-order-by="data['network-domain']"><span>network-domain</span></th>
-                   <th md-column md-order-by="data.parent"><span>Parent</span></th>
-            </tr>
-            </thead>
-            <tbody md-body>
-            <tr md-row ng-repeat="epg in epgs.data | filter: epgsTableQuery.filter  | orderBy : epgsTableQuery.order | limitTo: epgsTableQuery.limit : (epgsTableQuery.page -1) * epgsTableQuery.limit">
-                   <td md-cell>{{epg.data.id}}</td>
-                   <td md-cell>{{epg.data.name}}</td>
-                   <td md-cell>{{epg.data.description}}</td>
-                   <td md-cell>{{epg.data['intra-group-policy']}}</td>
-                   <td md-cell>{{epg.data['network-domain']}}</td>
-                   <td md-cell>{{epg.data.parent}}</td>
-                <td md-cell>
-                    <md-button class="md-icon-button" ng-click="openEpgDialog(epg)">
-                        <md-icon>edit</md-icon>
-                    </md-button>
-                    <md-button class="md-icon-button" ng-click="deleteEpgDialog(epg)">
-                        <md-icon>delete</md-icon>
-                    </md-button>
-                </td>
-            </tr>
-
-            </tbody>
-        </table>
-        <md-table-pagination md-limit="epgsTableQuery.limit"
-                             md-page="epgsTableQuery.page"
-                             md-options="epgsTableQuery.options"
-                             md-total="{{epgs.data.length}}"
-                             md-page-select="options.pageSelect">
-        </md-table-pagination>
-    </md-table-container>
-</section>
\ No newline at end of file
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/forwarding/forwarding.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/forwarding/forwarding.service.js
deleted file mode 100644 (file)
index 1acb1f9..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('ForwardingService', ForwardingService);
-
-    ForwardingService.$inject = ['Restangular'];
-
-    function ForwardingService(Restangular) {
-        /* methods */
-        this.createObject = createObject;
-
-        /**
-         * Endpoint constructor
-         * @constructor
-         */
-        function Forwarding() {
-            /* properties */
-            this.data = {};
-
-            /* methods */
-            this.setData = setData;
-            this.get = get;
-
-            /* Implementation */
-            /**
-             * fills Forwarding object with data
-             * @param data
-             */
-
-            function setData(data) {
-                this.data['forwarding-by-tenant'] = data['forwarding-by-tenant'];
-            }
-
-            function get(successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('config').one('forwarding:forwarding');
-
-                return restObj.get().then(function(data) {
-                    self.data = data['forwarding']['forwarding-by-tenant'];
-                    (successCallback || angular.noop)();
-                });
-            }
-        }
-
-
-
-        /**
-         * creates Endpoint object and fills it with data if available
-         * @param data
-         * @returns {Endpoint}
-         */
-        function createObject(data) {
-            var obj = new Forwarding();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-    }
-
-    return ForwardingService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/gulpfile.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/gulpfile.js
deleted file mode 100644 (file)
index 6e06622..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-var gulp = require('gulp'),
-    del = require('del'),
-    gutil = require('gulp-util'),
-    concat = require('gulp-concat'),
-    runSequence = require('run-sequence'),
-    install = require("gulp-install");
-
-var config = require( './build.config.js' );
-
-/**
- * Task for cleaning build directory
- */
-gulp.task('clean', function() {
-    // You can use multiple globbing patterns as you would with `gulp.src`
-    return del([config.build_dir]);
-});
-
-/**
- * Copy assets
- */
-gulp.task('copyCss', function () {
-    return gulp.src(config.assets_files.css)
-        .pipe(gulp.dest(config.build_dir + '/common'));
-});
-
-/**
- * Copy app files
- */
-gulp.task('copyTemplates', function () {
-    gutil.log(gutil.colors.cyan('INFO :: copying APP Template files'));
-    // Copy html
-    return gulp.src(config.app_files.templates)
-        .pipe(gulp.dest(config.build_dir));
-});
-
-gulp.task('copyAppJs', function () {
-    gutil.log(gutil.colors.cyan('INFO :: copying APP Controller JS files'));
-    return gulp.src(config.app_files.js)
-        .pipe(gulp.dest(config.build_dir));
-});
-
-gulp.task('copyRootJs', function () {
-    gutil.log(gutil.colors.cyan('INFO :: copying APP Root JS files'));
-    return gulp.src(config.app_files.root_js)
-        .pipe(gulp.dest(config.build_dir));
-});
-
-/**
-  * Copy vendor files
- */
-gulp.task('copyVendorCss', function () {
-    gutil.log(gutil.colors.cyan('INFO :: copying VENDOR css'));
-    return gulp.src(config.vendor_files.css, { cwd : 'vendor/**' })
-        .pipe(gulp.dest(config.build_dir + '/vendor'))
-});
-
-gulp.task('copyVendorFonts', function () {
-    gutil.log(gutil.colors.cyan('INFO :: copying VENDOR fonts'));
-    return gulp.src(config.vendor_files.fonts, { cwd : 'vendor/**' })
-        .pipe(gulp.dest(config.build_dir + '/vendor'))
-});
-
-gulp.task('copyVendorJs', function () {
-    gutil.log(gutil.colors.cyan('INFO :: copying VENDOR js files'));
-    return gulp.src(config.vendor_files.js, { cwd : 'vendor/**' })
-        .pipe(gulp.dest(config.build_dir + '/vendor'))
-});
-
-
-/**
- * Copy task aggregated
- */
-gulp.task('copy', function() {
-    runSequence([
-        'copyCss',
-        'copyTemplates',
-        'copyAppJs',
-        'copyRootJs',
-        'copyVendorCss',
-        'copyVendorFonts'
-    ], 'copyVendorJs');
-});
-
-/**
- * Build task
- */
-gulp.task('build', function(){
-    runSequence('clean', 'copy');
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/main.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/main.js
deleted file mode 100644 (file)
index ae364cd..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-require.config({
-    paths: {
-        'angular-material': 'app/gbp/vendor/angular-material/angular-material.min',
-        'angular-animate': 'app/gbp/vendor/angular-animate/angular-animate.min',
-        'angular-aria': 'app/gbp/vendor/angular-aria/angular-aria.min',
-        'angular-material-data-table': 'app/gbp/vendor/angular-material-data-table/dist/md-data-table.min',
-        'angular-messages': 'app/gbp/vendor/angular-messages/angular-messages.min',
-        'next-ui': 'app/gbp/vendor/NeXt/js/next.min',
-    },
-    shim: {
-        'angular-material': ['angular'],
-        'angular-animate': ['angular'],
-        'angular-aria': ['angular'],
-        'angular-material-data-table': ['angular', 'angular-material'],
-        'angular-messages': ['angular'],
-    },
-});
-
-define(['app/gbp/common/gbp.module']);
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/package.json b/groupbasedpolicy-ui/module/src/main/resources/gbp/package.json
deleted file mode 100644 (file)
index 0b56700..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-{
-  "author": "Daniel Malachovsky",
-  "name": "opendaylight-gbp",
-  "description": "openDayLight GBP UI",
-  "version": "0.1.0",
-  "homepage": "http://opendaylight.org",
-  "license": "EPL-1.0",
-  "bugs": "https://bugs.opendaylight.org/",
-  "repository": {
-    "type": "git",
-    "url": "https://git.opendaylight.org/gerrit/groupbasedpolicy.git"
-  },
-  "dependencies": {
-    "bower": "1.7.9",
-    "del": "^2.2.0",
-    "gulp-util": "^3.0.7",
-    "gulp-concat": "^2.6.0",
-    "gulp-install": "^0.6.0",
-    "run-sequence": "^1.1.5"
-  },
-  "devDependencies": {
-    "gulp": "^3.9.1"
-  }
-}
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/policy/policy.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/policy/policy.controller.js
deleted file mode 100644 (file)
index 925bfdb..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('PolicyController', PolicyController);
-
-    PolicyController.$inject = ['$scope'];
-
-    /* @ngInject */
-    function PolicyController($scope) {
-        console.log('PolicyController initialized');
-    }
-
-});
-
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/policy/policy.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/policy/policy.tpl.html
deleted file mode 100644 (file)
index 510eb52..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-<div ui-view="epg"></div>
-<div ui-view="contract"></div>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy-list.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy-list.service.js
deleted file mode 100644 (file)
index 5f6ac6c..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-define(['app/gbp/resolved-policy/resolved-policy.service'], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('ResolvedPolicyListService', ResolvedPolicyListService);
-
-    ResolvedPolicyListService.$inject = ['$filter', 'Restangular', 'ResolvedPolicyService'];
-
-    function ResolvedPolicyListService($filter, Restangular, ResolvedPolicyService) {
-        /* methods */
-        this.createList = createList;
-
-
-        function ResolvedPolicyList() {
-            /* properties */
-            this.data = [];
-
-            /* methods */
-            this.aggregateResolvedPolicies = aggregateResolvedPolicies;
-            this.get = get;
-            this.clearData = clearData;
-            this.setData = setData;
-
-            /* Implementation */
-            /**
-             * fills ResolvedPolicyList object with data
-             * @param data
-             */
-            function setData(data) {
-                var self = this;
-
-                if (data) {
-                    data.forEach(function (dataElement) {
-                        self.data.push(ResolvedPolicyService.createObject(dataElement));
-                    });
-                }
-            }
-
-            /**
-             * Clears data property of ResolvedPolicyList object
-             */
-            function clearData() {
-                var self = this;
-                self.data = [];
-            }
-
-            /**
-             * Reads data from operational datastore and filters it by tenant property if available
-             * @param tenant
-             * @param successCallback
-             */
-            function get(tenant, successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('operational').one('resolved-policy:resolved-policies');
-
-                return restObj.get().then(function (data) {
-                    if (tenant) {
-                        self.data = $filter('filter')(data['resolved-policies']['resolved-policy'], {
-                            'consumer-tenant-id': tenant,
-                            'provider-tenant-id': tenant,
-                        });
-                    }
-                    else {
-                        self.data = data['resolved-policies']['resolved-policy'];
-                    }
-
-                    successCallback();
-                });
-            }
-
-            /**
-             * Process resolved policies and returns object with epgs and contracts properties
-             * @returns {{epgs: {}, contracts: {}}}
-             */
-            function aggregateResolvedPolicies() {
-                var self = this,
-                    result = { epgs: {}, contracts: {} };
-
-                self.data.forEach(function (rp) {
-                    processEpg(result, rp, 'consumer');
-                    processEpg(result, rp, 'provider');
-
-                    if (rp.hasOwnProperty('policy-rule-group-with-endpoint-constraints')) {
-                        processConstraints(
-                            result,
-                            rp['policy-rule-group-with-endpoint-constraints'],
-                            rp['provider-epg-id'],
-                            rp['consumer-epg-id']
-                        );
-                    }
-                });
-
-                return result;
-
-            }
-
-            /**
-             * Checks if exists object in returnValue.epgs and if not, creates one
-             * @param returnValue
-             * @param resolvedPolicyItem
-             * @param type
-             */
-            function processEpg(returnValue, resolvedPolicyItem, type) {
-                if (!returnValue.epgs.hasOwnProperty(resolvedPolicyItem[type + '-epg-id'])) {
-                    returnValue.epgs[resolvedPolicyItem[type + '-epg-id']] = {
-                        'provided-contracts': [],
-                        'consumed-contracts': [],
-                    };
-                }
-
-
-
-            }
-
-            /**
-             * Process policy-rule-group-with-endpoint-constraints from resolved-policy.
-             * Creates contracts and updates epgs with contract objects
-             * @param returnValue
-             * @param constraints
-             * @param providerEpgId
-             * @param consumerEpgId
-             */
-            function processConstraints(returnValue, constraints, providerEpgId, consumerEpgId) {
-                constraints.forEach(function (element) {
-                    element['policy-rule-group'].forEach(function (el) {
-                        var linkId = generateLinkId(el['contract-id'], providerEpgId, consumerEpgId);
-
-                        if (!returnValue.contracts.hasOwnProperty(linkId)) {
-                            returnValue.contracts[linkId] = {
-                                'contract-id': el['contract-id'],
-                                'linkId': linkId,
-                                'subjects': {},
-                                'type': '',
-                            };
-                        }
-
-                        if (!returnValue.contracts[linkId].subjects.hasOwnProperty(el['subject-name'])) {
-                            returnValue.contracts[linkId].subjects[el['subject-name']] = { 'resolved-rule': [] };
-                        }
-
-                        returnValue.contracts[linkId].subjects[el['subject-name']]['resolved-rule'] =
-                            returnValue.contracts[linkId].subjects[el['subject-name']]['resolved-rule'].concat(el['resolved-rule']);
-
-                        Object.keys(returnValue.contracts[linkId].subjects).forEach(function(key) {
-                            returnValue.contracts[linkId].type =
-                                getContractType(returnValue.contracts[linkId].subjects[key]) ? 'chain' : 'allow';
-                        })
-
-                        updateEpg(returnValue, returnValue.contracts[linkId], providerEpgId, 'provided');
-                        updateEpg(returnValue, returnValue.contracts[linkId], consumerEpgId, 'consumed');
-                    });
-                });
-            }
-
-            /**
-             * Updates epgobject with contract object
-             * @param returnValue
-             * @param contract
-             * @param epgId
-             * @param epgType
-             */
-            function updateEpg(returnValue, contract, epgId, epgType) {
-                returnValue.epgs[epgId][epgType + '-contracts'].push(contract);
-            }
-        }
-
-        /**
-         * Creates ResolvedPolicyList object
-         * @param data
-         * @returns {ResolvedPolicyList}
-         */
-        function createList(data) {
-            var obj = new ResolvedPolicyList();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-
-        /**
-         * creates linkId string from input parameters
-         * @param contractId
-         * @param providerEpgId
-         * @param consumerEpgId
-         * @returns {string}
-         */
-        function generateLinkId(contractId, providerEpgId, consumerEpgId) {
-            return contractId + '++' + providerEpgId + '++' + consumerEpgId;
-        }
-
-        function getContractType(subject) {
-            return subject['resolved-rule'].some(function(s) {
-                return s.action.some(function (a) {
-                    return a['action-definition-id'] === 'Action-Chain';
-                });
-            });
-        }
-    }
-
-    return ResolvedPolicyListService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy.controller.js
deleted file mode 100644 (file)
index bcfe04c..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-define(['app/gbp/resolved-policy/resolved-policy.service'], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('ResolvedPolicyController', ResolvedPolicyController);
-
-    ResolvedPolicyController.$inject = ['$rootScope', '$scope', '$mdDialog', 'EpgService', 'NextTopologyService'];
-
-    /* @ngInject */
-    function ResolvedPolicyController($rootScope, $scope, $mdDialog, EpgService,  NextTopologyService) {
-
-        $scope.reloadTopology = reloadTopology;
-
-        $scope.cbkFunctions = {
-            clickNode: function(node){
-                var epg = $scope.resolvedPolicy.epgs[node['_model']['_id']];
-
-                epg.id = node['_model']['_id'];
-                $scope.openSidePanel('resolved-policy/sidepanel/views/epg-sidepanel', epg);
-                $scope.$apply();
-
-                NextTopologyService.highlightNode($rootScope.nxTopology, node['_model']['_id']);
-            },
-            clickLink: function(link){
-                var resolvedContract = $scope.resolvedPolicy.contracts[link['_model']['_id']];
-                resolvedContract.linkId = link['_model']['_id'];
-                $scope.openSidePanel('resolved-policy/sidepanel/views/contract-sidepanel', resolvedContract);
-                $scope.$apply();
-
-                NextTopologyService.highlightLink($rootScope.nxTopology, link['_model']['_id']);
-            },
-            topologyGenerated: function(){
-            }
-        };
-
-        //function openSfcDialog(chainName) {
-        //    $mdDialog.show({
-        //        clickOutsideToClose: true,
-        //        controller: 'SfcTopologyController',
-        //        preserveScope: true,
-        //        templateUrl: $scope.viewPath + 'sfc/dialog-sfc-topology.tpl.html',
-        //        parent: angular.element(document.body),
-        //        scope: $scope,
-        //        locals: {
-        //            chainName: chainName,
-        //        },
-        //    });
-        //}
-
-        function reloadTopology() {
-            $scope.fillTopologyData();
-        }
-
-        $scope.$watch('nxTopology', function() {
-            $rootScope.nxTopology = $scope.nxTopology;
-        });
-    }
-
-});
-
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy.service.js
deleted file mode 100644 (file)
index 27045bc..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-define([], function() {
-    'use strict';
-
-    angular.module('app.gbp').service('ResolvedPolicyService', ResolvedPolicyService);
-
-    ResolvedPolicyService.$inject = [];
-
-    function ResolvedPolicyService() {
-        /* methods */
-        this.createObject = createObject;
-
-
-        function ResolvedPolicy() {
-            /* properties */
-            this.data = {};
-            /* methods */
-            this.setData = setData;
-
-            /* Implementation */
-
-            function setData(data) {
-                this.data['consumer-tenant-id'] = data['consumer-tenant-id'];
-                this.data['consumer-epg-id'] = data['consumer-epg-id'];
-                this.data['provider-tenant-id'] = data['provider-tenant-id'];
-                this.data['provider-epg-id'] = data['provider-epg-id'];
-                this.data['policy-rule-group-with-endpoint-constraints'] =
-                    data['policy-rule-group-with-endpoint-constraints'];
-            }
-
-
-        }
-
-        function createObject(data) {
-            var obj = new ResolvedPolicy();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-    }
-
-    return ResolvedPolicyService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/resolved-policy.tpl.html
deleted file mode 100644 (file)
index fbc135f..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-<div id="topology-container" flex style="height: 100%;">
-    <section class="legendBox">
-        <md-button md-no-ink class="md-primary reload-button" ng-click="reloadTopology()">
-            <i class="material-icons">sync</i> Reload topology
-        </md-button>
-        <ul>
-            <li class="item"><span class="line green"></span>Allow</li>
-            <li class="item"><span class="line blue"></span>Chain</li>
-        </ul>
-    </section>
-
-    <next-topology topology-data="topologyData" cbk-functions="cbkFunctions" dictionaries="nxDict" topo="nxTopology"
-               topo-colors="nxTopoColors">
-    </next-topology>
-</div>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/contract-list-sidepanel.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/contract-list-sidepanel.controller.js
deleted file mode 100644 (file)
index 6692db0..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-define([], function() {
-    'use strict';
-
-    angular.module('app.gbp').controller('ContractListSidePanelController', ContractListSidePanelController);
-
-    ContractListSidePanelController.$inject = ['$scope'];
-
-    function ContractListSidePanelController($scope) {
-        $scope.fadeAll();
-
-        $scope.sidePanelContracts = Object.keys($scope.resolvedPolicy.contracts).map(function (k) {
-            var ob = $scope.resolvedPolicy.contracts[k];
-            return ob;
-        });
-        $scope.activeObject = 'contract';
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/contract-sidepanel.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/contract-sidepanel.controller.js
deleted file mode 100644 (file)
index bff499c..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-define([], function() {
-    'use strict';
-
-    angular.module('app.gbp').controller('ContractSidePanelController', ContractSidePanelController);
-
-    ContractSidePanelController.$inject = ['$scope'];
-
-    function ContractSidePanelController($scope) {
-        $scope.getObjectsCount = getObjectsCount;
-
-        /**
-         *
-         * @param obj
-         * @returns {*}
-         */
-        function getObjectsCount(obj) {
-            if(obj)
-                return Object.keys(obj).length;
-            else
-                return 0;
-        }
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/epg-list-sidepanel.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/epg-list-sidepanel.controller.js
deleted file mode 100644 (file)
index 62f2832..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-define([], function() {
-    'use strict';
-
-    angular.module('app.gbp').controller('EpgListSidePanelController', EpgListSidePanelController);
-
-    EpgListSidePanelController.$inject = ['$scope'];
-
-    function EpgListSidePanelController($scope) {
-        $scope.fadeAll();
-
-        $scope.sidePanelEpgs = Object.keys($scope.resolvedPolicy.epgs).map(function (k) {
-            var ob = $scope.resolvedPolicy.epgs[k];
-            ob.id = k;
-
-            return ob;
-        });
-        $scope.activeObject = 'epg';
-    }
-});
\ No newline at end of file
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/epg-sidepanel.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/epg-sidepanel.controller.js
deleted file mode 100644 (file)
index ab28fa6..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-define([], function() {
-    'use strict';
-
-    angular.module('app.gbp').controller('EpgSidePanelController', EpgSidePanelController);
-
-    EpgSidePanelController.$inject = ['$scope', 'EndpointsListService'];
-
-    function EpgSidePanelController($scope, EndpointsListService) {
-        $scope.endpoints = EndpointsListService.createList();
-
-        function getEndpoints() {
-            if($scope.sidePanelObject)
-                $scope.endpoints.getByEpg($scope.sidePanelObject, $scope.rootTenant);
-        }
-
-        $scope.$watch('sidePanelObject', getEndpoints);
-        $scope.$on('endpointChanged', getEndpoints);
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/clause-sidepanel.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/clause-sidepanel.tpl.html
deleted file mode 100644 (file)
index 1f4cf06..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-<md-content flex>
-       <div layout="row" class="layout-padding-lr15 layout-row">
-               <ul class="breadcrumbs">
-                       <li class="breadcrumb" ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-list-sidepanel')" role="button">Contracts</li>
-                       <li class="breadcrumb"><i class="material-icons">keyboard_arrow_right</i></li>
-                       <li class="breadcrumb" ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-sidepanel', sidePanelObject)" role="button">{{sidePanelObject.data.id}}</li>
-                       <li class="breadcrumb"><i class="material-icons">keyboard_arrow_right</i></li>
-                       <li class="breadcrumb">{{sidePanelObject.data.clause[innerObj.clause].name}}</li>
-               </ul>
-       </div>
-       <md-divider></md-divider>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">Clause info</md-subheader>
-       <div layout="row" class="layout-padding-lr15 layout-row layout-padding-b15">
-           <span flex="50" class="flex-50"><strong>Clause name</strong></span>
-           <span flex="" class="ng-binding flex">{{sidePanelObject.data.clause[innerObj.clause].name}}</span>
-       </div>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">Subject refs ({{sidePanelObject.data.clause[innerObj.clause]['subject-refs'].length}})</md-subheader>
-    <md-list>
-       <ng-repeat ng-repeat="ref in sidePanelObject.data.clause[innerObj.clause]['subject-refs']">
-               <md-list-item ng-click="toggleExpanded(ref)">
-                       {{ref}}
-                       <md-content ng-show="ref.expanded" class="md-whiteframe-2dp ng-scope flex layout-margin">
-                               <div layout="row" class="layout-row">
-                               <span flex="50" class="flex-50"><strong>Subject refs</strong></span>
-                                       <span flex class="ng-binding flex">{{ref}}</span>
-                               </div>
-                       </md-content>
-               </md-list-item>
-       </ng-repeat>
-    </md-list>
-</md-content>
\ No newline at end of file
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/contract-list-sidepanel.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/contract-list-sidepanel.tpl.html
deleted file mode 100644 (file)
index 7594587..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<md-content ng-controller="ContractListSidePanelController">
-       <div layout="row" class="layout-padding-lr15 layout-row">
-               <ul class="breadcrumbs">
-                       <li class="breadcrumb">Contracts</li>
-               </ul>
-       </div>
-       <md-divider></md-divider>
-       <md-divider></md-divider>
-    <md-subheader class="md-primary">Contracts list ({{sidePanelContracts.length}})</md-subheader>
-    <md-list>
-               <md-list-item ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-sidepanel', contract)"
-                                         ng-mouseenter="highlightLink(contract.linkId)"
-                                         ng-mouseleave="fadeAll()"
-                                         ng-repeat="contract in sidePanelContracts">
-                       {{contract['contract-id']}}
-               </md-list-item>
-    </md-list>
-</md-content>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/contract-sidepanel.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/contract-sidepanel.tpl.html
deleted file mode 100644 (file)
index e62a3c7..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-<md-content ng-controller="ContractSidePanelController">
-       <div layout="row" class="layout-padding-lr15 layout-row">
-               <ul class="breadcrumbs">
-                       <li class="breadcrumb" ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-list-sidepanel')" role="button">Contracts</li>
-                       <li class="breadcrumb"><i class="material-icons">keyboard_arrow_right</i></li>
-                       <li class="breadcrumb">{{sidePanelObject['contract-id']}}</li>
-               </ul>
-       </div>
-       <md-divider></md-divider>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">Contract info</md-subheader>
-       <div layout="row" class="layout-padding-lr15 layout-padding-b15 layout-row">
-           <span flex="50" class="flex-50"><strong>Contract ID</strong></span>
-           <span flex="" class="ng-binding flex">{{sidePanelObject['contract-id']}}</span>
-       </div>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">Subject list ({{getObjectsCount(sidePanelObject.subjects)}})</md-subheader>
-    <md-list>
-       <ng-repeat ng-repeat="(key, value) in sidePanelObject.subjects">
-               <md-list-item ng-click="openSidePanel('resolved-policy/sidepanel/views/subject-sidepanel', sidePanelObject, 'subject', key)">
-                       {{key}}
-               </md-list-item>
-       </ng-repeat>
-    </md-list>
-</md-content>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/epg-list-sidepanel.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/epg-list-sidepanel.tpl.html
deleted file mode 100644 (file)
index f1b197b..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<md-content ng-controller="EpgListSidePanelController">
-       <div layout="row" class="layout-padding-lr15 layout-row">
-               <ul class="breadcrumbs">
-                       <li class="breadcrumb">Endpoint-groups</li>
-               </ul>
-       </div>
-       <md-divider></md-divider>
-       <md-divider></md-divider>
-    <md-subheader class="md-primary">Endpoint-groups ({{sidePanelEpgs.length}})</md-subheader>
-    <md-list>
-               <md-list-item ng-click="openSidePanel('resolved-policy/sidepanel/views/epg-sidepanel', epg)"
-                          ng-mouseenter="highlightNode(epg.id)"
-                          ng-mouseleave="fadeAll()"
-                                                 ng-repeat="epg in sidePanelEpgs">
-                   {{epg.id}}
-               </md-list-item>
-    </md-list>
-</md-content>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/epg-sidepanel.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/epg-sidepanel.tpl.html
deleted file mode 100644 (file)
index 6f84f13..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-<md-content ng-controller="EpgSidePanelController">
-       <div layout="row" class="layout-padding-lr15 layout-row">
-               <ul class="breadcrumbs">
-                       <li class="breadcrumb" ng-click="openSidePanel('resolved-policy/sidepanel/views/epg-list-sidepanel')" role="button">Endpoint-groups</li>
-                       <li class="breadcrumb"><i class="material-icons">keyboard_arrow_right</i></li>
-                       <li class="breadcrumb">{{sidePanelObject.id}}</li>
-               </ul>
-       </div>
-       <md-divider></md-divider>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">Endpoint-group info</md-subheader>
-       <div layout="row" class="layout-padding-lr15 layout-padding-b15 layout-row">
-           <span flex="50" class="flex-50"><strong>Endpoint-group ID</strong></span>
-           <span flex="" class="ng-binding flex">{{sidePanelObject.id}}</span>
-       </div>
-       <md-divider></md-divider>
-       <div ng-if="sidePanelObject['provided-contracts'].length">
-           <md-subheader class="md-primary">Provided contracts ({{sidePanelObject['provided-contracts'].length}})</md-subheader>
-           <md-list>
-            <md-list-item ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-sidepanel', providedContract);"
-                          ng-repeat="providedContract in sidePanelObject['provided-contracts']"
-                          ng-mouseenter="highlightLink(providedContract.linkId)"
-                          ng-mouseleave="highlightNode(sidePanelObject.id)"
-                          >
-                {{providedContract['contract-id']}}
-            </md-list-item>
-           </md-list>
-    </div>
-       <div ng-if="sidePanelObject['consumed-contracts'].length">
-           <md-subheader class="md-primary">Consumed contracts ({{sidePanelObject['consumed-contracts'].length}})</md-subheader>
-           <md-list>
-            <md-list-item ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-sidepanel', consumedContract);"
-                          ng-repeat="consumedContract in sidePanelObject['consumed-contracts']"
-                          ng-mouseenter="highlightLink(consumedContract.linkId)"
-                          ng-mouseleave="highlightNode(sidePanelObject.id)"
-                          >
-                {{consumedContract['contract-id']}}
-            </md-list-item>
-           </md-list>
-    </div>
-    <md-divider></md-divider>
-    <md-subheader class="md-primary">
-               <div layout="row" class="layout-row">
-                       <span>Endpoints ({{endpoints.data.length}})</span>
-       </div>
-    </md-subheader>
-    <md-list class="expander">
-               <md-list-item class="md-4-line" layout="row" ng-repeat="endpoint in endpoints.data">
-                       <div layout-padding flex="15">
-                               <h3>{{endpoint.getEndpointContextTypeAcronym()}}</h3>
-                               <md-tooltip md-direction="right">{{endpoint.data['context-type']}}</md-tooltip>
-                       </div>
-                       <div class="md-list-item-text" flex="60">
-                               <h3>{{endpoint.data['context-id']}}</h3>
-                               <p>Address: {{endpoint.data.address}} </p>
-                               <p>Network Domain: {{endpoint.data['network-containment']['network-domain-id']}} </p>
-                <p>SGT: {{endpointSgtList.findSgtsForEndpoint(endpoint)}} </p>
-                       </div>
-                       <div flex="10">
-                               <md-button class="md-icon-button" ng-click="rootOpenEndpointDialog('edit', endpoint)">
-                                       <md-icon>edit</md-icon>
-                               </md-button>
-                       </div>
-                       <div flex="10">
-                               <md-button class="md-icon-button" ng-click="rootDeleteEndpointDialog(endpoint)">
-                                       <md-icon>delete</md-icon>
-                               </md-button>
-                       </div>
-               </md-list-item>
-    </md-list>
-</md-content>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/rule-sidepanel.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/rule-sidepanel.tpl.html
deleted file mode 100644 (file)
index 31bc120..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-<md-content flex>
-       <div layout="row" class="layout-padding-lr15 layout-row">
-               <ul class="breadcrumbs">
-                       <li class="breadcrumb" ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-list-sidepanel')" role="button">Contracts</li>
-                       <li class="breadcrumb"><i class="material-icons">keyboard_arrow_right</i></li>
-                       <li class="breadcrumb" ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-sidepanel', sidePanelObject)" role="button">{{sidePanelObject['contract-id']}}</li>
-                       <li class="breadcrumb"><i class="material-icons">keyboard_arrow_right</i></li>
-                       <li class="breadcrumb" ng-click="openSidePanel('resolved-policy/sidepanel/views/subject-sidepanel', sidePanelObject)" role="button">{{innerObj.subject}}</li>
-                       <li class="breadcrumb"><i class="material-icons">keyboard_arrow_right</i></li>
-                       <li class="breadcrumb">{{sidePanelObject.subjects[innerObj.subject]['resolved-rule'][innerObj.rule].name}}</li>
-               </ul>
-       </div>
-       <md-divider></md-divider>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">Rule info</md-subheader>
-       <div layout="row" class="layout-padding-lr15 layout-row layout-padding-b15">
-           <span flex="50" class="flex-50"><strong>Resolved rule name</strong></span>
-           <span flex="" class="ng-binding flex">{{sidePanelObject.subjects[innerObj.subject]['resolved-rule'][innerObj.rule].name}}</span>
-       </div>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">
-               <div layout="row" class="layout-row">
-                       <span>Actions ({{sidePanelObject.subjects[innerObj.subject]['resolved-rule'][innerObj.rule].action.length}})</span>
-                       <span ng-if="sidePanelObject.subjects[innerObj.subject]['resolved-rule'][innerObj.rule].action.length">
-               </span>
-       </div>
-       </md-subheader>
-    <md-list>
-               <md-list-item class="md-4-line" layout="row"
-                                         ng-repeat="action in sidePanelObject.subjects[innerObj.subject]['resolved-rule'][innerObj.rule].action">
-                       <div layout-padding flex="10">
-                               <h3>{{action.order}}</h3>
-                               <md-tooltip md-direction="right">
-                                       Order
-                               </md-tooltip>
-                       </div>
-                       <div class="md-list-item-text" flex>
-                               <h3>{{action.name}}</h3>
-                               <p>Action definition ID: {{action['action-definition-id']}} </p>
-                               <p ng-if="action['action-definition-id'] === 'Action-Chain'">Parameter name: {{action['parameter-value'][0].name}} </p>
-                <p ng-if="action['action-definition-id'] === 'Action-Chain'">Parameter value: {{action['parameter-value'][0]['string-value']}} </p>
-                       </div>
-                       <div ng-if="action['action-definition-id'] === 'Action-Chain'" flex="10">
-                               <md-button class="md-icon-button margin-lr0" ng-click="openSfcDialog(action['parameter-value'][0]['string-value'])">
-                                       <md-icon>visibility</md-icon>
-                               </md-button>
-                       </div>
-               </md-list-item>
-    </md-list>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">
-               <div layout="row" class="layout-row">
-                       <span>Classifiers ({{sidePanelObject.subjects[innerObj.subject]['resolved-rule'][innerObj.rule].classifier.length}})</span>
-                       <span class="flex" flex></span>
-       </div>
-       </md-subheader>
-    <md-list class="expander">
-               <md-list-item ng-repeat="classifier in sidePanelObject.subjects[innerObj.subject]['resolved-rule'][innerObj.rule].classifier"
-                                         class="md-4-line">
-            <div layout-padding flex="15">
-                <h3>{{classifier.direction}}</h3>
-                <md-tooltip md-direction="right">
-                    Direction
-                </md-tooltip>
-            </div>
-                       <div class="md-list-item-text" flex="80">
-                               <h3>{{classifier.name}}</h3>
-                               <p>Classifier definition ID: {{classifier['classifier-definition-id']}} </p>
-                               <p>Connection tracking: {{classifier['connection-tracking']}} </p>
-                               <p ng-repeat="param in classifier['parameter-value']">{{param.name}}: {{param['int-value']}} </p>
-                       </div>
-               </md-list-item>
-    </md-list>
-</md-content>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/subject-sidepanel.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/resolved-policy/sidepanel/views/subject-sidepanel.tpl.html
deleted file mode 100644 (file)
index 1ceceb3..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<md-content flex>
-       <div layout="row" class="layout-padding-lr15 layout-row">
-               <ul class="breadcrumbs">
-                       <li class="breadcrumb" ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-list-sidepanel')" role="button">Contracts</li>
-                       <li class="breadcrumb"><i class="material-icons">keyboard_arrow_right</i></li>
-                       <li class="breadcrumb" ng-click="openSidePanel('resolved-policy/sidepanel/views/contract-sidepanel', sidePanelObject)" role="button">{{sidePanelObject['contract-id']}}</li>
-                       <li class="breadcrumb"><i class="material-icons">keyboard_arrow_right</i></li>
-                       <li class="breadcrumb">{{innerObj.subject}}</li>
-               </ul>
-       </div>
-       <md-divider></md-divider>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">Subject info</md-subheader>
-       <div layout="row" class="layout-padding-lr15 layout-row layout-padding-b15">
-           <span flex="50" class="flex-50"><strong>Subject name</strong></span>
-           <span flex="" class="ng-binding flex">{{innerObj.subject}}</span>
-       </div>
-       <md-divider></md-divider>
-       <md-subheader class="md-primary">Resolved rule list ({{sidePanelObject.subjects[innerObj.subject]['resolved-rule'].length}})</md-subheader>
-    <md-list>
-       <ng-repeat ng-repeat="(key, rule) in sidePanelObject.subjects[innerObj.subject]['resolved-rule'] | orderBy: 'order'">
-               <md-list-item ng-click="openSidePanel('resolved-policy/sidepanel/views/rule-sidepanel', sidePanelObject, 'rule', key)">
-                       <span class="layout-padding-r10">
-                           <h4 class="order">{{rule.order}}</h4>
-                       </span>
-                       <span>{{rule.name}}</span>
-               </md-list-item>
-       </ng-repeat>
-    </md-list>
-</md-content>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/sfc/dialog-sfc-topology.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/sfc/dialog-sfc-topology.controller.js
deleted file mode 100644 (file)
index 6a64875..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-define([
-    'app/gbp/sfc/sfc.service'
-], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('SfcTopologyController', SfcTopologyController);
-
-    SfcTopologyController.$inject = ['$filter', '$mdDialog', '$scope', 'chainName', 'SfcService'];
-    /* @ngInject */
-    function SfcTopologyController($filter, $mdDialog, $scope, chainName, SfcService) {
-        /* properties */
-        $scope.chain = SfcService.createObject({name: chainName});
-
-        /* methods */
-        $scope.closeDialog = closeDialog;
-
-        /* Implementations */
-
-        $scope.chain.get(function() {
-            $scope.chain.data && $scope.chain.data['sfc-service-function'] &&
-                $scope.chain.data['sfc-service-function'].length && $scope.viewTopology();
-
-            $scope.topologyLoaded = true;
-        });
-
-        function closeDialog(){
-            $mdDialog.cancel();
-        }
-
-        function nodeTooltip() {
-            nx.define('MyNodeTooltip', nx.ui.Component, {
-                properties: {
-                    node: {},
-                    topology: {},
-                },
-                view: {
-                    content: [{
-                        tag: 'p',
-                        content: [{
-                            tag: 'label',
-                            content: '{#node.model.data.type}',
-                        }],
-                    }],
-                },
-            });
-        }
-
-        $scope.viewTopology = function() {
-            nodeTooltip();
-            $scope.topologySfc = new nx.graphic.Topology({
-                height: 400,
-                width: 600,
-                scalable: true,
-                theme: 'blue',
-                enableGradualScaling: true,
-                nodeConfig: {
-                    color: '#0386d2',
-                    //label: 'model.label',
-                    label: function (vertex) {
-                        return vertex.get().label + ' (' + vertex.get().type + ')';
-                    },
-                    scale: 'model.scale',
-                    iconType: function (vertex) {
-                        var type = vertex.get().type;
-                        switch (type) {
-                            case 'firewall':
-                                return 'firewall';
-                            case 'dpi':
-                                return 'accesspoint';
-                            case 'qos':
-                                return 'wlc';
-                            default:
-                                return 'unknown';
-                        }
-                    },
-                },
-                linkConfig: {
-                    label: 'model.label',
-                    linkType: 'parallel',
-                    color: '#0386d2',
-                    width: 5,
-                },
-                showIcon: true,
-                enableSmartNode: false,
-                tooltipManagerConfig: {
-                    showLinkTooltip: false,
-                    showNodeTooltip: false,
-                    //nodeTooltipContentClass: 'MyNodeTooltip',
-                },
-            });
-            $scope.app =  new nx.ui.Application;
-
-            var nodes = [];
-            var links = [];
-
-            $scope.chain.data['sfc-service-function'].forEach(function(sf, index) {
-                nodes.push({
-                    id: sf.name,
-                    label: sf.name,
-                    type: SfcService.getSfTypeShort(sf.type),
-                    x: 100 * (index + 1),
-                    y: 400,
-                });
-
-                index>0 && links.push({
-                    source: index - 1,
-                    target: index,
-                });
-            })
-
-            $scope.topologySfc.data({
-                nodes: nodes,
-                links: links,
-            });
-
-            $scope.app.container(document.getElementById('next-vpp-topo'));
-            $scope.topologySfc.attach($scope.app);
-        };
-
-
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/sfc/dialog-sfc-topology.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/sfc/dialog-sfc-topology.tpl.html
deleted file mode 100644 (file)
index f4e12c8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<md-dialog ng-cloak aria-label="vpp topo">
-    <md-toolbar>
-        <div class="md-toolbar-tools">
-            <h2 style="color: white">
-                Detail for chain {{chain.data.name}} ({{chain.data.symmetric ? 'Symmetric' : 'Asymmetric'}})
-            </h2>
-            <span flex></span>
-            <md-button class="md-icon-button" ng-click="closeDialog()" aria-label="close button">
-                <div>X</div>
-            </md-button>
-        </div>
-    </md-toolbar>
-    <md-dialog-content style="max-width:600px;max-height:400px;overflow:hidden">
-        <div id="next-vpp-topo"></div>
-    </md-dialog-content>
-</md-dialog>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/sfc/sfc.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/sfc/sfc.service.js
deleted file mode 100644 (file)
index 935f766..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('SfcService', SfcService);
-
-    SfcService.$inject = ['Restangular'];
-
-    function SfcService(Restangular) {
-        /* methods */
-        this.createObject = createObject;
-        this.getSfTypeShort = getSfTypeShort;
-
-        /**
-         * Sfc constructor
-         * @constructor
-         */
-        function Sfc() {
-            /* properties */
-            this.data = {};
-
-            /* methods */
-            this.setData = setData;
-            this.get = get;
-
-            /* Implementation */
-            /**
-             * fills Sfc object with data
-             * @param data
-             */
-
-            function setData(data) {
-                this.data.name = data.name;
-                this.data.symmetric = data.symmetric;
-                this.data['sfc-service-function'] = data['sfc-service-function'];
-            }
-            /**
-             * gets one Sfc object from Restconf
-             * @param id
-             * @returns {*}
-             */
-
-            function get(successCbk) {
-
-                var self = this,
-                    restObj = Restangular
-                        .one('restconf')
-                        .one('config')
-                        .one('service-function-chain:service-function-chains')
-                        .one('service-function-chain')
-                        .one(self.data.name);
-
-                return restObj.get().then(function(data) {
-                    self.data = data['service-function-chain'][0];
-                    (successCbk || angular.noop)();
-                });
-            }
-        }
-
-        /**
-         * creates Endpoint object and fills it with data if available
-         * @param data
-         * @returns {Endpoint}
-         */
-        function createObject(data) {
-            var obj = new Sfc();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-
-        function getSfTypeShort(sfType) {
-            return sfType.replace('service-function-type:', '').trim();
-        }
-    }
-
-    return SfcService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/add-tenant.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/add-tenant.controller.js
deleted file mode 100644 (file)
index af1bd19..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-define([
-    'app/gbp/tenant/tenant.service'
-], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('AddTenantController', AddTenantController);
-
-    AddTenantController.$inject = ['$mdDialog', '$scope', 'TenantService', 'tenant'];
-    /* @ngInject */
-    function AddTenantController($mdDialog, $scope, TenantService, tenant) {
-        /* properties */
-        $scope.tenant = tenant ? tenant : TenantService.createObject();
-
-        /* methods */
-        $scope.closeDialog = closeDialog;
-        $scope.save = save;
-        /* Implementations */
-
-        function closeDialog(){
-            $mdDialog.cancel();
-            $scope.getTenantList();
-        }
-
-        function save() {
-            $scope.tenant.put(function(data) {
-                $scope.closeDialog();
-            }, function(err) {
-            } );
-        }
-
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/dialog-add-tenant.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/dialog-add-tenant.tpl.html
deleted file mode 100644 (file)
index e4e6ad8..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<md-dialog ng-cloak class="gbpDialogWrapper">
-    <form name="tenantForm">
-        <md-toolbar>
-            <div class="md-toolbar-tools">
-                <h2>Tenant</h2>
-                <span flex></span>
-                <md-button ng-click="closeDialog()" class="md-button">Close dialog</md-button>
-            </div>
-        </md-toolbar>
-        <md-dialog-content style="width:350px;">
-            <div layout="column" class="layout-padding-lr15">
-                <div layout="row">
-                    <md-input-container flex>
-                        <label>Id</label>
-                        <input name="id" ng-model="tenant.data.id" ng-required="true">
-                        <div ng-messages="tenantForm.id.$error">
-                            <div ng-message="required">Required field</div>
-                        </div>
-                    </md-input-container>
-                    <md-input-container flex>
-                        <label>Name</label>
-                        <input name="name" ng-model="tenant.data.name" ng-pattern="/^[a-zA-Z]([a-zA-Z0-9\\-_.])*$/" ng-required="true">
-                        <div ng-messages="tenantForm.name.$error">
-                            <div ng-message="required">Required field.</div>
-                            <div ng-message="pattern">
-                                Invalid pattern.
-                                <md-tooltip md-direction="right" style="padding-left: 10px;">Value must match: ^[a-zA-Z]([a-zA-Z0-9\\-_.])*$</md-tooltip>
-                            </div>
-                        </div>
-                    </md-input-container>
-                </div>
-                <div layout="row">
-                    <md-input-container flex>
-                        <label>Description</label>
-                        <input name="description" ng-model="tenant.data.description">
-                    </md-input-container>
-                </div>
-            </div>
-        </md-dialog-content>
-        <md-dialog-actions layout="row">
-            <span flex></span>
-            <md-button ng-click="closeDialog()" class="md-primary">
-                Close
-            </md-button>
-            <md-button ng-click="save()" style="margin-right:20px;" ng-disabled="tenantForm.$invalid" class="md-primary">
-                Save
-            </md-button>
-        </md-dialog-actions>
-    </form>
-</md-dialog>
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant-list.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant-list.service.js
deleted file mode 100644 (file)
index 21147dc..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('TenantListService', TenantListService);
-
-    TenantListService.$inject = ['Restangular', 'TenantService'];
-
-    function TenantListService(Restangular, TenantService) {
-        /* methods */
-        this.createList = createList;
-
-        function TenantList() {
-            /* properties */
-            this.data = [];
-            /* methods */
-            this.clearData = clearData;
-            this.setData = setData;
-            this.get = get;
-
-            /* Implementation */
-
-            function clearData() {
-                var self = this;
-
-                self.data = [];
-            }
-
-            /**
-             * fills TenantList object with data
-             * @param data
-             */
-            function setData(data) {
-                var self = this;
-                data.forEach(function (dataElement) {
-                    self.data.push(TenantService.createObject(dataElement));
-                });
-            }
-
-            function get(dataStore) {
-                /* jshint validthis:true */
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one(dataStore).one('policy:tenants');
-
-                return restObj.get().then(function(data) {
-                    if (data.tenants.tenant) {
-                        self.setData(data.tenants.tenant);
-                    }
-                });
-            }
-        }
-
-        function createList() {
-            var obj = new TenantList();
-
-            return obj;
-        }
-    }
-
-    return TenantListService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant.controller.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant.controller.js
deleted file mode 100644 (file)
index 16a92fa..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-define([
-    'app/gbp/tenant/tenant.service',
-    'app/gbp/tenant/tenant-list.service',
-], function () {
-    'use strict';
-
-    angular.module('app.gbp').controller('TenantController', TenantController);
-
-    TenantController.$inject = ['$mdDialog', '$scope', 'TenantListService'];
-    /* @ngInject */
-    function TenantController($mdDialog, $scope, TenantListService) {
-        /* properties */
-        $scope.tenants = TenantListService.createList();
-        $scope.tenantsTableQuery = {};
-
-        /* methods */
-        $scope.getTenantList = getTenantList;
-        $scope.openTenantDialog = openTenantDialog;
-        $scope.deleteTenantDialog = deleteTenantDialog;
-
-        init();
-
-        /* Implementations */
-
-        /**
-         * fills $scope.tenants array with data from data store
-         */
-        function getTenantList() {
-            $scope.tenants = TenantListService.createList();
-            $scope.tenants.get('config');
-        }
-
-        /**
-         * Initializing function
-         */
-        function init() {
-            $scope.tenantsTableQuery = {
-                order: "data.id",
-                limit: 25,
-                page: 1,
-                options: [25, 50, 100],
-                filter: ''
-            };
-
-            getTenantList();
-        }
-
-        function openTenantDialog(tenantData) {
-            $mdDialog.show({
-                clickOutsideToClose: true,
-                controller: 'AddTenantController',
-                preserveScope: true,
-                templateUrl: 'src/app/gbp/tenant/dialog-add-tenant.tpl.html',
-                parent: angular.element(document.body),
-                scope: $scope,
-                locals: {
-                    tenant: tenantData
-                }
-            });
-        }
-
-        function deleteTenantDialog(tenantData) {
-            var confirm = $mdDialog.confirm()
-                .title('Delete tenant')
-                .textContent('Do you want to delete tenant ' + tenantData.data.name + '?')
-                .ok('Delete')
-                .cancel('Cancel');
-
-            $mdDialog.show(confirm).then(function() {
-                tenantData.deleteTenant(
-                    function() {
-                        $scope.getTenantList();
-                    }
-                );
-            }, function() {
-
-            });
-        }
-
-    }
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant.service.js b/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant.service.js
deleted file mode 100644 (file)
index 4428c9d..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-define([], function () {
-    'use strict';
-
-    angular.module('app.gbp').service('TenantService', TenantService);
-
-    TenantService.$inject = ['Restangular'];
-    /* @ngInject */
-    function TenantService(Restangular) {
-        /* methods */
-        this.createObject = createObject;
-
-
-        /**
-         * Tenant constructor
-         * @constructor
-         */
-        function Tenant() {
-            /* properties */
-            this.data = {};
-            /* methods */
-            this.setData = setData;
-            this.get = get;
-            this.put = put;
-            this.deleteTenant = deleteTenant;
-
-            /* Implementation */
-            /**
-             * fills Tenant object with data
-             * @param data
-             */
-            function setData(data) {
-                this.data.id = data.id;
-                this.data.name = data.name;
-                this.data.description = data.description;
-
-                // TODO: use objects
-                this.data['forwarding-context'] = data['forwarding-context'];
-                this.data.policy = data.policy;
-            }
-
-            /**
-             * gets one Tenant object from Restconf
-             * @param id
-             * @returns {*}
-             */
-            function get(id) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
-                    .one(this.data.id || id);
-
-                return restObj.get().then(function (data) {
-                    self.setData(data.tenant[0]);
-                });
-            }
-
-            function put(successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
-                    .one(self.data.id),
-                    dataObj = {tenant: [self.data]};
-
-                return restObj.customPUT(dataObj).then(function(data) {
-                    successCallback(data);
-                }, function(res) {
-
-                });
-            }
-
-            function deleteTenant(successCallback) {
-                var self = this;
-
-                var restObj = Restangular.one('restconf').one('config').one('policy:tenants').one('tenant')
-                    .one(self.data.id);
-
-                return restObj.remove().then(function(data) {
-                    successCallback(data);
-                }, function(res) {
-
-                });
-            }
-        }
-
-        /**
-         * creates Tenant object and fills it with data if available
-         * @param data
-         * @returns {Tenant}
-         */
-        function createObject(data) {
-            var obj = new Tenant();
-
-            if (data) {
-                obj.setData(data);
-            }
-
-            return obj;
-        }
-    }
-
-    return TenantService;
-});
diff --git a/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant.tpl.html b/groupbasedpolicy-ui/module/src/main/resources/gbp/tenant/tenant.tpl.html
deleted file mode 100644 (file)
index c65747f..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<section flex layout="column">
-    <div flex layout="row">
-        <md-button ng-click="openTenantDialog()" class="md-primary">Add</md-button>
-        <md-button ng-click="getTenantList()" class="md-primary">Reload</md-button>
-    </div>
-    <md-table-container>
-        <table md-table>
-            <thead md-head md-order="tenantsTableQuery.order">
-            <tr md-row>
-                <th md-column md-order-by="data.id"><span>Id</span></th>
-                <th md-column md-order-by="data.name"><span>Name</span></th>
-                <th md-column md-order-by="data.description"><span>Description</span></th>
-                <th md-column><span>Actions</span></th>
-            </tr>
-            </thead>
-            <tbody md-body>
-            <tr md-row ng-repeat="tenant in tenants.data | filter: tenantsTableQuery.filter  | orderBy : tenantsTableQuery.order | limitTo: tenantsTableQuery.limit : (tenantsTableQuery.page -1) * tenantsTableQuery.limit">
-                <td md-cell>{{tenant.data.id}}</td>
-                <td md-cell>{{tenant.data.name}}</td>
-                <td md-cell>{{tenant.data.description}}</td>
-                <td md-cell>
-                    <md-button class="md-icon-button" ng-click="openTenantDialog(tenant)">
-                        <md-icon>edit</md-icon>
-                    </md-button>
-                    <md-button class="md-icon-button w85" ng-click="deleteTenantDialog(tenant)">
-                        <md-icon>delete</md-icon>
-                    </md-button>
-                </td>
-            </tr>
-
-            </tbody>
-        </table>
-        <md-table-pagination md-limit="tenantsTableQuery.limit"
-                             md-page="tenantsTableQuery.page"
-                             md-options="tenantsTableQuery.options"
-                             md-total="{{tenants.data.length}}"
-                             md-page-select="options.pageSelect">
-        </md-table-pagination>
-    </md-table-container>
-</section>
diff --git a/groupbasedpolicy-ui/pom.xml b/groupbasedpolicy-ui/pom.xml
deleted file mode 100644 (file)
index b33d0be..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright (c) 2014 Inocybe Technologies, and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
--->
-<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>
-
-  <groupId>org.opendaylight.groupbasedpolicy</groupId>
-  <artifactId>groupbasedpolicy-ui</artifactId>
-  <!-- <name> formatting is used by autorelease to parse and notify projects on
-       build failure. Please do not modify this unless you have a good reason. -->
-  <name>ODL :: groupbasedpolicy :: ${project.artifactId}</name>
-  <description>Resources</description>
-  <version>0.8.0-SNAPSHOT</version>
-  <packaging>pom</packaging>
-
-  <prerequisites>
-    <maven>3.0</maven>
-  </prerequisites>
-
-  <modules>
-    <module>module</module>
-    <module>bundle</module>
-  </modules>
-
-</project>
index 698cbe8fff0850b70b052a47470b9a5dcbfd4b9d..f0543233c745def80ed5510dd651a40b248a7c30 100644 (file)
@@ -4,8 +4,6 @@ module neutron-ovsdb-impl {
     namespace "urn:opendaylight:groupbasedpolicy:neutron:ovsdb:params";
     prefix "neutron-ovsdb-params";
 
     namespace "urn:opendaylight:groupbasedpolicy:neutron:ovsdb:params";
     prefix "neutron-ovsdb-params";
 
-    import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
-
     description
         "This module contains the base YANG definitions for
         neutron-ovsdb mudule params.";
     description
         "This module contains the base YANG definitions for
         neutron-ovsdb mudule params.";
diff --git a/pom.xml b/pom.xml
index 7fba90d7d802a28f94871690630c01c8444fd738..602193dccc4640ddc5d7cd63d21ef7b727b0e3a9 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -31,7 +31,6 @@
     <module>neutron-mapper</module>
     <module>neutron-vpp-mapper</module>
     <module>neutron-ovsdb</module>
     <module>neutron-mapper</module>
     <module>neutron-vpp-mapper</module>
     <module>neutron-ovsdb</module>
-    <module>groupbasedpolicy-ui</module>
     <module>distribution-karaf</module>
     <module>features</module>
     <module>sxp-integration</module>
     <module>distribution-karaf</module>
     <module>features</module>
     <module>sxp-integration</module>