diff options
author | HuabingZhao <zhao.huabing@zte.com.cn> | 2016-09-19 15:57:16 +0800 |
---|---|---|
committer | HuabingZhao <zhao.huabing@zte.com.cn> | 2016-09-19 15:57:16 +0800 |
commit | 6be48e1015bc20005ed31f8b857842a59e1c9dfa (patch) | |
tree | e95214c0e5e570b3399938d6eb938b9ea0f1bf2a | |
parent | 185f8b203942067d02c4b28df91e95ab1d9bc6eb (diff) |
Add scripts for external API gateway
Change-Id: Ice85f6277d0a0d54e00c60a08c687b4ba6b22183
Signed-off-by: HuabingZhao <zhao.huabing@zte.com.cn>
12 files changed, 443 insertions, 94 deletions
diff --git a/msb-core/apiroute/apiroute-service/dependency-reduced-pom.xml b/msb-core/apiroute/apiroute-service/dependency-reduced-pom.xml deleted file mode 100644 index de1fbab..0000000 --- a/msb-core/apiroute/apiroute-service/dependency-reduced-pom.xml +++ /dev/null @@ -1,92 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>apiroute-parent</artifactId>
- <groupId>org.openo.common-services.microservice-bus</groupId>
- <version>1.0.0-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>apiroute-service</artifactId>
- <name>openo/msb/msb-core/apiroute/apiroute-service</name>
- <version>1.0.0-SNAPSHOT</version>
- <build>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.properties</include>
- </includes>
- </resource>
- <resource>
- <directory>src/main/resources</directory>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <version>2.4</version>
- <configuration>
- <archive>
- <manifest>
- <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
- </manifest>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-shade-plugin</artifactId>
- <version>2.3</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <transformers>
- <transformer />
- <transformer>
- <mainClass>org.openo.msb.ApiRouteApp</mainClass>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- <configuration>
- <createDependencyReducedPom>true</createDependencyReducedPom>
- <filters>
- <filter>
- <artifact>*:*</artifact>
- <excludes>
- <exclude>META-INF/*.SF</exclude>
- <exclude>META-INF/*.DSA</exclude>
- <exclude>META-INF/*.RSA</exclude>
- </excludes>
- </filter>
- </filters>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.11</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <artifactId>hamcrest-core</artifactId>
- <groupId>org.hamcrest</groupId>
- </exclusion>
- </exclusions>
- </dependency>
- </dependencies>
-</project>
-
diff --git a/msb-core/distributions/standalone/pom.xml b/msb-core/distributions/standalone/pom.xml index ee17e28..b502b36 100644 --- a/msb-core/distributions/standalone/pom.xml +++ b/msb-core/distributions/standalone/pom.xml @@ -96,6 +96,13 @@ <version>${project.version}</version> <optional>true</optional> </dependency> + <dependency> + <groupId>org.openo.common-services.microservice-bus</groupId> + <artifactId>eag-openresty-ext</artifactId> + <type>zip</type> + <version>${project.version}</version> + <optional>true</optional> + </dependency> </dependencies> @@ -225,6 +232,35 @@ <outputAbsoluteArtifactFilename>true</outputAbsoluteArtifactFilename> </configuration> </execution> + + <execution> + <id>eag-unpacktolinux64</id> + <goals> + <goal>unpack</goal> + </goals> + <phase>prepare-package</phase> + <configuration> + <artifactItems> + <artifactItem> + <groupId>org.openo.common-services.microservice-bus</groupId> + <artifactId>openresty</artifactId> + <type>tar.gz</type> + <classifier>linux64</classifier> + </artifactItem> + <artifactItem> + <groupId>org.openo.common-services.microservice-bus</groupId> + <artifactId>eag-openresty-ext</artifactId> + <type>zip</type> + </artifactItem> + </artifactItems> + <excludes>**/*.bat,*.cmd</excludes> + <outputDirectory>${linux64outputdir}/eag</outputDirectory> + <overWriteReleases>false</overWriteReleases> + <overWriteSnapshots>true</overWriteSnapshots> + <outputAbsoluteArtifactFilename>true</outputAbsoluteArtifactFilename> + </configuration> + </execution> + <execution> <id>unpacktowin64</id> <goals> @@ -268,6 +304,34 @@ <outputAbsoluteArtifactFilename>true</outputAbsoluteArtifactFilename> </configuration> </execution> + + <execution> + <id>eag-unpacktowin64</id> + <goals> + <goal>unpack</goal> + </goals> + <phase>prepare-package</phase> + <configuration> + <artifactItems> + <artifactItem> + <groupId>org.openo.common-services.microservice-bus</groupId> + <artifactId>openresty</artifactId> + <type>zip</type> + <classifier>win64</classifier> + </artifactItem> + <artifactItem> + <groupId>org.openo.common-services.microservice-bus</groupId> + <artifactId>eag-openresty-ext</artifactId> + <type>zip</type> + </artifactItem> + </artifactItems> + <excludes>*.sh,*/*.sh,*/*/*.sh</excludes> + <outputDirectory>${win64outputdir}/eag</outputDirectory> + <overWriteReleases>false</overWriteReleases> + <overWriteSnapshots>true</overWriteSnapshots> + <outputAbsoluteArtifactFilename>true</outputAbsoluteArtifactFilename> + </configuration> + </execution> </executions> </plugin> @@ -275,6 +339,44 @@ <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> + + <execution> + <id>prepare-eag-openresty-linux</id> + <phase>prepare-package</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <target> + <copy todir="${linux64outputdir}/eag/"> + <fileset dir="${linux64outputdir}/eag/openresty"/> + </copy> + <delete + dir="${linux64outputdir}/eag/openresty" + includeemptydirs="true"/> + </target> + </configuration> + </execution> + + <execution> + <id>prepare-eag-openresty-win</id> + <phase>prepare-package</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <target> + <copy todir="${win64outputdir}/eag/"> + <fileset dir="${win64outputdir}/eag/openresty"/> + </copy> + <delete + dir="${win64outputdir}/eag/openresty" + includeemptydirs="true"/> + </target> + </configuration> + </execution> + + <execution> <id>distribution</id> <phase>package</phase> diff --git a/msb-core/distributions/standalone/src/assembly/resource/shutdown.bat b/msb-core/distributions/standalone/src/assembly/resource/shutdown.bat index cdc98b8..c2cce3b 100644 --- a/msb-core/distributions/standalone/src/assembly/resource/shutdown.bat +++ b/msb-core/distributions/standalone/src/assembly/resource/shutdown.bat @@ -29,6 +29,9 @@ rem For /f %%i in (%~dp0\stop.tmp) DO start %%i echo ### Stopping openresty start /D %RUNHOME%openresty stop.bat +echo ### Stopping external API gateway +start /D %RUNHOME%eag stop.bat + echo ### Stopping apiroute start /D %RUNHOME%apiroute stop.bat diff --git a/msb-core/distributions/standalone/src/assembly/resource/shutdown.sh b/msb-core/distributions/standalone/src/assembly/resource/shutdown.sh index 2bb2a84..0c19f3f 100644 --- a/msb-core/distributions/standalone/src/assembly/resource/shutdown.sh +++ b/msb-core/distributions/standalone/src/assembly/resource/shutdown.sh @@ -28,6 +28,12 @@ cd ./openresty ./stop.sh & cd $RUNHOME +echo "### Stopping external API gateway..."; +# nohup ./startup.sh >>./nohup.log 2>&1 & +cd ./eag +./stop.sh & +cd $RUNHOME + echo "\n\n### Stopping apiroute" cd ./apiroute ./stop.sh & diff --git a/msb-core/distributions/standalone/src/assembly/resource/startup.bat b/msb-core/distributions/standalone/src/assembly/resource/startup.bat index e7f8cf3..a85ace7 100644 --- a/msb-core/distributions/standalone/src/assembly/resource/startup.bat +++ b/msb-core/distributions/standalone/src/assembly/resource/startup.bat @@ -35,6 +35,9 @@ start /D %RUNHOME%apiroute run.bat run echo ### Starting openresty start /D %RUNHOME%openresty run.bat +echo ### Starting external API gateway +start /D %RUNHOME%eag run.bat + echo Startup will be finished in background... echo + Run "start .\apiroute-works\logs\application.log" to see what's happening echo + Wait a minute diff --git a/msb-core/distributions/standalone/src/assembly/resource/startup.sh b/msb-core/distributions/standalone/src/assembly/resource/startup.sh index bcc0865..e0fee7d 100644 --- a/msb-core/distributions/standalone/src/assembly/resource/startup.sh +++ b/msb-core/distributions/standalone/src/assembly/resource/startup.sh @@ -41,6 +41,11 @@ cd ./openresty ./run.sh & cd $RUNHOME +echo "### Starting external API gateway..."; +# nohup ./startup.sh >>./nohup.log 2>&1 & +cd ./eag +./run.sh & +cd $RUNHOME echo "Startup will be finished in background..."; echo " + Run 'tail ./apiroute-works/logs/application.log -f' to see what's happening"; diff --git a/msb-core/eag-openresty-ext/pom.xml b/msb-core/eag-openresty-ext/pom.xml new file mode 100644 index 0000000..16e76e7 --- /dev/null +++ b/msb-core/eag-openresty-ext/pom.xml @@ -0,0 +1,119 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + + Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Author: Zhaoxing Meng + email: meng.zhaoxing1@zte.com.cn + +--> +<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"> + <parent> + <groupId>org.openo.common-services.microservice-bus</groupId> + <artifactId>msb-core-parent</artifactId> + <version>1.0.0-SNAPSHOT</version> + </parent> + + + <modelVersion>4.0.0</modelVersion> + <artifactId>eag-openresty-ext</artifactId> + <version>1.0.0-SNAPSHOT</version> + <name>openo/msb/msb-core/eag-openresty-ext</name> + <packaging>pom</packaging> + + <properties> + <outputdir>target/assembly</outputdir> + <packageid>eag-openresty-ext</packageid> + </properties> + <build> + <plugins> + <plugin> + <artifactId>maven-resources-plugin</artifactId> + <configuration> + <includeEmptyDirs>true</includeEmptyDirs> + </configuration> + <executions> + <execution> + <id>copy-resources</id> + <phase>process-resources</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <outputDirectory>${outputdir}</outputDirectory> + <resources> + <resource> + <directory>../openresty-ext/src/assembly/resources/</directory> + <filtering>false</filtering> + <includes> + <include>**/*</include> + </includes> + </resource> + </resources> + <overwrite>true</overwrite> + </configuration> + </execution> + + <execution> + <id>eag-copy-resources</id> + <phase>process-resources</phase> + <goals> + <goal>copy-resources</goal> + </goals> + <configuration> + <outputDirectory>${outputdir}</outputDirectory> + <resources> + <resource> + <directory>src/assembly/resources/</directory> + <filtering>false</filtering> + <includes> + <include>**/*</include> + </includes> + </resource> + </resources> + <overwrite>true</overwrite> + </configuration> + </execution> + + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-antrun-plugin</artifactId> + <executions> + <execution> + <id>distribution</id> + <phase>package</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <target name="distribution"> + <zip destfile="target/${packageid}-${project.version}.zip" update="true"> + <zipfileset dir="target/assembly/" includes="**"/> + </zip> + <attachartifact file="target/${packageid}-${project.version}.zip" type="zip"/> + </target> + </configuration> + </execution> + </executions> + </plugin> + + </plugins> + </build> + + +</project> diff --git a/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua b/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua new file mode 100644 index 0000000..4e820f5 --- /dev/null +++ b/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua @@ -0,0 +1,26 @@ +--[[ + + Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + Author: Zhaoxing Meng + email: meng.zhaoxing1@zte.com.cn + +]] +local _M = {} +_M._VERSION = '1.0.0' + +return { + auth_plugin_status = "on" +}
\ No newline at end of file diff --git a/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf b/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf new file mode 100644 index 0000000..eadf6c0 --- /dev/null +++ b/msb-core/eag-openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf @@ -0,0 +1,172 @@ +# +# Copyright 2016 2015-2016 ZTE, Inc. and others. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Author: Zhaoxing Meng +# email: meng.zhaoxing1@zte.com.cn +# + +server { + listen 8080; + default_type text/html; + add_header X-Cache-Status $upstream_cache_status; + + location = / { + rewrite ^ /openoui/microservices/index.html redirect; + } + + location = /openoui/microservices { + rewrite /openoui/microservices /openoui/microservices/index.html redirect; + } + + location / { + set $server "fallback"; + set $url ""; + set $key ""; + + # Lua files + rewrite_by_lua_file luaext/customrouter.lua; + access_by_lua_file luaext/execute_auth.lua; + + proxy_pass http://$server; + } + location ~ ^/api/(.*) { + rewrite ^/api/(.*) /openoapi/$1 last; + } + location ~ ^/iui/(.*) { + rewrite ^/iui/(.*) /openoui/$1 last; + } + + location ^~ /openoapi/driver_vmware_vcloud/v1 { + set $backend ""; + # Lua files + access_by_lua_block { + local driver_manager = require('plugins.driver_manager') + driver_manager.access() + } + proxy_pass http://$backend; + } + location ~ ^/openoapi/([^/]+)(/[Vv][^/]*)?(.*) { + set $apiname $1; + set $apiversion $2; + set $apiserver "fallback"; + set $apiurl ""; + + # Lua files + rewrite_by_lua_file luaext/openoapirouter.lua; + access_by_lua_file luaext/execute_auth.lua; + + proxy_pass http://$apiserver; + } + + location ~ ^/openoui/([^/]+)(.*) { + location ~* ^/iui/([^/]+)(.*)\.(?:png|jpg|jpeg|js|css|html|gif|ico|bmp|woff)$ { + set $iuiname $1; + set $iuiparam $2; + set $iuiserver "fallback"; + set $iuiurl ""; + + # Lua files + rewrite_by_lua_file luaext/openouirouter.lua; + access_by_lua_file luaext/execute_auth.lua; + + proxy_cache nginx_cache; + proxy_cache_key $host$uri$is_args$args; + proxy_cache_valid 200 304 12h ; + proxy_cache_valid 301 302 1m ; + proxy_cache_valid any 1m ; + expires 12h; + + proxy_pass http://$iuiserver; + } + set $iuiname $1; + set $iuiparam $2; + set $iuiserver "fallback"; + set $iuiurl ""; + + # Lua files + rewrite_by_lua_file luaext/openouirouter.lua; + access_by_lua_file luaext/execute_auth.lua; + + proxy_pass http://$iuiserver; + } + + location ~ ^/admin/([^/]+)(/[Vv][^/]*)?(.*) { + set $apiname $1; + set $apiversion $2; + set $apiserver "fallback"; + set $adminurl ""; + + # Lua files + rewrite_by_lua_file luaext/openoadminrouter.lua; + access_by_lua_file luaext/execute_auth.lua; + + proxy_pass http://$apiserver; + } + + location ~ ^/apijson/([^/]+)(/[Vv][^/]*)?(.*) { + location ~* ^/apijson/([^/]+)(/[v][^/]*)?(.*)\.(?:png|jpg|jpeg|js|css|html|gif|ico|bmp|woff)$ { + set $apiname $1; + set $apiversion $2; + set $apiserver "fallback"; + set $apijsonurl ""; + + # Lua files + rewrite_by_lua_file luaext/openoapijsonrouter.lua; + access_by_lua_file luaext/execute_auth.lua; + + proxy_cache nginx_cache; + proxy_cache_key $host$uri$is_args$args; + proxy_cache_valid 200 304 12h ; + proxy_cache_valid 301 302 1m ; + proxy_cache_valid any 1m ; + expires 12h; + + proxy_pass http://$apiserver; + } + set $apiname $1; + set $apiversion $2; + set $apiserver "fallback"; + set $apijsonurl ""; + + # Lua files + rewrite_by_lua_file luaext/openoapijsonrouter.lua; + access_by_lua_file luaext/execute_auth.lua; + + proxy_pass http://$apiserver; + } + + location ~* \.(?:png|jpg|jpeg|js|css|html|gif|ico|bmp|woff)$ { + set $server "fallback"; + set $url ""; + set $key ""; + + # Lua files + rewrite_by_lua_file luaext/customrouter.lua; + access_by_lua_file luaext/execute_auth.lua; + + proxy_cache nginx_cache; + proxy_cache_key $host$uri$is_args$args; + proxy_cache_valid 200 304 12h ; + proxy_cache_valid 301 302 1m ; + proxy_cache_valid any 1m ; + expires 12h; + + proxy_pass http://$server; + } + + location = /favicon.ico { + log_not_found off; + } +}
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua index 4e820f5..de8a402 100644 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/luaext/msbconf.lua @@ -22,5 +22,5 @@ local _M = {} _M._VERSION = '1.0.0' return { - auth_plugin_status = "on" + auth_plugin_status = "off" }
\ No newline at end of file diff --git a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf index 88ab447..cb60a98 100644 --- a/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf +++ b/msb-core/openresty-ext/src/assembly/resources/openresty/nginx/sites-enabled/openomsb.conf @@ -21,7 +21,11 @@ server { listen 80; default_type text/html; add_header X-Cache-Status $upstream_cache_status; - + + location = / { + rewrite ^ /openoui/microservices/index.html redirect; + } + location = /openoui/microservices { rewrite /openoui/microservices /openoui/microservices/index.html redirect; } diff --git a/msb-core/pom.xml b/msb-core/pom.xml index 71f4192..0fc1b94 100644 --- a/msb-core/pom.xml +++ b/msb-core/pom.xml @@ -33,6 +33,7 @@ <modules> <module>openresty</module> <module>openresty-ext</module> + <module>eag-openresty-ext</module> <module>redis</module> <module>redis-ext</module> <module>apiroute</module> |