This is an automated email from the ASF dual-hosted git repository. weizhou pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/cloudstack.git
commit 6e988b8953fc322dd536a65d046166ed71d9a334 Merge: 12d9c26747d 0204cb75e37 Author: Wei Zhou <[email protected]> AuthorDate: Fri Aug 30 08:16:31 2024 +0200 Merge remote-tracking branch 'apache/4.19' .../userdata/CloudInitUserDataProvider.java | 28 +++++++++++----- .../userdata/CloudInitUserDataProviderTest.java | 39 ++++++++++++++++++++-- ui/src/components/view/ListView.vue | 6 ++++ ui/src/config/section/network.js | 2 +- ui/src/utils/plugins.js | 2 +- 5 files changed, 63 insertions(+), 14 deletions(-) diff --cc engine/userdata/cloud-init/src/main/java/org/apache/cloudstack/userdata/CloudInitUserDataProvider.java index 6e1086c631e,feca8712a7d..6f633f6abb2 --- a/engine/userdata/cloud-init/src/main/java/org/apache/cloudstack/userdata/CloudInitUserDataProvider.java +++ b/engine/userdata/cloud-init/src/main/java/org/apache/cloudstack/userdata/CloudInitUserDataProvider.java @@@ -112,12 -121,14 +118,14 @@@ public class CloudInitUserDataProvider /** * Detect the user data type + * @param userdata the userdata string to detect the type + * @param defaultFormatType if not null, then use it in case the header does not exist in the userdata, otherwise fail * Reference: <a href="https://canonical-cloud-init.readthedocs-hosted.com/en/latest/explanation/format.html#user-data-formats" /> */ - protected FormatType getUserDataFormatType(String userdata) { + protected FormatType getUserDataFormatType(String userdata, FormatType defaultFormatType) { if (StringUtils.isBlank(userdata)) { String msg = "User data expected but provided empty user data"; - LOGGER.error(msg); + logger.error(msg); throw new CloudRuntimeException(msg); } diff --cc ui/src/components/view/ListView.vue index 5a779da182b,087c547aa69..27bd6a2fb36 --- a/ui/src/components/view/ListView.vue +++ b/ui/src/components/view/ListView.vue @@@ -242,17 -238,14 +242,23 @@@ </a> </template> <template v-if="column.key === 'guestnetworkname'"> - <router-link :to="{ path: '/guestnetwork/' + record.guestnetworkid }">{{ text }}</router-link> + <span v-if="['/router'].includes($route.path) && record.vpcid"> + <router-link :to="{ path: '/vpc/' + record.vpcid }"> + <deployment-unit-outlined/> + {{ record.vpcname || record.vpcid }} + </router-link> + </span> + <router-link v-else :to="{ path: '/guestnetwork/' + record.guestnetworkid }"> + <apartment-outlined/> + {{ text }} + </router-link> </template> + <template v-if="column.key === 'guest.networks' && record.network"> + <template v-for="(item, idx) in record.network" :key="idx"> + <router-link :to="{ path: '/guestnetwork/' + item.id }">{{ item.name }}</router-link> + <span v-if="idx < (record.network.length - 1)">, </span> + </template> + </template> <template v-if="column.key === 'associatednetworkname'"> <router-link :to="{ path: '/guestnetwork/' + record.associatednetworkid }">{{ text }}</router-link> </template>
