TODO

Version 27 (Etienne Pallier, 08/10/2016 05:16 pm)

1 1 Paul Carensac
h1. TODO
2 1 Paul Carensac
3 1 Paul Carensac
List of tasks by application, and general tasks (organization, tools, ...)
4 1 Paul Carensac
5 1 Paul Carensac
{{>toc}}
6 1 Paul Carensac
7 1 Paul Carensac
---
8 1 Paul Carensac
9 1 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}General tasks%
10 1 Paul Carensac
11 3 Etienne Pallier
12 25 Etienne Pallier
* Pyros : 
13 1 Paul Carensac
14 25 Etienne Pallier
 * Doit pouvoir être démarré indifféremment AVANT les devices, ou APRES
15 25 Etienne Pallier
 * De manière générale, doit être le plus possible "tolérant aux pannes"
16 25 Etienne Pallier
 * Doit être le plus générique et donc paramétrable possible
17 1 Paul Carensac
18 25 Etienne Pallier
19 23 Etienne Pallier
* Django : 
20 12 Etienne Pallier
21 11 Etienne Pallier
 * Upgrade to Django 1.10
22 13 Etienne Pallier
 * Remplacer le serveur web de "dev" (manage runserver) par un vrai serveur web pour la "prod" (Apache pour les fichiers statiques + serveur d'application Python pour le code Python, par exemple gunicorn)
23 11 Etienne Pallier
(cf https://projects.irap.omp.eu/projects/pyros/wiki/Project_Development#Serveur-Web)
24 23 Etienne Pallier
25 20 Etienne Pallier
* Comet installation : Include in the install_requirements.sh script (by using stable official version for Python 3 (when available) on Linux (and Mac) and Windows 10
26 1 Paul Carensac
27 1 Paul Carensac
* git : Create a "dev" branch (do not write anymore on the "master" branch)
28 1 Paul Carensac
29 25 Etienne Pallier
* Simulators : 
30 1 Paul Carensac
31 25 Etienne Pallier
 * on doit se rendre compte qu'ils sont "vivants" (ils seront progressivement remplacés par les vrais devices, mais resteront toujours utilisables à leur place)
32 25 Etienne Pallier
33 25 Etienne Pallier
  * Le Monitoring doit les interroger régulièrement sur leur statut (check_status, DONE)
34 25 Etienne Pallier
  * Il doit stocker les statuts dans la BD (TODO)
35 25 Etienne Pallier
  * Ces statuts doivent être affichés au fur et à mesure sur la page web du "device" correspondant (Devices, Site, Weather) (TODO)
36 25 Etienne Pallier
37 25 Etienne Pallier
 * quels sont les devices bloquants et non bloquants ?
38 25 Etienne Pallier
39 27 Etienne Pallier
  * Bloquants: si indisponibles (en panne ou pas démarrés), Pyros met en pause le sous-système d'observation
40 26 Etienne Pallier
Seules 3 fonctions restent toujours actives: alertes, monitoring, et serveur web (pour les routines et la surveillance)
41 25 Etienne Pallier
42 25 Etienne Pallier
   * Telescope
43 25 Etienne Pallier
   * Camera VIS (???)
44 25 Etienne Pallier
   * PLC
45 25 Etienne Pallier
46 27 Etienne Pallier
  * Non bloquants: si indisponibles (en panne ou pas démarrés), Pyros se contente d'en prendre note, et continue son fonctionnement normal tout en restant dans l'attente de leur redémarrage pour les réintégrer
47 25 Etienne Pallier
48 25 Etienne Pallier
   * Camera VIS (???)
49 25 Etienne Pallier
   * Camera NIR
50 25 Etienne Pallier
51 23 Etienne Pallier
52 22 Etienne Pallier
* Users: gérer les 3 profils (admin, expert, user)
53 23 Etienne Pallier
54 14 Etienne Pallier
* Doc :
55 17 Etienne Pallier
56 14 Etienne Pallier
 * TEST:
57 14 Etienne Pallier
  
58 14 Etienne Pallier
  * Unit tests
59 14 Etienne Pallier
  * Functional tests (with Celery and simulators)
60 14 Etienne Pallier
61 14 Etienne Pallier
 * LAUNCH:
62 14 Etienne Pallier
63 14 Etienne Pallier
  * Start simulators
64 14 Etienne Pallier
  * Start Celery
65 14 Etienne Pallier
  * Start pyros
66 14 Etienne Pallier
67 14 Etienne Pallier
 * USE:
68 14 Etienne Pallier
69 15 Etienne Pallier
  * Administration of the database: http://localhost:8000/admin
70 1 Paul Carensac
  * Interacting with Pyros: http://localhost:8000
71 15 Etienne Pallier
  
72 15 Etienne Pallier
   * Watch the environment: Devices, Site, Weather
73 15 Etienne Pallier
   * Watch the schedule: Schedule
74 15 Etienne Pallier
   * Watch the data processing (workflow): System (Dashboard)
75 16 Etienne Pallier
   * Submit a Routine Request (and get results): Routines
76 21 Etienne Pallier
   * Watch alerts: Alerts
77 15 Etienne Pallier
   * Simulate an Alert: Alerts (TODO: Un user "admin" doit pouvoir déclencher une alerte type depuis la page web Alerts)
78 14 Etienne Pallier
   * Manual operations on the Telescope : Devices/Telescope (TODO)
79 1 Paul Carensac
   * Manage users : Users
80 22 Etienne Pallier
81 14 Etienne Pallier
82 1 Paul Carensac
83 1 Paul Carensac
---
84 1 Paul Carensac
85 2 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}Applications tasks%
86 2 Paul Carensac
87 2 Paul Carensac
h3. Dashboard
88 2 Paul Carensac
89 2 Paul Carensac
 * Create the backoffice views as the modules are integrated in pyros
90 2 Paul Carensac
 * Think about a system of permissions
91 2 Paul Carensac
92 2 Paul Carensac
h3. Scheduler
93 2 Paul Carensac
94 2 Paul Carensac
 * views
95 2 Paul Carensac
96 2 Paul Carensac
  * Link the main page to the current schedule instead of the simulation page
97 2 Paul Carensac
  * Show user sequences in the schedules (with links)
98 2 Paul Carensac
  * Give accces to old schedules (day / days before / all end-night plannings / all plannings)
99 2 Paul Carensac
  * Give access to the refused sequences of a schedule, and the reasons of rejects
100 2 Paul Carensac
101 2 Paul Carensac
 * scheduler
102 2 Paul Carensac
103 2 Paul Carensac
  * Change the system to determine night start/end (they must be given in parameter, only if first_schedule is True)
104 2 Paul Carensac
  * Store the reasons of rejects (create a new attribute, in shs ?)
105 2 Paul Carensac
  * What is the 'flag' attribute ? (@AK)
106 2 Paul Carensac
  * Do not create the execute_sequence tasks if it's not the night (- 120 seconds)
107 2 Paul Carensac
  * Priority and quota computing
108 2 Paul Carensac
  * Quotas evolution
109 2 Paul Carensac
  * Blank space filling
110 2 Paul Carensac
  * At the end of a scheduling send, it to the IC ?
111 2 Paul Carensac
112 2 Paul Carensac
h3. Alert Manager
113 2 Paul Carensac
114 2 Paul Carensac
 * Web :
115 2 Paul Carensac
116 2 Paul Carensac
  * Print if there is an alert in progress in the main page
117 2 Paul Carensac
  * Link the alerts to their status and results
118 2 Paul Carensac
119 2 Paul Carensac
 * Connect to a real VOEvent broker
120 2 Paul Carensac
121 2 Paul Carensac
 * Determine the communication with FSC for strategy change
122 2 Paul Carensac
123 2 Paul Carensac
 * VOEvents :
124 2 Paul Carensac
125 2 Paul Carensac
  * Extract the good fields (see AK Q&A 07/01/2016)
126 2 Paul Carensac
  * Fill the request & alerts objects
127 2 Paul Carensac
  * Use strategies to build a request
128 2 Paul Carensac
  * Possibility to change the default strategy
129 2 Paul Carensac
  * Handle VOEvent updates
130 2 Paul Carensac
  * Be careful to not create 2 alerts for a same GRB, seen by 2 different satellites 
131 2 Paul Carensac
132 2 Paul Carensac
133 2 Paul Carensac
h3. Analyzer
134 2 Paul Carensac
135 2 Paul Carensac
 * Apply the calibrations in the right function
136 2 Paul Carensac
 * Apply the analyses only if it's a GRB
137 2 Paul Carensac
 * Implement the analyses
138 2 Paul Carensac
 * Send analyses to FSC
139 2 Paul Carensac
140 2 Paul Carensac
141 2 Paul Carensac
h3. Majordome
142 2 Paul Carensac
143 2 Paul Carensac
 * TaskManager
144 2 Paul Carensac
145 2 Paul Carensac
  * When a sequence is cancelled, give back the quota to the user
146 2 Paul Carensac
  * In case of alert, do not stop the ongoing plan, and make the instruments abort
147 2 Paul Carensac
148 2 Paul Carensac
 * execute_sequence
149 2 Paul Carensac
150 2 Paul Carensac
  * Add the PLC checks at start (to see if we do the slew)
151 2 Paul Carensac
  * Use the global telescope (instead of creating one here)
152 2 Paul Carensac
  * Give first_schedule as false when a scheduling is launched
153 2 Paul Carensac
  * Remove the default countdown (1, for tests)
154 2 Paul Carensac
155 2 Paul Carensac
 * system_pause
156 2 Paul Carensac
157 2 Paul Carensac
  * Abort the isntruments
158 2 Paul Carensac
  * Stop the execution tasks
159 2 Paul Carensac
160 2 Paul Carensac
 * system_restart
161 2 Paul Carensac
162 2 Paul Carensac
  * Start a scheduling
163 2 Paul Carensac
164 2 Paul Carensac
 * change_obs_conditions
165 2 Paul Carensac
166 2 Paul Carensac
  * Change sequences status (if  needed)
167 2 Paul Carensac
  * If some status changed, re-launch a scheduling
168 2 Paul Carensac
169 2 Paul Carensac
170 2 Paul Carensac
h3. Monitoring
171 2 Paul Carensac
172 2 Paul Carensac
 * views
173 2 Paul Carensac
174 2 Paul Carensac
  * Move the dashboard here
175 2 Paul Carensac
  * Print the instrument status
176 2 Paul Carensac
  * Print PLC informations (with the evolution)
177 2 Paul Carensac
  * In the dashboard screens, put scroll on each screen to see the old logs
178 2 Paul Carensac
179 2 Paul Carensac
 * Monitoring task
180 2 Paul Carensac
 
181 2 Paul Carensac
  * Uncomment the scheduling at the beginning
182 2 Paul Carensac
  * Implement night start/end computation
183 2 Paul Carensac
  * Initialize communication with the instruments
184 2 Paul Carensac
  * Configure intruments at start
185 2 Paul Carensac
  * Send software versions to the IC
186 2 Paul Carensac
  * Initialize connection with PLC
187 2 Paul Carensac
  * After the starting actions, loop to wait for the instruments configuration to be finished
188 2 Paul Carensac
  * Ask PLC for status
189 2 Paul Carensac
  * Ask filter wheel for status
190 2 Paul Carensac
  * Store the instruments & PLC status
191 2 Paul Carensac
  * Send all status to IC
192 2 Paul Carensac
  * Analyse PLC status (obs conditions, ...)
193 2 Paul Carensac
  * Create tasks of obs condition changes
194 2 Paul Carensac
195 2 Paul Carensac
196 2 Paul Carensac
h3. Observation Manager
197 2 Paul Carensac
198 2 Paul Carensac
 * execute_plan :
199 2 Paul Carensac
200 2 Paul Carensac
  * Use the cameras at a global level instead of creating them here (same for the filter wheels)
201 2 Paul Carensac
  * Uncomment the instruments_ready waiting function
202 2 Paul Carensac
  * Uncomment the observation_ending waiting function
203 2 Paul Carensac
  * Try to remove code duplication
204 2 Paul Carensac
  * Determine what needs to be done at the end of an observation
205 2 Paul Carensac
206 2 Paul Carensac
 * create_calibrations :
207 2 Paul Carensac
208 2 Paul Carensac
  * Make the calibration images
209 2 Paul Carensac
  * Generate super images
210 2 Paul Carensac
  * Send them to the IC
211 2 Paul Carensac
212 2 Paul Carensac
213 2 Paul Carensac
h3. Routine Manager
214 2 Paul Carensac
215 2 Paul Carensac
 * Web
216 2 Paul Carensac
217 2 Paul Carensac
  * Put the goods fields (for coordinates etc)
218 2 Paul Carensac
  * Only propose the objects that matches the conditions (ex: scientific programs of the user only)
219 2 Paul Carensac
  * Do all the needed checks
220 2 Paul Carensac
  * Add automatic computation of JD1/JD2
221 2 Paul Carensac
  * Add checkbox for JD / GD
222 2 Paul Carensac
  * Add options : copy my sequence on x days, and authorise report
223 2 Paul Carensac
  * Add ETC-IS simulation
224 2 Paul Carensac
  * Add help for new users (and for it the first time an account come on the page)
225 2 Paul Carensac
 
226 2 Paul Carensac
 * Do more checks at unserialization
227 2 Paul Carensac
228 2 Paul Carensac
 * views
229 2 Paul Carensac
230 2 Paul Carensac
  * When saving, do more checks on coordinates, jd1/2 etc
231 2 Paul Carensac
  * Uncomment filter for alerts removing
232 2 Paul Carensac
  * When submitting, use the monitoring to determine sequences status
233 2 Paul Carensac
  * When submitting, modify the first_schedule to False, when scheduling
234 2 Paul Carensac
  * When unsubmitting, uncomment the check for EXED and EXING removing
235 2 Paul Carensac
  * When unsubmitting, uncomment the scheduling and change the first_schedule to False
236 2 Paul Carensac
237 2 Paul Carensac
238 2 Paul Carensac
h3. User Manager
239 2 Paul Carensac
240 2 Paul Carensac
 * Password recovery
241 2 Paul Carensac
 * Profile page
242 2 Paul Carensac
 * User validation by administrator / commission
243 2 Paul Carensac
 * Handle permissions and access
244 2 Paul Carensac
245 2 Paul Carensac
246 2 Paul Carensac
h3. Common
247 2 Paul Carensac
248 2 Paul Carensac
 * Network communication for every instrument
249 1 Paul Carensac
 * Change the 'first_schedule' to False at the end of RequestBuilder.validate()