TODO
Version 28 (Etienne Pallier, 08/10/2016 05:18 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 | 28 | Etienne Pallier | * PLC (weather + observation conditions + site) |
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() |