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

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




Back to the top