blob: 6ead9856214708a08ce3c1ff5ac195df0c1bac89 [file] [log] [blame]
/*
* Copyright 2017-present Open Networking Foundation
*
* 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.
*/
package org.onosproject.cfm;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Deactivate;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.ReferenceCardinality;
import org.onlab.packet.VlanId;
import org.onosproject.cfm.web.ComponentCodec;
import org.onosproject.cfm.web.FngAddressCodec;
import org.onosproject.cfm.web.MaintenanceAssociationCodec;
import org.onosproject.cfm.web.MaintenanceDomainCodec;
import org.onosproject.cfm.web.MepCodec;
import org.onosproject.cfm.web.MepEntryCodec;
import org.onosproject.cfm.web.MepLbCreateCodec;
import org.onosproject.cfm.web.MepLbEntryCodec;
import org.onosproject.cfm.web.MepLtCreateCodec;
import org.onosproject.cfm.web.RemoteMepEntryCodec;
import org.onosproject.cfm.web.VidCodec;
import org.onosproject.codec.CodecService;
import org.onosproject.incubator.net.l2monitoring.cfm.MaintenanceAssociation;
import org.onosproject.incubator.net.l2monitoring.cfm.MaintenanceDomain;
import org.onosproject.incubator.net.l2monitoring.cfm.Mep;
import org.onosproject.incubator.net.l2monitoring.cfm.Mep.FngAddress;
import org.onosproject.incubator.net.l2monitoring.cfm.MepEntry;
import org.onosproject.incubator.net.l2monitoring.cfm.MepLbCreate;
import org.onosproject.incubator.net.l2monitoring.cfm.MepLbEntry;
import org.onosproject.incubator.net.l2monitoring.cfm.MepLtCreate;
import org.onosproject.incubator.net.l2monitoring.cfm.RemoteMepEntry;
import org.onosproject.incubator.net.l2monitoring.soam.StartTime;
import org.onosproject.incubator.net.l2monitoring.soam.StopTime;
import org.onosproject.incubator.net.l2monitoring.soam.delay.DelayMeasurementCreate;
import org.onosproject.incubator.net.l2monitoring.soam.delay.DelayMeasurementCreate.MeasurementOption;
import org.onosproject.incubator.net.l2monitoring.soam.delay.DelayMeasurementEntry;
import org.onosproject.incubator.net.l2monitoring.soam.delay.DelayMeasurementStat;
import org.onosproject.incubator.net.l2monitoring.soam.delay.DelayMeasurementStatCurrent;
import org.onosproject.incubator.net.l2monitoring.soam.delay.DelayMeasurementStatHistory;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossAvailabilityStat;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossAvailabilityStatCurrent;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossAvailabilityStatHistory;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementCreate;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementCreate.CounterOption;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementEntry;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementStat;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementStatCurrent;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementStatHistory;
import org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementThreshold;
import org.onosproject.soam.web.DelayMeasurementStatCodec;
import org.onosproject.soam.web.DelayMeasurementStatCurrentCodec;
import org.onosproject.soam.web.DelayMeasurementStatHistoryCodec;
import org.onosproject.soam.web.DmCreateCodec;
import org.onosproject.soam.web.DmEntryCodec;
import org.onosproject.soam.web.DmMeasurementOptionCodec;
import org.onosproject.soam.web.LmCounterOptionCodec;
import org.onosproject.soam.web.LmCreateCodec;
import org.onosproject.soam.web.LmEntryCodec;
import org.onosproject.soam.web.LmThresholdOptionCodec;
import org.onosproject.soam.web.LossAvailabilityStatCodec;
import org.onosproject.soam.web.LossAvailabilityStatCurrentCodec;
import org.onosproject.soam.web.LossAvailabilityStatHistoryCodec;
import org.onosproject.soam.web.LossMeasurementStatCodec;
import org.onosproject.soam.web.LossMeasurementStatCurrentCodec;
import org.onosproject.soam.web.LossMeasurementStatHistoryCodec;
import org.onosproject.soam.web.LossMeasurementThresholdCodec;
import org.onosproject.soam.web.StartTimeCodec;
import org.onosproject.soam.web.StopTimeCodec;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.onosproject.incubator.net.l2monitoring.soam.loss.LossMeasurementThreshold.*;
/**
* Enables the CFM REST Web Service component at /onos/cfm.
* Each codec for the rest interfaces should be registered here.
*/
@Component(immediate = true)
public class CfmWebComponent {
private final Logger log = LoggerFactory.getLogger(getClass());
@Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY)
protected CodecService codecService;
@Activate
public void activate() {
codecService.registerCodec(MaintenanceDomain.class,
new MaintenanceDomainCodec());
codecService.registerCodec(MaintenanceAssociation.class,
new MaintenanceAssociationCodec());
codecService.registerCodec(org.onosproject.incubator.net.l2monitoring.cfm.Component.class,
new ComponentCodec());
codecService.registerCodec(VlanId.class, new VidCodec());
codecService.registerCodec(Mep.class, new MepCodec());
codecService.registerCodec(MepEntry.class, new MepEntryCodec());
codecService.registerCodec(MepLbCreate.class, new MepLbCreateCodec());
codecService.registerCodec(MepLbEntry.class, new MepLbEntryCodec());
codecService.registerCodec(MepLtCreate.class, new MepLtCreateCodec());
codecService.registerCodec(RemoteMepEntry.class, new RemoteMepEntryCodec());
codecService.registerCodec(FngAddress.class, new FngAddressCodec());
codecService.registerCodec(DelayMeasurementCreate.class,
new DmCreateCodec());
codecService.registerCodec(DelayMeasurementEntry.class,
new DmEntryCodec());
codecService.registerCodec(DelayMeasurementStat.class,
new DelayMeasurementStatCodec());
codecService.registerCodec(DelayMeasurementStatCurrent.class,
new DelayMeasurementStatCurrentCodec());
codecService.registerCodec(DelayMeasurementStatHistory.class,
new DelayMeasurementStatHistoryCodec());
codecService.registerCodec(MeasurementOption.class,
new DmMeasurementOptionCodec());
codecService.registerCodec(LossMeasurementCreate.class,
new LmCreateCodec());
codecService.registerCodec(LossMeasurementThreshold.class,
new LossMeasurementThresholdCodec());
codecService.registerCodec(LossMeasurementEntry.class,
new LmEntryCodec());
codecService.registerCodec(LossMeasurementStat.class,
new LossMeasurementStatCodec());
codecService.registerCodec(LossMeasurementStatCurrent.class,
new LossMeasurementStatCurrentCodec());
codecService.registerCodec(LossMeasurementStatHistory.class,
new LossMeasurementStatHistoryCodec());
codecService.registerCodec(LossAvailabilityStat.class,
new LossAvailabilityStatCodec());
codecService.registerCodec(LossAvailabilityStatCurrent.class,
new LossAvailabilityStatCurrentCodec());
codecService.registerCodec(LossAvailabilityStatHistory.class,
new LossAvailabilityStatHistoryCodec());
codecService.registerCodec(CounterOption.class,
new LmCounterOptionCodec());
codecService.registerCodec(ThresholdOption.class,
new LmThresholdOptionCodec());
codecService.registerCodec(StartTime.class, new StartTimeCodec());
codecService.registerCodec(StopTime.class, new StopTimeCodec());
log.info("CFM Web Component Started");
}
@Deactivate
public void deactivate() {
log.info("CFM Web Component Stopped");
codecService.unregisterCodec(MaintenanceDomain.class);
codecService.unregisterCodec(MaintenanceAssociation.class);
codecService.unregisterCodec(org.onosproject.incubator.net.l2monitoring.cfm.Component.class);
codecService.unregisterCodec(VlanId.class);
codecService.unregisterCodec(Mep.class);
codecService.unregisterCodec(MepEntry.class);
codecService.unregisterCodec(MepLbCreate.class);
codecService.unregisterCodec(MepLbEntry.class);
codecService.unregisterCodec(MepLtCreate.class);
codecService.unregisterCodec(RemoteMepEntry.class);
codecService.unregisterCodec(FngAddress.class);
codecService.unregisterCodec(DelayMeasurementCreate.class);
codecService.unregisterCodec(DelayMeasurementEntry.class);
codecService.unregisterCodec(DelayMeasurementStat.class);
codecService.unregisterCodec(DelayMeasurementStatCurrent.class);
codecService.unregisterCodec(DelayMeasurementStatHistory.class);
codecService.unregisterCodec(MeasurementOption.class);
codecService.unregisterCodec(StartTime.class);
codecService.unregisterCodec(StopTime.class);
codecService.unregisterCodec(LossMeasurementCreate.class);
codecService.unregisterCodec(LossMeasurementThreshold.class);
codecService.unregisterCodec(LossMeasurementEntry.class);
codecService.unregisterCodec(LossMeasurementStat.class);
codecService.unregisterCodec(LossMeasurementStatCurrent.class);
codecService.unregisterCodec(LossMeasurementStatHistory.class);
codecService.unregisterCodec(LossAvailabilityStat.class);
codecService.unregisterCodec(LossAvailabilityStatCurrent.class);
codecService.unregisterCodec(LossAvailabilityStatHistory.class);
codecService.unregisterCodec(CounterOption.class);
codecService.unregisterCodec(ThresholdOption.class);
}
}