Skip to content
Open
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
56 changes: 0 additions & 56 deletions base/core/gintesting.go

This file was deleted.

7 changes: 7 additions & 0 deletions base/core/probes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,16 @@ import (
"net/http/httptest"
"testing"

"github.com/gin-gonic/gin"
"github.com/stretchr/testify/assert"
)

func InitRouter(handler gin.HandlerFunc) *gin.Engine {
router := gin.New()
router.GET("/", handler)
return router
}

func TestLiveness(t *testing.T) {
w := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/", nil)
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/advisories.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ type AdvisoriesResponse struct {
}

func advisoriesCommon(c *gin.Context) (*gorm.DB, *ListMeta, []string, error) {
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
account := c.GetInt(utils.KeyAccount)
workspaceIDs := c.GetStringSlice(utils.KeyInventoryWorkspaces)
var query *gorm.DB
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/advisories_export.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func AdvisoriesExportHandler(c *gin.Context) {
if err != nil {
return
}
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)

query, err := resolveAdvisoriesQuery(db, account, workspaceIDs, filters)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/advisory_detail.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func AdvisoryDetailHandler(c *gin.Context) {

var err error
var resp *AdvisoryDetailResponse
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
resp, err = getAdvisory(db, advisoryName, false)
if err != nil {
if errors.Is(err, gorm.ErrRecordNotFound) {
Expand Down
18 changes: 9 additions & 9 deletions manager/controllers/advisory_detail_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (

func TestAdvisoryDetailDefault(t *testing.T) {
core.SetupTest(t)
w := CreateRequestRouterWithPath("GET", "/:advisory_id", "RH-9", "", nil, "", AdvisoryDetailHandler, core.V3APICtx)
w := CreateRequestRouterWithPath("GET", "/:advisory_id", "RH-9", "", nil, "", AdvisoryDetailHandler, V3APICtx)

var output AdvisoryDetailResponse
CheckResponse(t, w, http.StatusOK, &output)
Expand Down Expand Up @@ -43,7 +43,7 @@ func (r *AdvisoryDetailResponse) checkRH9Fields(t *testing.T) {

func TestAdvisoryDetailCVE(t *testing.T) {
core.SetupTest(t)
w := CreateRequestRouterWithPath("GET", "/:advisory_id", "RH-3", "", nil, "", AdvisoryDetailHandler, core.V3APICtx)
w := CreateRequestRouterWithPath("GET", "/:advisory_id", "RH-3", "", nil, "", AdvisoryDetailHandler, V3APICtx)

var output AdvisoryDetailResponse
CheckResponse(t, w, http.StatusOK, &output)
Expand All @@ -56,13 +56,13 @@ func TestAdvisoryNoIdProvided(t *testing.T) {
core.SetupTest(t)
var errResp utils.ErrorResponse
w := CreateRequest("GET", "/", nil, "", AdvisoryDetailHandler,
core.V3APICtx)
V3APICtx)

CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, "advisory_id param not found", errResp.Error)

w = CreateRequest("GET", "/", nil, "", AdvisoryDetailHandler,
core.V3APICtx)
V3APICtx)
CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, "advisory_id param not found", errResp.Error)
}
Expand All @@ -71,20 +71,20 @@ func TestAdvisoryNotFound(t *testing.T) {
core.SetupTest(t)

var errResp utils.ErrorResponse
w := CreateRequestRouterWithPath("GET", "/:advisory_id", "foo", "", nil, "", AdvisoryDetailHandler, core.V3APICtx)
w := CreateRequestRouterWithPath("GET", "/:advisory_id", "foo", "", nil, "", AdvisoryDetailHandler, V3APICtx)

CheckResponse(t, w, http.StatusNotFound, &errResp)
assert.Equal(t, "advisory not found", errResp.Error)

w = CreateRequestRouterWithPath("GET", "/:advisory_id", "foo", "", nil, "", AdvisoryDetailHandler, core.V3APICtx)
w = CreateRequestRouterWithPath("GET", "/:advisory_id", "foo", "", nil, "", AdvisoryDetailHandler, V3APICtx)

CheckResponse(t, w, http.StatusNotFound, &errResp)
assert.Equal(t, "advisory not found", errResp.Error)
}

func testReq() *httptest.ResponseRecorder {
return CreateRequestRouterWithPath("GET", "/:advisory_id", "RH-9", "", nil, "", AdvisoryDetailHandler,
core.V3APICtx)
V3APICtx)
}

func TestAdvisoryDetailCached(t *testing.T) {
Expand Down Expand Up @@ -121,13 +121,13 @@ func TestAdvisoryDetailFiltering(t *testing.T) {

var errResp utils.ErrorResponse
w := CreateRequestRouterWithPath("GET", "/:advisory_id", "RH-9", "?filter[filter]=abcd", nil, "",
AdvisoryDetailHandler, core.V3APICtx)
AdvisoryDetailHandler, V3APICtx)

CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, FilterNotSupportedMsg, errResp.Error)

w = CreateRequestRouterWithPath("GET", "/:advisory_id", "RH-9", "?filter[filter]=abcd", nil, "",
AdvisoryDetailHandler, core.V3APICtx)
AdvisoryDetailHandler, V3APICtx)

CheckResponse(t, w, http.StatusBadRequest, &errResp)
assert.Equal(t, FilterNotSupportedMsg, errResp.Error)
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/advisory_systems.go
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ func advisorySystemsCommon(c *gin.Context) (*gorm.DB, *ListMeta, []string, error
return nil, nil, nil, errors.New("advisory_id param not found")
}

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
var exists int64
err := db.Model(&models.AdvisoryMetadata{}).
Where("name = ? ", advisoryName).Count(&exists).Error
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/advisory_systems_export.go
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ func AdvisorySystemsExportHandler(c *gin.Context) {
return
}

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
var exists int64
err := db.Model(&models.AdvisoryMetadata{}).
Where("name = ? ", advisoryName).Count(&exists).Error
Expand Down
6 changes: 3 additions & 3 deletions manager/controllers/package_detail.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ type PackageDetailAttributes struct {
var PackageSelect = database.MustGetSelect(&PackageDetailAttributes{})

func packageLatestHandler(c *gin.Context, packageName string) {
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
query := database.PackageByName(db, packageName, database.JoinPackageDetails)
var pkg PackageDetailAttributes
// Perform 'soft-filtering' by ordering on boolean column first
Expand All @@ -66,7 +66,7 @@ func packageLatestHandler(c *gin.Context, packageName string) {
}

func packageEvraHandler(c *gin.Context, nevra *utils.Nevra) {
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
if !packageNameIsValid(db, nevra.Name) {
c.JSON(http.StatusBadRequest, utils.ErrorResponse{Error: "invalid package name"})
return
Expand Down Expand Up @@ -112,7 +112,7 @@ func PackageDetailHandler(c *gin.Context) {
return
}

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
if packageNameIsValid(db, parameter) {
packageLatestHandler(c, parameter)
return
Expand Down
4 changes: 2 additions & 2 deletions manager/controllers/package_systems.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ func packageSystemsCommon(db *gorm.DB, c *gin.Context) (*gorm.DB, *ListMeta, []s
// @Failure 500 {object} utils.ErrorResponse
// @Router /packages/{package_name}/systems [get]
func PackageSystemsListHandler(c *gin.Context) {
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)

query, meta, params, err := packageSystemsCommon(db, c)
if err != nil {
Expand Down Expand Up @@ -187,7 +187,7 @@ func PackageSystemsListHandler(c *gin.Context) {
// @Failure 500 {object} utils.ErrorResponse
// @Router /ids/packages/{package_name}/systems [get]
func PackageSystemsListIDsHandler(c *gin.Context) {
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
query, meta, _, err := packageSystemsCommon(db, c)
if err != nil {
return
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/package_systems_export.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func PackageSystemsExportHandler(c *gin.Context) {
return
}

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
var packageIDs []int
if err := database.PackageByName(db, packageName).Pluck("p.id", &packageIDs).Error; err != nil {
utils.LogAndRespError(c, err, "database error")
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/package_versions.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ func PackageVersionsListHandler(c *gin.Context) {
return
}

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
var packageNameIDs []int
if err := packagesNameID(db, packageName).Pluck("pn.id", &packageNameIDs).Error; err != nil {
utils.LogAndRespError(c, err, "database error")
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/packages.go
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ func PackagesListHandler(c *gin.Context) {
return
}

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
useCache := shouldUseCache(db, account, filters, workspaceIDs)
if !useCache {
db.Exec("SET work_mem TO '?'", utils.CoreCfg.DBWorkMem)
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/packages_export.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func PackagesExportHandler(c *gin.Context) {
return
}

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
useCache := shouldUseCache(db, account, filters, workspaceIDs)
if !useCache {
db.Exec("SET work_mem TO '?'", utils.CoreCfg.DBWorkMem)
Expand Down
8 changes: 6 additions & 2 deletions manager/controllers/status.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package controllers

import (
"app/base/database"
"app/base/utils"
"app/manager/middlewares"
"net/http"

"github.com/gin-gonic/gin"
Expand All @@ -12,7 +12,11 @@ import (
// @Success 200 {int} http.StatusOK
// @Failure 503 {object} utils.ErrorResponse
func Status(c *gin.Context) {
sqlDB, _ := database.DB(c.Request.Context()).DB()
sqlDB, err := middlewares.DBWriter(c).DB()
if err != nil {
utils.LogAndRespStatusError(c, http.StatusServiceUnavailable, err, "Database not connected")
return
}
if err := sqlDB.Ping(); err != nil {
utils.LogAndRespStatusError(c, http.StatusServiceUnavailable, err, "Database not connected")
} else {
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/system_advisories.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func systemAdvisoriesCommon(c *gin.Context) (*gorm.DB, *ListMeta, []string, erro
return nil, nil, nil, err
} // Error handled method itself

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
var exists int64
err = db.Model(&models.SystemInventory{}).Where("inventory_id = ?", inventoryID).
Count(&exists).Error
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/system_advisories_export.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ func SystemAdvisoriesExportHandler(c *gin.Context) {
return
}

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
var exists int64
err = db.Model(&models.SystemInventory{}).Where("inventory_id = ?", inventoryID).
Count(&exists).Error
Expand Down
4 changes: 2 additions & 2 deletions manager/controllers/system_detail.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func SystemDetailHandler(c *gin.Context) {
}

var systemDetail SystemDetailLookup
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
query := database.Systems(db, account, workspaceIDs, database.JoinTemplates).
Select(database.MustGetSelect(&systemDetail)).
Where("si.inventory_id = ?", inventoryID)
Expand Down Expand Up @@ -163,7 +163,7 @@ func systemJSONsCommon(c *gin.Context, column string) *models.SystemInventory {
}

var system models.SystemInventory
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
query := database.Systems(db, account, workspaceIDs).
Select(column).
Where("si.inventory_id = ?", inventoryID)
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/system_packages.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ func SystemPackagesHandler(c *gin.Context) {
return
}
var loaded []SystemPackageDBLoad
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
q := systemPackageQuery(db, account, workspaceIDs, inventoryID)
q, meta, params, err := ListCommon(q, c, filters, SystemPackagesOpts)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/system_packages_export.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func SystemPackagesExportHandler(c *gin.Context) {
}

var loaded []SystemPackageDBLoad
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
q := systemPackageQuery(db, account, workspaceIDs, inventoryID)
q, err = ExportListCommon(q, c, SystemPackagesOpts)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/systems.go
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ func validateSystemsListIDs(ids []string) error {
func systemsCommon(c *gin.Context, ids []string) (*gorm.DB, *ListMeta, []string, error) {
account := c.GetInt(utils.KeyAccount)
workspaceIDs := c.GetStringSlice(utils.KeyInventoryWorkspaces)
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
query := querySystems(db, account, workspaceIDs)
filters, err := ParseAllFilters(c, SystemOpts)
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions manager/controllers/systems_advisories_view.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ var advisoriesSystemsViewOpts = ListOpts{

func totalItems(c *gin.Context, tx *gorm.DB, cols string) (int, error) {
var count int64
err := middlewares.DBFromContext(c).Table("(?) AS cq", tx.Select(cols)).Count(&count).Error
err := middlewares.DB(c).Table("(?) AS cq", tx.Select(cols)).Count(&count).Error
return int(count), err
}

Expand Down Expand Up @@ -181,7 +181,7 @@ func queryDB(c *gin.Context, endpoint string) ([]systemsAdvisoriesDBLoad, *ListM
}
acc := c.GetInt(utils.KeyAccount)
workspaceIDs := c.GetStringSlice(utils.KeyInventoryWorkspaces)
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
// backward compatibility, put limit/offset from json into querystring
if req.Limit != nil {
c.Request.URL.RawQuery += fmt.Sprintf("&limit=%d", *req.Limit)
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/systems_export.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ import (
func SystemsExportHandler(c *gin.Context) {
account := c.GetInt(utils.KeyAccount)
workspaceIDs := c.GetStringSlice(utils.KeyInventoryWorkspaces)
db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
query := querySystems(db, account, workspaceIDs)
filters, err := ParseAllFilters(c, SystemOpts)
if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion manager/controllers/systemtags.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func SystemTagListHandler(c *gin.Context) {
account := c.GetInt(utils.KeyAccount)
workspaceIDs := c.GetStringSlice(utils.KeyInventoryWorkspaces)

db := middlewares.DBFromContext(c)
db := middlewares.DB(c)
// https://stackoverflow.com/questions/33474778/how-to-group-result-by-array-column-in-postgres
sq := database.Systems(db, account, workspaceIDs).
Select("jsonb_array_elements(si.tags) AS tag")
Expand Down
Loading
Loading