Jump to: navigation, search

PTP/planning/2.0/TODO

< PTP‎ | planning‎ | 2.0

Please mark off the items as you complete the, and if possible, provide a brief description of the solution.

  1. Tick.gif Fix model events.
    • The old model event system has been replaced by a completely new approach. Each element in the model generates three kinds of events: element events, child events and error events. Element events are generated when the model element changes in some way (e.g. an attribute change). Child events are generated when a child of the element changes (e.g. a new child is created, removed or changed). Error events are used to propagate an out-of-band message, such as when a job submission fails.
  2. Tick.gif Random node icons change to running in Machines View.
    • This problem was related trying to retain the old event model. This is fixed now that this has been replaced.
  3. Tick.gif Remove all terminated jobs doesn't remove processes from nodes in UI.
    • Implemented a removeAllTerminated() method on a resource manager, and make sure that the views responded to events correctly.
  4. Tick.gif What needs to happen for handleRuntimeShutdownStateEvent in AbstractRuntimeResourceManager?
    • This is now handled during RM shutdown.
  5. Tick.gif Dynamic launch page problems.
    • This problem was caused by changes to the order that UI elements are created in the launch configuration pages in Eclipse 3.3. This has now been updated.
  6. Tick.gif What to do about errors. e.g. if job submission fails?
    • The error event generated as a result of job submission failure is now handled. It currently results in a null return from submitJob().
  7. Tick.gif Asynchronous job submission and debug launch
    • The actual job submission is still synchronous, however everthing is asynchronous once the job has been queued. The synchronous portion consists requesting a job submission and the creation of the (queued) job. The submitJob() method will block (using an IProgressMonitor) until the job has been created, then returns the IPJob. This avoids the client having to know anything about how job submission actually occurs, or worrying about job submission ID's, etc. Note that submitted jobs will normally be returned in a queued state, not in a running state, so it is still necessary to listen for job change events to determine when the job is actually run.
  8. Tick.gif Two names showing up in machine properties.
    • Removed hard coded attributes
  9. Tick.gif NPE when removing terminated jobs
    • Not checking for null return.
  10. Tick.gif Launch manually option does not work.
    • Now works but needs Dialog
  11. Tick.gif "Not Already Started" message
    • Stopping a stopped resource manager is now a no-op. Added confirm dialog when stopping a running RM.
  12. Tick.gif Unable to find resource manager factory
    • (what was the solution?)
  13. Tick.gif Fix stdout in process view
    • View was not registering itself as a listener on the process, so was not being notified of the process attribute changes.
  14. Tick.gif Cancel RM start if there is an error
    • Added state machine to deal with RM startup and shutdown. Errors on startup are now handled correctly.
  15. Tick.gif ResourceManager view doesn't display until all RM's have started.
  16. Delay in starting RM
    • Need to quantify this problem once things have stabilized a bit
  17. Tick.gif Update UI views
    • The jobs view has been updated to display all the jobs known by all resource managers. It will automatically display the last job launched.
    • The machines view has been substantially rewritten. It now displays all machines known by all resources managers. By selecting a machine, the nodes associated with that machine will be displayed. The machine status (UP, DOWN, ALERT, UNKNOWN) is now displayed as an icon next to the machine name. The 'Node Info' panel has been renamed to 'Node Attributes' and now allows adjusting the column width. Processes displayed in the 'Process Info' panel use an abbreviated name that is a combination of the job name and the process name. This allows processes from different jobs to be identified. Both panels now use TableViewers for better flexibility
    • The PTP Runtime perspective has been reorganized to improve the layout.
  18. Unique model ID's using RM type + RM name
    • Not sure if this is still needed
  19. Tick.gif Ability to edit a resource manager configuration
    • Added Edit context menu and double-click on RM
  20. Tick.gif Preference to automatically hide the RM/queue dropdowns in the parallel tab if there is only one active RM and the RM only has one queue.
    • Queue dropdown is disabled if RM has only one queue.
  21. Add new process icon to indicate stdout available
  22. Tick.gif The progress view doesn't work properly with 2 or more RMs.
    • Looks like a bug
    • I can't find anything wrong with the code, but it is adding two "Starting Model Manager" progresses on PTP startup
  23. Tick.gif Allow commands to be extended. e.g. The INIT command should be extensible to allow additional attributes to be supplied. This will require providing a hook (extension point?) into the RM package when commands are created.
    • A proxy runtime client can now supply factories for both commands and events. These factories can implement extended commands/events by overriding the standard factory methods. Although this could also be used to implement new commands/events, there is no way to hook into the state machine (yet).
  24. Tick.gif Add a field to the proxy preference page that allows arguments to be supplied to the proxy on launch.
    • Added to the remote RM configuration wizard page.
  25. Tick.gif Provide a per-job console that will merge stdout from all processes of the executing application.
    • This has now been implemented. It is disabled by default.
  26. Tick.gif Enable/disable console using a launch configuration option (default will be no console).
    • Check box now available on main tab in launch configuration.
  27. Enable stdin to be supplied using the console
  28. Redirect stdin/stdout to the proxy via a separate socket connection. It will be up to the proxy to ensure that the I/O is sent/received from the correct job, and also which processes receive stdin (if required, this can be supplied as a RM-specific launch attibute). This will be separate to the process view display of stdout.
  29. (GRW) Add a message view. This will display error messages that are sent from the proxy (regardless of other action taken as a result of the message). Messages will be categorized into the following levels: FATAL, ERROR, WARNING, and INFO. Colors will be used to distinguish the different level.
    • Stage 1 of this has been implemented. Error events have been replaced with general message events, each of which can be categorized using levels. In addition to the above levels, I've also added DEBUG.
  30. Event throttling. This will be implemented in the proxy base class, and will provide automatic flow control to prevent event overload of the UI. Eclipse will queue events on arrival. If events of a particular type reach a high water mark on the event queue, a STOP_EVENTS command will be sent to the proxy. The STOP_EVENTS command will only apply to the event type. Once the events have been processed, a START_EVENTS command will be sent.
  31. Tick.gif The #defines used by the C proxy code to match attribute ID's will be moved to a common header file for use by other proxy implementations.
    • These have been moved to org.eclipse.ptp.proxy/include/proxy_attr.h
  32. Implement the totalview startup mechanism in the PTP debugger.
  33. Tick.gif Manual launch needs UI Dialog to tell user the port number and that she needs to launch manually
    • Log to "Error Log" instead of bringing up a UI Dialog
  34. Add Queues view
  35. Tick.gif Make Add/Remove Resource Manager Action at top level of right-click context menu
    • Done.
  36. Tick.gif Clicking on the background in the machines view correctly removes the nodes from the view, however the 'Node Attributes' and 'Process Info' panes are not cleared out correctly. This also happens when switching from one machine to another.
    • Now calls changeMachineRefresh instead of changeMachine
  37. Tick.gif Clarify tooltip help on 'terminate all' button. Should say 'Terminate all processes in current job' or similar.
    • Changed to 'Terminate Job'.
  38. Enable vertical and horizontal scrolling on process info window.
  39. Tick.gif Add a display flag to attributes.
    • Added. Default is true.
  40. Add 'tooltip' attribute to each model element. This is a string set containing the names of attributes to display in the tooltip. Allow embedded newlines in attribute text to display tooltips correctly.
  41. Add delete attribute event.
  42. Add command to allow interaction between UI and proxy. For example, user clicks on UI element and this sends a command to proxy. (Should be general enough to, for example allow extra status information to be obtained - ref Dave Woottons email).
  43. Tick.gif Add support for negative process indices.
    • The code already appears to support arbitrary values.
  44. Add flag to explicitly request loading of user's remote environment (e.g. .profile) before launching proxy
  45. Tick.gif Prompt when deleting RM
  46. Tick.gif Prompt when terminating job
  47. Tick.gif Context menu to remove selected terminated job
  48. Tick.gif Add support to tunnel proxy protocol over remote connection
    • ssh port forwarding is now supported using the Remote Tools service provider.
  49. Add support for machine sets' ability to control subsets of machines (See ptp-user query about this)
  50. Add ability to specify hosts file or free-form list of hosts in ORTE RM configuration
  51. Add enable/disable stdin/stdout to launch configuration
  52. Move management of process stdio from PProcess to ConsoleManager/JobConsole in UI. Fix the output directory preference and check output file names for invalid characters.
  53. Tick.gif Add support for "mpirun" arguments in addition to application arguments.
    • A new configuration wizard page has been added to allow the location of orted and extra arguments to be passed to orted to be specified.
  54. RM edit action should always be enabled. Add message dialog if RM state is not stopped
  55. Add abort action that is enabled when RM is in starting, stopping or error state. Stop action should only be enabled when RM is in started state
  56. Handle case where debugger is unable to connect to Eclipse