Skip to content

Commit 1961aea

Browse files
Merge branch '4.19' into 4.20
2 parents e9918ba + a32738c commit 1961aea

File tree

9 files changed

+46
-1
lines changed

9 files changed

+46
-1
lines changed

engine/schema/src/main/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDao.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,6 @@ public interface AutoScaleVmGroupVmMapDao extends GenericDao<AutoScaleVmGroupVmM
3737
public boolean removeByGroup(long vmGroupId);
3838

3939
int expungeByVmList(List<Long> vmIds, Long batchSize);
40+
41+
int getErroredInstanceCount(long vmGroupId);
4042
}

engine/schema/src/main/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImpl.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,13 @@ public int expungeByVmList(List<Long> vmIds, Long batchSize) {
127127
sc.setParameters("vmIds", vmIds.toArray());
128128
return batchExpunge(sc, batchSize);
129129
}
130+
131+
@Override
132+
public int getErroredInstanceCount(long vmGroupId) {
133+
SearchCriteria<Integer> sc = CountBy.create();
134+
sc.setParameters("vmGroupId", vmGroupId);
135+
sc.setJoinParameters("vmSearch", "states", State.Error);
136+
final List<Integer> results = customSearch(sc, null);
137+
return results.get(0);
138+
}
130139
}

server/src/main/java/com/cloud/configuration/ConfigurationManagerImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@
5050
import javax.inject.Inject;
5151
import javax.naming.ConfigurationException;
5252

53+
54+
import com.cloud.network.as.AutoScaleManager;
5355
import com.cloud.user.AccountManagerImpl;
5456
import org.apache.cloudstack.acl.RoleType;
5557
import org.apache.cloudstack.acl.SecurityChecker;
@@ -582,6 +584,7 @@ protected void populateConfigValuesForValidationSet() {
582584
configValuesForValidation.add(UserDataManager.VM_USERDATA_MAX_LENGTH_STRING);
583585
configValuesForValidation.add(UnmanagedVMsManager.RemoteKvmInstanceDisksCopyTimeout.key());
584586
configValuesForValidation.add(UnmanagedVMsManager.ConvertVmwareInstanceToKvmTimeout.key());
587+
configValuesForValidation.add(AutoScaleManager.AutoScaleErroredInstanceThreshold.key());
585588
}
586589

587590
protected void weightBasedParametersForValidation() {

server/src/main/java/com/cloud/network/as/AutoScaleManager.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@ public interface AutoScaleManager extends AutoScaleService {
3939
"The Number of worker threads to scan the autoscale vm groups.",
4040
false);
4141

42+
ConfigKey<Integer> AutoScaleErroredInstanceThreshold = new ConfigKey<>(ConfigKey.CATEGORY_ADVANCED, Integer.class,
43+
"autoscale.errored.instance.threshold",
44+
"10",
45+
"The number of Error Instances allowed in autoscale vm groups for scale up.",
46+
true);
47+
4248
void checkAutoScaleUser(Long autoscaleUserId, long accountId);
4349

4450
boolean deleteAutoScaleVmGroupsByAccount(Account account);

server/src/main/java/com/cloud/network/as/AutoScaleManagerImpl.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1718,6 +1718,11 @@ private boolean checkConditionUp(AutoScaleVmGroupVO asGroup, Integer numVm) {
17181718
logger.warn("number of VM will greater than the maximum in this group if scaling up, so do nothing more");
17191719
return false;
17201720
}
1721+
int erroredInstanceCount = autoScaleVmGroupVmMapDao.getErroredInstanceCount(asGroup.getId());
1722+
if (erroredInstanceCount > AutoScaleManager.AutoScaleErroredInstanceThreshold.value()) {
1723+
logger.warn("Number of Errored Instances are greater than the threshold in this group for scaling up, so do nothing more");
1724+
return false;
1725+
}
17211726
return true;
17221727
}
17231728

@@ -2198,7 +2203,8 @@ public ConfigKey<?>[] getConfigKeys() {
21982203
return new ConfigKey<?>[] {
21992204
AutoScaleStatsInterval,
22002205
AutoScaleStatsCleanupDelay,
2201-
AutoScaleStatsWorker
2206+
AutoScaleStatsWorker,
2207+
AutoScaleErroredInstanceThreshold
22022208
};
22032209
}
22042210

ui/src/views/offering/AddComputeOffering.vue

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
<tooltip-label :title="$t('label.systemvmtype')" :tooltip="apiParams.systemvmtype.description"/>
4848
</template>
4949
<a-select
50+
:getPopupContainer="(trigger) => trigger.parentNode"
5051
v-model:value="form.systemvmtype"
5152
showSearch
5253
optionFilterProp="label"
@@ -214,6 +215,7 @@
214215
<tooltip-label :title="$t('label.deploymentplanner')" :tooltip="apiParams.deploymentplanner.description"/>
215216
</template>
216217
<a-select
218+
:getPopupContainer="(trigger) => trigger.parentNode"
217219
v-model:value="form.deploymentplanner"
218220
showSearch
219221
optionFilterProp="label"
@@ -245,6 +247,7 @@
245247
</a-form-item>
246248
<a-form-item name="pcidevice" ref="pcidevice" :label="$t('label.gpu')" v-if="!isSystem">
247249
<a-select
250+
:getPopupContainer="(trigger) => trigger.parentNode"
248251
v-model:value="form.pcidevice"
249252
showSearch
250253
optionFilterProp="label"
@@ -260,6 +263,7 @@
260263
</a-form-item>
261264
<a-form-item name="vgputype" ref="vgputype" :label="$t('label.vgputype')" v-if="vGpuVisible">
262265
<a-select
266+
:getPopupContainer="(trigger) => trigger.parentNode"
263267
v-model:value="form.vgputype"
264268
showSearch
265269
optionFilterProp="label"
@@ -281,6 +285,7 @@
281285
</template>
282286
<a-select
283287
mode="multiple"
288+
:getPopupContainer="(trigger) => trigger.parentNode"
284289
v-model:value="form.domainid"
285290
showSearch
286291
optionFilterProp="label"
@@ -305,6 +310,7 @@
305310
<a-select
306311
id="zone-selection"
307312
mode="multiple"
313+
:getPopupContainer="(trigger) => trigger.parentNode"
308314
v-model:value="form.zoneid"
309315
showSearch
310316
optionFilterProp="label"
@@ -331,6 +337,7 @@
331337
<tooltip-label :title="$t('label.vmware.storage.policy')" :tooltip="apiParams.storagepolicy.description"/>
332338
</template>
333339
<a-select
340+
:getPopupContainer="(trigger) => trigger.parentNode"
334341
v-model:value="form.storagepolicy"
335342
:placeholder="apiParams.storagepolicy.description"
336343
showSearch
@@ -525,6 +532,7 @@
525532
</template>
526533
<a-select
527534
mode="tags"
535+
:getPopupContainer="(trigger) => trigger.parentNode"
528536
v-model:value="form.storagetags"
529537
showSearch
530538
optionFilterProp="value"
@@ -564,6 +572,7 @@
564572
<br /><br />
565573
<a-form-item :label="$t('label.disk.offerings')" name="diskofferingid" ref="diskofferingid">
566574
<a-select
575+
:getPopupContainer="(trigger) => trigger.parentNode"
567576
v-model:value="form.diskofferingid"
568577
:loading="loading"
569578
:placeholder="$t('label.diskoffering')">

ui/src/views/offering/AddDiskOffering.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@
218218
<tooltip-label :title="$t('label.storagetags')" :tooltip="apiParams.tags.description"/>
219219
</template>
220220
<a-select
221+
:getPopupContainer="(trigger) => trigger.parentNode"
221222
mode="tags"
222223
v-model:value="form.tags"
223224
showSearch
@@ -242,6 +243,7 @@
242243
</template>
243244
<a-select
244245
mode="multiple"
246+
:getPopupContainer="(trigger) => trigger.parentNode"
245247
v-model:value="form.domainid"
246248
showSearch
247249
optionFilterProp="label"
@@ -266,6 +268,7 @@
266268
<a-select
267269
id="zone-selection"
268270
mode="multiple"
271+
:getPopupContainer="(trigger) => trigger.parentNode"
269272
v-model:value="form.zoneid"
270273
showSearch
271274
optionFilterProp="label"
@@ -289,6 +292,7 @@
289292
<tooltip-label :title="$t('label.vmware.storage.policy')" :tooltip="apiParams.storagepolicy.description"/>
290293
</template>
291294
<a-select
295+
:getPopupContainer="(trigger) => trigger.parentNode"
292296
v-model:value="form.storagepolicy"
293297
:placeholder="apiParams.storagepolicy.description"
294298
showSearch

ui/src/views/offering/AddNetworkOffering.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,7 @@
323323
<tooltip-label :title="$t('label.serviceofferingid')" :tooltip="apiParams.serviceofferingid.description"/>
324324
</template>
325325
<a-select
326+
:getPopupContainer="(trigger) => trigger.parentNode"
326327
showSearch
327328
optionFilterProp="label"
328329
v-model:value="form.serviceofferingid"
@@ -505,6 +506,7 @@
505506
</template>
506507
<a-select
507508
mode="multiple"
509+
:getPopupContainer="(trigger) => trigger.parentNode"
508510
v-model:value="form.domainid"
509511
showSearch
510512
optionFilterProp="label"
@@ -529,6 +531,7 @@
529531
<a-select
530532
id="zone-selection"
531533
mode="multiple"
534+
:getPopupContainer="(trigger) => trigger.parentNode"
532535
v-model:value="form.zoneid"
533536
showSearch
534537
optionFilterProp="label"

ui/src/views/offering/AddVpcOffering.vue

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@
167167
<tooltip-label :title="$t('label.serviceofferingid')" :tooltip="apiParams.serviceofferingid.description"/>
168168
</template>
169169
<a-select
170+
:getPopupContainer="(trigger) => trigger.parentNode"
170171
showSearch
171172
optionFilterProp="label"
172173
v-model:value="form.serviceofferingid"
@@ -189,6 +190,7 @@
189190
</template>
190191
<a-select
191192
mode="multiple"
193+
:getPopupContainer="(trigger) => trigger.parentNode"
192194
v-model:value="form.domainid"
193195
showSearch
194196
optionFilterProp="label"
@@ -213,6 +215,7 @@
213215
<a-select
214216
id="zone-selection"
215217
mode="multiple"
218+
:getPopupContainer="(trigger) => trigger.parentNode"
216219
v-model:value="form.zoneid"
217220
showSearch
218221
optionFilterProp="label"

0 commit comments

Comments
 (0)