2 * Copyright (c) 2016 Hewlett Packard Enterprise, Co. 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.netvirt.statistics;
10 import java.util.concurrent.ExecutionException;
11 import java.util.concurrent.Future;
12 import java.util.function.Supplier;
14 import org.opendaylight.infrautils.counters.api.OccurenceCounter;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetNodeConnectorStatisticsInput;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetNodeConnectorStatisticsOutput;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.OpendaylightDirectStatisticsService;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorId;
19 import org.opendaylight.yangtools.yang.common.RpcResult;
21 public class NodeConnectorStatisticsSupplier implements Supplier<NodeConnectorStatisticsSupplierOutput> {
23 private final OpendaylightDirectStatisticsService odlDirectStatsService;
24 private GetNodeConnectorStatisticsInput gncsi;
25 private NodeConnectorId nodeConnectorId;
27 public NodeConnectorStatisticsSupplier(OpendaylightDirectStatisticsService odlDirectStatsService,
28 GetNodeConnectorStatisticsInput gncsi, NodeConnectorId nodeConnectorId) {
29 this.odlDirectStatsService = odlDirectStatsService;
31 this.nodeConnectorId = nodeConnectorId;
35 public NodeConnectorStatisticsSupplierOutput get() {
36 Future<RpcResult<GetNodeConnectorStatisticsOutput>> rpcResultFuture =
37 odlDirectStatsService.getNodeConnectorStatistics(gncsi);
38 RpcResult<GetNodeConnectorStatisticsOutput> rpcResult = null;
40 rpcResult = rpcResultFuture.get();
41 } catch (InterruptedException | ExecutionException e) {
42 RpcSupplierCounters.failed_getting_node_connector_counters.inc();
45 return new NodeConnectorStatisticsSupplierOutput(rpcResult, nodeConnectorId);
48 enum RpcSupplierCounters {
49 failed_getting_node_connector_counters, //
51 private OccurenceCounter counter;
53 RpcSupplierCounters() {
54 counter = new OccurenceCounter(getClass().getEnclosingClass().getSimpleName(), name(), "");