« Previous - Version 20/60 (diff) - Next » - Current version
Paul Carensac, 04/19/2016 05:40 pm


Pyros applications

List and details of all the pyros applications.


pyrosapp

Purpose

  • Contains all the database Models
  • Basic tests in tests.py
  • Backoffice configuration in admin.py

Notes

  • Will be progressively deleted while models being displaced

dashboard

Purpose

  • Interface for all external users
  • Leads to displays and actions for all the pyros modules (users, requests, system execution, ...)

Evolution

  • Creating application
    • manage.py startapp dashboard
    • added 'dashboard' in settings.py -> INSTALLED_APPS
    • created a urls.py file in dashboard module
    • added url(r'^dashboard/', include('dashboard.urls')) in pyros/urls.py -> urlpatterns
    • created templates/ and templates/dashboard/ folders in dashboard module
  • Main page
    • added 'home' view in views.py
    • linked 'home' view to 8000/dashboard URL
    • created a template for the homepage in templates/dashboard/ (with bootstrap)
    • created views, views linking (urls.py) and templates for the dashboard modules
    • redirected mainpage buttons to Admin interface (temporary)

Notes

  • The buttons lead to the Admin interface for the moment
  • Added bootstrap3 module (see Installation)
  • Added Django Template Editor (see Eclipse configuration)

TODO

  • Create the backoffice views as the modules are integrated in pyros
  • Think about a system of permissions

scheduler

Purpose

  • Creates the planning with the OBSERVABLE sequences
  • Give acces to a web page to see the current planning

Evolution

  • Creating application
    • manage.py startapp scheduler
    • added 'scheduler' in settings.py -> INSTALLED_APPS
    • created a urls.py file in scheduler module
    • added url(r'^scheduler/', include('scheduler.urls')) in pyros/urls.py -> urlpatterns
    • created templates/ and templates/scheduler/ folders in scheduler module
  • Model modifications
    • Schedule
      • Remove day_start
      • Remove day_stop
      • Add plan_start
      • Add plan_end
      • Enum system for the status
    • ScheduleHistory
      • Remove day_start
      • Remove day_stop
      • Add plan_start
      • Add plan_end
    • Sequence
      • Remove exec_start
      • Remove exec_stop
      • Add tsp
      • Add tep
      • Add jd1
      • Add jd2
      • Add deltaTL
      • Add deltaTR
      • Add t_prefered
      • Changed duration from Float to DecimalField (more precise)
      • Add overhead
    • manage.py makemigrations sheduler ; manage.py migrate
  • Creation of Scheduler and Interval classes in models.py
  • Implementation of the Interval class
  • Implementation of the Scheduler's 'make_schedule' function (and children). This is the only entry point for now. This function creates the planning (organizes the observable sequences).
  • Creation of the web interface
    • Added current_schedule.html in template/scheduler folder
    • Created view and url linking to this template (with current planning retrieving)
  • Creation of the simulator
    • Created a second entry point in the Scheduler class (with a few minor adaptations to handle SIMULATION mode)
    • Created a simulator module in the scheduler
      • Added the MyHTMLParser class (easy implementation of HTMLParser)
      • Adder Simulator class. It parses a file given in parametr to retrieve sequences and create a schedule
    • Created a second view linked to schedule/simulation to show simulation results

Notes

  • Priorities and quotas are default-calculated (for the moment)
  • What is the 'flag' attribute in the Schedule model ?

TODO

  • Determine plan_start & plan_end
  • Priority and quota computing
  • Re-scheduling
  • Blank space filling
  • History ?

alert_manager

Purpose

  • Listen to VOEvent network
  • Sort interesting events
  • Create requests according to these events
  • Manage the requests created via the alerts

Evolution

  • Creating application
    • See scheduler documentation above
  • Implementation of the agent system
    • Created agent.py whith a "class AlertManagerAgent(Agent):" inside
    • Overriding agent's 'work' and 'shutdown' method
    • Added message(s) to agent.actions_by_message dictionnary, with the functions associated to these messages
    • Added the Agent's launch system in apps.py
  • Implementation of the VOEventListener Thread
    • Created a "class VOEventListener(Thread):" in agent.py
    • Overriding the run method

Notes

  • No functionnality is implemented

TODO


analyzer

Purpose

  • Analyze the images taken by the observation manager

Evolution

  • Creating application
    • See scheduler documentation above
  • Implementation of the agent system
    • See alert_manager above
    • 'shutdown' method is not implemented here because the Agent's default one is enough

Notes

TODO


majordome

Purpose

Evolution

  • Creating application
    • See scheduler documentation above
  • Model modifications

Notes

TODO


monitoring

Purpose

Evolution

  • Creating application
    • See scheduler documentation above
  • Model modifications

Notes

TODO


observation_manager

Purpose

Evolution

  • Creating application
    • See scheduler documentation above
  • Model modifications

Notes

TODO


request_builder

Purpose

Evolution

  • Creating application
    • See scheduler documentation above
  • Model modifications

Notes

TODO


routine_manager

Purpose

Evolution

  • Creating application
    • See scheduler documentation above
  • Model modifications

Notes

TODO


user_manager

Purpose

Evolution

  • Creating application
    • See scheduler documentation above
  • Model modifications

Notes

TODO


common

Purpose

  • Regroups common data and functions shared by applications

Content

  • Agent system in agent.py
    • Class to be overrode by every agent
    • Defines the agent names and status
  • Agents configuration in pyros_agent_config.ini
    • Defines the agents name, receiving port and ip
  • Sender system in sender.py
    • static send_to function, to send messages to the agents
  • Common tests in test.py
    • Class AgentTests to test agents' functionnalities

Notes

TODO