Examples of DriftDefinition


Examples of org.rhq.core.domain.drift.DriftDefinition

    }

    @Override
    public String copyChangeSet(Subject subject, String changeSetId, int driftDefId, int resourceId) {
        Resource resource = entityManager.find(Resource.class, resourceId);
        DriftDefinition driftDef = entityManager.find(DriftDefinition.class, driftDefId);
        JPADriftChangeSet srcChangeSet = entityManager.find(JPADriftChangeSet.class, Integer.parseInt(changeSetId));
        JPADriftChangeSet destChangeSet = new JPADriftChangeSet(resource, 0, COVERAGE, driftDef);
        destChangeSet.setDriftHandlingMode(DriftConfigurationDefinition.DriftHandlingMode.normal);
        destChangeSet.setInitialDriftSet(srcChangeSet.getInitialDriftSet());
View Full Code Here

Examples of org.rhq.core.domain.drift.DriftDefinition

                    ChangeSetReader reader = new ChangeSetReaderImpl(new BufferedReader(new InputStreamReader(stream)),
                        false);

                    // store the new change set info (not the actual blob)
                    DriftDefinition driftDef = findDriftDefinition(resource, reader.getHeaders());
                    if (driftDef == null) {
                        LOG.error("Unable to locate DriftDefinition for Resource [" + resource
                                + "]. Change set cannot be saved.");
                        return false;
                    }
                    // TODO: Commenting out the following line for now. We want to set the
                    // version to the value specified in the headers, but we may want to also
                    // validate it against the latest version we have in the database so that
                    // we can make sure that the agent is in sync with the server.
                    //
                    //int version = getChangeSetVersion(resource, config);
                    int version = reader.getHeaders().getVersion();

                    DriftChangeSetCategory category = reader.getHeaders().getType();
                    driftChangeSet = new JPADriftChangeSet(resource, version, category, driftDef);
                    entityManager.persist(driftChangeSet);

                    summary.setCategory(category);
                    summary.setResourceId(resourceId);
                    summary.setDriftDefinitionName(reader.getHeaders().getDriftDefinitionName());
                    summary.setDriftHandlingMode(driftDef.getDriftHandlingMode());
                    summary.setCreatedTime(driftChangeSet.getCtime());

                    if (version > 0) {
                        for (FileEntry entry : reader) {
                            boolean addToList = storeBinaryContent || !DriftUtil.isBinaryFile(entry.getFile());
View Full Code Here

Examples of org.rhq.core.domain.drift.DriftDefinition

        for (Iterator<DriftDefinitionTemplate> i = existingDriftTemplates.iterator(); i.hasNext();) {
            DriftDefinitionTemplate existingTemplate = i.next();

            String existingName = existingTemplate.getName();
            DriftDefinition existingDef = existingTemplate.getTemplateDefinition();
            Set<DriftDefinition> attachedDefs = existingTemplate.getDriftDefinitions();
            boolean noAttachedDefs = (null == attachedDefs || attachedDefs.isEmpty());
            boolean notPinned = !existingTemplate.isPinned();
            boolean stillDefined = false;

            // for later to determine if any existing templates are no longer defined in the plugin
            existingNames.add(existingName);

            for (DriftDefinitionTemplate newTemplate : newPluginDriftTemplates) {
                String newName = newTemplate.getName();

                // The new template existed previously. See if it has changed and if so, in what way:
                //
                // IF      the existingTemplate
                //         has no attached defs AND
                //         is not pinned
                // THEN    we can update it with impunity
                // ELSE IF the directories have not changed
                // THEN    we can update the base info fields only
                //    Note that in the latter case we update the template but we will not push the
                //    changes down to attached defs.  This is a little odd because the template and defs can
                //    get out of sync, but we don't want a plugin change to affect existing defs in case
                //    the user has made manual changes, or wants it the way it is.
                if (newName.equals(existingName)) {
                    stillDefined = true;

                    DriftDefinition newDef = newTemplate.getTemplateDefinition();
                    boolean noDirChanges = (0 == dirComp.compare(existingDef, newDef));

                    if ((noAttachedDefs && notPinned) || noDirChanges) {
                        existingTemplate.setTemplateDefinition(newDef);
View Full Code Here

Examples of org.rhq.core.domain.drift.DriftDefinition

            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);
    }
View Full Code Here

Examples of org.rhq.core.domain.drift.DriftDefinition

        for (DriftDefinition def : definitions) {
            if (def.isAttached()) {
                int resourceId = def.getResource().getId();
                driftMgr.deleteDriftDefinition(subject, forResource(resourceId), def.getName());

                DriftDefinition newDef = new DriftDefinition(def.getConfiguration().deepCopyWithoutProxies());
                newDef.setTemplate(template);
                newDef.setPinned(true);

                driftMgr.updateDriftDefinition(subject, forResource(resourceId), newDef);
            }
        }
    }
View Full Code Here

Examples of org.rhq.core.domain.drift.DriftDefinition

            throw new IllegalArgumentException("The template's base directory and filters cannot be modified");
        }

        template.setTemplateDefinition(updatedTemplate.getTemplateDefinition());
        template = entityMgr.merge(template);
        DriftDefinition templateDef = template.getTemplateDefinition();

        for (DriftDefinition resourceDef : template.getDriftDefinitions()) {
            DriftDefinition driftDef = entityMgr.find(DriftDefinition.class, resourceDef.getId());
            if (driftDef.isAttached()) {
                driftDef.setInterval(templateDef.getInterval());
                driftDef.setDriftHandlingMode(templateDef.getDriftHandlingMode());
                driftDef.setEnabled(templateDef.isEnabled());

                driftMgr.updateDriftDefinition(subject, forResource(driftDef.getResource().getId()), driftDef);
            }
        }
    }
View Full Code Here

Examples of org.rhq.core.domain.drift.DriftDefinition

        PageList<DriftDefinition> defs = findDriftDefinitionsByCriteria(overlord, driftDefCriteria);
        if (defs.isEmpty()) {
            log.warn("Cannot process repeat change set. No drift definition found for [resourceId: " + resourceId
                + ", driftDefinitionName: " + driftDefName + "]");
        }
        DriftDefinition driftDef = defs.get(0);

        DriftServerPluginFacet driftServerPlugin = getServerPlugin();
        GenericDriftChangeSetCriteria criteria = new GenericDriftChangeSetCriteria();
        criteria.addFilterResourceId(resourceId);
        criteria.addFilterDriftDefinitionId(driftDef.getId());
        criteria.addFilterVersion(Integer.toString(version));
        criteria.fetchDrifts(true);

        PageList<? extends DriftChangeSet<?>> changeSets = driftServerPlugin.findDriftChangeSetsByCriteria(overlord,
            criteria);
        if (changeSets.isEmpty()) {
            log.warn("Cannot process repeat change set. No change set found for [driftDefinitionId: "
                + driftDef.getId() + ", version: " + version + "]");
            return;
        }

        DriftChangeSet<?> changeSet = changeSets.get(0);
        DriftChangeSetSummary summary = new DriftChangeSetSummary();
        summary.setCategory(changeSet.getCategory());
        // TODO ctime should come from agent
        summary.setCreatedTime(System.currentTimeMillis());
        summary.setResourceId(changeSet.getResourceId());
        summary.setDriftDefinitionName(driftDef.getName());
        summary.setDriftHandlingMode(driftDef.getDriftHandlingMode());

        for (Drift<?, ?> drift : changeSet.getDrifts()) {
            summary.addDriftPathname(drift.getPath());
        }
View Full Code Here

Examples of org.rhq.core.domain.drift.DriftDefinition

            criteria.addFilterResourceIds(resourceId);
            criteria.setStrict(true);
            criteria.clearPaging();//disable paging as the code assumes all the results will be returned.

            PageList<DriftDefinition> results = driftManager.findDriftDefinitionsByCriteria(subject, criteria);
            DriftDefinition doomedDriftDef = null;
            if (results != null && results.size() == 1) {
                doomedDriftDef = results.get(0);
            }

            if (doomedDriftDef != null) {

                // TODO security check!

                // tell the agent first - we don't want the agent reporting on the drift def after we delete it
                boolean unscheduledOnAgent = false;
                try {
                    AgentClient agentClient = agentManager.getAgentClient(subjectManager.getOverlord(), resourceId);
                    DriftAgentService service = agentClient.getDriftAgentService();
                    service.unscheduleDriftDetection(resourceId, doomedDriftDef);
                    unscheduledOnAgent = true;
                } catch (Exception e) {
                    log.warn(" Unable to inform agent of unscheduled drift detection  [" + doomedDriftDef + "]", e);
                }

                // purge all data related to this drift definition
                try {
                    driftManager.purgeByDriftDefinitionName(subject, resourceId, doomedDriftDef.getName());
                } catch (Exception e) {
                    String warnMessage = "Failed to purge data for drift definition [" + driftDefName
                        + "] for resource [" + resourceId + "].";
                    if (unscheduledOnAgent) {
                        warnMessage += " The agent was told to stop detecting drift for that definition.";
                    }
                    log.warn(warnMessage, e);
                }

                // now purge the drift def itself
                driftManager.deleteResourceDriftDefinition(subject, resourceId, doomedDriftDef.getId());
            } else {
                throw new IllegalArgumentException("Resource does not have drift definition named [" + driftDefName
                    + "]");
            }
            break;
View Full Code Here

Examples of org.rhq.core.domain.drift.DriftDefinition

    }

    @Override
    public void deleteResourceDriftDefinition(Subject subject, int resourceId, int driftDefId) {
        authorizeOrFail(subject, resourceId, "Can not delete drifts");
        DriftDefinition doomed = entityManager.getReference(DriftDefinition.class, driftDefId);
        doomed.getResource().setAgentSynchronizationNeeded();
        entityManager.remove(doomed);
        return;
    }
View Full Code Here

Examples of org.rhq.core.domain.drift.DriftDefinition

        return driftServerPlugin.findDriftsByCriteria(subject, criteria);
    }

    @Override
    public DriftDefinition getDriftDefinition(Subject subject, int driftDefId) {
        DriftDefinition result = entityManager.find(DriftDefinition.class, driftDefId);

        if (null == result) {
            throw new IllegalArgumentException("Drift Definition Id [" + driftDefId + "] not found.");
        }

        // force lazy loads
        result.getConfiguration().getProperties();
        Hibernate.initialize(result.getResource());
        Hibernate.initialize(result.getTemplate());

        return result;
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.