Search in sources :

Example 6 with ProjectId

use of org.platformlayer.ids.ProjectId in project platformlayer by platformlayer.

the class SshItem method runCommand.

@Override
public Object runCommand() throws PlatformLayerClientException {
    PlatformLayerClient client = getPlatformLayerClient();
    PlatformLayerKey key = path.resolve(getContext());
    UntypedItem untypedItem = client.getItemUntyped(key, Format.XML);
    InetAddress sshAddress = findSshAddress(client, untypedItem);
    ClientAction action = null;
    if (sshAddress != null) {
        String user = "root";
        ProjectId project = key.getProject();
        if (project == null) {
            project = client.getProject();
        }
        if (project == null) {
            throw new CliException("Cannot determine project");
        }
        String projectKey = project.getKey();
        String serviceKey = "service-" + key.getServiceType().getKey();
        File sshKey = IoUtils.resolve("~/.credentials/ssh/" + projectKey + "/" + serviceKey);
        // Hmmm... user? key?
        action = new ClientAction(ClientAction.ClientActionType.SSH, user + "@" + sshAddress.getHostAddress(), sshKey.getAbsolutePath());
    }
    return action;
}
Also used : PlatformLayerClient(org.platformlayer.PlatformLayerClient) ClientAction(com.fathomdb.cli.output.ClientAction) UntypedItem(org.platformlayer.common.UntypedItem) CliException(com.fathomdb.cli.CliException) ProjectId(org.platformlayer.ids.ProjectId) PlatformLayerKey(org.platformlayer.core.model.PlatformLayerKey) InetAddress(java.net.InetAddress) File(java.io.File)

Example 7 with ProjectId

use of org.platformlayer.ids.ProjectId in project platformlayer by platformlayer.

the class PlatformLayerClientBase method toKey.

public static <T> PlatformLayerKey toKey(JaxbHelper jaxbHelper, ManagedItemId id, Class<T> itemClass, Collection<ServiceInfo> services) throws PlatformLayerClientException {
    String namespaceURI = jaxbHelper.getPrimaryNamespace();
    String nodeName = jaxbHelper.getXmlElementName();
    if (namespaceURI == null) {
        throw new IllegalArgumentException("Namespace could not be determined");
    }
    ServiceInfo service = getServiceInfo(services, namespaceURI);
    if (service == null) {
        throw new PlatformLayerClientException("Cannot find service for " + namespaceURI);
    }
    ServiceType serviceType = new ServiceType(service.getServiceType());
    ItemType itemType = new ItemType(nodeName);
    FederationKey host = null;
    ProjectId project = null;
    return new PlatformLayerKey(host, project, serviceType, itemType, id);
}
Also used : ServiceInfo(org.platformlayer.core.model.ServiceInfo) ServiceType(org.platformlayer.ids.ServiceType) ItemType(org.platformlayer.ids.ItemType) ProjectId(org.platformlayer.ids.ProjectId) PlatformLayerKey(org.platformlayer.core.model.PlatformLayerKey) FederationKey(org.platformlayer.ids.FederationKey)

Example 8 with ProjectId

use of org.platformlayer.ids.ProjectId in project platformlayer by platformlayer.

the class PlatformLayerCommandRunnerBase method pathToKey.

public static PlatformLayerKey pathToKey(PlatformLayerClient client, String path) throws PlatformLayerClientException {
    String serviceType;
    String itemType;
    if (path.contains("/")) {
        String[] components = path.split("/");
        if (components.length != 2) {
            throw new IllegalArgumentException("Cannot parse path: " + path);
        }
        serviceType = components[0];
        itemType = components[1];
    } else {
        itemType = path;
        serviceType = getServiceTypeFromItemType(client, itemType);
    }
    FederationKey host = null;
    ProjectId project = client.getProject();
    return new PlatformLayerKey(host, project, new ServiceType(serviceType), new ItemType(itemType), null);
}
Also used : ServiceType(org.platformlayer.ids.ServiceType) ItemType(org.platformlayer.ids.ItemType) ProjectId(org.platformlayer.ids.ProjectId) PlatformLayerKey(org.platformlayer.core.model.PlatformLayerKey) FederationKey(org.platformlayer.ids.FederationKey)

Example 9 with ProjectId

use of org.platformlayer.ids.ProjectId in project platformlayer by platformlayer.

the class JdbcJobRepository method recordJobEnd.

@Override
@JdbcTransaction
public void recordJobEnd(PlatformLayerKey jobKey, String executionId, Date endedAt, JobState state, String logCookie) throws RepositoryException {
    DbHelper db = new DbHelper();
    try {
        ProjectId project = jobKey.getProject();
        String jobId = jobKey.getItemIdString();
        int projectId = db.mapToValue(project);
        int updateCount = db.queries.updateExecution(logCookie, endedAt, state, projectId, jobId, executionId);
        if (updateCount != 1) {
            throw new RepositoryException("Unexpected number of rows updated");
        }
        updateCount = db.queries.updateJob(endedAt, state, executionId, projectId, jobId);
        if (updateCount != 1) {
            throw new RepositoryException("Unexpected number of rows updated");
        }
    } catch (SQLException e) {
        throw new RepositoryException("Error updating job execution", e);
    } finally {
        db.close();
    }
}
Also used : SQLException(java.sql.SQLException) ProjectId(org.platformlayer.ids.ProjectId) RepositoryException(org.platformlayer.RepositoryException) JdbcTransaction(com.fathomdb.jdbc.JdbcTransaction)

Example 10 with ProjectId

use of org.platformlayer.ids.ProjectId in project platformlayer by platformlayer.

the class JdbcJobRepository method findJob.

@Override
@JdbcTransaction
public JobData findJob(PlatformLayerKey jobKey) throws RepositoryException {
    DbHelper db = new DbHelper();
    try {
        ProjectId projectId = jobKey.getProject();
        String jobId = jobKey.getItemIdString();
        JobEntity execution = db.queries.findJob(db.mapToValue(projectId), jobId);
        if (execution == null) {
            return null;
        }
        return mapFromEntity(execution, jobKey);
    } catch (SQLException e) {
        throw new RepositoryException("Error listing job executions", e);
    } finally {
        db.close();
    }
}
Also used : SQLException(java.sql.SQLException) ProjectId(org.platformlayer.ids.ProjectId) RepositoryException(org.platformlayer.RepositoryException) JdbcTransaction(com.fathomdb.jdbc.JdbcTransaction)

Aggregations

ProjectId (org.platformlayer.ids.ProjectId)33 RepositoryException (org.platformlayer.RepositoryException)14 FederationKey (org.platformlayer.ids.FederationKey)11 PlatformLayerKey (org.platformlayer.core.model.PlatformLayerKey)10 ManagedItemId (org.platformlayer.ids.ManagedItemId)9 OpsException (org.platformlayer.ops.OpsException)8 JdbcTransaction (com.fathomdb.jdbc.JdbcTransaction)7 SQLException (java.sql.SQLException)7 ServiceType (org.platformlayer.ids.ServiceType)7 ItemType (org.platformlayer.ids.ItemType)6 ProjectAuthorization (org.platformlayer.model.ProjectAuthorization)4 PlatformLayerClient (org.platformlayer.PlatformLayerClient)3 ItemBase (org.platformlayer.core.model.ItemBase)3 JobData (org.platformlayer.jobs.model.JobData)3 TypedPlatformLayerClient (org.platformlayer.TypedPlatformLayerClient)2 Authenticator (org.platformlayer.auth.Authenticator)2 DirectAuthenticator (org.platformlayer.auth.DirectAuthenticator)2 FederatedPlatformLayerClient (org.platformlayer.federation.FederatedPlatformLayerClient)2 PlatformLayerConnectionConfiguration (org.platformlayer.federation.model.PlatformLayerConnectionConfiguration)2 DirectPlatformLayerClient (org.platformlayer.ops.DirectPlatformLayerClient)2