Package org.rhq.core.clientapi.server.content

Examples of org.rhq.core.clientapi.server.content.ContentDiscoveryReport


    @SuppressWarnings("unchecked")
    @Test(enabled = ENABLE_TESTS)
    public void testInventoryMerge() throws Exception {
        // Setup  --------------------------------------------
        ContentDiscoveryReport report = new ContentDiscoveryReport();
        report.setResourceId(resource1.getId());

        // Package version that exists
        PackageDetailsKey key1 = new PackageDetailsKey(package1.getName(), "2.0.0",
            package1.getPackageType().getName(), architecture1.getName());
        ResourcePackageDetails package1 = new ResourcePackageDetails(key1);

        report.addDeployedPackage(package1);

        // Package version number that doesn't exist
        PackageDetailsKey key2 = new PackageDetailsKey(package2.getName(), "3.0.0", this.package2.getPackageType()
            .getName(), architecture1.getName());
        ResourcePackageDetails package2 = new ResourcePackageDetails(key2);

        report.addDeployedPackage(package2);

        // Package with same version number but different architecture
        PackageDetailsKey key3 = new PackageDetailsKey(package3.getName(), "1.0.0", this.package3.getPackageType()
            .getName(), architecture2.getName());
        ResourcePackageDetails package3 = new ResourcePackageDetails(key3);

        report.addDeployedPackage(package3);

        // Package where entire package does not exist
        PackageDetailsKey key4 = new PackageDetailsKey("PackageX", "1.0.0", packageType4.getName(),
            architecture1.getName());
        ResourcePackageDetails package4 = new ResourcePackageDetails(key4);

        //   Fully populate this version to make sure the translation from details -> domain model works
        //   Don't need to do this on all packages
        package4.setClassification("Package X1 Category");
        package4.setDisplayName("Package X1 Display Name");
        package4.setDisplayVersion("Package X1 Display Version");
        package4.setFileCreatedDate(System.currentTimeMillis());
        package4.setFileName("package4.tar.gz");
        package4.setFileSize(1000L);
        package4.setLicenseName("GPL");
        package4.setLicenseVersion("2");
        package4.setLongDescription("Package X1 Long Description");
        package4.setMD5("7bf1adec93fdb899aeca248a38603d58");
        package4.setSHA256("935f051cab5240b979bba87ce58183d50f592a962202ca683f12a7966414fe6c");
        package4.setShortDescription("Package X1 Short Description");

        String package4Metadata = "Package X1 Metadata";
        package4.setMetadata(package4Metadata.getBytes());

        Configuration package4DeploymentConfiguration = new Configuration();
        package4DeploymentConfiguration.put(new PropertySimple("property1", "value1"));
        package4.setDeploymentTimeConfiguration(package4DeploymentConfiguration);

        Configuration package4ExtraProperties = new Configuration();
        package4ExtraProperties.put(new PropertySimple("property2", "value2"));
        package4.setExtraProperties(package4ExtraProperties);

        report.addDeployedPackage(package4);

        // Upgraded package to package version known to the system
        PackageDetailsKey key5 = new PackageDetailsKey("Package4", "2.0.0", this.package4.getPackageType().getName(),
            architecture1.getName());
        ResourcePackageDetails package5 = new ResourcePackageDetails(key5);

        report.addDeployedPackage(package5);

        // In most cases, the same package report will come back from the agent (i.e. no changes). This is a simple way
        // of testing that to ensure we're not messing up and adding multiple installed packages.
        for (int ii = 0; ii < 2; ii++) {
            // Test  --------------------------------------------
View Full Code Here


            for (InstalledPackage ip : installedPackages) {
                ids[i++] = ip.getId();
            }

            // send empty report to remove the existing IPs
            ContentDiscoveryReport report = new ContentDiscoveryReport();
            report.setResourceId(resource1.getId());
            contentManager.mergeDiscoveredPackages(report);

            installedPackages = contentManager.findInstalledPackagesByCriteria(subjectManager.getOverlord(), criteria);
            assert (installedPackages.isEmpty());
        }

        // Report a bunch of discovered packages
        int numPackages = 500;
        ContentDiscoveryReport report = new ContentDiscoveryReport();
        report.setResourceId(resource1.getId());

        for (Integer i = 0; i < numPackages; ++i) {
            PackageDetailsKey key = new PackageDetailsKey(this.getClass().getSimpleName() + "-" + i, i.toString(),
                package1.getPackageType().getName(), architecture1.getName());
            ResourcePackageDetails pd = new ResourcePackageDetails(key);
            report.addDeployedPackage(pd);
        }

        long start = System.currentTimeMillis();
        contentManager.mergeDiscoveredPackages(report);
        System.out.println("PERF: testInventoryMergePerf merge-1=" + (System.currentTimeMillis() - start) + "ms");

        installedPackages = contentManager.findInstalledPackagesByCriteria(subjectManager.getOverlord(), criteria);
        assertEquals(numPackages, installedPackages.size());

        // Remove the first 100 and add 200 more
        int startPackage = 100;
        int endPackage = numPackages + 200;
        report = new ContentDiscoveryReport();
        report.setResourceId(resource1.getId());

        for (Integer i = startPackage; i < endPackage; ++i) {
            PackageDetailsKey key = new PackageDetailsKey(this.getClass().getSimpleName() + "-" + i, i.toString(),
                package1.getPackageType().getName(), architecture1.getName());
            ResourcePackageDetails pd = new ResourcePackageDetails(key);
            report.addDeployedPackage(pd);
        }

        start = System.currentTimeMillis();
        contentManager.mergeDiscoveredPackages(report);
        System.out.println("PERF: testInventoryMergePerf merge-2=" + (System.currentTimeMillis() - start) + "ms");
View Full Code Here

        if (LOG.isDebugEnabled()) {
            LOG.debug("Performing discovery: " + info);
        }

        // Catch any error that may occur on the plugin
        ContentDiscoveryReport result = null;
        try {
            result = contentManager.performContentDiscovery(info.getResourceId(), info.getPackageType());
        } catch (Throwable throwable) {
            LOG.warn("Exception received from component while attempting content retrieval", throwable);
        } finally {
View Full Code Here

        // Create a new runner that is scoped to the resource/package type specified
        ScheduledContentDiscoveryInfo discoveryInfo = new ScheduledContentDiscoveryInfo(resourceId, packageType);

        ContentDiscoveryRunner oneTimeRunner = new ContentDiscoveryRunner(this, discoveryInfo);

        ContentDiscoveryReport results;
        try {
            results = discoveryThreadPoolExecutor.submit((Callable<ContentDiscoveryReport>) oneTimeRunner).get();
        } catch (Exception e) {
            throw new PluginContainerException("Exception occurred during execution of discovery", e);
        }
View Full Code Here

        if (LOG.isDebugEnabled()) {
            LOG.debug("Discovered [" + ((details != null) ? details.size() : 0) + "] packages of type=" + type);
        }

        // Process the results
        ContentDiscoveryReport report = handleDiscoveredContent(details, resourceId);
        return report;
    }
View Full Code Here

        // Add merged (current) list to the resource container
        container.setInstalledPackages(existingInstalledPackagesSet);

        // Package and send to server
        ContentDiscoveryReport report = new ContentDiscoveryReport();
        report.addAllDeployedPackages(existingInstalledPackagesSet);
        report.setResourceId(resourceId);

        ContentServerService contentServerService = getContentServerService();
        if (contentServerService != null) {
            // if there are 1+ installed packages to report OR there are 0 but there used to be packages installed,
            // then send up the report to be merged
View Full Code Here

        Resource deployment = deploymentResources.iterator().next();

        // the resource key and resource name are the same, and should be the filename stripped of version.
        assert TestDeployments.DEPLOYMENT_1.getResourceKey().equals(deployment.getName()) : "The deployment doesn't seem to have the expected name";

        ContentDiscoveryReport report = pluginContainer.getContentManager().executeResourcePackageDiscoveryImmediately(
            deployment.getId(), "file");

        Set<ResourcePackageDetails> details = report.getDeployedPackages();

        assert details != null && details.size() == 1 : "The archived deployment should be backed by exactly 1 package.";

        ResourcePackageDetails actualDetails = details.iterator().next();
        ResourcePackageDetails expectedDetails = getTestDeploymentPackageDetails(TestDeployments.DEPLOYMENT_1);
View Full Code Here

        }
    }

    private ResourcePackageDetails getBackingPackage() throws Exception
    {
        ContentDiscoveryReport report;
        try
        {
            report = PluginContainer.getInstance().getContentManager().executeResourcePackageDiscoveryImmediately(
                    this.resource.getId(), this.packageType.getName());
            if (report.getDeployedPackages().isEmpty())
                throw new IllegalStateException("Backing " + this.packageType.getName() + " package not found for "
                        + this.resource + ".");
            if (report.getDeployedPackages().size() > 1)
                throw new IllegalStateException("More than one " + this.packageType.getName() + " package found for "
                        + this.resource + ".");
        }
        catch (PluginContainerException e)
        {
            throw new Exception("Failed to discover underlying " + this.packageType.getName() + " package for "
                    + this.resourceType.getName() + " Resource.", e);
        }
        ResourcePackageDetails packageDetails = report.getDeployedPackages().iterator().next();
        log.debug("Backing package for " + this.resource + " is " + packageDetails + ".");
        return packageDetails;
    }
View Full Code Here

TOP

Related Classes of org.rhq.core.clientapi.server.content.ContentDiscoveryReport

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.