You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by ro...@apache.org on 2021/05/04 18:43:57 UTC
[trafficcontrol] branch master updated: t3c/torequest: syncds only
checks if packages exist, doesn't try to fix them (#5807)
This is an automated email from the ASF dual-hosted git repository.
rob pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new ce596dd t3c/torequest: syncds only checks if packages exist, doesn't try to fix them (#5807)
ce596dd is described below
commit ce596dd0091cbf945f1ff77c80551344b41225b1
Author: Brian Olsen <bn...@gmail.com>
AuthorDate: Tue May 4 12:43:48 2021 -0600
t3c/torequest: syncds only checks if packages exist, doesn't try to fix them (#5807)
---
CHANGELOG.md | 1 +
traffic_ops_ort/t3c/torequest/torequest.go | 148 ++++++++++++++++-------------
2 files changed, 84 insertions(+), 65 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 78a2a3d..effd546 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -39,6 +39,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- Added headers to Traffic Portal, Traffic Ops, and Traffic Monitor to opt out of tracking users via Google FLoC.
- `DELETE` request method for `deliveryservices/xmlId/{name}/urlkeys` and `deliveryservices/{id}/urlkeys`.
- t3c: bug fix to consider plugin config files for reloading remap.config
+- t3c: Change syncds so that it only warns on package version mismatch.
### Fixed
- [#5690](https://github.com/apache/trafficcontrol/issues/5690) - Fixed github action for added/modified db migration file.
diff --git a/traffic_ops_ort/t3c/torequest/torequest.go b/traffic_ops_ort/t3c/torequest/torequest.go
index 2b2b219..0251fbf 100644
--- a/traffic_ops_ort/t3c/torequest/torequest.go
+++ b/traffic_ops_ort/t3c/torequest/torequest.go
@@ -1194,7 +1194,7 @@ func (r *TrafficOpsReq) ProcessConfigFiles() (UpdateStatus, error) {
if strings.Contains(cfg.Path, "/opt/trafficserver/") || strings.Contains(cfg.Dir, "udev") {
cfg.Service = "trafficserver"
if r.Cfg.RunMode == config.SyncDS && !r.IsPackageInstalled("trafficserver") {
- return UpdateTropsFailed, errors.New("In syncds mode, but trafficserver isn't installed. Bailing.")
+ log.Errorln("In syncds mode, but trafficserver isn't installed. Continuing.")
}
} else if strings.Contains(cfg.Path, "/opt/ort") && strings.Contains(cfg.Name, "12M_facts") {
cfg.Service = "puppet"
@@ -1285,83 +1285,101 @@ func (r *TrafficOpsReq) ProcessPackages() error {
// check if the full package version is installed
fullPackage := pkgs[ii].Name + "-" + pkgs[ii].Version
- if instpkg == fullPackage {
- log.Infof("%s Currently installed and not marked for removal\n", reqpkg)
- r.pkgs[fullPackage] = true
- continue
- } else if instpkg != "" { // the installed package needs upgrading.
- log.Infof("%s Currently installed and marked for removal\n", instpkg)
- uninstall = append(uninstall, instpkg)
- // the required package needs installing.
- log.Infof("%s is Not installed and is marked for installation.\n", fullPackage)
- install = append(install, fullPackage)
- // get a list of packages that depend on this one and mark dependencies
- // for deletion.
- arr, err = util.PackageInfo("pkg-requires", instpkg)
- if err != nil {
- return err
- }
- if len(arr) > 0 {
- for jj := range arr {
- log.Infof("%s is Currently installed and depends on %s and needs to be removed.", arr[jj], instpkg)
- uninstall = append(uninstall, arr[jj])
+ if r.Cfg.RunMode == config.BadAss {
+ if instpkg == fullPackage {
+ log.Infof("%s Currently installed and not marked for removal\n", reqpkg)
+ r.pkgs[fullPackage] = true
+ continue
+ } else if instpkg != "" { // the installed package needs upgrading.
+ log.Infof("%s Currently installed and marked for removal\n", instpkg)
+ uninstall = append(uninstall, instpkg)
+ // the required package needs installing.
+ log.Infof("%s is Not installed and is marked for installation.\n", fullPackage)
+ install = append(install, fullPackage)
+ // get a list of packages that depend on this one and mark dependencies
+ // for deletion.
+ arr, err = util.PackageInfo("pkg-requires", instpkg)
+ if err != nil {
+ return err
}
+ if len(arr) > 0 {
+ for jj := range arr {
+ log.Infof("%s is Currently installed and depends on %s and needs to be removed.", arr[jj], instpkg)
+ uninstall = append(uninstall, arr[jj])
+ }
+ }
+ } else {
+ // the required package needs installing.
+ log.Infof("%s is Not installed and is marked for installation.\n", fullPackage)
+ log.Errorf("%s is Not installed and is marked for installation.\n", fullPackage)
+ install = append(install, fullPackage)
+ }
+ } else if r.Cfg.RunMode == config.SyncDS {
+ // Only check if packages exist and complain if they are wrong.
+ if instpkg == fullPackage {
+ log.Infof("%s Currently installed.\n", reqpkg)
+ r.pkgs[fullPackage] = true
+ continue
+ } else if instpkg != "" { // the installed package needs upgrading.
+ log.Errorf("%s Wrong version currently installed.\n", instpkg)
+ r.pkgs[instpkg] = true
+ } else {
+ // the required package needs installing.
+ log.Errorf("%s is Not installed.\n", fullPackage)
}
- } else {
- // the required package needs installing.
- log.Infof("%s is Not installed and is marked for installation.\n", fullPackage)
- log.Errorf("%s is Not installed and is marked for installation.\n", fullPackage)
- install = append(install, fullPackage)
}
}
- log.Debugf("number of packages requiring installation: %d\n", len(install))
- if r.Cfg.RunMode == config.Report {
- log.Errorf("number of packages requiring installation: %d\n", len(install))
- }
- log.Debugf("number of packages requiring removal: %d\n", len(uninstall))
- if r.Cfg.RunMode == config.Report {
- log.Errorf("number of packages requiring removal: %d\n", len(uninstall))
- }
- if len(install) > 0 {
- for ii := range install {
- result, err := util.PackageAction("info", install[ii])
- if err != nil || result != true {
- return errors.New("Package " + install[ii] + " is not available to install: " + err.Error())
- }
+ if r.Cfg.RunMode == config.BadAss {
+ log.Debugf("number of packages requiring installation: %d\n", len(install))
+ if r.Cfg.RunMode == config.Report {
+ log.Errorf("number of packages requiring installation: %d\n", len(install))
+ }
+ log.Debugf("number of packages requiring removal: %d\n", len(uninstall))
+ if r.Cfg.RunMode == config.Report {
+ log.Errorf("number of packages requiring removal: %d\n", len(uninstall))
}
- log.Infoln("All packages available.. proceding..")
- // uninstall packages marked for removal
- if len(install) > 0 && r.Cfg.RunMode == config.BadAss {
- for jj := range uninstall {
- log.Infof("Uninstalling %s\n", install[jj])
- r, err := util.PackageAction("remove", uninstall[jj])
- if err != nil {
- return errors.New("Unable to uninstall " + uninstall[jj] + " : " + err.Error())
- } else if r == true {
- log.Infof("Package %s was uninstalled\n", uninstall[jj])
+ if len(install) > 0 {
+ for ii := range install {
+ result, err := util.PackageAction("info", install[ii])
+ if err != nil || result != true {
+ return errors.New("Package " + install[ii] + " is not available to install: " + err.Error())
}
}
+ log.Infoln("All packages available.. proceding..")
- // install the required packages
- for jj := range install {
- pkg := install[jj]
- log.Infof("Installing %s\n", pkg)
- result, err := util.PackageAction("install", pkg)
- if err != nil {
- return errors.New("Unable to install " + pkg + " : " + err.Error())
- } else if result == true {
- r.pkgs[pkg] = true
- log.Infof("Package %s was installed\n", pkg)
+ // uninstall packages marked for removal
+ if len(install) > 0 && r.Cfg.RunMode == config.BadAss {
+ for jj := range uninstall {
+ log.Infof("Uninstalling %s\n", install[jj])
+ r, err := util.PackageAction("remove", uninstall[jj])
+ if err != nil {
+ return errors.New("Unable to uninstall " + uninstall[jj] + " : " + err.Error())
+ } else if r == true {
+ log.Infof("Package %s was uninstalled\n", uninstall[jj])
+ }
+ }
+
+ // install the required packages
+ for jj := range install {
+ pkg := install[jj]
+ log.Infof("Installing %s\n", pkg)
+ result, err := util.PackageAction("install", pkg)
+ if err != nil {
+ return errors.New("Unable to install " + pkg + " : " + err.Error())
+ } else if result == true {
+ r.pkgs[pkg] = true
+ log.Infof("Package %s was installed\n", pkg)
+ }
}
}
}
- }
- if r.Cfg.RunMode == config.Report && len(install) > 0 {
- for ii := range install {
- log.Errorf("\nIn Report mode and %s needs installation.\n", install[ii])
- return errors.New("In Report mode and packages need installation")
+ if r.Cfg.RunMode == config.Report && len(install) > 0 {
+ for ii := range install {
+ log.Errorf("\nIn Report mode and %s needs installation.\n", install[ii])
+ return errors.New("In Report mode and packages need installation")
+ }
}
}
return nil