use of org.craftercms.studio.api.v1.exception.SiteNotFoundException in project studio by craftercms.
the class ConfigurationServiceImpl method generateAuditLog.
private void generateAuditLog(String siteId, String path, String user) throws SiteNotFoundException {
SiteFeed siteFeed = siteService.getSite(siteId);
AuditLog auditLog = auditServiceInternal.createAuditLogEntry();
auditLog.setOperation(OPERATION_UPDATE);
auditLog.setSiteId(siteFeed.getId());
auditLog.setActorId(user);
auditLog.setPrimaryTargetId(siteId + ":" + path);
auditLog.setPrimaryTargetType(TARGET_TYPE_CONTENT_ITEM);
auditLog.setPrimaryTargetValue(path);
auditLog.setPrimaryTargetSubtype(CONTENT_TYPE_CONFIGURATION);
auditServiceInternal.insertAuditLog(auditLog);
}
use of org.craftercms.studio.api.v1.exception.SiteNotFoundException in project studio by craftercms.
the class PublishServiceImpl method createAuditLogEntry.
private void createAuditLogEntry(String siteId, List<AuditLogParameter> auditLogParameters) throws SiteNotFoundException {
SiteFeed siteFeed = siteService.getSite(siteId);
AuditLog auditLog = auditServiceInternal.createAuditLogEntry();
auditLog.setOperation(OPERATION_CANCEL_PUBLISHING_PACKAGE);
auditLog.setActorId(securityService.getCurrentUser());
auditLog.setSiteId(siteFeed.getId());
auditLog.setPrimaryTargetId(siteId);
auditLog.setPrimaryTargetType(TARGET_TYPE_SITE);
auditLog.setPrimaryTargetValue(siteId);
auditLog.setParameters(auditLogParameters);
auditServiceInternal.insertAuditLog(auditLog);
}
use of org.craftercms.studio.api.v1.exception.SiteNotFoundException in project studio by craftercms.
the class ClusterManagementServiceImpl method removeMembers.
@Override
@HasPermission(type = DefaultPermission.class, action = "delete_cluster")
public boolean removeMembers(List<Long> memberIds) throws SiteNotFoundException {
List<ClusterMember> members = getAllMemebers();
boolean toRet = clusterManagementServiceInternal.removeMembers(memberIds);
if (toRet) {
SiteFeed siteFeed = siteService.getSite(studioConfiguration.getProperty(CONFIGURATION_GLOBAL_SYSTEM_SITE));
AuditLog auditLog = auditServiceInternal.createAuditLogEntry();
auditLog.setSiteId(siteFeed.getId());
auditLog.setOperation(OPERATION_REMOVE_CLUSTER_NODE);
auditLog.setActorId(securityService.getCurrentUser());
auditLog.setPrimaryTargetId(siteFeed.getSiteId());
auditLog.setPrimaryTargetType(TARGET_TYPE_CLUSTER_NODE);
auditLog.setPrimaryTargetValue(siteFeed.getName());
List<AuditLogParameter> paramters = new ArrayList<AuditLogParameter>();
for (ClusterMember m : members) {
AuditLogParameter paramter = new AuditLogParameter();
paramter.setTargetId(Long.toString(m.getId()));
paramter.setTargetType(TARGET_TYPE_CLUSTER_NODE);
paramter.setTargetValue(m.getLocalAddress());
paramters.add(paramter);
}
auditLog.setParameters(paramters);
auditServiceInternal.insertAuditLog(auditLog);
}
return toRet;
}
use of org.craftercms.studio.api.v1.exception.SiteNotFoundException in project studio by craftercms.
the class StudioPublisherTask method deploy.
private void deploy(String site, String environment, List<DeploymentItemTO> items, String author, String comment) throws DeploymentException, SiteNotFoundException {
logger.debug("Deploying " + items.size() + " item(s)");
SiteFeed siteFeed = siteService.getSite(site);
if (servicesConfig.isStagingEnvironmentEnabled(site)) {
String liveEnvironment = servicesConfig.getLiveEnvironment(site);
if (StringUtils.equals(liveEnvironment, environment)) {
String stagingEnvironment = servicesConfig.getStagingEnvironment(site);
contentRepository.publish(site, siteFeed.getSandboxBranch(), items, stagingEnvironment, author, comment);
}
}
contentRepository.publish(site, siteFeed.getSandboxBranch(), items, environment, author, comment);
}
use of org.craftercms.studio.api.v1.exception.SiteNotFoundException in project studio by craftercms.
the class StudioClusterPublishedRepoSyncTask method executeInternal.
@Override
protected void executeInternal(String siteId) {
// Log start time
long startTime = System.currentTimeMillis();
logger.debug("Worker starts syncing cluster node published for site " + siteId);
try {
HierarchicalConfiguration<ImmutableNode> registrationData = studioClusterUtils.getClusterConfiguration();
if (registrationData != null && !registrationData.isEmpty()) {
String localAddress = studioClusterUtils.getClusterNodeLocalAddress();
ClusterMember localNode = clusterDao.getMemberByLocalAddress(localAddress);
List<ClusterMember> clusterNodes = studioClusterUtils.getClusterNodes(localAddress);
SiteFeed siteFeed = siteService.getSite(siteId);
List<ClusterSiteRecord> clusterSiteRecords = clusterDao.getSiteStateAcrossCluster(siteId);
Optional<ClusterSiteRecord> localNodeRecord = clusterSiteRecords.stream().filter(x -> x.getClusterNodeId() == localNode.getId() && StringUtils.equals(x.getState(), STATE_CREATED)).findFirst();
if (!localNodeRecord.isPresent()) {
return;
}
long nodesCreated = clusterSiteRecords.stream().filter(x -> StringUtils.equals(x.getState(), STATE_CREATED)).count();
if (nodesCreated < 1) {
return;
}
// Check if site exists
logger.debug("Check if site " + siteId + " exists in local repository");
boolean success = true;
int publishedReposCreated = clusterSiteRecords.stream().mapToInt(ClusterSiteRecord::getPublishedRepoCreated).sum();
if (publishedReposCreated > 0 || siteFeed.getPublishedRepoCreated() > 0) {
boolean siteCheck = checkIfSiteRepoExists(siteId);
if (!siteCheck) {
// Site doesn't exist locally, create it
success = createSite(localNode.getId(), siteFeed.getId(), siteId, siteFeed.getSandboxBranch());
} else {
clusterDao.setPublishedRepoCreated(localNode.getId(), siteFeed.getId());
}
} else {
success = false;
}
if (success) {
try {
// Add the remote repositories to the local repository to sync from if not added already
logger.debug("Add remotes for site " + siteId);
addRemotes(siteId, clusterNodes);
} catch (InvalidRemoteUrlException | ServiceLayerException | CryptoException e) {
logger.error("Error while adding remotes on cluster node for site " + siteId);
}
try {
// Sync with remote and update the local cache with the last commit ID to speed things up
logger.debug("Update content for site " + siteId);
updateContent(siteFeed.getId(), siteId, clusterNodes, clusterSiteRecords);
} catch (IOException | CryptoException | ServiceLayerException e) {
logger.error("Error while updating content for site " + siteId + " on cluster node.", e);
}
}
}
} catch (SiteNotFoundException e) {
logger.error("Error while executing Cluster Node Sync Published for site " + siteId, e);
}
// Compute execution duration and log it
long duration = System.currentTimeMillis() - startTime;
logger.debug("Worker finished syncing cluster node for site " + siteId);
logger.debug("Worker performed cluster node sync for site " + siteId + " in " + duration + "ms");
logger.debug("Finished Cluster Node Sync task for site " + siteId);
}
Aggregations