From a8ffeebb7262f0c8804cc82eeb8e0e6703e85c03 Mon Sep 17 00:00:00 2001 From: GnomeZworc Date: Wed, 7 Jan 2026 23:16:58 +0100 Subject: [PATCH] f-11: code: move start and stop metadata #11 Signed-off-by: GnomeZworc --- cmd/meta_cli/main.go | 17 +++--------- internal/load_db/nocloud/struct.go | 10 ------- internal/metadata/handle.go | 26 +++++++++++++++++++ .../{load_db/nocloud => metadata}/render.go | 14 +++++----- internal/metadata/struct.go | 9 +++++++ .../templates/meta-data.tmpl | 0 .../templates/network-config.tmpl | 0 .../templates/user-data.tmpl | 0 .../templates/vendor-data.tmpl | 0 9 files changed, 46 insertions(+), 30 deletions(-) delete mode 100644 internal/load_db/nocloud/struct.go create mode 100644 internal/metadata/handle.go rename internal/{load_db/nocloud => metadata}/render.go (70%) rename internal/{load_db/nocloud => metadata}/templates/meta-data.tmpl (100%) rename internal/{load_db/nocloud => metadata}/templates/network-config.tmpl (100%) rename internal/{load_db/nocloud => metadata}/templates/user-data.tmpl (100%) rename internal/{load_db/nocloud => metadata}/templates/vendor-data.tmpl (100%) diff --git a/cmd/meta_cli/main.go b/cmd/meta_cli/main.go index 18cf391..20706d2 100644 --- a/cmd/meta_cli/main.go +++ b/cmd/meta_cli/main.go @@ -5,9 +5,8 @@ import ( "fmt" configuration "git.g3e.fr/syonad/two/internal/config/agent" - "git.g3e.fr/syonad/two/internal/load_db/nocloud" + "git.g3e.fr/syonad/two/internal/metadata" "git.g3e.fr/syonad/two/pkg/db/kv" - "git.g3e.fr/syonad/two/pkg/systemd" ) func main() { @@ -24,8 +23,6 @@ func main() { flag.Parse() - service, _ := systemd.New() - conf, err := configuration.LoadConfig(*conf_file) if err != nil { fmt.Println(err) @@ -38,21 +35,15 @@ func main() { defer db.Close() if *start { - nocloud.LoadNcCloudInDB(nocloud.Config{ + metadata.StartMetadata(metadata.NoCloudConfig{ VpcName: *vpc, Name: *vm_name, BindIP: *bind_ip, BindPort: *bind_port, Password: *password, SSHKEY: *ssh_key, - }, db) - if !*dryrun { - service.Start("metadata@" + *vm_name) - } + }, db, *dryrun) } else if *stop { - nocloud.UnLoadNoCloudInDB(*vm_name, db) - if !*dryrun { - service.Stop("metadata@" + *vm_name) - } + metadata.StopMetadata(*vm_name, db, *dryrun) } } diff --git a/internal/load_db/nocloud/struct.go b/internal/load_db/nocloud/struct.go deleted file mode 100644 index 4134000..0000000 --- a/internal/load_db/nocloud/struct.go +++ /dev/null @@ -1,10 +0,0 @@ -package nocloud - -type Config struct { - VpcName string - BindIP string - BindPort string - Name string - Password string - SSHKEY string -} diff --git a/internal/metadata/handle.go b/internal/metadata/handle.go new file mode 100644 index 0000000..33ac088 --- /dev/null +++ b/internal/metadata/handle.go @@ -0,0 +1,26 @@ +package metadata + +import ( + "git.g3e.fr/syonad/two/pkg/systemd" + "github.com/dgraph-io/badger/v4" +) + +func StartMetadata(config NoCloudConfig, db *badger.DB, dryrun bool) { + service, _ := systemd.New() + defer service.Close() + + LoadNcCloudInDB(config, db) + if !dryrun { + service.Start("metadata@" + config.Name) + } +} + +func StopMetadata(vm_name string, db *badger.DB, dryrun bool) { + service, _ := systemd.New() + defer service.Close() + + UnLoadNoCloudInDB(vm_name, db) + if !dryrun { + service.Stop("metadata@" + vm_name) + } +} diff --git a/internal/load_db/nocloud/render.go b/internal/metadata/render.go similarity index 70% rename from internal/load_db/nocloud/render.go rename to internal/metadata/render.go index 4fa9386..f6c3cae 100644 --- a/internal/load_db/nocloud/render.go +++ b/internal/metadata/render.go @@ -1,4 +1,4 @@ -package nocloud +package metadata import ( "bytes" @@ -12,7 +12,7 @@ import ( //go:embed templates/*.tmpl var templateFS embed.FS -func renderConfig(path string, cfg Config) (string, error) { +func RenderConfig(path string, cfg NoCloudConfig) (string, error) { tpl, err := template.ParseFS(templateFS, path) if err != nil { return "", err @@ -26,11 +26,11 @@ func renderConfig(path string, cfg Config) (string, error) { return buf.String(), nil } -func LoadNcCloudInDB(config Config, db *badger.DB) { - meta_data, _ := renderConfig("templates/meta-data.tmpl", config) - user_data, _ := renderConfig("templates/user-data.tmpl", config) - network_config, _ := renderConfig("templates/network-config.tmpl", config) - vendor_data, _ := renderConfig("templates/vendor-data.tmpl", config) +func LoadNcCloudInDB(config NoCloudConfig, db *badger.DB) { + meta_data, _ := RenderConfig("templates/meta-data.tmpl", config) + user_data, _ := RenderConfig("templates/user-data.tmpl", config) + network_config, _ := RenderConfig("templates/network-config.tmpl", config) + vendor_data, _ := RenderConfig("templates/vendor-data.tmpl", config) kv.AddInDB(db, "metadata/"+config.Name+"/meta-data", meta_data) kv.AddInDB(db, "metadata/"+config.Name+"/user-data", user_data) diff --git a/internal/metadata/struct.go b/internal/metadata/struct.go index f2c364e..5810ff4 100644 --- a/internal/metadata/struct.go +++ b/internal/metadata/struct.go @@ -18,3 +18,12 @@ type ServerConfig struct { ConfFile string VmName string } + +type NoCloudConfig struct { + VpcName string + BindIP string + BindPort string + Name string + Password string + SSHKEY string +} diff --git a/internal/load_db/nocloud/templates/meta-data.tmpl b/internal/metadata/templates/meta-data.tmpl similarity index 100% rename from internal/load_db/nocloud/templates/meta-data.tmpl rename to internal/metadata/templates/meta-data.tmpl diff --git a/internal/load_db/nocloud/templates/network-config.tmpl b/internal/metadata/templates/network-config.tmpl similarity index 100% rename from internal/load_db/nocloud/templates/network-config.tmpl rename to internal/metadata/templates/network-config.tmpl diff --git a/internal/load_db/nocloud/templates/user-data.tmpl b/internal/metadata/templates/user-data.tmpl similarity index 100% rename from internal/load_db/nocloud/templates/user-data.tmpl rename to internal/metadata/templates/user-data.tmpl diff --git a/internal/load_db/nocloud/templates/vendor-data.tmpl b/internal/metadata/templates/vendor-data.tmpl similarity index 100% rename from internal/load_db/nocloud/templates/vendor-data.tmpl rename to internal/metadata/templates/vendor-data.tmpl