//go:build cgo /* Copyright (c) Edgeless Systems GmbH SPDX-License-Identifier: AGPL-3.0-only */ package main import ( "flag" "log/slog" "os" "github.com/edgelesssys/constellation/v2/hack/qemu-metadata-api/server" "github.com/edgelesssys/constellation/v2/hack/qemu-metadata-api/virtwrapper" "github.com/edgelesssys/constellation/v2/internal/logger" "libvirt.org/go/libvirt" ) func main() { bindPort := flag.String("port", "8080", "Port to bind to") targetNetwork := flag.String("network", "constellation-network", "Name of the network in QEMU to use") libvirtURI := flag.String("libvirt-uri", "qemu:///system", "URI of the libvirt connection") initSecretHash := flag.String("initsecrethash", "", "brcypt hash of the init secret") flag.Parse() log := logger.NewJSONLogger(slog.LevelInfo) conn, err := libvirt.NewConnect(*libvirtURI) if err != nil { log.With(slog.Any("error", err)).Error("Failed to connect to libvirt") os.Exit(1) } defer conn.Close() serv := server.New(log, *targetNetwork, *initSecretHash, &virtwrapper.Connect{Conn: conn}) if err := serv.ListenAndServe(*bindPort); err != nil { log.With(slog.Any("error", err)).Error("Failed to serve") os.Exit(1) } }