Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Issue #4111 - Bug: secret_exists column not added to secrets_policy i… #4116

Merged
merged 2 commits into from
Jul 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions agreementbot/persistence/postgresql/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -140,15 +140,17 @@ func (db *AgbotPostgresqlDB) Initialize(cfg *config.HorizonConfig) error {
for si := 0; si < len(migrationSQL[v].sql); si++ {
if _, err := db.db.Exec(migrationSQL[v].sql[si]); err != nil {
return errors.New(fmt.Sprintf("unable to run SQL migration statement version %v, index %v, statement %v, error: %v", v, si, migrationSQL[v].sql[si], err))
} else if _, err := db.db.Exec(VERSION_UPDATE, HIGHEST_DATABASE_VERSION, migrationSQL[v].description); err != nil {
return errors.New(fmt.Sprintf("unable to create version table, error: %v", err))
} else {
glog.V(3).Infof("Postgresql database tables upgraded to version %v, %v", v, migrationSQL[v].description)
}
}
}
glog.V(3).Infof("Postgresql database tables upgraded for version %v, %v", v, migrationSQL[v].description)

glog.V(3).Infof("Postgresql database tables upgraded to version %v", HIGHEST_DATABASE_VERSION)
if _, err := db.db.Exec(VERSION_UPDATE, v, migrationSQL[v].description); err != nil {
return errors.New(fmt.Sprintf("unable to create version table, error: %v", err))
} else {
glog.V(3).Infof("Postgresql database tables upgraded to version %v, %v", v, migrationSQL[v].description)
}
}
glog.V(3).Infof("Finished upgrading postgresql database tables. The version is now %v", HIGHEST_DATABASE_VERSION)
}

glog.V(3).Infof("Postgresql database tables initialized.")
Expand Down
7 changes: 5 additions & 2 deletions agreementbot/persistence/postgresql/version.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,15 @@ END $$`

const VERSION_UPDATE = `UPDATE version SET ver = $1, description = $2, updated = current_timestamp WHERE id = 1;`

const HIGHEST_DATABASE_VERSION = v1
const HIGHEST_DATABASE_VERSION = v2
const v2 = 1
const v1 = 0

type SchemaUpdate struct {
sql []string // The SQL statements to run for an update to the schema.
description string // A description of the schema change.
}

var migrationSQL = map[int]SchemaUpdate{}
var v2SchemaUpdate = SchemaUpdate{sql: []string{"ALTER TABLE secrets_policy ADD COLUMN IF NOT EXISTS \"secret_exists\" BOOLEAN NOT NULL DEFAULT true;", "ALTER TABLE secrets_pattern ADD COLUMN IF NOT EXISTS \"secret_exists\" BOOLEAN NOT NULL DEFAULT true;"}, description: "Add a column to the secrets table to indicate if the secret exists or not. This is necessary to support node-specific secrets."}

var migrationSQL = map[int]SchemaUpdate{v2: v2SchemaUpdate}
38 changes: 19 additions & 19 deletions cli/cliutils/cliutils.go
Original file line number Diff line number Diff line change
Expand Up @@ -1098,29 +1098,29 @@ func GetIcpCertPath() string {

// TrustIcpCert adds the icp cert file to be trusted in calls made by the given http client
func TrustIcpCert(httpClient *http.Client) error {
icpCertPath := GetIcpCertPath()
icpCertPath := GetIcpCertPath()

var caCertPool *x509.CertPool
var err error
var caCertPool *x509.CertPool
var err error

// Trust the system certs like the anax agent code can
caCertPool, err = x509.SystemCertPool()
if err != nil {
// Trust the system certs like the anax agent code can
caCertPool, err = x509.SystemCertPool()
if err != nil {
// Decided not to fail and return here but just create a new pool
caCertPool = x509.NewCertPool()
}

if icpCertPath != "" {
icpCert, err := ioutil.ReadFile(icpCertPath)
if err != nil {
return fmt.Errorf(i18n.GetMessagePrinter().Sprintf("Encountered error reading ICP cert file %v: %v", icpCertPath, err))
}
caCertPool.AppendCertsFromPEM(icpCert)
}

transport := httpClient.Transport.(*http.Transport)
transport.TLSClientConfig.RootCAs = caCertPool
return nil
}

if icpCertPath != "" {
icpCert, err := ioutil.ReadFile(icpCertPath)
if err != nil {
return fmt.Errorf(i18n.GetMessagePrinter().Sprintf("Encountered error reading ICP cert file %v: %v", icpCertPath, err))
}
caCertPool.AppendCertsFromPEM(icpCert)
}

transport := httpClient.Transport.(*http.Transport)
transport.TLSClientConfig.RootCAs = caCertPool
return nil
}

// Get exchange url from /etc/default/horizon file. if not set, check /etc/horizon/anax.json file
Expand Down
14 changes: 7 additions & 7 deletions cli/eventlog/eventlog.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ func Delete(selections []string, force bool) {
retCode, count := cliutils.HorizonDelete(url_s, []int{204}, []int{200}, false)

if retCode == http.StatusOK {
fmt.Println(i18n.GetMessagePrinter().Sprintf("Successfully deleted %v matching event log entries.", cliutils.RemoveQuotes(fmt.Sprintf("%v",count))))
fmt.Println(i18n.GetMessagePrinter().Sprintf("Successfully deleted %v matching event log entries.", cliutils.RemoveQuotes(fmt.Sprintf("%v", count))))
} else {
fmt.Println(i18n.GetMessagePrinter().Sprintf("No event log entries matching the given selectors were found."))
}
Expand All @@ -97,13 +97,13 @@ func Prune(force bool) {
cliutils.ConfirmRemove(i18n.GetMessagePrinter().Sprintf("Are you sure you want to remove all event logs from previous registrations?"))
}

retCode, count := cliutils.HorizonDelete(url, []int{204}, []int{200}, false)
retCode, count := cliutils.HorizonDelete(url, []int{204}, []int{200}, false)

if retCode == http.StatusOK {
fmt.Println(i18n.GetMessagePrinter().Sprintf("Successfully pruned %v matching event log entries.", cliutils.RemoveQuotes(fmt.Sprintf("%v",count))))
} else {
fmt.Println(i18n.GetMessagePrinter().Sprintf("No event log entries from previous registrations were found."))
}
if retCode == http.StatusOK {
fmt.Println(i18n.GetMessagePrinter().Sprintf("Successfully pruned %v matching event log entries.", cliutils.RemoveQuotes(fmt.Sprintf("%v", count))))
} else {
fmt.Println(i18n.GetMessagePrinter().Sprintf("No event log entries from previous registrations were found."))
}
}

func List(all bool, detail bool, selections []string, tailing bool) {
Expand Down
4 changes: 2 additions & 2 deletions persistence/eventlogs.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func (w EventLogBase) Matches(selectors map[string][]Selector) bool {
case "timestamp":
attr = w.Timestamp
case "time_since":
attr = (uint64(time.Now().Unix()) - w.Timestamp)/3600
attr = (uint64(time.Now().Unix()) - w.Timestamp) / 3600
default:
return false // not tolerate wrong attribute name in the selector
}
Expand Down Expand Up @@ -436,7 +436,7 @@ func DeleteEventLogsWithSelectors(db *bolt.DB, selectors map[string][]Selector,
glog.Errorf("Unable to convert event source: %v. Error: %v", el.Source, err)
} else if (*esrc).Matches(source_selectors) {
b.Delete(k)
count ++
count++
}
}
}
Expand Down
Loading