Compare commits

...

7 Commits

Author SHA1 Message Date
amery aa26c93343 build-sys: use local asciigoat.org/ini
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 20:43:03 +00:00
amery 9fe7f531f5 vscode: add asciigoat, cyclomatic and Wrapf to the dictionary
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 20:43:03 +00:00
amery 51d4748a6f Merge branch 'main' into next-amery 2023-09-05 20:42:51 +00:00
amery e03e5e0d05 Merge pull request 'ceph: generate fsid if needed, and export FSID on env' (#10)
Reviewed-on: #10
2023-09-05 22:13:09 +02:00
amery a655603343 env: export FSID
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:57:39 +00:00
amery c291b218a4 zones: improve GetCephFSID() to generate a new UUID if none was found
Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:57:39 +00:00
amery 3911a51ccf vscode: add gofrs to the dictionary
as we use "github.com/gofrs/uuid/v5"

Signed-off-by: Alejandro Mery <amery@jpi.io>
2023-09-05 19:43:27 +00:00
6 changed files with 34 additions and 8 deletions
+4
View File
@@ -1,8 +1,12 @@
{ {
"cSpell.words": [ "cSpell.words": [
"asciigoat",
"ceph", "ceph",
"cyclomatic",
"darvaza", "darvaza",
"gofrs",
"jpictl", "jpictl",
"Wrapf",
"zerolog" "zerolog"
] ]
} }
+5 -1
View File
@@ -16,7 +16,11 @@ var envCmd = &cobra.Command{
return err return err
} }
_, err = m.Env(*envExport).WriteTo(os.Stdout) env, err := m.Env(*envExport)
if err != nil {
return err
}
_, err = env.WriteTo(os.Stdout)
return err return err
}, },
} }
+2
View File
@@ -2,6 +2,8 @@ module git.jpi.io/amery/jpictl
go 1.19 go 1.19
replace asciigoat.org/ini => ../../../asciigoat.org/ini
require ( require (
asciigoat.org/ini v0.2.5 asciigoat.org/ini v0.2.5
darvaza.org/core v0.9.8 darvaza.org/core v0.9.8
-2
View File
@@ -1,7 +1,5 @@
asciigoat.org/core v0.3.9 h1:hgDDz4ecm3ZvehX++m8A/IzAt+B5oDPiRtxatzfUHPQ= asciigoat.org/core v0.3.9 h1:hgDDz4ecm3ZvehX++m8A/IzAt+B5oDPiRtxatzfUHPQ=
asciigoat.org/core v0.3.9/go.mod h1:CAaHwyw8MpAq4a1MYtN2dxJrsK+hmIdW50OndaQZYPI= asciigoat.org/core v0.3.9/go.mod h1:CAaHwyw8MpAq4a1MYtN2dxJrsK+hmIdW50OndaQZYPI=
asciigoat.org/ini v0.2.5 h1:4gRIp9rU+XQt8+HMqZO5R7GavMv9Yl2+N+je6djDIAE=
asciigoat.org/ini v0.2.5/go.mod h1:gmXzJ9XFqf1NLk5nQkj04USQ4tMtdRJHNQX6vp3DzjU=
darvaza.org/core v0.9.8 h1:luLxgfUc2pzuusYPo/Z/dC/qr9XZPKpSQw8/kS7zNUM= darvaza.org/core v0.9.8 h1:luLxgfUc2pzuusYPo/Z/dC/qr9XZPKpSQw8/kS7zNUM=
darvaza.org/core v0.9.8/go.mod h1:Dbme64naxeshQfxcVJX9ZT7AiGyIY8kldfuELVtf8mw= darvaza.org/core v0.9.8/go.mod h1:Dbme64naxeshQfxcVJX9ZT7AiGyIY8kldfuELVtf8mw=
darvaza.org/resolver v0.5.4 h1:dlSBNV14yYsp7Kg7ipwYOMNsLbrpeXa8Z0HBTa0Ryxs= darvaza.org/resolver v0.5.4 h1:dlSBNV14yYsp7Kg7ipwYOMNsLbrpeXa8Z0HBTa0Ryxs=
+6 -2
View File
@@ -14,8 +14,12 @@ import (
// GetCephFSID returns our Ceph's FSID // GetCephFSID returns our Ceph's FSID
func (m *Zones) GetCephFSID() (uuid.UUID, error) { func (m *Zones) GetCephFSID() (uuid.UUID, error) {
if core.IsZero(m.CephFSID) { if core.IsZero(m.CephFSID) {
// TODO: generate one // generate one
return uuid.Nil, nil v, err := uuid.NewV4()
if err != nil {
return uuid.Nil, err
}
m.CephFSID = v
} }
return m.CephFSID, nil return m.CephFSID, nil
} }
+17 -3
View File
@@ -11,15 +11,24 @@ import (
type Env struct { type Env struct {
ZoneIterator ZoneIterator
export bool cephFSID string
export bool
} }
// Env returns a shell environment factory // Env returns a shell environment factory
func (m *Zones) Env(export bool) *Env { func (m *Zones) Env(export bool) (*Env, error) {
return &Env{ fsid, err := m.GetCephFSID()
if err != nil {
return nil, err
}
env := &Env{
ZoneIterator: m, ZoneIterator: m,
cephFSID: fsid.String(),
export: export, export: export,
} }
return env, nil
} }
// Zones returns the list of Zone IDs // Zones returns the list of Zone IDs
@@ -38,7 +47,12 @@ func (m *Env) Zones() []int {
func (m *Env) WriteTo(w io.Writer) (int64, error) { func (m *Env) WriteTo(w io.Writer) (int64, error) {
var buf bytes.Buffer var buf bytes.Buffer
if m.cephFSID != "" {
m.writeEnvVar(&buf, m.cephFSID, "FSID")
}
m.writeEnvVarInts(&buf, m.Zones(), "ZONES") m.writeEnvVarInts(&buf, m.Zones(), "ZONES")
m.ForEachZone(func(z *Zone) bool { m.ForEachZone(func(z *Zone) bool {
m.writeEnvZone(&buf, z) m.writeEnvZone(&buf, z)
return false return false