use of org.eclipse.che.account.shared.model.Account in project che-server by eclipse-che.
the class WorkspaceResourceUsageTracker method getUsedResource.
@Override
public Optional<Resource> getUsedResource(String accountId) throws NotFoundException, ServerException {
final Account account = accountManager.getById(accountId);
final List<WorkspaceImpl> accountWorkspaces = Pages.stream((maxItems, skipCount) -> workspaceManagerProvider.get().getByNamespace(account.getName(), false, maxItems, skipCount)).collect(Collectors.toList());
if (!accountWorkspaces.isEmpty()) {
return Optional.of(new ResourceImpl(WorkspaceResourceType.ID, accountWorkspaces.size(), WorkspaceResourceType.UNIT));
} else {
return Optional.empty();
}
}
use of org.eclipse.che.account.shared.model.Account in project che-server by eclipse-che.
the class SuborganizationResourcesProvider method getResources.
@Override
public List<ProvidedResources> getResources(String accountId) throws NotFoundException, ServerException {
final Account account = accountManager.getById(accountId);
String parent;
if (!OrganizationImpl.ORGANIZATIONAL_ACCOUNT.equals(account.getType()) || (parent = organizationManager.getById(accountId).getParent()) == null) {
return emptyList();
}
// given account is suborganization's account and can have resources provided by parent
List<? extends Resource> parentTotalResources = resourceManagerProvider.get().getTotalResources(parent);
if (!parentTotalResources.isEmpty()) {
try {
List<? extends Resource> resourcesCaps = distributorProvider.get().getResourcesCaps(accountId);
return singletonList(new ProvidedResourcesImpl(PARENT_RESOURCES_PROVIDER, null, accountId, -1L, -1L, cap(parentTotalResources, resourcesCaps)));
} catch (ConflictException e) {
throw new ServerException(e.getLocalizedMessage());
}
}
return emptyList();
}
use of org.eclipse.che.account.shared.model.Account in project che-server by eclipse-che.
the class MultiUserWorkspaceActivityManager method getIdleTimeout.
@Override
protected long getIdleTimeout(String wsId) {
List<? extends Resource> availableResources;
try {
WorkspaceImpl workspace = workspaceManager.getWorkspace(wsId);
Account account = accountManager.getByName(workspace.getNamespace());
availableResources = resourceManager.getAvailableResources(account.getId());
} catch (NotFoundException | ServerException e) {
LOG.error(e.getLocalizedMessage(), e);
return defaultTimeout;
}
Optional<? extends Resource> timeoutOpt = availableResources.stream().filter(resource -> TimeoutResourceType.ID.equals(resource.getType())).findAny();
if (timeoutOpt.isPresent()) {
return timeoutOpt.get().getAmount() * 60 * 1000;
} else {
return defaultTimeout;
}
}
use of org.eclipse.che.account.shared.model.Account in project che-server by eclipse-che.
the class WorkspacePermissionsFilter method checkAccountPermissions.
void checkAccountPermissions(String accountName, AccountOperation operation) throws ForbiddenException, NotFoundException, ServerException {
if (accountName == null) {
// default namespace will be used
return;
}
final Account account = accountManager.getByName(accountName);
AccountPermissionsChecker accountPermissionsChecker = accountTypeToPermissionsChecker.get(account.getType());
if (accountPermissionsChecker == null) {
throw new ForbiddenException("User is not authorized to use specified namespace");
}
accountPermissionsChecker.checkPermissions(account.getId(), operation);
}
use of org.eclipse.che.account.shared.model.Account in project devspaces-images by redhat-developer.
the class ResourceManager method getAvailableResources.
/**
* Returns list of resources which are available for usage by given account.
*
* @param accountId id of account
* @return list of resources which are available for usage by given account
* @throws NotFoundException when account with specified id was not found
* @throws ServerException when some exception occurred while resources fetching
*/
public List<? extends Resource> getAvailableResources(String accountId) throws NotFoundException, ServerException {
final Account account = accountManager.getById(accountId);
final AvailableResourcesProvider availableResourcesProvider = accountTypeToAvailableResourcesProvider.get(account.getType());
if (availableResourcesProvider == null) {
return defaultAvailableResourcesProvider.getAvailableResources(accountId);
}
return availableResourcesProvider.getAvailableResources(accountId);
}
Aggregations