File: TODO

package info (click to toggle)
flumotion 0.2.2-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 6,500 kB
  • ctags: 3,784
  • sloc: python: 23,184; sh: 9,598; xml: 1,347; makefile: 839; ansic: 583; sed: 16
file content (157 lines) | stat: -rw-r--r-- 5,610 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
* EASY          put the type, moduleName, methodName, config set in
		a dict - or possibly a real object - instead of passing all
                these around in all functions

* MEDIUM	expand config file format with <section> blocks so the
		same set of properties can be repeated for, for example,
		a streamer component

* MEDIUM	expose a raw dv stream as a second feed on the firewire
		producer and allow the disker to connect to it

* MEDIUM	decide on style for properties in xml:
		mount-point, mountpoint or mountPoint
		some of these are gotten from glade file !

* MEDIUM	add api for admins to "subscribe" to admin methods in the
		manager, so only relevant commands get sent

* EASY		deprecate <source> tag and require base= attribute to <comp>

* EASY		rename components, files, ... to be uniform
		(e.g. web-camera -> webcam, ...)

* EASY		remove all old deprecated bundling code everywhere

* EASY		don't throw up the disconnect dialog when exiting admin client

* MEDIUM	give useful error messages when there is no network !
		(service network stop and start flumotion and see hang)

* EASY		move muxers in their own dir ?

* MEDIUM	component.component overrides .error and calls reactor.stop(),
	  	this is dangerous, figure that out

* MEDIUM	allow expression of
		"test component depends on streamer component"
		ie. non-feedcomponent dependencies

* EASY		change rawstring regentry type to string, and make
                pipelinestring for pipelines which need \n translated to space

* EASY		and force update every minute,
		or when stats are different from last,
	 	in http streamer UI

* MEDIUM	integration with monitoring tools:
		big brother: either:

* HARD		transfer ALL code from manager

* EASY		decide if bouncer's base authenticate method should always
		be overridden and thus raise

* MEDIUM	if you specify a converter with feedname other than default
		and a consumer eating from that feed and change the source
		to the same feedname, it fails.

* MEDIUM	webcams can be I420, YUY2, or others; we should detect this
	  	gst-plugins 0.8.6 will detect automatically since there is a
		new option for autoprobe-fps which we can then use
		use halogen

* MEDIUM	add runtime checks for plugin versions to provide decent
		fallbacks for bugs like this

* HARD		split up source code layout according to bundleability

* EASY		run with debug level 3 and make all messages "sane"
		and symmetric

* MEDIUM	implement cacheable Heavens for workers and components
		to admin

* HARD		work on proxyable state so that manager can initially create
		it then send it to admin who then becomes master

* MEDIUM	create Directed Acyclic Graph class and use it for
		- bundle dependencies
		- component dependencies
		and possibly remove feederset
		
* MEDIUM	allow inspecting and changing debug level on the fly of
		every process.  This way when a problem arises, before
		stopping and restarting, we can increase it and retry to
		get debug info

* MEDIUM	allow placing markers in the logs, preferably in all
		processes at the same time, same marker.  Allows you to
		keep track of what you are doing during debugging

* MEDIUM	allow to collect logs from all processes everywhere,
		possibly truncating older data or from older run, and
		bzip it up, and send it for debug

* MEDIUM	add and test a feature allowing you to start a python shell
		from the admin UI into any worker or manager
		helps ENORMOUSLY in debugging strange errors at a point
		where the system is broken - like AlreadyConnectedError

* MEDIUM	merge before_show and worker_changed in wizard, since they
		are pretty much the same anyway

* MEDIUM	split out wizard steps into their component directories

* EASY		add worker checks to all wizard steps now that infrastructure
		is there

* MEDIUM	refactor createComponent to be a real constructor

* MEDIUM	make sure the entry point specified in xml is used instead

* MEDIUM	when creating components in jobs, get the actual avatarId
		in there in some other way than putting it in the config dict

* EASY		change RequesterName to RequesterId

* MEDIUM	block a feeding gst port, and have something eat from it ->
		hangs in connect.  kill it -> process stays around

* MEDIUM	clean up ambiguous naming in registry/wizard code
		e.g. registry.getComponent -> getComponentEntry (it's a
		template for a component, not an actual component)

* MEDIUM	flumotion.common.registry: ewww @ RegistryEntryEntry
		rename generic Entry to Node ?

* MEDIUM	allow the manager to reparse all known config files; easier
	        than restarting manager and all workers

* MEDIUM	run all worker checks in a spawned process - segfaults are less
		painful that way.  maybe even start a job for it always

* MEDIUM	when a component segfaults, have the worker tell the manager
		that the component segfaulted and make it sad; maybe even allow
		attaching gdb and filing a bug report

- API cleanup:

- manager/component.py:
  - create/remove Avatar -> summon/expel
  - work on only name or only component, so there is a clear API distinction
  - name all arguments used in functions that are the same, with the same name
  - rename components to avatars, and rename functions accordingly

- make an executable script/program that makes all required checks and
  outputs a report, has a proper zero or non-zero exit status and 
  can't run forever if things are stuck (times out properly)


http component

- multiple sources
- rate limit
- make an http URL return a 2xx code when it works or a 5xx code
  when it doesn't
- check for StringIO requests instances, which Twisted 1.3.0 implements