com.norbl.cbp.ppe
Class PPEManager

java.lang.Object
  extended by com.norbl.cbp.ppe.PPEManager
Direct Known Subclasses:
OmpiPPEManager

public abstract class PPEManager
extends java.lang.Object

Launches and manages a network of ec2 instances. This class provides the operations but does not contain any gui code or references to gui code,except modal and faux modal warnings. Network manager guis use concrete subclasses of this class.

Note that this class does not do anything related to mpi. mpi configuration handled via Services, which are specified in #specifyServicers.


Nested Class Summary
static class PPEManager.Op
           
 
Field Summary
 java.util.List<AmiPPE> amis
           
 java.util.List<com.amazonaws.services.ec2.model.AvailabilityZone> availabilityZones
           
 AwsClientConfigParams awsClientConfigParams
           
 EbsVolumeWrangler ebsVolumeWrangler
           
 com.amazonaws.services.ec2.model.Region ec2Region
           
 Ec2Wrangler ec2w
           
 InstanceTableManager instanceTableManager
           
 java.util.List<Ec2InstanceType> instanceTypes
           
 NetworkTableModel networkTableModel
           
 ParamHt paramHt
           
static ParamsEc2 paramsEc2
           
 
Constructor Summary
PPEManager(java.lang.String[] argv, java.lang.String amiGroupName, com.amazonaws.services.ec2.model.Region ec2Region)
           
 
Method Summary
 void authorizeInstanceBilling()
           
 void cancelInstanceBilling()
           
 void createNetwork()
           
 void doOp(ActionCommandNetworkManager ac)
           
 void editAwsClientParameters()
           
 void editEc2Parameters()
           
 void exit()
           
protected abstract  java.lang.String getAboutAppTitle()
           
protected abstract  java.lang.String getAboutAppVersion()
           
 java.lang.String getBillingIDForDisplay()
           
protected abstract  NetworkSpec getFullySpecifiedNetworkSpec(java.lang.String networkName)
           
 NetworkTableModel getNetworkTableModel()
           
 boolean goodToGo()
          Tests whether aws dependent setup is complete.
protected abstract  void initializeServices(NetworkSpec networkSpec, Services services)
           
 void listEbsVolumes()
           
 void rebootInstances(java.lang.String networkID)
           
 void saveParams()
          Writes the contents of paramHt to the config file and updates paramEc2.
 void setNetworkManagerFrame(javax.swing.JFrame f)
           
 boolean setupAWSWrangling()
          Sets up things that require access to aws, such as the Ec2Wrangler.
 void showAbout()
           
protected abstract  void specifyServices()
           
 void startNetworkInfoUpdater()
           
 void stopNetworkInfoUpdater()
           
 void terminateInstances(java.lang.String networkID)
           
 void updateDisplayedBillingID()
           
 void updateEbsVolumeList()
           
 void updateNetworkInfo()
           
 void updateParamsFromConfigFile()
           
 void updateParamsReBillingAuthorizationID(java.lang.String ema)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

paramHt

public ParamHt paramHt

paramsEc2

public static ParamsEc2 paramsEc2

ec2w

public Ec2Wrangler ec2w

awsClientConfigParams

public AwsClientConfigParams awsClientConfigParams

networkTableModel

public NetworkTableModel networkTableModel

instanceTableManager

public InstanceTableManager instanceTableManager

instanceTypes

public java.util.List<Ec2InstanceType> instanceTypes

amis

public java.util.List<AmiPPE> amis

ec2Region

public com.amazonaws.services.ec2.model.Region ec2Region

availabilityZones

public java.util.List<com.amazonaws.services.ec2.model.AvailabilityZone> availabilityZones

ebsVolumeWrangler

public EbsVolumeWrangler ebsVolumeWrangler
Constructor Detail

PPEManager

public PPEManager(java.lang.String[] argv,
                  java.lang.String amiGroupName,
                  com.amazonaws.services.ec2.model.Region ec2Region)
           throws java.lang.Exception
Parameters:
argv -
amiGroupName -
ec2Region - Because clusters are only supported in a US-EAST, we only need on region. If this changes, we may want to give users a choice.
Throws:
java.lang.Exception
Method Detail

setupAWSWrangling

public boolean setupAWSWrangling()
                          throws MissingParamsException
Sets up things that require access to aws, such as the Ec2Wrangler. This method requires that aws params are available. It uses {@link ParamsEc2#hasRequiredLaunchParams()) to check and does nothing if is returns false.

Throws:
MissingParamsException

setNetworkManagerFrame

public void setNetworkManagerFrame(javax.swing.JFrame f)

goodToGo

public boolean goodToGo()
Tests whether aws dependent setup is complete.

Returns:

specifyServices

protected abstract void specifyServices()

initializeServices

protected abstract void initializeServices(NetworkSpec networkSpec,
                                           Services services)
                                    throws java.lang.Exception
Throws:
java.lang.Exception

getFullySpecifiedNetworkSpec

protected abstract NetworkSpec getFullySpecifiedNetworkSpec(java.lang.String networkName)

getAboutAppTitle

protected abstract java.lang.String getAboutAppTitle()

getAboutAppVersion

protected abstract java.lang.String getAboutAppVersion()

updateParamsFromConfigFile

public void updateParamsFromConfigFile()

getNetworkTableModel

public NetworkTableModel getNetworkTableModel()

updateParamsReBillingAuthorizationID

public void updateParamsReBillingAuthorizationID(java.lang.String ema)
                                          throws java.lang.Exception
Throws:
java.lang.Exception

doOp

public void doOp(ActionCommandNetworkManager ac)

createNetwork

public void createNetwork()
                   throws java.lang.Exception
Throws:
java.lang.Exception

rebootInstances

public void rebootInstances(java.lang.String networkID)
                     throws java.lang.Exception
Throws:
java.lang.Exception

terminateInstances

public void terminateInstances(java.lang.String networkID)

updateNetworkInfo

public void updateNetworkInfo()

exit

public void exit()

showAbout

public void showAbout()

authorizeInstanceBilling

public void authorizeInstanceBilling()

cancelInstanceBilling

public void cancelInstanceBilling()

editEc2Parameters

public void editEc2Parameters()

editAwsClientParameters

public void editAwsClientParameters()

saveParams

public void saveParams()
                throws java.lang.Exception
Writes the contents of paramHt to the config file and updates paramEc2.

Throws:
java.lang.Exception

listEbsVolumes

public void listEbsVolumes()

updateEbsVolumeList

public void updateEbsVolumeList()

getBillingIDForDisplay

public java.lang.String getBillingIDForDisplay()

updateDisplayedBillingID

public void updateDisplayedBillingID()

startNetworkInfoUpdater

public void startNetworkInfoUpdater()

stopNetworkInfoUpdater

public void stopNetworkInfoUpdater()