use of org.eclipse.tracecompass.internal.lttng2.control.ui.relayd.LttngRelaydConnectionInfo in project tracecompass by tracecompass.
the class ImportHandler method execute.
// ------------------------------------------------------------------------
// Operations
// ------------------------------------------------------------------------
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (window == null) {
return false;
}
CommandParameter param;
fLock.lock();
try {
param = fParam;
if (param == null) {
return null;
}
param = param.clone();
} finally {
fLock.unlock();
}
// create default project
IProject project = TmfProjectRegistry.createProject(RemoteFetchLogWizardRemotePage.DEFAULT_REMOTE_PROJECT_NAME, null, null);
if (param.getSession().isLiveTrace()) {
importLiveTrace(new LttngRelaydConnectionInfo(param.getSession().getLiveUrl(), param.getSession().getLivePort(), param.getSession().getName()), project);
return null;
} else if (param.getSession().isStreamedTrace()) {
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
String notify = store.getString(NOTIFY_IMPORT_STREAMED_PREF_KEY);
if (!MessageDialogWithToggle.ALWAYS.equals(notify)) {
MessageDialogWithToggle.openInformation(window.getShell(), null, Messages.TraceControl_ImportDialogStreamedTraceNotification, Messages.TraceControl_ImportDialogStreamedTraceNotificationToggle, false, store, NOTIFY_IMPORT_STREAMED_PREF_KEY);
}
// Streamed trace
TmfProjectElement projectElement = TmfProjectRegistry.getProject(project, true);
TmfTraceFolder traceFolder = projectElement.getTracesFolder();
ImportTraceWizard wizard = new ImportTraceWizard();
wizard.init(PlatformUI.getWorkbench(), new StructuredSelection(traceFolder));
WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
dialog.open();
return null;
}
// Generate the profile
TraceSessionComponent session = param.getSession();
// $NON-NLS-1$
RemoteImportProfileElement profile = new RemoteImportProfileElement(null, "LTTng Remote Traces");
RemoteSystemProxy proxy = session.getTargetNode().getRemoteSystemProxy();
IRemoteConnection rc = proxy.getRemoteConnection();
String name = rc.getName();
if (!rc.hasService(IRemoteConnectionHostService.class)) {
return null;
}
String scheme = rc.getConnectionType().getScheme();
IRemoteConnectionHostService hostService = checkNotNull(rc.getService(IRemoteConnectionHostService.class));
String address = hostService.getHostname();
String user = hostService.getUsername();
int port = hostService.getPort();
URI remoteUri;
try {
remoteUri = new URI(scheme, user, address, port, null, null, null);
} catch (URISyntaxException e) {
return false;
}
RemoteImportConnectionNodeElement connection = new RemoteImportConnectionNodeElement(profile, name, remoteUri.toString());
String pathString = session.isSnapshotSession() ? session.getSnapshotInfo().getSnapshotPath() : session.getSessionPath();
IPath path = new Path(pathString);
RemoteImportTraceGroupElement group = new RemoteImportTraceGroupElement(connection, path.toString());
group.setRecursive(true);
// $NON-NLS-1$//$NON-NLS-2$
TracePackageElement element = new TracePackageTraceElement(group, "", "");
// $NON-NLS-1$
new TracePackageFilesElement(element, ".*");
String experimentName = path.lastSegment();
if (!experimentName.startsWith(session.getName())) {
experimentName = session.getName();
}
RemoteFetchLogWizard wizard = new RemoteFetchLogWizard(profile, experimentName);
wizard.init(PlatformUI.getWorkbench(), StructuredSelection.EMPTY);
WizardDialog dialog = new WizardDialog(window.getShell(), wizard);
dialog.open();
return null;
}
use of org.eclipse.tracecompass.internal.lttng2.control.ui.relayd.LttngRelaydConnectionInfo in project tracecompass by tracecompass.
the class ImportHandler method importLiveTrace.
// ------------------------------------------------------------------------
// Helper methods
// ------------------------------------------------------------------------
private static void importLiveTrace(final LttngRelaydConnectionInfo connectionInfo, final IProject project) {
Job job = new Job(Messages.TraceControl_ImportJob) {
@Override
protected IStatus run(final IProgressMonitor monitor) {
try {
// We initiate the connection first so that we can retrieve the trace path
LttngRelaydConsumer lttngRelaydConsumer = LttngRelaydConnectionManager.getInstance().getConsumer(connectionInfo);
try {
lttngRelaydConsumer.connect();
} catch (CoreException e) {
return new Status(IStatus.ERROR, Activator.PLUGIN_ID, org.eclipse.tracecompass.internal.lttng2.control.ui.relayd.Messages.LttngRelaydConnectionManager_ConnectionError, e);
}
initializeTraceResource(connectionInfo, lttngRelaydConsumer.getTracePath(), project);
return Status.OK_STATUS;
} catch (CoreException | TmfTraceImportException e) {
return new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.TraceControl_LiveTraceInitError, e);
}
}
};
job.setSystem(true);
job.schedule();
}
Aggregations