Package org.rhq.core.domain.drift

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


        final JPADriftSet driftSet = new JPADriftSet();
        driftSet.addDrift(drift1);
        driftSet.addDrift(drift2);

        // create the template
        final DriftDefinition templateDef = new DriftDefinition(new Configuration());
        templateDef.setName(NAME_PREFIX + "createUnpinnedDefinition");
        templateDef.setEnabled(true);
        templateDef.setDriftHandlingMode(normal);
        templateDef.setInterval(2400L);
        templateDef.setBasedir(new DriftDefinition.BaseDirectory(fileSystem, "/foo/bar/test"));
        templateDef.setPinned(true);

        final DriftDefinitionTemplate template = templateMgr.createTemplate(getOverlord(), resourceType.getId(), true,
            templateDef);

        executeInTransaction(false, new TransactionCallback() {
            @Override
            public void execute() throws Exception {
                EntityManager em = getEntityManager();

                em.persist(driftFile1);
                em.persist(driftFile2);
                em.persist(changeSet0);
                em.persist(driftSet);
                changeSet0.setInitialDriftSet(driftSet);
                em.merge(changeSet0);

                // setting the change set id on the template is the last and the
                // most important step in making the template pinned
                template.setChangeSetId(changeSet0.getId());
                em.merge(template);
            }
        });

        // Create and persist a resource-level definition.
        final DriftDefinition definition = template.createDefinition();
        definition.setTemplate(template);

        final AtomicBoolean agentInvoked = new AtomicBoolean(false);

        agentServiceContainer.driftService = new TestDefService() {
            @Override
            public void updateDriftDetection(int resourceId, DriftDefinition driftDef, DriftSnapshot snapshot) {
                try {
                    HibernateDetachUtility.nullOutUninitializedFields(driftDef,
                        HibernateDetachUtility.SerializationType.SERIALIZATION);
                    HibernateDetachUtility.nullOutUninitializedFields(snapshot,
                        HibernateDetachUtility.SerializationType.SERIALIZATION);
                    agentInvoked.set(true);
                    assertNotNull("Expected snapshot drift instances collection to be non-null",
                        snapshot.getDriftInstances());
                    assertEquals("Expected snapshot to contain two drift entries", 2, snapshot.getDriftInstances()
                        .size());
                } catch (Exception e) {
                    String msg = "Do not pass attached entites to agent since those entities are outside of "
                        + "Hibernate's control. The persistence context should be flushed and cleared to ensure that "
                        + "only detached objects are sent to the agent";
                    throw new RuntimeException(msg, e);
                }
            }
        };

        driftMgr.updateDriftDefinition(getOverlord(), EntityContext.forResource(resource.getId()), definition);

        DriftDefinition newDef = loadDefinition(definition.getName());

        // verify that the definition is marked as pinned
        assertTrue("The drift definition should be marked as pinned", newDef.isPinned());

        // verify that the initial change set is generated for the definition
        JPADriftChangeSetCriteria criteria = new JPADriftChangeSetCriteria();
        criteria.addFilterDriftDefinitionId(definition.getId());
        criteria.addFilterCategory(COVERAGE);
View Full Code Here


        assertTrue("Failed to send drift definition along with snapshot to agent", agentInvoked.get());
    }

    public void unpinDefinition() {
        // First create the template
        final DriftDefinition templateDef = new DriftDefinition(new Configuration());
        templateDef.setName(NAME_PREFIX + "unpin_def_template");
        templateDef.setEnabled(true);
        templateDef.setDriftHandlingMode(normal);
        templateDef.setInterval(2400L);
        templateDef.setBasedir(new DriftDefinition.BaseDirectory(fileSystem, "/foo/bar/test"));

        final DriftDefinitionTemplate template = templateMgr.createTemplate(getOverlord(), resourceType.getId(), true,
            templateDef);

        // First create the definition
        DriftDefinition definition = template.createDefinition();
        definition.setName(NAME_PREFIX + "unpin");
        definition.setEnabled(true);
        definition.setBasedir(new DriftDefinition.BaseDirectory(fileSystem, "/foo/bar/test"));
        definition.setComplianceStatus(DriftComplianceStatus.OUT_OF_COMPLIANCE_DRIFT);
        definition.setInterval(1800L);
        definition.setDriftHandlingMode(normal);
        definition.setPinned(true);

        // persist the definition
        driftMgr.updateDriftDefinition(getOverlord(), EntityContext.forResource(resource.getId()), definition);

        // now update the definition
        DriftDefinition newDef = loadDefinition(definition.getName());
        assertNotNull("Failed to load new definition, " + toString(definition));
        newDef.setPinned(false);

        driftMgr.updateDriftDefinition(getOverlord(), EntityContext.forResource(resource.getId()), newDef);

        // now verify that the definition was updated
        DriftDefinition updatedDef = loadDefinition(definition.getName());
        assertNotNull("Failed to load updated definition, " + toString(newDef));

        assertFalse("The updated definition should be set to unpinned", updatedDef.isPinned());
        assertEquals("The updated definition should be set to in compliance", DriftComplianceStatus.IN_COMPLIANCE,
            updatedDef.getComplianceStatus());
    }
View Full Code Here

    }

    private void save() {

        Configuration updatedConfiguration = editor.getConfiguration();
        DriftDefinition updatedDefinition = new DriftDefinition(updatedConfiguration);
        driftTemplate.setTemplateDefinition(updatedDefinition);

        GWTServiceLookup.getDriftService().updateTemplate(driftTemplate, new AsyncCallback<Void>() {
            public void onFailure(Throwable caught) {
                CoreGUI.getErrorHandler().handleError(MSG.view_configurationDetails_error_updateFailure(), caught);
View Full Code Here

        driftMgr = getDriftManager();
        templateMgr = getDriftTemplateManager();
    }

    public void pinningSnapshotShouldSetDriftDefAsPinned() {
        final DriftDefinition driftDef = createAndPersistDriftDef(NAME_PREFIX + "setPinnedFlag");

        // create initial change set
        final JPADriftChangeSet changeSet = new JPADriftChangeSet(resource, 0, COVERAGE, driftDef);

        final JPADriftFile driftFile1 = new JPADriftFile(NAME_PREFIX + "a1b2c3");
        JPADrift drift = new JPADrift(changeSet, "drift.1", FILE_ADDED, null, driftFile1);

        final JPADriftSet driftSet = new JPADriftSet();
        driftSet.addDrift(drift);

        executeInTransaction(false, new TransactionCallback() {
            @Override
            public void execute() throws Exception {
                EntityManager em = getEntityManager();
                em.persist(driftFile1);
                em.persist(changeSet);
                em.persist(driftSet);
                changeSet.setInitialDriftSet(driftSet);
                em.merge(changeSet);
            }
        });

        driftMgr.pinSnapshot(getOverlord(), driftDef.getId(), 0);
        DriftDefinition updatedDriftDef = driftMgr.getDriftDefinition(getOverlord(), driftDef.getId());

        assertNotNull("Failed to get " + toString(driftDef), updatedDriftDef);
        assertTrue("Failed to set pinned flag of " + toString(driftDef), updatedDriftDef.isPinned());
    }
View Full Code Here

        assertTrue("Failed to set pinned flag of " + toString(driftDef), updatedDriftDef.isPinned());
    }

    @SuppressWarnings("unchecked")
    public void pinningSnapshotShouldMakeSnapshotTheInitialChangeSet() throws Exception {
        final DriftDefinition driftDef = createAndPersistDriftDef(NAME_PREFIX + "makeSnapshotVersionZero");

        // create initial change set
        final JPADriftChangeSet changeSet0 = new JPADriftChangeSet(resource, 0, COVERAGE, driftDef);

        final JPADriftFile driftFile1 = new JPADriftFile(NAME_PREFIX + "a1b2c3");
        JPADrift drift1 = new JPADrift(changeSet0, "drift.1", FILE_ADDED, null, driftFile1);

        final JPADriftSet driftSet = new JPADriftSet();
        driftSet.addDrift(drift1);

        // create change set v1
        final JPADriftFile driftFile2 = new JPADriftFile(NAME_PREFIX + "1a2b3c");
        final JPADriftChangeSet changeSet1 = new JPADriftChangeSet(resource, 1, DRIFT, driftDef);
        final JPADrift drift2 = new JPADrift(changeSet1, "drift.2", FILE_ADDED, null, driftFile2);

        executeInTransaction(false, new TransactionCallback() {
            @Override
            public void execute() throws Exception {
                EntityManager em = getEntityManager();
                em.persist(driftFile1);
                em.persist(driftFile2);
                em.persist(changeSet0);
                em.persist(driftSet);
                changeSet0.setInitialDriftSet(driftSet);
                em.merge(changeSet0);
                em.persist(changeSet1);
                em.persist(drift2);
            }
        });

        driftMgr.pinSnapshot(getOverlord(), driftDef.getId(), 1);

        // Verify that there is now only one change set for the drift def
        GenericDriftChangeSetCriteria criteria = new GenericDriftChangeSetCriteria();
        criteria.addFilterDriftDefinitionId(driftDef.getId());

        PageList<? extends DriftChangeSet<?>> changeSets = driftMgr.findDriftChangeSetsByCriteria(getOverlord(),
            criteria);
        assertEquals("All change sets except the change set representing the pinned snapshot should be removed", 1,
            changeSets.size());
View Full Code Here

        assertPropertiesMatch(drift2.getNewDriftFile(), findDriftByPath(actualDrifts, "drift.2").getNewDriftFile(),
            "The newDriftFile property was not set correctly for " + drift1);
    }

    public void pinningSnapshotShouldSendRequestToAgent() {
        final DriftDefinition driftDef = createAndPersistDriftDef(NAME_PREFIX + "setPinnedFlag");

        // create initial change set
        final JPADriftChangeSet changeSet = new JPADriftChangeSet(resource, 0, COVERAGE, driftDef);

        final JPADriftFile driftFile1 = new JPADriftFile(NAME_PREFIX + "a1b2c3");
        JPADrift drift = new JPADrift(changeSet, "drift.1", FILE_ADDED, null, driftFile1);

        final JPADriftSet driftSet = new JPADriftSet();
        driftSet.addDrift(drift);

        executeInTransaction(false, new TransactionCallback() {
            @Override
            public void execute() throws Exception {
                EntityManager em = getEntityManager();
                em.persist(driftFile1);
                em.persist(changeSet);
                em.persist(driftSet);
                changeSet.setInitialDriftSet(driftSet);
                em.merge(changeSet);
            }
        });

        final AtomicBoolean agentInvoked = new AtomicBoolean(false);
        agentServiceContainer.driftService = new TestDefService() {
            @Override
            public void pinSnapshot(int resourceId, String configName, DriftSnapshot snapshot) {
                try {
                    agentInvoked.set(true);
                    // serialize the method arguments here to more closely simulate what
                    // happens during the call. We cannot send hibernate-proxied objects
                    // to the agent. This is an attempt to catch that.
                    ObjectOutputStream stream = new ObjectOutputStream(new ByteArrayOutputStream());
                    EntitySerializer.writeExternalRemote(resourceId, stream);
                    EntitySerializer.writeExternalRemote(configName, stream);
                    EntitySerializer.writeExternalRemote(snapshot, stream);
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        };

        driftMgr.pinSnapshot(getOverlord(), driftDef.getId(), 0);

        assertTrue("Failed to send request to agent to pin snapshot", agentInvoked.get());
    }
View Full Code Here

//    @Test(expectedExceptions = IllegalArgumentException.class)//, expectedExceptionsMessageRegExp = "Cannot repin.*definition.*")
    @Test
    public void doNotAllowSnapshotToBePinnedWhenDefinitionIsAttachedToPinnedTemplate() {
        // First create the template
        final DriftDefinition templateDef = new DriftDefinition(new Configuration());
        templateDef.setName(NAME_PREFIX + "Template-Pinned_Test");
        templateDef.setEnabled(true);
        templateDef.setDriftHandlingMode(normal);
        templateDef.setInterval(2400L);
        templateDef.setBasedir(new DriftDefinition.BaseDirectory(fileSystem, "/foo/bar/test"));

        final DriftDefinitionTemplate template = templateMgr.createTemplate(getOverlord(), resourceType.getId(), true,
            templateDef);

        // Now we will pin the template. We are going to take a bit of a short cut
        // here. Pinning a template requires a drift definition with at least one
        // snapshot. For the purposes of this test we can simply set the
        // changeSetId field of the template to indicate that it is pinned.
        template.setChangeSetId("1234");

        // Next create a resource-level definition from the template.
        final DriftDefinition driftDef = template.createDefinition();
        driftDef.setResource(resource);

        executeInTransaction(false, new TransactionCallback() {
            @Override
            public void execute() throws Exception {
                EntityManager em = getEntityManager();
                em.merge(template);
                em.persist(driftDef);
            }
        });

        // Now try resource-level pinning, i.e., pin a snapshot to the definition
        try {
            driftMgr.pinSnapshot(getOverlord(), driftDef.getId(), 0);
        } catch (IllegalArgumentException e) {
            System.out.println("Got expected IAE");
        } catch (EJBException ee) {
            if (ee.getCause()!=null && ee.getCause() instanceof IllegalArgumentException) {
                System.out.println("Got expected EJBException wrapping an IAR");
View Full Code Here

        }

    }

    private DriftDefinition createAndPersistDriftDef(String name) {
        final DriftDefinition driftDef = new DriftDefinition(new Configuration());
        driftDef.setName(name);
        driftDef.setEnabled(true);
        driftDef.setDriftHandlingMode(normal);
        driftDef.setInterval(1800L);
        driftDef.setBasedir(new DriftDefinition.BaseDirectory(fileSystem, "/foo/bar/test"));

        executeInTransaction(false, new TransactionCallback() {
            @Override
            public void execute() throws Exception {
                driftDef.setResource(resource);
                getEntityManager().persist(driftDef);
            }
        });

        return driftDef;
View Full Code Here

        jpaCriteria.fetchChangeSet(true);
        PageList<JPADrift> drifts = findDriftsByCriteria(subject, jpaCriteria);
        PageList<DriftComposite> result = new PageList<DriftComposite>();
        for (JPADrift drift : drifts) {
            JPADriftChangeSet changeSet = drift.getChangeSet();
            DriftDefinition driftDef = changeSet.getDriftDefinition();
            result.add(new DriftComposite(drift, changeSet.getResource(), driftDef.getName()));
        }

        return result;
    }
View Full Code Here

        if (isTemplateChangeSet(changeSet)) {
            jpaChangeSet = new JPADriftChangeSet(null, changeSet.getVersion(), changeSet.getCategory(), null);
            jpaChangeSet.setDriftHandlingMode(changeSet.getDriftHandlingMode());
        } else {
            Resource resource = getResource(changeSet.getResourceId());
            DriftDefinition driftDef = null;

            for (DriftDefinition def : resource.getDriftDefinitions()) {
                if (def.getId() == changeSet.getDriftDefinitionId()) {
                    driftDef = def;
                    break;
View Full Code Here

TOP

Related Classes of org.rhq.core.domain.drift.DriftDefinition

Copyright © 2018 www.massapicom. 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.