SatNOGS Config utility¶
SatNOGS Config is a utility for generating the configuration for a Debian-based SatNOGS client system.
It is a menu driven configuration tool built on-top of pythondialog
.
The main purpose of this utility is to create the YAML configuration file for SatNOGS Client Ansible which provisions the system.
In addition to that, it interacts with satnogs-setup
, which is a wrapper to bootstrap Ansible, upgrades the system packages using APT and probes the hardware to show the user a more limited set of configuration options.
Table of Contents¶
User guide¶
Requirements¶
Python 3.4+
libapt 1.8+ Python bindings
lsb-release 10+
Installation¶
Debian¶
To install the required dependencies in Debian run:
$ apt-get install python3-apt lsb-release
SatNOGS Config¶
To install SatNOGS Config run:
$ pip install satnogs-config
This will install a console script called satnogs-config
.
Usage¶
To execute the script, run it on the command line:
$ satnogs-config
The main menu will be shown
Basic¶
The Basic
sub-menu contains the minimum required configuration options for provisioning the SatNOGS client system.
Advanced¶
The Advanced
sub-menu contains a larger set of configuration options.
It is intended for advanced users and contains options categorized by component.
Show¶
The Show
option displays the current configuration file.
Upgrade¶
The Upgrade
option calls APT
utilities to upgrade the distribution packages.
Update¶
The Update
option works in conjunction with satnogs-setup
to re-bootstrap Ansible and update the configuration tools.
Reset¶
The Reset
option resets the configuration file generated by the utility, effectively removing all the configuration options set by the user.
Apply¶
The Apply
button runs SatNOGS Client Ansible which provisions Debian to become a SatNOGS client system.
Developer guide¶
Installation¶
To install the required dependencies in Debian run:
$ apt-get install python3-apt lsb-release
It is recommended to install SatNOGS Config in a virtualenv.
The virtualenv needs to have access to system Python bindings.
To create the virtualenv, you can use virtualenvwrapper
.
On the first time, create the virtualenv by running:
$ mkvirtualenv --system-site-packages -a . satnogs-config
To activate the virtualenv after it is created run:
$ workon satnogs-config
To install SatNOGS Config for development run in the project root directory:
$ pip install -e .
Configuration¶
This project uses python-dotenv
.
Configuration of satnogsconfig/settings.py
can be overridden by setting the respective environment variables or an .env
file placed on the project root directory.
Extending¶
SatNOGS Config functionality can be extended by implementing additional helpers. The helpers are used to enhance menu functionality beyond the core function of generating a YAML file for Ansible.
Code Quality Assurance¶
The following code quality assurance tools are used in this project:
flake8
isort
yapf
pylint
Automation¶
tox
is used to automate development tasks.
To install tox
run:
$ pip install tox
To execute the default list of tasks run:
$ tox
Environments¶
The following tox
environments are available:
flake8
- Check code for common errors, coding style and complexity
isort
- Check code for correct imports order
isort-apply
- Sort imports
yapf
- Check code for correct formatting
yapf-apply
- Reformat source code
pylint
- Execute static code analysis
build
- Build source and binary distributions
upload
- Upload source and binary distributions to PyPI
docs
- Build documentation
To execute a single environment run:
$ tox -e <environment>
Modules reference¶
satnogsconfig
¶
SatNOGS Config module initialization
satnogsconfig.config
¶
Configuration module
-
class
satnogsconfig.config.
Config
(filename)[source]¶ Manage configuration file
- Parameters
filename (str) – File path of configuration
-
_load_config
()[source]¶ Load and parse YAML configuration
- Returns
Configuration dictionary
- Return type
dict or NoneType
-
dump_config
(to_file=False)[source]¶ Dump configuration in YAML format
- Parameters
to_file (bool, optional) – Dump to file
- Returns
YAML configuration
- Return type
str
satnogsconfig.helpers
¶
Helpers module
-
class
satnogsconfig.helpers.
SatnogsSetup
[source]¶ Interract with satnogs-setup
-
property
gnuradio_version
¶ Get installed gnuradio version
- Returns
Version of gr-soapy
- Return type
str
-
property
gr_satnogs_version
¶ Get installed gr-satnogs version
- Returns
Version of gr-satnogs
- Return type
str
-
property
gr_soapy_version
¶ Get installed gr-soapy version
- Returns
Version of gr-soapy
- Return type
str
-
property
is_applied
¶ Check whether configuration has been applied
- Returns
Whether configuration has been applied
- Return type
bool
-
static
restart
(boot=False)[source]¶ Restart satnogs-setup script
- Parameters
boot (bool, optional) – Whether to bootstrap or not
-
property
satnogs_client_ansible_version
¶ Get installed SatNOGS Client Ansible version
- Returns
Version of SatNOGS Client Ansible
- Return type
str
-
property
satnogs_client_version
¶ Get installed SatNOGS Client version
- Returns
Version of SatNOGS Client
- Return type
str
-
property
satnogs_flowgraphs_version
¶ Get installed satnogs-flowgraphs version
- Returns
Version of satnogs-flowgraphs
- Return type
str
Get satnogs-setup tags
- Returns
Set of tags
- Return type
set
-
property
-
class
satnogsconfig.helpers.
GrSatnogs
[source]¶ Get and set gr-satnogs configuration
-
property
gr_satnogs_version
¶ Get gr-satnogs version
-
property
-
class
satnogsconfig.helpers.
Ansible
(ansible_dir)[source]¶ Call Ansible playbooks
-
pull
(playbooks, url, branch=None, tags=None, extra_args=None)[source]¶ Pull and run Ansible playbook
- Parameters
playbooks (list) – List of playbooks
url (str) – Git URL to pull playbooks
branch (str, optional) – Git branch to pull playbooks
tags (list, optional) – List of tags
extra_args (list, optional) – List of extra arguments to pass to Ansible
- Returns
Whether Ansible execution succeeded
- Return type
bool
-
-
class
satnogsconfig.helpers.
Support
(config, satnogs_setup, ansible)[source]¶ Create support information to be used for reporting bugs
-
dump
(*args, **kwargs)[source]¶ Dump support information
- Returns
JSON dump of support information
- Return type
str
-
property
info
¶ Support information
- Returns
Support information dictionary
- Return type
dict
-