Package io.fathom.cloud.identity.commands

Source Code of io.fathom.cloud.identity.commands.ProjectCreateCmdlet

package io.fathom.cloud.identity.commands;

import io.fathom.cloud.commands.Cmdlet;
import io.fathom.cloud.server.auth.Auth;
import io.fathom.cloud.server.model.Project;
import io.fathom.cloud.services.AuthService;

import java.util.List;

import javax.inject.Inject;

import org.kohsuke.args4j.Option;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ProjectCreateCmdlet extends Cmdlet {

    private static final Logger log = LoggerFactory.getLogger(ProjectCreateCmdlet.class);

    @Option(name = "-u", usage = "username", required = true)
    public String username;

    @Option(name = "-p", usage = "password", required = true)
    public String password;

    @Option(name = "-proj", usage = "project", required = true)
    public String projectName;

    public ProjectCreateCmdlet() {
        super("id-project-create");
    }

    @Inject
    AuthService authService;

    @Override
    protected void run() throws Exception {
        Auth auth = authService.authenticate(null, username, password);
        if (auth == null) {
            throw new IllegalStateException("Cannot authenticate as " + username);
        }
        log.info("Authenticated as: {}", username);

        List<Long> projectIds = authService.resolveProjectName(auth, projectName);
        Long projectId;
        if (projectIds.isEmpty()) {
            log.info("Creating project: {}", projectName);
            projectId = authService.createProject(auth, projectName);
        } else {
            throw new IllegalArgumentException("Project already exists");
        }

        auth = authService.authenticate(projectId, username, password);
        if (auth == null) {
            throw new IllegalStateException("Error authenticating to project");
        }
        log.info("Authenticated to project");

        Project project = auth.getProject();
        println("Created project: %s", project.getId());
    }

}
TOP

Related Classes of io.fathom.cloud.identity.commands.ProjectCreateCmdlet

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.