[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