<artifactId>cli-renderer</artifactId>
<version>${project.version}</version>
</dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>nemo-ui</artifactId>
- <version>${project.version}</version>
- </dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>nemo-features</artifactId>
<type>xml</type>
<classifier>features</classifier>
</dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-nemo-engine-ui</artifactId>
- <version>${project.version}</version>
- <type>xml</type>
- <classifier>features</classifier>
- </dependency>
</dependencies>
</project>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Copyright © 2017 Red Hat, Inc. and others.
-
- 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.odlparent</groupId>
- <artifactId>single-feature-parent</artifactId>
- <version>3.0.2</version>
- <relativePath/>
- </parent>
-
- <groupId>org.opendaylight.nemo</groupId>
- <artifactId>odl-nemo-engine-ui</artifactId>
- <version>1.5.0-SNAPSHOT</version>
- <packaging>feature</packaging>
-
- <name>OpenDaylight :: NEMO :: Engine :: UI</name>
-
- <dependencies>
- <dependency>
- <groupId>org.opendaylight.dlux</groupId>
- <artifactId>odl-dlux-core</artifactId>
- <version>0.8.0-SNAPSHOT</version>
- <type>xml</type>
- <classifier>features</classifier>
- </dependency>
- <dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>odl-nemo-engine-rest</artifactId>
- <version>${project.version}</version>
- <type>xml</type>
- <classifier>features</classifier>
- </dependency>
- <dependency>
- <groupId>org.opendaylight.nemo</groupId>
- <artifactId>nemo-ui</artifactId>
- <version>${project.version}</version>
- </dependency>
- </dependencies>
-</project>
<module>odl-nemo-engine-rest</module>
<module>odl-nemo-openflow-renderer</module>
<module>odl-nemo-cli-renderer</module>
- <module>odl-nemo-engine-ui</module>
</modules>
<scm>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2015 Huawei, Inc 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.mdsal</groupId>
- <artifactId>binding-parent</artifactId>
- <version>0.13.0-SNAPSHOT</version>
- <relativePath />
- </parent>
-
- <groupId>org.opendaylight.nemo</groupId>
- <artifactId>nemo-ui</artifactId>
- <version>1.5.0-SNAPSHOT</version>
- <packaging>bundle</packaging>
- <!-- <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 :: nemo :: ${project.artifactId}</name>
-
- <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>
- </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>
- <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.nemo</groupId>
- <includeArtifactIds>nemo-ui</includeArtifactIds>
- <excludes>META-INF\/**</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/nemo.git</connection>
- <developerConnection>scm:git:ssh://git.opendaylight.org:29418/nemo.git</developerConnection>
- <url>https://wiki.opendaylight.org/view/NEMO:Main</url>
- <tag>HEAD</tag>
- </scm>
-</project>
+++ /dev/null
-<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="nemo"/>
- <property name="url" value="/src/app/nemo"/>
- <property name="directory" value="/nemo"/>
- <property name="requireJs" value="app/nemo/nemo.module"/>
- <property name="angularJs" value="app.nemo"/>
- <property name="cssDependencies">
- <list>
- <!--value>src/app/nemo/css/nemo_main.css</value>
- <value>src/app/nemo/css/NE.css</value>
- <value>src/app/nemo/css/SI.css</value>
- <value>src/app/nemo/css/SP.css</value>
- <value>src/app/nemo/css/jquery-ui.min.css</value-->
- </list>
- </property>
-
-
- </bean>
-</blueprint>
\ No newline at end of file
+++ /dev/null
-/*! jQuery UI - v1.11.4 - 2015-03-11
-* http://jqueryui.com
-* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
-* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px
-* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
-
-.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;min-height:0;font-size:100%}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{color:black;padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-dialog{overflow:hidden;position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:12px;height:12px;right:-5px;bottom:-5px;background-position:16px 16px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-button{display:inline-block;overflow:hidden;position:relative;text-decoration:none;cursor:pointer}.ui-selectmenu-button span.ui-icon{right:0.5em;left:auto;margin-top:-8px;position:absolute;top:50%}.ui-selectmenu-button span.ui-selectmenu-text{text-align:left;padding:0.4em 2.1em 0.4em 1em;display:block;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif;font-size:1em}.ui-widget-content{border:1px solid #ddd;background:#eee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ccc;background:#ccc url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;color:#fff;font-weight:bold}.ui-widget-header a{color:#fff}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #ccc;background:#f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#1c94c4}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#1c94c4;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #fbcb09;background:#fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#c77405}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited{color:#c77405;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #fbd850;background:#fff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;font-weight:bold;color:#eb8f00}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#eb8f00;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fed22f;background:#ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat;color:#fff}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#fff}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#fff}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_222222_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-default .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-active .ui-icon{background-image:url("images/ui-icons_ef8c08_256x240.png")}.ui-state-highlight .ui-icon{background-image:url("images/ui-icons_228ef1_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_ffd27a_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:4px}.ui-widget-overlay{background:#666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;opacity:.5;filter:Alpha(Opacity=50)}.ui-widget-shadow{margin:-5px 0 0 -5px;padding:5px;background:#000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x;opacity:.2;filter:Alpha(Opacity=20);border-radius:5px}
+++ /dev/null
-.btn_\r
-{\r
- color:white;\r
- border-radius: 6px;\r
- -moz-border-radius: 6px;\r
- -webkit-border-radius: 6px;\r
- -moz-box-shadow: 2px 2px 2px rgba(0,0,0,0.6);\r
- -webkit-box-shadow: 2px 2px 2px rgba(0,0,0,0.6);\r
- text-shadow: -1px -1px 1px rgba(0,0,0,0.5);\r
- border-bottom: 1px solid rgba(0,0,0,0.25);\r
- border-right: 1px solid rgba(0,0,0,0.25);\r
- cursor:pointer;\r
- font-size:15px;\r
- background-color: #939;\r
- /*background-color: #F8B64B;*/\r
- font-family:Arial,Verdana;\r
- width:50px;\r
- height:25px;\r
-}\r
-span.key\r
-{\r
- display:normal;\r
- font-size:13px;\r
- color:red;\r
-}\r
-.header p{\r
- float: left;\r
-}\r
-.header span{\r
- color:#000 !important;\r
- text-shadow:0 0 0 #fff;\r
- text-decoration: underline;\r
- /*text-decoration-color:green;*/\r
- /*border-bottom:1px solid green;*/\r
- font-weight: normal;\r
- font-size: 18px;\r
- line-height: 30px;\r
- display: inline-block;\r
- margin-left: 20px;\r
- cursor: pointer;\r
- font-family:'cursive','-webkit-pictograp',sans-serif,Verdana;\r
-}\r
-#selectUser{\r
-width: 290px;\r
-height: 30px;\r
-float: right;\r
-}\r
-#selectUser p{\r
-font-size: 22px;\r
-font-weight: 500;\r
-font-family: Times;\r
-line-height: 28px;\r
-text-shadow:1px 1px 1px #aaa;\r
-}\r
-#selectUser select{\r
- width: 140px;\r
- height: 28px;\r
- margin-left: 5px;\r
- margin-right: 5px;\r
- background: #ccc;\r
- font-size: 20px;\r
- /*float: left;*/\r
-}\r
-#selectUser *:last-child{\r
- width: 60px;\r
- height: 28px;\r
- line-height: 30px;\r
-}\r
-.group{\r
-height: auto;\r
-background-color: rgba(0,0,0,0);\r
- margin-bottom: 15px;\r
-}\r
-#intentinfo{\r
- height: 920px;\r
-\r
-}\r
-#PhyNet{\r
- width: 850px;\r
- margin: 20px auto;\r
- /* background: #fff;\r
- height: 550px;\r
- border: 1px solid #aaa;*/\r
-}\r
-#VirNet{\r
- width: 850px;\r
- margin: 20px auto;\r
-/* background: #fff;\r
- height: 550px;\r
- border: 1px solid #aaa;*/\r
-}\r
-#phy_graph,#vir_graph{\r
-height: 500px;\r
-width: 800px;\r
-background: #fff;\r
-margin: 0 auto;\r
-margin-bottom: 20px;\r
-}\r
-#Mapping{\r
- /*height: 800px;*/\r
-}\r
-#nemo_str_show{\r
- height: 200px !important;\r
- width:923px !important;\r
- line-height: 10px;\r
-}\r
-#mappingTable{\r
- width: 850px;\r
- margin: 0px auto;\r
-}\r
-.group table{\r
- border-collapse:collapse;\r
- /*margin: 10px auto;*/\r
- border-spacing:0;\r
- /* border-left:1px solid #888;\r
- border-top:1px solid #888;*/\r
- background:#efefef;\r
- /*width: 100%;*/\r
- width: 820px;\r
- margin-bottom: 2px;\r
- table-layout: fixed;\r
-}\r
-.group caption{\r
- font-size: 18px;\r
- font-weight: bold;\r
- color: blue;\r
- margin-left: 0px;\r
- text-align: left;\r
- margin-bottom: 5px;\r
- /*float:left;*/\r
-}\r
-.group table th{\r
- border:1px solid black; \r
- padding:2px 0px;\r
- font-weight: bold;\r
- background-color: #ccc;\r
-}\r
-.group table th,.group table td{\r
- text-align: center;\r
- font-size: 15px;\r
-}\r
-table#virNodeTab,table#virLinkTab{\r
- table-layout: fixed;\r
-}\r
-table#virNodeTab td,table#virLinkTab td{\r
- white-space: nowrap;\r
- overflow: hidden;\r
- text-overflow:ellipsis;\r
-}\r
-table.tableHead{\r
- margin-bottom: 5px !important;\r
-}\r
-div.tableBodyContainer{\r
- height: 200px;\r
- width: 835px;\r
- overflow: auto;\r
- margin-bottom: 20px;\r
-}\r
-div.nodetableBodyContainer{\r
- height: 150px;\r
- overflow: auto;\r
- margin-bottom: 20px;\r
-}\r
-\r
-div#pageContent {\r
- /*height: 1020px;*/\r
-}\r
- \r
-body {\r
- /*width: 1330px;*/\r
- overflow: scroll;\r
- margin-right: 0px;\r
-}\r
+++ /dev/null
-*{margin:0;padding: 0;outline:none;}\r
-body{\r
- /*width:1200px;*/\r
- height: 1000px;\r
- /*background-color: rgb(65, 64, 66);*/\r
- color: black;\r
- font-size: 18px;\r
-}\r
-div{border-radius: 5px;}\r
-.header{\r
- box-sizing:border-box;\r
- width:1000px;\r
- height: 50px;\r
- margin: 5px auto;\r
- padding-top:10px;\r
- padding-left:20px; \r
- /*margin-top: 5px;*/\r
- font-family: verdana,Geneva,Arial,sans-serif;\r
- text-shadow:3px 3px 1px #aaa;\r
- font-size: 20px;\r
- background: #eee;\r
- /*background:-webkit-gradient(linear, 0% 20%, 100% 100%, from(#eee), to(#aaa));*/\r
- /*background:-webkit-gradient(linear, 45% 20%, 0% 100%, from(#aaa), to(#eee));*/\r
- /*background:-moz-linear-gradient(left,#eee, #aaa);*/\r
- /*background:-webkit-gradient(linear, 20% 0%, 100% 0%, color-stop(0.3,#aaa),color-stop(0.5,#bbb),color-stop(1,#444444));*/\r
-}\r
-.header p{\r
- float: left;\r
-}\r
-.header span{\r
- color:#000 !important;\r
- text-shadow:0 0 0 #fff;\r
- text-decoration: underline;\r
- /*text-decoration-color:green;*/\r
- /*border-bottom:1px solid green;*/\r
- font-weight: normal;\r
- font-size: 18px;\r
- line-height: 30px;\r
- display: inline-block;\r
- margin-left: 20px;\r
- cursor: pointer;\r
- font-family:'cursive','-webkit-pictograp',sans-serif,Verdana;\r
-}\r
-.group{\r
- width:1000px;\r
- /*height: 700px;*/\r
- margin: 0px auto;\r
- background: #ccc;\r
- /*border: 2px solid yellow;*/\r
-}\r
-#intent_info{\r
-\r
-}\r
-#intent_topo{\r
- /*box-sizing:border-box;*/\r
- width: 900px;\r
- margin: 10px auto;\r
- background: #eee;\r
- padding-left: 45px;\r
- padding-top: 45px;\r
- /*border: 1px solid #aaa;*/\r
-}\r
-#intent_info #service_svg{\r
- /*margin: 0px auto;*/\r
-}\r
-svg{\r
- background-color: #fff;\r
-}\r
-.down{\r
- margin-bottom: 10px;\r
-}\r
-#nemo_str_show{\r
- height: 200px !important;\r
- /*border: 2px solid red;*/\r
- overflow: scroll !important;\r
- font-size: 16px;\r
- /*window*/\r
- /*line-height: 20px;\r
- width:900px !important;*/\r
-\r
- /*linux*/\r
- \r
- width:990px !important;\r
- line-height: 10px;\r
- \r
- font-weight: normal;\r
-}\r
-#nemo_str_show p{\r
- white-space:nowrap;\r
- /*margin-left: 5px;*/\r
-}\r
-#nemo_str_show span.keyWords{\r
- /*color:deeppink;*/\r
- /*font-weight: bold;*/\r
- color: #eb8f00;\r
-}\r
-\r
-/*jquery ui tab css start*/\r
-/*tab ui li active font color*/\r
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {\r
- color: #eb8f00 !important;\r
- text-decoration: none;\r
-}\r
-/*tab ui li*/\r
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {\r
- /*border: 1px solid #fbd850;*/\r
- background: #fff url("../images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;\r
- font-weight: bold;\r
- color: #eb8f00;\r
-}\r
-.ui-widget-header {\r
- border: 1px solid #ccc;\r
- background: #aaa url("../images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x;\r
- background:#9bf;\r
- color: #fff;\r
- font-weight: bold;\r
-}\r
-.ui-widget-content {\r
- border: 1px solid #ddd;\r
- background: #eee url("../images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x;\r
- color: #333;\r
-}\r
-.ui-tabs .ui-tabs-nav li {\r
- background: #fff;\r
- /*opacity: 0.9;*/\r
-}\r
-.ui-tabs .ui-tabs-nav li a{\r
- color:gray !important;\r
-}\r
-li.ui-state-default.ui-corner-top.ui-tabs-active.ui-state-active {\r
- background: #eee;\r
-}\r
-li.ui-state-default.ui-corner-top.ui-tabs-active.ui-state-active a{\r
- color:#eb8f00 !important;\r
-}\r
-/*jquery ui tab css end*/\r
-div#pageContent {\r
- /*height: 1000px;*/\r
-}
\ No newline at end of file
+++ /dev/null
-* {margin:0;padding: 0;outline: none;}\r
-div{border-radius: 5px;}\r
-body\r
-{\r
- /*background-color: rgb(65, 64, 66);*/\r
- color: black;\r
- font-size: 18px;\r
- font-family: verdana,Geneva,Arial,sans-serif;\r
-}\r
-#logPage{\r
- min-width: 1140px;\r
- width: 1140px;\r
- height: 566px;\r
- /* border: 2px solid red; */\r
- background-color: #aaa;\r
-}\r
-.nemo_info{\r
- background-color: #ddd;\r
- width:600px;\r
- min-width: 600px;\r
- height: 460px;\r
- border:1px solid #ccc; \r
- float:left;\r
- margin: 50px auto;\r
- margin-left: 10px;\r
- position: relative;\r
- font-family: 'Palatino Linotype','Trebuchet MS',Times;\r
- font-size: 22px;\r
- color:black;\r
-}\r
-.nemo_info img{\r
- display: block;\r
- margin: 5px auto;\r
- margin-bottom: 10px;\r
-}\r
-.nemo_info p{\r
-font-style:italic;\r
-text-indent:25px;\r
-text-align: justify;\r
-display: inline-block;\r
-margin-left: 5px;\r
-margin-right: 10px;\r
-text-shadow:-2px -2px 1px rgba(255,255,255,0.7);\r
--webkit-transform:rotate(0deg);\r
--webkit-transform:skew(10deg,0deg);\r
-}\r
-#login\r
-{\r
- border: 1px solid rgb(220,220,220);\r
- border-radius: 10px;\r
- background-color:rgba(240,240,240,0.8);\r
- width: 350px;\r
- height: 250px;\r
- margin: 160px auto;\r
- position: relative;\r
- float: right;\r
- margin-right: 100px;\r
-}\r
-\r
-#log_title\r
-{\r
- margin-top: 10px;\r
- margin-left: 130px;\r
- font-size: 20px;\r
- font-weight: normal;\r
- font-family: Arial,'Apple Chancery','Andale Mono',Comic,sans-serif;\r
-}\r
-#log_info\r
-{\r
- width: 310px;\r
- height: 200px;\r
- margin-top: 20px;\r
- margin-left: 30px;\r
-}\r
-#log_info table\r
-{\r
- width: 280px;\r
- height: 150px;\r
- margin-top: 30px;\r
- margin-left: 0px;\r
-}\r
-\r
-table tr\r
-{\r
- /* width: 260px; */\r
- height: 20px;\r
- margin-top: 15px;\r
- margin-left: 0px;\r
- -moz-border-radius: 6px;\r
- -webkit-border-radius: 6px;\r
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.6);\r
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.6);\r
- border-bottom: 0px solid rgba(0,0,0,0.25);\r
-}\r
-table tr td\r
-{\r
- /*background-color:E8E8E8;*/\r
- text-align: center;\r
-}\r
-\r
-#login input\r
-{\r
- width: 160px;\r
- height: 25px;\r
- background-color: #fff !important;\r
- font-size: 18px;\r
- color: black;\r
- font-family:Verdana,Arial; \r
-}\r
-\r
-button\r
-{\r
- margin-top: 10px;\r
- margin-left: 20px;\r
- margin-right: 20px;\r
- width: 65px;\r
- height: 25px;\r
- color:white;\r
- -moz-border-radius: 6px;\r
- -webkit-border-radius: 6px;\r
- -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.6);\r
- -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.6);\r
- text-shadow: -1px -1px 1px rgba(0,0,0,0.25);\r
- border-bottom: 1px solid rgba(0,0,0,0.25);\r
- cursor:pointer;\r
- font-size:15px;\r
- background-color:#993399;\r
-}\r
-\r
-@media (max-width:1100px){\r
- #login{\r
- /*float: left;*/\r
- /*margin-top:0px;*/\r
- /*top:0px;*/\r
- /*left: 150px;*/\r
- }\r
-}\r
-\r
+++ /dev/null
- var ne_flag=0;
- // Node_List = a[Node_Id][x](x = 0,label;x = 1,title;x = 2,P2mpGroupId)
- var Node_List = new Array();
- // Edge_List = b[Edge_Id][y](y = 0,connection name;y = 1,from;y = 2,to)
- var Edge_List = new Array();
-
- var node_count=0;
- var node_X=[];
-
- var conn_Item=[];
-
- var vlandata1;
-
-
-/////////////Main Data//////////////
- var nodes, edges, graph;
- var Node_Id = 0;
- var Edge_Id = 0;
- var Edge_Count=0;
-
-
- var Node_Sp=[];
- var Node_Sp_Id=[];
- var Node_Sc=[];
- var Node_Sc_Id=[];
- var policy_count=[];
- var policy_set=[];
- var chain_count=[];
- var chain_set=[];
- var conn_set=[];
-
-
- //flow
- var flow_count = [];
- var ext_ip = [];
-
- // create an array with nodes
- nodes = new vis.DataSet();
-
- // create an array with edges
- edges = new vis.DataSet();
-
-/////////////P2mp Group Data//////////////
- var Group_Id = 0;
- var Group_List= new Array();
-
- var options = {
- stabilize: true,
- //Manipulation:true,
- //hierarchicalLayout: true,
- nodes: {
- // default for all nodes
- shape: 'dot',
- fontSize:16 ,
- radius:16,
- fixed:true
- },
- edges: {
- smooth: false
- //length:1
- },
- groups: {
- null: {
- color: {
- border: 'white',
- background: 'white',
- highlight: {
- border: 'white',
- background: '#white'
- }
- },
- fontSize: 0,
- radius:0,
- //fontFace: 'arial',
- shape: 'dot'
- },
- host: {
- color: {
- border: 'black',
- background: '#B0E2FF',
- highlight: {
- border: 'black',
- background: '#4F94CD'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- firewall: {
- color: {
- border: 'black',
- background: '#FF0000',
- highlight: {
- border: 'black',
- background: '#FF7256'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- internet: {
- color: {
- border: 'black',
- background: '#7FFF00',
- highlight: {
- border: 'black',
- background: '#6B8E23'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- forwarding: {
- color: {
- border: 'black',
- background: '#878787',
- highlight: {
- border: 'black',
- background: '#4A4A4A'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- loadbalance: {
- color: {
- border: '#black',
- background: '#FF9933',
- highlight: {
- border: 'black',
- background: '#FDCEBF'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- group: {
- color: {
- border: 'black',
- background: 'yellow',
- highlight: {
- border: 'black',
- background: '#ECE5D0'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- }
- }
-
- };
-
-
-
- // used in Service_Policy
-var options2 = {
- stabilize: false,
- //Manipulation:true,
- //hierarchicalLayout: true,
- nodes: {
- // default for all nodes
- shape: 'dot',
- fontSize:16 ,
- radius:16,
- fixed:true
- },
- edges: {
- smooth: false
- //length:1
- },
- groups: {
- null: {
- color: {
- border: 'white',
- background: 'white',
- highlight: {
- border: 'white',
- background: '#white'
- }
- },
- fontSize: 0,
- radius:0,
- //fontFace: 'arial',
- shape: 'dot'
- },
- host: {
- color: {
- border: 'black',
- background: '#B0E2FF',
- highlight: {
- border: 'black',
- background: '#4F94CD'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- firewall: {
- color: {
- border: 'black',
- background: '#FF0000',
- highlight: {
- border: 'black',
- background: '#FF7256'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- internet: {
- color: {
- border: 'black',
- background: '#7FFF00',
- highlight: {
- border: 'black',
- background: '#6B8E23'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- forwarding: {
- color: {
- border: 'black',
- background: '#878787',
- highlight: {
- border: 'black',
- background: '#4A4A4A'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- loadbalance: {
- color: {
- border: '#black',
- background: '#FF9933',
- highlight: {
- border: 'black',
- background: '#FDCEBF'
- }
- },
- fontSize: 15,
- radius:15,
- fontFace: 'arial',
- shape: 'dot'
- },
- group: {
- color: {
- border: 'black',
- background: 'yellow',
- highlight: {
- border: 'black',
- background: '#ECE5D0'
- }
- },
- fontSize: 15,
- radius:15,
-
- }
- },
- physics: {
- repulsion: {
- centralGravity: 0,
- springLength: 100,//弹簧长度
- springConstant: 0,//弹簧常数
- nodeDistance: 0,
- damping: 0 //阻尼,减幅,衰减
- }}
-
- };
-
-
- var DOMURL = window.URL || window.webkitURL || window;
- var nemoModule = [
- /* no host in mode */
- '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200" opacity="1">' +
- '<circle cx="100" cy="100" r="95" stroke-width="2" stroke="#000000" fill="#FFFFFF" opacity="1"/>'+
- '</svg>',
- /* 1 host in mode */
- '<svg xmlns="http://www.w3.org/2000/svg" width="300" height="235" opacity="1">' +
- '<circle cx="130" cy="140" r="80" stroke-width="5" stroke="#000000" fill="#FFFFFF" opacity="1"/>\
- <circle cx="130" cy="140" r="40" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="20" y="100" width="40%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml">\
- <span style="padding-left:65px; padding-top:100px; color:black; font-size:25px;">\
- {{host1}}</span>\
- </div>\
- </foreignObject>\
- </svg>',
- /* 2 hosts in mode */
- '<svg xmlns="http://www.w3.org/2000/svg" width="300" height="235" opacity="1">' +
- '<circle cx="150" cy="150" r="80" stroke-width="5" stroke="#000000" fill="#FFFFFF" opacity="1"/>\
- <circle cx="115.5" cy="150" r="35" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="20" y="100" width="50%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml">\
- <span style="padding-left:65px; padding-top:100px; color:black; font-size:25px;">\
- {{host1}}</span>\
- </div>\
- </foreignObject>\
- <circle cx="155" cy="150" r="35" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="140" y="140" width="40%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml" style="font-size:40px">\
- <span style="padding-left:15px; color:black; font-size:25px;">\
- {{host2}}</span>\
- </div>\
- </foreignObject>\
- </svg>',
- /* 3 hosts in mode */
- '<svg xmlns="http://www.w3.org/2000/svg" width="300" height="235" opacity="1">\
- <circle cx="150" cy="150" r="80" stroke-width="5" stroke="#153345" fill="#FFFFFF" opacity="1"/>\
- <circle cx="150" cy="110" r="32" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="85" y="90" width="40%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml" >\
- <span style="padding-left:50px; color:black; font-size:25px;">\
- {{host1}}</span>\
- </div>\
- </foreignObject>\
- <circle cx="110" cy="170" r="32" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="45" y="160" width="40%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml">\
- <span style="padding-left:50px; color:black; font-size:25px;">\
- {{host2}}</span>\
- </div>\
- </foreignObject>\
- <circle cx="190" cy="170" r="32" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="130" y="150" width="40%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml">\
- <span style="padding-left:50px; color:black; font-size:25px;">\ {{host3}}</span>\
- </div>\
- </foreignObject>\
- </svg>' ,
- /* 4 hosts in mode */
- '<svg xmlns="http://www.w3.org/2000/svg" width="300" height="235" opacity="1">' +
- '<circle cx="130" cy="140" r="80" stroke-width="5" stroke="#000000" fill="#FFFFFF" opacity="1"/>\
- <circle cx="100" cy="110" r="30" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="20" y="100" width="40%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml">\
- <span style="padding-left:65px; padding-top:100px; color:black; font-size:25px;">\
- {{host1}}</span>\
- </div>\
- </foreignObject>\
- <circle cx="100" cy="170" r="30" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="20" y="140" width="40%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml" style="font-size:40px">\
- <span style="padding-left:15px; color:black; font-size:25px;">\
- {{host3}}</span>\
- </div>\
- </foreignObject>\
- <circle cx="160" cy="110" r="30" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="150" y="80" width="40%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml" style="font-size:40px">\
- <span style="padding-left:15px; color:black; font-size:25px;">\
- {{host2}}</span>\
- </div>\
- </foreignObject>\
- <circle cx="160" cy="170" r="30" stroke-width="2" stroke="red" fill="#FFFFFF"></circle>\
- <foreignObject x="150" y="140" width="40%" height="20%">\
- <div xmlns="http://www.w3.org/1999/xhtml" style="font-size:40px">\
- <span style="padding-left:15px; color:black; font-size:25px;">\
- {{host4}}</span>\
- </div>\
- </foreignObject>\
- </svg>',
- /* more than 4 hosts in mode */
- '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="235" opacity="1">' +
- '<circle cx="100" cy="100" r="95" stroke-width="2" stroke="#000000" fill="#FFFFFF" opacity="1"/>'+
- '<rect x="40" y="38" width="30%" height="30%" stroke-width="2" stroke="#000000" fill="#FFFFFF"></rect>' +
- '<foreignObject x="15" y="55" width="40%" height="20%">' +
- '<div xmlns="http://www.w3.org/1999/xhtml" >' +
- '<span style="padding-left:40px;color:black; font-size:20px;">' +
- '{{host1}}</span>' +
- '</div>' +
- '</foreignObject>' +
- '<rect x="40" y="108" width="30%" height="30%" stroke-width="2" stroke="#000000" fill="#FFFFFF"></rect>' +
- '<foreignObject x="15" y="155" width="40%" height="20%">' +
- '<div xmlns="http://www.w3.org/1999/xhtml">' +
- '<span style="padding-left:40px;color:black; font-size:20px;">' +
- '{{host2}}</span>' +
- '</div>' +
- '</foreignObject>' +
- '<rect x="108" y="38" width="30%" height="30%" stroke-width="2" stroke="#000000" fill="#FFFFFF"></rect>' +
- '<foreignObject x="105" y="55" width="40%" height="20%">' +
- '<div xmlns="http://www.w3.org/1999/xhtml">' +
- '<span style="padding-left:20px; color:black; font-size:20px;">' +
- '{{host3}}</span>' +
- '</div>' +
- '</foreignObject>' +
- '<rect x="108" y="108" width="30%" height="30%" stroke-width="0" stroke="#000000" fill="#FFFFFF"></rect>' +
- '<foreignObject x="105" y="155" width="40%" height="20%">' +
- '<div xmlns="http://www.w3.org/1999/xhtml">' +
- '<span style="padding-left:20px; color:black; font-size:20px;">' +
- '...</span>' +
- '</div>' +
- '</foreignObject>' +
- '</svg>'];
-//function
- function calculatePos(n){
- var res = new Array();
- if(n <= 0)return res;
- var start;
- var offset = 2 * Math.PI / n;
- if(n % 2 == 1){
- start = Math.PI / 2;
- }else{
- start = Math.PI / 2 + Math.PI / n;
- }
- res.push(start);
- for(var i = 1; i < n; i++){
- start += offset;
- res.push(start);
- }
- return res;
- }
-
-
-
-
+++ /dev/null
-/// <reference path="_references.js" />\r
- function setCookie(name,value,Days) \r
-{ \r
- if(!Days) Days = 3; \r
- var exp = new Date(); \r
- exp.setTime(exp.getTime() + Days*24*60*60*1000); \r
- document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+';path=/'; \r
-} \r
-function getCookie(name) \r
-{ \r
- var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");\r
- \r
- if(arr=document.cookie.match(reg)) \r
- return unescape(arr[2]); \r
- else \r
- return null; \r
-} \r
-jQuery.noConflict();\r
-jQuery(document).ready(function ($) {\r
- //localStorage.clear();\r
- //show the tab\r
- $(".tabs").tabs();\r
- \r
- jQuery('a[href="#/nemo"]').click(function(){\r
- jQuery("#page_logo").attr("src","src/app/nemo/images/logo_nemo.png").attr("ng-src","src/app/nemo/images/logo_nemo.png");\r
- })\r
- jQuery('a[href="#/nemo"]').click();\r
-});\r
-\r
-\r
+++ /dev/null
-var IntentInfos='';\r
-\r
-function getIntentInfos(){\r
- var userData=null;\r
- jQuery.ajax({\r
- url: "/restconf/config/nemo-intent:users/",\r
- type: "GET",\r
- async: false,\r
- dataType: "json",\r
- success: function(data) {\r
- console.log(data);\r
- IntentInfos=data;\r
- userData=data;\r
- },\r
- error: function(data) {\r
- console.log(data);\r
- console.log('Get IntentInfo Error!');\r
- // alert('Get IntentInfo Error!');\r
- }\r
- });\r
- return userData;\r
- \r
- }\r
-\r
- function getIntentDatas(){\r
- var Datas=getIntentInfos();\r
- if(!Datas){\r
- Datas=userinfo;\r
- }\r
- IntentInfos=Datas;\r
- //return virtualDatas;\r
- }\r
-\r
-getIntentInfos();\r
-// getIntentDatas();\r
- function getIntentInfoById(user_id,Data){\r
- //console.log(1);\r
- if(!Data) Data=IntentInfos;\r
- if(!Data) return;\r
- if(typeof(Data)=='string'){\r
- var user_json = JSON.parse(Data);\r
- }\r
- else\r
- {\r
- var user_json = Data;\r
- }\r
-\r
- console.log(user_json);\r
- var user_info = user_json['users']['user'];\r
- for(var item in user_info){\r
- if(user_id==user_info[item]['user-id']){\r
- return user_info[item];\r
- }\r
- }\r
- }\r
-\r
- function getIntentInfoByName(user_name,Data){\r
- console.log(Data);\r
- if(typeof(Data)=='string'){\r
- var user_json = JSON.parse(Data);\r
- }\r
- else\r
- {\r
- var user_json = Data;\r
- }\r
- // console.log(user_json);\r
- var user_info = user_json['users']['user'];\r
- for(var item in user_info){\r
- if(user_name==user_info[item]['user-name']){\r
- return user_info[item];\r
- }\r
- }\r
- }\r
-\r
-\r
-\r
- function lead_policy(src_group, dest_group, flow_count_temp, color, id, chain_name, src_name, dest_name) {\r
- var cir_r = parseInt(jQuery("#" + src_group + " circle:eq(0)").attr("r"));\r
-\r
- //get circle cx cy\r
- src_cx = parseInt(jQuery("#" + src_group + " circle:eq(0)").attr("cx"));\r
- src_cy = parseInt(jQuery("#" + src_group + " circle:eq(0)").attr("cy"));\r
- dest_cx = parseInt(jQuery("#" + dest_group + " circle:eq(0)").attr("cx"));\r
- dest_cy = parseInt(jQuery("#" + dest_group + " circle:eq(0)").attr("cy"));\r
- console.log(src_cx + " " + src_cy + " " + dest_cx + " " + dest_cy);\r
-\r
- //calculate deg\r
- var tri_h = dest_cx - src_cx;\r
- var tri_l = src_cy - dest_cy;\r
- var tri_s = Math.sqrt(tri_l * tri_l + tri_h * tri_h);\r
- var deg = Math.asin(tri_l / tri_s);\r
- console.log(tri_h + " " + tri_l + " " + tri_s);\r
- //alert(deg);\r
- console.log(deg);\r
-\r
-\r
- //calculate offset\r
- var offset = ((20 + (15 * parseInt(flow_count_temp))) / 180) * Math.PI;\r
- console.log("temp: " + flow_count_temp + " offset: " + offset);\r
-\r
- //calculate path possition\r
- var path_src_x, path_src_y, path_dest_x, path_dest_y, mid_x, mid_y, b_x, b_y;\r
- if (tri_h >= 0) {\r
- mid_x = src_cx + tri_h / 2;\r
- mid_y = src_cy - tri_l / 2;\r
- path_src_x = src_cx + cir_r * (Math.cos(offset + deg));\r
- path_src_y = src_cy - cir_r * (Math.sin(offset + deg));\r
- path_dest_x = dest_cx - (cir_r + 14) * (Math.cos(offset - deg));\r
- path_dest_y = dest_cy - (cir_r + 14) * (Math.sin(offset - deg));\r
- if (tri_l >= 0) {\r
- b_x = mid_x - (80 + 30 * parseInt(flow_count_temp)) * Math.abs(Math.sin(deg));;\r
- b_y = mid_y - (80 + 30 * parseInt(flow_count_temp)) * Math.abs(Math.cos(deg));\r
- } else {\r
- b_x = mid_x + (80 + 30 * parseInt(flow_count_temp)) * Math.abs(Math.sin(deg));\r
- b_y = mid_y - (80 + 30 * parseInt(flow_count_temp)) * Math.abs(Math.cos(deg));\r
- }\r
-\r
- } else {\r
- mid_x = src_cx + tri_h / 2;\r
- mid_y = src_cy - tri_l / 2;\r
- path_src_x = src_cx - cir_r * (Math.cos(offset - deg));\r
- path_src_y = src_cy + cir_r * (Math.sin(offset - deg));\r
- path_dest_x = dest_cx + (cir_r + 14) * (Math.cos(-offset - deg));\r
- path_dest_y = dest_cy - (cir_r + 14) * (Math.sin(-offset - deg));\r
- if (tri_l >= 0) {\r
- b_x = mid_x - (80 + 30 * parseInt(flow_count_temp)) * Math.abs(Math.sin(deg));\r
- b_y = mid_y + (80 + 30 * parseInt(flow_count_temp)) * Math.abs(Math.cos(deg));\r
- } else {\r
- b_x = mid_x + (80 + 30 * parseInt(flow_count_temp)) * Math.abs(Math.sin(deg));\r
- b_y = mid_y + (80 + 30 * parseInt(flow_count_temp)) * Math.abs(Math.cos(deg));\r
- }\r
-\r
- }\r
- //path title\r
- var path_title = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r
-\r
-\r
-\r
- //create path\r
- var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r
- var path_main = jQuery(path).attr({\r
- id: id,\r
- node_start: src_name,\r
- node_end: dest_name,\r
- type: "flow",\r
- sx: path_src_x,\r
- sy: path_src_y,\r
- mx: b_x,\r
- my: b_y,\r
- ex: path_dest_x,\r
- ey: path_dest_y,\r
- count: flow_count_temp,\r
- via: chain_name,\r
- d: 'M' + path_src_x + " " + path_src_y + ' Q' + b_x + ' ' + b_y + ' ' + path_dest_x + ' ' + path_dest_y,\r
- 'stroke': color,\r
- 'stroke-width': 3,\r
- fill: "none",\r
- 'stroke-dasharray': "6,6",\r
- 'marker-end': "url(#idArrow2)",\r
- 'marker-mid': "url(#idtext2)"\r
- });\r
- jQuery('#service_svg2').prepend(path_main);\r
-\r
- }\r
-\r
- function get_path_color() {\r
- while (1) {\r
- var num1 = Math.floor(Math.random() * 256);\r
- if (num1 > 220)\r
- continue;\r
- return num1.toString();\r
- }\r
- }\r
-\r
- function flow_get_end_name(src_ip, dest_ip) {\r
- // console.log(src_ip);\r
- // console.log(dest_ip);\r
- var host_name = ['', ''];\r
- if (typeof(phy_host_ip[src_ip]) != "undefined")\r
- host_name[0] = phy_host_ip[src_ip];\r
- else {\r
- for (var find_ip_cursor = 0; find_ip_cursor < jQuery("#service_svg2 g").length; find_ip_cursor++) {\r
- if (jQuery("#service_svg2 g:eq(" + find_ip_cursor + ")").attr("ip-prefix") == src_ip) {\r
- host_name[0] = jQuery("#service_svg2 g:eq(" + find_ip_cursor + ")").attr("id");\r
- }\r
-\r
- }\r
- }\r
- if (typeof(phy_host_ip[dest_ip]) != "undefined")\r
- host_name[1] = phy_host_ip[dest_ip];\r
- else {\r
- for (var find_ip_cursor = 0; find_ip_cursor < jQuery("#service_svg2 g").length; find_ip_cursor++) {\r
- if (jQuery("#service_svg2 g:eq(" + find_ip_cursor + ")").attr("ip-prefix") == dest_ip) {\r
- host_name[1] = jQuery("#service_svg2 g:eq(" + find_ip_cursor + ")").attr("id");\r
- }\r
-\r
- }\r
- }\r
- console.log(host_name[0] + " " + host_name[1]);\r
- return host_name;\r
-\r
-\r
- }\r
-\r
- function flow_get_group(src_ip, dest_ip) {\r
- var src_host_name = flow_get_end_name(src_ip, dest_ip)[0];\r
- var dest_host_name = flow_get_end_name(src_ip, dest_ip)[1];\r
- console.log(src_host_name);\r
- console.log(dest_host_name);\r
- var group_node = ['', ''];\r
- for (var i = 0; i < jQuery("#service_svg2 g").length; i++) {\r
- host_list = jQuery("#service_svg2 g:eq(" + i + ")").attr("sub").split(",");\r
- console.log(host_list);\r
- if (host_list[0] == '') {\r
- continue;\r
- }\r
- for (var j = 0; j < host_list.length; j++) {\r
- if (host_list[j] == src_host_name) {\r
- group_node[0] = jQuery("#service_svg2 g:eq(" + i + ")").attr("id");\r
- }\r
- if (host_list[j] == dest_host_name) {\r
- group_node[1] = jQuery("#service_svg2 g:eq(" + i + ")").attr("id");\r
- }\r
- }\r
- if (group_node[0] != '' && group_node[1] != '')\r
- break;\r
- }\r
- console.log("node: " + group_node[0] + " " + group_node[1]);\r
- return group_node;\r
- }\r
-\r
- function draw_flow_data(src_ip, dest_ip, flow_name,src_node,dest_node) {\r
- if(!src_ip && !dest_ip){\r
- var src_group = intentNodesArray[src_node];\r
- var dest_group = intentNodesArray[dest_node];\r
- }\r
- else{\r
- var src_group = flow_get_group(src_ip, dest_ip)[0];\r
- var dest_group = flow_get_group(src_ip, dest_ip)[1];\r
- }\r
-\r
- \r
- console.log(src_group);\r
- console.log(dest_group);\r
- //get flow count\r
- var flow_count_temp = 0;\r
- while (1) {\r
- var end_flag = 0;\r
- for (var find_count = 0; find_count < jQuery("#service_svg2 path").length; find_count++) {\r
- if (jQuery("#service_svg2 path:eq(" + find_count + ")").attr("type") != "flow")\r
- continue;\r
- if (jQuery("#service_svg2 path:eq(" + find_count + ")").attr("node_start") == src_group && jQuery("#service_svg2 path:eq(" + find_count + ")").attr("node_end") == dest_group) {\r
- if (flow_count_temp == jQuery("#service_svg2 path:eq(" + find_count + ")").attr("count")) {\r
- end_flag = 1;\r
- flow_count_temp++;\r
- break;\r
- }\r
- }\r
- }\r
- if (end_flag != 1)\r
- break;\r
- }\r
-\r
-\r
-\r
- //get Radio\r
- var cir_r = parseInt(jQuery("[id='" + src_group + "'] circle:eq(0)").attr("r"));\r
-\r
-\r
- //get circle cx cy\r
- src_cx = parseInt(jQuery("[id='" + src_group + "'] circle:eq(0)").attr("cx"));\r
- src_cy = parseInt(jQuery("[id='" + src_group + "'] circle:eq(0)").attr("cy"));\r
- dest_cx = parseInt(jQuery("[id='" + dest_group + "'] circle:eq(0)").attr("cx"));\r
- dest_cy = parseInt(jQuery("[id='" + dest_group + "'] circle:eq(0)").attr("cy"));\r
- console.log(src_cx + " " + src_cy + " " + dest_cx + " " + dest_cy);\r
-\r
- //calculate deg\r
- var tri_h = dest_cx - src_cx;\r
- var tri_l = src_cy - dest_cy;\r
- var tri_s = Math.sqrt(tri_l * tri_l + tri_h * tri_h);\r
- var deg = Math.asin(tri_l / tri_s);\r
- console.log(tri_h + " " + tri_l + " " + tri_s);\r
- //alert(deg);\r
- console.log(deg);\r
-\r
-\r
- //calculate offset\r
- var offset = ((20 + (15 * flow_count_temp)) / 180) * Math.PI;\r
- console.log("offset: " + offset);\r
-\r
- //calculate path possition\r
- var path_src_x, path_src_y, path_dest_x, path_dest_y, mid_x, mid_y, b_x, b_y;\r
- if (tri_h >= 0) {\r
- mid_x = src_cx + tri_h / 2;\r
- mid_y = src_cy - tri_l / 2;\r
- path_src_x = src_cx + cir_r * (Math.cos(offset + deg));\r
- path_src_y = src_cy - cir_r * (Math.sin(offset + deg));\r
- path_dest_x = dest_cx - (cir_r + 14) * (Math.cos(offset - deg));\r
- path_dest_y = dest_cy - (cir_r + 14) * (Math.sin(offset - deg));\r
- if (tri_l >= 0) {\r
- b_x = mid_x - (80 + 30 * flow_count_temp) * Math.abs(Math.sin(deg));;\r
- b_y = mid_y - (80 + 30 * flow_count_temp) * Math.abs(Math.cos(deg));\r
- } else {\r
- b_x = mid_x + (80 + 30 * flow_count_temp) * Math.abs(Math.sin(deg));\r
- b_y = mid_y - (80 + 30 * flow_count_temp) * Math.abs(Math.cos(deg));\r
- }\r
-\r
- } else {\r
- mid_x = src_cx + tri_h / 2;\r
- mid_y = src_cy - tri_l / 2;\r
- path_src_x = src_cx - cir_r * (Math.cos(offset - deg));\r
- path_src_y = src_cy + cir_r * (Math.sin(offset - deg));\r
- path_dest_x = dest_cx + (cir_r + 14) * (Math.cos(-offset - deg));\r
- path_dest_y = dest_cy - (cir_r + 14) * (Math.sin(-offset - deg));\r
- if (tri_l >= 0) {\r
- b_x = mid_x - (80 + 30 * flow_count_temp) * Math.abs(Math.sin(deg));\r
- b_y = mid_y + (80 + 30 * flow_count_temp) * Math.abs(Math.cos(deg));\r
- } else {\r
- b_x = mid_x + (80 + 30 * flow_count_temp) * Math.abs(Math.sin(deg));\r
- b_y = mid_y + (80 + 30 * flow_count_temp) * Math.abs(Math.cos(deg));\r
- }\r
-\r
- }\r
- //path title\r
- var path_title = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r
-\r
-\r
-\r
- //create path\r
- var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r
- var path_main = jQuery(path).attr({\r
- id: flow_name,\r
- node_start: src_group,\r
- node_end: dest_group,\r
- type: "flow",\r
- sx: path_src_x,\r
- sy: path_src_y,\r
- mx: b_x,\r
- my: b_y,\r
- ex: path_dest_x,\r
- ey: path_dest_y,\r
- via: "none",\r
- count: flow_count_temp,\r
- d: 'M' + path_src_x + " " + path_src_y + ' Q' + b_x + ' ' + b_y + ' ' + path_dest_x + ' ' + path_dest_y,\r
- 'stroke': "rgb(" + get_path_color() + "," + get_path_color() + "," + get_path_color() + ")",\r
- 'stroke-width': 3,\r
- fill: "none",\r
- 'stroke-dasharray': "6,6",\r
- 'marker-end': "url(#idArrow2)",\r
- 'marker-mid': "url(#idtext2)"\r
- });\r
- if (ne_flag == 0)\r
- jQuery(path).attr("stroke", "rgb(" + get_path_color() + "," + get_path_color() + "," + get_path_color() + ")");\r
- else if (ne_flag == 1)\r
- jQuery(path).attr("stroke", old_color);\r
- jQuery('#service_svg2').prepend(path_main);\r
-\r
-\r
- }\r
-\r
- function draw_connection_data(conn_name, node_name_1, node_name_2, bandwidth) {\r
- // console.log(conn_name);\r
- // console.log(node_name_1);\r
- // console.log(node_name_2);\r
- // console.log(bandwidth);\r
- if (conn_name != null && typeof(conn_name) != "undefined")\r
- jQuery("#" + conn_name).remove();\r
- try {\r
- var node_cx_1 = jQuery("[id='" + node_name_1 + "_group']").attr("cx");\r
- var node_cy_1 = jQuery("[id='" + node_name_1 + "_group']").attr("cy");\r
- var node_cx_2 = jQuery("[id='" + node_name_2 + "_group']").attr("cx");\r
- var node_cy_2 = jQuery("[id='" + node_name_2 + "_group']").attr("cy");\r
- // console.log(node_cx_1);\r
- // console.log(node_cy_1);\r
- // console.log(node_cx_2);\r
- // console.log(node_cy_2);\r
- //var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');\r
- var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');\r
- var path_main = jQuery(path).attr({\r
- id: conn_name,\r
- node_start: node_name_1,\r
- node_end: node_name_2,\r
- type: "connection",\r
- d: 'M' + node_cx_1 + " " + node_cy_1 + ' L' + node_cx_2 + ' ' + node_cy_2,\r
- 'stroke': "black",\r
- 'stroke-width': parseInt(bandwidth),\r
- fill: "black"\r
- });\r
- jQuery('#service_svg2').prepend(path_main);\r
- } catch (err) {\r
- alert(err);\r
- }\r
- }\r
-\r
- function redraw_node_possition_data() {\r
- node_count = jQuery("#service_svg2 g").length;\r
- if (node_count == 1) {\r
- var x = 550;\r
- var y = 450;\r
- dis_x = x - jQuery("#service_svg2 g:eq(0) circle:eq(0)").attr("cx");\r
- dis_y = y - jQuery("#service_svg2 g:eq(0) circle:eq(0)").attr("cy");\r
- jQuery("#service_svg2 g:eq(0) circle:eq(0)").attr("cx", x);\r
- jQuery("#service_svg2 g:eq(0) circle:eq(0)").attr("cy", y);\r
- for (var j = 0; j < jQuery("#service_svg2 g:eq(0) rect").length; j++) {\r
- var last_x = parseInt(jQuery("#service_svg2 g:eq(0) rect:eq(" + j + ")").attr("x"));\r
- var last_y = parseInt(jQuery("#service_svg2 g:eq(0) rect:eq(" + j + ")").attr("y"));\r
- jQuery("#service_svg2 g:eq(0) rect:eq(" + j + ")").attr("x", last_x + dis_x);\r
- jQuery("#service_svg2 g:eq(0) rect:eq(" + j + ")").attr("y", last_y + dis_y);\r
- }\r
- for (var j = 0; j < jQuery("#service_svg2 g:eq(0) text").length; j++) {\r
- jQuery("#service_svg2 g:eq(0) text:eq(" + j + ")").attr("x", parseInt(jQuery("#service_svg2 g:eq(0) text:eq(" + j + ")").attr("x")) + dis_x);\r
- jQuery("#service_svg2 g:eq(0) text:eq(" + j + ")").attr("y", parseInt(jQuery("#service_svg2 g:eq(0) text:eq(" + j + ")").attr("y")) + dis_y);\r
- }\r
-\r
- return;\r
-\r
- }\r
- var res = calculatePos(node_count);\r
- var r = 300;\r
- for (var i = 0; i < node_count; i++) {\r
- var deg = res[i];\r
- var x = 550 + Math.cos(deg) * r;\r
- var y = 450 - Math.sin(deg) * r;\r
- if(node_count%2==1)\r
- var y = 500 - Math.sin(deg) * r;\r
- dis_x = x - parseInt(jQuery("#service_svg2 g:eq(" + i + ") circle:eq(0)").attr("cx"));\r
- dis_y = y - parseInt(jQuery("#service_svg2 g:eq(" + i + ") circle:eq(0)").attr("cy"));\r
- jQuery("#service_svg2 g:eq(" + i + ") circle:eq(0)").attr("cx", x);\r
- jQuery("#service_svg2 g:eq(" + i + ") circle:eq(0)").attr("cy", y);\r
- for (var j = 0; j < jQuery("#service_svg2 g:eq(" + i + ") rect").length; j++) {\r
- jQuery("#service_svg2 g:eq(" + i + ") rect:eq(" + j + ")").attr("x", parseInt(jQuery("#service_svg2 g:eq(" + i + ") rect:eq(" + j + ")").attr("x")) + dis_x);\r
- jQuery("#service_svg2 g:eq(" + i + ") rect:eq(" + j + ")").attr("y", parseInt(jQuery("#service_svg2 g:eq(" + i + ") rect:eq(" + j + ")").attr("y")) + dis_y);\r
- }\r
- for (var j = 0; j < jQuery("#service_svg2 g:eq(" + i + ") text").length; j++) {\r
- jQuery("#service_svg2 g:eq(" + i + ") text:eq(" + j + ")").attr("x", parseInt(jQuery("#service_svg2 g:eq(" + i + ") text:eq(" + j + ")").attr("x")) + dis_x);\r
- jQuery("#service_svg2 g:eq(" + i + ") text:eq(" + j + ")").attr("y", parseInt(jQuery("#service_svg2 g:eq(" + i + ") text:eq(" + j + ")").attr("y")) + dis_y);\r
- }\r
-\r
- }\r
-\r
- }\r
-\r
- function draw_group_data(node_name, node_number, node_list, node_type, ip) {\r
- // alert("type:"+node_type);\r
- var circle_x = 550;\r
- var circle_y = 450;\r
- if (node_number == 0) {\r
- var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');\r
- var circle_main = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\r
- var inCircle1_main = jQuery(circle_main).attr({\r
- id: node_name + "_group",\r
- cx: circle_x,\r
- cy: circle_y,\r
- r: 90,\r
- 'stroke': "black",\r
- 'stroke-width': 3,\r
- fill: "white"\r
- });\r
- var text1 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text1_main = jQuery(text1).attr({\r
- id: node_name + "_title1",\r
- x: circle_x,\r
- y: circle_y - 8,\r
- fill: "black",\r
- 'text-anchor': 'middle',\r
- "stroke": "black",\r
- "stroke-width": 0.8\r
-\r
- });\r
- jQuery(text1).text(node_name);\r
- var text2 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text2_main = jQuery(text2).attr({\r
- id: node_name + "_title2",\r
- x: circle_x,\r
- y: circle_y + 0 - 100,\r
- fill: " ",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text2).text(node_type);\r
- var g_main = jQuery(g).append(inCircle1_main);\r
- jQuery(g).append(text1_main);\r
- jQuery(g).append(text2_main);\r
- jQuery(g).attr("id", node_name);\r
- jQuery(g).attr("type", node_type);\r
- if (node_type != "ext-group")\r
- jQuery(g).attr("sub", "");\r
- else {\r
- jQuery(g).attr("sub", node_name);\r
- jQuery(g).attr("ip-prefix", ip);\r
- //ext_ip[jQuery("#ext-group_ip-prefix").val().trim()] = jQuery("#node_name").val().trim();\r
-\r
- }\r
- if (node_type.indexOf("chain") > -1)\r
- jQuery(g).attr("flow", 0);\r
- console.log(g_main);\r
- jQuery('#service_svg2').append(g_main);\r
- console.log(jQuery('#service_svg2').html())\r
- } else if (node_number == 1) {\r
- var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');\r
- var circle_main = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\r
- var inCircle1_main = jQuery(circle_main).attr({\r
- id: node_name + "_group",\r
- cx: circle_x,\r
- cy: circle_y,\r
- r: 90,\r
- 'stroke': "black",\r
- 'stroke-width': 3,\r
- fill: "white"\r
- });\r
- var host1 = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\r
- var host1_main = jQuery(host1).attr({\r
- id: node_list[0],\r
- x: circle_x - 57,\r
- y: circle_y - 25,\r
- width: 114,\r
- height: 50,\r
- 'stroke': "black",\r
- 'stroke-width': 1,\r
- fill: "white"\r
- });\r
- var text1 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text1_main = jQuery(text1).attr({\r
- id: node_name + "_title1",\r
- x: circle_x,\r
- y: circle_y - 48,\r
- fill: "black",\r
- 'text-anchor': 'middle',\r
- "stroke": "black",\r
- "stroke-width": 0.8\r
- });\r
- jQuery(text1).text(node_name);\r
- var text2 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text2_main = jQuery(text2).attr({\r
- id: node_name + "_title2",\r
- x: circle_x,\r
- y: (circle_y - 0 - 100),\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text2).text(node_type);\r
- var text3 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text3_main = jQuery(text3).attr({\r
- id: node_list[0] + '_text',\r
- x: circle_x,\r
- y: circle_y + 5,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text3).text(node_list[0]);\r
- var g_main = jQuery(g).append(inCircle1_main);\r
- jQuery(g).append(host1_main);\r
- jQuery(g).append(text1_main);\r
- jQuery(g).append(text2_main);\r
- jQuery(g).append(text3_main);\r
- jQuery(g).attr("id", node_name);\r
- jQuery(g).attr("type", node_type);\r
- jQuery(g).attr("sub", node_name,node_list[0]);\r
- if (node_type.indexOf("chain") > -1)\r
- jQuery(g).attr("flow", 0);\r
- if(ip) jQuery(g).attr("ip-prefix", ip);\r
- jQuery('#service_svg2').append(g_main);\r
- } else if (node_number == 2) {\r
- var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');\r
- var circle_main = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\r
- var inCircle1_main = jQuery(circle_main).attr({\r
- id: node_name + "_group",\r
- cx: circle_x,\r
- cy: circle_y,\r
- r: 90,\r
- 'stroke': "black",\r
- 'stroke-width': 3,\r
- fill: "white"\r
- });\r
- var host1 = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\r
- var host1_main = jQuery(host1).attr({\r
- id: node_list[0],\r
- x: circle_x - 55,\r
- y: circle_y - 25,\r
- width: 110,\r
- height: 34,\r
- 'stroke': "black",\r
- 'stroke-width': 1,\r
- fill: "white"\r
- });\r
- var host2 = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\r
- var host2_main = jQuery(host2).attr({\r
- id: node_list[1],\r
- x: circle_x - 55,\r
- y: circle_y + 18,\r
- width: 110,\r
- height: 34,\r
- 'stroke': "black",\r
- 'stroke-width': 1,\r
- fill: "white"\r
- });\r
- var text1 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text1_main = jQuery(text1).attr({\r
- id: node_name + "_title1",\r
- x: circle_x,\r
- y: circle_y - 48,\r
- fill: "black",\r
- 'text-anchor': 'middle',\r
- "stroke": "black",\r
- "stroke-width": 0.8\r
- });\r
- jQuery(text1).text(node_name);\r
- var text2 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text2_main = jQuery(text2).attr({\r
- id: node_name + "_title2",\r
- x: circle_x,\r
- y: circle_y - 0 - 100,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text2).text(node_type);\r
- var text3 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text3_main = jQuery(text3).attr({\r
- id: node_list[0] + "_text",\r
- x: circle_x,\r
- y: circle_y - 5,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text3).text(node_list[0]);\r
- var text4 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text4_main = jQuery(text4).attr({\r
- id: node_list[1] + "_text",\r
- x: circle_x,\r
- y: circle_y + 40,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text4).text(node_list[1]);\r
- var g_main = jQuery(g).append(inCircle1_main);\r
- jQuery(g).append(host1_main);\r
- jQuery(g).append(host2_main);\r
- jQuery(g).append(text1_main);\r
- jQuery(g).append(text2_main);\r
- jQuery(g).append(text3_main);\r
- jQuery(g).append(text4_main);\r
- jQuery(g).attr("id", node_name);\r
- jQuery(g).attr("type", node_type);\r
- jQuery(g).attr("sub", node_name,node_list[0] + "," + node_list[1]);\r
- if (node_type.indexOf("chain") > -1)\r
- jQuery(g).attr("flow", 0);\r
- if(ip) jQuery(g).attr("ip-prefix", ip);\r
- jQuery('#service_svg2').append(g);\r
-\r
- } else if (node_number == 3) {\r
- var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');\r
- var circle_main = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\r
- var inCircle1_main = jQuery(circle_main).attr({\r
- id: node_name + "_group",\r
- cx: circle_x,\r
- cy: circle_y,\r
- r: 90,\r
- 'stroke': "black",\r
- 'stroke-width': 3,\r
- fill: "white"\r
- });\r
- var host1 = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\r
- var host1_main = jQuery(host1).attr({\r
- id: node_list[0],\r
- x: circle_x - 55,\r
- y: circle_y - 31,\r
- width: 110,\r
- height: 25,\r
- 'stroke': "black",\r
- 'stroke-width': 1,\r
- fill: "white"\r
- });\r
- var host2 = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\r
- var host2_main = jQuery(host2).attr({\r
- id: node_list[1],\r
- x: circle_x - 55,\r
- y: circle_y - 3,\r
- width: 110,\r
- height: 25,\r
- 'stroke': "black",\r
- 'stroke-width': 1,\r
- fill: "white"\r
- });\r
- var host3 = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\r
- var host3_main = jQuery(host3).attr({\r
- id: node_list[2],\r
- x: circle_x - 55,\r
- y: circle_y + 27,\r
- width: 110,\r
- height: 25,\r
- 'stroke': "black",\r
- 'stroke-width': 1,\r
- fill: "white"\r
- });\r
- var text1 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text1_main = jQuery(text1).attr({\r
- id: node_name + "_title1",\r
- x: circle_x,\r
- y: circle_y - 51,\r
- fill: "black",\r
- 'text-anchor': 'middle',\r
- "stroke": "black",\r
- "stroke-width": 0.8\r
- });\r
- jQuery(text1).text(node_name);\r
- var text2 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text2_main = jQuery(text2).attr({\r
- id: node_name + "_title2",\r
- x: circle_x,\r
- y: circle_y - 0 - 100,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text2).text(node_type);\r
- var text3 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text3_main = jQuery(text3).attr({\r
- id: node_list[0] + '_text',\r
- x: circle_x,\r
- y: circle_y - 13,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text3).text(node_list[0]);\r
- var text4 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text4_main = jQuery(text4).attr({\r
- id: node_list[1] + '_text',\r
- x: circle_x,\r
- y: circle_y + 15,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text4).text(node_list[1]);\r
- var text5 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text5_main = jQuery(text5).attr({\r
- id: node_list[2] + '_text',\r
- x: circle_x,\r
- y: circle_y + 45,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text5).text(node_list[2]);\r
- var g_main = jQuery(g).append(inCircle1_main);\r
- jQuery(g).append(host1_main);\r
- jQuery(g).append(host2_main);\r
- jQuery(g).append(host3_main);\r
- jQuery(g).append(text1_main);\r
- jQuery(g).append(text2_main);\r
- jQuery(g).append(text3_main);\r
- jQuery(g).append(text4_main);\r
- jQuery(g).append(text5_main);\r
- jQuery(g).attr("id", node_name);\r
- jQuery(g).attr("type", node_type);\r
- jQuery(g).attr("sub", node_name,node_list[0] + "," + node_list[1] + "," + node_list[2]);\r
- if (node_type.indexOf("chain") > -1)\r
- jQuery(g).attr("flow", 0);\r
- jQuery('#service_svg2').append(g);\r
- }\r
- else if(node_number >=4){\r
- var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');\r
- var circle_main = document.createElementNS('http://www.w3.org/2000/svg', 'circle');\r
- var inCircle1_main = jQuery(circle_main).attr({\r
- id: node_name + "_group",\r
- cx: circle_x,\r
- cy: circle_y,\r
- r: 90,\r
- 'stroke': "black",\r
- 'stroke-width': 3,\r
- fill: "white"\r
- });\r
- var host1 = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\r
- var host1_main = jQuery(host1).attr({\r
- id: node_list[0],\r
- x: circle_x - 55,\r
- y: circle_y - 31,\r
- width: 110,\r
- height: 25,\r
- 'stroke': "black",\r
- 'stroke-width': 1,\r
- fill: "white"\r
- });\r
- var host2 = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\r
- var host2_main = jQuery(host2).attr({\r
- id: node_list[1],\r
- x: circle_x - 55,\r
- y: circle_y - 3,\r
- width: 110,\r
- height: 25,\r
- 'stroke': "black",\r
- 'stroke-width': 1,\r
- fill: "white"\r
- });\r
- var host3 = document.createElementNS('http://www.w3.org/2000/svg', 'rect');\r
- var host3_main = jQuery(host3).attr({\r
- id: node_list[2],\r
- x: circle_x - 55,\r
- y: circle_y + 27,\r
- width: 110,\r
- height: 25,\r
- 'stroke': "black",\r
- 'stroke-width': 1,\r
- fill: "white"\r
- });\r
- var text1 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text1_main = jQuery(text1).attr({\r
- id: node_name + "_title1",\r
- x: circle_x,\r
- y: circle_y - 51,\r
- fill: "black",\r
- 'text-anchor': 'middle',\r
- "stroke": "black",\r
- "stroke-width": 0.8\r
- });\r
- jQuery(text1).text(node_name);\r
- var text2 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text2_main = jQuery(text2).attr({\r
- id: node_name + "_title2",\r
- x: circle_x,\r
- y: circle_y - 0 - 100,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text2).text(node_type);\r
- var text3 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text3_main = jQuery(text3).attr({\r
- id: node_list[0] + '_text',\r
- x: circle_x,\r
- y: circle_y - 13,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text3).text(node_list[0]);\r
- var text4 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text4_main = jQuery(text4).attr({\r
- id: node_list[1] + '_text',\r
- x: circle_x,\r
- y: circle_y + 15,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text4).text(node_list[1]);\r
- var text5 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text5_main = jQuery(text5).attr({\r
- id: node_list[2] + '_text',\r
- x: circle_x,\r
- y: circle_y + 45,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text5).text(node_list[2]);\r
- var text6 = document.createElementNS('http://www.w3.org/2000/svg', 'text');\r
- var text6_main = jQuery(text6).attr({\r
- id: node_list[2] + '_text',\r
- x: circle_x,\r
- y: circle_y + 43+25,\r
- fill: "black",\r
- 'text-anchor': 'middle'\r
- });\r
- jQuery(text6).text("........");\r
- var g_main = jQuery(g).append(inCircle1_main);\r
- jQuery(g).append(host1_main);\r
- jQuery(g).append(host2_main);\r
- jQuery(g).append(host3_main);\r
- jQuery(g).append(text1_main);\r
- jQuery(g).append(text2_main);\r
- jQuery(g).append(text3_main);\r
- jQuery(g).append(text4_main);\r
- jQuery(g).append(text5_main);\r
- jQuery(g).append(text6_main);\r
- jQuery(g).attr("id", node_name);\r
- jQuery(g).attr("type", node_type);\r
- jQuery(g).attr("sub", node_name,node_list[0] + "," + node_list[1] + "," + node_list[2]);\r
- if (node_type.indexOf("chain") > -1)\r
- jQuery(g).attr("flow", 0);\r
- jQuery('#service_svg2').append(g);\r
- }\r
- }\r
-\r
- var intentNodesArray=[];//node id--->node name\r
- function getUserNodes(data){\r
- var nodes=data["node"];\r
- for(var item in nodes){\r
- intentNodesArray[nodes[item]["node-id"]]=nodes[item]["node-name"];\r
- }\r
- }\r
- function analyjson_topo(user_data) {\r
- //jQuery("#service_svg2").show();\r
- //jQuery("#service_svg").hide();\r
- //jQuery("#graph").hide();\r
- //jQuery("#service_svg").empty();\r
- // var username = jQuery("#getUserName").val();\r
- //alert(username);\r
- var html_init = '<defs><marker id="idArrow2" viewBox="0 0 20 20" refX="0" refY="10" markerUnits="strokeWidth" markerWidth="6" markerHeight="15" orient="auto"><path d="M 0 0 L 20 10 L0 20 z"fill="purple"stroke="black"/> </marker>\\r
- <marker id="idtext2" viewBox="0 0 120 50" refX="0" refY="0" markerUnits="strokeWidth" markerWidth="20" markerHeight="20" orient="auto"><text style="font-family:sans-serif; font-size:14pt;" x="20" y="20">text</text></marker></defs>';\r
- jQuery("#service_svg2").html(html_init);\r
- //var topo_data;\r
- // jQuery.ajax({\r
- // url: "/restconf/config/nemo-intent:users/",\r
- // type: "GET",\r
- // async: false,\r
- // dataType: "json",\r
- // success: function(data) {\r
- // console.log(data);\r
- // topo_data = data;\r
- // },\r
- // error: function(data) {\r
- // console.log(data);\r
- // }\r
- // });\r
-\r
- //var name_data_list = topo_data["users"]["user"];\r
-\r
- //var user_json_data, user_data;\r
- // for (var i in name_data_list) {\r
- // if (name_data_list[i]["user-name"] == username) {\r
- // user_data = name_data_list[i];\r
- // user_json_data = name_data_list[i]["objects"];\r
- // break;\r
- // }\r
- // }\r
-\r
- var user_json_data = user_data['objects'];\r
- if (user_json_data == null)\r
- return;\r
- getUserNodes(user_json_data);\r
- console.log("intentNodesArray",intentNodesArray);\r
- //host\r
- var host_list = [];\r
- for (var host_cursor in user_json_data["node"]) {\r
- if (user_json_data["node"][host_cursor]["node-type"] != "host")\r
- continue;\r
- host_list[user_json_data["node"][host_cursor]["node-id"]] = user_json_data["node"][host_cursor]["node-name"];\r
-\r
- }\r
-\r
- //vas\r
- var vas_list = [];\r
- for (var vas_cursor in user_json_data["node"]) {\r
- // if (user_json_data["node"][vas_cursor]["node-type"] != "cache" && user_json_data["node"][vas_cursor]["node-type"] != "fw" && user_json_data["node"][vas_cursor]["node-type"] != "lb" )\r
- // continue;\r
-\r
- vas_list[user_json_data["node"][vas_cursor]["node-id"]] = user_json_data["node"][vas_cursor]["node-name"];\r
-\r
- }\r
- \r
-\r
- //group\r
- var node_list = [];\r
-\r
- //l2/l3-group\r
- for (var lgroup_cursor in user_json_data["node"]) {\r
- if (user_json_data["node"][lgroup_cursor]["node-type"] != "l2-group" && user_json_data["node"][lgroup_cursor]["node-type"] != "l3-group")\r
- continue;\r
- var sub_count = 0;\r
- var sub_list = [];\r
- for (var sub_cursor in user_json_data["node"][lgroup_cursor]["sub-node"]) {\r
- sub_list[sub_count] = host_list[user_json_data["node"][lgroup_cursor]["sub-node"][sub_cursor]["node-id"]];\r
- sub_count++;\r
- }\r
- var ip='';\r
- var myProperty=user_json_data["node"][lgroup_cursor]['property'];\r
- if(myProperty){\r
- for(var item in myProperty){\r
- if(myProperty[item]['property-name']=='ip-prefix'){\r
- ip=myProperty[item]['property-values']['string-value'][0]['value'];\r
- }\r
- }\r
- }\r
- draw_group_data(user_json_data["node"][lgroup_cursor]["node-name"], sub_list.length, sub_list, user_json_data["node"][lgroup_cursor]["node-type"], ip);\r
- redraw_node_possition_data();\r
- node_list[user_json_data["node"][lgroup_cursor]["node-id"]] = user_json_data["node"][lgroup_cursor]["node-name"];\r
- }\r
- //chain_group\r
- for (var cgroup_cursor in user_json_data["node"]) {\r
-\r
- if (user_json_data["node"][cgroup_cursor]["node-type"] != "chain-group")\r
- continue;\r
- //alert("chain");\r
- var sub_count = 0;\r
- var sub_list = [];\r
- for (var sub_cursor in user_json_data["node"][cgroup_cursor]["sub-node"]) {\r
- //alert(user_json_data["node"][cgroup_cursor]["sub-node"][sub_cursor]["node-id"]);\r
- sub_list[sub_count] = vas_list[user_json_data["node"][cgroup_cursor]["sub-node"][sub_cursor]["node-id"]];\r
- sub_count++;\r
- }\r
- //alert();\r
- draw_group_data(user_json_data["node"][cgroup_cursor]["node-name"], sub_list.length, sub_list, user_json_data["node"][cgroup_cursor]["node-type"], "");\r
- redraw_node_possition_data();\r
- node_list[user_json_data["node"][cgroup_cursor]["node-id"]] = user_json_data["node"][cgroup_cursor]["node-name"];\r
- }\r
- //ext-group\r
- for (var egroup_cursor in user_json_data["node"]) {\r
- if (user_json_data["node"][egroup_cursor]["node-type"] != "ext-group")\r
- continue;\r
- // alert("ext");\r
- var ip;\r
- for (var ip_cursor in user_json_data["node"][egroup_cursor]["property"]) {\r
- if (user_json_data["node"][egroup_cursor]["property"][ip_cursor]["property-name"] == "ip-prefix") {\r
- ip = user_json_data["node"][egroup_cursor]["property"][ip_cursor]["property-values"]["string-value"][0]["value"];\r
- }\r
- }\r
- draw_group_data(user_json_data["node"][egroup_cursor]["node-name"], 0, '', user_json_data["node"][egroup_cursor]["node-type"], ip);\r
- redraw_node_possition_data();\r
- node_list[user_json_data["node"][egroup_cursor]["node-id"]] = user_json_data["node"][egroup_cursor]["node-name"];\r
- }\r
- // console.log(node_list);\r
- //connection\r
- for (var conn_cursor in user_json_data["connection"]) {\r
- var start_name = node_list[user_json_data["connection"][conn_cursor]["end-node"][0]["node-id"]];\r
- var end_name = node_list[user_json_data["connection"][conn_cursor]["end-node"][1]["node-id"]];\r
- var bandwidth;\r
- if (user_json_data["connection"][conn_cursor]["property"] != null)\r
- bandwidth = user_json_data["connection"][conn_cursor]["property"][0]["property-values"]["int-value"][0]["value"];\r
- else\r
- bandwidth = 100;\r
- draw_connection_data(user_json_data["connection"][conn_cursor]["connection-name"], start_name, end_name, bandwidth / 100);\r
- }\r
-\r
- //flow\r
- if (user_json_data["flow"] != null) {\r
- var flow_list = [];\r
- for (var flow_cursor in user_json_data["flow"]) {\r
- var src_ip, dst_ip;\r
- for (var match_cursor in user_json_data["flow"][flow_cursor]["match-item"]) {\r
- if (user_json_data["flow"][flow_cursor]["match-item"][match_cursor]["match-item-name"] == "dst-ip") {\r
- dst_ip = user_json_data["flow"][flow_cursor]["match-item"][match_cursor]["match-item-value"]["string-value"];\r
- }\r
- if (user_json_data["flow"][flow_cursor]["match-item"][match_cursor]["match-item-name"] == "src-ip") {\r
- src_ip = user_json_data["flow"][flow_cursor]["match-item"][match_cursor]["match-item-value"]["string-value"];\r
- }\r
- }\r
- if(!user_json_data["flow"][flow_cursor]["property"]){\r
- draw_flow_data(src_ip, dst_ip, user_json_data["flow"][flow_cursor]["flow-name"]);\r
- }\r
- else{\r
- var src_node,dest_node;\r
- var property=user_json_data["flow"][flow_cursor]["property"];\r
- for(var item in property){\r
- if(property[item]["property-name"]=="src-node")\r
- src_node=property[item]["property-values"]["string-value"][0]["value"];\r
- if(property[item]["property-name"]=="dst-node")\r
- dest_node=property[item]["property-values"]["string-value"][0]["value"];\r
- }\r
- draw_flow_data(null, null, user_json_data["flow"][flow_cursor]["flow-name"],src_node,dest_node);\r
- }\r
- flow_list[user_json_data["flow"][flow_cursor]["flow-id"]] = user_json_data["flow"][flow_cursor]["flow-name"]\r
- }\r
-\r
- }\r
- //operation\r
- if (user_data["operations"] != null) {\r
- for (var operation_cursor in user_data["operations"]["operation"]) {\r
- var myTarget=user_data["operations"]["operation"][operation_cursor]["action"][0]['action-name'];\r
- if(myTarget!='go-through') continue;\r
- var flow_name = flow_list[user_data["operations"]["operation"][operation_cursor]["target-object"]];\r
- var chain_name = node_list[user_data["operations"]["operation"][operation_cursor]["action"][0]["parameter-values"]["string-value"][0]["value"]];\r
- var node_start = jQuery("[id='" + flow_name+"']").attr("node_start");\r
- var node_end = jQuery("[id='" + flow_name+"']").attr("node_end");\r
- var c1_flag = 0;\r
- var c2_flag = 0;\r
- for (var i = 0; i < jQuery("#service_svg2 path").length; i++) {\r
- if (jQuery("#service_svg2 path:eq(" + i + ")").attr("type") == "connection") {\r
- var node_name_old_1 = jQuery("#service_svg2 path:eq(" + i + ")").attr("node_start");\r
- var node_name_old_2 = jQuery("#service_svg2 path:eq(" + i + ")").attr("node_end");\r
- console.log("old:" + node_name_old_1 + " " + node_name_old_2);\r
- if (((node_start == node_name_old_1) && (chain_name == node_name_old_2)) || ((node_start == node_name_old_2) && (chain_name == node_name_old_1))) {\r
- c1_flag = 1;\r
- }\r
- }\r
- }\r
- for (var i = 0; i < jQuery("#service_svg2 path").length; i++) {\r
- if (jQuery("#service_svg2 path:eq(" + i + ")").attr("type") == "connection") {\r
- var node_name_old_1 = jQuery("#service_svg2 path:eq(" + i + ")").attr("node_start");\r
- var node_name_old_2 = jQuery("#service_svg2 path:eq(" + i + ")").attr("node_end");\r
- console.log("old:" + node_name_old_1 + " " + node_name_old_2);\r
- if (((node_end == node_name_old_1) && (chain_name == node_name_old_2)) || ((node_end == node_name_old_2) && (chain_name == node_name_old_1))) {\r
- c2_flag = 1;\r
- }\r
- }\r
- }\r
- if (c1_flag == 0 && c2_flag == 0) {\r
- alert("No connection!");\r
- return;\r
- }\r
- lead_policy(node_start, chain_name, parseInt(jQuery("#" + flow_name).attr("count")), jQuery("#" + flow_name).attr("stroke"), flow_name + "_1", chain_name, node_start, node_end)\r
- lead_policy(chain_name, node_end, parseInt(jQuery("#" + flow_name).attr("count")), jQuery("#" + flow_name).attr("stroke"), flow_name + "_2", chain_name, node_start, node_end)\r
- jQuery("#" + flow_name).remove();\r
- }\r
-\r
- }\r
- }\r
-\r
- //parse nemo language\r
- function parseNemoLan(userinfo) {\r
- console.log(userinfo);\r
- var userJsonString = JSON.stringify(userinfo);\r
- var userJson = JSON.parse(userJsonString);\r
- // console.log(userJson);\r
- var user_data = userinfo;\r
- //set host nodes connection and flow array array[id]-->name\r
- var host = [];\r
- var nodes = [];\r
- var connection = [];\r
- var flow = [];\r
- for (var i in user_data) {\r
- // console.log(i);\r
- if (i == 'objects') {\r
- for (var j in user_data['objects']) {\r
- // console.log(j);\r
- if (j == 'node') {\r
- for (var k in user_data[i][j]) {\r
- nodes[user_data[i][j][k]["node-id"]] = user_data[i][j][k]["node-name"];\r
- }\r
- } else if (j == 'connection') {\r
- for (var k in user_data[i][j]) {\r
- connection[user_data[i][j][k]["connection-id"]] = user_data[i][j][k]["connection-name"];\r
- }\r
- } else if (j == 'flow') {\r
- for (var k in user_data[i][j]) {\r
- flow[user_data[i][j][k]["flow-id"]] = user_data[i][j][k]["flow-name"];\r
- }\r
- }\r
- }\r
- } else if (i == 'operations') {\r
-\r
- }\r
- }\r
- console.log(nodes);\r
- console.log(connection);\r
- console.log(flow);\r
- //parse and show nemo language(node connection flow operation)\r
- for (var i in user_data["objects"]) {\r
- if (i == "node") {\r
- var nodeNemo = [];\r
- var node = user_data["objects"]['node'];\r
- for(var j in node){\r
- if(node[j]["node-type"]=="fw"||node[j]["node-type"]=="firewall"){\r
- node[j].order=1;\r
- }\r
- else if(node[j]["node-type"]=="cache"){\r
- node[j].order=1;\r
- }\r
- else if(node[j]["node-type"]=="lb"||node[j]["node-type"]=="loadblance"){\r
- node[j].order=1;\r
- }\r
- else if(node[j]["node-type"]=="host"||(node[j]["node-type"].indexOf("host")>=0)||node[j]["node-type"]=="dpi"){\r
- node[j].order=2;\r
- }\r
- else if(node[j]["node-type"]=="ext-group"){\r
- node[j].order=4;\r
- }\r
- else{\r
- node[j].order=3;\r
- }\r
- }\r
- console.log(node);\r
- node.sort(function(a,b){return a.order-b.order;});\r
- for (var j in node) {\r
- var nemo_str='';\r
- if(node[j]['node-type']=='host'||node[j]['node-type'].indexOf('host')>=0){\r
- nemo_str += "IMPORT Node " + node[j]['node-name'] + " Type " + node[j]['node-type'];\r
- }else{\r
- nemo_str += "CREATE Node " + node[j]['node-name'] + " Type " + node[j]['node-type'];\r
- } \r
- var sub_node = node[j]['sub-node'];\r
- if (sub_node && sub_node.length > 0) {\r
- nemo_str += ' Contain ';\r
- for (var k in sub_node) {\r
- nemo_str += nodes[sub_node[k]['node-id']] + ',';\r
- }\r
- nemo_str = nemo_str.substring(0, nemo_str.length - 1);\r
- }\r
- var property = node[j]['property'];\r
- if (property && property.length > 0) {\r
- nemo_str += ' Property ';\r
- for (var k in property) {\r
- nemo_str += property[k]['property-name'] + ':"' + property[k]['property-values']['string-value'][0]['value'] + '",';\r
- }\r
- nemo_str = nemo_str.substring(0, nemo_str.length - 1);\r
- }\r
- nodeNemo.push(nemo_str);\r
- }\r
- for (var item in nodeNemo) {\r
- // alert(jQuery("#nemo_str_show").html);\r
- jQuery("#nemo_str_show").append('<p>'+nodeNemo[item]+'; '+'</p>');\r
- }\r
- console.log(nodeNemo);\r
- } \r
-\r
- else if (i == "connection") {\r
- var connectionNemo = [];\r
- var conn = user_data["objects"]['connection'];\r
- for (var j in conn) {\r
- var nemo_str = "CREATE Connection " + conn[j]['connection-name'] + ' Type ' + conn[j]['connection-type'];\r
- nemo_str += " Endnodes " + nodes[conn[j]['end-node'][0]['node-id']] + ',' + nodes[conn[j]['end-node'][1]['node-id']];\r
- var property = conn[j]['property'];\r
- if(property&&property.length>0){\r
- nemo_str+=" Property";\r
- for(var k in property){\r
- nemo_str+=' '+property[k]['property-name']+':"';\r
- var property_value=property[k]['property-values'];\r
- console.log(property_value);\r
- for(var v in property_value){//int-value or string-value\r
- nemo_str+=property_value[v][0]['value'];\r
- }\r
- nemo_str+='",';\r
- }\r
- nemo_str = nemo_str.substring(0,nemo_str.length-1);\r
- }\r
-\r
- connectionNemo.push(nemo_str);\r
- }\r
- for (var item in connectionNemo) {\r
- // alert(jQuery("#nemo_str_show").html);\r
- jQuery("#nemo_str_show").append('<p>'+connectionNemo[item]+'; '+'</p>');\r
- }\r
- console.log(connectionNemo);\r
- } \r
-\r
- else if (i = 'flow') {\r
- var flowNemo = [];\r
- var fl = user_data["objects"]['flow'];\r
- for (var j in fl) {\r
- var nemo_str = 'CREATE Flow ' + fl[j]['flow-name'];\r
- var match = fl[j]["match-item"];\r
- if (match && match.length > 0) {\r
- nemo_str += " Match ";\r
- for (var k in match) {\r
- if(match[k]["match-item-value"]['string-value'])\r
- nemo_str += match[k]['match-item-name'] + ':"' + match[k]["match-item-value"]['string-value'] + '",';\r
- else if(match[k]["match-item-value"]['int-value'])\r
- nemo_str += match[k]['match-item-name'] + ':' + match[k]["match-item-value"]['int-value'] + ',';\r
- }\r
- nemo_str = nemo_str.substring(0, nemo_str.length - 1);\r
- }\r
- var property=fl[j]["property"];\r
- if(property && property.length > 0){\r
- nemo_str += " Property ";\r
- for (var k in property) {\r
- if(property[k]["property-name"])\r
- nemo_str += property[k]['property-name'] + ':"' + intentNodesArray[property[k]["property-values"]['string-value'][0]["value"]] + '",';\r
- }\r
- nemo_str = nemo_str.substring(0, nemo_str.length - 1);\r
- }\r
- flowNemo.push(nemo_str);\r
- }\r
-\r
- for (var item in flowNemo) {\r
- // alert(jQuery("#nemo_str_show").html);\r
- jQuery("#nemo_str_show").append('<p>'+flowNemo[item]+'; '+'</p>');\r
- }\r
- console.log(flowNemo);\r
- }\r
- }\r
-\r
-\r
- for (var i in user_data["operations"]) {\r
- var opNemo = [];\r
- var operation = user_data["operations"]['operation'];\r
- for (var j in operation) {\r
- var nemo_str = 'CREATE Operation ' + operation[j]["operation-name"];\r
- // console.log(flow[operation[j]['target-object']]);\r
- if(flow[operation[j]['target-object']])\r
- nemo_str += ' Target ' + flow[operation[j]['target-object']];\r
- else\r
- nemo_str += ' Target ' + connection[operation[j]['target-object']];\r
- var condition = operation[j]['condition-segment'];\r
- if (condition && condition.length > 0) {\r
- nemo_str += " Condition ";\r
- condition = condition.sort(function(a,b){return a.order-b.order});\r
- console.log(condition);\r
- for (var k in condition) {\r
- nemo_str+=relChars[condition[k]["precursor-relation-operator"]];\r
- nemo_str+="(";\r
- nemo_str+=condition[k]["condition-parameter-name"];\r
- nemo_str+=opChars[condition[k]["condition-parameter-match-pattern"]];\r
- nemo_str+=condition[k]["condition-parameter-target-value"]["string-value"];\r
- nemo_str+=")";\r
- \r
- }\r
- }\r
- var action = operation[j]['action'];\r
- if (action && action.length > 0) {\r
- nemo_str += " Action "\r
- for (var k in action) {\r
- if(action[k]['action-name']=='go-through')\r
- nemo_str += action[k]['action-name'] + ":" + nodes[action[k]['parameter-values']["string-value"][0]['value']] + ',';\r
- if(action[k]['action-name']=='deny')\r
- nemo_str+= action[k]['action-name']+',';\r
- if(action[k]['action-name']=='qos-bandwidth'){\r
- nemo_str+= action[k]['action-name']+':'+action[k]["parameter-values"]["int-value"][0]["value"]+'kbps,';\r
- }\r
- }\r
- nemo_str = nemo_str.substring(0, nemo_str.length - 1);\r
- }\r
- \r
- opNemo.push(nemo_str);\r
- }\r
- for (var item in opNemo) {\r
- // alert(jQuery("#nemo_str_show").html);\r
- jQuery("#nemo_str_show").append('<p>'+opNemo[item]+'; '+'</p>');\r
- }\r
- console.log(opNemo);\r
- }\r
- }\r
+++ /dev/null
-//var phy_hosts; move to nemo_main.js
-//var phy_hosts; move to nemo_main.js
-
-var phy_links,phy_nodes;
-var host_count,node_count_phy,link_count;
-var Node_phy_Id = 0;
-var Edge_phy_Id = 0;
-nodes_phy = new vis.DataSet();
-edges_phy = new vis.DataSet();
-var host_id = [];
-var host_name = [];
-var phy_host_ip = [];
-var phy_host_mac = [];
-var node_map_id = [];
-
-var physicalData=null;
-jQuery(document).ready(function ($) {
-getPhysicalDatas();
-if(!physicalData) return;
-//analy_topo(physicalData);
-//create_physical_topo();
-});
- //physicalJson
- function getPhysicalDatas(){
- var PhyData=null;
- jQuery.ajax({
- url: "/restconf/operational/generic-physical-network:physical-network/",
- type:"GET",
- dataType:"json",
- async:false,
- success: function(data){
- console.log(data);
- if(data != null)
- {
- PhyData=data;
- physicalData=data;
- //analy_topo(physicalData);
- //create_physical_topo();
- }
- else
- alert("No Physical Data");
- },
- error:function(data){
- console.log("Get Physical Data Error!");
- // alert("Get Physical Data Error!");
- }
- });
- return PhyData;
- }
-
- function getPhysicalData(){
- physicalData=getPhysicalDatas();
- console.log(physicalData)
- if(!physicalData) physicalData=physicalJson;
- if(!physicalData) return;
- }
- // getPhysicalData();
-
-function createPhysicalTopo(Data){
- nodes_phy.clear();
- edges_phy.clear();
- if(!Data) Data=physicalData;
- if(!Data) return;
- var physicalHost=Data['physical-network']['physical-hosts'];
- var physicalNode=Data['physical-network']['physical-nodes']['physical-node'];
- var physicalLink=Data['physical-network']['physical-links'];
- var myHost=[];//host_id----->[vis_node_id,connected node_id,host_name]
- var myHostPort=[];//host_id----->host_port_id
- var myNode=[];//node_id----->[vis_node_id,node_type]
- var externalNode=[];//external_port_id----->[vis_node_id,node_id]
- var myLink=[];//null
- if(physicalHost){
- physicalHost=physicalHost['physical-host'];
- for(var i in physicalHost){
- myHost[physicalHost[i]['host-id']]=[+i+1,physicalHost[i]['node-id'],physicalHost[i]['host-name']];
- myHostPort[physicalHost[i]['host-id']]=physicalHost[i]['port-id'];
- nodes_phy.add({
- id: +i+1,
- label: physicalHost[i]["host-name"],
- image: "src/app/nemo/images/host.png",
- shape: 'image',
- fontSize: 15
- });
- }
- }
- console.log(myHost);
- if(physicalNode){
- var nodeslen=nodes_phy.get().length;
- for(var i in physicalNode){
- myNode[physicalNode[i]['node-id']]=[nodeslen+1,physicalNode[i]['node-type'],''];
- nodes_phy.add({
- id: ++nodeslen,
- label: physicalNode[i]["node-type"]+physicalNode[i]["node-id"].split(":")[1],
- group: physicalNode[i]["node-type"],
- });
- var physicalPort=physicalNode[i]['physical-port'];
- if(physicalPort){
- for(var item in physicalPort){
- if(physicalPort[item]['port-type']=='external')
- {
- var flag=true;
- for(var hostPort in myHostPort){
- if(physicalPort[item]['port-id']==myHostPort[hostPort])
- flag=false;
- }
- if(flag)
- externalNode[physicalPort[item]['port-id']]=[physicalNode[i]['node-id']];
- }
- }
- }
- }
- }
- console.log(myNode);
- console.log(externalNode);
-
- var externalnodecount=0;
- for(var x in externalNode){externalnodecount++;}
- if(externalnodecount>0){
- var nodeslen=nodes_phy.get().length;
- for(var i in externalNode){
- externalNode[i]=[nodeslen+1,externalNode[i][0]];
- nodes_phy.add({
- id: ++nodeslen,
- label: 'ext-network',
- image: "src/app/nemo/images/ext-group.png",
- shape: 'image',
- });
- }
- console.log(externalNode);
- var edgeslen=edges_phy.get().length;
- for(var i in externalNode){
- edges_phy.add({
- id: ++edgeslen,
- from:externalNode[i][0],
- to:myNode[externalNode[i][1]][0],
- length:150,
- width: 1
- });
- }
- }
- if(physicalLink){
- physicalLink=physicalLink['physical-link'];
- var edgeslen=edges_phy.get().length;
- for(var i in physicalLink){
- // myLink[]
- edges_phy.add({
- id:++edgeslen,
- from:myNode[physicalLink[i]['src-node-id']][0],
- to:myNode[physicalLink[i]['dest-node-id']][0],
- length:150,
- width: 2
- });
- }
- }
-
- var hostcount=0;
- for(var x in physicalHost){hostcount++;}
- if(hostcount>0){
- var edgeslen=edges_phy.get().length;
- console.log(edgeslen);
- for(var i in myHost){
- // myLink[]
- edges_phy.add({
- id:++edgeslen,
- from:myHost[i][0],
- to:myNode[myHost[i][1]][0],
- length:150,
- width: 1
- });
- }
- }
-
-var data = {
- nodes: nodes_phy,
- edges: edges_phy
- };
-
-var options_phy = {
- /* physics: {
- repulsion: {
- centralGravity: 0,
- springLength: 200,//弹簧长度
- springConstant: 0,//弹簧常数
- nodeDistance: 0,
- damping: 0 //阻尼,减幅,衰减
- }}, */
- smoothCurves: false,
- stabilize: false,
- nodes: {
- // default for all nodes
- shape: 'dot',
- fontSize:16,
- radius:23,
- fixed:true
- },
- edges:{
- // length:200,
- width: 1
- },
- groups:{
- switch:{
- color: {
- border: 'black',
- background: '#B0E2FF',
- }
- },
-
- router:{
- color: {
- border: 'black',
- background: '#7FFF00',
- }
-
- }
- }
-
- };
- console.log(jQuery('#phy_graph').width());
- jQuery('#phy_graph').width(800).height(500);
- console.log(jQuery('#phy_graph').width());
- var container = document.getElementById('phy_graph');
- if(!container) return;
- var graph = new vis.Graph(container, data, options_phy);
-}
-
-function analy_topo(topo_data)
-{
- phy_hosts = [];
- phy_nodes = [];
- phy_links = [];
- host_count = 0;
- node_count_phy = 0;
- link_count = 0;
- if(topo_data["physical-network"]["physical-nodes"]!=null)
- {
- for(var i in topo_data["physical-network"]["physical-nodes"]["physical-node"])
- {
- var node_data_temp = [];
- var data_temp;
- var json_temp = topo_data["physical-network"]["physical-nodes"]["physical-node"][i];
-/* for(var key in json_temp)
- {
- data_temp = json_temp[key];
- } */
- node_data_temp["node-id"] = json_temp["node-id"];
- node_data_temp["node-type"] = json_temp["node-type"];
- phy_nodes[node_count_phy] = node_data_temp;
- node_count_phy++;
- }
-
- }
- if(topo_data["physical-network"]["physical-hosts"]!=null)
- {
- for(var i in topo_data["physical-network"]["physical-hosts"]["physical-host"])
- {
- //var host_name_temp = 'host' + i;
- var host_data_temp = [];
- var data_temp;
- var json_temp = topo_data["physical-network"]["physical-hosts"]["physical-host"][i];
- /* for(var key in json_temp)
- {
- data_temp = json_temp[key];
- } */
- host_data_temp["node-id"] = json_temp["node-id"];
- host_data_temp["host-name"] = json_temp["host-name"];
- host_data_temp["host-id"] = json_temp["host-id"];
- phy_hosts[host_count] = host_data_temp;
- host_count++;
- host_id[json_temp["host-name"]] = json_temp["host-id"];
- host_name[json_temp["host-id"]] = json_temp["host-name"];
- if(json_temp['ip-addresses'])
- phy_host_ip[json_temp["ip-addresses"]["ip-address"][0]] = json_temp["host-name"];
- if(json_temp['mac-address'])
- phy_host_mac[json_temp["mac-address"]] = json_temp["host-name"];
- }
- }
- if(topo_data["physical-network"]["physical-links"]!=null)
- {
- for(var i in topo_data["physical-network"]["physical-links"]["physical-link"])
- {
- var link_data_temp = [];
- var data_temp;
- var json_temp = topo_data["physical-network"]["physical-links"]["physical-link"][i];
- /* for(var key in json_temp)
- {
- data_temp = json_temp[key];
- } */
- link_data_temp["link-id"] = json_temp["link-id"];
- link_data_temp["src-node-id"] = json_temp["src-node-id"];
- link_data_temp["dest-node-id"] = json_temp["dest-node-id"];
- phy_links[link_count] = link_data_temp;
- link_count++;
- }
- }
-}
-
-function create_physical_topo()
-{
- nodes_phy.clear();
- edges_phy.clear();
- node_map_id = [];
- Node_phy_Id = 0;
- Edge_phy_Id = 0;
- console.log(phy_nodes);
- for(var i in phy_nodes)
- {
- nodes_phy.add({
- id: ++Node_phy_Id,
- label: phy_nodes[i]["node-type"]+phy_nodes[i]["node-id"].split(":")[1],
- group: phy_nodes[i]["node-type"],
- });
- node_map_id[phy_nodes[i]["node-id"]] = Node_phy_Id;
- }
- for(var i in phy_hosts)
- {
- nodes_phy.add({
- id: ++Node_phy_Id,
- label: phy_hosts[i]["host-name"],
- image: "src/app/nemo/images/host.png",
- shape: 'image',
- fontSize: 15
- });
- var to_full_id;
- for(var node_id_cursor in phy_nodes)
- {
- if(phy_nodes[node_id_cursor]["node-id"].indexOf(phy_hosts[i]["node-id"]) > -1)
- {
- to_full_id = phy_nodes[node_id_cursor]["node-id"];
- break;
- }
- }
- edges_phy.add({
- id:++Edge_phy_Id,
- from:Node_phy_Id,
- to:node_map_id[to_full_id],
- length:150
- });
- node_map_id[phy_nodes[i]["host-id"]] = Node_phy_Id;
- }
- for(var i in phy_links)
- {
- var from_full_id;
- for(var node_id_cursor in phy_nodes)
- {
- if(phy_nodes[node_id_cursor]["node-id"].indexOf(phy_links[i]["src-node-id"]) > -1)
- {
- from_full_id = phy_nodes[node_id_cursor]["node-id"];
- break;
- }
- }
- var to_full_id;
- for(var node_id_cursor in phy_nodes)
- {
- if(phy_nodes[node_id_cursor]["node-id"].indexOf(phy_links[i]["dest-node-id"]) > -1)
- {
- to_full_id = phy_nodes[node_id_cursor]["node-id"];
- break;
- }
- }
- edges_phy.add({
- id:++Edge_phy_Id,
- from:node_map_id[from_full_id],
- to:node_map_id[to_full_id],
- length:150,
- width: 2
- });
- }
- // console.log(1);
- var data = {
- nodes: nodes_phy,
- edges: edges_phy
- };
- var options_phy = {
- /* physics: {
- repulsion: {
- centralGravity: 0,
- springLength: 200,//弹簧长度
- springConstant: 0,//弹簧常数
- nodeDistance: 0,
- damping: 0 //阻尼,减幅,衰减
- }}, */
- smoothCurves: false,
- stabilize: false,
- nodes: {
- // default for all nodes
- shape: 'dot',
- fontSize:16,
- radius:23,
- fixed:true
- },
- edges:{
- // length:200,
- width: 1
- },
- groups:{
- switch:{
- color: {
- border: 'black',
- background: '#B0E2FF',
- }
- },
-
- router:{
- color: {
- border: 'black',
- background: '#7FFF00',
- }
-
- }
- }
-
- };
- console.log(jQuery('#phy_graph').width());
- jQuery('#phy_graph').width(800).height(500);
- console.log(jQuery('#phy_graph').width());
- var container = document.getElementById('phy_graph');
- if(!container) return;
- var graph = new vis.Graph(container, data, options_phy)
-}
-
-var creataPhysicalTables={
-createPhyicalNodeTable:function (id,Data){
- if(!Data) Data=physicalData;
- if(!Data) return;
- var physicalnodes=[];//physical_node_id---->[physical_node_type,[internal physical port number,external physical port number]]
- var Mynode=Data['physical-network']['physical-nodes']['physical-node'];
- for(var i in Mynode){
- physicalnodes[Mynode[i]['node-id']]=[Mynode[i]['node-type']];
- var physicalPorts=Mynode[i]['physical-port'];
- if(!physicalPorts) {physicalnodes[Mynode[i]['node-id']].push(['','']);continue;}
- var interPort=exterPort=0;
- for(var port in physicalPorts){
- if(physicalPorts[port]['port-type']=='internal') interPort++;
- if(physicalPorts[port]['port-type']=='external') exterPort++;
- }
- physicalnodes[Mynode[i]['node-id']].push([interPort,exterPort]);
- }
- console.log(physicalnodes);
- jQuery("#"+id).find('tr').remove();
- for(var item in physicalnodes){
- var $tr='<tr><td>'+item+'</td><td>'+physicalnodes[item][0]+'</td>'
- $tr+='<td>'+physicalnodes[item][1][0]+'</td><td>'+physicalnodes[item][1][1]+'</td>'
- $tr+='</tr>'
- jQuery("#"+id).append($tr);
- }
- var node_count = jQuery("#"+id).find('tr').length;
- console.log("node_count:",node_count);
- if(!node_count) return;
- if(node_count<10){
- jQuery("div.tableBodyContainer:first").height(node_count*22+5);
- }
- else{
- jQuery("div.tableBodyContainer:first").height(200);
- }
-},
-createPhyicalLinkTable:function (id,Data){
- if(!Data) Data=physicalData;
- if(!Data) return;
- var physaicallinks=[];
- if(!Data['physical-network']['physical-links']) return;
- var mylink=Data['physical-network']['physical-links']['physical-link'];
- for(var i in mylink){
- if(!mylink[i]['metric'])
- physaicallinks[mylink[i]['link-id']]=[mylink[i]['src-node-id'],mylink[i]['dest-node-id'],'',mylink[i]['bandwidth'],mylink[i]['delay']];
- else
- physaicallinks[mylink[i]['link-id']]=[mylink[i]['src-node-id'],mylink[i]['dest-node-id'],mylink[i]['metric'],mylink[i]['bandwidth'],mylink[i]['delay']];
-
- }
- console.log(physaicallinks);
- jQuery("#"+id).find('tr').remove();
- for(var item in physaicallinks){
- var $tr='<tr><td>'+item+'</td><td>'+physaicallinks[item][0]+'</td>'
- $tr+='<td>'+physaicallinks[item][1]+'</td><td>'+physaicallinks[item][2]+'</td>';
- $tr+='<td>'+physaicallinks[item][3]+'kbps'+'</td><td>'+physaicallinks[item][4]+'ms'+'</td>';
- $tr+='</tr>'
- jQuery("#"+id).append($tr);
- }
-}
-}
-
-
+++ /dev/null
-nodes_vir = new vis.DataSet();
-edges_vir = new vis.DataSet();
-
-var VirtualDatas='';
-
- function getVirtualInfos(){
- var virData=null;
- jQuery.ajax({
- url: "/restconf/config/generic-virtual-network:virtual-networks/",
- type:"GET",
- dataType:"json",
- async: false,
- success: function(data){
- if(data != null)
- {
- virData = data;
- VirtualDatas=data;
- console.log(VirtualDatas);
- }
- else
- alert("No Virtual Data");
- },
- error:function(data){
- // alert("Get Virtual Data Error!");
- console.log("Get Virtual Data Error!");
- }
- });
- return virData;
- }
- getVirtualInfos();
- function getVirtualDatas(){
- var Datas=getVirtualInfos();
- if(!Datas){
- Datas=virtualJson;
- }
- VirtualDatas=Datas;
- // console.log(VirtualDatas);
- //return virtualDatas;
- }
-// getVirtualDatas();
-function getVirtualInfoById(user_id,Data){
- if(!Data) Data=VirtualDatas;
- if(!Data) return;
- if(typeof(Data)=='string'){
- var user_json = JSON.parse(Data);
- }
- else
- {
- var user_json = Data;
- }
-
- var user_info = user_json['virtual-networks']['virtual-network'];
- for(var item in user_info){
- if(user_id==user_info[item]['user-id']){
- return user_info[item];
- }
- }
-}
-
-var virtual_nodes=[];//virtual_node_id----->[vid_node_id,virtual_node_name]
-function create_virtual_topo(topo_data,intentinfo,mappinginfo)
-{
- nodes_vir.clear();
- edges_vir.clear();
-
- console.log(topo_data);
- var vitrual_network=topo_data;
- if(vitrual_network!=null)
- {
- var vitrual_nodes_js=vitrual_network["virtual-nodes"]["virtual-node"];
- for(var i in vitrual_nodes_js)
- {
- virtual_nodes[vitrual_nodes_js[i]["node-id"]]=[(+i+1),vitrual_nodes_js[i]["node-type"]+(+i+1)];
- nodes_vir.add({
- id: +i+1,
- label: vitrual_nodes_js[i]["node-type"]+(+i+1),
- group: vitrual_nodes_js[i]["node-type"],
- radius:20
- });
-
- }
- console.log(virtual_nodes);
- var vitrual_links=vitrual_network["virtual-links"]["virtual-link"];
- for(var j in vitrual_links){
- edges_vir.add({
- id: +j+1,
- from: virtual_nodes[vitrual_links[j]["src-node-id"]][0],
- to: virtual_nodes[vitrual_links[j]["dest-node-id"]][0],
- length:150,
- width:2,
- color:{color:'ff4e00',highlight:'ff4e00',hover:'ff4e00'}
- });
- }
- }
-
-drawOthers(null,intentinfo,mappinginfo);
-console.log(virtual_nodes);
- var data= {
- nodes: nodes_vir,
- edges: edges_vir
- };
- var options = {
- /* physics: {
- repulsion: {
- centralGravity: 0,
- springLength: 200,//弹簧长度
- springConstant: 0,//弹簧常数
- nodeDistance: 0,
- damping: 0 //阻尼,减幅,衰减
- }}, */
- smoothCurves: false,
- stabilize: true,
- nodes: {
- // default for all nodes
- fontSize:15,
- shape: 'dot',
- radius:23,
- fixed:true
- },
- groups:{
- vswitch:{
- color: {
- border: 'black',
- background: '#B0E2FF',
- }
- },
- vrouter:{
- color: {
- border: 'black',
- background: '#7FFF00',
- }
- },
- fw:{
- //shape:'box',
- color: {
- border: 'black',
- background: '#EEEE00',
- }
- },
- lb:{
- //shape:'box',
- color: {
- border: 'black',
- background: '#C63300',
- }
- },
- cache:{
- //shape:'box',
- color: {
- border: 'black',
- background: '#FF00FF',
- }
- }
- }
-
- };
-
- console.log(nodes_vir.get().length);
- var container = document.getElementById('vir_graph');
- var graph = new vis.Graph(container, data, options);
-}
-
-function drawOthers(virtualData,intentData,mappingData){
- console.log();
- var user_nodes=intentData['objects']['node'];
- var intentNodes=[];//intent_node_id(physical host or node id)------>[intent_node_type,intent_node_name]
- for (var i in user_nodes) {
- intentNodes[user_nodes[i]['node-id']]=[user_nodes[i]['node-type'],user_nodes[i]['node-name']];
- };
- var mapping_nodes=mappingData['intent-vn-mapping-result'];
- var mappingNodes=[];//intent-id(physical host or node id)------>virtual_node_id
- for (var i in mapping_nodes) {
- if(mapping_nodes[i]['intent-type']=='node')
- {
- if(mapping_nodes[i]['virtual-resource'][0]['parent-virtual-resource-entity-id'])
- mappingNodes[mapping_nodes[i]['intent-id']]=mapping_nodes[i]['virtual-resource'][0]['parent-virtual-resource-entity-id'];
- }
- };
- console.log(intentNodes);
- console.log(mappingNodes);
- var nodelen= nodes_vir.get().length;
- for(var item in intentNodes){
- virtual_nodes[item]=[parseInt(nodelen+1),'external-node'];
- if(intentNodes[item][0]=='host'){
- nodes_vir.add({
- id: ++nodelen,
- label: ''+intentNodes[item][1],
- image: "src/app/nemo/images/host.png",
- shape: 'image',
- fontSize: 15
- });
- }
- else if(intentNodes[item][0]=='fw'){
- nodes_vir.add({
- id: ++nodelen,
- label: ''+intentNodes[item][1],
- group: 'fw',
- image: "src/app/nemo/images/fw.png",
- shape: 'image',
- fontSize: 15
- });
- }
- else if(intentNodes[item][0]=='lb'){
- nodes_vir.add({
- id: ++nodelen,
- label: ''+intentNodes[item][1],
- group: 'lb',
- image: "src/app/nemo/images/lb.png",
- shape: 'image',
- fontSize: 15
- });
- }
- else if(intentNodes[item][0]=='cache'){
- nodes_vir.add({
- id: ++nodelen,
- label: ''+intentNodes[item][1],
- group: 'cache',
- image: "src/app/nemo/images/cache.png",
- shape: 'image',
- fontSize: 15
- });
- }
- else if(intentNodes[item][0]=='ext-group'){
- nodes_vir.add({
- id: ++nodelen,
- label: ''+intentNodes[item][1],
- image: "src/app/nemo/images/ext-group.png",
- shape: 'image',
- fontSize: 15
- });
- }
- else
- {
- delete virtual_nodes[item];
- }
- }
- console.log(virtual_nodes);
- for(var item in mappingNodes){
- // console.log(virtual_nodes[item]);
- if(!virtual_nodes[item]) continue;
- var edgeslen=edges_vir.get().length;
- edges_vir.add({
- id: ++edgeslen,
- from: virtual_nodes[item][0],
- to: virtual_nodes[mappingNodes[item]][0],
- length:150
- });
- }
-}
-
-var creataVirtualTables={
-createVirtualNodeTable:function (id,Data){
- // if(!Data) Data=VirtualDatas;
- if(!Data) return;
- var virtualnodes=[];
- // virtualnodes=virtual_nodes;
- virtualnodes=[];
- var virtualNodes=Data['virtual-nodes']['virtual-node'];
- console.log(virtualnodes);
- for(var item in virtualNodes){
- //virtualnodes[virtualNodes[item]['node-id']]=[virtual_nodes[virtualNodes[item]['node-id']]]
- var virTableInfo={};
- virTableInfo.virtual_node_id=virtualNodes[item]['node-id'];
- virTableInfo.virtual_node_name=virtual_nodes[virtualNodes[item]['node-id']][1];
- virTableInfo.internal_port_number='';
- virTableInfo.external_port_number='';
- var virtualPort=virtualNodes[item]['virtual-port'];
- if(!virtualPort){virtualnodes.push(virTableInfo);continue;}
- var interPort=exterPort=0;
- for(var i in virtualPort){
- if(virtualPort[i]['port-type']=='internal') interPort++;
- if(virtualPort[i]['port-type']=='external') exterPort++;
- }
- virTableInfo.internal_port_number=interPort;
- virTableInfo.external_port_number=exterPort;
- virtualnodes.push(virTableInfo);
-
- }
- console.log(virtualnodes);
- // var Mynode=Data['virtual-network']['virtual-nodes']['virtual-node'];
- // for(var i in Mynode){
- // if(true)
- // virtualnodes[Mynode[i]['node-id']]=Mynode[i]['node-type'];
- // }
- // console.log(virtualnodes);
- jQuery("#"+id).find('tr:gt(0)').empty();
- for(var item in virtualnodes){
- // if(virtualnodes[item][1]!='external-node'){}
-
- var $tr='<tr><td title='+virtualnodes[item].virtual_node_id+'>'+virtualnodes[item].virtual_node_id+'</td><td>'+virtualnodes[item].virtual_node_name+'</td>'
- $tr+='<td>'+'virtual '+virtualnodes[item].virtual_node_name.substring(1,virtualnodes[item].virtual_node_name.length-1)+'</td>'
- $tr+='<td>'+virtualnodes[item].internal_port_number+'</td><td>'+virtualnodes[item].external_port_number+'</td>'
- $tr+='</tr>'
- jQuery("#"+id).append($tr);
- }
- var node_count = jQuery("#"+id).find('tr').length;
- console.log("node_count:",node_count);
- if(!node_count) return
- if(node_count<10){
- jQuery("div.tableBodyContainer:eq(2)").height(node_count*22+5);
- }
- else{
- jQuery("div.tableBodyContainer:eq(2)").height(200);
- }
-},
-
-createVirtualLinkTable:function (id,Data){
- // if(!Data) Data=VirtualDatas;
- if(!Data) return;
- var virtuallinks=[];//virtual_link_id---->[src-node-id,dest-node-id,metric,bandwidth,delay]
-
- var mylink=Data['virtual-links']['virtual-link'];
- for(var i in mylink){
- if(!mylink[i]['metric'])
- virtuallinks[mylink[i]['link-id']]=[mylink[i]['src-node-id'],mylink[i]['dest-node-id'],'',mylink[i]['bandwidth'],mylink[i]['delay']];
- else
- virtuallinks[mylink[i]['link-id']]=[mylink[i]['src-node-id'],mylink[i]['dest-node-id'],mylink[i]['metric'],mylink[i]['bandwidth'],mylink[i]['delay']];
-
- }
- console.log(virtuallinks);
- jQuery("#"+id).find('tr:gt(0)').empty();
- for(var item in virtuallinks){
- var $tr='<tr><td title='+item+'>'+item+'</td><td>'+virtual_nodes[virtuallinks[item][0]][1]+'-'+virtual_nodes[virtuallinks[item][1]][1]+'</td>'
- $tr+='<td>'+virtual_nodes[virtuallinks[item][0]][1]+'<td>'+virtual_nodes[virtuallinks[item][1]][1]+'</td>';
- $tr+='<td>'+virtuallinks[item][3]+'kbps'+'</td><td>'+virtuallinks[item][4]+'ms'+'</td>';
- $tr+='</tr>'
- jQuery("#"+id).append($tr);
- }
-}
-}
-
-
-
+++ /dev/null
-var MappingResults = '';\r
-\r
-//intent-vn MappingResults\r
-function getMappingResults() {\r
- var MappingData = null;\r
- jQuery.ajax({\r
- url: "/restconf/config/intent-mapping-result:intent-vn-mapping-results/",\r
- type: "GET",\r
- dataType: "json",\r
- async: false,\r
- success: function(data) {\r
- if (data != null) {\r
- MappingData = data;\r
- MappingResults = data;\r
- console.log(MappingData);\r
- } else\r
- alert("No intent-vn Mapping Data");\r
- },\r
- error: function(data) {\r
- console.log("Get intent-vn Mapping Data Error!");\r
- // alert("Get intent-vn Mapping Data Error!");\r
- }\r
- });\r
- return MappingData;\r
-}\r
-\r
-function getMappingDatas() {\r
- var Datas = getMappingResults();\r
- if (!Datas) {\r
- Datas = VnMappingJson;\r
- }\r
- MappingResults = Datas;\r
- //return virtualDatas;\r
-}\r
-\r
-getMappingResults();\r
-// getMappingDatas();\r
-function getMappingResultById(user_id, Data) {\r
- if (!Data) Data = MappingResults;\r
- if (!Data) return;\r
- if (typeof(Data) == 'string') {\r
- var user_json = JSON.parse(Data);\r
- } else {\r
- var user_json = Data;\r
- }\r
- console.log(user_json);\r
- var user_info = user_json['intent-vn-mapping-results']['user-intent-vn-mapping'];\r
- for (var item in user_info) {\r
- if (user_id == user_info[item]['user-id']) {\r
- return user_info[item];\r
- }\r
- }\r
-}\r
-\r
-//vn-pn MappingResults\r
-var PnMappingResults = '';\r
-\r
-function getPnMappingResults() {\r
- var MappingData = null;\r
- jQuery.ajax({\r
- url: "/restconf/config/intent-mapping-result:vn-pn-mapping-results/",\r
- type: "GET",\r
- dataType: "json",\r
- async: false,\r
- success: function(data) {\r
- if (data != null) {\r
- MappingData = data;\r
- PnMappingResults = data;\r
- console.log(PnMappingResults);\r
- } else\r
- alert("No vn-pn Mapping Data");\r
- },\r
- error: function(data) {\r
- console.log("Get vn-pn Mapping Data Error!");\r
- // alert("Get vn-pn Mapping Data Error!");\r
- }\r
- });\r
- return MappingData;\r
-}\r
-getPnMappingResults();\r
-function getPnMappingResultById(user_id, Data) {\r
- if (!Data) Data = PnMappingResults;\r
- if (!Data) return;\r
- if (typeof(Data) == 'string') {\r
- var user_json = JSON.parse(Data);\r
- } else {\r
- var user_json = Data;\r
- }\r
- console.log(user_json);\r
- var user_info = user_json['vn-pn-mapping-results']['user-vn-pn-mapping'];\r
- for (var item in user_info) {\r
- if (user_id == user_info[item]['user-id']) {\r
- return user_info[item];\r
- }\r
- }\r
-}\r
-\r
-var createMappingTables = {\r
- //mainData(virtualData)\r
- createVirtualNodeTable: function(id, Data) {\r
- if (!Data) return;\r
- console.log(Data);\r
- var virtualnodes = [];\r
- var Mynode = Data['virtual-nodes']['virtual-node'];\r
- for (var i in Mynode) {\r
- if (true)\r
- virtualnodes[Mynode[i]['node-id']] = Mynode[i]['physical-resource-requirement'][0]['attribute-value']['string-value'];\r
- }\r
- console.log(virtualnodes);\r
- // jQuery("#" + id).find('tr:gt(0)').empty();\r
- var count=0;\r
- for(var x in virtual_nodes){count++;}\r
- if(count==0) return;\r
- for (var i in virtualnodes) {\r
- var $tr = '<tr><td>' + virtual_nodes[i][1] + '</td><td>' + virtualnodes[i] + '</td></tr>'\r
- jQuery("#" + id).append($tr);\r
- }\r
- var node_count = jQuery("#"+id).find('tr').length;\r
- console.log("node_count:",node_count);\r
- if(!node_count) return\r
- if(node_count<10){\r
- jQuery("div.tableBodyContainer:eq(4)").height(node_count*22+5);\r
- }\r
- else{\r
- jQuery("div.tableBodyContainer:eq(4)").height(200);\r
- }\r
- },\r
-\r
- PathId: [], //virtual-link-id--->physical-path-id\r
-\r
- //virtualData---->virtul-link,src-node,dest-node\r
- //virtualData.links<--->vn-pn-Mapping.virtual-resource-entity-id[link]-----vn-pn-Mapping.virtual-physical-entity-id[path]<--->physicalData.physical-path---->Physical Nodes passed by Path\r
- //id tableId,Data MainData(virtualData)\r
- createVirtualLinkTable: function(id, Data, vn_pnData, physicalData) {\r
- if (!Data) return;\r
- console.log(Data);\r
- var virtuallinks = []; //virtual-link-id----->[src-node-id,dest-node-id]\r
- var Mylink = Data['virtual-links']['virtual-link'];\r
- for (var i in Mylink) {\r
- virtuallinks[Mylink[i]['link-id']] = [Mylink[i]['src-node-id'], Mylink[i]['dest-node-id']];\r
- }\r
-\r
- console.log(virtuallinks);\r
- PathId = []; //virtual-link-id--->physical-path-id\r
- var paths = createMappingTables.getPaths(virtuallinks, vn_pnData, physicalData, PathId); //physical-path-id----->[Physical Nodes passed by Path](count=0,1,2,3...)\r
- console.log(PathId);\r
- console.log(paths);\r
- var count=0;\r
- for(var x in virtual_nodes){count++;}\r
- if(count==0) return;\r
- for (var i in virtuallinks) {\r
- var $tr = '<tr><td>' + virtual_nodes[virtuallinks[i][0]][1] + '-' + virtual_nodes[virtuallinks[i][1]][1] + '</td><td>' + virtual_nodes[virtuallinks[i][0]][1] + '</td><td>' + virtual_nodes[virtuallinks[i][1]][1] + '</td><td title='+PathId[i]+'>' + PathId[i].substring(0,14)+'...' + '</td>'\r
- var pathsNode = ''\r
- for (var nodesPath in paths[PathId[i]]) {\r
- pathsNode += paths[PathId[i]][nodesPath] + '-';\r
- }\r
- pathsNode = pathsNode.substring(0, pathsNode.length - 1);\r
- $tr += '<td>' + pathsNode + '</td>';\r
- $tr += '</tr>'\r
- jQuery("#" + id).append($tr);\r
- }\r
- },\r
-\r
-\r
- getPaths: function(linkArray, vn_pnData, physicalData, PathId) {\r
- // console.log(linkArray);\r
- // console.log(vn_pnData);\r
- // console.log(physicalData);\r
- if (!linkArray || !vn_pnData || !physicalData) return;\r
- //PathId=[];\r
- for (var link in linkArray) {\r
- for (var i in vn_pnData['vn-pn-mapping-result']) {\r
- if (link == vn_pnData['vn-pn-mapping-result'][i]['virtual-resource-entity-id'] && vn_pnData['vn-pn-mapping-result'][i]['physical-resource-type'] == 'path') {\r
- PathId[link] = vn_pnData['vn-pn-mapping-result'][i]['physical-resource-entity-id'];\r
- }\r
- }\r
- }\r
- console.log(PathId);\r
- var Paths = [];\r
- var sourcePaths = physicalData['physical-network']['physical-paths'];\r
- if(!sourcePaths) return Paths;\r
-\r
- sourcePaths = physicalData['physical-network']['physical-paths']['physical-path'];\r
- // console.log(sourcePaths);\r
- for (var path in PathId) {\r
- for (var sp in sourcePaths) {\r
- if (PathId[path] == sourcePaths[sp]['path-id']) {\r
- var physical_links = sourcePaths[sp]['physical-link'];\r
-\r
- if (!physical_links) {\r
- Paths[PathId[path]] = [''];\r
- continue;\r
- } else {\r
- if (physical_links.length == 1) {\r
- Paths[PathId[path]] = createMappingTables.getNodesByLink(physical_links[0]['link-id'], physicalData);\r
- } else {\r
- physical_links = physical_links.sort(function(a, b) {\r
- return a.order - b.order\r
- });\r
- var passedByPath = [];\r
- Paths[PathId[path]] = [];\r
- for (var l in physical_links) {\r
- passedByPath.push(physical_links[l]['link-id']);\r
- var this_paths = createMappingTables.getNodesByLink(physical_links[l]['link-id'], physicalData);\r
- if (l == 0) {\r
- Paths[PathId[path]].push(this_paths[0]);\r
- Paths[PathId[path]].push(this_paths[1]);\r
- } else {\r
- Paths[PathId[path]].push(this_paths[1]);\r
- }\r
- }\r
-\r
- //Paths[PathId[path]] = passedByPath;\r
- }\r
- }\r
- }\r
- }\r
- }\r
- console.log(Paths);\r
- return Paths;\r
- },\r
- getNodesByLink: function(link_id, physicalData) {\r
- if (!physicalData) return;\r
- var sourceLinks = physicalData['physical-network']['physical-links']['physical-link'];\r
- for (var link in sourceLinks) {\r
- if (link_id == sourceLinks[link]['link-id']) {\r
- var pathnodes = [];\r
- pathnodes.push(sourceLinks[link]['src-node-id']);\r
- pathnodes.push(sourceLinks[link]['dest-node-id']);\r
- return pathnodes;\r
- }\r
- }\r
- return null;\r
- }\r
- }
\ No newline at end of file
+++ /dev/null
-var keyWords=['CREATE','IMPORT','Host','Node','Connection','Flow','Operation','Type','Endnodes','Property','Contain','Match','Target','Action','Condition'];\r
-var opChars={\r
- "not-less-than":">=",\r
- "less-than":"<",\r
- "not-greater-than":"<=",\r
- "greater-than":">",\r
- "not-equal":"!=",\r
- "equal":"==",\r
- "between":"between",\r
- "periodical":"periodical"\r
- }\r
-var relChars={\r
- "and":"&&",\r
- "none":"",\r
- "or":"||",\r
- "not":"!",\r
- }\r
-\r
+++ /dev/null
-var physicalJson=null;\r
-var userinfo=null;\r
-var virtualJson=null;\r
-var VnMappingJson=null;\r
-var PnMappingJson=null;
\ No newline at end of file
+++ /dev/null
-function Import() \r
-{ \r
- for( var i=0; i<arguments.length; i++ )\r
- { \r
- var file = arguments[i]; \r
- document.write('<script type="text/javascript" src="' + file + '"></sc' + 'ript>'); \r
- } \r
-};\r
-Import('lib/jquery-1.11.3.js','lib/jquery-ui.min.js','lib/vis.js');\r
-// Import('src/app/nemo/module/test/servicechain_userJson.js');\r
-//Import('src/app/nemo/module/test/bod_userJson.js');
\ No newline at end of file
+++ /dev/null
-var userinfo ={\r
- "users": {\r
- "user": [\r
- {\r
- "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
- "user-role": "tenant",\r
- "user-password": "abc",\r
- "user-name": "user2",\r
- "objects": {\r
- "node": [\r
- {\r
- "node-id": "22282cca-9a13-4d0c-a67e-a933ebb0b0ae",\r
- "node-name": "server2",\r
- "node-type": "host"\r
- },\r
- {\r
- "node-id": "1eaf9a67-a171-42a8-9282-71cf702f61dd",\r
- "node-name": "vm1",\r
- "node-type": "host"\r
- },\r
- {\r
- "node-id": "175425f7-c9c9-474a-962c-70cb6c180d4d",\r
- "property": [\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.12.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "gateway-ip",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.12.1",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "l2-group",\r
- "node-name": "interior",\r
- "sub-node": [\r
- {\r
- "node-id": "6c787caa-156a-49ed-8546-547bdccf283c",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "22282cca-9a13-4d0c-a67e-a933ebb0b0ae",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "1eaf9a67-a171-42a8-9282-71cf702f61dd",\r
- "order": 0\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "6c787caa-156a-49ed-8546-547bdccf283c",\r
- "node-name": "vm2",\r
- "node-type": "host"\r
- },\r
- {\r
- "node-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f",\r
- "property": [\r
- {\r
- "property-name": "ac-info-network",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.13.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ac-info-protocol",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "static",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:4:2",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "ext-group",\r
- "node-name": "enterprise"\r
- },\r
- {\r
- "node-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca",\r
- "property": [\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.11.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "gateway-ip",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.11.1",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "l2-group",\r
- "node-name": "dmz",\r
- "sub-node": [\r
- {\r
- "node-id": "7b796915-adf4-4356-b5ca-de005ac410c1",\r
- "order": 0\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "7b796915-adf4-4356-b5ca-de005ac410c1",\r
- "node-name": "server1",\r
- "node-type": "host"\r
- },\r
- {\r
- "node-id": "d463232f-363f-491c-a6f5-097ed0a794d3",\r
- "property": [\r
- {\r
- "property-name": "ac-info-network",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "172.168.1.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ac-info-protocol",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "static",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:3:4",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "ext-group",\r
- "node-name": "internet"\r
- }\r
- ],\r
- "connection": [\r
- {\r
- "connection-id": "30da6667-608e-4d2f-bb50-79e5cabcc523",\r
- "property": [\r
- {\r
- "property-name": "bandwidth",\r
- "property-values": {\r
- "int-value": [\r
- {\r
- "value": 128,\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "connection-type": "p2p",\r
- "end-node": [\r
- {\r
- "node-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "175425f7-c9c9-474a-962c-70cb6c180d4d",\r
- "order": 0\r
- }\r
- ],\r
- "connection-name": "c1"\r
- },\r
- {\r
- "connection-id": "e0d56fee-7235-4748-a2a1-eb5e3733d866",\r
- "connection-type": "p2p",\r
- "end-node": [\r
- {\r
- "node-id": "d463232f-363f-491c-a6f5-097ed0a794d3",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca",\r
- "order": 0\r
- }\r
- ],\r
- "connection-name": "c3"\r
- },\r
- {\r
- "connection-id": "b49e3960-c08d-4fff-b9fc-08b65ebcde2c",\r
- "connection-type": "p2p",\r
- "end-node": [\r
- {\r
- "node-id": "175425f7-c9c9-474a-962c-70cb6c180d4d",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca",\r
- "order": 0\r
- }\r
- ],\r
- "connection-name": "c2"\r
- }\r
- ]\r
- }\r
- }\r
- ]\r
- }\r
-}\r
-//console.log(userinfo);\r
-userinfo2={\r
- "users": {\r
- "user": [\r
- {\r
- "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
- "user-role": "tenant",\r
- "user-password": "abc",\r
- "user-name": "user2",\r
- "objects": {\r
- "node": [\r
- {\r
- "node-id": "22282cca-9a13-4d0c-a67e-a933ebb0b0ae",\r
- "node-name": "server1",\r
- "node-type": "host"\r
- },\r
- {\r
- "node-id": "9d6f5343-f38e-4101-ab60-309e6322ace3",\r
- "property": [\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:1:1",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "operating-mode",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "fw",\r
- "node-name": "dmz1.fw1"\r
- },\r
- {\r
- "node-id": "ae83ca1d-43ef-4d02-a48b-6c250bb084bd",\r
- "property": [\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.13.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ac-info-network",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ac-info-protocol",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "static",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:4:2",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "ext-group",\r
- "node-name": "interior"\r
- },\r
- {\r
- "node-id": "7dc2233e-f8a2-416c-902a-95cff42b398a",\r
- "property": [\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.12.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "gateway-ip",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.12.1",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "l2-group",\r
- "node-name": "dmz1.n2",\r
- "sub-node": [\r
- {\r
- "node-id": "6c787caa-156a-49ed-8546-547bdccf283c",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "22282cca-9a13-4d0c-a67e-a933ebb0b0ae",\r
- "order": 1\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "c3afb4f5-ffb4-4413-bad9-020babc67ed8",\r
- "property": [\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "172.168.1.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ac-info-network",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ac-info-protocol",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "static",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:3:4",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "ext-group",\r
- "node-name": "internet"\r
- },\r
- {\r
- "node-id": "6c787caa-156a-49ed-8546-547bdccf283c",\r
- "node-name": "vm2",\r
- "node-type": "host"\r
- },\r
- {\r
- "node-id": "0dc22c0a-8ff0-448f-afc3-86fa22976242",\r
- "node-type": "chain-group",\r
- "node-name": "dmz1.n1",\r
- "sub-node": [\r
- {\r
- "node-id": "9d6f5343-f38e-4101-ab60-309e6322ace3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- ],\r
- "connection": [\r
- {\r
- "connection-id": "94709024-6675-4a9a-b098-07e14d18633f",\r
- "end-node": [\r
- {\r
- "node-id": "c3afb4f5-ffb4-4413-bad9-020babc67ed8",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "0dc22c0a-8ff0-448f-afc3-86fa22976242",\r
- "order": 0\r
- }\r
- ],\r
- "connection-type": "p2p",\r
- "connection-name": "c1"\r
- },\r
- {\r
- "connection-id": "a88b037d-0aa0-4a50-8076-225449c8f036",\r
- "end-node": [\r
- {\r
- "node-id": "0dc22c0a-8ff0-448f-afc3-86fa22976242",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "7dc2233e-f8a2-416c-902a-95cff42b398a",\r
- "order": 1\r
- }\r
- ],\r
- "connection-type": "p2p",\r
- "connection-name": "dmz1.c1"\r
- },\r
- {\r
- "connection-id": "06c60ef9-f16d-4368-9697-aa6b1cf1340a",\r
- "end-node": [\r
- {\r
- "node-id": "ae83ca1d-43ef-4d02-a48b-6c250bb084bd",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "7dc2233e-f8a2-416c-902a-95cff42b398a",\r
- "order": 0\r
- }\r
- ],\r
- "connection-type": "p2p",\r
- "connection-name": "c2"\r
- }\r
- ],\r
- "flow": [\r
- {\r
- "flow-id": "613648ce-1059-4d06-b25a-0d54193c6586",\r
- "match-item": [\r
- {\r
- "match-item-name": "dst-port",\r
- "match-item-value": {\r
- "int-value": 80\r
- }\r
- },\r
- {\r
- "match-item-name": "dst-ip",\r
- "match-item-value": {\r
- "string-value": "192.168.12.0/24"\r
- }\r
- },\r
- {\r
- "match-item-name": "src-ip",\r
- "match-item-value": {\r
- "string-value": "172.168.1.0/24"\r
- }\r
- }\r
- ],\r
- "flow-name": "dmz1.f1"\r
- }\r
- ]\r
- },\r
- "operations": {\r
- "operation": [\r
- {\r
- "operation-id": "315b1a21-f5b3-4298-868f-6b08729d2622",\r
- "priority": 0,\r
- "action": [\r
- {\r
- "action-name": "deny",\r
- "order": 0\r
- }\r
- ],\r
- "target-object": "613648ce-1059-4d06-b25a-0d54193c6586",\r
- "operation-name": "dmz1.o1"\r
- }\r
- ]\r
- },\r
- "template-instances": {\r
- "template-instance": [\r
- {\r
- "template-instance-id": "e630091d-f336-4a3a-a699-fe3a4fe7c6e2",\r
- "template-parameter": [\r
- {\r
- "parameter-name": "subnodes-n2",\r
- "parameter-values": {\r
- "string-value": [\r
- {\r
- "value": "vm2",\r
- "order": 0\r
- },\r
- {\r
- "value": "server1",\r
- "order": 1\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "parameter-name": "location-fw",\r
- "parameter-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:1:1",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "parameter-name": "ipprefix",\r
- "parameter-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.12.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "parameter-name": "location-n2",\r
- "parameter-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "parameter-name": "gatewayip",\r
- "parameter-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.12.1",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "parameter-name": "srcip",\r
- "parameter-values": {\r
- "string-value": [\r
- {\r
- "value": "172.168.1.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "template-name": "dmz",\r
- "template-instance-name": "dmz1"\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "user-id": "af4fc2be-e3f4-4388-a8ef-3aabae872f2b",\r
- "user-role": "admin",\r
- "user-password": "abcd",\r
- "user-name": "admin",\r
- "template-definitions": {\r
- "template-definition": [\r
- {\r
- "template-name": "dmz",\r
- "abstract-intents": {\r
- "abstract-objects": {\r
- "abstract-connection": [\r
- {\r
- "connection-id": "86f56efc-db49-4d7c-853c-6e7db169f56c",\r
- "end-node": [\r
- {\r
- "node-id": "fc096b0b-95cb-4f12-af28-b700a1228191",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "9cfda02c-ba8b-41c2-9b36-b7144390fcc3",\r
- "order": 1\r
- }\r
- ],\r
- "connection-type": "p2p",\r
- "connection-name": "c1"\r
- }\r
- ],\r
- "abstract-node": [\r
- {\r
- "node-id": "f011ae1d-bb3e-42e0-9fa1-f6fa3641f02d",\r
- "property": [\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "location-fw",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "operating-mode",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "fw",\r
- "node-name": "fw1"\r
- },\r
- {\r
- "node-id": "9cfda02c-ba8b-41c2-9b36-b7144390fcc3",\r
- "property": [\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "ipprefix",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "gateway-ip",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "gatewayip",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "location-n2",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "sub-nodes",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "subnodes-n2",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "l2-group",\r
- "node-name": "n2"\r
- },\r
- {\r
- "node-id": "fc096b0b-95cb-4f12-af28-b700a1228191",\r
- "node-type": "chain-group",\r
- "node-name": "n1",\r
- "sub-node": [\r
- {\r
- "node-id": "f011ae1d-bb3e-42e0-9fa1-f6fa3641f02d",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- ],\r
- "abstract-flow": [\r
- {\r
- "flow-id": "815c0bee-b04e-4c56-9bb8-b743d72ba66f",\r
- "match-item": [\r
- {\r
- "match-item-name": "dst-port",\r
- "match-item-value": {\r
- "int-value": 80\r
- }\r
- },\r
- {\r
- "match-item-name": "dst-ip",\r
- "match-item-value": {\r
- "string-value": "ipprefix"\r
- }\r
- },\r
- {\r
- "match-item-name": "src-ip",\r
- "match-item-value": {\r
- "string-value": "srcip"\r
- }\r
- }\r
- ],\r
- "flow-name": "f1"\r
- }\r
- ]\r
- },\r
- "abstract-operations": {\r
- "abstract-operation": [\r
- {\r
- "operation-id": "769c52f5-1c75-4c21-b270-15fa259de39b",\r
- "priority": 0,\r
- "action": [\r
- {\r
- "action-name": "deny",\r
- "order": 0\r
- }\r
- ],\r
- "target-object": "815c0bee-b04e-4c56-9bb8-b743d72ba66f",\r
- "operation-name": "o1"\r
- }\r
- ]\r
- }\r
- },\r
- "template-parameter": [\r
- {\r
- "parameter-name": "subnodes-n2",\r
- "parameter-value-type": "string"\r
- },\r
- {\r
- "parameter-name": "location-fw",\r
- "parameter-value-type": "string"\r
- },\r
- {\r
- "parameter-name": "ipprefix",\r
- "parameter-value-type": "string"\r
- },\r
- {\r
- "parameter-name": "location-n2",\r
- "parameter-value-type": "string"\r
- },\r
- {\r
- "parameter-name": "gatewayip",\r
- "parameter-value-type": "string"\r
- },\r
- {\r
- "parameter-name": "srcip",\r
- "parameter-value-type": "string"\r
- }\r
- ]\r
- }\r
- ]\r
- }\r
- }\r
- ]\r
- }\r
- }\r
-var physicalJson2={\r
- "physical-network": {\r
- "physical-hosts": {\r
- "physical-host": [\r
- {\r
- "host-id": "22282cca-9a13-4d0c-a67e-a933ebb0b0ae",\r
- "node-id": "openflow:2",\r
- "host-name": "video-server2",\r
- "mac-address": "08:00:27:a0:a9:b3",\r
- "port-id": "openflow:2:2",\r
- "ip-addresses": {\r
- "ip-address": [\r
- "192.168.12.4"\r
- ]\r
- }\r
- },\r
- {\r
- "host-id": "7b796915-adf4-4356-b5ca-de005ac410c1",\r
- "node-id": "openflow:1",\r
- "host-name": "video-server1",\r
- "mac-address": "00:00:00:00:00:03",\r
- "port-id": "openflow:1:1",\r
- "ip-addresses": {\r
- "ip-address": [\r
- "192.168.11.2"\r
- ]\r
- }\r
- },\r
- {\r
- "host-id": "6c787caa-156a-49ed-8546-547bdccf283c",\r
- "node-id": "openflow:2",\r
- "host-name": "vm2",\r
- "mac-address": "00:00:00:00:00:02",\r
- "port-id": "openflow:2:1",\r
- "ip-addresses": {\r
- "ip-address": [\r
- "192.168.12.3"\r
- ]\r
- }\r
- },\r
- {\r
- "host-id": "1eaf9a67-a171-42a8-9282-71cf702f61dd",\r
- "node-id": "openflow:1",\r
- "host-name": "vm1",\r
- "mac-address": "00:00:00:00:00:01",\r
- "port-id": "openflow:1:2",\r
- "ip-addresses": {\r
- "ip-address": [\r
- "192.168.12.2"\r
- ]\r
- }\r
- }\r
- ]\r
- },\r
- "physical-nodes": {\r
- "physical-node": [\r
- {\r
- "node-id": "openflow:3",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3"\r
- }\r
- }\r
- ],\r
- "node-type": "router"\r
- },\r
- {\r
- "node-id": "openflow:4",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:4"\r
- }\r
- }\r
- ],\r
- "node-type": "router"\r
- },\r
- {\r
- "node-id": "openflow:1",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1"\r
- }\r
- }\r
- ],\r
- "node-type": "switch",\r
- "physical-port": [\r
- {\r
- "port-id": "openflow:1:1",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1:1"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "56:21:6B:B3:3E:1A",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:1:2",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1:2"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "FE:2C:6E:85:F0:E1",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:1:3",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1:3"\r
- }\r
- }\r
- ],\r
- "port-type": "internal",\r
- "mac-address": "B2:78:02:9F:FA:2C",\r
- "bandwidth": 10240\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "openflow:2",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2"\r
- }\r
- }\r
- ],\r
- "node-type": "switch",\r
- "physical-port": [\r
- {\r
- "port-id": "openflow:2:3",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2:3"\r
- }\r
- }\r
- ],\r
- "port-type": "internal",\r
- "mac-address": "52:B8:9B:40:CF:43",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:2:2",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2:2"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "00:0C:29:98:7E:13",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:2:1",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2:1"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "52:A7:95:B0:0F:FE",\r
- "bandwidth": 10240\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- "physical-links": {\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:3",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:3:3",\r
- "dest-node-id": "openflow:4",\r
- "metric": 1,\r
- "dest-port-id": "openflow:4:1",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:3"\r
- },\r
- {\r
- "link-id": "openflow:1:3",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:1:3",\r
- "dest-node-id": "openflow:3",\r
- "metric": 1,\r
- "dest-port-id": "openflow:3:1",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:1"\r
- }\r
- ]\r
- }\r
- }\r
-}\r
-var physicalJson={\r
- "physical-network": {\r
- "physical-hosts": {\r
- "physical-host": [\r
- {\r
- "host-id": "22282cca-9a13-4d0c-a67e-a933ebb0b0ae",\r
- "node-id": "openflow:2",\r
- "host-name": "video-server2",\r
- "mac-address": "08:00:27:a0:a9:b3",\r
- "port-id": "openflow:2:2",\r
- "ip-addresses": {\r
- "ip-address": [\r
- "192.168.12.4"\r
- ]\r
- }\r
- },\r
- {\r
- "host-id": "7b796915-adf4-4356-b5ca-de005ac410c1",\r
- "node-id": "openflow:1",\r
- "host-name": "video-server1",\r
- "mac-address": "00:00:00:00:00:03",\r
- "port-id": "openflow:1:1",\r
- "ip-addresses": {\r
- "ip-address": [\r
- "192.168.11.2"\r
- ]\r
- }\r
- },\r
- {\r
- "host-id": "6c787caa-156a-49ed-8546-547bdccf283c",\r
- "node-id": "openflow:2",\r
- "host-name": "vm2",\r
- "mac-address": "00:00:00:00:00:02",\r
- "port-id": "openflow:2:1",\r
- "ip-addresses": {\r
- "ip-address": [\r
- "192.168.12.3"\r
- ]\r
- }\r
- },\r
- {\r
- "host-id": "1eaf9a67-a171-42a8-9282-71cf702f61dd",\r
- "node-id": "openflow:1",\r
- "host-name": "vm1",\r
- "mac-address": "00:00:00:00:00:01",\r
- "port-id": "openflow:1:2",\r
- "ip-addresses": {\r
- "ip-address": [\r
- "192.168.12.2"\r
- ]\r
- }\r
- }\r
- ]\r
- },\r
- "physical-nodes": {\r
- "physical-node": [\r
- {\r
- "node-id": "openflow:3",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3"\r
- }\r
- }\r
- ],\r
- "node-type": "router"\r
- },\r
- {\r
- "node-id": "openflow:4",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:4"\r
- }\r
- }\r
- ],\r
- "node-type": "router"\r
- },\r
- {\r
- "node-id": "openflow:1",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1"\r
- }\r
- }\r
- ],\r
- "node-type": "switch"\r
- },\r
- {\r
- "node-id": "openflow:2",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2"\r
- }\r
- }\r
- ],\r
- "node-type": "switch"\r
- }\r
- ]\r
- },\r
- "physical-links": {\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:4:2",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "dest-port-id": "openflow:3:4",\r
- "src-port-id": "openflow:4:2",\r
- "dest-node-id": "openflow:3",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:4"\r
- },\r
- {\r
- "link-id": "openflow:4:1",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:4:1",\r
- "dest-node-id": "openflow:3",\r
- "metric": 1,\r
- "dest-port-id": "openflow:3:3",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:4"\r
- },\r
- {\r
- "link-id": "openflow:1:3",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:1:3",\r
- "dest-node-id": "openflow:3",\r
- "metric": 1,\r
- "dest-port-id": "openflow:3:1",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:1"\r
- },\r
- {\r
- "link-id": "openflow:2:3",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:2:3",\r
- "dest-node-id": "openflow:3",\r
- "metric": 1,\r
- "dest-port-id": "openflow:3:2",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:2"\r
- },\r
- {\r
- "link-id": "openflow:3:1",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:3:1",\r
- "dest-node-id": "openflow:1",\r
- "metric": 1,\r
- "dest-port-id": "openflow:1:3",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:3"\r
- },\r
- {\r
- "link-id": "openflow:3:3",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:3:3",\r
- "dest-node-id": "openflow:4",\r
- "metric": 1,\r
- "dest-port-id": "openflow:4:1",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:3"\r
- },\r
- {\r
- "link-id": "openflow:3:2",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:3:2",\r
- "dest-node-id": "openflow:2",\r
- "metric": 1,\r
- "dest-port-id": "openflow:2:3",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:3"\r
- },\r
- {\r
- "link-id": "openflow:2:2",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "dest-port-id": "openflow:3:4",\r
- "src-port-id": "openflow:2:2",\r
- "dest-node-id": "openflow:3",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:2"\r
- },\r
- {\r
- "link-id": "openflow:3:4",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "dest-port-id": "openflow:4:2",\r
- "src-port-id": "openflow:3:4",\r
- "dest-node-id": "openflow:4",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:3"\r
- }\r
- ]\r
- },\r
- "physical-paths": {\r
- "physical-path": [\r
- {\r
- "path-id": "847ce4e6-d631-4d90-b2f3-dcfd56dbce3a",\r
- "delay": 0,\r
- "metric": 0,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "4ce046d2-0c20-43c7-b7f8-fa441e07d443",\r
- "delay": 0,\r
- "metric": 0,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "6657f46b-edd2-47fe-b3fc-7b5aa16c7b97",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:4:1",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 128\r
- },\r
- {\r
- "path-id": "7b875b56-ce40-4fcd-ac76-b361d0311d8f",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:2",\r
- "order": 1\r
- },\r
- {\r
- "link-id": "openflow:1:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 2,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "cb9b13ad-0172-43f5-9678-69859698071d",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:1:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "23f80b16-76d1-424c-9a71-aacd60a62bcd",\r
- "delay": 0,\r
- "metric": 0,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "3b9d1480-df24-4b0b-ba58-8c92605fe917",\r
- "delay": 0,\r
- "metric": 0,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "f84b9fda-b3f6-4631-a829-5089274093b0",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:2:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "bdd1e0cb-72aa-4f04-a2db-a07a15c62d61",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:2",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "eaa935ac-c511-4541-80cd-4a1640ae2246",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:2",\r
- "order": 1\r
- },\r
- {\r
- "link-id": "openflow:1:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 2,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "cb3de13d-cd6f-4f32-9596-09ddbb6d1c44",\r
- "delay": 0,\r
- "metric": 0,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "4fdc5a09-ceca-461a-b3d3-1c3a9506dc74",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 128\r
- },\r
- {\r
- "path-id": "c231b5a3-7752-4f78-b8eb-b023ad4bea2f",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:2",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "aab18b50-3bf6-4fde-aac1-968ffe22f518",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:1",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "ba0726d2-c72f-4b3e-b972-72da39430537",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:2:3",\r
- "order": 0\r
- },\r
- {\r
- "link-id": "openflow:3:1",\r
- "order": 1\r
- }\r
- ],\r
- "metric": 2,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "e0f22266-e0c2-4467-b143-800a7b212a98",\r
- "delay": 0,\r
- "metric": 0,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "765e80be-6232-498d-b095-3b2c59448535",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:2:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "a710b9b8-5abf-4c59-9afd-88ccf8d935b0",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:1",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "61c4597d-02a5-4609-8756-955024691a17",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:1:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "5fc169b2-1209-4663-92c3-031100923f6f",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:2:3",\r
- "order": 0\r
- },\r
- {\r
- "link-id": "openflow:3:1",\r
- "order": 1\r
- }\r
- ],\r
- "metric": 2,\r
- "bandwidth": 0\r
- }\r
- ]\r
- }\r
- }\r
-}\r
-var virtualJson={\r
- "virtual-networks": {\r
- "virtual-network": [\r
- {\r
- "network-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
- "virtual-nodes": {\r
- "virtual-node": [\r
- {\r
- "node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "node-type": "vrouter",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "ee08bce2-0d1b-45f7-947c-73fa82175ee8",\r
- "port-type": "internal",\r
- "bandwidth": 128\r
- },\r
- {\r
- "port-id": "5f965841-2e92-4317-a550-4be57d706896",\r
- "external-ip-prefixes": {\r
- "external-ip-prefix": [\r
- "192.168.12.0/24"\r
- ]\r
- },\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "81e7f41a-be2c-4986-ac1d-11fbd4062be4",\r
- "port-type": "internal",\r
- "bandwidth": 0\r
- },\r
- {\r
- "port-id": "c3ea674e-3dfb-492b-98d4-94b5f3b826e5",\r
- "external-ip-prefixes": {\r
- "external-ip-prefix": [\r
- "192.168.12.0/24"\r
- ]\r
- },\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "c04b0c95-b19b-4d29-962d-bb88ee271703",\r
- "external-ip-prefixes": {\r
- "external-ip-prefix": [\r
- "192.168.12.0/24"\r
- ]\r
- },\r
- "port-type": "internal"\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "node-type": "vswitch",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "fe8a0153-2a95-4473-8b62-16a6542c9212",\r
- "external-mac-addresses": {\r
- "external-mac-address": [\r
- "08:00:27:a0:a9:b3"\r
- ]\r
- },\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2:2"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- },\r
- {\r
- "port-id": "f7782068-8bf2-4ffb-a432-447a5cb708c4",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "7cb2dda8-3cd2-4d84-996a-1d61aa0358a5",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "f6171160-ef25-45e9-8251-7a44468a9a68",\r
- "port-type": "internal"\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "node-type": "vswitch",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "34bca859-1b88-4d5a-b564-7d9080063609",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "707d56c8-4aee-4466-9383-503ecedd31c3",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "32ea562d-5ba2-4c84-8560-9f0b4f8dc3ae",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "c0284004-7b36-4bda-ab98-3f33a67655db",\r
- "external-mac-addresses": {\r
- "external-mac-address": [\r
- "00:00:00:00:00:01"\r
- ]\r
- },\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1:2"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "868cf78a-54b7-495d-9ae7-a8fa3f2c7883",\r
- "node-type": "vrouter",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "9fb8376a-f286-489a-bde4-d5adde1c28c8",\r
- "port-type": "internal",\r
- "bandwidth": 0\r
- },\r
- {\r
- "port-id": "b743e2d7-bec1-4e88-b2f8-0c3438322e03",\r
- "port-type": "internal",\r
- "bandwidth": 0\r
- },\r
- {\r
- "port-id": "57c62f69-536a-4628-8d03-a3bf230ac607",\r
- "external-ip-prefixes": {\r
- "external-ip-prefix": [\r
- "192.168.11.0/24"\r
- ]\r
- },\r
- "port-type": "internal"\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "e280be82-6354-4cd3-b8ca-7a41e7acc448",\r
- "node-type": "vrouter",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:4"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "01a637dd-55c9-4d96-8729-91538346001f",\r
- "port-type": "internal",\r
- "bandwidth": 128\r
- },\r
- {\r
- "port-id": "1b10a84d-247c-40b7-b4e6-6e3e0b140cda",\r
- "external-ip-prefixes": {\r
- "external-ip-prefix": [\r
- "192.168.13.0/24"\r
- ]\r
- },\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:4:2"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "80213cce-4e1b-4b32-8d71-e2d68fedc50d",\r
- "node-type": "vrouter",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "3ac1b718-b541-4df4-8e7b-a56407673cbf",\r
- "port-type": "internal",\r
- "bandwidth": 0\r
- },\r
- {\r
- "port-id": "89f43bd8-e6f7-4aea-9fb2-936f6255bf4b",\r
- "external-ip-prefixes": {\r
- "external-ip-prefix": [\r
- "172.168.1.0/24"\r
- ]\r
- },\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3:4"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "node-type": "vswitch",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "57c413cd-8b84-4eb9-80d1-b67b3b187687",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "3ccecbc5-6871-448e-bfe7-7da0d8d617da",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "7ac662fe-1684-445e-9253-9b55a3cbd03c",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "78baf6e4-5df3-45b2-be20-107844d71d87",\r
- "external-mac-addresses": {\r
- "external-mac-address": [\r
- "00:00:00:00:00:02"\r
- ]\r
- },\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2:1"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "520bdfdc-ecd4-4a3b-ab64-7bdd5f178add",\r
- "node-type": "vswitch",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "58efb0ef-eb99-4afe-bfaa-ee1d6f98e235",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "2ec42067-0694-497f-8fd6-142d5e1e2820",\r
- "external-mac-addresses": {\r
- "external-mac-address": [\r
- "00:00:00:00:00:03"\r
- ]\r
- },\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1:1"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- "virtual-arps": {\r
- "virtual-arp": [\r
- {\r
- "ip-address": "192.168.12.4",\r
- "node-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "mac-address": "08:00:27:a0:a9:b3",\r
- "port-id": "fe8a0153-2a95-4473-8b62-16a6542c9212"\r
- },\r
- {\r
- "ip-address": "192.168.11.2",\r
- "node-id": "520bdfdc-ecd4-4a3b-ab64-7bdd5f178add",\r
- "mac-address": "00:00:00:00:00:03",\r
- "port-id": "2ec42067-0694-497f-8fd6-142d5e1e2820"\r
- },\r
- {\r
- "ip-address": "192.168.12.2",\r
- "node-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "mac-address": "00:00:00:00:00:01",\r
- "port-id": "c0284004-7b36-4bda-ab98-3f33a67655db"\r
- },\r
- {\r
- "ip-address": "192.168.12.3",\r
- "node-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "mac-address": "00:00:00:00:00:02",\r
- "port-id": "78baf6e4-5df3-45b2-be20-107844d71d87"\r
- }\r
- ]\r
- },\r
- "virtual-links": {\r
- "virtual-link": [\r
- {\r
- "link-id": "b19b3f5c-0fb3-4dca-98b5-5136b406e988",\r
- "src-node-id": "868cf78a-54b7-495d-9ae7-a8fa3f2c7883",\r
- "delay": 0,\r
- "dest-port-id": "3ac1b718-b541-4df4-8e7b-a56407673cbf",\r
- "metric": 0,\r
- "bandwidth": 0,\r
- "dest-node-id": "80213cce-4e1b-4b32-8d71-e2d68fedc50d",\r
- "src-port-id": "b743e2d7-bec1-4e88-b2f8-0c3438322e03"\r
- },\r
- {\r
- "link-id": "6632b4c7-a794-4e14-a2c7-872e81277d94",\r
- "src-node-id": "520bdfdc-ecd4-4a3b-ab64-7bdd5f178add",\r
- "delay": 0,\r
- "dest-port-id": "57c62f69-536a-4628-8d03-a3bf230ac607",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "868cf78a-54b7-495d-9ae7-a8fa3f2c7883",\r
- "src-port-id": "58efb0ef-eb99-4afe-bfaa-ee1d6f98e235"\r
- },\r
- {\r
- "link-id": "8b2218cf-fbbb-4e14-85ca-694ceac1edfb",\r
- "src-node-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "delay": 0,\r
- "dest-port-id": "f7782068-8bf2-4ffb-a432-447a5cb708c4",\r
- "metric": 2,\r
- "bandwidth": 0,\r
- "dest-node-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "src-port-id": "707d56c8-4aee-4466-9383-503ecedd31c3"\r
- },\r
- {\r
- "link-id": "4b591338-e82f-4b8b-a7c4-afb241549455",\r
- "src-node-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "delay": 0,\r
- "dest-port-id": "7ac662fe-1684-445e-9253-9b55a3cbd03c",\r
- "metric": 0,\r
- "bandwidth": 0,\r
- "dest-node-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "src-port-id": "f6171160-ef25-45e9-8251-7a44468a9a68"\r
- },\r
- {\r
- "link-id": "8cb78a59-146d-48f6-90e0-6fda9165a901",\r
- "src-node-id": "868cf78a-54b7-495d-9ae7-a8fa3f2c7883",\r
- "delay": 0,\r
- "dest-port-id": "81e7f41a-be2c-4986-ac1d-11fbd4062be4",\r
- "metric": 0,\r
- "bandwidth": 0,\r
- "dest-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "src-port-id": "9fb8376a-f286-489a-bde4-d5adde1c28c8"\r
- },\r
- {\r
- "link-id": "110d2527-b282-4126-932f-8c2b9d728f82",\r
- "src-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "delay": 0,\r
- "dest-port-id": "34bca859-1b88-4d5a-b564-7d9080063609",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "src-port-id": "c3ea674e-3dfb-492b-98d4-94b5f3b826e5"\r
- },\r
- {\r
- "link-id": "c00198e9-8b1c-4f12-84f2-5ddc5bbee995",\r
- "src-node-id": "80213cce-4e1b-4b32-8d71-e2d68fedc50d",\r
- "delay": 0,\r
- "dest-port-id": "b743e2d7-bec1-4e88-b2f8-0c3438322e03",\r
- "metric": 0,\r
- "bandwidth": 0,\r
- "dest-node-id": "868cf78a-54b7-495d-9ae7-a8fa3f2c7883",\r
- "src-port-id": "3ac1b718-b541-4df4-8e7b-a56407673cbf"\r
- },\r
- {\r
- "link-id": "98d7b523-9532-4974-825e-c91aa402fe28",\r
- "src-node-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "delay": 0,\r
- "dest-port-id": "5f965841-2e92-4317-a550-4be57d706896",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "src-port-id": "7cb2dda8-3cd2-4d84-996a-1d61aa0358a5"\r
- },\r
- {\r
- "link-id": "ad1e1487-59a5-4fc1-8680-7a1e4d1aaf1a",\r
- "src-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "delay": 0,\r
- "dest-port-id": "3ccecbc5-6871-448e-bfe7-7da0d8d617da",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "src-port-id": "c04b0c95-b19b-4d29-962d-bb88ee271703"\r
- },\r
- {\r
- "link-id": "3909140b-cd9d-4dce-a82f-a8b16d33f20b",\r
- "src-node-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "delay": 0,\r
- "dest-port-id": "32ea562d-5ba2-4c84-8560-9f0b4f8dc3ae",\r
- "metric": 2,\r
- "bandwidth": 0,\r
- "dest-node-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "src-port-id": "57c413cd-8b84-4eb9-80d1-b67b3b187687"\r
- },\r
- {\r
- "link-id": "f24926ee-586f-4434-a56c-b0e77c2b6031",\r
- "src-node-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "delay": 0,\r
- "dest-port-id": "c04b0c95-b19b-4d29-962d-bb88ee271703",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "src-port-id": "3ccecbc5-6871-448e-bfe7-7da0d8d617da"\r
- },\r
- {\r
- "link-id": "866bf38c-8a6b-4c73-8d7b-74b02797171d",\r
- "src-node-id": "e280be82-6354-4cd3-b8ca-7a41e7acc448",\r
- "delay": 0,\r
- "dest-port-id": "ee08bce2-0d1b-45f7-947c-73fa82175ee8",\r
- "metric": 1,\r
- "bandwidth": 128,\r
- "dest-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "src-port-id": "01a637dd-55c9-4d96-8729-91538346001f"\r
- },\r
- {\r
- "link-id": "16e4dfd8-74e4-44ba-8a7d-0ddba8e00b52",\r
- "src-node-id": "868cf78a-54b7-495d-9ae7-a8fa3f2c7883",\r
- "delay": 0,\r
- "dest-port-id": "58efb0ef-eb99-4afe-bfaa-ee1d6f98e235",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "520bdfdc-ecd4-4a3b-ab64-7bdd5f178add",\r
- "src-port-id": "57c62f69-536a-4628-8d03-a3bf230ac607"\r
- },\r
- {\r
- "link-id": "8295f474-0788-4431-ab0d-124b0c3d0b5f",\r
- "src-node-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "delay": 0,\r
- "dest-port-id": "f6171160-ef25-45e9-8251-7a44468a9a68",\r
- "metric": 0,\r
- "bandwidth": 0,\r
- "dest-node-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "src-port-id": "7ac662fe-1684-445e-9253-9b55a3cbd03c"\r
- },\r
- {\r
- "link-id": "63d55804-3204-4119-8187-7bd794061986",\r
- "src-node-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "delay": 0,\r
- "dest-port-id": "57c413cd-8b84-4eb9-80d1-b67b3b187687",\r
- "metric": 2,\r
- "bandwidth": 0,\r
- "dest-node-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "src-port-id": "32ea562d-5ba2-4c84-8560-9f0b4f8dc3ae"\r
- },\r
- {\r
- "link-id": "92e5487b-ef90-4769-9ca8-10f60ab43c83",\r
- "src-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "delay": 0,\r
- "dest-port-id": "01a637dd-55c9-4d96-8729-91538346001f",\r
- "metric": 1,\r
- "bandwidth": 128,\r
- "dest-node-id": "e280be82-6354-4cd3-b8ca-7a41e7acc448",\r
- "src-port-id": "ee08bce2-0d1b-45f7-947c-73fa82175ee8"\r
- },\r
- {\r
- "link-id": "fad38c1a-153b-4814-bf12-8d40887808b3",\r
- "src-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "delay": 0,\r
- "dest-port-id": "7cb2dda8-3cd2-4d84-996a-1d61aa0358a5",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "src-port-id": "5f965841-2e92-4317-a550-4be57d706896"\r
- },\r
- {\r
- "link-id": "5467514b-9598-4767-8c76-f8e9d23a69b3",\r
- "src-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "delay": 0,\r
- "dest-port-id": "9fb8376a-f286-489a-bde4-d5adde1c28c8",\r
- "metric": 0,\r
- "bandwidth": 0,\r
- "dest-node-id": "868cf78a-54b7-495d-9ae7-a8fa3f2c7883",\r
- "src-port-id": "81e7f41a-be2c-4986-ac1d-11fbd4062be4"\r
- },\r
- {\r
- "link-id": "316d4aa1-88ff-4b4b-bff2-fa8089f04e83",\r
- "src-node-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "delay": 0,\r
- "dest-port-id": "707d56c8-4aee-4466-9383-503ecedd31c3",\r
- "metric": 2,\r
- "bandwidth": 0,\r
- "dest-node-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "src-port-id": "f7782068-8bf2-4ffb-a432-447a5cb708c4"\r
- },\r
- {\r
- "link-id": "ae7131f1-7207-4693-a149-e497738b1081",\r
- "src-node-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "delay": 0,\r
- "dest-port-id": "c3ea674e-3dfb-492b-98d4-94b5f3b826e5",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "src-port-id": "34bca859-1b88-4d5a-b564-7d9080063609"\r
- }\r
- ]\r
- },\r
- "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
- "virtual-routes": {},\r
- "virtual-paths": {}\r
- }\r
- ]\r
- }\r
-}\r
-var VnMappingJson={\r
- "intent-vn-mapping-results": {\r
- "user-intent-vn-mapping": [\r
- {\r
- "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
- "intent-vn-mapping-result": [\r
- {\r
- "intent-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "af948b19-9636-461f-8a46-4d7d340d17e5",\r
- "parent-virtual-resource-entity-id": "e280be82-6354-4cd3-b8ca-7a41e7acc448",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "1b10a84d-247c-40b7-b4e6-6e3e0b140cda"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "6c787caa-156a-49ed-8546-547bdccf283c",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "88d1b2f5-f3f6-4060-ab94-f99ff2db1ca1",\r
- "parent-virtual-resource-entity-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "78baf6e4-5df3-45b2-be20-107844d71d87"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "e0d56fee-7235-4748-a2a1-eb5e3733d866",\r
- "intent-type": "connection",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "a4cdf6b5-adcf-4533-b7b0-aed75fa32bbb",\r
- "virtual-resource-type": "vlink",\r
- "order": 0,\r
- "virtual-resource-entity-id": "c00198e9-8b1c-4f12-84f2-5ddc5bbee995"\r
- },\r
- {\r
- "virtual-resource-id": "f4025170-a20b-4a7f-aad1-1f1d4c4c4b4c",\r
- "virtual-resource-type": "vlink",\r
- "order": 0,\r
- "virtual-resource-entity-id": "b19b3f5c-0fb3-4dca-98b5-5136b406e988"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "293c7f66-8a22-4a20-8a91-0fe672431436",\r
- "virtual-resource-type": "vnode",\r
- "order": 0,\r
- "virtual-resource-entity-id": "868cf78a-54b7-495d-9ae7-a8fa3f2c7883"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "d463232f-363f-491c-a6f5-097ed0a794d3",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "a267bedc-fb63-4c5b-9862-87794345695c",\r
- "parent-virtual-resource-entity-id": "80213cce-4e1b-4b32-8d71-e2d68fedc50d",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "89f43bd8-e6f7-4aea-9fb2-936f6255bf4b"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "b49e3960-c08d-4fff-b9fc-08b65ebcde2c",\r
- "intent-type": "connection",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "6bd8c604-dbb7-473b-85eb-4e6df01fa17b",\r
- "virtual-resource-type": "vlink",\r
- "order": 0,\r
- "virtual-resource-entity-id": "8cb78a59-146d-48f6-90e0-6fda9165a901"\r
- },\r
- {\r
- "virtual-resource-id": "39b09f4c-eaeb-4a87-a1ee-bf209926328b",\r
- "virtual-resource-type": "vlink",\r
- "order": 0,\r
- "virtual-resource-entity-id": "5467514b-9598-4767-8c76-f8e9d23a69b3"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "30da6667-608e-4d2f-bb50-79e5cabcc523",\r
- "intent-type": "connection",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "a7997c59-6880-479d-a50a-7a00ee21ed01",\r
- "virtual-resource-type": "vlink",\r
- "order": 0,\r
- "virtual-resource-entity-id": "866bf38c-8a6b-4c73-8d7b-74b02797171d"\r
- },\r
- {\r
- "virtual-resource-id": "be484e6c-7f80-4d70-b244-d394065e98e1",\r
- "virtual-resource-type": "vlink",\r
- "order": 0,\r
- "virtual-resource-entity-id": "92e5487b-ef90-4769-9ca8-10f60ab43c83"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "1eaf9a67-a171-42a8-9282-71cf702f61dd",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "5dc78465-e253-430d-bffc-c4c62ea8159a",\r
- "parent-virtual-resource-entity-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "c0284004-7b36-4bda-ab98-3f33a67655db"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "175425f7-c9c9-474a-962c-70cb6c180d4d",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "52eace82-2f94-4d1d-b135-1a2fb928b741",\r
- "virtual-resource-type": "vnode",\r
- "order": 0,\r
- "virtual-resource-entity-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "7b796915-adf4-4356-b5ca-de005ac410c1",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "acfe47d3-274a-4ce5-bcd9-3a8e947ef666",\r
- "parent-virtual-resource-entity-id": "520bdfdc-ecd4-4a3b-ab64-7bdd5f178add",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "2ec42067-0694-497f-8fd6-142d5e1e2820"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "22282cca-9a13-4d0c-a67e-a933ebb0b0ae",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "dcba1206-0961-4571-89a5-a96bcdce2e50",\r
- "parent-virtual-resource-entity-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "fe8a0153-2a95-4473-8b62-16a6542c9212"\r
- }\r
- ]\r
- }\r
- ],\r
- "virtual-network-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b"\r
- }\r
- ]\r
- }\r
-}\r
-var PnMappingJson={\r
- "vn-pn-mapping-results": {\r
- "user-vn-pn-mapping": [\r
- {\r
- "virtual-network-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b",\r
- "vn-pn-mapping-result": [\r
- {\r
- "virtual-resource-entity-id": "78baf6e4-5df3-45b2-be20-107844d71d87",\r
- "parent-physical-resource-entity-id": "openflow:2",\r
- "parent-virtual-resource-entity-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "virtual-resource-id": "ad67bbcf-030a-44cb-8694-a25007ce05e3",\r
- "physical-resource-id": "e8135c7c-a1e0-41c0-843b-9c2d4bd87761",\r
- "physical-resource-entity-id": "openflow:2:1",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "fad38c1a-153b-4814-bf12-8d40887808b3",\r
- "virtual-resource-id": "01b5783e-db6e-4103-83c9-2445f5a72752",\r
- "physical-resource-id": "f856a1c9-9c1d-4e9f-873e-1a4543b195f0",\r
- "physical-resource-entity-id": "c231b5a3-7752-4f78-b8eb-b023ad4bea2f",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "fe8a0153-2a95-4473-8b62-16a6542c9212",\r
- "parent-physical-resource-entity-id": "openflow:2",\r
- "parent-virtual-resource-entity-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "virtual-resource-id": "e8121faa-0109-4cec-89ef-54a3bfcd78ff",\r
- "physical-resource-id": "b1682914-fb2b-4bbb-b5a0-a9bd43fbfa3e",\r
- "physical-resource-entity-id": "openflow:2:2",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "80213cce-4e1b-4b32-8d71-e2d68fedc50d",\r
- "virtual-resource-id": "fa7d0f51-3a65-46a6-a428-a1d6fc927c1f",\r
- "physical-resource-id": "f992d18f-1d8a-43fb-9b4f-e2c7d63210e8",\r
- "physical-resource-entity-id": "openflow:3",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "5467514b-9598-4767-8c76-f8e9d23a69b3",\r
- "virtual-resource-id": "f702bebc-725a-41c2-89e4-06bcde838282",\r
- "physical-resource-id": "a1836436-17ff-495f-be9a-39e44bb77e26",\r
- "physical-resource-entity-id": "3b9d1480-df24-4b0b-ba58-8c92605fe917",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "6632b4c7-a794-4e14-a2c7-872e81277d94",\r
- "virtual-resource-id": "9b3fe3f6-2959-460c-a354-7d3ccc571554",\r
- "physical-resource-id": "2d70ca54-9b42-47dc-8632-0c69c1e72e01",\r
- "physical-resource-entity-id": "cb9b13ad-0172-43f5-9678-69859698071d",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "3909140b-cd9d-4dce-a82f-a8b16d33f20b",\r
- "virtual-resource-id": "6b6250dd-2f79-424a-b6d0-4a80b8059e20",\r
- "physical-resource-id": "f43d01be-ea31-40d1-9263-f019f78ccf12",\r
- "physical-resource-entity-id": "5fc169b2-1209-4663-92c3-031100923f6f",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "520bdfdc-ecd4-4a3b-ab64-7bdd5f178add",\r
- "virtual-resource-id": "6b91164b-81fd-4781-9042-d09ee6eac4da",\r
- "physical-resource-id": "39f2ba50-661b-484a-91b2-53a845bbe0f2",\r
- "physical-resource-entity-id": "openflow:1",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "1b10a84d-247c-40b7-b4e6-6e3e0b140cda",\r
- "parent-physical-resource-entity-id": "openflow:4",\r
- "parent-virtual-resource-entity-id": "e280be82-6354-4cd3-b8ca-7a41e7acc448",\r
- "virtual-resource-id": "0b34cbe8-20ab-49f6-b717-b9e878670581",\r
- "physical-resource-id": "dded9100-be4c-4fb9-9e70-656bf3845309",\r
- "physical-resource-entity-id": "openflow:4:2",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "bfc9341e-52d1-4e00-a992-110140be11b4",\r
- "virtual-resource-id": "98787bce-8bad-480b-a786-47932246ec4f",\r
- "physical-resource-id": "f0c5e55f-2256-4e01-b8b7-6fea603c90ba",\r
- "physical-resource-entity-id": "openflow:2",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "b0cec72b-376f-47f4-b7ae-44c0eb10d491",\r
- "virtual-resource-id": "4f7de648-9a9a-4e4a-ac41-01e6b2ff146a",\r
- "physical-resource-id": "e50ff1b1-e386-45d8-8ff3-70edb1cd4dbf",\r
- "physical-resource-entity-id": "openflow:2",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "316d4aa1-88ff-4b4b-bff2-fa8089f04e83",\r
- "virtual-resource-id": "072ec5ca-4e7c-47ab-934b-709de978b85c",\r
- "physical-resource-id": "3deee815-b701-4a21-b65d-d1d55ff755ef",\r
- "physical-resource-entity-id": "ba0726d2-c72f-4b3e-b972-72da39430537",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "866bf38c-8a6b-4c73-8d7b-74b02797171d",\r
- "virtual-resource-id": "a368c2b2-8bbb-4927-8966-bb4e02e8258e",\r
- "physical-resource-id": "5a9223b1-3a6a-4dbb-9f34-d3b1449f9dae",\r
- "physical-resource-entity-id": "6657f46b-edd2-47fe-b3fc-7b5aa16c7b97",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "f24926ee-586f-4434-a56c-b0e77c2b6031",\r
- "virtual-resource-id": "72f002b8-3dab-4c04-ad66-646453f62337",\r
- "physical-resource-id": "23686c36-42b7-4ece-a626-c497f8817a93",\r
- "physical-resource-entity-id": "f84b9fda-b3f6-4631-a829-5089274093b0",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "110d2527-b282-4126-932f-8c2b9d728f82",\r
- "virtual-resource-id": "145fea68-5f44-4732-91da-91f0db169e49",\r
- "physical-resource-id": "f62b400e-c849-4c18-8a2f-3b2a841ff7e4",\r
- "physical-resource-entity-id": "aab18b50-3bf6-4fde-aac1-968ffe22f518",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "c0284004-7b36-4bda-ab98-3f33a67655db",\r
- "parent-physical-resource-entity-id": "openflow:1",\r
- "parent-virtual-resource-entity-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "virtual-resource-id": "b8ab2d49-ff0c-4891-87a6-1980ad83c7c3",\r
- "physical-resource-id": "211d94d3-c4c7-40b7-9c2e-90ff5a4d976a",\r
- "physical-resource-entity-id": "openflow:1:2",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "b19b3f5c-0fb3-4dca-98b5-5136b406e988",\r
- "virtual-resource-id": "b5dc7980-2332-47d4-80d2-0737f28639d2",\r
- "physical-resource-id": "8bca1f44-3f1f-4271-8079-dd854c9702d2",\r
- "physical-resource-entity-id": "847ce4e6-d631-4d90-b2f3-dcfd56dbce3a",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "8295f474-0788-4431-ab0d-124b0c3d0b5f",\r
- "virtual-resource-id": "04a08cc1-af4a-4fbb-90f4-b964b9d07abd",\r
- "physical-resource-id": "fa3d22e1-7957-4e7f-86d5-4cb12f035620",\r
- "physical-resource-entity-id": "e0f22266-e0c2-4467-b143-800a7b212a98",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "d52e6bb0-93aa-4bf8-88cf-f24b11651a88",\r
- "virtual-resource-id": "0c9f60d7-a7e1-423c-88bf-28fa793ecb00",\r
- "physical-resource-id": "d175b146-c4fc-4069-82b9-853131e8023f",\r
- "physical-resource-entity-id": "openflow:3",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "8b2218cf-fbbb-4e14-85ca-694ceac1edfb",\r
- "virtual-resource-id": "c6078cf6-9ed4-4046-b994-4dc4e0b88dd5",\r
- "physical-resource-id": "86d6d843-7f35-49e1-a344-0c602017ac5d",\r
- "physical-resource-entity-id": "eaa935ac-c511-4541-80cd-4a1640ae2246",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "ae7131f1-7207-4693-a149-e497738b1081",\r
- "virtual-resource-id": "b34e2039-44f1-458e-a731-6061bbfc76bb",\r
- "physical-resource-id": "25dad0dc-0b3e-4dca-83b9-ca1118ae9ff1",\r
- "physical-resource-entity-id": "61c4597d-02a5-4609-8756-955024691a17",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "98d7b523-9532-4974-825e-c91aa402fe28",\r
- "virtual-resource-id": "9d3cc16c-ce20-484a-8d2f-b083ed077ef7",\r
- "physical-resource-id": "56b4a39c-c1c3-4eba-9b80-1e37948e6461",\r
- "physical-resource-entity-id": "765e80be-6232-498d-b095-3b2c59448535",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "868cf78a-54b7-495d-9ae7-a8fa3f2c7883",\r
- "virtual-resource-id": "33393811-e461-4d55-aeda-837cdafad7c5",\r
- "physical-resource-id": "e001fe0a-e035-4106-8dda-883445e15352",\r
- "physical-resource-entity-id": "openflow:3",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "92e5487b-ef90-4769-9ca8-10f60ab43c83",\r
- "virtual-resource-id": "0ce90b95-dbc5-40fe-aa62-0609b9dee100",\r
- "physical-resource-id": "c0a078ad-c7dc-4aad-80a1-4d7fad5f028e",\r
- "physical-resource-entity-id": "4fdc5a09-ceca-461a-b3d3-1c3a9506dc74",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "4b591338-e82f-4b8b-a7c4-afb241549455",\r
- "virtual-resource-id": "f3f73508-a241-4a76-af48-7bd706cfd4ea",\r
- "physical-resource-id": "7041697c-fe57-4baa-8548-2412d41a830b",\r
- "physical-resource-entity-id": "23f80b16-76d1-424c-9a71-aacd60a62bcd",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "16e4dfd8-74e4-44ba-8a7d-0ddba8e00b52",\r
- "virtual-resource-id": "e668751f-13b0-4816-80b1-643bd08130db",\r
- "physical-resource-id": "1a328854-19ca-4331-b1cd-f8b915c9553f",\r
- "physical-resource-entity-id": "a710b9b8-5abf-4c59-9afd-88ccf8d935b0",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "e280be82-6354-4cd3-b8ca-7a41e7acc448",\r
- "virtual-resource-id": "9bd4be7b-98ea-4f08-ac8c-d81880fe7727",\r
- "physical-resource-id": "f03f81e3-87ff-40bd-99ce-7ade5df4bae5",\r
- "physical-resource-entity-id": "openflow:4",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "63d55804-3204-4119-8187-7bd794061986",\r
- "virtual-resource-id": "479e807e-138e-45ba-a02b-76e75ee5482c",\r
- "physical-resource-id": "6010e2df-e031-4f50-8f56-f152347ddda5",\r
- "physical-resource-entity-id": "7b875b56-ce40-4fcd-ac76-b361d0311d8f",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "c00198e9-8b1c-4f12-84f2-5ddc5bbee995",\r
- "virtual-resource-id": "14e197fa-0c67-427c-bfb9-da053aa4bf62",\r
- "physical-resource-id": "ba0cda05-e69b-4f43-bfcd-6ea46dc95775",\r
- "physical-resource-entity-id": "4ce046d2-0c20-43c7-b7f8-fa441e07d443",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "2ec42067-0694-497f-8fd6-142d5e1e2820",\r
- "parent-physical-resource-entity-id": "openflow:1",\r
- "parent-virtual-resource-entity-id": "520bdfdc-ecd4-4a3b-ab64-7bdd5f178add",\r
- "virtual-resource-id": "87ead73f-ac56-473b-9de2-5e2755a781c2",\r
- "physical-resource-id": "2fc96459-bd96-4010-ab12-4bb81b6639ed",\r
- "physical-resource-entity-id": "openflow:1:1",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "89f43bd8-e6f7-4aea-9fb2-936f6255bf4b",\r
- "parent-physical-resource-entity-id": "openflow:3",\r
- "parent-virtual-resource-entity-id": "80213cce-4e1b-4b32-8d71-e2d68fedc50d",\r
- "virtual-resource-id": "52101662-9a12-4e67-b35e-3389e0e19faf",\r
- "physical-resource-id": "e4e39b0b-3e94-49e2-9056-af969c866a2a",\r
- "physical-resource-entity-id": "openflow:3:4",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "ad1e1487-59a5-4fc1-8680-7a1e4d1aaf1a",\r
- "virtual-resource-id": "514d8aa7-df8a-4fbe-83a7-596663b67f6d",\r
- "physical-resource-id": "7b88b0b2-af4b-4de4-892c-52ec34103ed7",\r
- "physical-resource-entity-id": "bdd1e0cb-72aa-4f04-a2db-a07a15c62d61",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "8cb78a59-146d-48f6-90e0-6fda9165a901",\r
- "virtual-resource-id": "62e24268-8d6b-4832-baa3-0756ccd16140",\r
- "physical-resource-id": "e6d0bdcb-6b5a-449c-97cd-aceeb58ce72f",\r
- "physical-resource-entity-id": "cb3de13d-cd6f-4f32-9596-09ddbb6d1c44",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "2698e79a-4a9e-4b9a-ae17-a5698a999bc9",\r
- "virtual-resource-id": "48cf54ae-11e7-46bd-a1e0-2747853d2e1f",\r
- "physical-resource-id": "5af260e5-7b06-4552-94d1-34643d4200df",\r
- "physical-resource-entity-id": "openflow:1",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- }\r
- ],\r
- "user-id": "14ce424a-3e50-4a2a-ad5c-b29845158c8b"\r
- }\r
- ]\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-var userinfo ={\r
- "users": {\r
- "user": [\r
- {\r
- "user-id": "af4fc2be-e3f4-4388-a8ef-3aabae872f2b",\r
- "user-role": "tenant",\r
- "user-password": "abcd",\r
- "user-name": "user1",\r
- "objects": {\r
- "node": [\r
- {\r
- "node-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f",\r
- "property": [\r
- {\r
- "property-name": "ac-info-network",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.11.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ac-info-protocol",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "static",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:4:2",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "ext-group",\r
- "node-name": "headquarter"\r
- },\r
- {\r
- "node-id": "41ee9aad-5f61-469d-99a9-e691d2a1de05",\r
- "node-type": "chain-group",\r
- "node-name": "chain1",\r
- "sub-node": [\r
- {\r
- "node-id": "c2cd9de6-ab25-4d3f-bff2-c4d785a41995",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "c2cd9de6-ab25-4d3f-bff2-c4d785a419952",\r
- "order": 2\r
- },\r
- {\r
- "node-id": "a5a96dc7-51dd-44a5-802b-7e67a309fb36",\r
- "order": 1\r
- }\r
- \r
- ]\r
- },\r
- {\r
- "node-id": "c2cd9de6-ab25-4d3f-bff2-c4d785a41995",\r
- "property": [\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:1:1",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "operating-mode",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "fw",\r
- "node-name": "fw1"\r
- },\r
- {\r
- "node-id": "c2cd9de6-ab25-4d3f-bff2-c4d785a419952",\r
- "property": [\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:1:1",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "operating-mode",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "fw",\r
- "node-name": "fw2"\r
- },\r
- {\r
- "node-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca",\r
- "property": [\r
- {\r
- "property-name": "ac-info-network",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ip-prefix",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "192.168.12.0/24",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "ac-info-protocol",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "static",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:3:4",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "ext-group",\r
- "node-name": "branch"\r
- },\r
- {\r
- "node-id": "a5a96dc7-51dd-44a5-802b-7e67a309fb36",\r
- "property": [\r
- {\r
- "property-name": "location",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "openflow:2:2",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- },\r
- {\r
- "property-name": "operating-mode",\r
- "property-values": {\r
- "string-value": [\r
- {\r
- "value": "layer3",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "node-type": "cache",\r
- "node-name": "cache2"\r
- }\r
- ],\r
- "connection": [\r
- {\r
- "connection-id": "fed2b570-2e80-4914-a5af-040594b651b9",\r
- "connection-type": "p2p",\r
- "end-node": [\r
- {\r
- "node-id": "41ee9aad-5f61-469d-99a9-e691d2a1de05",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca",\r
- "order": 0\r
- }\r
- ],\r
- "connection-name": "c3"\r
- },\r
- {\r
- "connection-id": "7175bac3-b785-2278-90ed-613480e354e8",\r
- "connection-type": "p2p",\r
- "end-node": [\r
- {\r
- "node-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca",\r
- "order": 0\r
- }\r
- ],\r
- "connection-name": "c1"\r
- },\r
- {\r
- "connection-id": "9397bac3-d9a7-449a-b20f-8356a2f3760a",\r
- "connection-type": "p2p",\r
- "end-node": [\r
- {\r
- "node-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f",\r
- "order": 0\r
- },\r
- {\r
- "node-id": "41ee9aad-5f61-469d-99a9-e691d2a1de05",\r
- "order": 0\r
- }\r
- ],\r
- "connection-name": "c2"\r
- }\r
- ],\r
- "flow": [\r
- {\r
- "flow-id": "cf48eeee-882e-435a-adf4-ea22ba88331f",\r
- "match-item": [\r
- {\r
- "match-item-name": "dst-ip",\r
- "match-item-value": {\r
- "string-value": "192.168.11.0/24"\r
- }\r
- },\r
- {\r
- "match-item-name": "src-ip",\r
- "match-item-value": {\r
- "string-value": "192.168.12.0/24"\r
- }\r
- }\r
- ],\r
- "flow-name": "f1"\r
- }\r
- ]\r
- },\r
- "operations": {\r
- "operation": [\r
- {\r
- "operation-id": "619ee3bb-1e40-480f-b0fa-a331820a5518",\r
- "priority": 0,\r
- "action": [\r
- {\r
- "action-name": "go-through",\r
- "order": 0,\r
- "parameter-values": {\r
- "string-value": [\r
- {\r
- "value": "41ee9aad-5f61-469d-99a9-e691d2a1de05",\r
- "order": 0\r
- }\r
- ]\r
- }\r
- }\r
- ],\r
- "target-object": "cf48eeee-882e-435a-adf4-ea22ba88331f",\r
- "operation-name": "o1"\r
- }\r
- ]\r
- }\r
- }\r
- ]\r
- }\r
-}\r
-//console.log(userinfo);\r
-var physicalJson= {\r
- "physical-network": {\r
- "physical-nodes": {\r
- "physical-node": [\r
- {\r
- "node-id": "openflow:3",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3"\r
- }\r
- }\r
- ],\r
- "node-type": "router",\r
- "physical-port": [\r
- {\r
- "port-id": "openflow:3:1",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3:1"\r
- }\r
- }\r
- ],\r
- "port-type": "internal",\r
- "mac-address": "D2:69:26:45:3C:B4",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:3:2",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3:2"\r
- }\r
- }\r
- ],\r
- "port-type": "internal",\r
- "mac-address": "82:F5:6A:E7:C2:51",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:3:3",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3:3"\r
- }\r
- }\r
- ],\r
- "port-type": "internal",\r
- "mac-address": "7E:BD:57:AB:AD:12",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:3:4",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3:4"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "00:0C:29:98:7E:1D",\r
- "bandwidth": 10240\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "openflow:4",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:4"\r
- }\r
- }\r
- ],\r
- "node-type": "router",\r
- "physical-port": [\r
- {\r
- "port-id": "openflow:4:2",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:4:2"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "00:0C:29:98:7E:27",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:4:1",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:4:1"\r
- }\r
- }\r
- ],\r
- "port-type": "internal",\r
- "mac-address": "16:4E:17:55:69:EF",\r
- "bandwidth": 10240\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "openflow:1",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1"\r
- }\r
- }\r
- ],\r
- "node-type": "router",\r
- "physical-port": [\r
- {\r
- "port-id": "openflow:1:1",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1:1"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "00:0C:29:98:7E:09",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:1:2",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1:2"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "9E:A7:FD:52:0E:4F",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:1:3",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1:3"\r
- }\r
- }\r
- ],\r
- "port-type": "internal",\r
- "mac-address": "6E:93:61:CF:19:D0",\r
- "bandwidth": 10240\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "openflow:2",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2"\r
- }\r
- }\r
- ],\r
- "node-type": "router",\r
- "physical-port": [\r
- {\r
- "port-id": "openflow:2:3",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2:3"\r
- }\r
- }\r
- ],\r
- "port-type": "internal",\r
- "mac-address": "F2:23:F9:75:DA:F8",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:2:2",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2:2"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "00:0C:29:98:7E:13",\r
- "bandwidth": 10240\r
- },\r
- {\r
- "port-id": "openflow:2:1",\r
- "attribute": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2:1"\r
- }\r
- }\r
- ],\r
- "port-type": "external",\r
- "mac-address": "6E:7E:E6:D8:CA:56",\r
- "bandwidth": 10240\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- "physical-links": {\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:4:2",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "dest-port-id": "openflow:2:2",\r
- "src-port-id": "openflow:4:2",\r
- "dest-node-id": "openflow:2",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:4"\r
- },\r
- {\r
- "link-id": "openflow:4:1",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:4:1",\r
- "dest-node-id": "openflow:3",\r
- "metric": 1,\r
- "dest-port-id": "openflow:3:3",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:4"\r
- },\r
- {\r
- "link-id": "openflow:2:3",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:2:3",\r
- "dest-node-id": "openflow:3",\r
- "metric": 1,\r
- "dest-port-id": "openflow:3:2",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:2"\r
- },\r
- {\r
- "link-id": "openflow:3:1",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:3:1",\r
- "dest-node-id": "openflow:1",\r
- "metric": 1,\r
- "dest-port-id": "openflow:1:3",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:3"\r
- },\r
- {\r
- "link-id": "openflow:1:3",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:1:3",\r
- "dest-node-id": "openflow:3",\r
- "metric": 1,\r
- "dest-port-id": "openflow:3:1",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:1"\r
- },\r
- {\r
- "link-id": "openflow:3:3",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:3:3",\r
- "dest-node-id": "openflow:4",\r
- "metric": 1,\r
- "dest-port-id": "openflow:4:1",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:3"\r
- },\r
- {\r
- "link-id": "openflow:3:2",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "src-port-id": "openflow:3:2",\r
- "dest-node-id": "openflow:2",\r
- "metric": 1,\r
- "dest-port-id": "openflow:2:3",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:3"\r
- },\r
- {\r
- "link-id": "openflow:2:2",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "dest-port-id": "openflow:4:2",\r
- "src-port-id": "openflow:2:2",\r
- "dest-node-id": "openflow:4",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:2"\r
- },\r
- {\r
- "link-id": "openflow:3:4",\r
- "loss-rate": 1,\r
- "delay": 1,\r
- "dest-port-id": "openflow:4:2",\r
- "src-port-id": "openflow:3:4",\r
- "dest-node-id": "openflow:4",\r
- "bandwidth": 10240,\r
- "src-node-id": "openflow:3"\r
- }\r
- ]\r
- },\r
- "physical-paths": {\r
- "physical-path": [\r
- {\r
- "path-id": "d26f3d08-dcd8-4bdb-b74e-d09cc5ab4090",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:3",\r
- "order": 1\r
- },\r
- {\r
- "link-id": "openflow:2:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 2,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "0eec470f-ec46-4390-8c84-4c27ca013255",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:1:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "6065bd5d-5058-41ec-a901-92e184755b52",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:2",\r
- "order": 1\r
- },\r
- {\r
- "link-id": "openflow:1:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 2,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "c8da2902-31d9-49f5-b7a8-ade64c497bea",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:2",\r
- "order": 1\r
- },\r
- {\r
- "link-id": "openflow:4:1",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 2,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "ae567148-9747-4aa7-9fef-b08d282e4d17",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:4:1",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "ae1b6b7a-2725-4f26-8b75-7c21a086a1c4",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:1",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "6592bf47-5953-442e-90d3-e2fde9221fd5",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:3:3",\r
- "order": 0\r
- }\r
- ],\r
- "metric": 1,\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "8b9dbbc9-a895-4adc-9cca-29217c1fa1ff",\r
- "delay": 0,\r
- "physical-link": [\r
- {\r
- "link-id": "openflow:2:3",\r
- "order": 0\r
- },\r
- {\r
- "link-id": "openflow:3:1",\r
- "order": 1\r
- }\r
- ],\r
- "metric": 2,\r
- "bandwidth": 0\r
- }\r
- ]\r
- }\r
- }\r
-}\r
-var virtualJson={\r
- "virtual-networks": {\r
- "virtual-network": [\r
- {\r
- "network-id": "af4fc2be-e3f4-4388-a8ef-3aabae872f2b",\r
- "virtual-nodes": {\r
- "virtual-node": [\r
- {\r
- "node-id": "43429643-c423-4d46-817d-092ac20d3b79",\r
- "node-type": "vrouter",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:4"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "1f0bf4a0-6857-47ec-b2af-2104ef1d0c79",\r
- "external-ip-prefixes": {\r
- "external-ip-prefix": [\r
- "192.168.11.0/24"\r
- ]\r
- },\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:4:2"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- },\r
- {\r
- "port-id": "41a4e6b1-019e-456c-bd99-8fc5f60c3a29",\r
- "port-type": "internal",\r
- "bandwidth": 0\r
- },\r
- {\r
- "port-id": "6c494b58-fabf-48f7-8907-43850cb4607a",\r
- "port-type": "internal"\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "ef802514-a373-4f24-a162-0553ffe13f09",\r
- "node-type": "vrouter",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "a086ba37-a6b7-490a-a3cb-27a31378e096",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "6208bb8d-1489-4aec-bf21-8702d8f69951",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "32ddfaa1-1dd8-434a-8479-362d592521d1",\r
- "external-ip-prefixes": {},\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:2:2"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "7f41bc57-f4ee-42cc-8fac-f25bda374be9",\r
- "node-type": "vrouter",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "6285cebd-5d4a-4a1d-b732-20470240547a",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "e8c938ca-f1d5-450d-a6ca-3cd81119c0ec",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "e427cc5e-93c9-4f5d-adf6-a2dc2b50e57c",\r
- "external-ip-prefixes": {},\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:1:1"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- {\r
- "node-id": "02f661f4-4097-4d2d-8986-5c17e74429ad",\r
- "node-type": "vrouter",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ],\r
- "virtual-port": [\r
- {\r
- "port-id": "5d0faf77-435c-4c19-a129-db6481aa40a5",\r
- "port-type": "internal"\r
- },\r
- {\r
- "port-id": "82712a15-b38f-459c-ae1e-be1e34566a2a",\r
- "external-ip-prefixes": {\r
- "external-ip-prefix": [\r
- "192.168.12.0/24"\r
- ]\r
- },\r
- "port-type": "external",\r
- "physical-resource-requirement": [\r
- {\r
- "attribute-name": "location",\r
- "attribute-value": {\r
- "string-value": "openflow:3:4"\r
- },\r
- "attribute-match-pattern": "equal"\r
- }\r
- ]\r
- },\r
- {\r
- "port-id": "aca59fd4-8958-49e1-a290-a39529a8e699",\r
- "port-type": "internal",\r
- "bandwidth": 0\r
- }\r
- ]\r
- }\r
- ]\r
- },\r
- "virtual-arps": {},\r
- "virtual-links": {\r
- "virtual-link": [\r
- {\r
- "link-id": "7d28e3a4-32bc-4393-b4ac-b5cb3e88bddb",\r
- "src-node-id": "43429643-c423-4d46-817d-092ac20d3b79",\r
- "delay": 0,\r
- "dest-port-id": "a086ba37-a6b7-490a-a3cb-27a31378e096",\r
- "metric": 2,\r
- "bandwidth": 0,\r
- "dest-node-id": "ef802514-a373-4f24-a162-0553ffe13f09",\r
- "src-port-id": "6c494b58-fabf-48f7-8907-43850cb4607a"\r
- },\r
- {\r
- "link-id": "cdf567ba-f523-4ac1-a240-4db08bdc4091",\r
- "src-node-id": "ef802514-a373-4f24-a162-0553ffe13f09",\r
- "delay": 0,\r
- "dest-port-id": "6c494b58-fabf-48f7-8907-43850cb4607a",\r
- "metric": 2,\r
- "bandwidth": 0,\r
- "dest-node-id": "43429643-c423-4d46-817d-092ac20d3b79",\r
- "src-port-id": "a086ba37-a6b7-490a-a3cb-27a31378e096"\r
- },\r
- {\r
- "link-id": "c7f45b8c-a4eb-4b8c-9ecd-2330d9b61d36",\r
- "src-node-id": "7f41bc57-f4ee-42cc-8fac-f25bda374be9",\r
- "delay": 0,\r
- "dest-port-id": "6208bb8d-1489-4aec-bf21-8702d8f69951",\r
- "metric": 2,\r
- "bandwidth": 0,\r
- "dest-node-id": "ef802514-a373-4f24-a162-0553ffe13f09",\r
- "src-port-id": "e8c938ca-f1d5-450d-a6ca-3cd81119c0ec"\r
- },\r
- {\r
- "link-id": "9957beb9-e9a6-47fb-8c94-9be6d56bd427",\r
- "src-node-id": "ef802514-a373-4f24-a162-0553ffe13f09",\r
- "delay": 0,\r
- "dest-port-id": "e8c938ca-f1d5-450d-a6ca-3cd81119c0ec",\r
- "metric": 2,\r
- "bandwidth": 0,\r
- "dest-node-id": "7f41bc57-f4ee-42cc-8fac-f25bda374be9",\r
- "src-port-id": "6208bb8d-1489-4aec-bf21-8702d8f69951"\r
- },\r
- {\r
- "link-id": "20cd9c28-483e-4703-8adb-43326799c9a2",\r
- "src-node-id": "7f41bc57-f4ee-42cc-8fac-f25bda374be9",\r
- "delay": 0,\r
- "dest-port-id": "5d0faf77-435c-4c19-a129-db6481aa40a5",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "02f661f4-4097-4d2d-8986-5c17e74429ad",\r
- "src-port-id": "6285cebd-5d4a-4a1d-b732-20470240547a"\r
- },\r
- {\r
- "link-id": "82937d51-52b6-4334-8fe4-eac541e97684",\r
- "src-node-id": "02f661f4-4097-4d2d-8986-5c17e74429ad",\r
- "delay": 0,\r
- "dest-port-id": "6285cebd-5d4a-4a1d-b732-20470240547a",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "7f41bc57-f4ee-42cc-8fac-f25bda374be9",\r
- "src-port-id": "5d0faf77-435c-4c19-a129-db6481aa40a5"\r
- },\r
- {\r
- "link-id": "39ded017-fed2-41f8-b709-ae102ebd015d",\r
- "src-node-id": "02f661f4-4097-4d2d-8986-5c17e74429ad",\r
- "delay": 0,\r
- "dest-port-id": "41a4e6b1-019e-456c-bd99-8fc5f60c3a29",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "43429643-c423-4d46-817d-092ac20d3b79",\r
- "src-port-id": "aca59fd4-8958-49e1-a290-a39529a8e699"\r
- },\r
- {\r
- "link-id": "3b9cdd19-0c5e-4a99-ad48-a323e949a9a3",\r
- "src-node-id": "43429643-c423-4d46-817d-092ac20d3b79",\r
- "delay": 0,\r
- "dest-port-id": "aca59fd4-8958-49e1-a290-a39529a8e699",\r
- "metric": 1,\r
- "bandwidth": 0,\r
- "dest-node-id": "02f661f4-4097-4d2d-8986-5c17e74429ad",\r
- "src-port-id": "41a4e6b1-019e-456c-bd99-8fc5f60c3a29"\r
- }\r
- ]\r
- },\r
- "user-id": "af4fc2be-e3f4-4388-a8ef-3aabae872f2b",\r
- "virtual-routes": {},\r
- "virtual-paths": {\r
- "virtual-path": [\r
- {\r
- "path-id": "9e29b1b5-1627-488d-a5b4-8fe221235493",\r
- "virtual-link": [\r
- {\r
- "link-id": "82937d51-52b6-4334-8fe4-eac541e97684",\r
- "order": 0\r
- }\r
- ],\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "ff6042a3-bdfa-4f0e-8b17-336b3e2f3ecb",\r
- "virtual-link": [\r
- {\r
- "link-id": "cdf567ba-f523-4ac1-a240-4db08bdc4091",\r
- "order": 0\r
- }\r
- ],\r
- "bandwidth": 0\r
- },\r
- {\r
- "path-id": "a12799b8-523d-4ab2-8fbf-f356c5ad52eb",\r
- "virtual-link": [\r
- {\r
- "link-id": "c7f45b8c-a4eb-4b8c-9ecd-2330d9b61d36",\r
- "order": 0\r
- }\r
- ],\r
- "bandwidth": 0\r
- }\r
- ]\r
- }\r
- }\r
- ]\r
- }\r
-}\r
-var VnMappingJson={\r
- "intent-vn-mapping-results": {\r
- "user-intent-vn-mapping": [\r
- {\r
- "user-id": "af4fc2be-e3f4-4388-a8ef-3aabae872f2b",\r
- "intent-vn-mapping-result": [\r
- {\r
- "intent-id": "94a6fb90-b425-4ffd-9515-c0684aa4c37f",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "fa9a6915-b6d9-4248-87c4-3237bddd4489",\r
- "parent-virtual-resource-entity-id": "43429643-c423-4d46-817d-092ac20d3b79",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "1f0bf4a0-6857-47ec-b2af-2104ef1d0c79"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "b46cfa7f-93a3-43f4-ac20-09307c75feca",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "460f3011-6f1b-46d8-9fe7-0d5576ff592d",\r
- "parent-virtual-resource-entity-id": "02f661f4-4097-4d2d-8986-5c17e74429ad",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "82712a15-b38f-459c-ae1e-be1e34566a2a"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "7175bac3-b785-2278-90ed-613480e354e8",\r
- "intent-type": "connection",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "0395de51-d926-4f1f-ba25-5977f1490d2e",\r
- "virtual-resource-type": "vlink",\r
- "order": 0,\r
- "virtual-resource-entity-id": "39ded017-fed2-41f8-b709-ae102ebd015d"\r
- },\r
- {\r
- "virtual-resource-id": "b303592e-f379-470f-af6f-c28937969bc3",\r
- "virtual-resource-type": "vlink",\r
- "order": 0,\r
- "virtual-resource-entity-id": "3b9cdd19-0c5e-4a99-ad48-a323e949a9a3"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "619ee3bb-1e40-480f-b0fa-a331820a5518",\r
- "intent-type": "operation",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "eb289733-18c8-4601-8544-25e9f56045d0",\r
- "parent-virtual-resource-entity-id": "ef802514-a373-4f24-a162-0553ffe13f09",\r
- "virtual-resource-type": "vport",\r
- "order": 3,\r
- "virtual-resource-entity-id": "32ddfaa1-1dd8-434a-8479-362d592521d1"\r
- },\r
- {\r
- "virtual-resource-id": "11ee03c9-3bf6-421b-b783-2524fca560fd",\r
- "virtual-resource-type": "vpath",\r
- "order": 2,\r
- "virtual-resource-entity-id": "a12799b8-523d-4ab2-8fbf-f356c5ad52eb"\r
- },\r
- {\r
- "virtual-resource-id": "2c9b5484-bc1f-410e-9089-ac2ed0e74842",\r
- "virtual-resource-type": "vpath",\r
- "order": 4,\r
- "virtual-resource-entity-id": "ff6042a3-bdfa-4f0e-8b17-336b3e2f3ecb"\r
- },\r
- {\r
- "virtual-resource-id": "31d34ef8-08a3-45b2-af7c-31c2fff126e2",\r
- "parent-virtual-resource-entity-id": "7f41bc57-f4ee-42cc-8fac-f25bda374be9",\r
- "virtual-resource-type": "vport",\r
- "order": 1,\r
- "virtual-resource-entity-id": "e427cc5e-93c9-4f5d-adf6-a2dc2b50e57c"\r
- },\r
- {\r
- "virtual-resource-id": "80cfeef9-eb82-4f72-a1b0-852964d0f236",\r
- "virtual-resource-type": "vpath",\r
- "order": 0,\r
- "virtual-resource-entity-id": "9e29b1b5-1627-488d-a5b4-8fe221235493"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "c2cd9de6-ab25-4d3f-bff2-c4d785a41995",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "31d34ef8-08a3-45b2-af7c-31c2fff126e2",\r
- "parent-virtual-resource-entity-id": "7f41bc57-f4ee-42cc-8fac-f25bda374be9",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "e427cc5e-93c9-4f5d-adf6-a2dc2b50e57c"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "41ee9aad-5f61-469d-99a9-e691d2a1de05",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "eb289733-18c8-4601-8544-25e9f56045d0",\r
- "parent-virtual-resource-entity-id": "ef802514-a373-4f24-a162-0553ffe13f09",\r
- "virtual-resource-type": "vport",\r
- "order": 2,\r
- "virtual-resource-entity-id": "32ddfaa1-1dd8-434a-8479-362d592521d1"\r
- },\r
- {\r
- "virtual-resource-id": "11ee03c9-3bf6-421b-b783-2524fca560fd",\r
- "virtual-resource-type": "vpath",\r
- "order": 1,\r
- "virtual-resource-entity-id": "a12799b8-523d-4ab2-8fbf-f356c5ad52eb"\r
- },\r
- {\r
- "virtual-resource-id": "31d34ef8-08a3-45b2-af7c-31c2fff126e2",\r
- "parent-virtual-resource-entity-id": "7f41bc57-f4ee-42cc-8fac-f25bda374be9",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "e427cc5e-93c9-4f5d-adf6-a2dc2b50e57c"\r
- }\r
- ]\r
- },\r
- {\r
- "intent-id": "a5a96dc7-51dd-44a5-802b-7e67a309fb36",\r
- "intent-type": "node",\r
- "virtual-resource": [\r
- {\r
- "virtual-resource-id": "eb289733-18c8-4601-8544-25e9f56045d0",\r
- "parent-virtual-resource-entity-id": "ef802514-a373-4f24-a162-0553ffe13f09",\r
- "virtual-resource-type": "vport",\r
- "order": 0,\r
- "virtual-resource-entity-id": "32ddfaa1-1dd8-434a-8479-362d592521d1"\r
- }\r
- ]\r
- }\r
- ],\r
- "virtual-network-id": "af4fc2be-e3f4-4388-a8ef-3aabae872f2b"\r
- }\r
- ]\r
- }\r
-}\r
-var PnMappingJson={\r
- "vn-pn-mapping-results": {\r
- "user-vn-pn-mapping": [\r
- {\r
- "virtual-network-id": "af4fc2be-e3f4-4388-a8ef-3aabae872f2b",\r
- "vn-pn-mapping-result": [\r
- {\r
- "virtual-resource-entity-id": "9b65b6f6-9c92-46e2-86f3-933676206e1d",\r
- "parent-physical-resource-entity-id": "openflow:4",\r
- "parent-virtual-resource-entity-id": "44305036-d993-4976-abfa-1e82c3b75a51",\r
- "virtual-resource-id": "910be96e-d7e7-4f14-a2fe-b5478bd583bc",\r
- "physical-resource-id": "2f01db70-a8aa-4fcd-b883-5602f5125bc5",\r
- "physical-resource-entity-id": "openflow:4:2",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "0450b59e-91c2-42f2-9697-80970d4ed026",\r
- "virtual-resource-id": "d94f7999-f9e2-49c6-ad0d-99a5af8b21a9",\r
- "physical-resource-id": "01603373-1388-4190-a050-80237c58ae37",\r
- "physical-resource-entity-id": "64b3082a-7ddb-40fd-84fa-f53790805136",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "894146c9-06a8-4236-8119-1de3e506b623",\r
- "virtual-resource-id": "9b412958-fb19-410b-b4fb-8cda3f6c3e71",\r
- "physical-resource-id": "a3f6817a-93dc-4867-930f-3190ef70c674",\r
- "physical-resource-entity-id": "openflow:2",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "08d94078-3886-4a90-86a4-2ddd29ffda96",\r
- "virtual-resource-id": "3a88f440-2311-4558-ba9e-0ce6eea3e2c1",\r
- "physical-resource-id": "0273520a-a23c-4b4d-8839-98a6fbedd1d2",\r
- "physical-resource-entity-id": "openflow:3",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "7a90c045-e399-4fb6-b49e-e2c413470de5",\r
- "parent-physical-resource-entity-id": "openflow:3",\r
- "parent-virtual-resource-entity-id": "08d94078-3886-4a90-86a4-2ddd29ffda96",\r
- "virtual-resource-id": "c03b4d15-db09-4513-8c95-7e4051560d50",\r
- "physical-resource-id": "6cda0d4e-fc8b-46e1-9580-a196a081483e",\r
- "physical-resource-entity-id": "openflow:3:4",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "050a588d-db12-4aa1-abe1-eaa313c35147",\r
- "virtual-resource-id": "4ab1d100-bdc7-4eb1-b033-368d109cfce2",\r
- "physical-resource-id": "6f69aff7-ba44-4460-95ad-1f8fa7a834ff",\r
- "physical-resource-entity-id": "54ef405b-7b11-400e-8711-9b8c8e978b64",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "44305036-d993-4976-abfa-1e82c3b75a51",\r
- "virtual-resource-id": "d7590227-441d-4cb8-a3bd-bf59c51f3a2c",\r
- "physical-resource-id": "3d514751-7cb5-4bf2-87bb-4c1ab372b497",\r
- "physical-resource-entity-id": "openflow:4",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "85f17105-afd4-4c2a-88d1-6249138c19af",\r
- "virtual-resource-id": "63538a62-2a11-4e15-8807-494152d5b8c2",\r
- "physical-resource-id": "3202b6f6-0ed4-41d5-bf0e-517f92dac129",\r
- "physical-resource-entity-id": "b014a856-cca5-4906-b964-fc8fc20d5e49",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "69a46c69-196d-44d8-979d-59d9f7fcb602",\r
- "parent-physical-resource-entity-id": "openflow:2",\r
- "parent-virtual-resource-entity-id": "894146c9-06a8-4236-8119-1de3e506b623",\r
- "virtual-resource-id": "d3595475-0c37-438e-8e07-08881bcaf198",\r
- "physical-resource-id": "93f0bb6b-6ffe-480c-9d89-5bb039283310",\r
- "physical-resource-entity-id": "openflow:2:2",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "6270a5e1-58e1-4fc3-adce-189fd2974312",\r
- "virtual-resource-id": "77cf97be-f334-440a-a8e0-1fbae2f51c7f",\r
- "physical-resource-id": "e7eeb731-8f70-4c82-b687-241f386f5d7c",\r
- "physical-resource-entity-id": "64b921cd-45cd-4fa0-8d79-c11c2a2ccdcf",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "8100299f-6056-44b8-8090-2fcba7b12613",\r
- "virtual-resource-id": "c51c3c99-6caf-4148-b5c7-ffaffdef558b",\r
- "physical-resource-id": "4da6cd9c-9296-4200-b23c-712fd1dd228e",\r
- "physical-resource-entity-id": "3b0c9693-be27-4483-b26a-5c4f003d3bd8",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "6fa0ecb5-2286-4a61-bf89-a9aa77ac7329",\r
- "virtual-resource-id": "aa54c1a2-4393-4127-b527-5cdecd0e93ad",\r
- "physical-resource-id": "a73d8c4f-17f0-4aa8-ab5f-c47f45bf91b0",\r
- "physical-resource-entity-id": "openflow:1",\r
- "physical-resource-type": "node",\r
- "virtual-resource-type": "vnode"\r
- },\r
- {\r
- "virtual-resource-entity-id": "30607b91-7ba5-4840-8d2c-e5dbfee42017",\r
- "virtual-resource-id": "e4bf7c05-d5af-45fd-a729-a2687918e668",\r
- "physical-resource-id": "ec7e30a7-a48a-4996-bfd5-29334eeb46b7",\r
- "physical-resource-entity-id": "caa9dc02-e8b2-4642-8ce1-ed8c25baf7a4",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "686e631a-016f-42c2-b496-10574354807e",\r
- "virtual-resource-id": "aef8dbca-c55b-4f7b-9003-4b47d0534c76",\r
- "physical-resource-id": "0026c3c3-f47c-4cb9-8903-045598909f06",\r
- "physical-resource-entity-id": "e1e351a7-0e5d-424b-9015-051e7608ab2f",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- },\r
- {\r
- "virtual-resource-entity-id": "c4b88cd3-a0eb-4508-bc44-4539f8093e16",\r
- "parent-physical-resource-entity-id": "openflow:1",\r
- "parent-virtual-resource-entity-id": "6fa0ecb5-2286-4a61-bf89-a9aa77ac7329",\r
- "virtual-resource-id": "452e1a62-4719-47f4-944f-b0b7a511fbbc",\r
- "physical-resource-id": "3bc46d3f-9563-4bf3-a7da-476380415e07",\r
- "physical-resource-entity-id": "openflow:1:1",\r
- "physical-resource-type": "port",\r
- "virtual-resource-type": "vport"\r
- },\r
- {\r
- "virtual-resource-entity-id": "7c4ace2f-dfad-4ba7-8d05-b778550f809c",\r
- "virtual-resource-id": "f470b3d9-7589-4df4-ba3a-a5ef9056257b",\r
- "physical-resource-id": "375499ba-4348-4d43-b45f-ea342f2995c0",\r
- "physical-resource-entity-id": "afe85a50-c5b1-4849-8d49-f1db58d40087",\r
- "physical-resource-type": "path",\r
- "virtual-resource-type": "vlink"\r
- }\r
- ],\r
- "user-id": "af4fc2be-e3f4-4388-a8ef-3aabae872f2b"\r
- }\r
- ]\r
- }\r
-}
\ No newline at end of file
+++ /dev/null
-/*
- * Copyright (c) 2015 Huawei, Inc 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
- */
-
-define(['app/nemo/nemo.module','app/nemo/nemo.services'], function(topology) {
- topology.register.controller('NemoController', ['$scope', '$rootScope', 'NemoService' , function ($scope, $rootScope, NemoService) {
-
- $rootScope.section_logo = 'src/app/nemo/images/logo_nemo.png';
-
- $scope.updateChannels = function() {
- NemoService.updateChannels();
- };
- $scope.updateChannels();
- }]);
-
-});
+++ /dev/null
-/*
- * Copyright (c) 2015 Huawei, Inc 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
- */
-define(['app/nemo/nemo.module'], function(nemo) {
-//define(['app/nemo/nemo.module'], function(topology) {
- nemo.register.directive('nemoChannel', function() {
- });
-});
+++ /dev/null
-/*
- * Copyright (c) 2015 Huawei, Inc 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
- */
-define(['angularAMD', 'app/routingConfig', 'app/core/core.services','Restangular', 'common/config/env.module'], function(ng) {
-
- var nemo = angular.module('app.nemo', ['ui.router.state','app.core','restangular', 'config']);
-
-
- nemo.config(function($stateProvider, $controllerProvider, $compileProvider, $provide, $translateProvider,
- $urlRouterProvider, NavHelperProvider) {
-
- nemo.register = {
- controller : $controllerProvider.register,
- directive : $compileProvider.directive,
- service : $provide.service,
- factory : $provide.factory
- };
-
- $translateProvider.useStaticFilesLoader({
- prefix: 'assets/data/locale-',
- suffix: '.json'
- });
-
- $urlRouterProvider.otherwise('/nemo');
-
- NavHelperProvider.addControllerUrl('app/nemo/nemo.controller');
- NavHelperProvider.addToMenu('nemo', {
- "link": "#/nemo",
- "title": "Nemo",
- "active": "main.nemo",
- "icon": "icon-link",
- "page": {
- "title": "NEMO",
- "description": "NEMO"
- }
- });
-
- var access = routingConfig.accessLevels;
- $stateProvider.state('main.nemo', {
- url: 'nemo',
- access: access.public,
- views : {
- 'content' : {
- templateUrl: 'src/app/nemo/register.html',
- controller: 'NemoController'
- }
- }
- });
-
- });
-
- return nemo;
-
-});
-
+++ /dev/null
-/*
- * Copyright (c) 2015 Huawei, Inc 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
- */
-define(['app/nemo/nemo.module'], function(nemo) {
- nemo.register.factory('NemoRestangular', function(Restangular, ENV) {
- var NemoRestangular = Restangular.withConfig(function(RestangularConfig) {
- RestangularConfig.setBaseUrl(ENV.getBaseURL("MD_SAL"));
- });
- return NemoRestangular;
- });
- nemo.register.factory('NemoService', function(NemoRestangular) {
- var org = org || {};
- org.opendaylight = org.opendaylight || {};
- org.opendaylight.nemo = org.opendaylight.nemo || {};
- org.opendaylight.nemo.utils = org.opendaylight.nemo.utils || {};
- org.opendaylight.nemo.utils.get = function(id) {
- return document.getElementById(id);
- };
- org.opendaylight.nemo.utils.create = function(tag) {
- return document.createElement(tag);
- };
- org.opendaylight.nemo.update = function() {
- jQuery.ajax({
- type: "POST",
- "url": "/restconf/operations/nemo-channel:view-channel", //
- processData: false,
- contentType: "application/json",
- data: JSON.stringify({"input":{"topology-id":"nemo"}}),
- success:function (response) {
- org.opendaylight.nemo.process(response);
- }
- });
- return true;
- };
- org.opendaylight.nemo.process = function(data) {
- var channelPannelHTML = "";
- channelPannelHTML += '<div style="color:#ffffff;padding-top:15px;padding-bottom:15px;">';
- channelPannelHTML += '<table style="width:100%;" cellspacing="1" cellpadding="1"><tr>';
- channelPannelHTML += '<td style="width:50px;"><div>Alarms</div></td>';
- channelPannelHTML += '<td><div>Description</div></td>';
- channelPannelHTML += '<td style="width:100px;"><div>Bytes In</div></td>';
- channelPannelHTML += '<td style="width:100px;"><div>Bytes Out</div></td>';
- channelPannelHTML += '</tr></table>';
- channelPannelHTML += '</div>';
- var topologies = data["output"]["topology"];
- for (var i = 0; i < topologies.length; i++) {
- var channels = topologies[i]["channel"];
- if (typeof channels == "undefined" || channels == null) {
- break;
- }
- for (var j = 0; j < channels.length; j++) {
- var channel = channels[j];
- channelPannelHTML += '<div style="color:#ffffff;padding-top:15px;padding-bottom:15px;border-top: 1px solid #888888;">';
- channelPannelHTML += '<table style="width:100%;" cellspacing="1" cellpadding="1"><tr>';
- channelPannelHTML += '<td style="width:50px;vertical-align:top;"><div><div class="' + (channel["channel-alarms"] > 0 ? 'label-danger' : 'label-success') + '" style="background-color:' + (channel["channel-alarms"] > 0 ? '#d9534f' : '#5cb85c') + '; border-radius:35px;width:35px;height:35px;line-height:35px;text-align:center;font-size:10px;">'+channel["channel-alarms"]+'</div></div></td>';
- channelPannelHTML += '<td style="vertical-align:top;"><div>';
- channelPannelHTML += '<div><span>Channel </span><span>'+channel["channel-id"]+'</span></div>';
- channelPannelHTML += '<div><span style="color:#888888;">Controller: </span><span>'+channel["source"]["source-node"]+'</span></div>';
- channelPannelHTML += '<div><span style="color:#888888;">Device: </span><span>'+channel["destination"]["dest-node"]+'</span></div>';
- channelPannelHTML += '<div><span style="color:#888888;">Type: </span><span>'+channel["channel-type"]+'</span></div>';
- channelPannelHTML += '<div><span style="color:#888888;">Call Home: </span><span>'+channel["call-home"]+'</span></div>';
- channelPannelHTML += '<div><span style="color:#888888;">Number of Sessions: </span><span>'+channel["sessions"]+'</span></div>';
- channelPannelHTML += '</div></td>';
- channelPannelHTML += '<td style="width:100px;vertical-align:top;"><div>'+channel["bytes-in"]+' B'+'</div></td>';
- channelPannelHTML += '<td style="width:100px;vertical-align:top;"><div>'+channel["bytes-out"]+' B'+'</div></td>';
- channelPannelHTML += '</tr></table>';
- channelPannelHTML += '</div>';
- var sessions = channel["session"];
- if (typeof sessions != "undefined" && sessions != null) {
- for (var k = 0; k < sessions.length; k++) {
- var session = sessions[k];
- channelPannelHTML += '<div style="color:#ffffff;padding-top:15px;padding-bottom:15px;border-top: 1px solid #888888;">';
- channelPannelHTML += '<table style="width:100%;" cellspacing="1" cellpadding="1"><tr>';
- channelPannelHTML += '<td style="width:100px;vertical-align:top;"><div style="padding-left:50px;"><div class="' + (session["session-alarms"] > 0 ? 'label-danger' : 'label-success') + '" style="background-color:' + (session["session-alarms"] > 0 ? '#d9534f' : '#5cb85c') + '; border-radius:35px;width:35px;height:35px;line-height:35px;text-align:center;font-size:10px;">'+session["session-alarms"]+'</div></div></td>';
- channelPannelHTML += '<td style="vertical-align:top;"><div>';
- channelPannelHTML += '<div><span>Session </span><span>'+session["session-id"]+'</span></div>';
- channelPannelHTML += '<div><span style="color:#888888;">Port: </span><span>'+session["termination-point"]["termination-point-id"]+'</span></div>';
- channelPannelHTML += '</div></td>';
- channelPannelHTML += '<td style="width:100px;vertical-align:top;"><div>'+session["bytes-in"]+' B'+'</div></td>';
- channelPannelHTML += '<td style="width:100px;vertical-align:top;"><div>'+session["bytes-out"]+' B'+'</div></td>';
- channelPannelHTML += '</tr></table>';
- channelPannelHTML += '</div>';
- }
- }
- }
- }
- var channelPanel = org.opendaylight.nemo.utils.get("channelPanel");
- channelPanel.innerHTML = channelPannelHTML;
- return true;
- };
- org.opendaylight.nemo.initialize = function() {
- org.opendaylight.nemo.update();
- };
- window.org = org;
- var NemoService = {
- updateChannels: function() {
- org.opendaylight.nemo.initialize();
- }
- };
- return NemoService;
- });
-});
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <meta http-equiv="Content-Type" content="text/html"; charset="utf-8" />\r
- <title>nemo-ui-en</title>\r
- <link href="src/app/nemo/css/jquery-ui.min.css" rel="stylesheet" />\r
- <link href="src/app/nemo/css/nemo_user_main.css" rel="stylesheet" />\r
- <link href="src/app/nemo/css/nemo_main.css" rel="stylesheet" />\r
-\r
- <!-- // <script src="src/app/nemo/module/migrate_js.js"></script> -->\r
- <script src="src/app/nemo/js/Nemo_Main.js"></script>\r
- <script src="src/app/nemo/module/keyWords.js"></script>\r
- <script src="src/app/nemo/module/migrate.js"></script>\r
- <!-- SFC -->\r
- <!-- // <script src="src/app/nemo/module/test/servicechain_userJson.js"></script> -->\r
- <!-- Bod -->\r
- <!-- // <script src="src/app/nemo/module/test/bod_userJson.js"></script> -->\r
-\r
- <script src="src/app/nemo/js/Nemo_Annouce_vis.js"></script>\r
- <script src="src/app/nemo/js/phyNetwork.js"></script>\r
- <script src="src/app/nemo/js/intentTopo.js"></script>\r
- <script src="src/app/nemo/js/vnMapping.js"></script>\r
- <script src="src/app/nemo/js/virNetwork.js"></script>\r
-\r
- <script>\r
- \r
- function guid() {\r
- function S4() {\r
- return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r
- }\r
- return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());\r
- }\r
-\r
- jQuery(document).ready(function ($) {\r
- var userNames=['--default--'];\r
- jQuery.ajax({\r
- url: "/restconf/config/nemo-intent:users/",\r
- type: "GET",\r
- async: false,\r
- dataType: "json",\r
- success: function(data) {\r
- console.log(data);\r
- userNames=[];\r
- var data_list=data["users"]["user"];\r
- for (var item in data_list) {\r
- userNames[data_list[item]['user-id']]=data_list[item]['user-name']; \r
- }\r
- },\r
- error: function(data) {\r
- console.log(data);\r
- }\r
- });\r
- //add useruame to select \r
- $("#selectUser select").empty();\r
- for(var item in userNames){\r
- $("#selectUser select").append('<option value="'+item+'">'+userNames[item]+'</option>');\r
- }\r
- \r
-\r
- $(".tabs ul li[aria-controls='PhyNet']").click(function(){\r
- if(!physicalData) return;\r
- createPhysicalTopo();\r
- analy_topo(physicalData);\r
- // create_physical_topo();\r
- creataPhysicalTables.createPhyicalNodeTable('phyNodeTab',null)\r
- creataPhysicalTables.createPhyicalLinkTable('phyLinkTab',null)\r
- });\r
-\r
- $(".tabs ul li[aria-controls='PhyNet']").click();\r
-\r
- $(".tabs ul li[aria-controls='intent_info']").click(function(){\r
- var userId=$("#selectUser option:selected").val();\r
- console.log(userId);\r
-\r
- // SFC\r
- // userId='af4fc2be-e3f4-4388-a8ef-3aabae872f2b';\r
- //Bod\r
- // var userId='14ce424a-3e50-4a2a-ad5c-b29845158c8b'\r
- // if(userId=='0') userId='14ce424a-3e50-4a2a-ad5c-b29845158c8b';\r
-\r
- $('#service_svg2').empty();\r
- $("#nemo_str_show").empty();\r
- if(!IntentInfos) return;\r
- var user_data = getIntentInfoById(userId);\r
- if(!user_data) return;\r
- // var user_data=getIntentInfoByName("user2",userinfo);\r
- analyjson_topo(user_data);\r
- parseNemoLan(user_data);\r
- //set keyWords style\r
- $("#nemo_str_show p").each(function(){\r
- var $res=$(this);\r
- keyWords.forEach(function(item,index,array){\r
- $res.html($res.html().replace(item,"<span class='keyWords'>"+item+"</span>"));\r
- });\r
- });\r
- });\r
-\r
- $(".tabs ul li[aria-controls='VirNet']").click(function(){\r
- var userId=$("#selectUser option:selected").val();\r
- jQuery('#vir_graph').empty();\r
- jQuery("#virNodeTab").find('tr').remove();\r
- jQuery("#virLinkTab").find('tr').remove();\r
- // SFC\r
- //userId='af4fc2be-e3f4-4388-a8ef-3aabae872f2b';\r
- //Bod\r
- //userId='14ce424a-3e50-4a2a-ad5c-b29845158c8b'\r
-\r
- // if(userId=='0') userId='14ce424a-3e50-4a2a-ad5c-b29845158c8b';\r
- // virtualData=virtualJson;\r
-\r
- if(!IntentInfos||!MappingResults||!VirtualDatas) return;\r
- if(!getVirtualInfoById(userId)||!getIntentInfoById(userId)||!getMappingResultById(userId)) return;\r
- create_virtual_topo(getVirtualInfoById(userId),getIntentInfoById(userId),getMappingResultById(userId));\r
- creataVirtualTables.createVirtualNodeTable('virNodeTab',getVirtualInfoById(userId));\r
- creataVirtualTables.createVirtualLinkTable('virLinkTab',getVirtualInfoById(userId));\r
- });\r
-\r
- $(".tabs ul li[aria-controls='Mapping']").click(function(){\r
- var userId=$("#selectUser option:selected").val();\r
- // userId='14ce424a-3e50-4a2a-ad5c-b29845158c8b';\r
- jQuery("#mapVirNodeTab").find('tr').remove();\r
- jQuery("#mapVirLinkTab").find('tr').remove();\r
- if(!physicalData||!PnMappingResults||!VirtualDatas) return;\r
- var virtualData = getVirtualInfoById(userId);\r
- if(!virtualData) return;\r
- if(!getPnMappingResultById(userId)) return;\r
- // console.log(createMappingTables);\r
- console.log(virtualData);\r
- createMappingTables.createVirtualNodeTable('mapVirNodeTab',virtualData);\r
- // console.log(linkArray);\r
- createMappingTables.createVirtualLinkTable('mapVirLinkTab',virtualData,getPnMappingResultById(userId),physicalData);\r
- // getPaths(linkArray,getPnMappingResultById(userId,PnMappingJson),physicalJson);\r
- });\r
-\r
- $('#selectUser input[type=button]').click(function(){\r
- $('a[href="#intent_info"]').click();\r
-\r
- });\r
-\r
- $('#logout').click(function(){\r
- setCookie('nemo_userpwd','',-1);\r
- $("#pageContent").empty();\r
- $("#pageContent").load('src/app/nemo/register.html');\r
- });\r
-\r
- });\r
- </script>\r
-</head>\r
-<body>\r
- <div class="header">\r
- <p>Hello Admin!</p><span id='logout'>Logout</span>\r
- <div id='selectUser'>\r
- <p>Tenant:</p>\r
- <select value="intentUser">\r
- </select>\r
- <input type="button" class='btn_' value='Query'/></div>\r
- </div>\r
-\r
- <div class="group">\r
- <div class="tabs">\r
- <ul>\r
- <li><a href="#PhyNet">Physical Network</a></li>\r
- <li><a href="#intent_info">NEMO Intent</a></li>\r
- <li><a href="#VirNet">Virtual Network</a></li>\r
- <li><a href="#Mapping">VN-PN Mapping</a></li>\r
- </ul>\r
- <div id='PhyNet'>\r
- <div id="phy_graph"></div>\r
- <div id='physicalTables'>\r
- <table class='tableHead'>\r
- <caption>Physical Node</caption>\r
- <colgroup>\r
- <col style="width: 25%;"/>\r
- <col style="width: 25%;" />\r
- <col style="width: 25%;"/>\r
- <col style="width: 25%;" />\r
- </colgroup>\r
- <tr>\r
- <th>Physical Node ID</th><th>Physical Node Type</th>\r
- <th>Internal Physical Port Number</th><th>External Physical Port Number</th>\r
- </tr>\r
- </table>\r
-\r
- <div class='tableBodyContainer'>\r
- <table id="phyNodeTab" border='1'>\r
- <colgroup>\r
- <col style="width: 25%;"/>\r
- <col style="width: 25%;" />\r
- <col style="width: 25%;"/>\r
- <col style="width: 25%;" />\r
- </colgroup>\r
- </table>\r
- </div>\r
-\r
- <table class='tableHead'>\r
- <caption>Physical Link</caption>\r
- <colgroup>\r
- <col style="width: 30%;"/>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- <col style="width: 10%;" />\r
- <col style="width: 10%;" />\r
- <col style="width: 10%;" />\r
- </colgroup>\r
- <tr>\r
- <th>Physical Link ID</th><th>Source Physical Node</th>\r
- <th>Destination Physical Node</th><th>Metric</th>\r
- <th>Bandwidth</th><th>Delay</th>\r
- </tr>\r
- </table>\r
- \r
- <div class='tableBodyContainer'>\r
- <table id="phyLinkTab" border='1'> \r
- <colgroup>\r
- <col style="width: 30%;"/>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- <col style="width: 10%;" />\r
- <col style="width: 10%;" />\r
- <col style="width: 10%;" />\r
- </colgroup>\r
- </table>\r
- </div>\r
- \r
- </div>\r
- </div>\r
-\r
- <div id="intent_info">\r
- <div id="intent_topo">\r
- \r
- <svg id="service_svg2" width="800" height="560" viewBox="100 40 900 780">\r
- <defs>\r
- <marker id="idArrow2" viewBox="0 0 20 20" refX="0" refY="10" markerUnits="strokeWidth" markerWidth="6" markerHeight="15" orient="auto"><path d="M 0 0 L 20 10 L0 20 z"fill="purple"stroke="black"/> </marker>\r
- <marker id="idtext2" viewBox="0 0 120 50" refX="0" refY="0" markerUnits="strokeWidth" markerWidth="20" markerHeight="20" orient="auto"><text style="font-family:sans-serif; font-size:14pt;" x="20" y="20">text</text></marker> \r
- </defs>\r
- </svg>\r
- </div>\r
- \r
- <div class="tabs">\r
- <ul>\r
- <li><a href="#nemo_str_show">NEMO Language</a></li>\r
- </ul>\r
- <div id="nemo_str_show"></div>\r
- </div>\r
- </div>\r
-\r
- <div id="VirNet">\r
- <div id="vir_graph"></div>\r
- <div id='virtualTables'>\r
-\r
- <table class='tableHead' border='1'>\r
- <caption>Virtual Node</caption>\r
- <colgroup>\r
- <col style="width: 20%;"/>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- </colgroup>\r
- <tr>\r
- <th>Virtual Node ID</th><th>Virtual Node Name</th>\r
- <th>Virtual Node Type</th>\r
- <th>Internal Virtual Port Number</th><th>External Virtual Port Number</th>\r
- </tr>\r
- </table>\r
-\r
- <div class='tableBodyContainer'>\r
- <table id="virNodeTab" border='1'>\r
- <colgroup>\r
- <col style="width: 20%;"/>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- </colgroup>\r
- </table>\r
- </div>\r
- \r
- <table class='tableHead' border='1'>\r
- <caption>Virtual Link</caption>\r
- <colgroup>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- <col style="width: 10%;" />\r
- <col style="width: 10%;"/>\r
- </colgroup>\r
- <tr>\r
- <th>Virtual Link ID</th><th>Virtual Link Name</th>\r
- <th>Source Virtual Node</th>\r
- <th>Destination Virtual Node</th>\r
- <!-- <th>Metric</th> -->\r
- <th>Bandwidth</th> <th>Delay</th>\r
- </tr>\r
- </table>\r
- \r
-\r
- <div class='tableBodyContainer'>\r
- <table id="virLinkTab" border='1'>\r
- <colgroup>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- <col style="width: 20%;" />\r
- <col style="width: 20%;"/>\r
- <col style="width: 10%;" />\r
- <col style="width: 10%;"/>\r
- </colgroup>\r
- </table>\r
- </div>\r
- </div>\r
- </div>\r
- <div id="Mapping">\r
- \r
- <div id='mappingTable'>\r
- <table class='tableHead' border='1'>\r
- <caption>Virtual Node Mapping Table</caption>\r
- <colgroup>\r
- <col style="width: 50%;" />\r
- <col style="width: 50%;"/>\r
- </colgroup>\r
- <tr><th>Virtual Node</th><th>Physical Node</th></tr>\r
- </table>\r
- \r
- <div class='tableBodyContainer'>\r
- <table id="mapVirNodeTab" border='1'>\r
- <colgroup>\r
- <col style="width: 50%;" />\r
- <col style="width: 50%;"/>\r
- </colgroup>\r
- </table>\r
- </div> \r
-\r
- <table class='tableHead' border='1'>\r
- <caption>Virtual Link Mapping Table</caption>\r
- <colgroup>\r
- <col style="width: 20%;">\r
- <col style="width: 15%;">\r
- <col style="width: 15%;">\r
- <col style="width: 20%;">\r
- <col style="width: 30%;">\r
- </colgroup> \r
- <tr>\r
- <th>Virtual Link</th><th>Source Virtual Node</th>\r
- <th>Destination Virtual Node</th><th>Physical Path</th>\r
- <th>Physical Nodes passed by Path</th>\r
- </tr>\r
- </table>\r
- \r
- <div class='tableBodyContainer'>\r
- <table id="mapVirLinkTab" border='1'>\r
- <colgroup>\r
- <col style="width: 20%;">\r
- <col style="width: 15%;">\r
- <col style="width: 15%;">\r
- <col style="width: 20%;">\r
- <col style="width: 30%;">\r
- </colgroup>\r
- </table>\r
- </div>\r
- </div>\r
- </div>\r
- </div>\r
-\r
-\r
- <!-- dialog start -->\r
- <div id="dialog" title="info" style='display:none;'>\r
- <p>\r
- <!-- Create By LiuTong , 2015-12-06 -->\r
- </p>\r
- </div>\r
- <!-- dialog end -->\r
-</body>\r
-</html>\r
+++ /dev/null
-<html xmlns="http://www.w3.org/1999/xhtml">\r
-<head>\r
- <meta http-equiv="Content-Type" content="text/html"; charset="utf-8" />\r
- <title>nemo-ui-en</title>\r
- <link href="src/app/nemo/css/jquery-ui.min.css" rel="stylesheet" />\r
- <link href="src/app/nemo/css/nemo_user_main.css" rel="stylesheet" />\r
-\r
- <script src="src/app/nemo/module/migrate.js"></script>\r
- <!-- // <script src="src/app/nemo/module/migrate_js.js"></script> -->\r
-\r
- <script src="src/app/nemo/module/keyWords.js"></script>\r
- <!-- // <script src="src/app/nemo/module/test/bod_userJson.js"></script> -->\r
- <!-- // <script src="src/app/nemo/module/test/servicechain_userJson.js"></script> -->\r
- <script src="src/app/nemo/js/Nemo_Main.js"></script>\r
- <script src="src/app/nemo/js/Nemo_Annouce_vis.js"></script>\r
- <script src="src/app/nemo/js/phyNetwork.js"></script>\r
- <script src="src/app/nemo/js/intentTopo.js"></script>\r
-\r
- <script>\r
- var user_str = localStorage.getItem("nemo_userInfo");\r
- console.log(user_str);\r
- jQuery(document).ready(function ($) {\r
- \r
- (function(){\r
- if(user_str){\r
- user_str=JSON.parse(user_str);\r
- var userName=user_str.userName;\r
- //get topo data\r
- if(!userName) return true;\r
- $('.header p').html($('.header p').html().replace('xxx',userName));\r
- var user_data=getIntentInfoByName(userName,IntentInfos);\r
- // var user_data=getIntentInfoByName("user2",userinfo);\r
- console.log(user_data);\r
- analyjson_topo(user_data);\r
- parseNemoLan(user_data);\r
-\r
- //set keyWords style\r
- $("#nemo_str_show p").each(function(){\r
- var $res=$(this);\r
- keyWords.forEach(function(item,index,array){\r
- // console.log(item);\r
- $res.html($res.html().replace(item,"<span class='keyWords'>"+item+"</span>"));\r
- });\r
- });\r
- } \r
- }());\r
-\r
- $('#user_logout').click(function(){\r
- setCookie('nemo_userpwd','',-1);\r
- $("#pageContent").empty();\r
- $("#pageContent").load('src/app/nemo/register.html');\r
- }); \r
-\r
- });\r
- </script>\r
-</head>\r
-<body>\r
- <div class="header"><p>Hello xxx!</p><span id='user_logout'>Logout</span></div>\r
-\r
- <div class="group">\r
- <div class="up">\r
- <div class="tabs">\r
- <ul>\r
- <li><a href="#intent_topo">NEMO Intent</a></li>\r
- </ul>\r
-\r
- <div id="intent_topo">\r
- <svg id="service_svg" width="800" height="560" viewBox="100 40 900 780" style='display:none'>\r
- <defs>\r
- <marker id="idArrow" viewBox="0 0 20 20" refX="0" refY="10" markerUnits="strokeWidth" markerWidth="6" markerHeight="15" orient="auto"><path d="M 0 0 L 20 10 L0 20 z"fill="purple"stroke="black"/> </marker>\r
- <marker id="idtext" viewBox="0 0 120 50" refX="0" refY="0" markerUnits="strokeWidth" markerWidth="20" markerHeight="20" orient="auto"><text style="font-family:sans-serif; font-size:14pt;" x="20" y="20">text</text></marker> \r
- </defs>\r
- </svg>\r
-\r
- <svg id="service_svg2" width="800" height="560" viewBox="100 40 900 780">\r
- <defs>\r
- <marker id="idArrow2" viewBox="0 0 20 20" refX="0" refY="10" markerUnits="strokeWidth" markerWidth="6" markerHeight="15" orient="auto"><path d="M 0 0 L 20 10 L0 20 z"fill="purple"stroke="black"/> </marker>\r
- <marker id="idtext2" viewBox="0 0 120 50" refX="0" refY="0" markerUnits="strokeWidth" markerWidth="20" markerHeight="20" orient="auto"><text style="font-family:sans-serif; font-size:14pt;" x="20" y="20">text</text></marker> \r
- </defs>\r
- </svg>\r
- </div>\r
-\r
- </div>\r
- </div>\r
-\r
- <div class="down">\r
- <div class="tabs">\r
- <ul>\r
- <li><a href="#nemo_str_show">NEMO Language</a></li>\r
- </ul>\r
- \r
- <div id="nemo_str_show"></div>\r
- </div>\r
- </div>\r
-\r
- </div>\r
-\r
- <!-- dialog start -->\r
- <div id="dialog" title="warning">\r
- <p>\r
- \r
- </p>\r
- </div>\r
- <!-- dialog end -->\r
-</body>\r
-</html>\r
+++ /dev/null
-<!DOCTYPE html>\r
-<html lang="en">\r
-<head>\r
- <meta charset="UTF-8">\r
- <title>nemo-register</title>\r
- <link rel="stylesheet" href="src/app/nemo/css/register.css">\r
- <script src="src/app/nemo/js/Nemo_Main.js"></script>\r
- <script>\r
- function setCookie(name,value,Days) \r
-{ \r
- if(!Days) Days = 3; \r
- var exp = new Date(); \r
- exp.setTime(exp.getTime() + Days*24*60*60*1000); \r
- document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString()+';path=/'; \r
-} \r
-function getCookie(name) \r
-{ \r
- var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");\r
- \r
- if(arr=document.cookie.match(reg)) \r
- return unescape(arr[2]); \r
- else \r
- return null; \r
-} \r
-\r
- //setCookie('username','user123');\r
- //alert(getCookie('username'));\r
- // jQuery.cookie('name', 'value');\r
- jQuery(document).ready(function ($) {\r
-\r
- var userInfoStorage={};\r
- function getUserId(username,userpwd){\r
- var userid = null;\r
- var users = localStorage.getItem("AllRegUserInfo");//localstorage data\r
- if(users !=null && typeof(users)!="undefined")\r
- {\r
- var user_json= JSON.parse(users);\r
- for(var i = 0;i<user_json.info.length;i++){\r
- if(username == user_json.info[i]["userName"] && userpwd==user_json.info[i]["userPassword"]){\r
- userid = user_json.info[i]["id"];\r
- }\r
- }\r
- }\r
- return userid;\r
- }\r
- //getUserId();\r
- function getUserInfo(){\r
- var user_data;\r
- $.ajax({ \r
- url: "/restconf/config/nemo-intent:users/", \r
- type:"GET",\r
- async: false,\r
- dataType:"json",\r
- success: function(data){\r
- console.log(data); \r
- user_data= JSON.stringify(data);\r
- },\r
- error:function(data){\r
- console.log(data);\r
- }\r
- });\r
- return user_data;\r
- }\r
- function userLogin(userName,userPassword){\r
- jQuery.ajax({\r
- url: "/restconf/config/nemo-intent:users/",\r
- type: "GET",\r
- async: false,\r
- dataType: "json",\r
- success: function(data) {\r
- console.log(data);\r
- //data=JSON.stringify(data);\r
- var name_data_list=data["users"]["user"];\r
- for (var i in name_data_list) {\r
- if (name_data_list[i]["user-name"] == userName) {\r
- if (name_data_list[i]["user-password"]==userPassword)\r
- {\r
- userInfoStorage.userName=userName;\r
- localStorage.setItem("nemo_userInfo",JSON.stringify(userInfoStorage));\r
- setCookie('nemo_username',userName);\r
- setCookie('nemo_userpwd',userPassword);\r
- $("#pageContent").empty();\r
- $("#pageContent").load('src/app/nemo/nemo.tpl.user.html');\r
- return;\r
- }\r
- else{\r
- alert("User's password is wrong!");\r
- return;\r
- }\r
- }\r
- }\r
- alert("There is no user named "+userName);\r
- },\r
- error: function(data) {console.log(data);}\r
- });\r
- }\r
- //use cookie remember the last username and password ,and use them login\r
- (function(){\r
- var cook_username=getCookie('nemo_username');\r
- var cook_userpwd=getCookie('nemo_userpwd');\r
- if(!cook_username) return;\r
- if(!cook_userpwd) return;\r
- if(cook_username=='admin'&&cook_userpwd=='admin'){\r
- $("#pageContent").empty();\r
- $("#pageContent").load('src/app/nemo/nemo.tpl.html');\r
- }\r
- else{\r
- userLogin(cook_username,cook_userpwd);\r
- }\r
- }());\r
- $("#usename").focus();\r
-//add enter evevt\r
- document.onkeydown = function(e){ \r
- var ev = document.all ? window.event : e;\r
- if(ev.keyCode==13) {\r
- $("#log_ok").click();\r
- }\r
-}\r
- $("#log_ok").click(function () {\r
- //validate all use\r
- // alert('test');\r
- var userName = $("#usename").val().trim();\r
- var userPassword = $("#usepwd").val().trim();\r
- if (userName == "" || userPassword == "") {\r
- alert("User name or Password can not be empty!");\r
- return;\r
- }\r
- if(userName.toLowerCase()=="admin"&&userPassword.toLowerCase()=="admin") {\r
- setCookie('nemo_username',userName);\r
- setCookie('nemo_userpwd',userPassword);\r
- $("#pageContent").empty();\r
- $("#pageContent").load('src/app/nemo/nemo.tpl.html');\r
- }\r
- else{\r
- userLogin(userName,userPassword);\r
- }\r
- });\r
- \r
- $("#log_reset").click(function(){\r
- $("input").val('');\r
- });\r
- });\r
-\r
-\r
- </script>\r
-</head>\r
-<body>\r
- <div id="logPage">\r
- <div class='nemo_info'>\r
- <img src="src/app/nemo/images/nemo-overview.png" width="500px" height="320px" alt="nemo-overview.png">\r
- <p>\r
- NEMO Language is an intent oriented network DSL (domain specific language), which is a language style network open interface. Operator/End-user or 3rd party can use it to program network resource and behavior in their service applications.\r
- </p>\r
- </div>\r
-\r
- <div id="login">\r
- <div id="log_title"><p>User Login</p></div>\r
- <div id="log_info">\r
- <table border="0" >\r
- <tr > \r
- <td width="90px">username:</td> \r
- <td > <input id="usename" type="text"></td>\r
- </tr>\r
- <tr> \r
- <td >password:</td> \r
- <td ><input id="usepwd" type="password"></td>\r
- </tr>\r
- <tr>\r
- <td colspan="2" align="center" ><button id="log_ok">ok</button> <button id="log_reset">reset</button></td> \r
- </tr>\r
- \r
- </table>\r
- </div>\r
- </div>\r
- \r
- </div>\r
-</body>\r
-</html>\r
<module>nemo-artifacts</module>
<module>nemo-api</module>
<module>nemo-impl</module>
- <module>nemo-ui</module>
<module>nemo-features</module>
<module>nemo-karaf</module>
<module>nemo-renderers</module>