Name Last Update
.settings Loading commit data...
SCRIPTS Loading commit data...
config Loading commit data...
data Loading commit data...
doc Loading commit data...
docker Loading commit data...
install Loading commit data...
logs Loading commit data...
private Loading commit data...
privatedev/plugin Loading commit data...
simulators Loading commit data...
src Loading commit data...
vendor Loading commit data...
.bash_aliases Loading commit data...
.dockerignore Loading commit data...
.gitignore Loading commit data...
.project Loading commit data...
AUTHORS.md Loading commit data...
CHANGELOG Loading commit data...
Dockerfile Loading commit data...
Dockerfile-django2 Loading commit data...
LICENSE.txt Loading commit data...
PYROS Loading commit data...
PYROS.bat Loading commit data...
PYROSW.py Loading commit data...
README.md Loading commit data...
VERSION Loading commit data...
cp_private_dev_to_private.bat Loading commit data...
cp_private_dev_to_private.sh Loading commit data...
pyros.py Loading commit data...
pyros_api.py Loading commit data...
setup.py Loading commit data...
start_agent.py Loading commit data...
upload_sequence.md Loading commit data...

README.md

PYROS (PYthon Robotic Observatory System)

A Python software for the management of a Telescope control center

COPYRIGHT (C) 2012-2018 IRAP (Institut de Recherche en Astrophysique et Planetologie) Toulouse - France

Authors : etienne.pallier@irap.omp.eu, alain.klotz@irap.omp.eu, patrick.maeght@irap.omp.eu, paul.carensac@epitech.eu, alexandru.burlacu11@gmail.com, jeremy.barneron@gmail.com, quentin.durand@epitech.eu

GPL License (http://www.gnu.org/copyleft/gpl.html) - See the file LICENSE.txt

This software runs with Python 3 and Django 2

To install it, go into the "install/" folder, and read the document INSTALLATION (better is to go to https://docs.google.com/document/d/1m7wUGMUPNPE2gdsQNLILDeF738oIk9OlQjVjNzQyWA8/edit#heading=h.aqi3gs3yp2s3)

This file is written in the markdown format (see https://openclassrooms.com/en/courses/1304236-redigez-en-markdown, https://michelf.ca/projets/php-markdown/syntaxe, https://daringfireball.net/projects/markdown/syntax)


Tested platforms

This software has been tested and validated with the following configurations :

  • Centos 7 (test server planetoweb2) :

    • Python: 3.5
    • Mysql:
    • Apache:
  • Ubuntu 14LTS (Paul Carensac's laptop) :

    • Python: 3.5
    • Mysql: 5.5.46
    • Apache:
  • Ubuntu 16.04 LTS (Jérémy Barneron's laptop) :

    • Python: 3.5.2
    • Mysql: 5.7.15
    • Apache: 2.4.18
    • Django: 1.10.2
  • Mac OS 10.11.4 (Etienne Pallier's laptop)

    • Python: 3.5
    • XAMPP for OS X 5.6.3, which comes with :
      • MySQL: 5.6.21
      • Apache 2.4.10

Project structure (OBSOLETE)

- src/ : conteneur du projet (le nom est sans importance)
    - manage.py : utilitaire en ligne de commande permettant differentes actions sur le projet
    - pyros/ : the actual Python package of the project
        - settings.py : project settings and configuration
        - urls.py : déclaration des URLs du projet
        - wsgi.py : point d'entrée pour déployer le projet avec WSGI

- database/ : database configuration and documentation

- doc/ : project documentation

- install/ : project installation howto

- private/ : the content of this folder is private and thus not commited to git ; it should contain your Python3 virtual environment

- simulators/ : the devices simulators

- public/ : this folder contains all public files like the web html files
    - static/

LAST VERSION

Date: 19/06/2019

Author: E. Pallier (epallier@irap.omp.eu)

VERSION: 0.30.12

Comment :

  • "./pyros install -p -d" => (-p = --packages_only ; -d = --database_only)

    RAPPELS SUR L'UTILISATION :

    • (TEST) Scenarios de test : 1) ./pyros test 2) ./pyros testall 3) Lancer agents A et B en mode simu (option -t): ./pyros.py -t start agentA,agentB Attendre 1 à 2mn jusqu'à obtenir les 2 résultats suivants: (AgentA): Finished testing => result is ok (AgentB): Finished testing => result is ok 4) Lancer agentDevice et agentTelescopeRequester en mode simu (-t) : ./pyros.py -t start agentTelescopeRequester,agentDevice
    • (RUN) Mode opératoire pour lancer un agent (en mode normal, hors test) :
      • pour lancer agentA seulement : ./pyros.py start agentA [-c configfile]
      • pour lancer plusieurs agents : ./pyros.py start agentA,agentB,... -c configfile
      • pour utiliser thread ou processus : il suffit de mettre la constante RUN_IN_THREAD de AgentA (ou AgentB ou AgentX) à False ou True


MAIN CHANGES HISTORY (MILESTONES):

Full list of commits: https://gitlab.irap.omp.eu/epallier/pyros/commits/master

(The new official changes history is here : https://tinyurl.com/pyros-dev#heading=h.2r55bflctpt5)

19/06/2019 : v0.30.11 (EP)

- Bugfixed AgentM
- Named test database "test_pyros" explicitely
- Keep test database test_pyros (do not delete it after tests)

12/06-17/06/2019 : v0.30.3-9 (EP)

- Restructuration du projet - phase 1 : /src/ => /pyros_django/
- Restructuration du projet - phase 2 : /pyros_django/ => /src/core/pyros_django/
- Restructuration du projet - phase 3 : /devices_channel/ => /src/devices_controller/
- Restructuration du projet - phase 4 : /src/core/pyros_django/utils/celme/ => /src/core/celme/
- Restructuration du projet - phase 5a : /src/devices_controller/ => réorganisation interne 1/2 :
    - sortir /src/devices_controller/client/channel => /src/devices_controller/channel/
    - sortir /src/devices_controller/client/devices_abstract/ => /src/devices_controller/devices_abstract/
    - supprimer dossier client/
    - rename channel/ => channels/
    - rename devices_abstract/ => devices_controller_abstract_component/
- Restructuration du projet - phase 5b : /src/devices_controller/ => réorganisation interne 2/2 :
    - create folder devices_controller/devices_controller_concrete/
    - migrer le dossier devices_controller/server/ => devices_controller/devices_controller_concrete/server/
    - rename server/ => device_simulator_common/    
- Deplacement de tous les devices concrets dans leurs dossiers respectifs (Gemini, AK, ...)
- Ajouté 2 HOWTO (pour test et run) à la racine du projet

11/06/2019 : v0.30.2 (EP)

- Ajouté options "test" et "testall" dans pyros.py pour exécution des (anciens) tests unitaires
- Restructuring : private/ => venv/

26/04/19 : Version 0.20.42 (EP)

- plantUML diagrams créés récursivement dans les dossiers doc/

Fin mars 19 : Version 0.20.40 ? (EP)

- AgentDeviceTelescopeStatus : 1 seule ligne mise à jour dans la table
- AgentDevice + AgentDeviceTelescopeStatus + AgentTelescopeRequester :
    - AgentDevice met à jour la table AgentDeviceTelescopeStatus
    - AgentTelescopeRequester interroge AgentDevice
    - Mode opératoire:
        ./pyros start agentDevice
        ou, en mode simu:
        ./pyros -t start agentTelescopeRequester,agentDevice    
- Génération automatique des diagrammes PlantUML avec "pyros update"
- Implémentation complète du "Command state diag"
- Nouveaux diagrammes UML pour Command (state diag) et Agent (activity diag)
- Déplacé AgentM dans src/monitoring/ (pyros start agentM)
- Implémenté la commande "restart_init" (voir doc "play with a pyros agent") et refactorisation de run()
- Implémenté le "abort" dans le simulateur
- Optimisation log_agent_status() (ex update_survey())
- AgentM (début) pour remplacer progressivement l'agent monitoring
- routine_process() : envoi commande n'est plus bloquant
- pyros.py peut lancer plusieurs agents (A et B) en même temps
- run(N) : run only N iterations
- send_command() implemented
- EVAL is now a generic command
- mode DEBUG (2 niveaux pour print)
- flush_command : nouvelle commande pour purger les commmandes en attente
- routine_process() implemented
- Eval command implemented
- self.print() pour les agents
- Chaque agent a son propre scenario de commandes à envoyer
- GROSSE OPTIMISATION : plus besoin du script intermédiaire "start_agent.py" !!!
    ==> pyros.py lance directement "cd src/agent/ ; python AgentX.py"

17/01/19 : Version 20190117.0.000.0 (EP)

- NO MORE CELERY (removed from everywhere)

10/10/18 : Version 2018.0.011 (E. Pallier)

- NEW versionning plan : YYYYMMDD.M.mmm.b
    - YYYYMMDD = Day (UTC)
    - M = Major version number
    - mmm = Minor version number
    - b = Bugfix number
- Global Version number is now in src/__init__.py (idem for each pyros application) 
- new devices_channel/ folder containing the new DeviceControllerAbstract and ClientChannelAbstract classes (independant from pyros for the moment, but will soon be integrated)
- new src/utils/celme (celestial mecanics) library from Alain Klotz (more and more used inside pyros)
- better README.md formatted file

14/05/18 : Version 2018.0.001 (Q. Durand)

  • Update all dependencies, update to django 2 and work in progress on the dashboard

23/03/18 Version 0.16.11 (E. Pallier)

  • All unit tests now pass WITHOUT celery (./manage.py test or ./pyros.py test)

22/03/18 Version 0.16.10 (E. Pallier)

  • New global variable USE_CELERY (false by default) in pyros.settings

13/03/18 Version 0.16.7 (E. Pallier)

  • Each agent (envmonitor, majordome, alert) can be started independently with a script (new script start_agent in each agent directory)
  • New command "pyros start" to start pyros in different ways (different options : everything or only some components)

22/02/18 Version 0.16.5 (E. Pallier)

  • Better isolation of Monitoring for easier testing (+ tuto)

01/02/18 Version 0.16.3 (Q. Durand)

  • New installation script src/install/install.py multiplatform (Lin-Mac-Win10, but also tested on Win7)

24/02/17 Version 0.15.1 - Added comments (Jeremy Barneron)

18/01/17 Version 0.15 - Execution with simulators

15/12/16 Version 0.14.1 - Final version 0.14

02/08/16 Version 0.12.4 - Final version 0.12 Simulators first versions https://projects.irap.omp.eu/versions/129

20/07/16 Version 0.11.4 - Final version 0.11 Alert manager second version https://projects.irap.omp.eu/versions/128

05/07/16 Version 0.10.2 - Final version 0.10 Monitoring first version https://projects.irap.omp.eu/versions/120

05/07/16 Version 0.9.2 - Final version 0.9 Analysis skeleton https://projects.irap.omp.eu/versions/119

28/06/16 Version 0.8.3 - Final version 0.8 Execution (majordome & obs manager), first version https://projects.irap.omp.eu/versions/118

23/06/16 Version 0.7.8 - Final version 0.7 Routine manager, first version https://projects.irap.omp.eu/versions/117

20/05/16 Version 0.6.1 - Final version 0.6 Complete user management https://projects.irap.omp.eu/versions/123

20/05/16 Version 0.5.4 - Final version 0.5 Complete alert manager first version https://projects.irap.omp.eu/versions/116

20/05/16 Version 0.4.2 - Final version 0.4 Complete scheduler update https://projects.irap.omp.eu/versions/90

10/05/16 Version 0.3.12 - Final version 0.3 Complete workflow skeleton https://projects.irap.omp.eu/versions/88

13/04/16 Version 0.2.7 - Final version 0.2 Integrate PLANNER module https://projects.irap.omp.eu/versions/97

12/04/16 Version 0.1.1 - Final version 0.1 Multi-platform skeleton easy install + admin interface on database + start dashboard https://projects.irap.omp.eu/versions/87

04/04/16 Installable version (install script)


TODO LIST (URGENT)

DEMO:

  • SIMULATOR:
    • (AC) réserver cette page à un login superuser sinon n'importe qui pourra faire n'importe quoi à distance...
    • 1) PLC :
      • ajouter boutons "START" et "STOP"
      • implémenter weather et site OK/KO
    • 2) TELE : implémenter "start" et "stop"
    • 3) General : implement set to night/day