@Override public Collection<RemoteCollaboration> getNeighbours() { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return Collections.emptyList(); XSPReply reply = securityService.checkAction(ACTION_GET_NEIGHBOURS); if (!reply.isSuccess()) return Collections.emptyList(); return Collections.emptyList(); }
@Override public Result sparql(String query) { XOWLDatabase connection = getRemote(); if (connection == null) return new ResultFailure("The connection to the remote host is not configured"); XSPReply reply = connection.sparql(query, null, null); if (!reply.isSuccess()) return new ResultFailure(reply.getMessage()); return ((XSPReplyResult<Result>) reply).getData(); }
@Override public Collection<RemoteCollaboration> getNeighbours() { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return Collections.emptyList(); XSPReply reply = securityService.checkAction(ACTION_GET_NEIGHBOURS); if (!reply.isSuccess()) return Collections.emptyList(); return Collections.unmodifiableCollection((Collection) collaborations.values()); }
@Override public Collection<Addon> getAddons() { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return Collections.emptyList(); XSPReply reply = securityService.checkAction(ACTION_GET_ADDONS); if (!reply.isSuccess()) return Collections.emptyList(); return Collections.unmodifiableCollection(addons); }
@Override public List<Job> getQueue() { List<Job> result = new ArrayList<>(); SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return result; for (Runnable runnable : executorPool.getQueue()) { Job job = (Job) runnable; if (securityService.checkAction(ACTION_GET_JOBS, job).isSuccess()) result.add(job); } return Collections.unmodifiableList(result); }
@Override public Collection<Bundle> getPlatformBundles() { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return Collections.emptyList(); XSPReply reply = securityService.checkAction(ACTION_GET_BUNDLES); if (!reply.isSuccess()) return Collections.emptyList(); if (bundles.isEmpty()) { Bundle[] bundles = FrameworkUtil.getBundle(KernelPlatformManagementService.class).getBundleContext().getBundles(); for (int i = 0; i != bundles.length; i++) { this.bundles.add(bundles[i]); } } return Collections.unmodifiableCollection(bundles); }
@Override public RemoteCollaboration getNeighbour(String collaborationId) { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return null; XSPReply reply = securityService.checkAction(ACTION_GET_NEIGHBOURS); if (!reply.isSuccess()) return null; return collaborations.get(collaborationId); }
@Override public List<Job> getRunning() { List<Job> result = new ArrayList<>(); SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return result; synchronized (running) { for (int i = 0; i != running.length; i++) { if (running[i] != null && (securityService.checkAction(ACTION_GET_JOBS, running[i]).isSuccess())) result.add(running[i]); } } return Collections.unmodifiableList(result); }
@Override public boolean checkHasRole(String userId, String roleId) { Map<String, Node> parameters = new HashMap<>(); parameters.put("user", nodes.getIRINode(USERS + userId)); parameters.put("role", nodes.getIRINode(ROLES + roleId)); XSPReply reply = database.executeStoredProcedure(procedures.get("procedure-check-role"), new BaseStoredProcedureContext(Collections.<String>emptyList(), Collections.<String>emptyList(), parameters)); if (!reply.isSuccess()) return false; Result result = ((XSPReplyResult<Result>) reply).getData(); return reply.isSuccess() && ((ResultYesNo) result).getValue(); }
@Override public XSPReply delete(String identifier) { XSPReply result = storeLive.delete(identifier); if (!result.isSuccess()) return result; return storeLongTerm.delete(identifier); }
@Override public XSPReply authenticate(PlatformUser user) { PlatformUser previous = CONTEXT.get(); if (previous == null) { // not authenticated yet CONTEXT.set(user); return XSPReplySuccess.instance(); } XSPReply reply = checkAction(ACTION_CHANGE_ID); if (!reply.isSuccess()) return reply; CONTEXT.set(user); return XSPReplySuccess.instance(); }
@Override public XSPReply put(SecuredAction action, SecuredActionPolicy policy) { XSPReply reply = super.put(action, policy); if (!reply.isSuccess()) return reply; return writeBack(); } }
@Override public Product getPlatformProduct() { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return null; XSPReply reply = securityService.checkAction(ACTION_GET_PRODUCT); if (!reply.isSuccess()) return null; return product; }
@Override public CollaborationStatus getNeighbourStatus(String collaborationId) { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return CollaborationStatus.Invalid; XSPReply reply = securityService.checkAction(ACTION_GET_NEIGHBOURS); if (!reply.isSuccess()) return CollaborationStatus.Invalid; return CollaborationStatus.Invalid; }
@Override public PlatformUser authenticate(String login, String password) { XSPReply reply = server.login(login, password); if (!reply.isSuccess()) return null; return getUser(login); }
@Override public RemoteCollaboration getNeighbour(String collaborationId) { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return null; XSPReply reply = securityService.checkAction(ACTION_GET_NEIGHBOURS); if (!reply.isSuccess()) return null; return null; }
@Override public CollaborationStatus getNeighbourStatus(String collaborationId) { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return CollaborationStatus.Invalid; XSPReply reply = securityService.checkAction(ACTION_GET_NEIGHBOURS); if (!reply.isSuccess()) return CollaborationStatus.Invalid; return CollaborationStatus.Invalid; }
@Override public Collection<Artifact> getOutputsFor(String specificationId) { ArtifactStorageService storageService = Register.getComponent(ArtifactStorageService.class); if (storageService == null) return Collections.emptyList(); Collection<Artifact> artifacts = new ArrayList<>(); for (String artifactId : manifest.getArtifactsForOutput(specificationId)) { XSPReply reply = storageService.retrieve(artifactId); if (reply.isSuccess()) artifacts.add(((XSPReplyResult<Artifact>) reply).getData()); } return artifacts; }
@Override public Collection<Artifact> getInputsFor(String specificationId) { ArtifactStorageService storageService = Register.getComponent(ArtifactStorageService.class); if (storageService == null) return Collections.emptyList(); Collection<Artifact> artifacts = new ArrayList<>(); for (String artifactId : manifest.getArtifactsForInput(specificationId)) { XSPReply reply = storageService.retrieve(artifactId); if (reply.isSuccess()) artifacts.add(((XSPReplyResult<Artifact>) reply).getData()); } return artifacts; }
@Override public CollaborationStatus getNeighbourStatus(String collaborationId) { SecurityService securityService = Register.getComponent(SecurityService.class); if (securityService == null) return CollaborationStatus.Invalid; XSPReply reply = securityService.checkAction(ACTION_GET_NEIGHBOURS); if (!reply.isSuccess()) return CollaborationStatus.Invalid; RemoteCollaborationManaged neighbour = collaborations.get(collaborationId); if (neighbour == null) return CollaborationStatus.Invalid; return neighbour.getStatus(); }