OpenMonitor - Desktop Agent
Python Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
conf
deps
docs
install_scripts
share
tools
umit
.gitignore
.gitmodules
AUTHORS
COPYING
COPYING_HIGWIDGETS
ChangeLog
INSTALL.md
MANIFEST.in
Manifesto.txt
README.md
TODO
__init__.py
pip_requirements.txt

README.md

Internet Connectivity Moniter Desktop Agent README

Requirements: Windows, Linux or Mac OS with Python 2.7

Dependencies:

  • Twisted 11.0.0
    • Zope.Interface 3.6.3
  • PyGTK 2.24.0
  • pyOpenSSL 0.12
  • Google Protocol Buffers 2.4.1
  • pygtkChart Beta
  • PyCrypto 2.1.0
  • pyactiveresource

Running ICM Desktop Agent

  • Execute bin/icm-agent.py.

It will start the agent and read configuration from conf/agent_config.txt. A icon will be showed in the system tray area. And it will also open a port for serving the other agent.

List of Directories and Files:

  • bin/ - The binary files for ICM Desktop Agent.
  • bin/icm-agent.py - This is the executor of the agent. It will start the Main.py
  • in the umit.icm.agent package.
  • conf/ - The configuration files for ICM Desktop Agent.
  • conf/agent_config.txt - ICM Agent config file.
  • deps/ - The dependencies for running ICM Desktop Agent.
  • deps/higwidgets - A GUI library wrapped PyGTK+.
  • deps/icm-common - The common files shared by the whole ICM project.
  • deps/umit-common - Some useful modules provided by UMIT to its projects.
  • docs/ - The documents for ICM Desktop Agent. (generated by epydoc)
  • share/ - Images, Icons, Locale files.
  • umit/ - The Python source code package.

The ICM Desktop Agent's Main Procedure:

  1. Try to connect to the Aggregator. If it's the first time running, it should register a new account and download a token and a pair of public/private key.
  2. If cannot connect to the Aggregator, connect to the Super Agents. The addresses of the Super Agents can be fetched from somewhere on the internet or from its local file.
  3. Authenticate with the Aggregator or the Super Agents it has connected.
  4. Get super peer list from the Aggregator or the Super Agents. Connect to them.
  5. Get normal peer list from the Aggregator or the Super Agents. Connect to them.
  6. Waiting for the Aggregator or the Super Agents to assign testing tasks. Or perform a regular test suite.
  7. Generate test reports, send the reports to the Aggregator. If failed, send them to one or two Super Agents. If all Super Agents are not available, send them to all its neighbours (normal agents). The reports will be routing to the aggregator. And a de-duplication of reports will be done on both Super Agent and the Aggregator.

Also, the Desktop Agent accept RPC request from the Aggregator and the Super Agents.

Important notes to INSTALL (@Ubuntu):

  • sudo apt-get install python-dev
  • sudo pip install pycrypto --upgrade

Developers do:

  • git submodule foreach git pull