diff --git a/.forgejo/workflows/prerelease.yml b/.forgejo/workflows/prerelease.yml index 0326071..c6ea322 100644 --- a/.forgejo/workflows/prerelease.yml +++ b/.forgejo/workflows/prerelease.yml @@ -32,7 +32,7 @@ jobs: matrix: goos: [linux] goarch: [amd64] - binaries: [db, metadata, metacli, agent] + binaries: [db, metadata, meta_cli, agent] uses: ./.forgejo/workflows/build.yml with: tag: ${{ needs.set-release-target.outputs.release_cible }} diff --git a/cmd/metacli/main.go b/cmd/meta_cli/main.go similarity index 76% rename from cmd/metacli/main.go rename to cmd/meta_cli/main.go index 20706d2..18cf391 100644 --- a/cmd/metacli/main.go +++ b/cmd/meta_cli/main.go @@ -5,8 +5,9 @@ import ( "fmt" configuration "git.g3e.fr/syonad/two/internal/config/agent" - "git.g3e.fr/syonad/two/internal/metadata" + "git.g3e.fr/syonad/two/internal/load_db/nocloud" "git.g3e.fr/syonad/two/pkg/db/kv" + "git.g3e.fr/syonad/two/pkg/systemd" ) func main() { @@ -23,6 +24,8 @@ func main() { flag.Parse() + service, _ := systemd.New() + conf, err := configuration.LoadConfig(*conf_file) if err != nil { fmt.Println(err) @@ -35,15 +38,21 @@ func main() { defer db.Close() if *start { - metadata.StartMetadata(metadata.NoCloudConfig{ + nocloud.LoadNcCloudInDB(nocloud.Config{ VpcName: *vpc, Name: *vm_name, BindIP: *bind_ip, BindPort: *bind_port, Password: *password, SSHKEY: *ssh_key, - }, db, *dryrun) + }, db) + if !*dryrun { + service.Start("metadata@" + *vm_name) + } } else if *stop { - metadata.StopMetadata(*vm_name, db, *dryrun) + nocloud.UnLoadNoCloudInDB(*vm_name, db) + if !*dryrun { + service.Stop("metadata@" + *vm_name) + } } } diff --git a/internal/metadata/render.go b/internal/load_db/nocloud/render.go similarity index 70% rename from internal/metadata/render.go rename to internal/load_db/nocloud/render.go index f6c3cae..4fa9386 100644 --- a/internal/metadata/render.go +++ b/internal/load_db/nocloud/render.go @@ -1,4 +1,4 @@ -package metadata +package nocloud import ( "bytes" @@ -12,7 +12,7 @@ import ( //go:embed templates/*.tmpl var templateFS embed.FS -func RenderConfig(path string, cfg NoCloudConfig) (string, error) { +func renderConfig(path string, cfg Config) (string, error) { tpl, err := template.ParseFS(templateFS, path) if err != nil { return "", err @@ -26,11 +26,11 @@ func RenderConfig(path string, cfg NoCloudConfig) (string, error) { return buf.String(), nil } -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) +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) kv.AddInDB(db, "metadata/"+config.Name+"/meta-data", meta_data) kv.AddInDB(db, "metadata/"+config.Name+"/user-data", user_data) diff --git a/internal/load_db/nocloud/struct.go b/internal/load_db/nocloud/struct.go new file mode 100644 index 0000000..4134000 --- /dev/null +++ b/internal/load_db/nocloud/struct.go @@ -0,0 +1,10 @@ +package nocloud + +type Config struct { + VpcName string + BindIP string + BindPort string + Name string + Password string + SSHKEY string +} diff --git a/internal/metadata/templates/meta-data.tmpl b/internal/load_db/nocloud/templates/meta-data.tmpl similarity index 100% rename from internal/metadata/templates/meta-data.tmpl rename to internal/load_db/nocloud/templates/meta-data.tmpl diff --git a/internal/metadata/templates/network-config.tmpl b/internal/load_db/nocloud/templates/network-config.tmpl similarity index 100% rename from internal/metadata/templates/network-config.tmpl rename to internal/load_db/nocloud/templates/network-config.tmpl diff --git a/internal/metadata/templates/user-data.tmpl b/internal/load_db/nocloud/templates/user-data.tmpl similarity index 100% rename from internal/metadata/templates/user-data.tmpl rename to internal/load_db/nocloud/templates/user-data.tmpl diff --git a/internal/metadata/templates/vendor-data.tmpl b/internal/load_db/nocloud/templates/vendor-data.tmpl similarity index 100% rename from internal/metadata/templates/vendor-data.tmpl rename to internal/load_db/nocloud/templates/vendor-data.tmpl diff --git a/internal/metadata/handle.go b/internal/metadata/handle.go deleted file mode 100644 index 33ac088..0000000 --- a/internal/metadata/handle.go +++ /dev/null @@ -1,26 +0,0 @@ -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/metadata/struct.go b/internal/metadata/struct.go index 5810ff4..f2c364e 100644 --- a/internal/metadata/struct.go +++ b/internal/metadata/struct.go @@ -18,12 +18,3 @@ 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/pkg/db/kv/deleteInDB.go b/pkg/db/kv/deleteInDB.go index 1943c81..36d8669 100644 --- a/pkg/db/kv/deleteInDB.go +++ b/pkg/db/kv/deleteInDB.go @@ -1,6 +1,7 @@ package kv import ( + "fmt" "log" "github.com/dgraph-io/badger/v4" @@ -28,6 +29,7 @@ func DeleteInDB(db *badger.DB, key string) error { key := item.Key() k := append([]byte{}, key...) + fmt.Println(string(k)) if err := deleteKey(db, string(k)); err != nil { return err }