use of org.platformlayer.RepositoryException in project platformlayer by platformlayer.
the class OpsContextBuilder method buildOpsContext.
public OpsContext buildOpsContext(ActiveJobExecution activeJob) throws OpsException {
ServiceType serviceType = activeJob.getServiceType();
ProjectAuthorization projectAuthz = activeJob.getProjectAuthorization();
List<ProjectAuthorization> projects = Lists.newArrayList();
// .getProject();
ProjectAuthorization runAsProject = projectAuthz;
projects.add(runAsProject);
MultitenantConfiguration multitenant = opsSystem.getMultitenantConfiguration();
if (multitenant != null) {
ProjectAuthorization masterProject = multitenant.getMasterProject();
if (runAsProject.getName().equals(masterProject.getName())) {
// We're in the master project
multitenant = null;
} else {
runAsProject = masterProject;
projects.add(runAsProject);
}
}
TypedPlatformLayerClient defaultClient = buildClient(runAsProject);
FederationConfiguration federationMapConfig = FederatedPlatformLayerClient.buildFederationConfiguration(defaultClient);
FederationMap federationMap = new FederationMap(httpStrategy, mapper, federationMapConfig);
if (multitenant != null) {
// .getProject();
ProjectAuthorization localProject = projectAuthz;
TypedPlatformLayerClient localClient = buildClient(localProject);
FederationKey host = FederationKey.LOCAL;
ProjectId project = localClient.getProject();
FederationMapping mapKey = new FederationMapping(host, project);
federationMap.addMapping(mapKey, localClient);
for (PlatformLayerKey mappedService : multitenant.getMappedItems()) {
FederationMap.Rule rule = new FederationMap.Rule();
rule.mappedItems = mappedService;
rule.targetKey = mapKey;
federationMap.addRule(rule);
}
}
ProjectId runAsProjectId = new ProjectId(runAsProject.getName());
PlatformLayerClient platformLayerClient;
if (federationMap.isEmpty()) {
platformLayerClient = defaultClient;
} else {
federationMap.addDefault(defaultClient);
platformLayerClient = FederatedPlatformLayerClient.build(runAsProjectId, federationMap);
}
ServiceConfiguration serviceConfiguration = new ServiceConfiguration(runAsProjectId, serviceType);
ServiceAuthorization serviceAuthorization;
try {
serviceAuthorization = serviceAuthorizationService.findServiceAuthorization(serviceType, runAsProjectId);
// }
if (serviceAuthorization == null) {
serviceAuthorization = new ServiceAuthorization();
serviceAuthorization.serviceType = serviceConfiguration.getServiceType().getKey();
}
} catch (RepositoryException e) {
throw new OpsException("Error reading from repository", e);
}
// OpsConfig opsConfig = OpsConfig.build(serviceAuthorization);
// UserInfo userInfo = new SimpleUserInfo(auth, opsConfig);
OpsContext opsContext = new OpsContext(opsSystem, activeJob, serviceConfiguration, platformLayerClient, projects);
return opsContext;
}
use of org.platformlayer.RepositoryException in project platformlayer by platformlayer.
the class SchedulerImpl method putJob.
@Override
public void putJob(SchedulerRecord record) throws OpsException {
ensureStarted();
scheduleRecord(record, false);
try {
repository.put(record);
} catch (RepositoryException e) {
throw new OpsException("Error persisting record", e);
}
}
use of org.platformlayer.RepositoryException in project platformlayer by platformlayer.
the class OperationQueueBase method createExecution.
protected JobExecutionData createExecution(JobData jobData) throws OpsException {
Date startedAt = new Date();
String executionId;
try {
executionId = jobRepository.insertExecution(jobData.key, startedAt);
} catch (RepositoryException e) {
throw new OpsException("Error inserting job execution into repository", e);
}
JobExecutionData execution = new JobExecutionData();
execution.job = jobData;
execution.jobKey = jobData.getJobKey();
execution.startedAt = startedAt;
execution.executionId = executionId;
execution.state = JobState.PRESTART;
return execution;
}
use of org.platformlayer.RepositoryException in project platformlayer by platformlayer.
the class DirectPlatformLayerClient method findItem.
@Override
public <T> T findItem(PlatformLayerKey key) throws PlatformLayerClientException {
key = resolveKey(key);
boolean fetchTags = true;
ItemBase managedItem;
try {
managedItem = itemRepository.getManagedItem(key, fetchTags, getSecretProvider());
} catch (RepositoryException e) {
throw new PlatformLayerClientException("Error fetching item", e);
}
return (T) managedItem;
}
use of org.platformlayer.RepositoryException 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();
}
}
Aggregations