/* * RHQ Management Platform * Copyright (C) 2005-2008 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation version 2 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.rhq.enterprise.server.discovery; import javax.ejb.Remote; import org.rhq.core.domain.auth.Subject; import org.rhq.core.domain.configuration.Configuration; import org.rhq.core.domain.resource.Resource; /** * The remote boss interface to the discovery subsystem. */ @Remote public interface DiscoveryBossRemote { /** * Analogous to the GUI feature Import Resources in the auto discovery queue. * Note, to query for Resources with a specific InventoryStatus, see * {@link org.rhq.enterprise.server.resource.ResourceManagerRemote#findResourcesByCriteria}. * * @param subject * @param resourceIds */ void importResources(Subject subject, int[] resourceIds); /** * Analogous to the GUI feature Ignore Resources in the auto discovery queue. This can also * ignore committed resources as well. * Note, to query for Resources with a specific InventoryStatus, see * {@link org.rhq.enterprise.server.resource.ResourceManagerRemote#findResourcesByCriteria}. * * @param subject * @param resourceIds */ void ignoreResources(Subject subject, int[] resourceIds); /** * Analogous to the GUI feature Unignore Resources in the auto discovery queue. * Note, to query for Resources with a specific InventoryStatus, see * {@link org.rhq.enterprise.server.resource.ResourceManagerRemote#findResourcesByCriteria}. * * @param subject * @param resourceIds */ void unignoreResources(Subject subject, int[] resourceIds); /** * This is used to specifically unignore previously ignored resources. This has the added feature * of immediately importing those newly unignored resources. This should only be used for unignoring * those resources that were previously committed but ignored. * * Note, to query for Resources with a specific InventoryStatus, see * {@link org.rhq.enterprise.server.resource.ResourceManagerRemote#findResourcesByCriteria}. * * @param subject * @param resourceIds * * @since 4.7 */ void unignoreAndImportResources(Subject subject, int[] resourceIds); /** * Manually Add the resource of the specified type to inventory using the specified plugin configuration (i.e. * connection properties). This will not only create a new resource, but it will also ensure the resource component * is activated (and thus connects to the managed resource). * * @param subject the user making the request * @param resourceTypeId the type of resource to be manually discovered * @param parentResourceId the id of the resource that will be the parent of the manually discovered resource * @param pluginConfiguration the properties that should be used to connect to the underlying managed resource * * @return The resource. Note that the resource may have existed already if given the provided pluginConfiguration * leads to a previously defined resource. * * @throws Exception if connecting to the underlying managed resource failed due to invalid plugin configuration or * if the manual discovery fails for any reason. */ Resource manuallyAddResource(Subject subject, int resourceTypeId, int parentResourceId, Configuration pluginConfiguration) throws Exception; }