Ignore:
Timestamp:
02/26/13 08:41:50 (12 years ago)
Author:
wojtekp
Message:
 
Location:
DCWoRMS/branches/coolemall
Files:
4 edited
2 copied

Legend:

Unmodified
Added
Removed
  • DCWoRMS/branches/coolemall/src/simulator/workload/reader/archive/AbstractWAParser.java

    r477 r883  
    3232        protected HashMap<String, String> reverseIdMapping; // key - xmlJobId_xmlTaskId, value - swf job id 
    3333        protected HashMap<String, Long> jobIndex; 
     34        protected HashMap<String, String> appMapping; 
    3435        protected String fields[]; 
    3536        protected int fieldsNo; 
     
    4445                this.reverseIdMapping = new HashMap<String, String>(); 
    4546                this.jobIndex = new HashMap<String, Long>(); 
     47                this.appMapping = new HashMap<String, String>(); 
    4648                this.headerLoaded = false; 
    4749                this.buildIndex = true; 
     
    144146                        } else if(label.equals(WAFields.COMMENT_IDMAPPING)){ 
    145147                                loadIDMapping(); 
     148                                continue; 
     149                        } else if(label.equals(WAFields.COMMENT_APPLICATION)){ 
     150                                String [] valueData = value.split(" "); 
     151                                String appId = valueData[0]; 
     152                                String appName = valueData[1]; 
     153                                appMapping.put(appId, appName); 
    146154                                continue; 
    147155                        } 
     
    285293                return null; 
    286294        } 
     295         
     296         
     297        public String getAppMapping(String appId) { 
     298                String appName = appMapping.get(appId); 
     299                return appName; 
     300        } 
     301         
    287302} 
  • DCWoRMS/branches/coolemall/src/simulator/workload/reader/archive/QcgWAJobReader.java

    r477 r883  
    22 
    33import java.io.IOException; 
     4import java.io.StringReader; 
    45import java.io.StringWriter; 
    56import java.io.Writer; 
     7import java.util.Map; 
    68 
    79import org.exolab.castor.xml.MarshalException; 
    810import org.exolab.castor.xml.Marshaller; 
    911import org.exolab.castor.xml.ResolverException; 
     12import org.exolab.castor.xml.Unmarshaller; 
    1013import org.exolab.castor.xml.ValidationException; 
    1114import org.exolab.castor.xml.XMLContext; 
     
    1316import simulator.workload.reader.archive.swf.SWFFields; 
    1417import org.qcg.broker.schemas.jobdesc.QcgJob; 
     18import org.qcg.broker.schemas.jobdesc.ResourceConsumptionProfileType; 
    1519import org.qcg.broker.schemas.jobdesc.Task; 
     20 
     21import dcworms.schedframe.scheduling.utils.JobDescription; 
    1622 
    1723/** 
     
    2531        protected String currntJobID; 
    2632        protected Marshaller marshaller; 
     33         
     34        protected Unmarshaller unmarshaller; 
    2735         
    2836        public QcgWAJobReader(String fileName) throws NullPointerException, 
     
    4250                        context.addPackage("org.qcg.broker.schemas.jobdesc.QcgJob"); 
    4351                        this.marshaller = context.createMarshaller(); 
     52                        unmarshaller = context.createUnmarshaller(); 
    4453                } catch (ResolverException e) { 
    4554                        e.printStackTrace(); 
    4655                        this.marshaller = null; 
     56                        unmarshaller = null; 
    4757                } 
    4858        } 
     
    100110        } 
    101111 
     112        public String mergeSwfAndXmlProfile( Map<String, JobDescription> jobProfilesMap, String swfJobDesc) throws IOException{ 
     113                 
     114                StringReader reader = new StringReader(swfJobDesc); 
     115                QcgJob job = null; 
     116                try { 
     117                        job = (QcgJob)unmarshaller.unmarshal(reader); 
     118                } catch (MarshalException e) { 
     119                        // TODO Auto-generated catch block 
     120                        e.printStackTrace(); 
     121                } catch (ValidationException e) { 
     122                        // TODO Auto-generated catch block 
     123                        e.printStackTrace(); 
     124                } 
     125                 
     126                JobDescription xmlJobDescription = jobProfilesMap.get(job.getTask(0).getExecution().getExecutable().getApplication().getName()); 
     127                if(xmlJobDescription != null){ 
     128                        Task patternTask = xmlJobDescription.getDescription().getTask(0); 
     129                        if(patternTask != null){ 
     130                                ResourceConsumptionProfileType rcp = patternTask.getExecution().getResourceConsumptionProfile(); 
     131                                job.getTask(0).getExecution().setResourceConsumptionProfile(rcp); 
     132                        } 
     133                } 
     134                 
     135                Writer w = new StringWriter(); 
     136                try { 
     137                        this.marshaller.setWriter(w); 
     138                        this.marshaller.marshal(job); 
     139                } catch (MarshalException e) { 
     140                        new IOException(e.getMessage()); 
     141                } catch (ValidationException e) { 
     142                        new IOException(e.getMessage()); 
     143                } 
     144                return w.toString(); 
     145        } 
    102146} 
  • DCWoRMS/branches/coolemall/src/simulator/workload/reader/archive/WAParser.java

    r477 r883  
    4343         
    4444        public int getType(); 
     45         
     46        public String getAppMapping(String appId); 
    4547} 
  • DCWoRMS/branches/coolemall/src/simulator/workload/reader/archive/swf/QcgSWFJobReader.java

    r477 r883  
    11package simulator.workload.reader.archive.swf; 
    22 
     3import org.qcg.broker.schemas.jobdesc.Application; 
    34import org.qcg.broker.schemas.jobdesc.ComputingResourceBaseTypeChoice; 
    45import org.qcg.broker.schemas.jobdesc.ComputingResourceType; 
    56import org.qcg.broker.schemas.jobdesc.ComputingResourceBaseTypeChoiceItem; 
    67import org.qcg.broker.schemas.jobdesc.ComputingResourceParameterType; 
     8import org.qcg.broker.schemas.jobdesc.Executable; 
    79import org.qcg.broker.schemas.jobdesc.ExecutionTimeType; 
     10import org.qcg.broker.schemas.jobdesc.ExecutionType; 
    811import org.qcg.broker.schemas.jobdesc.ParameterTypeChoice; 
    912import org.qcg.broker.schemas.jobdesc.ParameterTypeChoiceItem; 
     
    1316import org.qcg.broker.schemas.jobdesc.types.ComputingParameterName; 
    1417import org.qcg.broker.schemas.jobdesc.Task; 
     18 
    1519import java.io.IOException; 
    1620 
     
    2024 
    2125import simulator.workload.reader.archive.QcgWAJobReader; 
     26import test.workloadandapp.AppTypeGenerator; 
    2227 
    2328 
     
    3439        protected String currntJobID; 
    3540         
     41        protected AppTypeGenerator appTypeGen; 
     42         
    3643        public QcgSWFJobReader(String fileName) throws NullPointerException, 
    3744                        IOException { 
    3845                super(fileName); 
    3946                this.waParser.loadHeader(); 
     47                this.appTypeGen = new AppTypeGenerator(); 
    4048        } 
    4149         
     
    7583                                                if(value <= 0){ 
    7684                                                        if(log.isWarnEnabled()) 
    77                                                                 log.warn("Task "+data[0] + " is omited. Number of allocated processors should be grather then 0."); 
     85                                                                log.warn("Task "+data[0] + " is omitted. Number of allocated processors should be greater than 0."); 
    7886                                                        return null; 
    7987                                                } 
     
    8290                                                if(value <= 0){ 
    8391                                                        if(log.isWarnEnabled()) 
    84                                                                 log.warn("Task "+data[0] + " is omited. Number of requested processors should be grather then 0."); 
     92                                                                log.warn("Task "+data[0] + " is omitted. Number of requested processors should be greater than 0."); 
    8593                                                        return null; 
    8694                                                } 
     
    8997                                                if(value <= 0){ 
    9098                                                        if(log.isWarnEnabled()) 
    91                                                                 log.warn("Task "+data[0] + " is omited. Task runtime should be grather then 0."); 
     99                                                                log.warn("Task "+data[0] + " is omitted. Task runtime should be greater than 0."); 
    92100                                                        return null; 
    93101                                                } 
     
    95103                                } 
    96104                                 
    97                                 if (value == -1) continue; 
     105                                if (value == -1 && i != SWFFields.DATA_EXECUTABLE_NUMBER) continue; 
    98106                                 
    99107                        } catch (NumberFormatException e) { 
     
    207215                                         
    208216                                case SWFFields.DATA_EXECUTABLE_NUMBER: 
     217                                        String appName = waParser.getAppMapping(String.valueOf(value)); 
     218                                        if(appName == null){ 
     219                                                if(value != -1){ 
     220                                                        appName = String.valueOf(value); 
     221                                                } else { 
     222                                                        appName = appTypeGen.randomAppType(); 
     223                                                } 
     224                                        } 
     225                                        ExecutionType execType = new ExecutionType(); 
     226                                        Executable executable = new Executable(); 
     227                                        Application application = new Application(); 
     228                                        application.setName(appName); 
     229                                        executable.setApplication(application); 
     230                                        execType.setExecutable(executable); 
     231                                        task.setExecution(execType); 
    209232                                        break; 
    210233                                         
Note: See TracChangeset for help on using the changeset viewer.