Skip to content

Commit ca2207d

Browse files
committed
Set restart required to true for netwokr & VPC if router needs restart
1 parent 0d735f1 commit ca2207d

File tree

3 files changed

+37
-11
lines changed

3 files changed

+37
-11
lines changed

server/src/main/java/com/cloud/network/element/VirtualRouterElement.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424

2525
import javax.inject.Inject;
2626

27+
import com.cloud.network.dao.NetworkVO;
28+
import com.cloud.network.vpc.VpcVO;
29+
import com.cloud.network.vpc.dao.VpcDao;
2730
import org.apache.commons.collections.CollectionUtils;
2831
import org.springframework.beans.factory.annotation.Autowired;
2932
import org.springframework.beans.factory.annotation.Qualifier;
@@ -125,6 +128,8 @@ public class VirtualRouterElement extends AdapterBase implements VirtualRouterEl
125128
@Inject
126129
NetworkDao _networksDao;
127130
@Inject
131+
VpcDao _vpcDao;
132+
@Inject
128133
NetworkModel _networkMdl;
129134
@Inject
130135
LoadBalancingRulesManager _lbMgr;
@@ -1369,6 +1374,7 @@ public void configureResource(Network network) {
13691374
router.setUpdateState(VirtualRouter.UpdateState.UPDATE_NEEDED);
13701375
_routerDao.persist(router);
13711376
}
1377+
setRestartRequiredForNetwork(network, true);
13721378
}
13731379

13741380
@Override
@@ -1390,5 +1396,17 @@ private void updateToFailedState(Network network){
13901396
router.setUpdateState(VirtualRouter.UpdateState.UPDATE_FAILED);
13911397
_routerDao.persist(router);
13921398
}
1399+
setRestartRequiredForNetwork(network, true);
1400+
}
1401+
1402+
private void setRestartRequiredForNetwork(Network network, boolean restartRequired) {
1403+
NetworkVO networkVo = _networksDao.findById(network.getId());
1404+
networkVo.setRestartRequired(restartRequired);
1405+
if (networkVo.getVpcId() == null) {
1406+
VpcVO vpc = _vpcDao.findById(networkVo.getVpcId());
1407+
vpc.setRestartRequired(restartRequired);
1408+
_vpcDao.persist(vpc);
1409+
}
1410+
_networksDao.persist(networkVo);
13931411
}
13941412
}

ui/src/components/page/GlobalLayout.vue

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,15 @@
1717

1818
<template>
1919
<div>
20-
<a-affix v-if="getNumberOfAlerts() > 0" >
20+
<a-affix v-if="alertCount > 0" >
2121
<a-alert
2222
v-if="this.$config.alertMessage && this.$config.alertMessage !== ''"
2323
:type="this.$config.alertMessageType ? this.$config.alertMessageType : 'info'"
2424
:showIcon="false"
2525
banner
26-
class="alertHeader">
26+
class="alertHeader"
27+
closable
28+
@close="closeCustomAlert()">
2729
<template #message>
2830
<span v-html="$config.alertMessage"></span>
2931
</template>
@@ -39,7 +41,7 @@
3941

4042
</a-affix>
4143
<a-layout class="layout" :class="[device]">
42-
<a-affix style="z-index: 200" :offsetTop="this.getNumberOfAlerts() * 25">
44+
<a-affix style="z-index: 200" :offsetTop="alertCount * 25">
4345
<template v-if="isSideMenu()">
4446
<a-drawer
4547
v-if="isMobile()"
@@ -102,7 +104,7 @@
102104
<!-- layout header -->
103105
<a-affix style="z-index: 100">
104106
<global-header
105-
:style="'margin-top: ' + this.getNumberOfAlerts() * 25 + 'px;'"
107+
:style="'margin-top: ' + alertCount * 25 + 'px;'"
106108
:mode="layoutMode"
107109
:menus="menus"
108110
:theme="navTheme"
@@ -162,7 +164,8 @@ export default {
162164
collapsed: false,
163165
menus: [],
164166
showSetting: false,
165-
showClear: false
167+
showClear: false,
168+
alertCount: 0
166169
}
167170
},
168171
computed: {
@@ -221,6 +224,7 @@ export default {
221224
const readyForShutdownPollingJob = setInterval(this.checkShutdown, 5000)
222225
this.$store.commit('SET_READY_FOR_SHUTDOWN_POLLING_JOB', readyForShutdownPollingJob)
223226
}
227+
this.getNumberOfAlerts()
224228
},
225229
mounted () {
226230
const layoutMode = this.$config.theme['@layout-mode'] || 'light'
@@ -280,14 +284,18 @@ export default {
280284
})
281285
},
282286
getNumberOfAlerts () {
283-
let count = 0
287+
this.alertCount = 0
284288
if (this.$store.getters.shutdownTriggered) {
285-
count++
289+
this.alertCount++
286290
}
287291
if (this.$config.alertMessage && this.$config.alertMessage !== '') {
288-
count++
292+
this.alertCount++
289293
}
290-
return count
294+
return this.alertCount
295+
},
296+
closeCustomAlert () {
297+
this.$config.alertMessage = ''
298+
this.alertCount--
291299
}
292300
}
293301
}

ui/src/store/modules/user.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -348,14 +348,14 @@ const user = {
348348
reject(error)
349349
})
350350

351-
api('listNetworks', { restartrequired: true }).then(response => {
351+
api('listNetworks', { restartrequired: true, forvpc: false }).then(response => {
352352
if (response.listnetworksresponse.count > 0) {
353353
store.dispatch('AddHeaderNotice', {
354354
key: 'NETWORK_RESTART_REQUIRED',
355355
title: i18n.global.t('label.network.restart.required'),
356356
description: i18n.global.t('message.network.restart.required'),
357357
path: '/guestnetwork/',
358-
query: { restartrequired: true },
358+
query: { restartrequired: true, forvpc: false },
359359
status: 'done',
360360
timestamp: new Date()
361361
})

0 commit comments

Comments
 (0)