Scripts.md (n2n-3.0) | : | Scripts.md (n2n-3.1.1) | ||
---|---|---|---|---|
# Scripts | # Scripts | |||
There are a number of useful scripts included with the distribution. | There are a number of useful scripts included with the distribution. | |||
Some of these scripts are only useful during build and development, but | Some of these scripts are only useful during build and development, but | |||
other scripts are intended for end users to be able to use. These scripts | other scripts are intended for end users to be able to use. These scripts | |||
may be installed with n2n as part of your operating system package. | may be installed with n2n as part of your operating system package. | |||
Short descriptions of these scripts are below. | All scripts can be found in the `scripts` directory. | |||
## `scripts/hack_fakeautoconf.sh` | ||||
This shell script is used during development to help build on Windows | ||||
systems. An example of how to use it is shown in | ||||
the [Building document](Building.md) | ||||
## `scripts/indent.sh` | ||||
This shell script is a wrapper for the `uncrustify` C code style checker | ||||
which checks or applies a set of rules to the code. It is used during | ||||
the automated lint checks. | ||||
## `scripts/test_harness.sh` | Short descriptions of these scripts are below. | |||
This shell script is used to run automated tests during development. | ## End user scripts | |||
## `scripts/n2n-ctl` | ### `n2n-ctl` | |||
This python script provides an easy command line interface to the running | This python script provides an easy command line interface to the running | |||
n2n processes. It uses UDP communications to talk to the Management API. | n2n processes. It uses UDP communications to talk to the Management API. | |||
By specifying the right UDP port, it can talk to both the edge and the | By specifying the right UDP port, it can talk to both the edge and the | |||
supernode daemons. | supernode daemons. | |||
Example: | Example: | |||
- `scripts/n2n-ctl --help` | - `scripts/n2n-ctl --help` | |||
- `scripts/n2n-ctl help` | - `scripts/n2n-ctl help` | |||
## `scripts/n2n-httpd` | ### `n2n-httpd` | |||
This python script is a simple http gateway to the running edge. It provides | This python script is a simple http gateway to the running edge. It provides | |||
a proxy for REST-like HTTP requests to talk to the Management API. | a proxy for REST-like HTTP requests to talk to the Management API. | |||
By default it runs on port 8080. | By default it runs on port 8080. | |||
It also provides a simple HTML page showing some edge information, which when | It also provides a simple HTML page showing some edge information, which when | |||
run with default settings can be seen at http://localhost:8080/ (Also | run with default settings can be seen at http://localhost:8080/ (Also | |||
a http://localhost:8080/supernode.html page for the supernode) | a http://localhost:8080/supernode.html page for the supernode) | |||
Example: | Example: | |||
- `scripts/n2n-httpd --help` | - `scripts/n2n-httpd --help` | |||
- `scripts/n2n-httpd 8087` | - `scripts/n2n-httpd 8087` | |||
## `scripts/n2n-gateway.sh` | ## Build and Development scripts | |||
### `hack_fakeautoconf.sh` | ||||
This shell script is used during development to help build on Windows | ||||
systems. An example of how to use it is shown in | ||||
the [Building document](Building.md) | ||||
### `indent.sh` | ||||
This shell script is a wrapper for the `uncrustify` C code style checker | ||||
which checks or applies a set of rules to the code. It is used during | ||||
the automated lint checks. | ||||
### `n2n-gateway.sh` | ||||
A sample script to route all the host traffic towards a remote gateway, | A sample script to route all the host traffic towards a remote gateway, | |||
which is reachable via the n2n virtual interface. | which is reachable via the n2n virtual interface. | |||
### `version.sh` | ||||
This script is used to determine the current version number during the | ||||
build process. | ||||
It looks at both the VERSION file and the GIT tags and outputs the | ||||
version number to use. | ||||
## Monitoring and statistics | ||||
### `munin/n2n_` | ||||
This is a simple monitoring script that can be used with the munin-node | ||||
system to monitor the n2n daemons. | ||||
This is a fully autoconfigurable wildcard munin plugin, but to get a quick | ||||
sample: | ||||
get a list of suggested plugin names: | ||||
``` | ||||
munin/n2n_ suggest | ||||
``` | ||||
Enable some of those names: | ||||
``` | ||||
ln -s /usr/share/munin/plugins/n2n_ /etc/munin/plugins/n2n_supernode_pkts | ||||
ln -s /usr/share/munin/plugins/n2n_ /etc/munin/plugins/n2n_supernode_counts | ||||
``` | ||||
Manually test fetching and config: | ||||
``` | ||||
/etc/munin/plugins/n2n_supernode_pkts | ||||
/etc/munin/plugins/n2n_supernode_pkts config | ||||
``` | ||||
## Testing scripts | ||||
### `test_harness.sh` | ||||
This shell script is used to run automated tests during development. It is | ||||
run with a testlist filename - pointing at a file containing the list of | ||||
tests to run. | ||||
Each test needs a file containing the expected output `${TESTNAME}.expected` | ||||
which is expected to exist in the same directory as the testlist (this dir is | ||||
referred to as `${listdir}` below). | ||||
Each test is a program, searched for in several locations, including the | ||||
`${listdir}/../scripts` dir. | ||||
Each test is run with its output being sent to `*.out` files in the `listdir` | ||||
and compared with the expected output. | ||||
### `scripts/test_integration_supernode.sh` | ||||
This starts a supernode and runs an integration test on the Json API using | ||||
the `n2n-ctl` command. | ||||
End of changes. 7 change blocks. | ||||
18 lines changed or deleted | 20 lines changed or added |