f-33: vm: start vms with multiple nic
All checks were successful
Release Pipeline / checksums (push) Successful in 4s
Release Pipeline / release (push) Successful in 11s
Release Pipeline / set-release-target (push) Successful in 2s
Release Pipeline / upload-assets (agent.service, systemd/agent.service) (push) Successful in 4s
Release Pipeline / upload-assets (dnsmasq@.service, systemd/dnsmasq@.service) (push) Successful in 4s
Release Pipeline / upload-assets (metadata@.service, systemd/metadata@.service) (push) Successful in 4s
Release Pipeline / upload-assets (run-dnsmasq-in-netns.sh, scripts/run-dnsmasq-in-netns.sh) (push) Successful in 4s
Release Pipeline / build (agent, amd64, linux) (push) Successful in 0s
Release Pipeline / build (metadata, amd64, linux) (push) Successful in 0s
Release Pipeline / publish (push) Successful in 0s
Release Pipeline / build (push) Successful in 1m36s
All checks were successful
Release Pipeline / checksums (push) Successful in 4s
Release Pipeline / release (push) Successful in 11s
Release Pipeline / set-release-target (push) Successful in 2s
Release Pipeline / upload-assets (agent.service, systemd/agent.service) (push) Successful in 4s
Release Pipeline / upload-assets (dnsmasq@.service, systemd/dnsmasq@.service) (push) Successful in 4s
Release Pipeline / upload-assets (metadata@.service, systemd/metadata@.service) (push) Successful in 4s
Release Pipeline / upload-assets (run-dnsmasq-in-netns.sh, scripts/run-dnsmasq-in-netns.sh) (push) Successful in 4s
Release Pipeline / build (agent, amd64, linux) (push) Successful in 0s
Release Pipeline / build (metadata, amd64, linux) (push) Successful in 0s
Release Pipeline / publish (push) Successful in 0s
Release Pipeline / build (push) Successful in 1m36s
Signed-off-by: GnomeZworc <nicolas.boufidjeline@g3e.fr>
This commit is contained in:
parent
0237acba81
commit
26d5805747
8 changed files with 309 additions and 25 deletions
|
|
@ -3,6 +3,7 @@ package vm
|
|||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"net"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
|
@ -27,6 +28,8 @@ type nicData struct {
|
|||
mac string
|
||||
tapID int
|
||||
primary bool
|
||||
mode string
|
||||
vpcCIDR *net.IPNet
|
||||
}
|
||||
|
||||
type vmData struct {
|
||||
|
|
@ -190,6 +193,23 @@ func loadNIC(db *badger.DB, name string, idx int, entries map[string]string) (ni
|
|||
}
|
||||
n.interfaceIP = interfaceIP
|
||||
|
||||
n.mode, err = kv.GetFromDB(db, "subnet/"+n.subnetName+"/mode")
|
||||
if err != nil {
|
||||
return n, fmt.Errorf("get mode of subnet %s: %w", n.subnetName, err)
|
||||
}
|
||||
|
||||
if n.mode != "bridge" {
|
||||
cidrStr, err := kv.GetFromDB(db, "vpc/"+n.vpcName+"/cidr")
|
||||
if err != nil {
|
||||
return n, fmt.Errorf("get cidr of vpc %s: %w", n.vpcName, err)
|
||||
}
|
||||
_, vpcCIDR, err := net.ParseCIDR(cidrStr)
|
||||
if err != nil {
|
||||
return n, fmt.Errorf("parse cidr of vpc %s: %w", n.vpcName, err)
|
||||
}
|
||||
n.vpcCIDR = vpcCIDR
|
||||
}
|
||||
|
||||
n.ip = entries[prefix+"ip"]
|
||||
if n.ip == "" {
|
||||
return n, fmt.Errorf("nic %d of vm %s has no ip", idx, name)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue