blob: 7ec1442573eeb733d504412fdaa74cb20c9daec5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM - Initial API and implementation
*******************************************************************************/
package org.eclipse.ptp.rm.ibm.pe.ui;
import org.eclipse.core.runtime.Preferences;
import org.eclipse.ptp.core.PTPCorePlugin;
import org.eclipse.ptp.core.elementcontrols.IPUniverseControl;
import org.eclipse.ptp.core.elementcontrols.IResourceManagerControl;
import org.eclipse.ptp.rm.core.rmsystem.AbstractRemoteResourceManagerServiceProvider;
import org.eclipse.ptp.rm.ibm.pe.core.PEPreferenceConstants;
import org.eclipse.ptp.rm.ibm.pe.core.PEPreferenceManager;
import org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration;
import org.eclipse.ptp.rm.ibm.pe.core.rmsystem.PEResourceManager;
import org.eclipse.ptp.services.core.IServiceProvider;
import org.eclipse.ptp.services.core.IServiceProviderWorkingCopy;
/**
* Service provider for IBM Parallel Environment
*/
public class PEServiceProvider extends AbstractRemoteResourceManagerServiceProvider implements IPEResourceManagerConfiguration{
private static final String TAG_USE_LOADLEVELER = "PE_UseLoadLeveler"; //$NON-NLS-1$
private static final String TAG_DEBUG_LEVEL = "PE_DebugLevel"; //$NON-NLS-1$
private static final String TAG_RUN_MINIPROXY = "PE_RunMiniproxy"; //$NON-NLS-1$
private static final String TAG_SUSPEND_PROXY = "PE_SuspendProxy"; //$NON-NLS-1$
private static final String TAG_LOADLEVELER_MODE = "PE_LoadLevelerMode"; //$NON-NLS-1$
private static final String TAG_MIN_NODE_POLL_INTERVAL = "PE_NodeMinPollInterval"; //$NON-NLS-1$
private static final String TAG_MAX_NODE_POLL_INTERVAL = "PE_NodeMaxPollInterval"; //$NON-NLS-1$
private static final String TAG_JOB_POLL_INTERVAL = "PE_JobPollInterval"; //$NON-NLS-1$
private static final String TAG_LIBRARY_OVERRIDE = "PE_LibraryOverride"; //$NON-NLS-1$
private Preferences preferences = PEPreferenceManager.getPreferences();
public PEServiceProvider() {
super();
setDescription("IBM PE Resource Manager"); //$NON-NLS-1$
}
/**
* Constructor for creating a working copy of the service provider
*
* @param provider provider we are making a copy from
*/
public PEServiceProvider(IServiceProvider provider) {
super(provider);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.services.core.ServiceProvider#copy()
*/
@Override
public IServiceProviderWorkingCopy copy() {
return new PEServiceProvider(this);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rmsystem.AbstractResourceManagerServiceProvider#createResourceManager()
*/
@Override
public IResourceManagerControl createResourceManager() {
IPUniverseControl universe = (IPUniverseControl) PTPCorePlugin.getDefault().getUniverse();
return new PEResourceManager(Integer.valueOf(universe.getNextResourceManagerId()), universe, this);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#getDebugLevel()
*/
public String getDebugLevel()
{
return getString(TAG_DEBUG_LEVEL, preferences.getString(PEPreferenceConstants.TRACE_LEVEL));
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#getJobPollInterval()
*/
public String getJobPollInterval()
{
return getString(TAG_JOB_POLL_INTERVAL, preferences.getString(PEPreferenceConstants.JOB_POLL_INTERVAL));
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#getLibraryOverride()
*/
public String getLibraryOverride()
{
return getString(TAG_LIBRARY_OVERRIDE, preferences.getString(PEPreferenceConstants.LIBRARY_OVERRIDE));
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#getLoadLevelerMode()
*/
public String getLoadLevelerMode()
{
return getString(TAG_LOADLEVELER_MODE, preferences.getString(PEPreferenceConstants.LOAD_LEVELER_MODE));
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#getNodeMaxPollInterval()
*/
public String getNodeMaxPollInterval()
{
return getString(TAG_MAX_NODE_POLL_INTERVAL, preferences.getString(PEPreferenceConstants.NODE_MAX_POLL_INTERVAL));
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#getNodeMinPollInterval()
*/
public String getNodeMinPollInterval()
{
return getString(TAG_MIN_NODE_POLL_INTERVAL, preferences.getString(PEPreferenceConstants.NODE_MIN_POLL_INTERVAL));
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rmsystem.AbstractResourceManagerServiceProvider#getResourceManagerId()
*/
@Override
public String getResourceManagerId() {
return getId();
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#getRunMiniproxy()
*/
public String getRunMiniproxy()
{
return getString(TAG_RUN_MINIPROXY, preferences.getString(PEPreferenceConstants.RUN_MINIPROXY));
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#getSuspendProxy()
*/
public String getSuspendProxy()
{
return getString(TAG_SUSPEND_PROXY, "n"); //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#getUseLoadLeveler()
*/
public String getUseLoadLeveler()
{
return getString(TAG_USE_LOADLEVELER, preferences.getString(PEPreferenceConstants.LOAD_LEVELER_OPTION));
}
/* (non-Javadoc)
* @see org.eclipse.ptp.services.core.IServiceProvider#isConfigured()
*/
public boolean isConfigured() {
return true;
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#setDebugLevel(java.lang.String)
*/
public void setDebugLevel(String debugLevel)
{
putString(TAG_DEBUG_LEVEL, debugLevel);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.ptp.rmsystem.IResourceManagerConfiguration#setDefaultNameAndDesc()
*/
public void setDefaultNameAndDesc()
{
String name = "IBM PE"; //$NON-NLS-1$
String conn = getConnectionName();
if (conn != null && !conn.equals("")) { //$NON-NLS-1$
name += "@" + conn; //$NON-NLS-1$
}
setName(name);
setDescription("IBM PE Resource Manager"); //$NON-NLS-1$
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#setJobPollInterval(java.lang.String)
*/
public void setJobPollInterval(String interval)
{
putString(TAG_JOB_POLL_INTERVAL, interval);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#setLibraryOverride(java.lang.String)
*/
public void setLibraryOverride(String override)
{
putString(TAG_LIBRARY_OVERRIDE, override);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#setLoadLevelerMode(java.lang.String)
*/
public void setLoadLevelerMode(String mode)
{
putString(TAG_LOADLEVELER_MODE, mode);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#setNodeMaxPollInterval(java.lang.String)
*/
public void setNodeMaxPollInterval(String interval)
{
putString(TAG_MAX_NODE_POLL_INTERVAL, interval);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#setNodeMinPollInterval(java.lang.String)
*/
public void setNodeMinPollInterval(String interval)
{
putString(TAG_MIN_NODE_POLL_INTERVAL, interval);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#setRunMiniproxy(java.lang.String)
*/
public void setRunMiniproxy(String flag)
{
putString(TAG_RUN_MINIPROXY, flag);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#setSuspendProxy(java.lang.String)
*/
public void setSuspendProxy(String flag)
{
putString(TAG_SUSPEND_PROXY, flag);
}
/* (non-Javadoc)
* @see org.eclipse.ptp.rm.ibm.pe.core.rmsystem.IPEResourceManagerConfiguration#setUseLoadLeveler(java.lang.String)
*/
public void setUseLoadLeveler(String flag)
{
putString(TAG_USE_LOADLEVELER, flag);
}
}