8bbf574d6707b90bd5fc9bab61bbeb5a48f36f02
[ccsdk/sli/plugins.git] / grToolkit / provider / src / main / java / org / onap / ccsdk / sli / plugins / grtoolkit / data / MemberBuilder.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * openECOMP : SDN-C
4  * ================================================================================
5  * Copyright (C) 2018 AT&T Intellectual Property. All rights
6  *                      reserved.
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
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
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=========================================================
20  */
21
22 package org.onap.ccsdk.sli.plugins.grtoolkit.data;
23
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;
28
29 import java.util.ArrayList;
30 import java.util.List;
31 import java.util.Map;
32
33 public class MemberBuilder extends MembersBuilder {
34     public MemberBuilder(ClusterActor actor) {
35         super();
36         this.setAddress(actor.getNode());
37         this.setRole(actor.getMember());
38         this.setVoting(actor.isVoting());
39         this.setUp(actor.isUp());
40         this.setUnreachable(actor.isUnreachable());
41         populateReplicas(actor.getReplicaShards());
42         populateCommits(actor.getCommits());
43         populateLeader(actor.getShardLeader());
44     }
45
46     private void populateLeader(List<String> shardLeader) {
47         LeaderBuilder builder;
48         this.setLeader(new ArrayList<>());
49         for(String leader : shardLeader) {
50             builder = new LeaderBuilder();
51             builder.setShard(leader);
52             this.getLeader().add(builder.build());
53         }
54     }
55
56     private void populateCommits(Map<String, Integer> commits) {
57         CommitStatusBuilder builder;
58         this.setCommitStatus(new ArrayList<>());
59         for(Map.Entry<String, Integer> entry : commits.entrySet()) {
60             String key = entry.getKey();
61             Integer value = entry.getValue();
62             if(value != 0) {
63                 builder = new CommitStatusBuilder();
64                 builder.setShard(key);
65                 builder.setDelta(value);
66                 this.getCommitStatus().add(builder.build());
67             }
68         }
69     }
70
71     private void populateReplicas(List<String> replicaShards) {
72         ReplicasBuilder builder;
73         this.setReplicas(new ArrayList<>());
74         for(String shard : replicaShards) {
75             builder = new ReplicasBuilder();
76             builder.setShard(shard);
77             this.getReplicas().add(builder.build());
78         }
79     }
80 }