1+ // Licensed to the Apache Software Foundation (ASF) under one
2+ // or more contributor license agreements. See the NOTICE file
3+ // distributed with this work for additional information
4+ // regarding copyright ownership. The ASF licenses this file
5+ // to you under the Apache License, Version 2.0 (the
6+ // "License"); you may not use this file except in compliance
7+ // with the License. You may obtain a copy of the License at
8+ //
9+ // http://www.apache.org/licenses/LICENSE-2.0
10+ //
11+ // Unless required by applicable law or agreed to in writing,
12+ // software distributed under the License is distributed on an
13+ // "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+ // KIND, either express or implied. See the License for the
15+ // specific language governing permissions and limitations
16+ // under the License.
17+ package com .cloud .agent .api .to ;
18+
19+ import com .cloud .network .as .AutoScalePolicy ;
20+ import com .cloud .network .as .AutoScaleVmGroup ;
21+ import com .cloud .network .as .Condition ;
22+ import com .cloud .network .as .Counter ;
23+ import com .cloud .utils .Pair ;
24+ import org .junit .Assert ;
25+ import org .junit .Before ;
26+ import org .junit .Test ;
27+
28+ import java .util .ArrayList ;
29+ import java .util .Arrays ;
30+ import java .util .Date ;
31+ import java .util .List ;
32+
33+ public class LoadBalancerTOTest {
34+
35+ LoadBalancerTO .CounterTO counter ;
36+ LoadBalancerTO .ConditionTO condition ;
37+ LoadBalancerTO .AutoScalePolicyTO scaleUpPolicy ;
38+ LoadBalancerTO .AutoScalePolicyTO scaleDownPolicy ;
39+
40+ LoadBalancerTO .AutoScaleVmProfileTO vmProfile ;
41+ LoadBalancerTO .AutoScaleVmGroupTO vmGroup ;
42+
43+ private static final Long counterId = 1L ;
44+ private static final String counterName = "counter name" ;
45+ private static final Counter .Source counterSource = Counter .Source .cpu ;
46+ private static final String counterValue = "counter value" ;
47+ private static final String counterProvider = "VIRTUALROUTER" ;
48+
49+ private static final Long conditionId = 2L ;
50+ private static final Long threshold = 100L ;
51+ private static final Condition .Operator relationalOperator = Condition .Operator .GT ;
52+
53+ private static final Long scaleUpPolicyId = 11L ;
54+ private static final int scaleUpPolicyDuration = 61 ;
55+ private static final int scaleUpPolicyQuietTime = 31 ;
56+ private static final Date scaleUpPolicyLastQuietTime = new Date ();
57+
58+ private static final Long scaleDownPolicyId = 12L ;
59+ private static final int scaleDownPolicyDuration = 62 ;
60+ private static final int scaleDownPolicyQuietTime = 32 ;
61+ private static final Date scaleDownPolicyLastQuietTime = new Date ();
62+
63+ private static final String zoneId = "1111-1111-1112" ;
64+ private static final String domainId = "1111-1111-1113" ;
65+ private static final String serviceOfferingId = "1111-1111-1114" ;
66+ private static final String templateId = "1111-1111-1115" ;
67+ private static final String otherDeployParams = "otherDeployParams" ;
68+ private static final List <Pair <String , String >> counterParamList = new ArrayList <>();
69+ private static final Integer destroyVmGraceperiod = 33 ;
70+ private static final String cloudStackApiUrl = "cloudstack url" ;
71+ private static final String autoScaleUserApiKey = "cloudstack api key" ;
72+ private static final String autoScaleUserSecretKey = "cloudstack secret key" ;
73+ private static final String vmName = "vm name" ;
74+ private static final String networkId = "1111-1111-1116" ;
75+
76+ private static final Long vmGroupId = 22L ;
77+ private static final String vmGroupUuid = "2222-2222-1111" ;
78+ private static final int minMembers = 2 ;
79+ private static final int maxMembers = 3 ;
80+ private static final int memberPort = 8080 ;
81+ private static final int interval = 30 ;
82+ private static final AutoScaleVmGroup .State state = AutoScaleVmGroup .State .Enabled ;
83+ private static final AutoScaleVmGroup .State currentState = AutoScaleVmGroup .State .Disabled ;
84+ private static final Long loadBalancerId = 21L ;
85+
86+ @ Before
87+ public void setUp () {
88+ counter = new LoadBalancerTO .CounterTO (counterId , counterName , counterSource , counterValue , counterProvider );
89+ condition = new LoadBalancerTO .ConditionTO (conditionId , threshold , relationalOperator , counter );
90+ scaleUpPolicy = new LoadBalancerTO .AutoScalePolicyTO (scaleUpPolicyId , scaleUpPolicyDuration , scaleUpPolicyQuietTime ,
91+ scaleUpPolicyLastQuietTime , AutoScalePolicy .Action .ScaleUp ,
92+ Arrays .asList (new LoadBalancerTO .ConditionTO []{ condition }), false );
93+ scaleDownPolicy = new LoadBalancerTO .AutoScalePolicyTO (scaleDownPolicyId , scaleDownPolicyDuration , scaleDownPolicyQuietTime ,
94+ scaleDownPolicyLastQuietTime , AutoScalePolicy .Action .ScaleDown ,
95+ Arrays .asList (new LoadBalancerTO .ConditionTO []{ condition }), false );
96+ vmProfile = new LoadBalancerTO .AutoScaleVmProfileTO (zoneId , domainId , cloudStackApiUrl , autoScaleUserApiKey ,
97+ autoScaleUserSecretKey , serviceOfferingId , templateId , vmName , networkId , otherDeployParams ,
98+ counterParamList , destroyVmGraceperiod );
99+ vmGroup = new LoadBalancerTO .AutoScaleVmGroupTO (vmGroupId , vmGroupUuid , minMembers , maxMembers , memberPort ,
100+ interval , Arrays .asList (new LoadBalancerTO .AutoScalePolicyTO []{ scaleUpPolicy , scaleDownPolicy }),
101+ vmProfile , state , currentState , loadBalancerId );
102+ }
103+
104+ @ Test
105+ public void testCounterTO () {
106+ Assert .assertEquals (counterId , counter .getId ());
107+ Assert .assertEquals (counterName , counter .getName ());
108+ Assert .assertEquals (counterSource , counter .getSource ());
109+ Assert .assertEquals (counterValue , counter .getValue ());
110+ Assert .assertEquals (counterProvider , counter .getProvider ());
111+ }
112+
113+ @ Test
114+ public void testConditionTO () {
115+ Assert .assertEquals (conditionId , condition .getId ());
116+ Assert .assertEquals ((long ) threshold , condition .getThreshold ());
117+ Assert .assertEquals (relationalOperator , condition .getRelationalOperator ());
118+ Assert .assertEquals (counter , condition .getCounter ());
119+ }
120+
121+ @ Test
122+ public void testAutoScalePolicyTO () {
123+ Assert .assertEquals ((long ) scaleUpPolicyId , scaleUpPolicy .getId ());
124+ Assert .assertEquals (scaleUpPolicyDuration , scaleUpPolicy .getDuration ());
125+ Assert .assertEquals (scaleUpPolicyQuietTime , scaleUpPolicy .getQuietTime ());
126+ Assert .assertEquals (scaleUpPolicyLastQuietTime , scaleUpPolicy .getLastQuietTime ());
127+ Assert .assertEquals (AutoScalePolicy .Action .ScaleUp , scaleUpPolicy .getAction ());
128+ Assert .assertFalse (scaleUpPolicy .isRevoked ());
129+ List <LoadBalancerTO .ConditionTO > scaleUpPolicyConditions = scaleUpPolicy .getConditions ();
130+ Assert .assertEquals (1 , scaleUpPolicyConditions .size ());
131+ Assert .assertEquals (condition , scaleUpPolicyConditions .get (0 ));
132+
133+ Assert .assertEquals ((long ) scaleDownPolicyId , scaleDownPolicy .getId ());
134+ Assert .assertEquals (scaleDownPolicyDuration , scaleDownPolicy .getDuration ());
135+ Assert .assertEquals (scaleDownPolicyQuietTime , scaleDownPolicy .getQuietTime ());
136+ Assert .assertEquals (scaleDownPolicyLastQuietTime , scaleDownPolicy .getLastQuietTime ());
137+ Assert .assertEquals (AutoScalePolicy .Action .ScaleDown , scaleDownPolicy .getAction ());
138+ Assert .assertFalse (scaleDownPolicy .isRevoked ());
139+ List <LoadBalancerTO .ConditionTO > scaleDownPolicyConditions = scaleDownPolicy .getConditions ();
140+ Assert .assertEquals (1 , scaleDownPolicyConditions .size ());
141+ Assert .assertEquals (condition , scaleDownPolicyConditions .get (0 ));
142+ }
143+
144+ @ Test
145+ public void testAutoScaleVmProfileTO () {
146+ Assert .assertEquals (zoneId , vmProfile .getZoneId ());
147+ Assert .assertEquals (domainId , vmProfile .getDomainId ());
148+ Assert .assertEquals (templateId , vmProfile .getTemplateId ());
149+ Assert .assertEquals (serviceOfferingId , vmProfile .getServiceOfferingId ());
150+ Assert .assertEquals (otherDeployParams , vmProfile .getOtherDeployParams ());
151+ Assert .assertEquals (counterParamList , vmProfile .getCounterParamList ());
152+ Assert .assertEquals (destroyVmGraceperiod , vmProfile .getDestroyVmGraceperiod ());
153+ Assert .assertEquals (cloudStackApiUrl , vmProfile .getCloudStackApiUrl ());
154+ Assert .assertEquals (autoScaleUserApiKey , vmProfile .getAutoScaleUserApiKey ());
155+ Assert .assertEquals (autoScaleUserSecretKey , vmProfile .getAutoScaleUserSecretKey ());
156+ Assert .assertEquals (vmName , vmProfile .getVmName ());
157+ Assert .assertEquals (networkId , vmProfile .getNetworkId ());
158+ }
159+
160+ @ Test
161+ public void testAutoScaleVmGroupTO () {
162+ Assert .assertEquals (vmGroupId , vmGroup .getId ());
163+ Assert .assertEquals (vmGroupUuid , vmGroup .getUuid ());
164+ Assert .assertEquals (minMembers , vmGroup .getMinMembers ());
165+ Assert .assertEquals (maxMembers , vmGroup .getMaxMembers ());
166+ Assert .assertEquals (memberPort , vmGroup .getMemberPort ());
167+ Assert .assertEquals (interval , vmGroup .getInterval ());
168+ Assert .assertEquals (vmProfile , vmGroup .getProfile ());
169+ Assert .assertEquals (state , vmGroup .getState ());
170+ Assert .assertEquals (currentState , vmGroup .getCurrentState ());
171+ Assert .assertEquals (loadBalancerId , vmGroup .getLoadBalancerId ());
172+
173+ List <LoadBalancerTO .AutoScalePolicyTO > policies = vmGroup .getPolicies ();
174+ Assert .assertEquals (2 , policies .size ());
175+ }
176+ }
0 commit comments