Merge branch 'master' into cleanup/codacy-cleanup

This commit is contained in:
bharnden 2018-10-18 16:21:05 -07:00 committed by GitHub
commit a7bc7500fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 53 additions and 63 deletions

View file

@ -40,61 +40,8 @@ the CORE mailing lists:
## Building CORE
```shell
./bootstrap.sh
./configure
make
sudo make install
```
### Building Documentation
```shell
./bootstrap.sh
./configure
make doc
```
### Building Packages
Install fpm: <http://fpm.readthedocs.io/en/latest/installing.html>
Build package commands, DESTDIR is used for gui packaging only
```shell
./bootstrap.sh
./configure
make
mkdir /tmp/core-gui
make fpm DESTDIR=/tmp/core-gui
```
This will produce:
* CORE GUI rpm/deb files
* core-gui_$VERSION_$ARCH
* CORE ns3 rpm/deb files
* python-core-ns3_$VERSION_$ARCH
* CORE python rpm/deb files for SysV and systemd service types
* python-core-sysv_$VERSION_$ARCH
* python-core-systemd_$VERSION_$ARCH
See [CORE Installation](http://coreemu.github.io/core/install.html) for detailed build instructions.
### Running CORE
First start the CORE services:
```shell
# sysv
sudo service core-daemon start
# systemd
sudo systemctl start core-daemon
```
This automatically runs the core-daemon program.
Assuming the GUI is in your PATH, run the CORE GUI by typing the following:
```shell
core-gui
```
This launches the CORE GUI. You do not need to run the GUI as root.
See [Using the CORE GUI](http://coreemu.github.io/core/usage.html) for more details on running CORE.

View file

@ -583,7 +583,8 @@ class EmuSession(Session):
x, y, _ = self.location.getxyz(lat, lon, alt)
# set position and broadcast
node.setposition(x, y, None)
if None not in [x, y]:
node.setposition(x, y, None)
# broadcast updated location when using lat/lon/alt
if using_lat_lon_alt:

View file

@ -228,8 +228,8 @@ UseDNS no
class DhcpService(UtilService):
name = "DHCP"
configs = ("/etc/dhcp/dhcpd.conf",)
dirs = ("/etc/dhcp",)
startup = ("dhcpd",)
dirs = ("/etc/dhcp","/var/lib/dhcp")
startup = ("touch /var/lib/dhcp/dhcpd.leases","dhcpd")
shutdown = ("killall dhcpd",)
validate = ("pidof dhcpd",)

View file

@ -377,8 +377,6 @@ class CoreXmlWriter(object):
links = []
for node in self.session.objects.itervalues():
logger.info("writer adding node(%s)", node.name)
# network node
if isinstance(node, coreobj.PyCoreNet) and not nodeutils.is_node(node, NodeTypes.CONTROL_NET):
self.write_network(node)

View file

@ -87,13 +87,11 @@ class CoreXmlDeployment(object):
def find_device(self, name):
device = self.scenario.find("devices/device[@name='%s']" % name)
logger.info("specific found scenario device: %s", device)
return device
def find_interface(self, device, name):
interface = self.scenario.find("devices/device[@name='%s']/interfaces/interface[@name='%s']" % (
device.name, name))
logger.info("specific found scenario interface: %s", interface)
return interface
def add_deployment(self):

View file

@ -179,7 +179,7 @@ sudo apt install automake pkg-config gcc libev-dev bridge-utils ebtables python-
#### Ubuntu 16.04 Requirements
```shell
sudo apt-get install automake bridge-utils ebtables python-dev libev-dev python-sphinx python-setuptools python-enum34 python-lxml
sudo apt-get install automake bridge-utils ebtables python-dev libev-dev python-sphinx python-setuptools python-enum34 python-lxml libtk-img
```
@ -194,12 +194,46 @@ You can obtain the CORE source from the [CORE GitHub](https://github.com/coreemu
```shell
tar xzf core-*.tar.gz
cd core-*
```
#### Tradional Autotools Build
```shell
./bootstrap.sh
./configure
make
sudo make install
```
#### Build Documentation
```shell
./bootstrap.sh
./configure
make doc
```
#### Build Packages
Install fpm: http://fpm.readthedocs.io/en/latest/installing.html
Build package commands, DESTDIR is used for gui packaging only
```shell
./bootstrap.sh
./configure
make
mkdir /tmp/core-gui
make fpm DESTDIR=/tmp/core-gui
```
This will produce:
* CORE GUI rpm/deb files
* core-gui_$VERSION_$ARCH
* CORE ns3 rpm/deb files
* python-core-ns3_$VERSION_$ARCH
* CORE python rpm/deb files for SysV and systemd service types
* python-core-sysv_$VERSION_$ARCH
* python-core-systemd_$VERSION_$ARCH
### Quagga Routing Software
Virtual networks generally require some form of routing in order to work (e.g. to automatically populate routing tables for routing packets from one subnet to another.) CORE builds OSPF routing protocol configurations by default when the blue router node type is used. The OSPF protocol is available from the [Quagga open source routing suit](http://www.quagga.net).

View file

@ -11,6 +11,18 @@ CORE can be used via the GUI or [Python_Scripting](scripting.md). Often the GUI
CORE can be customized to perform any action at each phase in the workflow above. See the *Hooks...* entry on the **Session Menu** for details about when these session states are reached.
## Prerequisites
Beyond instaling CORE, you must have the CORE daemon running. This is done on the command line with either Systemd or SysV
```shell
# systed
sudo systemctl daemon-reload
sudo systemctl start core-daemon
# sysv
sudo service core-daemon start
```
## Modes of Operation
The CORE GUI has two primary modes of operation, **Edit** and **Execute** modes. Running the GUI, by typing **core-gui** with no options, starts in Edit mode. Nodes are drawn on a blank canvas using the toolbar on the left and configured from right-click menus or by double-clicking them. The GUI does not need to be run as root.