[yocto] [PATCH 5/8] Remove duplicate code when getting remote data from powertop and ust2

Ioana Grigoropol ioanax.grigoropol at intel.com
Tue Apr 30 07:36:28 PDT 2013


    - powertop and ust2 models contain duplicate code that performs the same action when getting data from remote host (method getDataFile)
        - unify getDataFile method implementation by removing the extra param from ust2-> convert it into a field of BaseModel
            - move getDataFile method to BaseModel in order to remove duplicate code
        - move localFile and remoteFile variables to BaseModel
        - ensure that each model will check the validity of the remote file at the end of generateData method

Signed-off-by: Ioana Grigoropol <ioanax.grigoropol at intel.com>
---
 .../yocto/sdk/remotetools/actions/BaseModel.java   |    6 ++-
 .../sdk/remotetools/actions/PowertopModel.java     |   25 +++----------
 .../yocto/sdk/remotetools/actions/Ust2Model.java   |   39 ++++++--------------
 3 files changed, 23 insertions(+), 47 deletions(-)

diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java
index 650cc67..51ab09b 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/BaseModel.java
@@ -23,6 +23,8 @@ abstract public class BaseModel implements IRunnableWithProgress {
 	protected String taskName;
 	protected String localScript;
 	protected String remoteExec;
+	protected String localFile;
+	protected String remoteFile;
 	
 	private static final int WORKLOAD = 100;
 
@@ -95,5 +97,7 @@ abstract public class BaseModel implements IRunnableWithProgress {
 			monitor.done();
 		}
 	}
-
+	protected void getDataFile(IProgressMonitor monitor) throws Exception {
+		RSEHelper.getRemoteFile( host, localFile, remoteFile, monitor);
+	}
 }
diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PowertopModel.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PowertopModel.java
index 0bd4e9e..ae1f8bf 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PowertopModel.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/PowertopModel.java
@@ -40,9 +40,6 @@ public class PowertopModel extends BaseModel {
 	private Float time;
 	private boolean showpid;
 	Display display;
-
-	String localfile;
-	String remotefile;
 	
 	public PowertopModel(IHost host, Float time,boolean showpid,Display display) {
 		super(host, TASK_NAME, LOCAL_SCRIPT, REMOTE_EXEC);
@@ -55,7 +52,7 @@ public class PowertopModel extends BaseModel {
 	public void postProcess(IProgressMonitor monitor)
 			throws InvocationTargetException, InterruptedException {
 		try {
-			new File(localfile).delete();
+			new File(localFile).delete();
 		}catch (Exception e) {
 		}
 	}
@@ -64,21 +61,21 @@ public class PowertopModel extends BaseModel {
 		int exit_code;
 		RemoteApplication app = new RemoteApplication(host, null, remoteExec, null);
 		String currentDate=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(Calendar.getInstance().getTime()).toString();
-		remotefile = new String(REMOTE_FILE_PREFIX + currentDate);
-		localfile = new String(remotefile + LOCAL_FILE_SUFFIX);
+		remoteFile = new String(REMOTE_FILE_PREFIX + currentDate);
+		localFile = new String(remoteFile + LOCAL_FILE_SUFFIX);
 		
 		ArrayList <String> param= new ArrayList <String>();
 		param.add(remoteExec);
 		param.add("start");
 		param.add("-l");
-		param.add(remotefile);
+		param.add(remoteFile);
 		param.add("powertop");
 		param.add("-d");
 		param.add("-t");
 		param.add(time.toString());
 		if(showpid)
 			param.add("-p");
-		String args = "start -l " + remotefile + " powertop -d -t " + time.toString();
+		String args = "start -l " + remoteFile + " powertop -d -t " + time.toString();
 		if(showpid)
 			args += " -p";
 		
@@ -97,16 +94,6 @@ public class PowertopModel extends BaseModel {
 		}
 	}
 
-	private void getDataFile(IProgressMonitor monitor) throws Exception {
-				
-		RSEHelper.getRemoteFile(
-				host,
-				localfile,
-				remotefile, 
-				monitor);
-	}
-	
-	
 	@Override
 	public void process(IProgressMonitor monitor)
 			throws InvocationTargetException, InterruptedException {
@@ -130,7 +117,7 @@ public class PowertopModel extends BaseModel {
 						e.printStackTrace();
 						return;
 					}
-					view.setInput(localfile);
+					view.setInput(localFile);
 					page.bringToTop(view);
 				}
 			});
diff --git a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Ust2Model.java b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Ust2Model.java
index 2f508a6..f767965 100644
--- a/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Ust2Model.java
+++ b/plugins/org.yocto.sdk.remotetools/src/org/yocto/sdk/remotetools/actions/Ust2Model.java
@@ -26,7 +26,6 @@ import org.eclipse.core.runtime.Path;
 import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.rse.core.model.IHost;
 import org.eclipse.ui.IWorkbenchWindow;
-import org.yocto.sdk.remotetools.RSEHelper;
 import org.yocto.sdk.remotetools.remote.RemoteApplication;
 
 public class Ust2Model extends BaseModel {
@@ -46,8 +45,6 @@ public class Ust2Model extends BaseModel {
 	
 	private String prj_name;
 	
-	private String localfile;
-	
 	private IWorkbenchWindow window;
 	
 	public Ust2Model(IHost host, String trace, String project, IWorkbenchWindow window) {
@@ -58,11 +55,10 @@ public class Ust2Model extends BaseModel {
 		this.window = window;
 	}
 	
-	private String generateData(IProgressMonitor monitor) throws Exception {
+	private void generateData(IProgressMonitor monitor) throws Exception {
 		int exit_code;
 		RemoteApplication app = new RemoteApplication(host, null, remoteExec, null);
 		
-		String remoteDataFile = null;
 		
 		try {
 			String temp;
@@ -75,7 +71,7 @@ public class Ust2Model extends BaseModel {
 			while((temp=in.readLine())!=null) {
 				idx=temp.indexOf(DATAFILE_PREFIX);
 				if(idx!=-1) {
-					remoteDataFile=temp.substring(idx + DATAFILE_PREFIX.length());
+					remoteFile = temp.substring(idx + DATAFILE_PREFIX.length());
 					break;
 				}
 			}
@@ -87,33 +83,22 @@ public class Ust2Model extends BaseModel {
 		}finally {
 			monitor.done();
 		}
-		if(remoteDataFile==null)
+		if(remoteFile == null)
 			throw new Exception("Ust: null remote data file");
-		return remoteDataFile;
-	}
-	
-	private void getDataFile(IProgressMonitor monitor,String datafile) throws Exception {
-		
-		if(datafile.endsWith(REMOTE_FILE_SUFFIX)==false)
-			throw new Exception("Wrong ust data file "+datafile);
-		
-		localfile=new String(datafile.substring(0,datafile.length()-4) + LOCAL_FILE_SUFFIX);
+		if(remoteFile.endsWith(REMOTE_FILE_SUFFIX)==false)
+			throw new Exception("Wrong ust data file " + remoteFile);
 		
-		RSEHelper.getRemoteFile(
-				host,
-				localfile,
-				datafile, 
-				monitor);
+		localFile = new String(remoteFile.substring(0, remoteFile.length()-4) + LOCAL_FILE_SUFFIX);
 	}
 
 	private void importToProject(IProgressMonitor monitor) throws Exception {
-		ProcessBuilder pb = new ProcessBuilder("tar", "fx", localfile);
+		ProcessBuilder pb = new ProcessBuilder("tar", "fx", localFile);
 		pb.directory(new File("/tmp"));
 		Process p=pb.start();
 		if(p.waitFor()!=0)
 			throw new Exception("extract ust data files failed");
 		
-		String traceName = localfile.substring(0,localfile.length()-LOCAL_FILE_SUFFIX.length());
+		String traceName = localFile.substring(0,localFile.length()-LOCAL_FILE_SUFFIX.length());
 		
 		IWorkspaceRoot wsroot = ResourcesPlugin.getWorkspace().getRoot();
 		IPath full_path = wsroot.getFullPath();
@@ -142,12 +127,12 @@ public class Ust2Model extends BaseModel {
 		String viewerParam=new String(LOCAL_EXEC);
 		int i;
 		
-		ProcessBuilder pb = new ProcessBuilder("tar", "fx", localfile);
+		ProcessBuilder pb = new ProcessBuilder("tar", "fx", localFile);
 		pb.directory(new File("/tmp"));
 		Process p=pb.start();
 		if(p.waitFor()!=0)
 			throw new Exception("extract ust data files failed");
-		File f=new File(localfile.substring(0,localfile.length()-LOCAL_FILE_SUFFIX.length()));
+		File f=new File(localFile.substring(0,localFile.length()-LOCAL_FILE_SUFFIX.length()));
 		File []subdir=f.listFiles();
 		
 		for (i=0;i<subdir.length;i++) {
@@ -171,11 +156,11 @@ public class Ust2Model extends BaseModel {
 			//preparing remote trace
 			
 			monitor.subTask("Preparing user space lttng data file remotely");
-			datafile=generateData(new SubProgressMonitor(monitor,30));
+			generateData(new SubProgressMonitor(monitor,30));
 			
 			//download datafile to local
 			monitor.subTask("Downloading user space lttng data file");
-			getDataFile(new SubProgressMonitor(monitor,30),datafile);
+			getDataFile(new SubProgressMonitor(monitor,30));
 			
 			//extract datafile and import to lttng project
 			importToProject(new SubProgressMonitor(monitor,30));
-- 
1.7.9.5




More information about the yocto mailing list