Skip to content

Commit

Permalink
minor improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
kajes committed Jul 2, 2024
1 parent 8e656b5 commit 0608fbf
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 31 deletions.
3 changes: 2 additions & 1 deletion cmd/appliance/upgrade/complete.go
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ func upgradeCompleteRun(cmd *cobra.Command, args []string, opts *upgradeComplete
if err != nil {
return err
}
active, _ := appliancepkg.FilterActivated(postOnlineInclude)
active, inactive := appliancepkg.FilterActivated(postOnlineInclude)

upgradeStatusMap, err := a.UpgradeStatusMap(ctx, active)
if err != nil {
Expand All @@ -214,6 +214,7 @@ func upgradeCompleteRun(cmd *cobra.Command, args []string, opts *upgradeComplete
}
primaryController := plan.GetPrimaryController()
plan.AddOfflineAppliances(offline)
plan.AddInactiveAppliances(inactive)
if err := plan.Validate(); err != nil {
return err
}
Expand Down
52 changes: 22 additions & 30 deletions pkg/appliance/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ func (su SkipUpgrade) Error() string {
var (
ErrSkipReasonNotPrepared = errors.New("appliance is not prepared for upgrade")
ErrSkipReasonOffline = errors.New("appliance is offline")
ErrSkipReasonInactive = errors.New("appliance is inactive")
ErrSkipReasonFiltered = errors.New("filtered using the '--include' and/or '--exclude' flag")
ErrSkipReasonAlreadyPrepared = errors.New("appliance is already prepared for upgrade with a higher or equal version")
ErrSkipReasonUnsupportedUpgradePath = errors.New("Upgrading from version 6.0.0 to version 6.2.x is unsupported. Version 6.0.1 or later is required.")
Expand Down Expand Up @@ -95,44 +96,30 @@ func NewUpgradePlan(appliances []openapi.Appliance, stats *openapi.StatsApplianc
stats, err := ApplianceStats(&a, plan.stats)
if err != nil {
errs = multierror.Append(errs, err)
plan.Skipping = append(plan.Skipping, SkipUpgrade{
Appliance: a,
Reason: ErrNoApplianceStats,
})
plan.addSkip(a, ErrNoApplianceStats)
continue
}
currentVersion, err := ParseVersionString(stats.GetVersion())
if err != nil {
errs = multierror.Append(errs, err)
plan.Skipping = append(plan.Skipping, SkipUpgrade{
Appliance: a,
Reason: ErrVersionParse,
})
plan.addSkip(a, ErrVersionParse)
continue
}

// Get upgrade status and target version
upgradeStatus, ok := upgradeStatusMap[a.GetId()]
if !ok {
plan.Skipping = append(plan.Skipping, SkipUpgrade{
Appliance: a,
Reason: ErrNoApplianceStats,
})
plan.addSkip(a, ErrNoApplianceStats)
continue
}
if upgradeStatus.Status != UpgradeStatusReady {
plan.Skipping = append(plan.Skipping, SkipUpgrade{
Appliance: a,
Reason: ErrSkipReasonNotPrepared,
})
plan.addSkip(a, ErrSkipReasonNotPrepared)
continue
}
targetVersion, err := ParseVersionString(upgradeStatus.Details)
if err != nil {
errs = multierror.Append(errs, err)
plan.Skipping = append(plan.Skipping, SkipUpgrade{
Appliance: a,
Reason: ErrVersionParse,
})
plan.addSkip(a, ErrVersionParse)
continue
}

Expand Down Expand Up @@ -246,11 +233,6 @@ func NewUpgradePlan(appliances []openapi.Appliance, stats *openapi.StatsApplianc
plan.Batches[batchIndex] = append(plan.Batches[batchIndex], a)
}

// Check if there are any appliances to actually upgrade
if plan.NothingToUpgrade() {
return nil, ErrNothingToUpgrade
}

// Sort the output in the upgrade plan
if len(plan.LogForwardersAndServers) > 0 {
sort.SliceStable(plan.LogForwardersAndServers, func(i, j int) bool {
Expand All @@ -277,14 +259,24 @@ func (up *UpgradePlan) AddBackups(applianceIds []string) error {
return errs.ErrorOrNil()
}

func (up *UpgradePlan) addSkip(appliance openapi.Appliance, reason error) {
up.Skipping = append(up.Skipping, SkipUpgrade{
Appliance: appliance,
Reason: reason,
})
up.allAppliances = append(up.allAppliances, appliance)
}

func (up *UpgradePlan) AddOfflineAppliances(appliances []openapi.Appliance) {
for _, a := range appliances {
up.Skipping = append(up.Skipping, SkipUpgrade{
Appliance: a,
Reason: ErrSkipReasonOffline,
})
up.addSkip(a, ErrSkipReasonOffline)
}
}

func (up *UpgradePlan) AddInactiveAppliances(appliances []openapi.Appliance) {
for _, a := range appliances {
up.addSkip(a, ErrSkipReasonInactive)
}
up.allAppliances = append(up.allAppliances, appliances...)
}

func (up *UpgradePlan) GetPrimaryController() *openapi.Appliance {
Expand Down

0 comments on commit 0608fbf

Please sign in to comment.