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