2008-04-22 15:55:32 +02:00
package org.gcube.vremanagement.vremodeler.impl ;
2008-04-22 16:54:47 +02:00
import java.rmi.RemoteException ;
import java.sql.Date ;
import java.sql.ResultSet ;
import java.util.ArrayList ;
import java.util.Hashtable ;
2008-10-21 19:09:24 +02:00
import java.util.List ;
2008-12-01 16:41:46 +01:00
import javax.xml.namespace.QName ;
2008-04-22 16:54:47 +02:00
import org.gcube.common.core.faults.GCUBEFault ;
2008-12-18 20:08:50 +01:00
import org.gcube.common.core.faults.GCUBEUnrecoverableFault ;
2008-10-30 19:54:34 +01:00
import org.gcube.common.core.types.VOID ;
2008-10-31 15:26:06 +01:00
import org.gcube.common.core.utils.logging.GCUBELog ;
2008-04-22 16:54:47 +02:00
import org.gcube.vremanagement.vremodeler.db.DBInterface ;
2008-12-18 20:08:50 +01:00
import org.gcube.vremanagement.vremodeler.impl.thread.DeployVRE ;
2008-12-10 19:09:38 +01:00
import org.gcube.vremanagement.vremodeler.impl.util.XMLUtil ;
2009-01-14 12:11:12 +01:00
import org.gcube.vremanagement.vremodeler.stubs.CheckStatusResponse ;
2008-04-22 16:54:47 +02:00
import org.gcube.vremanagement.vremodeler.stubs.CollectionArray ;
import org.gcube.vremanagement.vremodeler.stubs.FunctionalityIDArray ;
2008-10-21 19:09:24 +02:00
import org.gcube.vremanagement.vremodeler.stubs.GHNArray ;
2008-04-22 16:54:47 +02:00
import org.gcube.vremanagement.vremodeler.stubs.SetMDFormatArgs ;
2008-10-21 19:09:24 +02:00
import org.gcube.vremanagement.vremodeler.stubs.VRERequest ;
2008-04-22 16:54:47 +02:00
import org.globus.wsrf.ResourceException ;
import org.globus.wsrf.encoding.ObjectSerializer ;
import org.globus.wsrf.encoding.SerializationException ;
2008-04-22 15:55:32 +02:00
public class ModelerService {
2009-01-19 16:20:22 +01:00
public static final String INPROGRESS = " In Progress " ;
2008-12-18 20:08:50 +01:00
public static final String DEPLOYED = " Deployed " ;
public static final String FAILED = " Failed " ;
public static final String PENDING = " Pending " ;
public static final String DEPLOYING = " Deploying " ;
2008-10-31 15:26:06 +01:00
private static final GCUBELog logger = new GCUBELog ( ModelerService . class . getName ( ) ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
protected ModelerResource getResource ( ) throws ResourceException {
return ( ModelerResource ) ModelerContext . getPortTypeContext ( ) . getWSHome ( ) . find ( ) ;
}
2008-11-13 18:50:41 +01:00
2008-12-18 20:08:50 +01:00
2008-04-22 16:54:47 +02:00
/ * *
*
* @param request void
* @return VoidType
* @throws RemoteException -
*
* /
2008-10-21 19:09:24 +02:00
public void setVREModel ( VRERequest request ) throws GCUBEFault {
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
Date dateFrom = null , dateTo = null ;
ResultSet res = null ;
try {
2008-11-07 18:45:29 +01:00
res = DBInterface . queryDB ( " select * from VRE where VRE.id=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-12-01 15:21:31 +01:00
2008-04-22 16:54:47 +02:00
if ( res . next ( ) )
{
dateFrom = new Date ( request . getStartTime ( ) ) ;
dateTo = new Date ( request . getEndTime ( ) ) ;
2008-12-02 18:20:42 +01:00
DBInterface . queryDB ( " update VRE set name=' " + request . getVREName ( ) + " ', description=' " + request . getVREDescription ( ) + " ', vredesigner=' " + request . getVREDesigner ( ) + " ', vremanager= ' " + request . getVREManager ( ) + " ', intervalfrom=' " + dateFrom + " ', intervalto=' " + dateTo + " ' where VRE.id=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
} else {
dateFrom = new Date ( request . getStartTime ( ) ) ;
dateTo = new Date ( request . getEndTime ( ) ) ;
String eprToString ;
try {
2008-12-01 16:41:46 +01:00
eprToString = ObjectSerializer . toString ( getResource ( ) . getEPR ( ) , new QName ( ModelerContext . getPortTypeContext ( ) . getNamespace ( ) , " ModelResourceReference " ) ) ;
2008-11-13 18:50:41 +01:00
//logger.debug("EPR: "+eprToString);
2008-04-22 16:54:47 +02:00
} catch ( SerializationException e ) {
//logger.error("VDL Model Service: error serializing EPR");
2008-12-01 11:46:10 +01:00
logger . error ( " VDL Model Service: error serializing EPR " , e ) ;
throw new GCUBEFault ( e ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2009-01-19 16:20:22 +01:00
DBInterface . ExecuteUpdate ( " insert into VRE values(' " + getResource ( ) . getId ( ) + " ',' " + request . getVREName ( ) + " ',' " + request . getVREDescription ( ) + " ',' " + request . getVREDesigner ( ) + " ',' " + request . getVREManager ( ) + " ',' " + dateFrom + " ',' " + dateTo + " ',' " + eprToString + " ',' " + INPROGRESS + " '); " ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
} catch ( Exception e ) {
2008-12-01 15:21:31 +01:00
logger . error ( " " + e . getMessage ( ) ) ;
2008-04-22 16:54:47 +02:00
throw new GCUBEFault ( e ) ;
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
*
*
* @param request void
* @return VoidType
* @throws RemoteException -
* /
2008-10-30 19:54:34 +01:00
public String getVREModel ( VOID var ) throws GCUBEFault {
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
String toReturn = null ;
ResultSet res = null ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
//logger.debug("Request DL with ID "+ID);
try {
String ID = getResource ( ) . getId ( ) ;
DBInterface . connect ( ) ;
2008-11-07 18:45:29 +01:00
res = DBInterface . queryDB ( " select * from VRE where VRE.id=' " + ID + " '; " ) ;
2008-10-21 19:09:24 +02:00
toReturn = XMLUtil . PrepareVREModelXML ( res ) ;
2008-04-22 16:54:47 +02:00
} catch ( Exception e ) {
2009-01-12 18:35:50 +01:00
logger . error ( " VDLModel parsing error in function getDLModel " + e ) ;
e . printStackTrace ( ) ;
2008-04-22 16:54:47 +02:00
throw new GCUBEFault ( e ) ;
2009-01-12 18:35:50 +01:00
2008-04-22 16:54:47 +02:00
}
return toReturn ;
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
* return an XML containing the DHN list
*
* @param request void
* @return a XML String
* @throws RemoteException -
* /
2008-10-30 19:54:34 +01:00
public String getGHNs ( VOID var ) throws GCUBEFault {
2008-10-31 15:26:06 +01:00
logger . info ( " getGHNs method " ) ;
2008-04-22 16:54:47 +02:00
ResultSet res ;
2008-10-21 19:09:24 +02:00
ArrayList < String > relatedGHN = new ArrayList < String > ( ) ;
2008-04-22 16:54:47 +02:00
try {
DBInterface . connect ( ) ;
2008-10-21 19:09:24 +02:00
res = DBInterface . queryDB ( " select * from GHN; " ) ;
2008-11-13 18:50:41 +01:00
2008-10-30 19:54:34 +01:00
ResultSet resRelated = DBInterface . queryDB ( " select ghnid from VRERELATEDGHN where VRERELATEDGHN.vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-10-31 15:26:06 +01:00
while ( resRelated . next ( ) )
2008-10-21 19:09:24 +02:00
relatedGHN . add ( resRelated . getString ( 1 ) ) ;
2008-11-13 18:50:41 +01:00
2008-10-31 15:26:06 +01:00
} catch ( Exception e ) {
logger . error ( " VDL Model: error retreiving GHNs " + e ) ;
2008-04-22 16:54:47 +02:00
throw new GCUBEFault ( e ) ; }
2008-10-21 19:09:24 +02:00
return XMLUtil . PrepareGHNsXML ( res , relatedGHN ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
* Set the selected DHN
*
2009-01-14 18:30:25 +01:00
* @param request array of GHN id
* @return VoidType -
2008-04-22 16:54:47 +02:00
* @throws RemoteException -
* /
2008-10-21 19:09:24 +02:00
public void setGHNs ( GHNArray request ) throws GCUBEFault {
2008-04-22 16:54:47 +02:00
try {
String instanceID = ( String ) getResource ( ) . getId ( ) ;
2009-01-12 18:35:50 +01:00
DBInterface . ExecuteUpdate ( " DELETE FROM VRERELATEDGHN WHERE VRERELATEDGHN.vreid=' " + instanceID + " '; " ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
String dlKey = instanceID ;
2008-11-13 18:50:41 +01:00
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getGHNElement ( ) . length ) ;
ArrayList < String > row = null ;
2009-01-12 18:35:50 +01:00
for ( String ghnId : request . getGHNElement ( ) )
2008-04-22 16:54:47 +02:00
{
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 2 ) ;
row . add ( dlKey ) ;
2009-01-12 18:35:50 +01:00
row . add ( ghnId ) ;
2008-10-21 19:09:24 +02:00
values . add ( row ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-10-21 19:09:24 +02:00
DBInterface . InsertInto ( " VRERELATEDGHN " , values ) ;
2009-01-12 18:35:50 +01:00
} catch ( Exception e ) {
logger . error ( " error setting GHNs " + e ) ;
e . printStackTrace ( ) ;
throw new GCUBEFault ( e ) ; }
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
*
2009-01-14 18:30:25 +01:00
* Return an XML with all the collection selectable
2008-04-22 16:54:47 +02:00
*
* @param request void
2009-01-14 18:30:25 +01:00
* @return the collection retrieved from the database
2008-04-22 16:54:47 +02:00
* @throws RemoteException -
* /
2008-10-30 19:54:34 +01:00
public String getCollection ( VOID var ) throws GCUBEFault {
2008-04-22 16:54:47 +02:00
ResultSet res ;
ArrayList < String > relatedCollection = new ArrayList < String > ( ) ;
try {
DBInterface . connect ( ) ;
res = DBInterface . queryDB ( " select * from COLLECTION; " ) ;
2008-11-13 18:50:41 +01:00
2008-12-01 17:52:34 +01:00
2008-12-01 17:10:49 +01:00
ResultSet resRelated = DBInterface . queryDB ( " select collid from VRERELATEDCOLLECTION where VRERELATEDCOLLECTION.vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
while ( resRelated . next ( ) ) {
relatedCollection . add ( resRelated . getString ( 1 ) ) ;
}
2008-11-13 18:50:41 +01:00
2008-12-01 17:06:16 +01:00
} catch ( Exception e ) {
logger . error ( " VDL Model: error on DB " ) ;
e . printStackTrace ( ) ;
2008-04-22 16:54:47 +02:00
throw new GCUBEFault ( e ) ; }
2008-11-13 18:50:41 +01:00
2008-12-04 02:28:24 +01:00
return XMLUtil . PrepareCollectionXML ( res , relatedCollection ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
*
* Insert in the DB the selected collection
*
* @param request An Array that contains the selected collections ids
* @return void
* @throws RemoteException -
* /
public void setCollection ( CollectionArray request ) throws GCUBEFault {
try {
2008-12-02 17:57:43 +01:00
logger . trace ( " method setCollection Called " ) ;
2008-10-21 19:09:24 +02:00
DBInterface . connect ( ) ;
2008-12-02 18:20:42 +01:00
DBInterface . ExecuteUpdate ( " DELETE FROM VRERELATEDCOLLECTION WHERE VRERELATEDCOLLECTION.vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
String dlKey = ( String ) getResource ( ) . getId ( ) ;
2008-11-13 18:50:41 +01:00
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getCollectionElement ( ) . length ) ;
ArrayList < String > row = null ;
2008-12-02 18:41:58 +01:00
logger . trace ( " the collection set for " + dlKey + " are " + request . getCollectionElement ( ) . length ) ;
2008-04-22 16:54:47 +02:00
for ( int i = 0 ; i < request . getCollectionElement ( ) . length ; i + + )
{
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 2 ) ;
row . add ( dlKey ) ;
row . add ( request . getCollectionElement ( ) [ i ] ) ;
2008-12-02 18:41:58 +01:00
values . add ( row ) ;
2008-04-22 16:54:47 +02:00
}
2008-10-21 19:09:24 +02:00
DBInterface . connect ( ) ;
DBInterface . InsertInto ( " VRERELATEDCOLLECTION " , values ) ;
2008-12-02 17:57:43 +01:00
} catch ( Exception e ) {
e . printStackTrace ( ) ;
throw new GCUBEFault ( e ) ;
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
* Return the possibles metadata format for selected collection
*
* @param request void
* @return a XML format string
* @throws RemoteException -
* /
2008-12-02 16:01:07 +01:00
public String getMetadataRelatedToCollection ( VOID var ) throws GCUBEFault {
2008-04-22 16:54:47 +02:00
ResultSet resDerivable , resNative , collectionRelated , totalMF ;
String preparedWhere = " " ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
Hashtable < String , ArrayList < String > > selectedMetadataStructure = new Hashtable < String , ArrayList < String > > ( ) ;
boolean enter = false ;
try {
DBInterface . connect ( ) ;
2008-11-13 18:50:41 +01:00
2008-12-02 16:31:51 +01:00
collectionRelated = DBInterface . queryDB ( " select VRERELATEDCOLLECTION.collid from VRERELATEDCOLLECTION where VRERELATEDCOLLECTION.vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
//select only the resuls related with selected collection
preparedWhere = " and ( " ;
while ( collectionRelated . next ( ) ) {
enter = true ;
preparedWhere + = " mdc.collid=' " + collectionRelated . getString ( 1 ) + " ' or " ;
}
2008-11-13 18:50:41 +01:00
2008-12-02 18:20:42 +01:00
ResultSet metadataSelected = DBInterface . queryDB ( " select collid, mfid from VRERELATEDMETADATAFORMAT where vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
//recovering possible previsious selection for metadataFormat
while ( metadataSelected . next ( ) ) {
if ( selectedMetadataStructure . containsKey ( metadataSelected . getString ( 1 ) ) )
selectedMetadataStructure . get ( metadataSelected . getString ( 1 ) ) . add ( metadataSelected . getString ( 2 ) ) ;
else {
ArrayList < String > temp = new ArrayList < String > ( ) ;
temp . add ( metadataSelected . getString ( 2 ) ) ;
selectedMetadataStructure . put ( metadataSelected . getString ( 1 ) , temp ) ;
}
}
2008-11-13 18:50:41 +01:00
2008-12-02 17:57:43 +01:00
if ( ! enter ) throw new GCUBEFault ( " no collection selected for this VRE " ) ;
2008-04-22 16:54:47 +02:00
else preparedWhere = preparedWhere . substring ( 0 , preparedWhere . length ( ) - 4 ) + " ) " ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
totalMF = DBInterface . queryDB ( " select MDFORMAT.id, MDFORMAT.name, MDFORMAT.schemauri, MDFORMAT.language from MDFORMAT; " ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
resDerivable = DBInterface . queryDB ( " select mdc.collid, mdc.collname, mdc.colldesc , collmdf.id as mdfid from (select * from DERIVABLEMDF INNER JOIN MDFORMAT on DERIVABLEMDF.mdfid= MDFORMAT.id) " +
" as COLLMDF,(select COLLECTION.id as collid, COLLECTION.name as collname, COLLECTION.description as colldesc, MDCOLLECTION.id as mdid from COLLECTION INNER JOIN MDCOLLECTION " +
" ON COLLECTION.id = MDCOLLECTION.relatedcollectionid) as MDC where COLLMDF.mdcollid= MDC.mdid " + preparedWhere + " ; " ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
resNative = DBInterface . queryDB ( " select mdc.collid, mdc.collname, mdc.colldesc , collmdf.id as mdfid from (select * from NATIVEMDF INNER JOIN MDFORMAT on NATIVEMDF.mdfid= MDFORMAT.id) " +
" as COLLMDF,(select COLLECTION.id as collid, COLLECTION.name as collname, COLLECTION.description as colldesc, MDCOLLECTION.id as mdid from COLLECTION INNER JOIN MDCOLLECTION " +
2008-11-13 18:50:41 +01:00
" ON COLLECTION.id = MDCOLLECTION.relatedcollectionid) as MDC where COLLMDF.mdcollid= MDC.mdid " + preparedWhere + " ; " ) ;
2008-12-02 16:16:55 +01:00
} catch ( Exception e ) {
2008-12-02 18:24:24 +01:00
e . printStackTrace ( ) ;
2008-12-02 16:16:55 +01:00
logger . error ( " ModelService: getMEtadataRelatedToCollection Error " + e . getMessage ( ) ) ;
2008-04-22 16:54:47 +02:00
throw new GCUBEFault ( e ) ;
}
2008-11-13 18:50:41 +01:00
2008-12-04 02:49:00 +01:00
return XMLUtil . PrepareMCFormatXML ( resNative , resDerivable , totalMF , selectedMetadataStructure ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
*
* Sets selected Metadata Format
*
* @param request
* @return void
* @throws RemoteException -
* /
public void setMetadataRelatedToCollection ( SetMDFormatArgs request ) throws GCUBEFault {
try {
2008-11-07 18:45:29 +01:00
DBInterface . ExecuteUpdate ( " DELETE FROM VRERELATEDMETADATAFORMAT WHERE VRERELATEDMETADATAFORMAT.vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-10-30 19:54:34 +01:00
//String[] singleElement;
2008-04-22 16:54:47 +02:00
String key = ( String ) getResource ( ) . getId ( ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
//logger.debug(request.getCollectionIDArray().length+" "+request.getMdFormatIDArray().length+" "+request.getCheckedArray().length+" "+request.getCheckedArray(0).getCheckedRowElement().length);
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getCollectionIDArray ( ) . length ) ;
ArrayList < String > row = null ;
2008-04-22 16:54:47 +02:00
for ( int i = 0 ; i < request . getCollectionIDArray ( ) . length ; i + + )
for ( int j = 0 ; j < request . getMdFormatIDArray ( ) . length ; j + + )
{
if ( request . getCheckedArray ( i ) . getCheckedRowElement ( j ) ) {
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 3 ) ;
row . add ( key ) ;
row . add ( request . getCollectionIDArray ( i ) ) ;
row . add ( request . getMdFormatIDArray ( j ) ) ;
values . add ( row ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
}
}
2008-11-13 18:50:41 +01:00
2008-10-21 19:09:24 +02:00
DBInterface . InsertInto ( " VRERELATEDMETADATAFORMAT " , values ) ;
2008-12-04 10:19:56 +01:00
} catch ( Exception e ) {
2008-12-04 10:23:43 +01:00
logger . error ( " setMetadataRelateToCollectio failed " ) ;
2008-12-04 10:19:56 +01:00
e . printStackTrace ( ) ;
2008-12-04 10:23:43 +01:00
throw new GCUBEFault ( e ) ;
2008-12-04 10:19:56 +01:00
}
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
* Return an xml with the selectable functionalities
* String
*
* @param request void
* @return an xml String containing selectable functionalities
* @throws RemoteException -
* /
2008-10-30 19:54:34 +01:00
public String getFunctionality ( VOID var ) throws GCUBEFault {
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
ResultSet resFunct = null ;
ResultSet selectedFuncRes = null ;
ResultSet selectedCSRes = null ;
ArrayList < Integer > selectedFunctionality = new ArrayList < Integer > ( ) ;
ArrayList < String > selectedCS = new ArrayList < String > ( ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
try {
DBInterface . connect ( ) ;
resFunct = DBInterface . queryDB ( " select * from functionality where father is null; " ) ;
2008-12-18 20:08:50 +01:00
selectedFuncRes = DBInterface . queryDB ( " select funcid from VRERELATEDFUNCT where vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
while ( selectedFuncRes . next ( ) )
selectedFunctionality . add ( selectedFuncRes . getInt ( 1 ) ) ;
2008-12-18 20:08:50 +01:00
selectedCSRes = DBInterface . queryDB ( " select csid from VRERELATEDCS where vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-04-22 16:54:47 +02:00
while ( selectedCSRes . next ( ) )
selectedCS . add ( selectedCSRes . getString ( 1 ) ) ;
} catch ( Exception e ) {
2008-12-18 20:08:50 +01:00
//logger.error("VDLModel Service: error retrieving functionality");
2008-04-22 16:54:47 +02:00
e . printStackTrace ( ) ;
throw new GCUBEFault ( e ) ;
}
2008-11-13 18:50:41 +01:00
2008-04-22 18:28:11 +02:00
return XMLUtil . PrepareFunctionalityXML ( resFunct , selectedFunctionality , selectedCS ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
*
*
*
* @return void
* @throws RemoteException -
* /
public void setFunctionality ( FunctionalityIDArray request ) throws GCUBEFault {
2008-12-18 20:08:50 +01:00
System . out . println ( " Set Functionality called " ) ;
2008-04-22 16:54:47 +02:00
try {
2008-10-21 19:09:24 +02:00
DBInterface . ExecuteUpdate ( " DELETE FROM VRERELATEDFUNCT WHERE VRERELATEDFUNCT.vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
DBInterface . ExecuteUpdate ( " DELETE FROM VRERELATEDCS WHERE VRERELATEDCS.vreid=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-12-18 20:08:50 +01:00
2008-11-13 18:50:41 +01:00
2008-12-18 20:08:50 +01:00
String vreKey = ( String ) getResource ( ) . getId ( ) ;
2008-04-22 16:54:47 +02:00
//logger.debug("KEY: "+dlKey);
2008-12-18 20:08:50 +01:00
2008-04-22 16:54:47 +02:00
if ( request . getFunctionalityIDElement ( ) ! = null ) {
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getFunctionalityIDElement ( ) . length ) ;
ArrayList < String > row = null ;
2008-12-18 20:08:50 +01:00
for ( String funct : request . getFunctionalityIDElement ( ) )
2008-04-22 16:54:47 +02:00
{
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 2 ) ;
2008-12-18 20:08:50 +01:00
row . add ( vreKey ) ;
row . add ( funct ) ;
2008-10-21 19:09:24 +02:00
values . add ( row ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-10-21 19:09:24 +02:00
DBInterface . InsertInto ( " VRERELATEDFUNCT " , values ) ;
2008-12-18 20:08:50 +01:00
} else System . out . println ( " requestFunciotnality is null " ) ;
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
if ( request . getCsIDElement ( ) ! = null )
{
2008-10-21 19:09:24 +02:00
ArrayList < List < String > > values = new ArrayList < List < String > > ( request . getCsIDElement ( ) . length ) ;
ArrayList < String > row = null ;
2008-11-13 18:50:41 +01:00
2008-12-18 20:08:50 +01:00
for ( String css : request . getCsIDElement ( ) )
2008-04-22 16:54:47 +02:00
{
2008-10-21 19:09:24 +02:00
row = new ArrayList < String > ( 2 ) ;
2008-12-18 20:08:50 +01:00
row . add ( vreKey ) ;
row . add ( css ) ;
2008-10-21 19:09:24 +02:00
values . add ( row ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-10-21 19:09:24 +02:00
DBInterface . InsertInto ( " VRERELATEDCS " , values ) ;
2008-04-22 16:54:47 +02:00
}
2008-12-18 20:08:50 +01:00
} catch ( Exception e ) {
e . printStackTrace ( ) ;
throw new GCUBEFault ( e ) ; }
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
* Return an XML with Quality parameter to insert
*
* @param request void
* @return a XML format String
* @throws RemoteException -
* /
2008-10-30 19:54:34 +01:00
public String getQuality ( VOID var ) throws GCUBEFault {
2008-04-22 18:28:11 +02:00
return XMLUtil . PrepareQualityXML ( ) ;
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
* Sets Quality parameters
*
* @param request
* @throws RemoteException -
* /
public void setQuality ( String request ) throws GCUBEFault {
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
*
* set the DL state to Pending
*
* @param request
* @return
* @throws RemoteException -
* /
2008-10-30 19:54:34 +01:00
public void setVREtoPendingState ( VOID var ) throws GCUBEFault {
2008-04-22 16:54:47 +02:00
try {
2009-01-19 16:20:22 +01:00
DBInterface . ExecuteUpdate ( " UPDATE VRE SET STATUS=' " + PENDING + " ' WHERE VRE.id=' " + getResource ( ) . getId ( ) + " '; " ) ;
2008-12-14 20:32:33 +01:00
2008-04-22 16:54:47 +02:00
} catch ( Exception e ) { throw new GCUBEFault ( e ) ; }
}
2008-11-13 18:50:41 +01:00
2008-04-22 16:54:47 +02:00
/ * *
*
* @param request
* @return
* @throws RemoteException -
* /
2008-10-30 19:54:34 +01:00
public void deployVRE ( VOID var ) throws GCUBEFault {
2008-12-18 20:08:50 +01:00
String resourceID ;
try {
resourceID = getResource ( ) . getId ( ) ;
} catch ( ResourceException e ) {
logger . error ( " Error retrieving the Resource Requested " ) ; throw new GCUBEUnrecoverableFault ( e ) ;
}
try {
2009-01-19 16:20:22 +01:00
DBInterface . ExecuteUpdate ( " UPDATE VRE SET STATUS=' " + DEPLOYING + " ' WHERE VRE.id=' " + resourceID + " '; " ) ;
2008-12-18 20:08:50 +01:00
} catch ( GCUBEFault e ) {
logger . error ( " HSQLDB Error " + e ) ;
throw new GCUBEUnrecoverableFault ( e ) ;
}
2009-01-22 10:45:24 +01:00
2009-01-14 12:11:12 +01:00
DeployVRE deployVREThread = new DeployVRE ( resourceID , ServiceContext . getContext ( ) . getScope ( ) ) ;
2009-01-22 10:45:24 +01:00
ServiceContext . getContext ( ) . setScope ( deployVREThread , ServiceContext . getContext ( ) . getScope ( ) ) ;
2009-01-12 18:35:50 +01:00
logger . trace ( " Deploy VRE thread started " ) ;
2008-12-18 20:08:50 +01:00
deployVREThread . start ( ) ;
2009-01-22 10:45:24 +01:00
2008-12-14 20:32:33 +01:00
}
2008-11-13 18:50:41 +01:00
2008-12-15 19:32:19 +01:00
2009-01-14 12:11:12 +01:00
public CheckStatusResponse checkStatus ( VOID var ) throws Exception {
CheckStatusResponse res = new CheckStatusResponse ( ) ;
res . setReports ( new String [ ] { getResource ( ) . getReportFirstStep ( ) , getResource ( ) . getReportSecondStep ( ) } ) ;
return res ;
}
2008-12-18 20:08:50 +01:00
2008-11-13 18:50:41 +01:00
2008-04-22 15:55:32 +02:00
}