/** * Copyright 2011 Intuit Inc. All Rights Reserved */ package com.intuit.tank.service.impl.v1.project; /* * #%L * Project Rest Service * %% * Copyright (C) 2011 - 2015 Intuit Inc. * %% * 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 * #L% */ import java.io.File; import java.util.Map.Entry; import org.apache.commons.lang3.math.NumberUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import com.intuit.tank.api.model.v1.project.KeyPair; import com.intuit.tank.api.model.v1.project.ProjectTO; import com.intuit.tank.dao.JobInstanceDao; import com.intuit.tank.dao.WorkloadDao; import com.intuit.tank.dao.util.ProjectDaoUtil; import com.intuit.tank.perfManager.workLoads.util.WorkloadScriptUtil; import com.intuit.tank.project.JobConfiguration; import com.intuit.tank.project.JobInstance; import com.intuit.tank.project.Project; import com.intuit.tank.project.ProjectDTO; import com.intuit.tank.project.Workload; /** * ProjectServiceUtil * * @author dangleton * */ public class ProjectServiceUtil { private static final Logger LOG = LogManager.getLogger(ProjectServiceUtil.class); private ProjectServiceUtil() { } public static ProjectTO projectToTransferObject(Project p) { ProjectTO ret = new ProjectTO(); ret.setComments(p.getComments()); ret.setCreated(p.getCreated()); ret.setModified(p.getModified()); ret.setCreator(p.getCreator()); ret.setId(p.getId()); ret.setName(p.getName()); ret.setProductName(p.getProductName()); JobConfiguration config = p.getWorkloads().get(0).getJobConfiguration(); for (Entry<String, String> entry : config.getVariables().entrySet()) { ret.getVariables().add(new KeyPair(entry.getKey(), entry.getValue())); } for (Integer dataFileId : config.getDataFileIds()) { ret.getDataFileIds().add(dataFileId); } return ret; } /** * @param job * @return */ public static synchronized File getScriptFile(String jobId) { File f = ProjectDaoUtil.getScriptFile(jobId); if (!f.exists()) { if (NumberUtils.isNumber(jobId)) { try { String scriptString = getScriptString(new JobInstanceDao().findById(Integer.parseInt(jobId))); ProjectDaoUtil.storeScriptFile(jobId, scriptString); } catch (Exception e) { LOG.error("Erorr writing file: " + e, e); throw new RuntimeException(e); } } else { throw new RuntimeException("Job is not a stored job."); } } return f; } /** * @param job * @return */ public static String getScriptString(JobInstance job) { WorkloadDao dao = new WorkloadDao(); Workload workload = dao.findById(job.getWorkloadId()); workload.getTestPlans(); dao.loadScriptsForWorkload(workload); return WorkloadScriptUtil.getScriptForWorkload(workload, job); } }