Skip to content

Latest commit

 

History

353 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Swagger generated server

Overview

This server was generated by the swagger-codegen project. By using the OpenAPI-Spec from a remote server, you can easily generate a server stub. This is an example of building a swagger-enabled Flask server.

This example uses the Connexion library on top of Flask.

Quick start

Everything is here. Just invoke the tests and enjoy the show.

./setup_MC_certs.sh
./run_VIS_unittests.sh

Ubuntu 16.04 LTS

This example requires Python 3.5 to run the test suites

It also requires a fairly new release of OpenSSL for running TLSv1.2 that is required by STM.

After trying Raspberry Pi with Raspbian and EC2 AWS instances with AMI I finally found one good distro with all the right tools. It was Ubuntu 16.04 LTS release which will be supported for 4 years.

SSL certification

In order to use SSL certificates you need to add your service instance certificates in the VesselVIS directory. The code will look for the files

VesselVIS/Certificate_VIS*.pem
VesselVIS/PrivateKey_VIS*.pem
VesselVIS/mc-ca-chain.pem

As the MarineCloud certificates are self-signed you also need to set them up correctly for OpenSSL. This is done by running a script.

VesselVIS/setup_MC_certs.sh

To run the server, please execute the following from the root directory:

pip3 install -r requirements.txt
python3 -m swagger_server

and open your browser to here:

https://stm.furuno.fi:8001/ui/ -- Vessel 1
https://stm.furuno.fi:8002/ui/ -- Vessel 2
https://stm.furuno.fi:8003/ui/ -- Vessel 3
https://stm.furuno.fi:8004/ui/ -- Vessel 4
...

Your Swagger definition lives here:

https://stm.furuno.fi:8002/swagger.json

Point your web browser here to try out the services:

https://stm.furuno.fi:8002/ui/

To set up the env environment for testing, launch tox:

sudo pip3 install tox
tox

To run the integration test suite we need to launch two vessel service instances that are capable of communicating with each other

./run_VIS_unittests.sh

By peeking inside the previous script you have examples of how to run single tests.

To set the parameters up for each vessel there is now a new script:

python3 vesselconf.py

It builds a new file called vessel.conf that contains the port and host of the new service.

{"host": "127.0.0.1", "port": 8103}

You can of course just edit this file by hand also.

For security we are using a nginx front end that takes care of certificates. The content is served by this flask server. Setting up the nginx server is a separate project. If you want help in setting up nginx drop me a line.

About

No description or website provided.

Topics

Resources

Stars

4 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages