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;
}
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);
}
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);
}
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();
}
}
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();
}
}
Aggregations