2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 AT&T Intellectual Property. All rights
7 * ================================================================================
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
12 * http://www.apache.org/licenses/LICENSE-2.0
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.ccsdk.sli.plugins.grtoolkit.data;
24 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.cluster.health.output.MembersBuilder;
25 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.CommitStatusBuilder;
26 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.ReplicasBuilder;
27 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.LeaderBuilder;
29 import java.util.ArrayList;
30 import java.util.List;
34 * Extends the {@code MembersBuilder} generated from the gr-toolkit.yang model.
35 * Uses information from a {@code ClusterActor} to populate the builder fields.
37 * @author Anthony Haddox
39 * @see org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.cluster.health.output.MembersBuilder
41 public class MemberBuilder extends MembersBuilder {
42 public MemberBuilder(ClusterActor actor) {
44 this.setAddress(actor.getNode());
45 this.setRole(actor.getMember());
46 this.setVoting(actor.isVoting());
47 this.setUp(actor.isUp());
48 this.setUnreachable(actor.isUnreachable());
49 populateReplicas(actor.getReplicaShards());
50 populateCommits(actor.getCommits());
51 populateLeader(actor.getShardLeader());
54 private void populateLeader(List<String> shardLeader) {
55 LeaderBuilder builder;
56 this.setLeader(new ArrayList<>());
57 for(String leader : shardLeader) {
58 builder = new LeaderBuilder();
59 builder.setShard(leader);
60 this.getLeader().add(builder.build());
64 private void populateCommits(Map<String, Integer> commits) {
65 CommitStatusBuilder builder;
66 this.setCommitStatus(new ArrayList<>());
67 for(Map.Entry<String, Integer> entry : commits.entrySet()) {
68 String key = entry.getKey();
69 Integer value = entry.getValue();
71 builder = new CommitStatusBuilder();
72 builder.setShard(key);
73 builder.setDelta(value);
74 this.getCommitStatus().add(builder.build());
79 private void populateReplicas(List<String> replicaShards) {
80 ReplicasBuilder builder;
81 this.setReplicas(new ArrayList<>());
82 for(String shard : replicaShards) {
83 builder = new ReplicasBuilder();
84 builder.setShard(shard);
85 this.getReplicas().add(builder.build());