use of org.eclipse.core.runtime.jobs.Job in project azure-tools-for-java by Microsoft.
the class AzureNewDockerWizard method createHost.
public void createHost() {
AzureDockerPreferredSettings dockerPreferredSettings = dockerManager.getDockerPreferredSettings();
if (dockerPreferredSettings == null) {
dockerPreferredSettings = new AzureDockerPreferredSettings();
}
dockerPreferredSettings.dockerApiName = newHost.apiUrl;
dockerPreferredSettings.region = newHost.hostVM.region;
dockerPreferredSettings.vmSize = newHost.hostVM.vmSize;
dockerPreferredSettings.vmOS = newHost.hostOSType.name();
dockerManager.setDockerPreferredSettings(dockerPreferredSettings);
Job createDockerHostJob = new Job("Creating Docker virtual machine " + newHost.name) {
@Override
protected IStatus run(IProgressMonitor progressMonitor) {
progressMonitor.beginTask("start task", 100);
try {
DockerHost dockerHost = newHost;
progressMonitor.subTask(String.format("Reading subscription details for Docker host %s ...", dockerHost.apiUrl));
progressMonitor.worked(5);
Azure azureClient = dockerManager.getSubscriptionsMap().get(dockerHost.sid).azureClient;
if (progressMonitor.isCanceled()) {
if (displayWarningOnCreateHostCancelAction() == 0) {
progressMonitor.done();
return Status.CANCEL_STATUS;
}
}
progressMonitor.subTask(String.format("Creating new virtual machine %s ...", dockerHost.name));
progressMonitor.worked(10);
if (AzureDockerUtils.DEBUG)
System.out.println("Creating new virtual machine: " + new Date().toString());
AzureDockerVMOps.createDockerHostVM(azureClient, dockerHost);
if (AzureDockerUtils.DEBUG)
System.out.println("Done creating new virtual machine: " + new Date().toString());
if (progressMonitor.isCanceled()) {
if (displayWarningOnCreateHostCancelAction() == 0) {
progressMonitor.done();
return Status.CANCEL_STATUS;
}
}
progressMonitor.subTask("Getting the new Docker virtual machines details...");
progressMonitor.worked(5);
if (AzureDockerUtils.DEBUG)
System.out.println("Getting the new Docker hosts details: " + new Date().toString());
VirtualMachine vm = azureClient.virtualMachines().getByResourceGroup(dockerHost.hostVM.resourceGroupName, dockerHost.hostVM.name);
if (vm != null) {
DockerHost updatedHost = AzureDockerVMOps.getDockerHost(vm, dockerManager.getDockerVaultsMap());
if (updatedHost != null) {
dockerHost.hostVM = updatedHost.hostVM;
dockerHost.apiUrl = updatedHost.apiUrl;
}
}
if (AzureDockerUtils.DEBUG)
System.out.println("Done getting the new Docker hosts details: " + new Date().toString());
if (progressMonitor.isCanceled()) {
if (displayWarningOnCreateHostCancelAction() == 0) {
progressMonitor.done();
return Status.CANCEL_STATUS;
}
}
progressMonitor.subTask(String.format("Waiting for virtual machine %s to be up...", dockerHost.name));
progressMonitor.worked(55);
if (AzureDockerUtils.DEBUG)
System.out.println("Waiting for virtual machine to be up: " + new Date().toString());
AzureDockerVMOps.waitForVirtualMachineStartup(azureClient, dockerHost);
if (AzureDockerUtils.DEBUG)
System.out.println("Done Waiting for virtual machine to be up: " + new Date().toString());
if (progressMonitor.isCanceled()) {
if (displayWarningOnCreateHostCancelAction() == 0) {
progressMonitor.done();
return Status.CANCEL_STATUS;
}
}
progressMonitor.subTask(String.format("Configuring Docker service for %s ...", dockerHost.apiUrl));
progressMonitor.worked(15);
if (AzureDockerUtils.DEBUG)
System.out.println("Configuring Docker host: " + new Date().toString());
AzureDockerVMOps.installDocker(dockerHost);
if (AzureDockerUtils.DEBUG)
System.out.println("Done configuring Docker host: " + new Date().toString());
if (AzureDockerUtils.DEBUG)
System.out.println("Finished setting up Docker host");
if (progressMonitor.isCanceled()) {
if (displayWarningOnCreateHostCancelAction() == 0) {
progressMonitor.done();
return Status.CANCEL_STATUS;
}
}
if (dockerHost.certVault != null && dockerHost.certVault.hostName != null) {
AzureDockerUIResources.createDockerKeyVault(dockerHost, dockerManager);
}
progressMonitor.subTask("Refreshing the Docker virtual machines details...");
progressMonitor.worked(5);
if (AzureDockerUtils.DEBUG)
System.out.println("Refreshing Docker hosts details: " + new Date().toString());
vm = azureClient.virtualMachines().getByResourceGroup(dockerHost.hostVM.resourceGroupName, dockerHost.hostVM.name);
if (vm != null) {
DockerHost updatedHost = AzureDockerVMOps.getDockerHost(vm, dockerManager.getDockerVaultsMap());
if (updatedHost != null) {
updatedHost.sid = dockerHost.sid;
updatedHost.hostVM.sid = dockerHost.hostVM.sid;
if (updatedHost.certVault == null) {
updatedHost.certVault = dockerHost.certVault;
updatedHost.hasPwdLogIn = dockerHost.hasPwdLogIn;
updatedHost.hasSSHLogIn = dockerHost.hasSSHLogIn;
updatedHost.isTLSSecured = dockerHost.isTLSSecured;
}
dockerManager.addDockerHostDetails(updatedHost);
if (AzureUIRefreshCore.listeners != null) {
AzureUIRefreshCore.execute(new AzureUIRefreshEvent(AzureUIRefreshEvent.EventType.ADD, updatedHost));
}
}
}
if (AzureDockerUtils.DEBUG)
System.out.println("Done refreshing Docker hosts details: " + new Date().toString());
if (progressMonitor.isCanceled()) {
if (displayWarningOnCreateHostCancelAction() == 0) {
progressMonitor.done();
return Status.CANCEL_STATUS;
}
}
progressMonitor.done();
return Status.OK_STATUS;
} catch (Exception e) {
String msg = "An error occurred while attempting to create Docker host." + "\n" + e.getMessage();
log.log(Level.SEVERE, "createHost: " + msg, e);
e.printStackTrace();
return Status.CANCEL_STATUS;
}
// progressMonitor.subTask("");
// progressMonitor.worked(1);
// if (progressMonitor.isCanceled()) {
// if (displayWarningOnCreateHostCancelAction() == 0) {
// progressMonitor.done();
// return Status.CANCEL_STATUS;
// }
// }
//
// for (int i = 0; i < 10; i++) {
// try {
// Thread.sleep(3000);
// progressMonitor.subTask("doing " + i);
// // Report that 10 units are done
// progressMonitor.worked(10);
// } catch (InterruptedException e1) {
// e1.printStackTrace();
// }
// }
}
};
createDockerHostJob.schedule();
// DefaultLoader.getIdeHelper().runInBackground(null, "Creating Docker virtual machine " + newHost.name + "...", false, true, "Creating Docker virtual machine " + newHost.name + "...", new Runnable() {
// @Override
// public void run() {
// DefaultLoader.getIdeHelper().invokeLater(new Runnable() {
// @Override
// public void run() {
//
// }
// });
// }
// });
}
use of org.eclipse.core.runtime.jobs.Job in project tdi-studio-se by Talend.
the class CodeGeneratorService method refreshTemplates.
/*
* (non-Javadoc)
*
* @see org.talend.designer.codegen.ICodeGeneratorService#refreshTemplates()
*/
@Override
public Job refreshTemplates() {
Element oldComponent = null;
IComponentSettingsView viewer = null;
if (!CommonUIPlugin.isFullyHeadless()) {
// TDI-25866:In case select a component and sctrl+shift+f3,need clean its componentSetting view
IWorkbenchWindow wwindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
if (wwindow != null && wwindow.getActivePage() != null) {
viewer = (IComponentSettingsView) wwindow.getActivePage().findView(IComponentSettingsView.ID);
if (viewer != null) {
oldComponent = viewer.getElement();
viewer.cleanDisplay();
}
}
}
ComponentCompilations.deleteMarkers();
ComponentsFactoryProvider.getInstance().resetCache();
ILibraryManagerService librairesManagerService = (ILibraryManagerService) GlobalServiceRegister.getDefault().getService(ILibraryManagerService.class);
librairesManagerService.clearCache();
CorePlugin.getDefault().getLibrariesService().syncLibraries();
Job job = CodeGeneratorEmittersPoolFactory.initialize();
// achen modify to record ctrl+shift+f3 is pressed to fix bug 0006107
IDesignerCoreService designerCoreService = (IDesignerCoreService) GlobalServiceRegister.getDefault().getService(IDesignerCoreService.class);
designerCoreService.getLastGeneratedJobsDateMap().clear();
if (oldComponent != null && viewer != null) {
viewer.setElement(oldComponent);
}
if (!CommonUIPlugin.isFullyHeadless()) {
CorePlugin.getDefault().getDesignerCoreService().synchronizeDesignerUI(new PropertyChangeEvent(this, IComponentConstants.NORMAL, null, null));
}
return job;
}
use of org.eclipse.core.runtime.jobs.Job in project tdi-studio-se by Talend.
the class DownloadComponenentsAction method updateUI.
/**
* Update ui after job finished.
*
* @param action
* @param event
*/
private void updateUI(final IJobChangeEvent event) {
// activate aection again after job finished
if (fExtensionDownloaded > 0) {
// refresh palette
ExchangeUtils.reloadComponents();
// update needed modules.
CorePlugin.getDefault().getLibrariesService().resetModulesNeeded();
// see feature 0005050: confirmation popup once the component is installed
confirmInstallation();
// Start Code Generation Init
ICodeGeneratorService codeGenService = (ICodeGeneratorService) GlobalServiceRegister.getDefault().getService(ICodeGeneratorService.class);
Job job = codeGenService.refreshTemplates();
job.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(IJobChangeEvent event) {
ComponentPaletteUtilities.setSkipUpdatePalette(false);
}
});
RefreshComponenentsAction action = new RefreshComponenentsAction();
action.run(new String[] { RefreshComponenentsAction.REFRESH_INSTALLED }, ContentConstants.UL_DOWNLOADED_EXTENSIONS);
}
}
use of org.eclipse.core.runtime.jobs.Job in project tdi-studio-se by Talend.
the class DownloadComponenentsAction method run.
@Override
public void run() {
try {
final ComponentExtension selectedExtension = ExchangeManager.getInstance().getSelectedExtension();
Job job = new DownloadJob(selectedExtension);
fExtensionDownloaded = 0;
fDownloadedComponents = new ArrayList<ComponentExtension>();
job.addJobChangeListener(new JobChangeAdapter() {
@Override
public void done(final IJobChangeEvent event) {
Display.getDefault().asyncExec(new Runnable() {
@Override
public void run() {
updateUI(event);
}
});
}
});
ExchangeUtils.scheduleUserJob(job);
} catch (Throwable e) {
ExceptionHandler.process(e);
}
}
use of org.eclipse.core.runtime.jobs.Job in project tdi-studio-se by Talend.
the class CodeGeneratorEmittersPoolFactory method initialize.
public static Job initialize() {
Job job = new //$NON-NLS-1$
Job(//$NON-NLS-1$
Messages.getString("CodeGeneratorEmittersPoolFactory.initMessage")) {
@Override
protected IStatus run(IProgressMonitor monitor) {
synchronized (delegateMonitor) {
if (jobRunnable == null) {
//$NON-NLS-1$
jobRunnable = new JobRunnable(Messages.getString("CodeGeneratorEmittersPoolFactory.codeThread"));
jobRunnable.start();
}
}
delegateMonitor.addDelegate(monitor);
while (jobRunnable != null && jobRunnable.isAlive()) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// do nothing
}
}
delegateMonitor.clearDelegate();
synchronized (delegateMonitor) {
jobRunnable = null;
}
return status;
}
};
job.setUser(false);
job.setPriority(Job.LONG);
job.schedule();
// start as soon as possible
job.wakeUp();
return job;
}
Aggregations