/*
* (C) Copyright 2006-2011 Nuxeo SA (http://nuxeo.com/) and others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* Contributors:
* Nuxeo - initial API and implementation
*/
package org.nuxeo.ecm.core.management.api;
import java.util.List;
/**
* Service interface used to manage AdministrativeStatus of Nuxeo's services on a given Nuxeo Instance (node)
*
* @author tiry
*/
public interface AdministrativeStatusManager {
String ADMINISTRATIVE_INSTANCE_ID = "org.nuxeo.ecm.instance.administrative.id";
String GLOBAL_INSTANCE_AVAILABILITY = "org.nuxeo.ecm.instance.availability";
String ADMINISTRATIVE_EVENT_CATEGORY = "administrativeCategory";
String ADMINISTRATIVE_EVENT_INSTANCE = "instanceIdentifier";
String ADMINISTRATIVE_EVENT_SERVICE = "serviceIdentifier";
String ACTIVATED_EVENT = "serviceActivated";
String PASSIVATED_EVENT = "servicePassivated";
/**
* List {@link AdministrativeStatus} for all tracked resources (Servers or Services).
*/
List<AdministrativeStatus> getAllStatuses();
/**
* Get the {@link AdministrativeStatus} of a given resource.
*/
AdministrativeStatus getStatus(String serviceIdentifier);
/**
* Get the {@link AdministrativeStatus} of a the local Nuxeo Instance.
*/
AdministrativeStatus getNuxeoInstanceStatus();
/**
* Sets the {@link AdministrativeStatus} of a given resource.
*/
AdministrativeStatus setStatus(String serviceIdentifier, String state, String message, String login);
/**
* Sets the {@link AdministrativeStatus} of the Local Nuxeo Instance.
*/
AdministrativeStatus setNuxeoInstanceStatus(String state, String message, String login);
/**
* Mark a given resource as active.
*/
AdministrativeStatus activate(String serviceIdentifier, String message, String login);
/**
* Mark local Nuxeo instance as active.
*/
AdministrativeStatus activateNuxeoInstance(String message, String login);
/**
* Mark a given resource as non active.
*/
AdministrativeStatus deactivate(String serviceIdentifier, String message, String login);
/**
* Mark local Nuxeo instance as non active.
*/
AdministrativeStatus deactivateNuxeoInstance(String message, String login);
}