mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-12-19 05:49:02 +08:00
fix: Fix the issue of missing parameters when creating macvlan (#10583)
Refs #10580
This commit is contained in:
parent
339b085db7
commit
e7b1aadb0e
12 changed files with 37 additions and 1 deletions
|
|
@ -913,6 +913,7 @@ const message = {
|
|||
driver: 'Driver',
|
||||
option: 'Option',
|
||||
attachable: 'Attachable',
|
||||
parentNetworkCard: 'Parent Network Card',
|
||||
subnet: 'Subnet',
|
||||
scope: 'IP scope',
|
||||
gateway: 'Gateway',
|
||||
|
|
|
|||
|
|
@ -915,6 +915,7 @@ const message = {
|
|||
driver: 'Driver',
|
||||
option: 'Opción',
|
||||
attachable: 'Adjuntable',
|
||||
parentNetworkCard: 'Tarjeta de Red Principal',
|
||||
subnet: 'Subred',
|
||||
scope: 'Rango de IP',
|
||||
gateway: 'Puerta de enlace',
|
||||
|
|
|
|||
|
|
@ -889,6 +889,7 @@ const message = {
|
|||
driver: 'ドライバ',
|
||||
option: 'オプション',
|
||||
attachable: '取り付け可能',
|
||||
parentNetworkCard: '親ネットワークカード',
|
||||
subnet: 'サブネット',
|
||||
scope: 'IPスコープ',
|
||||
gateway: 'ゲートウェイ',
|
||||
|
|
|
|||
|
|
@ -880,6 +880,7 @@ const message = {
|
|||
driver: '드라이버',
|
||||
option: '옵션',
|
||||
attachable: '연결 가능',
|
||||
parentNetworkCard: '부모 네트워크 카드',
|
||||
subnet: '서브넷',
|
||||
scope: 'IP 범위',
|
||||
gateway: '게이트웨이',
|
||||
|
|
|
|||
|
|
@ -907,6 +907,7 @@ const message = {
|
|||
driver: 'Pemacu',
|
||||
option: 'Pilihan',
|
||||
attachable: 'Boleh dilampirkan',
|
||||
parentNetworkCard: 'Kad Rangkaian Induk',
|
||||
subnet: 'Subnet',
|
||||
scope: 'Skop IP',
|
||||
gateway: 'Gerbang',
|
||||
|
|
|
|||
|
|
@ -902,6 +902,7 @@ const message = {
|
|||
driver: 'Driver',
|
||||
option: 'Opção',
|
||||
attachable: 'Anexável',
|
||||
parentNetworkCard: 'Placa de Rede Principal',
|
||||
subnet: 'Sub-rede',
|
||||
scope: 'Escopo IP',
|
||||
gateway: 'Gateway',
|
||||
|
|
|
|||
|
|
@ -905,6 +905,7 @@ const message = {
|
|||
driver: 'Драйвер',
|
||||
option: 'Опция',
|
||||
attachable: 'Подключаемая',
|
||||
parentNetworkCard: 'Родительская Сетевая Карта',
|
||||
subnet: 'Подсеть',
|
||||
scope: 'Диапазон IP',
|
||||
gateway: 'Шлюз',
|
||||
|
|
|
|||
|
|
@ -923,6 +923,7 @@ const message = {
|
|||
driver: 'Sürücü',
|
||||
option: 'Seçenek',
|
||||
attachable: 'Eklenebilir',
|
||||
parentNetworkCard: 'Ana Ağ Kartı',
|
||||
subnet: 'Alt ağ',
|
||||
scope: 'IP kapsamı',
|
||||
gateway: 'Ağ geçidi',
|
||||
|
|
|
|||
|
|
@ -878,6 +878,7 @@ const message = {
|
|||
driver: '模式',
|
||||
option: '參數',
|
||||
attachable: '可用',
|
||||
parentNetworkCard: '父網卡',
|
||||
subnet: '子網',
|
||||
scope: 'IP 範圍',
|
||||
gateway: '閘道器',
|
||||
|
|
|
|||
|
|
@ -877,6 +877,7 @@ const message = {
|
|||
driver: '模式',
|
||||
option: '参数',
|
||||
attachable: '可用',
|
||||
parentNetworkCard: '父网卡',
|
||||
subnet: '子网',
|
||||
scope: 'IP 范围',
|
||||
gateway: '网关',
|
||||
|
|
|
|||
|
|
@ -12,6 +12,17 @@
|
|||
<el-option label="overlay" value="overlay" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-if="form.driver === 'macvlan'"
|
||||
:label="$t('container.parentNetworkCard')"
|
||||
prop="parentNetworkCard"
|
||||
>
|
||||
<el-select v-model="form.parentNetworkCard">
|
||||
<span v-for="item in netOptions" :key="item">
|
||||
<el-option v-if="item !== 'all'" :label="item" :value="item" />
|
||||
</span>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-checkbox v-model="form.ipv4">IPv4</el-checkbox>
|
||||
<div v-if="form.ipv4">
|
||||
|
|
@ -133,12 +144,14 @@ import { ElForm } from 'element-plus';
|
|||
import { createNetwork } from '@/api/modules/container';
|
||||
import { MsgSuccess } from '@/utils/message';
|
||||
import { checkIp, checkIpV6 } from '@/utils/util';
|
||||
import { getNetworkOptions } from '@/api/modules/host';
|
||||
|
||||
const loading = ref(false);
|
||||
|
||||
const drawerVisible = ref(false);
|
||||
const form = reactive({
|
||||
name: '',
|
||||
parentNetworkCard: '',
|
||||
labelStr: '',
|
||||
labels: [] as Array<string>,
|
||||
optionStr: '',
|
||||
|
|
@ -163,6 +176,7 @@ const acceptParams = (): void => {
|
|||
form.optionStr = '';
|
||||
form.options = [];
|
||||
form.driver = 'bridge';
|
||||
form.parentNetworkCard = '';
|
||||
form.ipv4 = true;
|
||||
form.subnet = '';
|
||||
form.gateway = '';
|
||||
|
|
@ -174,6 +188,7 @@ const acceptParams = (): void => {
|
|||
form.ipRangeV6 = '';
|
||||
form.auxAddressV6 = [];
|
||||
drawerVisible.value = true;
|
||||
loadNetworkOptions();
|
||||
};
|
||||
const emit = defineEmits<{ (e: 'search'): void }>();
|
||||
|
||||
|
|
@ -181,9 +196,12 @@ const handleClose = () => {
|
|||
drawerVisible.value = false;
|
||||
};
|
||||
|
||||
const netOptions = ref();
|
||||
|
||||
const rules = reactive({
|
||||
name: [Rules.requiredInput],
|
||||
driver: [Rules.requiredSelect],
|
||||
parentNetworkCard: [Rules.requiredSelect],
|
||||
subnet: [{ validator: checkCidr, trigger: 'blur' }, Rules.requiredInput],
|
||||
gateway: [{ validator: checkGateway, trigger: 'blur' }],
|
||||
ipRange: [{ validator: checkCidr, trigger: 'blur' }],
|
||||
|
|
@ -263,6 +281,11 @@ const handleV6Delete = (index: number) => {
|
|||
form.auxAddressV6.splice(index, 1);
|
||||
};
|
||||
|
||||
const loadNetworkOptions = async () => {
|
||||
const res = await getNetworkOptions();
|
||||
netOptions.value = res.data;
|
||||
};
|
||||
|
||||
type FormInstance = InstanceType<typeof ElForm>;
|
||||
const formRef = ref<FormInstance>();
|
||||
const onSubmit = async (formEl: FormInstance | undefined) => {
|
||||
|
|
@ -276,6 +299,9 @@ const onSubmit = async (formEl: FormInstance | undefined) => {
|
|||
form.options = form.optionStr.split('\n');
|
||||
}
|
||||
loading.value = true;
|
||||
if (form.driver === 'macvlan') {
|
||||
form.options.push('parent=' + form.parentNetworkCard);
|
||||
}
|
||||
await createNetwork(form)
|
||||
.then(() => {
|
||||
loading.value = false;
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ const onDelete = async (row: Cronjob.ScriptInfo | null) => {
|
|||
};
|
||||
|
||||
const onSync = async () => {
|
||||
ElMessageBox.confirm(i18n.global.t('cronjob.library.syncHelper'), i18n.global.t('commons.button.syncNow'), {
|
||||
ElMessageBox.confirm(i18n.global.t('cronjob.library.syncHelper'), i18n.global.t('cronjob.library.syncNow'), {
|
||||
confirmButtonText: i18n.global.t('commons.button.confirm'),
|
||||
cancelButtonText: i18n.global.t('commons.button.cancel'),
|
||||
type: 'info',
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue