TODO

Version 26 (Etienne Pallier, 08/10/2016 05:14 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 25 Etienne Pallier
  * Bloquants: si 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 25 Etienne Pallier
  * Non bloquants: si en panne (ou pas démarrés), Pyros 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()