001/*
002 * Copyright (c) 2006-2011 Nuxeo SA (http://nuxeo.com/) and others.
003 *
004 * All rights reserved. This program and the accompanying materials
005 * are made available under the terms of the Eclipse Public License v1.0
006 * which accompanies this distribution, and is available at
007 * http://www.eclipse.org/legal/epl-v10.html
008 *
009 * Contributors:
010 *     Nuxeo - initial API and implementation
011 */
012package org.nuxeo.ecm.core.management.api;
013
014import java.util.List;
015
016/**
017 * Service interface used to manage AdministrativeStatus of Nuxeo's services on a given Nuxeo Instance (node)
018 *
019 * @author tiry
020 */
021public interface AdministrativeStatusManager {
022
023    String ADMINISTRATIVE_INSTANCE_ID = "org.nuxeo.ecm.instance.administrative.id";
024
025    String GLOBAL_INSTANCE_AVAILABILITY = "org.nuxeo.ecm.instance.availability";
026
027    String ADMINISTRATIVE_EVENT_CATEGORY = "administrativeCategory";
028
029    String ADMINISTRATIVE_EVENT_INSTANCE = "instanceIdentifier";
030
031    String ADMINISTRATIVE_EVENT_SERVICE = "serviceIdentifier";
032
033    String ACTIVATED_EVENT = "serviceActivated";
034
035    String PASSIVATED_EVENT = "servicePassivated";
036
037    /**
038     * List {@link AdministrativeStatus} for all tracked resources (Servers or Services).
039     */
040    List<AdministrativeStatus> getAllStatuses();
041
042    /**
043     * Get the {@link AdministrativeStatus} of a given resource.
044     */
045    AdministrativeStatus getStatus(String serviceIdentifier);
046
047    /**
048     * Get the {@link AdministrativeStatus} of a the local Nuxeo Instance.
049     */
050    AdministrativeStatus getNuxeoInstanceStatus();
051
052    /**
053     * Sets the {@link AdministrativeStatus} of a given resource.
054     */
055    AdministrativeStatus setStatus(String serviceIdentifier, String state, String message, String login);
056
057    /**
058     * Sets the {@link AdministrativeStatus} of the Local Nuxeo Instance.
059     */
060    AdministrativeStatus setNuxeoInstanceStatus(String state, String message, String login);
061
062    /**
063     * Mark a given resource as active.
064     */
065    AdministrativeStatus activate(String serviceIdentifier, String message, String login);
066
067    /**
068     * Mark local Nuxeo instance as active.
069     */
070    AdministrativeStatus activateNuxeoInstance(String message, String login);
071
072    /**
073     * Mark a given resource as non active.
074     */
075    AdministrativeStatus deactivate(String serviceIdentifier, String message, String login);
076
077    /**
078     * Mark local Nuxeo instance as non active.
079     */
080    AdministrativeStatus deactivateNuxeoInstance(String message, String login);
081
082}