dbhelpers

package
v6.0.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2021 License: Apache-2.0, BSD-2-Clause, BSD-3-Clause, + 1 more Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const BaseLimit = "\nLIMIT"
View Source
const BaseOffset = "\nOFFSET"
View Source
const BaseOrderBy = "\nORDER BY"
View Source
const BaseWhere = "\nWHERE"

Variables

This section is empty.

Functions

func AddTenancyCheck

func AddTenancyCheck(where string, queryValues map[string]interface{}, tenantColumnName string, tenantIDs []int) (string, map[string]interface{})

AddTenancyCheck takes a WHERE clause (can be ""), the associated queryValues (can be empty), a tenantColumnName that should provide a bigint corresponding to the tenantID of the object being checked (this may require a CAST), and an array of the tenantIDs the user has access to; it returns a where clause and associated queryValues including filtering based on tenancy.

func BuildWhereAndOrderByAndPagination

func BuildWhereAndOrderByAndPagination(parameters map[string]string, queryParamsToSQLCols map[string]WhereColumnInfo) (string, string, string, map[string]interface{}, []error)

func CDNExists

func CDNExists(cdnName string, tx *sql.Tx) (bool, error)

Returns true if the cdn exists

func CachegroupHasTopologyBasedDeliveryServicesOnCDN

func CachegroupHasTopologyBasedDeliveryServicesOnCDN(tx *sql.Tx, cachegroupID int, CDNID int) (bool, error)

CheckCachegroupHasTopologyBasedDeliveryServicesOnCDN returns true if the given cachegroup is assigned to any topologies with delivery services assigned on the given CDN.

func CachegroupParameterAssociationExists

func CachegroupParameterAssociationExists(id int, cachegroup int, tx *sql.Tx) (bool, error)

CachegroupParameterAssociationExists returns whether a cachegroup parameter association with the given parameter id exists, and any error.

func CheckIfCurrentUserCanModifyCDN

func CheckIfCurrentUserCanModifyCDN(tx *sql.Tx, cdn, user string) (error, error, int)

CheckIfCurrentUserCanModifyCDN checks if the current user has the lock on the cdn that the requested operation is to be performed on. This will succeed if the either there is no lock by any user on the CDN, or if the current user has the lock on the CDN.

func CheckIfCurrentUserCanModifyCDNWithID

func CheckIfCurrentUserCanModifyCDNWithID(tx *sql.Tx, cdnID int64, user string) (error, error, int)

CheckIfCurrentUserCanModifyCDNWithID checks if the current user has the lock on the cdn (identified by ID) that the requested operation is to be performed on. This will succeed if the either there is no lock by any user on the CDN, or if the current user has the lock on the CDN.

func CheckIfCurrentUserCanModifyCDNs

func CheckIfCurrentUserCanModifyCDNs(tx *sql.Tx, cdns []string, user string) (error, error, int)

CheckIfCurrentUserCanModifyCDNs checks if the current user has the lock on the list of cdns that the requested operation is to be performed on. This will succeed if the either there is no lock by any user on any of the CDNs, or if the current user has the lock on any of the CDNs.

func CheckIfCurrentUserCanModifyCDNsByID

func CheckIfCurrentUserCanModifyCDNsByID(tx *sql.Tx, cdns []int, user string) (error, error, int)

CheckIfCurrentUserCanModifyCDNs checks if the current user has the lock on the list of cdns(identified by ID) that the requested operation is to be performed on. This will succeed if the either there is no lock by any user on any of the CDNs, or if the current user has the lock on any of the CDNs.

func CheckIfCurrentUserCanModifyCachegroup

func CheckIfCurrentUserCanModifyCachegroup(tx *sql.Tx, cachegroupID int, user string) (error, error, int)

CheckIfCurrentUserCanModifyCachegroup checks if the current user has the lock on the cdns that are associated with the provided cachegroup ID. This will succeed if no other user has a hard lock on any of the CDNs that relate to the cachegroup in question.

func CheckIfCurrentUserCanModifyCachegroups

func CheckIfCurrentUserCanModifyCachegroups(tx *sql.Tx, cachegroupIDs []int, user string) (error, error, int)

CheckIfCurrentUserCanModifyCachegroups checks if the current user has the lock on the cdns that are associated with the provided cachegroup IDs. This will succeed if no other user has a hard lock on any of the CDNs that relate to the cachegroups in question.

func CheckIfCurrentUserHasCdnLock

func CheckIfCurrentUserHasCdnLock(tx *sql.Tx, cdn, user string) (error, error, int)

CheckIfCurrentUserHasCdnLock checks if the current user has the lock on the cdn that the requested operation is to be performed on. This will succeed if the either there is no lock by any user on the CDN, or if the current user has the lock on the CDN.

func CheckOriginServerInDSCG

func CheckOriginServerInDSCG(tx *sql.Tx, dsID int, dsTopology string) (error, error, int)

CheckOriginServerInDSCG checks if a DS has ORG server and if it does, to make sure the cachegroup is part of DS

func CheckTopology

func CheckTopology(tx *sqlx.Tx, ds tc.DeliveryServiceV4) (int, error, error)

CheckTopology returns an error if the given Topology does not exist or if one of the Topology's Cache Groups is empty with respect to the Delivery Service's CDN. Note that this can panic if ds does not have a properly set CDNID.

func CheckTopologyOrgServerCGInDSCG

func CheckTopologyOrgServerCGInDSCG(tx *sql.Tx, cdnIds []int, dsTopology string, topologyCGNames []string) (error, error, int)

CheckTopologyOrgServerCGInDSCG checks if ORG server are part of DS. IF they are then the user is not allowed to remove the ORG servers from the associated DS's topology

func CommitIf

func CommitIf(tx *sql.Tx, doCommit *bool)

CommitIf commits if doCommit is true at the time of execution. This is designed as a defer helper.

Example:

tx, err := db.Begin()
txCommit := false
defer dbhelpers.CommitIf(tx, &txCommit)
if err := tx.Exec("select ..."); err != nil {
  return errors.New("executing: " + err.Error())
}
txCommit = true
return nil

func DSRExistsWithXMLID

func DSRExistsWithXMLID(xmlid string, tx *sql.Tx) (bool, error)

DSRExistsWithXMLID returns whether or not an **open** Delivery Service Request with the given xmlid exists, and any error that occurred.

func GetCDNDSes

func GetCDNDSes(tx *sql.Tx, cdn tc.CDNName) (map[string]struct{}, error)

func GetCDNDomainFromName

func GetCDNDomainFromName(tx *sql.Tx, cdnName tc.CDNName) (string, bool, error)

GetCDNDomainFromName returns the domain, whether the cdn exists, and any error.

func GetCDNIDFromFedID

func GetCDNIDFromFedID(id int, tx *sql.Tx) (int, bool, error)

GetCDNIDFromFedID returns the ID of the CDN for the current federation.

func GetCDNIDFromName

func GetCDNIDFromName(tx *sql.Tx, name tc.CDNName) (int, bool, error)

GetCDNIDFromName returns the ID of the CDN if a CDN with the name exists

func GetCDNIDsFromFedResolverID

func GetCDNIDsFromFedResolverID(id int, tx *sql.Tx) ([]int, bool, error)

GetCDNIDFromFedResolverID returns the IDs of the CDNs that the fed resolver is associated with.

func GetCDNNameDomain

func GetCDNNameDomain(cdnID int, tx *sql.Tx) (string, string, error)

GetCDNNameDomain returns the name and domain for a given CDN ID.

func GetCDNNameFromID

func GetCDNNameFromID(tx *sql.Tx, id int64) (tc.CDNName, bool, error)

func GetCDNNameFromProfileID

func GetCDNNameFromProfileID(tx *sql.Tx, id int) (tc.CDNName, error)

GetCDNNameFromProfileID returns the cdn name for the provided profile ID.

func GetCDNNameFromProfileName

func GetCDNNameFromProfileName(tx *sql.Tx, profileName string) (tc.CDNName, error)

GetCDNNameFromProfileName returns the cdn name for the provided profile name.

func GetCDNNameFromServerID

func GetCDNNameFromServerID(tx *sql.Tx, serverId int64) (tc.CDNName, error)

GetCDNNameFromServerID gets the CDN name for the server with the given ID.

func GetCDNNamesFromDSIds

func GetCDNNamesFromDSIds(tx *sql.Tx, dsIds []int) ([]string, error)

GetCDNNamesFromDSIds returns a list of cdn names for a list of DS IDs.

func GetCDNNamesFromProfileIDs

func GetCDNNamesFromProfileIDs(tx *sql.Tx, profileIDs []int64) ([]string, error)

GetCDNNamesFromProfileIDs returns a list of cdn names for a list of profile IDs.

func GetCDNNamesFromServerIds

func GetCDNNamesFromServerIds(tx *sql.Tx, serverIds []int64) ([]string, error)

GetCDNNamesFromServerIds returns a list of cdn names for a list of server IDs.

func GetCDNs

func GetCDNs(tx *sql.Tx) (map[tc.CDNName]struct{}, error)

func GetCacheGroupNameFromID

func GetCacheGroupNameFromID(tx *sql.Tx, id int) (tc.CacheGroupName, bool, error)

GetCacheGroupNameFromID Get Cache Group name from a given ID

func GetDSCDNIdFromID

func GetDSCDNIdFromID(tx *sql.Tx, dsID int) (int, bool, error)

GetDSCDNIdFromID loads the DeliveryService's cdn ID from the database, from the delivery service ID. Returns whether the delivery service was found, and any error.

func GetDSIDAndCDNFromName

func GetDSIDAndCDNFromName(tx *sql.Tx, xmlID string) (int, tc.CDNName, bool, error)

GetDSIDAndCDNFromName returns the delivery service ID and cdn name given from the delivery service name, whether a result existed, and any error.

func GetDSIDFromStaticDNSEntry

func GetDSIDFromStaticDNSEntry(tx *sql.Tx, staticDNSEntryID int) (int, error)

GetDSIDFromStaticDNSEntry returns the delivery service ID associated with the static DNS entry

func GetDSNameAndCDNFromID

func GetDSNameAndCDNFromID(tx *sql.Tx, id int) (tc.DeliveryServiceName, tc.CDNName, bool, error)

returns returns the delivery service name and cdn, whether it existed, and any error.

func GetDSNameFromID

func GetDSNameFromID(tx *sql.Tx, id int) (tc.DeliveryServiceName, bool, error)

GetDSNameFromID loads the DeliveryService's xml_id from the database, from the ID. Returns whether the delivery service was found, and any error.

func GetDSRequiredCapabilitiesFromID

func GetDSRequiredCapabilitiesFromID(id int, tx *sql.Tx) ([]string, error)

GetDSRequiredCapabilitiesFromID returns the server's capabilities.

func GetDSTenantIDFromXMLID

func GetDSTenantIDFromXMLID(tx *sql.Tx, xmlid string) (int, bool, error)

GetDSTenantIDFromXMLID fetches the ID of the Tenant to whom the Delivery Service identified by the the provided XMLID belongs. It returns, in order, the requested ID (if one could be found), a boolean indicating whether or not a Delivery Service with the provided xmlid could be found, and an error for logging in case something unexpected goes wrong.

func GetDeliveryServiceCDNsByTopology

func GetDeliveryServiceCDNsByTopology(tx *sql.Tx, topology string) ([]int, error)

GetDeliveryServiceCDNsByTopology returns a slice of CDN IDs for all delivery services assigned to the given topology.

func GetDeliveryServiceType

func GetDeliveryServiceType(dsID int, tx *sql.Tx) (tc.DSType, bool, error)

GetDeliveryServiceType returns the type of the deliveryservice.

func GetDeliveryServiceTypeRequiredCapabilitiesAndTopology

func GetDeliveryServiceTypeRequiredCapabilitiesAndTopology(dsID int, tx *sql.Tx) (tc.DSType, []string, *string, bool, error)

GetDeliveryServiceTypeAndTopology returns the type of the deliveryservice and the name of its topology.

func GetDeliveryServicesWithTopologies

func GetDeliveryServicesWithTopologies(tx *sql.Tx, dsIDs []int) ([]int, error)

GetDeliveryServicesWithTopologies returns a list containing the delivery services in the given dsIDs list that have a topology assigned. An error indicates unexpected errors that occurred when querying.

func GetFederationIDForUserIDByXMLID

func GetFederationIDForUserIDByXMLID(tx *sql.Tx, userID int, xmlid string) (uint, bool, error)

GetFederationIDForUserIDByXMLID retrieves the ID of the Federation assigned to the user defined by userID on the Delivery Service identified by xmlid. If no such federation exists, the boolean returned will be 'false', while the error indicates unexpected errors that occurred when querying.

func GetFederationNameFromID

func GetFederationNameFromID(id int, tx *sql.Tx) (string, bool, error)

GetFederationNameFromID returns the federation's name, whether a federation with ID exists, or any error.

func GetFederationResolversByFederationID

func GetFederationResolversByFederationID(tx *sql.Tx, fedID int) ([]tc.FederationResolver, error)

GetFederationResolversByFederationID fetches all of the federation resolvers currently assigned to a federation. In the event of an error, it will return an empty slice and the error.

func GetGlobalParam

func GetGlobalParam(tx *sql.Tx, name string) (string, bool, error)

GetGlobalParams returns the value of the global param, whether it existed, or any error

func GetParam

func GetParam(tx *sql.Tx, name string, configFile string) (string, bool, error)

GetParam returns the value of the param, whether it existed, or any error.

func GetParamNameByID

func GetParamNameByID(tx *sql.Tx, id int) (string, bool, error)

GetParamNameByID returns the name of the param, whether it existed, or any error.

func GetPrivLevelFromRoleID

func GetPrivLevelFromRoleID(tx *sql.Tx, id int) (int, bool, error)

GetPrivLevelFromRoleID returns the priv_level associated with a role, whether it exists, and any error. This method exists on a temporary basis. After priv_level is fully deprecated and capabilities take over, this method will not only no longer be needed, but the corresponding new privilege check should be done via the primary database query for the users endpoint. The users json response will contain a list of capabilities in the future, whereas now the users json response currently does not contain privLevel. See the wiki page on the roles/capabilities as a system: https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=68715910

func GetProfileIDFromName

func GetProfileIDFromName(name string, tx *sql.Tx) (int, bool, error)

GetProfileIDFromName returns the profile's ID, whether a profile with name exists, or any error.

func GetProfileNameFromID

func GetProfileNameFromID(id int, tx *sql.Tx) (string, bool, error)

GetProfileNameFromID returns the profile's name, whether a profile with ID exists, or any error.

func GetRequiredCapabilitiesOfDeliveryServices

func GetRequiredCapabilitiesOfDeliveryServices(ids []int, tx *sql.Tx) (map[int][]string, error)

GetRequiredCapabilitiesOfDeliveryServices gets all of the required capabilities of the given delivery service IDs.

func GetServerCapabilitiesFromName

func GetServerCapabilitiesFromName(name string, tx *sql.Tx) ([]string, error)

GetServerCapabilitiesFromName returns the server's capabilities.

func GetServerCapabilitiesOfServers

func GetServerCapabilitiesOfServers(names []string, tx *sql.Tx) (map[string][]string, error)

GetServerCapabilitiesOfServers gets all of the server capabilities of the given server hostnames.

func GetServerIDFromName

func GetServerIDFromName(serverName string, tx *sql.Tx) (int, bool, error)

GetServerIDFromName gets server id from a given name

func GetServerIDsFromCachegroupNames

func GetServerIDsFromCachegroupNames(tx *sql.Tx, cgID []string) ([]int64, error)

GetServerIDsFromCachegroupNames returns a list of servers IDs for a list of cachegroup IDs.

func GetServerInfo

func GetServerInfo(serverID int, tx *sql.Tx) (tc.ServerInfo, bool, error)

GetServerInfo returns a ServerInfo struct, whether the server exists, and an error (if one occurs).

func GetServerInfosFromHostNames

func GetServerInfosFromHostNames(tx *sql.Tx, hostNames []string) ([]tc.ServerInfo, error)

GetServerInfosFromHostNames returns the ServerInfo structs of the given server host names or an error if any occur.

func GetServerInfosFromIDs

func GetServerInfosFromIDs(tx *sql.Tx, ids []int) ([]tc.ServerInfo, error)

GetServerInfosFromIDs returns the ServerInfo structs of the given server IDs or an error if any occur.

func GetServerNameFromID

func GetServerNameFromID(tx *sql.Tx, id int) (string, bool, error)

func GetServersInterfaces

func GetServersInterfaces(ids []int, tx *sql.Tx) (map[int]map[string]tc.ServerInterfaceInfoV40, error)

GetServerInterfaces, given the IDs of one or more servers, returns all of their network interfaces mapped by their ids, or an error if one occurs during retrieval.

func GetStatusByID

func GetStatusByID(id int, tx *sql.Tx) (tc.StatusNullable, bool, error)

GetStatusByID returns a Status struct, a bool for whether or not a status of the given ID exists, and an error (if one occurs).

func GetStatusByName

func GetStatusByName(name string, tx *sql.Tx) (tc.StatusNullable, bool, error)

GetStatusByName returns a Status struct, a bool for whether or not a status of the given name exists, and an error (if one occurs).

func GetTopologyCachegroups

func GetTopologyCachegroups(tx *sql.Tx, name string) ([]int, []string, error)

GetTopologyCachegroups returns an array of cachegroup IDs and an array of cachegroup names for the given topology, or any error.

func GetTypeIDByName

func GetTypeIDByName(t string, tx *sql.Tx) (int, bool, error)

GetTypeIDByName reports the id of the type and whether or not a type exists with the given name.

func GetUserByEmail

func GetUserByEmail(email string, tx *sql.Tx) (tc.User, bool, error)

GetUserByEmail retrieves the user with the given email. If no such user exists, the boolean returned will be 'false', while the error indicates unexpected errors that occurred when querying.

func GetUserByID

func GetUserByID(id int, tx *sql.Tx) (tc.User, bool, error)

GetUserByID returns the user with the requested ID if one exists. The second return value is a boolean indicating whether said user actually did exist, and the third contains any error encountered along the way.

func ScanCachegroupsServerCapabilities

func ScanCachegroupsServerCapabilities(rows *sql.Rows) (map[string][]int, map[int]map[string]struct{}, map[int]int, error)

ScanCachegroupsServerCapabilities, given rows of (server ID, CDN ID, cachegroup name, server capabilities), returns a map of cachegroup names to server IDs, a map of server IDs to a map of their capabilities, a map of server IDs to CDN IDs, and an error (if one occurs).

func TopologyExists

func TopologyExists(tx *sql.Tx, name string) (bool, error)

TopologyExists checks if a Topology with the given name exists. Returns whether or not the Topology exists, along with any encountered error.

func UsernameExists

func UsernameExists(uname string, tx *sql.Tx) (bool, error)

UsernameExists reports whether or not the the given username exists as a user in the database to which the passed transaction refers. If anything goes wrong when checking the existence of said user, the error is directly returned to the caller. Note that in that case, no real meaning should be assigned to the returned boolean value.

Types

type WhereColumnInfo

type WhereColumnInfo struct {
	Column  string
	Checker func(string) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL