Hi Andre,
here's some quick comments w.r.t. the resource package. It's more for the records - we can talk about this in detail when we discuss the resource package on the 28th (journal club).
I fundamentally disagree that 'Compute' inherits from 'saga.job.Service' and that 'Storage' inherits from saga.filesystem.Directory' because this:
1. breaks SAGA's horizontally independent package model: it would mean that I can't implement a resource-package only implementation of SAGA. I would have to implement the Job and the Filesystem package as well!
2. it mixes separate concerns: resource management and job submission!
3. I don't think that 'Directory' necessarily provides the right abstraction for all 'Storage' types. Certainly for most, but not for all. It's unnecessarily confining.
Furthermore,
- class manager -> Manager
- what does manager.describe_resource() do? why can't it be manager.resources[x].get_description()
- speaking of resources[x] - there's no 'non-property' version, i.e., get_resource()
- I would prefer explicit list/get_compute(), list/get_storage(), list/get_network() and so on, so that we don't have to do type checking all over the place.
- why are there two Pool.add() methods? Why do we want to be able to add resources as strings?
Cheers!
Ole