use of org.eclipse.che.api.workspace.server.wsplugins.model.ChePlugin in project che-server by eclipse-che.
the class KubernetesPluginsToolingApplierTest method applyPluginContainerWithOneVolume.
@Test
public void applyPluginContainerWithOneVolume() throws InfrastructureException {
lenient().when(podSpec.getContainers()).thenReturn(new ArrayList<>());
ChePlugin chePlugin = createChePlugin();
CheContainer cheContainer = chePlugin.getContainers().get(0);
applier.apply(runtimeIdentity, internalEnvironment, singletonList(chePlugin));
verifyPodAndContainersNumber(1);
Container container = getOneAndOnlyNonUserContainer(internalEnvironment);
verifyContainer(container);
verify(chePluginsVolumeApplier).applyVolumes(any(PodData.class), eq(container), eq(cheContainer.getVolumes()), eq(internalEnvironment));
}
use of org.eclipse.che.api.workspace.server.wsplugins.model.ChePlugin in project devspaces-images by redhat-developer.
the class KubernetesPluginsToolingValidator method validatePluginNames.
public void validatePluginNames(List<? extends ChePlugin> plugins) throws ValidationException {
for (ChePlugin plugin : plugins) {
if (plugin.getName() != null) {
final String formattedPluginName = plugin.getName().toLowerCase();
checkValid(formattedPluginName, "Plugin name `%s` contains unacceptable symbols and cannot be used as part of container naming.");
}
for (CheContainer container : plugin.getContainers()) {
if (container.getName() != null) {
final String formattedContainerName = container.getName().toLowerCase();
checkValid(formattedContainerName, "Container name `%s` contains unacceptable symbols and cannot be used as part of container naming.");
}
}
}
}
use of org.eclipse.che.api.workspace.server.wsplugins.model.ChePlugin in project devspaces-images by redhat-developer.
the class SidecarToolingProvisioner method provision.
@Traced
@Beta
public void provision(RuntimeIdentity identity, StartSynchronizer startSynchronizer, E environment, Map<String, String> startOptions) throws InfrastructureException {
Collection<PluginFQN> pluginFQNs = pluginFQNParser.parsePlugins(environment.getAttributes());
if (pluginFQNs.isEmpty()) {
return;
}
LOG.debug("Started sidecar tooling provisioning workspace '{}'", identity.getWorkspaceId());
String recipeType = environment.getType();
ChePluginsApplier pluginsApplier = workspaceNextAppliers.get(recipeType);
if (pluginsApplier == null) {
throw new InfrastructureException("Sidecar tooling configuration is not supported with environment type " + recipeType);
}
boolean isEphemeral = EphemeralWorkspaceUtility.isEphemeral(environment.getAttributes());
boolean mergePlugins = shouldMergePlugins(environment.getAttributes());
List<ChePlugin> chePlugins = pluginBrokerManager.getTooling(identity, startSynchronizer, pluginFQNs, isEphemeral, mergePlugins, startOptions);
pluginsApplier.apply(identity, environment, chePlugins);
artifactsBrokerApplier.apply(environment, identity, pluginFQNs, mergePlugins);
LOG.debug("Finished sidecar tooling provisioning workspace '{}'", identity.getWorkspaceId());
}
use of org.eclipse.che.api.workspace.server.wsplugins.model.ChePlugin in project devspaces-images by redhat-developer.
the class KubernetesPluginsToolingApplierTest method createChePlugin.
private ChePlugin createChePlugin(String id, List<CheContainer> containers, List<CheContainer> initContainers) {
String[] splittedId = id.split("/");
ChePlugin plugin = new ChePlugin();
plugin.setPublisher(splittedId[0]);
plugin.setName(splittedId[1]);
plugin.setVersion(splittedId[2]);
plugin.setId(id);
plugin.setContainers(containers);
plugin.setInitContainers(initContainers);
internalEnvironment.getDevfile().getComponents().add(new ComponentImpl("chePlugin", id));
return plugin;
}
use of org.eclipse.che.api.workspace.server.wsplugins.model.ChePlugin in project devspaces-images by redhat-developer.
the class KubernetesPluginsToolingApplierTest method setsSourceAndPluginAttributeForMachineAssociatedWithSidecar.
@Test
public void setsSourceAndPluginAttributeForMachineAssociatedWithSidecar() throws Exception {
ChePlugin chePlugin = createChePlugin();
applier.apply(runtimeIdentity, internalEnvironment, singletonList(chePlugin));
InternalMachineConfig machineConfig = getOneAndOnlyNonUserMachine(internalEnvironment);
Map<String, String> attributes = machineConfig.getAttributes();
assertEquals(attributes.get(CONTAINER_SOURCE_ATTRIBUTE), TOOL_CONTAINER_SOURCE);
assertEquals(attributes.get(PLUGIN_MACHINE_ATTRIBUTE), chePlugin.getId());
}
Aggregations