Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ptp-dev] Questions about service contributor wizard pages

Dave,

There are two types of configuration information that needs to be maintained. For remote projects, there is per-project information, such as the project location, where the builder will run, and where the indexer will run. There is also per-workspace information, such as the resource manager configuration and debugger configuration. I was contemplating storing all this information along with the project, but in hindsight, it would probably make more sense to keep it with the workspace.

So yes, a service configuration will then be a collection of service providers and the configuration information for each provider. Multiple projects will be able to refer to the same configuration. If the configuration contains a launch provider (resource manager), then this will just be the default for the project, it won't imply an association between the project and remote system, and you'll still be able to select a different launch provider in the run configuration dialog.

Greg

On Jun 29, 2009, at 2:46 PM, Dave Wootton wrote:

Greg
I am using the getString/putString methods in the ServiceProvider class to
load/save all resource manager attributes and options. I could use
getInt/putInt methods, which I have a couple places they would be useful. I've implemented those methods in my own classes that use them, but they
could move to ServiceProvider quite easily.

So if I understand the service configuration view concept, there's one
instance of each unique service configuration (collection of services and the configuration information, including back end host names where needed) and that if multiple projects use that same service configuration, they
just store a reference to that service configuration.

I'm not quite sure what you mean by Eclipse resources. I use the Eclipse performance configuration dialog to set environment variables, etc that I need on the remote system. I've found that at least currently there is no
relationship between the project name and the executable name in the
application tab of the performance configuration dialog. I can select any
Eclipse project I like just to satisfy the dialog's validation that a
project was selected. The project does not need to have any association with the node where the application runs. I use the PE resource manager to submit my run, but there is no requirement to select executables or data files from any Eclipse view. I do plan to allow selection from the popup menu in views such as the project explorer view, but the same files can be
selected by clicking buttons in views that are part of my plugin.
Dave



Greg Watson <g.watson@xxxxxxxxxxxx>
Sent by: ptp-dev-bounces@xxxxxxxxxxx
06/29/2009 11:46 AM
Please respond to
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>


To
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
cc

Subject
Re: [ptp-dev] Questions about service contributor wizard pages






Dave,

On Jun 29, 2009, at 10:34 AM, Dave Wootton wrote:

Greg
I have what I think are a working set of wizard pages for the PE and
LL
resource managers. I did the following

Added a 'public String getString(String key, String defaultValue)'
method
to IServiceProvider and Service Provider since I wanted to apply
default
values (from the preferences store or "") rather than dealing with
getString() returning null.

I extended ServiceProvider with a new class
'ResourceManagerServiceProvider' that holds the attributes for the
baqsic
(local) resource manager. I extended that class with
'RemoteResourceManagerServiceProvider' which contains the additional
attributes needed for a remote resource manager. Then I extended that
class with PEServiceProvider and LLServiceProvider which contain the
attributes for the PE & LL resource managers.

All of these have get/set methods for each of the attributes. They all directly access the backing store with getString/putString rather than
trying to cache locally. I don't think these are on a performance
critical
path where we really care.

So you're using get/putString for all RM configuration information? I
had imagined that we'd keep using the current
AbstractResourceManagerConfiguration class, but in hindsight your
approach probably makes more sense. We still need to provide something
the implements IResourceManagerConfiguration, though as this is used
quite extensively.


I also modified the
AbstractRemoteProxyResourceManagerConfigurationWizard,
AbstractRemoteResourceManagerConfigurationWizardPage and the PE and LL
wizard pages to use the new service provider classes.

I can run the wizards and have the values saved in the service
provider
classes.

I'm not clear how this hooks up with the resource manager view or the
concept of service configurations associated with projects. Where
will the
user be making the selction of a service configuration, and how do
resource managers get started/stopped?

My thought is that we would keep the RM view, but move the create,
edit, set default, start and stop operations to a service
configuration view. These operations would apply to all services in a
configuration (where it makes sense).


With the association of service configurations to projects, will I
be able
to get to a service configuration without having an associated
project?
(The default service configuration/default resource manager concept
we've
discussed before) I have a plugin which does not entirely depend on
the
Eclipse project concept, and which can invoke commands remotely
outside
the project structure.

Good question. I don't think there's any issue about invoking commands
remotely outside the project structure, but the question is where to
save the service configuration information for your plugin. Does the
plugin not use any Eclipse resources at all? It would be pretty easy
to add service configurations at the workspace-level (which could be
like configuration templates), but I wonder if your plugin should
still have a project associated with it in any case?


I also looked at the OpenMPI resource manager wizard pages and it
looks
like they have their own completely indepedent class structure from
what
the PE and LL wizards use. Any suggestions how to proceed with that?

Let's get PE and LL sorted out first, then we can take a look at OMPI.

Greg


Dave



Greg Watson <g.watson@xxxxxxxxxxxx>
Sent by: ptp-dev-bounces@xxxxxxxxxxx
06/29/2009 08:35 AM
Please respond to
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>


To
Parallel Tools Platform general developers <ptp-dev@xxxxxxxxxxx>
cc

Subject
Re: [ptp-dev] Questions about service contributor wizard pages






Dave,

For some reason only part of my reply was sent on Friday.

To answer the rest of your question, you're on the right track, but
taking a look at the code I realize that I need to provide some way to hook into the wizard constructor (which creates the configuration) and
performFinish() (which sets the configurationd). You should then just
be able to replicate the code from RMConfigurationWizard. There are a
couple of ways to do this, but the easiest might be to extend
IServiceProviderContributer to supply the wizard as well as the wizard
pages. Then you can subclass ServiceProviderConfigurationWizard and
override performFinish(). I'll work on this today.

Greg


On Jun 26, 2009, at 2:18 PM, Greg Watson wrote:

Hi Dave,

I added some docs to wiki.eclipse.org on the services framework that
might be useful.

See answers below.

On Jun 26, 2009, at 1:00 PM, Dave Wootton <dwootton@xxxxxxxxxx>
wrote:

Greg
I'm trying to understand the structure of the services model and
how I
want to approach adding the wizard pages for the resource managers.
It
looks to me lika at the moment the configuration process is invoked
from
the Services->Launch Wizard menu selection on the Eclipse main menu
where
I end up on a HPC project configuration dialog page. That page has a
configure button which I think is supposed to lauch the wizard
pages for
the service provider selected from the drop down and that configure
button
is enabled only if the code finds the correct instance of a class
implementing IServiceProviderContributor.

That menu is added by the services.test plugin to make it easier to
test your wizard, but yes.


That IServiceProviderContributor is responsible for obtaining the
set of
wizard pages for that service provider, and I need to implement an
instance of that class for each of the resource managers.

Correct.



So I think I understand how the appropriate wizard gets invoked and
gets
the set of wizard pages.

I'm looking at the
AbstractRemoteProxyResourceManagerConfigurationWizardPage class,
which you
suggested I modify to extend the
ServiceProviderConfigurationWizardPage
class, and which gets me the default wizard page that I use in
configuring
the PE and LoadLeveler proxies.

The initContents() method of that class currently gets an
AbstractRemoteResourcemanagerConfiguration object  which I
understand
currently holds the attributes (host, path, etc) for the resource
manager.
I think that I now want to obtain an instance of the
IServiceProvider,
where I further think I want to extend the ServiceProvider class
as a
class (or set of classes) which hold the resource manager
attributes that
I need to save.
The current initContents() method gets the config information from
the
wizard by calling getConfigurationWizard().getConfiguration(), so I
think
that I need to provide a method in
ServiceProviderContributionWizardPage
that obtains the instance of the ServiceProviderConfigurationWizard
for
the service provider, and that the
ServiceProviderConfigurationWizard
needs to implement a getConfigurationWizard() method that returns
the
IServiceProvider object for the service provider?

Am I on the right track with this? Has my thinking gone completely
off the
tracks and I've gotten lost somewhere?

Thanks

Dave
_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev
_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev

_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev


_______________________________________________
ptp-dev mailing list
ptp-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/ptp-dev



Back to the top