Skip to content

Commit

Permalink
Add filter of tables
Browse files Browse the repository at this point in the history
  • Loading branch information
tknie committed Oct 12, 2024
1 parent 1937ab9 commit c13e72a
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
1 change: 1 addition & 0 deletions plugins/storeAudit/greeter.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@ func init() {
return
}
var err error
log.Log.Debugf("Datbase target %s", url)
dbRef, password, err = common.NewReference(url)
if err != nil || dbRef == nil {
log.Log.Fatal("REST audit URL incorrect: " + url)
Expand Down
2 changes: 2 additions & 0 deletions server/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -235,11 +235,13 @@ func LoadedConfig() {

// String representation of Database instance
func (db *Database) String() string {
log.Log.Debugf("Datbase target %s", db.Target)
ref, p, err := common.NewReference(os.ExpandEnv(db.Target))
if err != nil {
log.Log.Debugf("Parse error target: %v", db.Target)
return "<Error: " + err.Error() + ">"
}

if db.Password == "" {
db.Password = p
}
Expand Down
24 changes: 22 additions & 2 deletions server/mapping.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import (
"crypto/md5"
"fmt"
"os"
"path/filepath"
"slices"
"strings"
"time"
Expand Down Expand Up @@ -65,6 +66,7 @@ func Handles(dm *Database) (*common.Reference, error) {
}
log.Log.Infof("Add database hash %s -> %s", dHash, os.ExpandEnv(dm.String()))
target := os.ExpandEnv(dm.Target)
log.Log.Debugf("Handles %s", target)
ref, _, err := common.NewReference(target)
if err != nil {
return nil, fmt.Errorf("error parsing target <%s>: %s -> %s", dm.Target, err, target)
Expand All @@ -90,6 +92,21 @@ func initTableOfDatabases() {
}
}

// checkFilter checks the filters array if it match to the given table
func checkFilter(filters []string, table string) bool {
log.Log.Debugf("Check filters: %v search %s", filters, table)
if len(filters) == 0 {
return true
}
checkTable := strings.ToLower(table)
for _, filter := range filters {
if ok, _ := filepath.Match(strings.ToLower(filter), checkTable); ok {
return true
}
}
return slices.Contains(filters, strings.ToLower(table))
}

func loadTableOfDatabases() {
log.Log.Debugf("Refreshing database list")
for _, dm := range Viewer.Database.DatabaseAccess.Database {
Expand All @@ -111,9 +128,12 @@ func loadTableOfDatabases() {
services.ServerMessage("Found table on different databases: [%s]", s)
}
} else {
if len(dm.Tables) == 0 || slices.Contains(dm.Tables, strings.ToLower(table)) {
if checkFilter(dm.Tables, table) {
log.Log.Debugf("Append table: %s", table)
newDatabases = append(newDatabases, s)
dbDictionary[s] = id
} else {
log.Log.Debugf("Ignore table: %s", table)
}
}
}
Expand Down Expand Up @@ -155,7 +175,7 @@ func ConnectTable(ctx *clu.Context, table string) (common.RegDbID, error) {
}
refCopy := *ref
refCopy.User = ctx.User.User
log.Log.Debugf("Connect table (register handle)")
log.Log.Debugf("Connect table (register handle) %#v -> %#v", ref, refCopy)
id, err := flynn.Handler(&refCopy, ctx.Pass)
if err != nil {
services.ServerMessage("Error registering database %s:%d...%v",
Expand Down

0 comments on commit c13e72a

Please sign in to comment.