Pyros applications

Version 22 (Paul Carensac, 05/19/2016 03:28 pm)

1 1 Paul Carensac
h1. Pyros applications
2 1 Paul Carensac
3 2 Paul Carensac
List and details of all the pyros applications.
4 2 Paul Carensac
5 17 Paul Carensac
{{>toc}}
6 17 Paul Carensac
7 2 Paul Carensac
---
8 2 Paul Carensac
9 2 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}pyrosapp%
10 2 Paul Carensac
11 3 Paul Carensac
h3. Purpose
12 2 Paul Carensac
13 2 Paul Carensac
 * Contains all the database Models
14 2 Paul Carensac
 * Basic tests in tests.py
15 2 Paul Carensac
 * Backoffice configuration in admin.py
16 2 Paul Carensac
17 3 Paul Carensac
h3. Notes
18 2 Paul Carensac
19 2 Paul Carensac
 * Will be progressively deleted while models being displaced
20 2 Paul Carensac
21 2 Paul Carensac
---
22 2 Paul Carensac
23 2 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}dashboard%
24 2 Paul Carensac
25 3 Paul Carensac
h3. Purpose
26 2 Paul Carensac
27 2 Paul Carensac
 * Interface for all external users
28 2 Paul Carensac
 * Leads to displays and actions for all the pyros modules (users, requests, system execution, ...)
29 2 Paul Carensac
30 4 Paul Carensac
h3. Evolution
31 4 Paul Carensac
32 4 Paul Carensac
 * Creating application
33 4 Paul Carensac
34 4 Paul Carensac
    * manage.py startapp dashboard
35 5 Paul Carensac
    * added 'dashboard' in settings.py -> INSTALLED_APPS
36 5 Paul Carensac
    * created a urls.py file in dashboard module
37 5 Paul Carensac
    * added _url(r'^dashboard/', include('dashboard.urls'))_ in pyros/urls.py -> urlpatterns
38 5 Paul Carensac
    * created templates/ and templates/dashboard/ folders in dashboard module
39 5 Paul Carensac
40 5 Paul Carensac
 * Main page
41 5 Paul Carensac
42 5 Paul Carensac
    * added 'home' view in views.py
43 5 Paul Carensac
    * linked 'home' view to 8000/dashboard URL
44 5 Paul Carensac
    * created a template for the homepage in templates/dashboard/ (with bootstrap)
45 5 Paul Carensac
    * created views, views linking (urls.py) and templates for the dashboard modules
46 5 Paul Carensac
    * redirected mainpage buttons to Admin interface (temporary)
47 4 Paul Carensac
48 22 Paul Carensac
 * System page (logs)
49 22 Paul Carensac
50 22 Paul Carensac
    * Retrieve logs from the db
51 22 Paul Carensac
    * Print logs and automatically update via an ajax request
52 22 Paul Carensac
53 3 Paul Carensac
h3. Notes
54 2 Paul Carensac
55 2 Paul Carensac
 * The buttons lead to the Admin interface for the moment
56 7 Paul Carensac
 * Added bootstrap3 module (see Installation)
57 7 Paul Carensac
 * Added Django Template Editor (see Eclipse configuration)
58 2 Paul Carensac
59 3 Paul Carensac
h3. TODO
60 2 Paul Carensac
61 2 Paul Carensac
 * Create the backoffice views as the modules are integrated in pyros
62 2 Paul Carensac
 * Think about a system of permissions
63 2 Paul Carensac
64 2 Paul Carensac
---
65 8 Paul Carensac
66 8 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}scheduler%
67 8 Paul Carensac
68 8 Paul Carensac
h3. Purpose
69 8 Paul Carensac
70 8 Paul Carensac
 * Creates the planning with the OBSERVABLE sequences
71 8 Paul Carensac
 * Give acces to a web page to see the current planning
72 8 Paul Carensac
73 8 Paul Carensac
h3. Evolution
74 8 Paul Carensac
75 8 Paul Carensac
 * Creating application
76 8 Paul Carensac
77 8 Paul Carensac
    * manage.py startapp scheduler
78 8 Paul Carensac
    * added 'scheduler' in settings.py -> INSTALLED_APPS
79 8 Paul Carensac
    * created a urls.py file in scheduler module
80 8 Paul Carensac
    * added _url(r'^scheduler/', include('scheduler.urls'))_ in pyros/urls.py -> urlpatterns
81 8 Paul Carensac
    * created templates/ and templates/scheduler/ folders in scheduler module
82 8 Paul Carensac
83 9 Paul Carensac
 * Model modifications
84 1 Paul Carensac
85 9 Paul Carensac
    * Schedule
86 9 Paul Carensac
87 9 Paul Carensac
        * Remove day_start
88 9 Paul Carensac
        * Remove day_stop
89 9 Paul Carensac
        * Add plan_start
90 13 Paul Carensac
        * Add plan_end
91 9 Paul Carensac
        * Enum system for the status 
92 9 Paul Carensac
    * ScheduleHistory
93 9 Paul Carensac
94 9 Paul Carensac
        * Remove day_start
95 9 Paul Carensac
        * Remove day_stop
96 9 Paul Carensac
        * Add plan_start
97 13 Paul Carensac
        * Add plan_end
98 9 Paul Carensac
    * Sequence
99 9 Paul Carensac
100 9 Paul Carensac
        * Remove exec_start
101 9 Paul Carensac
        * Remove exec_stop
102 9 Paul Carensac
        * Add tsp
103 9 Paul Carensac
        * Add tep
104 9 Paul Carensac
        * Add jd1
105 9 Paul Carensac
        * Add jd2
106 9 Paul Carensac
        * Add deltaTL
107 9 Paul Carensac
        * Add deltaTR
108 9 Paul Carensac
        * Add t_prefered
109 9 Paul Carensac
        * Changed duration from Float to DecimalField (more precise)
110 15 Paul Carensac
        * Add overhead
111 15 Paul Carensac
112 10 Paul Carensac
    * manage.py makemigrations sheduler ; manage.py migrate
113 10 Paul Carensac
114 10 Paul Carensac
 * Creation of Scheduler and Interval classes in models.py
115 10 Paul Carensac
116 10 Paul Carensac
 * Implementation of the Interval class
117 10 Paul Carensac
118 12 Paul Carensac
 * 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).
119 9 Paul Carensac
120 14 Paul Carensac
 * Creation of the web interface
121 14 Paul Carensac
122 14 Paul Carensac
    * Added current_schedule.html in template/scheduler folder
123 14 Paul Carensac
    * Created view and url linking to this template (with current planning retrieving)
124 14 Paul Carensac
125 14 Paul Carensac
 * Creation of the simulator
126 14 Paul Carensac
127 14 Paul Carensac
    * Created a second entry point in the Scheduler class (with a few minor adaptations to handle SIMULATION mode)
128 14 Paul Carensac
    * Created a simulator module in the scheduler
129 14 Paul Carensac
        
130 14 Paul Carensac
        * Added the MyHTMLParser class (easy implementation of HTMLParser)
131 14 Paul Carensac
        * Adder Simulator class. It parses a file given in parametr to retrieve sequences and create a schedule
132 14 Paul Carensac
    * Created a second view linked to schedule/simulation to show simulation results
133 14 Paul Carensac
 
134 8 Paul Carensac
h3. Notes
135 8 Paul Carensac
136 1 Paul Carensac
 * Priorities and quotas are default-calculated (for the moment)
137 1 Paul Carensac
 * What is the 'flag' attribute in the Schedule model ?
138 9 Paul Carensac
139 1 Paul Carensac
h3. TODO
140 9 Paul Carensac
141 13 Paul Carensac
 * Determine plan_start & plan_end
142 9 Paul Carensac
 * Priority and quota computing
143 9 Paul Carensac
 * Re-scheduling
144 9 Paul Carensac
 * Blank space filling
145 9 Paul Carensac
 * History ?
146 18 Paul Carensac
147 18 Paul Carensac
---
148 18 Paul Carensac
149 18 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}alert_manager%
150 18 Paul Carensac
151 18 Paul Carensac
h3. Purpose
152 18 Paul Carensac
153 18 Paul Carensac
 * Listen to VOEvent network
154 18 Paul Carensac
 * Sort interesting events
155 18 Paul Carensac
 * Create requests according to these events
156 18 Paul Carensac
 * Manage the requests created via the alerts
157 18 Paul Carensac
158 18 Paul Carensac
h3. Evolution
159 18 Paul Carensac
160 18 Paul Carensac
 * Creating application
161 18 Paul Carensac
162 18 Paul Carensac
    * See scheduler documentation above
163 18 Paul Carensac
164 18 Paul Carensac
 * Implementation of the agent system
165 18 Paul Carensac
166 18 Paul Carensac
    * Created agent.py whith a "class AlertManagerAgent(Agent):" inside
167 18 Paul Carensac
    * Overriding agent's 'work' and 'shutdown' method
168 18 Paul Carensac
    * Added message(s) to agent.actions_by_message dictionnary, with the functions associated to these messages
169 18 Paul Carensac
    * Added the Agent's launch system in apps.py
170 18 Paul Carensac
 
171 18 Paul Carensac
 * Implementation of the VOEventListener Thread
172 18 Paul Carensac
173 18 Paul Carensac
    * Created a "class VOEventListener(Thread):" in agent.py
174 18 Paul Carensac
    * Overriding the run method
175 18 Paul Carensac
176 18 Paul Carensac
h3. Notes
177 18 Paul Carensac
178 18 Paul Carensac
 * No functionnality is implemented
179 18 Paul Carensac
180 18 Paul Carensac
h3. TODO
181 18 Paul Carensac
182 18 Paul Carensac
183 18 Paul Carensac
---
184 18 Paul Carensac
185 20 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}analyzer%
186 18 Paul Carensac
187 18 Paul Carensac
h3. Purpose
188 18 Paul Carensac
189 18 Paul Carensac
 * Analyze the images taken by the observation manager
190 18 Paul Carensac
191 18 Paul Carensac
h3. Evolution
192 18 Paul Carensac
193 18 Paul Carensac
 * Creating application
194 18 Paul Carensac
195 18 Paul Carensac
    * See scheduler documentation above
196 18 Paul Carensac
197 18 Paul Carensac
 * Implementation of the agent system
198 18 Paul Carensac
199 18 Paul Carensac
    * See alert_manager above
200 18 Paul Carensac
    * 'shutdown' method is not implemented here because the Agent's default one is enough 
201 18 Paul Carensac
202 18 Paul Carensac
h3. Notes
203 18 Paul Carensac
204 18 Paul Carensac
h3. TODO
205 18 Paul Carensac
206 18 Paul Carensac
---
207 18 Paul Carensac
208 19 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}majordome%
209 18 Paul Carensac
210 18 Paul Carensac
h3. Purpose
211 18 Paul Carensac
212 18 Paul Carensac
h3. Evolution
213 18 Paul Carensac
214 18 Paul Carensac
 * Creating application
215 18 Paul Carensac
216 18 Paul Carensac
    * See scheduler documentation above
217 18 Paul Carensac
218 21 Paul Carensac
 * Implementation of the agent system
219 1 Paul Carensac
220 21 Paul Carensac
    * See alert_manager above
221 21 Paul Carensac
222 21 Paul Carensac
 * Implementation of the MajordomeExecutor Thread
223 21 Paul Carensac
224 21 Paul Carensac
    * Created a "class MajordomeExecutor(Thread):" in agent.py
225 21 Paul Carensac
    * Overriding the run method
226 21 Paul Carensac
227 21 Paul Carensac
228 18 Paul Carensac
h3. Notes
229 18 Paul Carensac
230 18 Paul Carensac
h3. TODO
231 18 Paul Carensac
232 18 Paul Carensac
---
233 18 Paul Carensac
234 19 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}monitoring%
235 18 Paul Carensac
236 18 Paul Carensac
h3. Purpose
237 18 Paul Carensac
238 18 Paul Carensac
h3. Evolution
239 18 Paul Carensac
240 18 Paul Carensac
 * Creating application
241 1 Paul Carensac
242 18 Paul Carensac
    * See scheduler documentation above
243 1 Paul Carensac
244 21 Paul Carensac
 * Implementation of the agent system
245 1 Paul Carensac
246 21 Paul Carensac
    * See alert_manager above
247 21 Paul Carensac
    * 'shutdown' method is not implemented here because the Agent's default one is enough 
248 21 Paul Carensac
249 18 Paul Carensac
 
250 18 Paul Carensac
h3. Notes
251 18 Paul Carensac
252 18 Paul Carensac
h3. TODO
253 18 Paul Carensac
254 18 Paul Carensac
---
255 19 Paul Carensac
256 18 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}observation_manager%
257 18 Paul Carensac
258 18 Paul Carensac
h3. Purpose
259 18 Paul Carensac
260 18 Paul Carensac
h3. Evolution
261 18 Paul Carensac
262 1 Paul Carensac
 * Creating application
263 18 Paul Carensac
264 1 Paul Carensac
    * See scheduler documentation above
265 1 Paul Carensac
266 21 Paul Carensac
 * Implementation of the agent system
267 1 Paul Carensac
268 21 Paul Carensac
    * See alert_manager above
269 21 Paul Carensac
270 21 Paul Carensac
 * Implementation of the ObservationExecutor Thread
271 21 Paul Carensac
272 21 Paul Carensac
    * Created a "class ObservationExecutor(Thread):" in agent.py
273 21 Paul Carensac
    * Overriding the run method
274 21 Paul Carensac
275 18 Paul Carensac
 
276 18 Paul Carensac
h3. Notes
277 18 Paul Carensac
278 18 Paul Carensac
h3. TODO
279 18 Paul Carensac
280 19 Paul Carensac
---
281 18 Paul Carensac
282 18 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}request_builder%
283 18 Paul Carensac
284 18 Paul Carensac
h3. Purpose
285 18 Paul Carensac
286 18 Paul Carensac
h3. Evolution
287 18 Paul Carensac
288 18 Paul Carensac
 * Creating application
289 18 Paul Carensac
290 18 Paul Carensac
    * See scheduler documentation above
291 18 Paul Carensac
292 18 Paul Carensac
 
293 18 Paul Carensac
h3. Notes
294 18 Paul Carensac
295 18 Paul Carensac
h3. TODO
296 18 Paul Carensac
297 19 Paul Carensac
---
298 18 Paul Carensac
299 18 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}routine_manager%
300 18 Paul Carensac
301 18 Paul Carensac
h3. Purpose
302 18 Paul Carensac
303 18 Paul Carensac
h3. Evolution
304 18 Paul Carensac
305 18 Paul Carensac
 * Creating application
306 18 Paul Carensac
307 18 Paul Carensac
    * See scheduler documentation above
308 18 Paul Carensac
309 18 Paul Carensac
 
310 18 Paul Carensac
h3. Notes
311 18 Paul Carensac
312 18 Paul Carensac
h3. TODO
313 18 Paul Carensac
314 19 Paul Carensac
---
315 18 Paul Carensac
316 18 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}user_manager%
317 18 Paul Carensac
318 18 Paul Carensac
h3. Purpose
319 18 Paul Carensac
320 18 Paul Carensac
h3. Evolution
321 18 Paul Carensac
322 18 Paul Carensac
 * Creating application
323 18 Paul Carensac
324 18 Paul Carensac
    * See scheduler documentation above
325 18 Paul Carensac
326 18 Paul Carensac
 
327 18 Paul Carensac
h3. Notes
328 18 Paul Carensac
329 18 Paul Carensac
h3. TODO
330 18 Paul Carensac
331 18 Paul Carensac
---
332 18 Paul Carensac
333 20 Paul Carensac
h2. %{margin-left:0px; font-weight:bold; font-size:25px;  display:block; color:red;}common%
334 18 Paul Carensac
335 18 Paul Carensac
h3. Purpose
336 18 Paul Carensac
337 18 Paul Carensac
 * Regroups common data and functions shared by applications
338 18 Paul Carensac
339 18 Paul Carensac
h3. Content
340 18 Paul Carensac
341 18 Paul Carensac
 * Agent system in agent.py
342 18 Paul Carensac
343 18 Paul Carensac
    * Class to be overrode by every agent
344 18 Paul Carensac
    * Defines the agent names and status
345 18 Paul Carensac
346 18 Paul Carensac
 * Agents configuration in pyros_agent_config.ini
347 18 Paul Carensac
348 18 Paul Carensac
    * Defines the agents name, receiving port and ip
349 18 Paul Carensac
350 18 Paul Carensac
 * Sender system in sender.py
351 18 Paul Carensac
352 18 Paul Carensac
    * static send_to function, to send messages to the agents
353 18 Paul Carensac
354 18 Paul Carensac
 * Common tests in test.py
355 18 Paul Carensac
356 18 Paul Carensac
    * Class AgentTests to test agents' functionnalities
357 18 Paul Carensac
 
358 18 Paul Carensac
h3. Notes
359 18 Paul Carensac
360 18 Paul Carensac
h3. TODO