/**************************************************************************** * This software is part of the gCube Project. * Site: http://www.gcube-system.org/ **************************************************************************** * The gCube/gCore software is licensed as Free Open Source software * conveying to the EUPL (http://ec.europa.eu/idabc/eupl). * The software and documentation is provided by its authors/distributors * "as is" and no expressed or * implied warranty is given for its use, quality or fitness for a * particular case. **************************************************************************** * Filename: RemoteService.java **************************************************************************** * @author Daniele Strollo ***************************************************************************/ package org.gcube.portlets.admin.resourcemanagement.client.remote; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.gcube.resourcemanagement.support.client.utils.CurrentStatus; import org.gcube.resourcemanagement.support.shared.operations.SupportedOperations; import org.gcube.resourcemanagement.support.shared.plugins.GenericResourcePlugin; import org.gcube.resourcemanagement.support.shared.types.Tuple; import org.gcube.resourcemanagement.support.shared.types.datamodel.CompleteResourceProfile; import org.gcube.resourcemanagement.support.shared.types.datamodel.ResourceDescriptor; import com.google.gwt.user.client.rpc.RemoteService; /** * Interface of RPC servlet implementing the server side logics * of the application. * @author Daniele Strollo (ISTI-CNR) */ public interface ServiceProxy extends RemoteService { boolean enableSuperUserMode(String password); CurrentStatus initStatus(); void emptyCache(); void setUseCache(boolean flag); void initScopes(boolean doClean); void setSuperUser(boolean superUser); List getGatewayURLsGivenVREContext(String vreContext); /** * This way the servlet stores the scope in the session. */ void setCurrentScope(String scope); /** * @return the list of all available scopes. */ List getAvailableScopes(); List getAvailableAddScopes(); /** * * @param resType * @param resourceIDs * @param scope * @return the xml representation of the generated report (if not failed). * it is a tuple consisting of: *
0) the reportID *
1) the resourceType *
2) the xmlrepresentation *
3) the html representation * @throws Exception */ Tuple addResourcesToScope(final String resType, final List resourceIDs, final String scope) throws Exception; Tuple removeResourcesFromScope(String resType, List resourceIDs, String scope) throws Exception; String deploy(final List ghnsID, final List servicesID) throws Exception; Tuple checkDeployStatus(String scope, String deployID) throws Exception; List getResourcesModel(String scope, String type, String subType, final List> additionalMaps) throws Exception; /** * Given a scope, provides the set of (Type, SubType) couples * defining resources in the system. * The key of returned hashmap is the type and the associated * value is a list of string representing its related sub-types. * @see org.gcube.portlets.admin.resourcemanagement.server.gcube.services.ISClientRequester#getResourcesTypes(org.gcube.common.core.scope.GCUBEScope) * @param scope the scope of resources * @return the hash of (type, list(subtypes)) */ HashMap> getResourceTypeTree(String scope) throws Exception; /** * Given a type retrieves its related resources. * E.g. for GHN returns the RunningInstances on it. * @param scope * @param type * @return */ List getRelatedResources(String type, String id, String scope); /** * For a given type returns all the resources defined in the IS having * the chosen type. * @param scope the scope of resources * @param type the type of searched resources (e.g. GHN, RunningInstance, ...) * @return list of XML profiles of resources found */ List getResourcesByType(String scope, String type); /** * Filters the resources in a given scope by their type and subtype. * For example it allows to retrieve in a scope all the GHN (type) * defined in a domain (its subtype). * @param scope the scope of resources * @param type the type of searched resources (e.g. GHN, RunningInstance, ...) * @param subtype the subtype of search resources (e.g. for GHN is its domain). * @return list of XML profiles of resources found */ List getResourcesBySubType(String scope, String type, String subtype); /** * Used for generic resource editing form to retrieve the profile. * @param scope * @param resID * @return * @throws Exception */ ResourceDescriptor getGenericResourceDescriptor(String scope, String resID) throws Exception; /** * Returns the list of WSResources * @param scope the scope of resources * @return list of XML profiles of resources found */ List getWSResources(String scope); /** * Retrieves the XML profiles and its HTML representation of * a resource given its unique identifier and its type. * Notice that the ID is ensured to be unique for resources * of the same type. * @param scope the scope of the resource * @param type the type of the searched resource (e.g. GHN, RunningInstance, ...) * @param resID the unique identifier of the resource * @return a couple of strings (XMLProfile, HTMLProfileRepresentation) */ CompleteResourceProfile getResourceByID(String scope, String type, String resID); String createGenericResource( final String id, final String name, final String description, final String body, final String subType) throws Exception; void updateGenericResource( final String id, final String name, final String description, final String body, final String subType) throws Exception; Map getGenericResourcePlugins() throws Exception; /*********************************************************** * RESOURCE OPERATIONS **********************************************************/ void doOperation(SupportedOperations opCode, String scope, List resources) throws Exception; }