Skip to content

Commit 84f5aed

Browse files
committed
Merge pull request 'fix: handle the system-update process when openvox is disabled before the execution' (#187) from fix/handle-openvox-status into main
Reviewed-on: https://gitea.obmondo.com/EnableIT/Linuxaid-cli/pulls/187
2 parents 5cafd24 + 3453051 commit 84f5aed

8 files changed

Lines changed: 56 additions & 33 deletions

File tree

.gitea/workflows/release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
uses: https://gitea.obmondo.com/Obmondo/goreleaser-action@v6.4.0
2727
with:
2828
version: "v2.12.7"
29-
args: release --clean --skip=archive,publish -f .goreleaser-gitea.yaml
29+
args: release --clean --skip=archive -f .goreleaser-gitea.yaml
3030
env:
3131
GITEA_TOKEN: ${{ secrets.GORELEASER_TOKEN }}
3232
- name: Upload to repo servers

.goreleaser-gitea.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,10 @@ nfpms:
168168
bindir: /opt/obmondo/bin
169169
mtime: "{{ .CommitDate }}"
170170

171+
release:
172+
ids:
173+
- default
174+
171175
gitea_urls:
172176
api: https://gitea.obmondo.com/api/v1
173177
download: https://gitea.obmondo.com

cmd/linuxaid-cli/system-update.go

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -232,10 +232,12 @@ func SystemUpdate() {
232232
slog.Info("starting system-update")
233233

234234
// check if agent disable file exists
235+
openvoxInitiallyEnabled := true
235236
if _, err := os.Stat(agentDisabledFile); err == nil {
236-
slog.Warn("puppet has been disabled, exiting")
237-
return
237+
openvoxInitiallyEnabled = false
238+
slog.Warn("openvox agent was disabled before system-update, will skip opnvox operations")
238239
}
240+
239241
obmondoAPIURL := api.GetObmondoURL()
240242
obmondoAPI := api.NewObmondoClient(obmondoAPIURL, false)
241243

@@ -265,7 +267,7 @@ func SystemUpdate() {
265267

266268
puppetService := puppet.NewService(obmondoAPI, webtee.NewWebtee(obmondoAPI))
267269

268-
if !config.ShouldSkipOpenvox() {
270+
if openvoxInitiallyEnabled && !config.ShouldSkipOpenvox() {
269271
// Check if any existing puppet agent is already running
270272
puppetService.WaitForAgent(constant.PuppetWaitForCertTimeOut)
271273

@@ -311,9 +313,11 @@ func SystemUpdate() {
311313

312314
slog.Info("service window is closed now for this respective node")
313315

314-
// Enable the puppet agent, so puppet runs after reboot and don't exit the script
316+
// Enable the openvox agent, so openvox runs after reboot and don't exit the script
315317
// otherwise reboot won't be triggered
316-
cleanup(puppetService)
318+
if openvoxInitiallyEnabled {
319+
cleanup(puppetService)
320+
}
317321

318322
if err := CheckKernelAndRebootIfNeeded(); err != nil {
319323
slog.Error("unable to check kernel and reboot", slog.String("error", err.Error()))

cmd/linuxaid-install/install.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,16 @@ func Install() {
9494
logger.InitLogger(pbWriter, config.IsDebug())
9595

9696
certname := helper.GetCertname()
97-
puppetServer := config.GetPupeptServer()
97+
openvoxServer := config.GetOpenvoxServer()
98+
openvoxEnv := config.GetOpenvoxEnv()
9899
obmondoAPIURL := api.GetObmondoURL()
99100
obmondoAPI := api.NewObmondoClient(obmondoAPIURL, true)
100101
webtee := webtee.NewWebtee(obmondoAPI)
101102
puppetService := puppet.NewService(obmondoAPI, webtee)
102103
provisioner := provisioner.NewService(obmondoAPI, puppetService, webtee)
103104

104105
webtee.RemoteLogObmondo([]string{"echo Starting Linuxaid Install Setup "}, certname)
105-
prettyfmt.PrettyPrintf(" %s %s %s %s %s\n", prettyfmt.IconGear, prettyfmt.FontWhite("Configuring Linuxaid on"), prettyfmt.FontYellow(certname), prettyfmt.FontWhite("with puppetserver"), prettyfmt.FontYellow(puppetServer))
106+
prettyfmt.PrettyPrintf(" %s %s %s %s %s %s %s\n", prettyfmt.IconGear, prettyfmt.FontWhite("Configuring Linuxaid on"), prettyfmt.FontYellow(certname), prettyfmt.FontWhite("with openvoxserver"), prettyfmt.FontYellow(openvoxServer), prettyfmt.FontWhite("and environment"), prettyfmt.FontYellow(openvoxEnv))
106107
prettyfmt.PrettyPrintf(" %s Running this tool will install and configure %s in your system.\n", prettyfmt.IconGear, prettyfmt.FontYellow("Openvox agent"))
107108

108109
if !shouldContinueAfterConfirmation() {

cmd/linuxaid-install/main.go

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ import (
1616
var Version string
1717

1818
var (
19-
debugFlag bool
20-
certNameFlag string
21-
puppetServerFlag string
19+
debugFlag bool
20+
certNameFlag string
21+
openvoxServerFlag string
22+
openvoxEnvFlag string
2223
)
2324

2425
var rootCmd = &cobra.Command{
@@ -68,21 +69,25 @@ func init() {
6869

6970
rootCmd.Flags().BoolVar(&debugFlag, "debug", false, "Enable debug logs")
7071
rootCmd.Flags().StringVar(&certNameFlag, constant.CobraFlagCertname, "", "Certificate name (required)")
71-
rootCmd.Flags().StringVar(&puppetServerFlag, constant.CobraFlagPuppetServer, defaultServer, "Puppet server hostname")
72+
rootCmd.Flags().StringVar(&openvoxServerFlag, constant.CobraFlagOpenvoxServer, defaultServer, "Puppet server hostname")
73+
rootCmd.Flags().StringVar(&openvoxEnvFlag, constant.CobraFlagOpenvoxEnv, constant.DefaultOpenvoxEnv, "Openvox environment (Linuxaid release version)")
7274

7375
// Bind flags to viper
7476
v := config.GetViperInstance()
7577
v.BindPFlag(constant.CobraFlagDebug, rootCmd.Flags().Lookup(constant.CobraFlagDebug))
7678
v.BindPFlag(constant.CobraFlagCertname, rootCmd.Flags().Lookup(constant.CobraFlagCertname))
77-
v.BindPFlag(constant.CobraFlagPuppetServer, rootCmd.Flags().Lookup(constant.CobraFlagPuppetServer))
79+
v.BindPFlag(constant.CobraFlagOpenvoxServer, rootCmd.Flags().Lookup(constant.CobraFlagOpenvoxServer))
80+
v.BindPFlag(constant.CobraFlagOpenvoxEnv, rootCmd.Flags().Lookup(constant.CobraFlagOpenvoxEnv))
7881

7982
// Bind environment variables
8083
v.BindEnv(constant.CobraFlagDebug)
8184
v.BindEnv(constant.CobraFlagCertname)
82-
v.BindEnv(constant.CobraFlagPuppetServer, "PUPPET_SERVER")
85+
v.BindEnv(constant.CobraFlagOpenvoxServer, "PUPPET_SERVER")
86+
v.BindEnv(constant.CobraFlagOpenvoxEnv, "OPENVOX_ENVIRONMENT")
8387

8488
// Set default values
85-
v.SetDefault(constant.CobraFlagPuppetServer, defaultServer)
89+
v.SetDefault(constant.CobraFlagOpenvoxServer, defaultServer)
90+
v.SetDefault(constant.CobraFlagOpenvoxEnv, constant.DefaultOpenvoxEnv)
8691
}
8792

8893
func main() {

config/config.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,14 @@ func GetCertname() string {
1919
return viperConfig.GetString(constant.CobraFlagCertname)
2020
}
2121

22-
func GetPupeptServer() string {
22+
func GetOpenvoxServer() string {
2323
initIfNil()
24-
return viperConfig.GetString(constant.CobraFlagPuppetServer)
24+
return viperConfig.GetString(constant.CobraFlagOpenvoxServer)
25+
}
26+
27+
func GetOpenvoxEnv() string {
28+
initIfNil()
29+
return viperConfig.GetString(constant.CobraFlagOpenvoxEnv)
2530
}
2631

2732
func IsDebug() bool {

constant/constants.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const (
2323
AgentRunningLockFile = "/opt/puppetlabs/puppet/cache/state/agent_catalog_run.lock"
2424
DefaultPuppetServerCustomerID = "enableit"
2525
DefaultPuppetServerDomainSuffix = ".puppet.obmondo.com"
26+
DefaultOpenvoxEnv = "master"
2627

2728
// Progress Bar
2829
BarProgressSize = 100
@@ -36,11 +37,12 @@ const (
3637
BarSizeHundred = 100
3738

3839
// Cobra Flags
39-
CobraFlagDebug = "debug"
40-
CobraFlagCertname = "certname"
41-
CobraFlagPuppetServer = "puppet-server"
42-
CobraFlagNoReboot = "no-reboot"
43-
CobraFlagSkipOpenvox = "skip-openvox"
40+
CobraFlagDebug = "debug"
41+
CobraFlagCertname = "certname"
42+
CobraFlagOpenvoxServer = "puppet-server"
43+
CobraFlagOpenvoxEnv = "openvox-environment"
44+
CobraFlagNoReboot = "no-reboot"
45+
CobraFlagSkipOpenvox = "skip-openvox"
4446

4547
ObmondoEnv = "OBMONDO_ENV"
4648
)

pkg/puppet/puppet.go

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,22 @@ import (
2222
)
2323

2424
type Service struct {
25-
webtee *webtee.Webtee
26-
apiClient api.ObmondoClient
27-
certName string
28-
puppetServer string
25+
webtee *webtee.Webtee
26+
apiClient api.ObmondoClient
27+
certName string
28+
openvoxServer string
29+
openvoxEnv string
2930
}
3031

3132
// NewService initializes a new Puppet service instance
3233
func NewService(apiClient api.ObmondoClient, webtee *webtee.Webtee) *Service {
3334

3435
return &Service{
35-
apiClient: apiClient,
36-
certName: helper.GetCertname(),
37-
puppetServer: config.GetPupeptServer(),
38-
webtee: webtee,
36+
apiClient: apiClient,
37+
certName: helper.GetCertname(),
38+
openvoxServer: config.GetOpenvoxServer(),
39+
openvoxEnv: config.GetOpenvoxEnv(),
40+
webtee: webtee,
3941
}
4042
}
4143

@@ -140,9 +142,9 @@ masterport = 443
140142
report = true
141143
pluginsync = true
142144
noop = true
143-
environment = master
145+
environment = %s
144146
`
145-
content := fmt.Sprintf(cfg, s.puppetServer, s.certName)
147+
content := fmt.Sprintf(cfg, s.openvoxServer, s.certName, s.openvoxEnv)
146148
if _, err := script.Echo(content).WriteFile(constant.PuppetConfig); err != nil {
147149
s.webtee.RemoteLogObmondo([]string{fmt.Sprintf("echo failed to configure puppet: %s", err)}, s.certName)
148150
os.Exit(1)
@@ -151,7 +153,7 @@ environment = master
151153

152154
// Check server status
153155
func (s *Service) CheckServerStatus() error {
154-
url := fmt.Sprintf("https://%s/status/v1/services", s.puppetServer)
156+
url := fmt.Sprintf("https://%s/status/v1/services", s.openvoxServer)
155157
client := &http.Client{
156158
Transport: &http.Transport{
157159
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},

0 commit comments

Comments
 (0)