Skip to content

Commit 6f835c3

Browse files
committed
Wire in alerting for sync and update command failures
1 parent 64c8f92 commit 6f835c3

File tree

2 files changed

+59
-21
lines changed

2 files changed

+59
-21
lines changed

cmd/sync.go

Lines changed: 31 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,23 @@ import (
99
"strings"
1010

1111
"github.com/spf13/cobra"
12+
"github.com/uyuni-project/minima/alerts"
1213
"github.com/uyuni-project/minima/get"
1314
"github.com/uyuni-project/minima/updates"
1415
yaml "gopkg.in/yaml.v2"
1516
)
1617

1718
const sccUrl = "https://scc.suse.com"
1819

20+
// Config maps the configuration in minima.yaml
21+
type Config struct {
22+
Alerts alerts.AlertsConfig
23+
Storage get.StorageConfig
24+
SCC get.SCC
25+
OBS updates.OBS
26+
HTTP []get.HTTPRepoConfig
27+
}
28+
1929
// syncCmd represents the sync command
2030
var (
2131
syncCmd = &cobra.Command{
@@ -54,18 +64,34 @@ var (
5464
Run: func(cmd *cobra.Command, args []string) {
5565
initConfig()
5666

57-
var errorflag bool = false
58-
syncers, err := syncersFromConfig(cfgString)
67+
config, err := parseConfig(cfgString)
68+
if err != nil {
69+
log.Fatal(err)
70+
}
71+
72+
syncers, err := syncersFromConfig(config)
73+
if err != nil {
74+
log.Fatal(err)
75+
}
76+
77+
alertsManager, err := alerts.NewAlertsManager(config.Alerts)
5978
if err != nil {
6079
log.Fatal(err)
61-
errorflag = true
6280
}
81+
82+
var errorflag bool = false
6383
for _, syncer := range syncers {
64-
log.Printf("Processing repo: %s", syncer.URL.String())
84+
repo := syncer.URL.String()
85+
log.Printf("Processing repo: %s", repo)
86+
6587
err := syncer.StoreRepo()
6688
if err != nil {
6789
log.Println(err)
6890
errorflag = true
91+
92+
if err := alertsManager.DispatchAlert(repo, err); err != nil {
93+
log.Fatal(err)
94+
}
6995
} else {
7096
log.Println("...done.")
7197
}
@@ -80,19 +106,7 @@ var (
80106
skipLegacyPackages bool
81107
)
82108

83-
// Config maps the configuration in minima.yaml
84-
type Config struct {
85-
Storage get.StorageConfig
86-
SCC get.SCC
87-
OBS updates.OBS
88-
HTTP []get.HTTPRepoConfig
89-
}
90-
91-
func syncersFromConfig(configString string) ([]*get.Syncer, error) {
92-
config, err := parseConfig(configString)
93-
if err != nil {
94-
return nil, err
95-
}
109+
func syncersFromConfig(config Config) ([]*get.Syncer, error) {
96110
//---passing the flag value to a global variable in get package, to disables syncing of i586 and i686 rpms (usually inside x86_64)
97111
get.SkipLegacy = skipLegacyPackages
98112

cmd/updates.go

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"time"
2929

3030
"github.com/spf13/cobra"
31+
"github.com/uyuni-project/minima/alerts"
3132
"github.com/uyuni-project/minima/get"
3233
"github.com/uyuni-project/minima/updates"
3334
yaml "gopkg.in/yaml.v2"
@@ -147,18 +148,41 @@ func muFindAndSync() {
147148
os.Exit(3)
148149
}
149150

150-
syncers, err := syncersFromConfig(string(byteChunk))
151+
config, err := parseConfig(string(byteChunk))
152+
if err != nil {
153+
log.Fatalf("Error parsing configuration: %v", err)
154+
}
155+
156+
syncers, err := syncersFromConfig(config)
157+
if err != nil {
158+
log.Fatal(err)
159+
}
160+
161+
alertsManager, err := alerts.NewAlertsManager(config.Alerts)
151162
if err != nil {
152163
log.Fatal(err)
153164
}
154165

166+
var errorflag bool = false
155167
for _, syncer := range syncers {
156-
log.Printf("Processing repo: %s", syncer.URL.String())
168+
repo := syncer.URL.String()
169+
log.Printf("Processing repo: %s", repo)
170+
157171
err := syncer.StoreRepo()
158172
if err != nil {
159-
log.Fatal(err)
173+
log.Println(err)
174+
errorflag = true
175+
176+
if err := alertsManager.DispatchAlert(repo, err); err != nil {
177+
log.Fatal(err)
178+
}
179+
} else {
180+
log.Println("...done.")
160181
}
161-
log.Println("...done.")
182+
}
183+
184+
if errorflag {
185+
os.Exit(1)
162186
}
163187
}
164188
}

0 commit comments

Comments
 (0)