Search in sources :

Example 51 with ServerException

use of org.eclipse.che.api.core.ServerException in project che by eclipse.

the class Workspace method createResource.

public void createResource(IResource resource, int updateFlags) throws CoreException {
    try {
        IPath path = resource.getFullPath();
        switch(resource.getType()) {
            case IResource.FILE:
                String newName = path.lastSegment();
                VirtualFileEntry child = getProjectsRoot().getChild(path.removeLastSegments(1).toOSString());
                if (child == null) {
                    throw new NotFoundException("Can't find parent folder: " + path.removeLastSegments(1).toOSString());
                }
                FolderEntry entry = (FolderEntry) child;
                entry.createFile(newName, new byte[0]);
                break;
            case IResource.FOLDER:
                getProjectsRoot().createFolder(path.toOSString());
                break;
            case IResource.PROJECT:
                ProjectConfigImpl projectConfig = new ProjectConfigImpl();
                projectConfig.setPath(resource.getName());
                projectConfig.setName(resource.getName());
                projectConfig.setType(BaseProjectType.ID);
                projectManager.get().createProject(projectConfig, new HashMap<>());
                break;
            default:
                throw new UnsupportedOperationException();
        }
    } catch (ForbiddenException | ConflictException | ServerException | NotFoundException e) {
        throw new CoreException(new Status(0, ResourcesPlugin.getPluginId(), e.getMessage(), e));
    }
}
Also used : MultiStatus(org.eclipse.core.runtime.MultiStatus) IStatus(org.eclipse.core.runtime.IStatus) Status(org.eclipse.core.runtime.Status) IResourceStatus(org.eclipse.core.resources.IResourceStatus) ForbiddenException(org.eclipse.che.api.core.ForbiddenException) ServerException(org.eclipse.che.api.core.ServerException) IPath(org.eclipse.core.runtime.IPath) ConflictException(org.eclipse.che.api.core.ConflictException) VirtualFileEntry(org.eclipse.che.api.project.server.VirtualFileEntry) NotFoundException(org.eclipse.che.api.core.NotFoundException) CoreException(org.eclipse.core.runtime.CoreException) FolderEntry(org.eclipse.che.api.project.server.FolderEntry) ProjectConfigImpl(org.eclipse.che.api.workspace.server.model.impl.ProjectConfigImpl)

Example 52 with ServerException

use of org.eclipse.che.api.core.ServerException in project che by eclipse.

the class AbstractAgentLauncher method launch.

@Override
public void launch(Instance machine, Agent agent) throws ServerException {
    if (isNullOrEmpty(agent.getScript())) {
        return;
    }
    ListLineConsumer agentLogger = new ListLineConsumer();
    LineConsumer lineConsumer = new AbstractLineConsumer() {

        @Override
        public void writeLine(String line) throws IOException {
            machine.getLogger().writeLine(line);
            agentLogger.writeLine(line);
        }
    };
    try {
        final InstanceProcess process = start(machine, agent, lineConsumer);
        LOG.debug("Waiting for agent {} is launched. Workspace ID:{}", agent.getId(), machine.getWorkspaceId());
        final long pingStartTimestamp = System.currentTimeMillis();
        while (System.currentTimeMillis() - pingStartTimestamp < agentMaxStartTimeMs) {
            if (agentLaunchingChecker.isLaunched(agent, process, machine)) {
                return;
            } else {
                Thread.sleep(agentPingDelayMs);
            }
        }
        process.kill();
    } catch (MachineException e) {
        logAsErrorAgentStartLogs(agent.getName(), agentLogger.getText());
        throw new ServerException(e.getServiceError());
    } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
        throw new ServerException(format("Launching agent %s is interrupted", agent.getName()));
    } finally {
        try {
            lineConsumer.close();
        } catch (IOException ignored) {
        }
        agentLogger.close();
    }
    logAsErrorAgentStartLogs(agent.getName(), agentLogger.getText());
    throw new ServerException(format("Fail launching agent %s. Workspace ID:%s", agent.getName(), machine.getWorkspaceId()));
}
Also used : ListLineConsumer(org.eclipse.che.api.core.util.ListLineConsumer) ListLineConsumer(org.eclipse.che.api.core.util.ListLineConsumer) LineConsumer(org.eclipse.che.api.core.util.LineConsumer) AbstractLineConsumer(org.eclipse.che.api.core.util.AbstractLineConsumer) ServerException(org.eclipse.che.api.core.ServerException) AbstractLineConsumer(org.eclipse.che.api.core.util.AbstractLineConsumer) MachineException(org.eclipse.che.api.machine.server.exception.MachineException) InstanceProcess(org.eclipse.che.api.machine.server.spi.InstanceProcess) IOException(java.io.IOException)

Example 53 with ServerException

use of org.eclipse.che.api.core.ServerException in project che by eclipse.

the class ClasspathBuilder method generateClasspath.

/**
     * Generates classpath with default entries.
     *
     * @param project
     *         java project which need to contain classpath
     * @param sourceFolders
     *         list of the project's source folders
     * @param library
     *         list of the project's library folders
     * @throws ServerException
     *         happens when some problems with setting classpath
     */
public void generateClasspath(IJavaProject project, List<String> sourceFolders, List<String> library) throws ServerException {
    List<IClasspathEntry> classpathEntries = new ArrayList<>();
    //create classpath container for default JRE
    IClasspathEntry jreContainer = JavaCore.newContainerEntry(new Path(JREContainerInitializer.JRE_CONTAINER));
    classpathEntries.add(jreContainer);
    addSourceFolders(project, sourceFolders, classpathEntries);
    addJars(project, library, classpathEntries);
    try {
        project.setRawClasspath(classpathEntries.toArray(new IClasspathEntry[classpathEntries.size()]), null);
    } catch (JavaModelException e) {
        LOG.warn("Can't set classpath for: " + project.getProject().getFullPath().toOSString(), e);
        throw new ServerException(e);
    }
}
Also used : IPath(org.eclipse.core.runtime.IPath) Path(org.eclipse.core.runtime.Path) JavaModelException(org.eclipse.jdt.core.JavaModelException) ServerException(org.eclipse.che.api.core.ServerException) IClasspathEntry(org.eclipse.jdt.core.IClasspathEntry) ArrayList(java.util.ArrayList)

Example 54 with ServerException

use of org.eclipse.che.api.core.ServerException in project che by eclipse.

the class UnixSshScript method protectPrivateKeyFile.

@Override
protected void protectPrivateKeyFile(File sshKey) throws ServerException {
    try {
        //set permission to -rw-------
        Set<PosixFilePermission> permissions = EnumSet.of(OWNER_READ, OWNER_WRITE);
        Files.setPosixFilePermissions(sshKey.toPath(), permissions);
    } catch (IOException e) {
        throw new ServerException("Failed to set file permissions");
    }
}
Also used : ServerException(org.eclipse.che.api.core.ServerException) IOException(java.io.IOException) PosixFilePermission(java.nio.file.attribute.PosixFilePermission)

Example 55 with ServerException

use of org.eclipse.che.api.core.ServerException in project che by eclipse.

the class ProjectServiceTest method testResolveSources.

@Test
public void testResolveSources() throws Exception {
    VirtualFile root = pm.getProjectsRoot().getVirtualFile();
    root.createFolder("testEstimateProjectGood").createFolder("check");
    root.createFolder("testEstimateProjectBad");
    final ValueProviderFactory vpf1 = projectFolder -> new ReadonlyValueProvider() {

        @Override
        public List<String> getValues(String attributeName) throws ValueStorageException {
            VirtualFileEntry file;
            try {
                file = projectFolder.getChild("check");
            } catch (ServerException e) {
                throw new ValueStorageException(e.getMessage());
            }
            if (file == null) {
                throw new ValueStorageException("Check not found");
            }
            return (List<String>) singletonList("checked");
        }
    };
    ProjectTypeDef pt = new ProjectTypeDef("testEstimateProjectPT", "my testEstimateProject type", true, false) {

        {
            addVariableDefinition("calculated_attribute", "attr description", true, vpf1);
            addVariableDefinition("my_property_1", "attr description", true);
            addVariableDefinition("my_property_2", "attr description", false);
        }
    };
    ptRegistry.registerProjectType(pt);
    ContainerResponse response = launcher.service(GET, format("http://localhost:8080/api/project/resolve/%s", "testEstimateProjectGood"), "http://localhost:8080/api", null, null, null);
    assertEquals(response.getStatus(), 200, "Error: " + response.getEntity());
    List<SourceEstimation> result = (List<SourceEstimation>) response.getEntity();
    assertTrue(result.size() > 0);
    boolean m = false;
    for (SourceEstimation est : result) {
        if (est.getType().equals("testEstimateProjectPT")) {
            assertTrue(est.isMatched());
            m = true;
        }
    }
    assertTrue(m);
}
Also used : VirtualFile(org.eclipse.che.api.vfs.VirtualFile) DELETE(javax.ws.rs.HttpMethod.DELETE) Arrays(java.util.Arrays) Listeners(org.testng.annotations.Listeners) GET(javax.ws.rs.HttpMethod.GET) Path(org.eclipse.che.api.vfs.Path) Test(org.testng.annotations.Test) AfterMethod(org.testng.annotations.AfterMethod) Collections.singletonList(java.util.Collections.singletonList) HttpJsonRequest(org.eclipse.che.api.core.rest.HttpJsonRequest) FileWatcherManager(org.eclipse.che.api.vfs.watcher.FileWatcherManager) Future(java.util.concurrent.Future) CreateProjectHandler(org.eclipse.che.api.project.server.handlers.CreateProjectHandler) ResourceBinderImpl(org.everrest.core.impl.ResourceBinderImpl) Map(java.util.Map) HttpJsonRequestFactory(org.eclipse.che.api.core.rest.HttpJsonRequestFactory) RequestDispatcher(org.everrest.core.impl.RequestDispatcher) ProviderBinder(org.everrest.core.impl.ProviderBinder) APPLICATION_ZIP(org.eclipse.che.commons.lang.ws.rs.ExtMediaType.APPLICATION_ZIP) Attribute(org.eclipse.che.api.core.model.project.type.Attribute) HttpJsonResponse(org.eclipse.che.api.core.rest.HttpJsonResponse) Set(java.util.Set) EverrestProcessor(org.everrest.core.impl.EverrestProcessor) SourceStorageDto(org.eclipse.che.api.workspace.shared.dto.SourceStorageDto) Executors(java.util.concurrent.Executors) ResourceLauncher(org.everrest.core.tools.ResourceLauncher) IoUtil(org.eclipse.che.commons.lang.IoUtil) Matchers.any(org.mockito.Matchers.any) CountDownLatch(java.util.concurrent.CountDownLatch) ApiExceptionMapper(org.eclipse.che.api.core.rest.ApiExceptionMapper) UserDao(org.eclipse.che.api.user.server.spi.UserDao) EverrestConfiguration(org.everrest.core.impl.EverrestConfiguration) Assert.assertFalse(org.junit.Assert.assertFalse) ApplicationContext(org.everrest.core.ApplicationContext) ByteStreams(com.google.common.io.ByteStreams) SubjectImpl(org.eclipse.che.commons.subject.SubjectImpl) TEXT_PLAIN(javax.ws.rs.core.MediaType.TEXT_PLAIN) Mockito.mock(org.mockito.Mockito.mock) ZipOutputStream(java.util.zip.ZipOutputStream) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Mock(org.mockito.Mock) ResourceBinder(org.everrest.core.ResourceBinder) ProjectImporterRegistry(org.eclipse.che.api.project.server.importer.ProjectImporterRegistry) ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) AttributeValue(org.eclipse.che.api.project.server.type.AttributeValue) VirtualFile(org.eclipse.che.api.vfs.VirtualFile) ProjectTypeDef(org.eclipse.che.api.project.server.type.ProjectTypeDef) FSLuceneSearcherProvider(org.eclipse.che.api.vfs.search.impl.FSLuceneSearcherProvider) LinkedHashSet(java.util.LinkedHashSet) ProjectImporter(org.eclipse.che.api.project.server.importer.ProjectImporter) Assert.assertTrue(org.junit.Assert.assertTrue) IOException(java.io.IOException) File(java.io.File) ValueHolder(org.eclipse.che.api.core.util.ValueHolder) ServerException(org.eclipse.che.api.core.ServerException) ValueStorageException(org.eclipse.che.api.project.server.type.ValueStorageException) SourceEstimation(org.eclipse.che.api.project.shared.dto.SourceEstimation) ByteArrayContainerResponseWriter(org.everrest.core.tools.ByteArrayContainerResponseWriter) Assert(org.junit.Assert) Assert.assertEqualsNoOrder(org.testng.Assert.assertEqualsNoOrder) ApplicationContext.anApplicationContext(org.everrest.core.ApplicationContext.anApplicationContext) LineConsumerFactory(org.eclipse.che.api.core.util.LineConsumerFactory) Scanner(java.util.Scanner) ProjectTypeRegistry(org.eclipse.che.api.project.server.type.ProjectTypeRegistry) FileWatcherNotificationHandler(org.eclipse.che.api.vfs.impl.file.FileWatcherNotificationHandler) Application(javax.ws.rs.core.Application) ProjectHandlerRegistry(org.eclipse.che.api.project.server.handlers.ProjectHandlerRegistry) ByteArrayInputStream(java.io.ByteArrayInputStream) PathMatcher(java.nio.file.PathMatcher) LocalVirtualFileSystemProvider(org.eclipse.che.api.vfs.impl.file.LocalVirtualFileSystemProvider) URI(java.net.URI) APPLICATION_JSON(javax.ws.rs.core.MediaType.APPLICATION_JSON) ZipEntry(java.util.zip.ZipEntry) EventService(org.eclipse.che.api.core.notification.EventService) MockitoTestNGListener(org.mockito.testng.MockitoTestNGListener) BeforeMethod(org.testng.annotations.BeforeMethod) Assert.assertNotNull(org.testng.Assert.assertNotNull) SourceStorage(org.eclipse.che.api.core.model.project.SourceStorage) Collectors(java.util.stream.Collectors) String.format(java.lang.String.format) ItemReference(org.eclipse.che.api.project.shared.dto.ItemReference) List(java.util.List) POST(javax.ws.rs.HttpMethod.POST) PUT(javax.ws.rs.HttpMethod.PUT) ValueProviderFactory(org.eclipse.che.api.project.server.type.ValueProviderFactory) IntStream(java.util.stream.IntStream) ReadonlyValueProvider(org.eclipse.che.api.project.server.type.ReadonlyValueProvider) Link(org.eclipse.che.api.core.rest.shared.dto.Link) WorkspaceDto(org.eclipse.che.api.workspace.shared.dto.WorkspaceDto) Assert.assertEquals(org.testng.Assert.assertEquals) HashMap(java.util.HashMap) ProjectTypeConstraintException(org.eclipse.che.api.project.server.type.ProjectTypeConstraintException) DependencySupplierImpl(org.everrest.core.tools.DependencySupplierImpl) FileTreeWatcher(org.eclipse.che.api.vfs.impl.file.FileTreeWatcher) HashSet(java.util.HashSet) Charset(java.nio.charset.Charset) ConflictException(org.eclipse.che.api.core.ConflictException) LinkedList(java.util.LinkedList) DefaultFileWatcherNotificationHandler(org.eclipse.che.api.vfs.impl.file.DefaultFileWatcherNotificationHandler) DtoFactory(org.eclipse.che.dto.server.DtoFactory) ExecutorService(java.util.concurrent.ExecutorService) ContainerResponse(org.everrest.core.impl.ContainerResponse) RequestHandlerImpl(org.everrest.core.impl.RequestHandlerImpl) ProjectConfigDto(org.eclipse.che.api.workspace.shared.dto.ProjectConfigDto) WorkspaceConfigDto(org.eclipse.che.api.workspace.shared.dto.WorkspaceConfigDto) ExtMediaType(org.eclipse.che.commons.lang.ws.rs.ExtMediaType) SelfReturningAnswer(org.eclipse.che.commons.test.mockito.answer.SelfReturningAnswer) Mockito.when(org.mockito.Mockito.when) TreeElement(org.eclipse.che.api.project.shared.dto.TreeElement) NotFoundException(org.eclipse.che.api.core.NotFoundException) MoveOptions(org.eclipse.che.api.project.shared.dto.MoveOptions) ForbiddenException(org.eclipse.che.api.core.ForbiddenException) CopyOptions(org.eclipse.che.api.project.shared.dto.CopyOptions) Collections(java.util.Collections) InputStream(java.io.InputStream) ServerException(org.eclipse.che.api.core.ServerException) ContainerResponse(org.everrest.core.impl.ContainerResponse) ProjectTypeDef(org.eclipse.che.api.project.server.type.ProjectTypeDef) ValueStorageException(org.eclipse.che.api.project.server.type.ValueStorageException) SourceEstimation(org.eclipse.che.api.project.shared.dto.SourceEstimation) Collections.singletonList(java.util.Collections.singletonList) ArrayList(java.util.ArrayList) List(java.util.List) LinkedList(java.util.LinkedList) ReadonlyValueProvider(org.eclipse.che.api.project.server.type.ReadonlyValueProvider) ValueProviderFactory(org.eclipse.che.api.project.server.type.ValueProviderFactory) Test(org.testng.annotations.Test)

Aggregations

ServerException (org.eclipse.che.api.core.ServerException)143 IOException (java.io.IOException)51 ForbiddenException (org.eclipse.che.api.core.ForbiddenException)37 NotFoundException (org.eclipse.che.api.core.NotFoundException)37 ConflictException (org.eclipse.che.api.core.ConflictException)32 File (java.io.File)22 Test (org.testng.annotations.Test)20 ArrayList (java.util.ArrayList)19 VirtualFile (org.eclipse.che.api.vfs.VirtualFile)19 List (java.util.List)15 WorkspaceImpl (org.eclipse.che.api.workspace.server.model.impl.WorkspaceImpl)15 Map (java.util.Map)13 Transactional (com.google.inject.persist.Transactional)12 BadRequestException (org.eclipse.che.api.core.BadRequestException)12 InputStream (java.io.InputStream)11 Unlocker (org.eclipse.che.commons.lang.concurrent.Unlocker)10 String.format (java.lang.String.format)9 Path (javax.ws.rs.Path)9 Produces (javax.ws.rs.Produces)9 HashMap (java.util.HashMap)8