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.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.CommitStatus;
27 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.ReplicasBuilder;
28 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.Replicas;
29 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.LeaderBuilder;
30 import org.opendaylight.yang.gen.v1.org.onap.ccsdk.sli.plugins.gr.toolkit.rev180926.member.Leader;
33 import java.util.HashMap;
34 import java.util.ArrayList;
35 import java.util.List;
37 public class MemberBuilder extends MembersBuilder {
38 public MemberBuilder(ClusterActor actor) {
40 this.setAddress(actor.getNode());
41 this.setRole(actor.getMember());
42 this.setVoting(actor.isVoting());
43 this.setUp(actor.isUp());
44 this.setUnreachable(actor.isUnreachable());
45 populateReplicas(actor.getReplicaShards());
46 populateCommits(actor.getCommits());
47 populateLeader(actor.getShardLeader());
48 //actor.getNonReplicaShards();
51 private void populateLeader(ArrayList<String> shardLeader) {
52 LeaderBuilder builder;
53 this.setLeader((List) new ArrayList<Leader>());
54 for(String leader : shardLeader) {
55 builder = new LeaderBuilder();
56 builder.setShard(leader);
57 this.getLeader().add(builder.build());
61 private void populateCommits(HashMap<String, Integer> commits) {
62 CommitStatusBuilder builder;
63 this.setCommitStatus((List) new ArrayList<CommitStatus>());
64 for(String key : commits.keySet()) {
65 if(commits.get(key) != 0) {
66 builder = new CommitStatusBuilder();
67 builder.setShard(key);
68 builder.setDelta(commits.get(key));
69 this.getCommitStatus().add(builder.build());
74 private void populateReplicas(ArrayList<String> replicaShards) {
75 ReplicasBuilder builder;
76 this.setReplicas((List) new ArrayList<Replicas>());
77 for(String shard : replicaShards) {
78 builder = new ReplicasBuilder();
79 builder.setShard(shard);
80 this.getReplicas().add(builder.build());