From 1edb8dd5a8c191437dd2e777ada6b1945c7c389a Mon Sep 17 00:00:00 2001 From: stephb9959 Date: Sun, 19 Sep 2021 15:51:11 -0700 Subject: [PATCH] Updating for relevant information. --- CLI.md | 57 +++++++++++++++++++-------------- README.md | 94 ++++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 102 insertions(+), 49 deletions(-) diff --git a/CLI.md b/CLI.md index a259cc7..13e8aef 100644 --- a/CLI.md +++ b/CLI.md @@ -12,37 +12,48 @@ Once set, you can start using the `CLI`. Most commands will take from 0 to 2 parameters. You should include all parameters in double quotes when possible. ## The commands +### getfirmwares +Get a lit of firmwares. -### `cli getfirmwares ` -This will list all firmwares that apply to the `device_type`. You can get a list of `device_types` with the `cli devicetypes` command. +### latestfirmware +Get the latest firmware for the device_type specified. -### `latestfirmware ` -Get the latest firmware version for a given `device_type`. +### revisions +Get a list of revisions available. -### `cli revisions` -Get the list of currently available revisions. +### devicetypes +Get the list of device types supported. -### `cli devicetypes` -Retrieve the list of known `device_types` +### firmwareage +Calculate how out of date a specific release it. -### `cli firmwareage ` -If you specify your `device_type` and `revision`, the system will do its best to estimate how -far in the past you `revision` is compared to the latest revision. +### gethistory +Get the device firmware history. -### `cli gethistory ` -Get the revision history for a given device. +### connecteddevice +Get the device status. -### `cli connecteddevices` -Get a list of the currently known devices and the last connection information we have about the, +### connectedDevices +Get the list of connected devices. -### `cli connecteddevice ` -Get the information relevant to a specific device. +### devicereport +Get the dashboard. -### `cli devicereport` -Give a simplified dashboard report of the data in the service. +### setloglevel +Set the log level for s specific subsystem. -### `cli fmsversion` -Display the version of the service. +### getloglevels +Get the current log levels for all subsystems. + +### getloglevelnames +Get the log level names available. + +### getsubsystemnames +Get the list of subsystems. + +### systeminfo +Get basic system information. + +### reloadsubsystem +Reload the configuration for a subsystem. -### `cli fmstimes` -Display the uptime and start time of the service. diff --git a/README.md b/README.md index 633b12b..e9c3cec 100644 --- a/README.md +++ b/README.md @@ -128,30 +128,6 @@ cmake .. make -j ``` -### Raspberry -The build on a rPI takes a while. You can shorten that build time and requirements by disabling all the larger database -support. You can build with only SQLite support by not installing the packages for ODBC, PostgreSQL, and MySQL by -adding -DSMALL_BUILD=1 on the cmake build line. - -``` -sudo apt install git cmake g++ libssl-dev libaprutil1-dev apache2-dev libboost-all-dev libyaml-cpp-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 - -cd ~ -git clone https://github.com/Telecominfraproject/wlan-cloud-ucentralfms -cd wlan-cloud-ucentralfms -mkdir cmake-build -cd cmake-build -cmake -DSMALL_BUILD=1 .. -make -``` - ### After completing the build After completing the build, you can remove the Poco source as it is no longer needed. @@ -167,11 +143,77 @@ mkdir data 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. +For all deployments, you will need the following `certs` directory, populated with the proper files. ```asm -certs ---+--- root.pem +certs ---+--- +--- restapi-ca.pem +--- restapi-cert.pem +--- restapi-key.pem ``` + +### Configuration +The configuration is kep in the file `owfms.properties`. This is a text file read by the service at startup time. + +#### Basic configuration +You must set the environment variables: +- OWFMS_ROOT: represents where the root of the installation is for this service. +- OWFMS_CONFIG: represents the path where the configuration is kept. + +#### The file section +#### RESTAPI +```json +openwifi.restapi.host.0.backlog = 100 +openwifi.restapi.host.0.security = relaxed +openwifi.restapi.host.0.rootca = $OWFMS_ROOT/certs/restapi-ca.pem +openwifi.restapi.host.0.address = * +openwifi.restapi.host.0.port = 16004 +openwifi.restapi.host.0.cert = $OWFMS_ROOT/certs/restapi-cert.pem +openwifi.restapi.host.0.key = $OWFMS_ROOT/certs/restapi-key.pem +openwifi.restapi.host.0.key.password = mypassword +``` +Of importance are the `.port` which should point to the port used. + +#### Internal microservice interface +```json +openwifi.internal.restapi.host.0.backlog = 100 +openwifi.internal.restapi.host.0.security = relaxed +openwifi.internal.restapi.host.0.rootca = $OWFMS_ROOT/certs/restapi-ca.pem +openwifi.internal.restapi.host.0.address = * +openwifi.internal.restapi.host.0.port = 17004 +openwifi.internal.restapi.host.0.cert = $OWFMS_ROOT/certs/restapi-cert.pem +openwifi.internal.restapi.host.0.key = $OWFMS_ROOT/certs/restapi-key.pem +openwifi.internal.restapi.host.0.key.password = mypassword +``` +You can leave all the default values for this one. + +#### System values +In the following values, you need to change `.uri.public` and `uri.ui`. The `.uri.public` must point to an externally available FQDN to access the service. The `.uri.ui` must point to web server running +the UI for the service. `firmwaredb.refresh` tells the service how often to refresh the firmware database in seconds. `firmwaredb.maxage` tells the service how old you +want to accept release for. This value is in days. + +```json +openwifi.service.key = $OWFMS_ROOT/certs/restapi-key.pem +openwifi.service.key.password = mypassword +openwifi.system.data = $OWFMS_ROOT/data +openwifi.system.debug = false +openwifi.system.uri.private = https://localhost:17004 +openwifi.system.uri.public = https://ucentral.dpaas.arilia.com:16004 +openwifi.system.commandchannel = /tmp/app.owfms +openwifi.system.uri.ui = ucentral-ui.arilia.com +firmwaredb.refresh = 1800 +firmwaredb.maxage = 90 +``` + +#### S3 configuration +The service mua read the information about firmware from an Amazon S3 Bucket. You need to replace `s3.secret` and `s3.key` with your own. + +```json +s3.bucketname = ucentral-ap-firmware +s3.region = us-east-1 +s3.secret = ******************************************* +s3.key = ******************************************* +s3.retry = 60 +s3.bucket.uri = ucentral-ap-firmware.s3.amazonaws.com + +``` \ No newline at end of file