2023-02-24 22:31:12 -08:00
2021-07-12 22:39:05 -07:00
2021-09-19 15:51:11 -07:00
2021-05-07 20:31:36 -07:00
2021-08-31 12:02:05 -07:00
2021-07-09 10:19:34 -07:00
2021-08-31 12:02:05 -07:00
2021-07-09 10:19:34 -07:00
2021-07-14 07:17:25 -07:00
2021-07-14 07:17:25 -07:00

uCentralFMS

What is this?

The uCentralFMS is a micro-service part of the OpenWiFi ecosystem. uCentralFMS is a Firmware Management Service to facilitate the task of upgrade and maintaining the proper firmware for all the devices used in your OpenWiFi solution. You may either build it or use the Docker version.

OpenAPI

You may get static page with OpenAPI docs generated from the definition on GitHub Page.

Also you may use Swagger UI with OpenAPI definition file raw link (i.e. latest version file) to get interactive docs page.

Building

In order to build the uCentralFMS, you will need to install its dependencies, which includes the following:

  • cmake
  • boost
  • POCO 1.10.1 or later
  • a C++17 compiler
  • openssl
  • libpq-dev (PortgreSQL development libraries)
  • mysql-client (MySQL client)
  • librdkafka
  • cppkafka

Building is a 2 part process. The first part is to build a local copy of the framework tailored to your environment. This framework is Poco. The version used in this project has a couple of fixes from the master copy needed for cmake. Please use the version of this Poco fix. Building Poco may take several minutes depending on the platform you are building on.

Ubuntu

These instructions have proven to work on Ubuntu 20.4.

sudo apt install git cmake g++ libssl-dev libmariabd-dev unixodbc-dev 
sudo apt install libpq-dev libaprutil1-dev apache2-dev libboost-all-dev
sudo apt install librdkafka-dev liblua5.3-dev

git clone https://github.com/stephb9959/poco
cd poco
mkdir cmake-build
cd cmake-build
cmake ..
cmake --build . --config Release
sudo cmake --build . --target install

git clone https://github.com/stephb9959/cppkafka
cd cppkafka
mkdir cmake-build
cd cmake-build
cmake ..
cmake --build . --config Release
sudo cmake --build . --target install

cd ~
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralgw
cd wlan-cloud-ucentralgw
mkdir cmake-build
cd cmake-build
cmake ..
make

Fedora

The following instructions have proven to work on Fedora 33

sudo yum install cmake g++ openssl-devel unixODBC-devel mysql-devel mysql apr-util-devel boost boost-devel
sudo yum install yaml-cpp-devel lua-devel 
sudo dnf install postgresql.x86_64 librdkafka-devel
sudo dnf install postgresql-devel

git clone https://github.com/stephb9959/poco
cd poco
mkdir cmake-build
cd cmake-build
cmake ..
cmake --build . --config Release
sudo cmake --build . --target install

git clone https://github.com/stephb9959/cppkafka
cd cppkafka
mkdir cmake-build
cd cmake-build
cmake ..
cmake --build . --config Release
sudo cmake --build . --target install

cd ~
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralfms
cd wlan-cloud-ucentralfms
mkdir cmake-build
cd cmake-build
cmake ..
make

OSX Build

The following instructions have proven to work on OSX Big Sur. You need to install Homebrew. You must also have installed XCode for OS X.

brew install openssl
brew install cmake
brew install libpq
brew install mysql-client
brew install apr
brew install apr-util
brew install boost
brew install yaml-cpp
brew install postgresql
brew install unixodbc
brew install librdkafka

git clone https://github.com/stephb9959/poco
cd poco
mkdir cmake-build 
cd cmake-build
cmake ..
cmake --build . --config Release -j
sudo cmake --build . --target install

git clone https://github.com/stephb9959/cppkafka
cd cppkafka
mkdir cmake-build
cd cmake-build
cmake ..
cmake --build . --config Release
sudo cmake --build . --target install

cd ~
git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralfms
cd wlan-cloud-ucentralfms
mkdir cmake-build
cd cmake-build
cmake ..
make -j

After completing the build

After completing the build, you can remove the Poco source as it is no longer needed.

Expected directory layout

From the directory where your cloned source is, you will need to create the certs, logs, and data.

mkdir certs
mkdir logs
mkdir data

Certificates

Love'em of hate'em, we gotta use'em. So we tried to make this as easy as possible for you.

The certs directory

For all deployments, you will need the following certs directory, populated with the proper files.

certs ---+--- 
         +--- restapi-ca.pem
         +--- restapi-cert.pem
         +--- restapi-key.pem

OWFMS Service Configuration

The configuration is kept in a file called owfms.properties. To understand the content of this file, please look here

Firewall Considerations

Port Description Configurable
16003 Default port for REST API Access to the OWFMS yes

Kafka topics

Toe read more about Kafka, follow the document

Contributions

We need more contributors. Should you wish to contribute, please follow the contributions document.

Pull Requests

Please create a branch with the Jira addressing the issue you are fixing or the feature you are implementing. Create a pull-request from the branch into master.

Additional OWSDK Microservices

Here is a list of additional OWSDK microservices

Name Description Link OpenAPI
OWSEC Security Service here here
OWGW Controller Service here here
OWFMS Firmware Management Service here here
OWPROV Provisioning Service here here
OWANALYTICS Analytics Service here here
Description
No description provided
Readme BSD-3-Clause 4.4 MiB
Languages
C++ 94.3%
CMake 2.8%
Shell 2.3%
Dockerfile 0.4%
Smarty 0.2%