2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.netconf.sal.restconf.impl;
10 import java.math.BigInteger;
11 import java.util.concurrent.atomic.AtomicLong;
12 import javax.ws.rs.core.Context;
13 import javax.ws.rs.core.Response;
14 import javax.ws.rs.core.Response.Status;
15 import javax.ws.rs.core.UriInfo;
16 import org.opendaylight.netconf.sal.rest.api.RestconfService;
18 public class StatisticsRestconfServiceWrapper implements RestconfService {
20 AtomicLong operationalGet = new AtomicLong();
21 AtomicLong configGet = new AtomicLong();
22 AtomicLong rpc = new AtomicLong();
23 AtomicLong configPost = new AtomicLong();
24 AtomicLong configPut = new AtomicLong();
25 AtomicLong configDelete = new AtomicLong();
26 AtomicLong successGetConfig = new AtomicLong();
27 AtomicLong successGetOperational = new AtomicLong();
28 AtomicLong successPost = new AtomicLong();
29 AtomicLong successPut = new AtomicLong();
30 AtomicLong successDelete = new AtomicLong();
31 AtomicLong failureGetConfig = new AtomicLong();
32 AtomicLong failureGetOperational = new AtomicLong();
33 AtomicLong failurePost = new AtomicLong();
34 AtomicLong failurePut = new AtomicLong();
35 AtomicLong failureDelete = new AtomicLong();
37 private static final StatisticsRestconfServiceWrapper INSTANCE = new StatisticsRestconfServiceWrapper(RestconfImpl.getInstance());
39 final RestconfService delegate;
41 private StatisticsRestconfServiceWrapper(final RestconfService delegate) {
42 this.delegate = delegate;
45 public static StatisticsRestconfServiceWrapper getInstance() {
50 public Object getRoot() {
51 return delegate.getRoot();
55 public NormalizedNodeContext getModules(final UriInfo uriInfo) {
56 return delegate.getModules(uriInfo);
60 public NormalizedNodeContext getModules(final String identifier, final UriInfo uriInfo) {
61 return delegate.getModules(identifier, uriInfo);
65 public NormalizedNodeContext getModule(final String identifier, final UriInfo uriInfo) {
66 return delegate.getModule(identifier, uriInfo);
70 public NormalizedNodeContext getOperations(final UriInfo uriInfo) {
71 return delegate.getOperations(uriInfo);
75 public NormalizedNodeContext getOperations(final String identifier, final UriInfo uriInfo) {
76 return delegate.getOperations(identifier, uriInfo);
80 public NormalizedNodeContext invokeRpc(final String identifier, final NormalizedNodeContext payload, final UriInfo uriInfo) {
81 rpc.incrementAndGet();
82 return delegate.invokeRpc(identifier, payload, uriInfo);
86 public NormalizedNodeContext invokeRpc(final String identifier, final String noPayload, final UriInfo uriInfo) {
87 rpc.incrementAndGet();
88 return delegate.invokeRpc(identifier, noPayload, uriInfo);
92 public NormalizedNodeContext readConfigurationData(final String identifier, final UriInfo uriInfo) {
93 configGet.incrementAndGet();
94 NormalizedNodeContext normalizedNodeContext = null;
96 normalizedNodeContext = delegate.readConfigurationData(identifier, uriInfo);
97 if (normalizedNodeContext.getData() != null) {
98 successGetConfig.incrementAndGet();
101 failureGetConfig.incrementAndGet();
103 } catch (Exception e) {
104 failureGetConfig.incrementAndGet();
107 return normalizedNodeContext;
111 public NormalizedNodeContext readOperationalData(final String identifier, final UriInfo uriInfo) {
112 operationalGet.incrementAndGet();
113 NormalizedNodeContext normalizedNodeContext = null;
115 normalizedNodeContext = delegate.readOperationalData(identifier, uriInfo);
116 if (normalizedNodeContext.getData() != null) {
117 successGetOperational.incrementAndGet();
120 failureGetOperational.incrementAndGet();
122 } catch (Exception e) {
123 failureGetOperational.incrementAndGet();
126 return normalizedNodeContext;
130 public Response updateConfigurationData(final String identifier, final NormalizedNodeContext payload) {
131 configPut.incrementAndGet();
132 Response response = null;
134 response = delegate.updateConfigurationData(identifier, payload);
135 if (response.getStatus() == Status.OK.getStatusCode()) {
136 successPut.incrementAndGet();
139 failurePut.incrementAndGet();
141 } catch (Exception e) {
142 failurePut.incrementAndGet();
149 public Response createConfigurationData(final String identifier, final NormalizedNodeContext payload, final UriInfo uriInfo) {
150 configPost.incrementAndGet();
151 Response response = null;
153 response = delegate.createConfigurationData(identifier, payload, uriInfo);
154 if (response.getStatus() == Status.OK.getStatusCode()) {
155 successPost.incrementAndGet();
158 failurePost.incrementAndGet();
160 } catch (Exception e) {
161 failurePost.incrementAndGet();
168 public Response createConfigurationData(final NormalizedNodeContext payload, final UriInfo uriInfo) {
169 configPost.incrementAndGet();
170 Response response = null;
172 response = delegate.createConfigurationData(payload, uriInfo);
173 if (response.getStatus() == Status.OK.getStatusCode()) {
174 successPost.incrementAndGet();
177 failurePost.incrementAndGet();
179 }catch (Exception e) {
180 failurePost.incrementAndGet();
187 public Response deleteConfigurationData(final String identifier) {
188 configDelete.incrementAndGet();
189 Response response = null;
191 response = delegate.deleteConfigurationData(identifier);
192 if (response.getStatus() == Status.OK.getStatusCode()) {
193 successDelete.incrementAndGet();
196 failureDelete.incrementAndGet();
198 } catch (Exception e) {
199 failureDelete.incrementAndGet();
206 public Response subscribeToStream(final String identifier, final UriInfo uriInfo) {
207 return delegate.subscribeToStream(identifier, uriInfo);
211 public NormalizedNodeContext getAvailableStreams(final UriInfo uriInfo) {
212 return delegate.getAvailableStreams(uriInfo);
216 public PATCHStatusContext patchConfigurationData(final String identifier, final PATCHContext payload, final UriInfo
218 return delegate.patchConfigurationData(identifier, payload, uriInfo);
222 public PATCHStatusContext patchConfigurationData(final PATCHContext payload, final UriInfo uriInfo) {
223 return delegate.patchConfigurationData(payload, uriInfo);
226 public BigInteger getConfigDelete() {
227 return BigInteger.valueOf(configDelete.get());
230 public BigInteger getConfigGet() {
231 return BigInteger.valueOf(configGet.get());
234 public BigInteger getConfigPost() {
235 return BigInteger.valueOf(configPost.get());
238 public BigInteger getConfigPut() {
239 return BigInteger.valueOf(configPut.get());
242 public BigInteger getOperationalGet() {
243 return BigInteger.valueOf(operationalGet.get());
246 public BigInteger getRpc() {
247 return BigInteger.valueOf(rpc.get());
250 public BigInteger getSuccessGetConfig() {
251 return BigInteger.valueOf(successGetConfig.get());
254 public BigInteger getSuccessGetOperational() {
255 return BigInteger.valueOf(successGetOperational.get());
258 public BigInteger getSuccessPost() {
259 return BigInteger.valueOf(successPost.get());
262 public BigInteger getSuccessPut() {
263 return BigInteger.valueOf(successPut.get());
266 public BigInteger getSuccessDelete() {
267 return BigInteger.valueOf(successDelete.get());
270 public BigInteger getFailureGetConfig() {
271 return BigInteger.valueOf(failureGetConfig.get());
274 public BigInteger getFailureGetOperational() {
275 return BigInteger.valueOf(failureGetOperational.get());
278 public BigInteger getFailurePost() {
279 return BigInteger.valueOf(failurePost.get());
282 public BigInteger getFailurePut() {
283 return BigInteger.valueOf(failurePut.get());
286 public BigInteger getFailureDelete() {
287 return BigInteger.valueOf(failureDelete.get());