private boolean waitForConfigurationUpdateToFinish(Subject subject, ResourceConfigurationUpdateCriteria criteria, int maxAttempts) { if (maxAttempts == 0) return false; PageList<ResourceConfigurationUpdate> configUpdates = configurationManager .findResourceConfigurationUpdatesByCriteria(subject, criteria); switch (configUpdates.get(0).getStatus()) { case INPROGRESS: // try it again in 2.5 sec break; case FAILURE: return false; default: return true; } try { Thread.sleep(2500L); } catch (InterruptedException e) { return false; } return waitForConfigurationUpdateToFinish(subject, criteria, maxAttempts - 1); }
@Override public PageList<DriftDefinitionComposite> findDriftDefinitionCompositesByCriteria(Subject subject, DriftDefinitionCriteria criteria) { PageList<DriftDefinition> defs = findDriftDefinitionsByCriteria(subject, criteria); PageList<DriftDefinitionComposite> result = new PageList<DriftDefinitionComposite>(defs.getPageControl()); List<DriftDefinitionComposite> composites = new ArrayList<DriftDefinitionComposite>(defs.size()); GenericDriftChangeSetCriteria csCriteria = new GenericDriftChangeSetCriteria(); for (DriftDefinition def : defs) { DriftDefinitionComposite composite = new DriftDefinitionComposite(def, null); csCriteria.addFilterDriftDefinitionId(def.getId()); csCriteria.addSortVersion(PageOrdering.DESC); csCriteria.setPageControl(PageControl.getSingleRowInstance()); PageList<? extends DriftChangeSet<?>> changeSets = findDriftChangeSetsByCriteria(subject, csCriteria); if (!changeSets.isEmpty()) { composite.setMostRecentChangeset(changeSets.get(0)); } composites.add(composite); } result.addAll(composites); return result; }
bundle = createBundle(subject, bundleName, bundleDescription, bundleTypeId, bundleGroupIds); } else { bundle = bundles.get(0);
@GET @Path("{id}") @ApiOperation("Gets info about a single plugin") public Response getPluginInfo( @ApiParam("The id of the plugin") @PathParam("id") int id, @Context HttpHeaders headers) { PluginCriteria crit = new PluginCriteria(); crit.addFilterId(id); PageList<Plugin> plugins = pluginManager.findPluginsByCriteria(caller, crit); if (plugins.isEmpty()) { throw new StuffNotFoundException("Plugin"); } return withMediaType(Response.ok(PluginRest.from(plugins.get(0))), headers).build(); }
/** * @see org.rhq.enterprise.server.auth.SubjectManagerRemote#getSubjectByName(String) */ public Subject getSubjectByName(String username) { //TODO: this method needs to be modified to require a Subject and probably MANAGE_SECURITY // permissions to defend against unrestricted access to subjects. SubjectCriteria c = new SubjectCriteria(); c.addFilterName(username); //to return the right user and to be deterministic the criteria should be strict. c.setStrict(true); PageList<Subject> result = findSubjectsByCriteria(getOverlord(), c); return result.isEmpty() ? null : result.get(0); }
public ResourceOperationHistory waitForScheduledOperationToComplete(ResourceOperationSchedule schedule, long intervalDuration, int maxIntervals) throws InterruptedException { if (remoteClient == null) { throw new IllegalStateException("The waitForScheduledOperationToComplete() method requires a connection to the RHQ server."); } ResourceOperationHistoryCriteria criteria = new ResourceOperationHistoryCriteria(); criteria.addFilterJobId(schedule.getJobId()); criteria.addFilterResourceIds(schedule.getResource().getId()); criteria.addSortStartTime(PageOrdering.DESC); criteria.setPaging(0, 1); criteria.fetchOperationDefinition(true); criteria.fetchParameters(true); criteria.fetchResults(true); ResourceOperationHistory history = null; int i = 0; while(history == null && i < maxIntervals) { Thread.sleep(intervalDuration); PageList<ResourceOperationHistory> histories = remoteClient.getProxy(OperationManagerRemote.class) .findResourceOperationHistoriesByCriteria(remoteClient.getSubject(), criteria); if (histories.size() > 0 && histories.get(0).getStatus() != OperationRequestStatus.INPROGRESS) { history = histories.get(0); } ++i; } return history; }
/** * Return the object corresponding to the current {@link #getRowIndex()}. If the PageList object currently cached * doesn't include that index then {@link #getDataPage()} is called to retrieve the appropriate page. * * @return the row data that corresponds to {@link #getRowIndex()} * * @throws IllegalArgumentException if the {@link #getRowIndex()} is outside the range of the dataset size */ @Override public Object getRowData() { getCurrentPage(); if (!isRowAvailable()) { /* * March 11, 2009 - the only currently known way this can fail is if the countQuery returned 0 but the * actual data query returned nothing; generally, this is a programming error, but it's possible that * the facelet changed (new columns shown, other columns removed) or the query itself changed (and perhaps * the sortable columns are different); in either case, let's be paranoid and try it all over again with * a default PageControl object. */ // Reset back to the default page control, which will also persist the default page control. this.pagedDataBean.resetPageControl(); getCurrentPage(); // Tell the framework to start back at the first row in the page. this.currentRowIndex = 0; } int pageIndex = this.currentRowIndex - getPageControl().getStartRow(); return this.pageList.get(pageIndex); }
private DriftChangeSet<?> loadPreviousChangeSet(Subject subject, Drift<?, ?> drift) { GenericDriftChangeSetCriteria criteria = new GenericDriftChangeSetCriteria(); criteria.addFilterResourceId(drift.getChangeSet().getResourceId()); criteria.addFilterDriftDefinitionId(drift.getChangeSet().getDriftDefinitionId()); criteria.addFilterVersion(Integer.toString(drift.getChangeSet().getVersion() - 1)); criteria.setPageControl(PageControl.getSingleRowInstance()); PageList<? extends DriftChangeSet<?>> results = findDriftChangeSetsByCriteria(subject, criteria); // TODO handle empty results return results.get(0); }
throw new MeasurementException("Could not fine MeasurementSchedule with the id[" + scheduleId + "]"); MeasurementSchedule schedule = schedules.get(0);
@Override public void updateCompliance(int resourceId, String driftDefName, DriftComplianceStatus complianceStatus) { DriftDefinitionCriteria criteria = new DriftDefinitionCriteria(); criteria.setStrict(true); criteria.addFilterResourceIds(resourceId); criteria.addFilterName(driftDefName); DriftManagerLocal driftMgr = getDriftManager(); SubjectManagerLocal subjectMgr = getSubjectManager(); Subject overlord = subjectMgr.getOverlord(); PageList<DriftDefinition> definitions = driftMgr.findDriftDefinitionsByCriteria(overlord, criteria); if (definitions.isEmpty()) { log.warn("Cannot update compliance for [resourceId: " + resourceId + ", driftDefinitionName: " + driftDefName + "]. Could not find drift definition."); return; } DriftDefinition definition = definitions.get(0); definition.setComplianceStatus(complianceStatus); driftMgr.updateDriftDefinition(overlord, definition); } }
for (BundleFile bundleFile : bundleFiles) { pvc.addFilterId(bundleFile.getPackageVersion().getId()); packageVersion = cm.findPackageVersionsByCriteria(subject, pvc).get(0); HibernateDetachUtility.nullOutUninitializedFields(packageVersion, SerializationType.SERIALIZATION); packageVersions.add(packageVersion);
@Override public InstalledPackage getBackingPackageForResource(Subject subject, int resourceId) { InstalledPackage result = null; // check if the resource is content backed if not, return null Resource res = resourceManager.getResourceById(subject, resourceId); ResourceType type = res.getResourceType(); if (!ResourceCreationDataType.CONTENT.equals(type.getCreationDataType())) { return null; } InstalledPackageCriteria criteria = new InstalledPackageCriteria(); criteria.addFilterResourceId(resourceId); PageList<InstalledPackage> ips = findInstalledPackagesByCriteria(subject, criteria); // should not be more than 1 if ((null != ips) && (ips.size() > 0)) { int mostRecentPackageIndex = 0; if (ips.size() > 1) { for (int index = 1; index < ips.size(); index++) { if (ips.get(index).getInstallationDate() > ips.get(mostRecentPackageIndex).getInstallationDate()) { mostRecentPackageIndex = index; } } } result = ips.get(mostRecentPackageIndex); // fetch these result.getPackageVersion().getGeneralPackage().getId(); result.getPackageVersion().getGeneralPackage().getPackageType().getId(); result.getPackageVersion().getArchitecture().getId(); } return result; }
BundleDeployment bundleDeployment = deployments.get(0); SchedulerLocal scheduler = LookupUtil.getSchedulerBean(); JobDetail jobDetail = context.getJobDetail();
@Deprecated @Override @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) public org.rhq.enterprise.server.measurement.MeasurementAggregate getAggregate(Subject subject, int scheduleId, long startTime, long endTime) { MeasurementScheduleCriteria criteria = new MeasurementScheduleCriteria(); criteria.addFilterId(scheduleId); criteria.fetchResource(true); PageList<MeasurementSchedule> schedules = measurementScheduleManager.findSchedulesByCriteria( subjectManager.getOverlord(), criteria); if (schedules.isEmpty()) { throw new MeasurementException("Could not fine MeasurementSchedule with the id[" + scheduleId + "]"); } MeasurementSchedule schedule = schedules.get(0); if (authorizationManager.canViewResource(subject, schedule.getResource().getId()) == false) { throw new PermissionException("User[" + subject.getName() + "] does not have permission to view schedule[id=" + scheduleId + "]"); } if (schedule.getDefinition().getDataType() != DataType.MEASUREMENT) { throw new IllegalArgumentException(schedule + " is not about numerical values. Can't compute aggregates"); } if (startTime > endTime) { throw new IllegalArgumentException("Start date " + startTime + " is not before " + endTime); } MetricsServer metricsServer = storageClientManager.getMetricsServer(); AggregateNumericMetric summary = metricsServer.getSummaryAggregate(scheduleId, startTime, endTime); return new org.rhq.enterprise.server.measurement.MeasurementAggregate(summary.getMin(), summary.getAvg(), summary.getMax()); }
private DriftChangeSet<? extends Drift<?, ?>> loadInitialChangeSet(Subject subject, DriftSnapshotRequest request) { DriftChangeSetCriteria criteria = new GenericDriftChangeSetCriteria(); criteria.addFilterCategory(COVERAGE); criteria.addFilterVersion("0"); // One of the next two filters will be null criteria.addFilterDriftDefinitionId(request.getDriftDefinitionId()); criteria.addFilterId(request.getTemplateChangeSetId()); criteria.fetchDrifts(true); criteria.setPageControl(PageControl.getUnlimitedInstance());//disable paging as the code assumes all the results will be returned. PageList<? extends DriftChangeSet<?>> changeSets = findDriftChangeSetsByCriteria(subject, criteria); if (changeSets.isEmpty()) { return null; } return changeSets.get(0); }
@Override @TransactionAttribute(REQUIRES_NEW) public DriftChangeSetSummary saveChangeSet(Subject subject, int resourceId, File changeSetZip) throws Exception { authorizeOrFail(subject, resourceId, "Can not update/create drifts"); DriftServerPluginFacet driftServerPlugin = getServerPlugin(); DriftChangeSetSummary summary = driftServerPlugin.saveChangeSet(subject, resourceId, changeSetZip); if (DriftHandlingMode.plannedChanges != summary.getDriftHandlingMode()) { notifyAlertConditionCacheManager("saveChangeSet", summary); } DriftDefinitionCriteria criteria = new DriftDefinitionCriteria(); criteria.setStrict(true); criteria.addFilterName(summary.getDriftDefinitionName()); criteria.addFilterResourceIds(resourceId); criteria.clearPaging();//disable paging as the code assumes all the results will be returned. PageList<DriftDefinition> definitions = findDriftDefinitionsByCriteria(subject, criteria); if (definitions.isEmpty()) { log.warn("Could not find drift definition for [resourceId: " + resourceId + ", driftDefinitionName: " + summary.getDriftDefinitionName() + "]. Will not be able check compliance for thiis drift definition"); } else { updateCompliance(subject, definitions.get(0), summary); } return summary; }
public PageList<Subject> findSubjectsByCriteria(Subject subject, SubjectCriteria criteria) { CriteriaQueryGenerator generator = new CriteriaQueryGenerator(subject, criteria); CriteriaQueryRunner<Subject> queryRunner = new CriteriaQueryRunner<Subject>(criteria, generator, entityManager); PageList<Subject> subjects = queryRunner.execute(); boolean canViewUsers = (authorizationManager.isSystemSuperuser(subject) || authorizationManager.hasGlobalPermission(subject, Permission.MANAGE_SECURITY) || authorizationManager .hasGlobalPermission(subject, Permission.VIEW_USERS)); if (!canViewUsers) { if (subjects.contains(subject)) { Subject attachedSubject = subjects.get(subjects.indexOf(subject)); subjects.clear(); subjects.add(attachedSubject); } else { subjects.clear(); } subjects.setTotalSize(subjects.size()); } return subjects; }
DriftDefinitionTemplate template = templates.get(0);