use of org.eclipse.che.ide.api.machine.MachineEntity in project che by eclipse.
the class MachinePanelPresenter method showMachines.
private void showMachines(Workspace workspace) {
List<MachineEntity> machines = getMachines(workspace);
machineNodes.clear();
if (machines.isEmpty()) {
appliance.showStub(locale.unavailableMachineInfo());
return;
}
for (MachineEntity machine : machines) {
addNodeToTree(machine);
}
view.setData(rootNode);
selectFirstNode();
}
use of org.eclipse.che.ide.api.machine.MachineEntity in project che by eclipse.
the class JsonRpcWebSocketAgentEventListener method internalInitialize.
private void internalInitialize() {
DevMachine devMachine = appContext.getDevMachine();
String devMachineId = devMachine.getId();
String wsAgentWebSocketUrl = devMachine.getWsAgentWebSocketUrl();
String wsAgentUrl = wsAgentWebSocketUrl.replaceFirst("(api)(/)(ws)", "websocket" + "$2" + ENDPOINT_ID);
String execAgentUrl = devMachine.getExecAgentUrl();
initializer.initialize("ws-agent", singletonMap("url", wsAgentUrl));
initializer.initialize(devMachineId, singletonMap("url", execAgentUrl));
for (MachineEntity machineEntity : appContext.getActiveRuntime().getMachines()) {
if (!machineEntity.isDev()) {
initializer.initialize(machineEntity.getId(), singletonMap("url", machineEntity.getExecAgentUrl()));
}
}
}
use of org.eclipse.che.ide.api.machine.MachineEntity in project che by eclipse.
the class ProcessesPanelPresenterTest method shouldHideStopProcessButtonAtAddingTerminal.
@Test
public void shouldHideStopProcessButtonAtAddingTerminal() throws Exception {
MachineDto machineDto = mock(MachineDto.class);
MachineEntity machine = mock(MachineEntity.class);
when(machine.getId()).thenReturn(MACHINE_ID);
MachineConfigDto machineConfigDto = mock(MachineConfigDto.class);
when(machine.getConfig()).thenReturn(machineConfigDto);
when(machineConfigDto.isDev()).thenReturn(true);
when(machine.getStatus()).thenReturn(MachineStatus.RUNNING);
List<MachineDto> machines = new ArrayList<>(1);
machines.add(machineDto);
when(workspaceRuntime.getMachines()).thenReturn(machines);
when(entityFactory.createMachine(machineDto)).thenReturn(machine);
ProcessTreeNode machineNode = mock(ProcessTreeNode.class);
when(machineNode.getId()).thenReturn(MACHINE_ID);
List<ProcessTreeNode> children = new ArrayList<>();
children.add(machineNode);
presenter.rootNode = new ProcessTreeNode(ROOT_NODE, null, null, null, children);
TerminalPresenter terminal = mock(TerminalPresenter.class);
when(terminalFactory.create(machine, presenter)).thenReturn(terminal);
IsWidget terminalWidget = mock(IsWidget.class);
when(terminal.getView()).thenReturn(terminalWidget);
when(terminalWidget.asWidget()).thenReturn(widget);
presenter.addCommandOutput(MACHINE_ID, outputConsole);
presenter.onAddTerminal(MACHINE_ID, presenter);
verify(terminalFactory).create(eq(machine), eq(presenter));
verify(terminal).getView();
verify(view, times(2)).setProcessesData(anyObject());
verify(view, times(2)).selectNode(anyObject());
verify(view).addWidget(anyString(), anyString(), anyObject(), eq(terminalWidget), anyBoolean());
verify(view, times(1)).addProcessNode(anyObject());
verify(terminal).setVisible(eq(true));
verify(terminal).connect();
verify(terminal).setListener(anyObject());
verify(view).setStopButtonVisibility(anyString(), eq(false));
}
use of org.eclipse.che.ide.api.machine.MachineEntity in project che by eclipse.
the class TargetsPresenter method updateTargets.
/**
* Fetches all recipes from the server, makes a list of targets and selects specified target.
*/
@Override
public void updateTargets(final String preselectTargetName) {
targets.clear();
machines.clear();
getMachines(appContext.getWorkspaceId()).then(new Operation<List<MachineEntity>>() {
@Override
public void apply(List<MachineEntity> machineList) throws OperationException {
//create Target objects from all machines
for (MachineEntity machine : machineList) {
final MachineConfig machineConfig = machine.getConfig();
machines.put(machineConfig.getName(), machine);
final String targetCategory = machineConfig.isDev() ? machineLocale.devMachineCategory() : machineConfig.getType();
final Target target = createTarget(machineConfig.getName(), targetCategory);
target.setConnected(isMachineRunning(machine));
targets.put(target.getName(), target);
}
//create Target objects from recipe with ssh type
recipeServiceClient.getAllRecipes().then(new Operation<List<RecipeDescriptor>>() {
@Override
public void apply(List<RecipeDescriptor> recipeList) throws OperationException {
for (RecipeDescriptor recipe : recipeList) {
//only for SSH recipes
if (!machineLocale.targetsViewCategorySsh().equalsIgnoreCase(recipe.getType())) {
continue;
}
Target target = targets.get(recipe.getName());
if (target == null) {
target = createTarget(recipe.getName(), recipe.getType());
}
target.setRecipe(recipe);
categoryPageRegistry.getCategoryPage(target.getCategory()).getTargetManager().restoreTarget(target);
targets.put(target.getName(), target);
}
view.showTargets(new ArrayList<>(targets.values()));
selectTarget(preselectTargetName == null ? selectedTarget : targets.get(preselectTargetName));
}
});
}
});
}
use of org.eclipse.che.ide.api.machine.MachineEntity in project che by eclipse.
the class ProcessesPanelPresenter method onWsAgentStarted.
@Override
public void onWsAgentStarted(WsAgentStateEvent event) {
List<MachineEntity> machines = getMachines(appContext.getWorkspace());
if (machines.isEmpty()) {
return;
}
for (MachineEntity machine : machines) {
restoreState(machine);
}
selectDevMachine();
newTerminal(this);
}
Aggregations