Skip to content

Commit 7568aaa

Browse files
authored
Merge pull request #621 from afumagalli98/620
Ignored unlisteddb & updated missing running dbs
2 parents edccbf5 + 32c1d8f commit 7568aaa

File tree

1 file changed

+48
-1
lines changed

1 file changed

+48
-1
lines changed

builder/common_builder/oracle_databases.go

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,50 @@ func (b *CommonBuilder) getOracleDatabaseFeature(host model.Host, hostCoreFactor
4141

4242
uniqueOratabEntries := b.RemoveDuplicatedOratabEntries(oratabEntries)
4343

44-
oracleDatabaseFeature.UnlistedRunningDatabases = b.getUnlistedRunningOracleDBs(uniqueOratabEntries)
44+
runningDBs, err := b.fetcher.GetOracleDatabaseRunningDatabases()
45+
if err != nil {
46+
b.log.Errorf("Can't get running Oracle databases")
47+
return nil, err
48+
}
49+
50+
// UnlistedRunningDatabases is not needed at the moment accoridng to the team
51+
_ = b.getUnlistedRunningOracleDBs(uniqueOratabEntries)
52+
53+
uniqueOratabEntries = b.getMatchedOratabEntriesToRunningDbs(uniqueOratabEntries, runningDBs)
4554

4655
oracleDatabaseFeature.Databases, oracleDatabaseFeature.UnretrievedDatabases, err = b.getOracleDBs(uniqueOratabEntries, host, hostCoreFactor)
4756

57+
missingRunningDbs := b.missingRunningDbs(uniqueOratabEntries, runningDBs)
58+
59+
oracleDatabaseFeature.UnretrievedDatabases = append(oracleDatabaseFeature.UnretrievedDatabases, missingRunningDbs...)
60+
4861
return oracleDatabaseFeature, err
4962
}
5063

64+
func (b *CommonBuilder) getMatchedOratabEntriesToRunningDbs(oratabEntries []agentmodel.OratabEntry, runningDbs []string) []agentmodel.OratabEntry {
65+
res := make([]agentmodel.OratabEntry, 0, len(oratabEntries))
66+
67+
for _, entry := range oratabEntries {
68+
if ercutils.Contains(runningDbs, entry.DBName) {
69+
res = append(res, entry)
70+
}
71+
}
72+
73+
return res
74+
}
75+
76+
func (b *CommonBuilder) missingRunningDbs(oratabEntries []agentmodel.OratabEntry, runningDbs []string) []string {
77+
res := make([]string, 0, len(runningDbs)-len(oratabEntries))
78+
79+
for _, rdb := range runningDbs {
80+
if !containsDbName(oratabEntries, rdb) {
81+
res = append(res, rdb)
82+
}
83+
}
84+
85+
return res
86+
}
87+
5188
func (b *CommonBuilder) getUnlistedRunningOracleDBs(oratabEntries []agentmodel.OratabEntry) []string {
5289
runningDBs, err := b.fetcher.GetOracleDatabaseRunningDatabases()
5390
if err != nil {
@@ -610,3 +647,13 @@ func checkVersion(dbName, dbVersion string) string {
610647

611648
return "Express Edition"
612649
}
650+
651+
func containsDbName(oratabEntries []agentmodel.OratabEntry, s string) bool {
652+
for _, entry := range oratabEntries {
653+
if entry.DBName == s {
654+
return true
655+
}
656+
}
657+
658+
return false
659+
}

0 commit comments

Comments
 (0)