utils

package
v0.1.4 Latest Latest
Warning

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

Go to latest
Published: May 22, 2023 License: Apache-2.0 Imports: 26 Imported by: 2

Documentation

Index

Constants

View Source
const (
	ClustersPageSize             = 50
	BackplaneApiUrlRegexp string = `(?mi)^https:\/\/api\.(.*)backplane\.(.*)`
	ClusterIDRegexp       string = "/?backplane/cluster/([a-zA-Z0-9]+)/?"
)

Variables

This section is empty.

Functions

func CheckHealth

func CheckHealth(url string) bool

CheckHealth check if the given url returns http status 200 return false if it not 200 or encounter any error.

func CreateTempKubeConfig

func CreateTempKubeConfig(kubeConfig *api.Config) error

func GetDefaultKubeConfig added in v0.1.3

func GetDefaultKubeConfig() api.Config

GetDefaultKubeConfig return default kube config

func GetFormattedError

func GetFormattedError(rsp *http.Response) error

func GetFreePort

func GetFreePort() (int, error)

GetFreePort asks the OS for an available port to listen to. https://github.com/phayes/freeport/blob/master/freeport.go

func MatchBaseDomain

func MatchBaseDomain(longHostname, baseDomain string) bool

MatchBaseDomain returns true if the given longHostname matches the baseDomain.

func ModifyTempKubeConfigFileName added in v0.1.3

func ModifyTempKubeConfigFileName(fileName string) error

ModifyTempKubeConfigFileName update default temp kube config file name

func ParseParamsFlag

func ParseParamsFlag(paramsFlag []string) (map[string]string, error)

func ReadKubeconfigRaw

func ReadKubeconfigRaw() (api.Config, error)

func RemoveTempKubeConfig

func RemoveTempKubeConfig()

func RenderJson

func RenderJson(reader io.Reader) error

RenderJson is an effectful function that renders the reader as JSON returns err if render fails

func RenderJsonBytes

func RenderJsonBytes(i interface{}) error

RenderJsonBytes is an effectful function that renders the reader as JSON returns err if render fails

func RenderTabbedTable

func RenderTabbedTable(headers []string, data [][]string)

This renderer only uses tabs and renders based on terminal width available It keeps the first column in it's full length and truncates others

func RenderTable

func RenderTable(headers []string, data [][]string)

func TryParseBackplaneAPIError

func TryParseBackplaneAPIError(rsp *http.Response) (*BackplaneApi.Error, error)

func TryPrintAPIError

func TryPrintAPIError(rsp *http.Response, rawFlag bool) error

func TryRenderErrorRaw

func TryRenderErrorRaw(rsp *http.Response) error

Types

type BackplaneCluster

type BackplaneCluster struct {
	ClusterID     string
	ClusterURL    string // for e.g. https://api-backplane.apps.com/backplane/cluster/<cluster-id>/
	BackplaneHost string // for e.g. https://api-backplane.apps.com
}

type ClientUtils

type ClientUtils interface {
	MakeBackplaneAPIClient(base string) (BackplaneApi.ClientWithResponsesInterface, error)
	MakeBackplaneAPIClientWithAccessToken(base, accessToken string) (BackplaneApi.ClientWithResponsesInterface, error)
	MakeRawBackplaneAPIClientWithAccessToken(base, accessToken string) (BackplaneApi.ClientInterface, error)
	MakeRawBackplaneAPIClient(base string) (BackplaneApi.ClientInterface, error)
	GetBackplaneClient(backplaneURL string) (client BackplaneApi.ClientInterface, err error)
	SetClientProxyUrl(proxyUrl string) error
}
var (
	DefaultClientUtils ClientUtils = &DefaultClientUtilsImpl{}
)

type ClusterUtils added in v0.1.2

type ClusterUtils interface {
	GetClusterIDAndHostFromClusterURL(clusterURL string) (string, string, error)
	GetBackplaneClusterFromConfig() (BackplaneCluster, error)
	GetBackplaneClusterFromClusterKey(clusterKey string) (BackplaneCluster, error)
	GetCloudProvider(cluster *cmv1.Cluster) string
	GetBackplaneCluster(params ...string) (BackplaneCluster, error)
}
var (
	DefaultClusterUtils ClusterUtils = &DefaultClusterUtilsImpl{}
)

type DefaultClientUtilsImpl

type DefaultClientUtilsImpl struct {
	// contains filtered or unexported fields
}

func (*DefaultClientUtilsImpl) GetBackplaneClient

func (s *DefaultClientUtilsImpl) GetBackplaneClient(backplaneURL string) (client BackplaneApi.ClientInterface, err error)

getBackplaneClient returns authnicated Backplane API client

func (*DefaultClientUtilsImpl) MakeBackplaneAPIClient

func (*DefaultClientUtilsImpl) MakeBackplaneAPIClientWithAccessToken

func (*DefaultClientUtilsImpl) MakeBackplaneAPIClientWithAccessToken(base, accessToken string) (BackplaneApi.ClientWithResponsesInterface, error)

func (*DefaultClientUtilsImpl) MakeRawBackplaneAPIClient

func (s *DefaultClientUtilsImpl) MakeRawBackplaneAPIClient(base string) (BackplaneApi.ClientInterface, error)

func (*DefaultClientUtilsImpl) MakeRawBackplaneAPIClientWithAccessToken

func (s *DefaultClientUtilsImpl) MakeRawBackplaneAPIClientWithAccessToken(base, accessToken string) (BackplaneApi.ClientInterface, error)

func (*DefaultClientUtilsImpl) SetClientProxyUrl

func (s *DefaultClientUtilsImpl) SetClientProxyUrl(proxyUrl string) error

Set client proxy url for http transport

type DefaultClusterUtilsImpl added in v0.1.2

type DefaultClusterUtilsImpl struct{}

func (*DefaultClusterUtilsImpl) GetBackplaneCluster added in v0.1.2

func (s *DefaultClusterUtilsImpl) GetBackplaneCluster(params ...string) (BackplaneCluster, error)

GetBackplaneCluster returns BackplaneCluster, if clusterKey is present it will try to search for cluster otherwise it will load cluster from the kube config file.

func (*DefaultClusterUtilsImpl) GetBackplaneClusterFromClusterKey added in v0.1.2

func (s *DefaultClusterUtilsImpl) GetBackplaneClusterFromClusterKey(clusterKey string) (BackplaneCluster, error)

func (*DefaultClusterUtilsImpl) GetBackplaneClusterFromConfig added in v0.1.2

func (s *DefaultClusterUtilsImpl) GetBackplaneClusterFromConfig() (BackplaneCluster, error)

func (*DefaultClusterUtilsImpl) GetCloudProvider added in v0.1.2

func (s *DefaultClusterUtilsImpl) GetCloudProvider(cluster *cmv1.Cluster) string

func (*DefaultClusterUtilsImpl) GetClusterIDAndHostFromClusterURL added in v0.1.2

func (s *DefaultClusterUtilsImpl) GetClusterIDAndHostFromClusterURL(clusterURL string) (string, string, error)

Cluster URL format: https://api-backplane.apps.com/backplane/cluster/<cluster-id>/

type DefaultOCMInterfaceImpl

type DefaultOCMInterfaceImpl struct{}

func (*DefaultOCMInterfaceImpl) GetClusterInfoByID

func (*DefaultOCMInterfaceImpl) GetClusterInfoByID(clusterId string) (*cmv1.Cluster, error)

GetClusterInfoByID calls the OCM to retrieve the cluster info for a given internal cluster id.

func (*DefaultOCMInterfaceImpl) GetManagingCluster

func (o *DefaultOCMInterfaceImpl) GetManagingCluster(targetClusterId string) (clusterId, clusterName string, err error)

GetManagingCluster returns the managing cluster (hive shard or hypershift management cluster) for the given clusterId

func (*DefaultOCMInterfaceImpl) GetOCMAccessToken

func (*DefaultOCMInterfaceImpl) GetOCMAccessToken() (*string, error)

GetOCMAccessToken initiates the OCM connection and returns the access token

func (*DefaultOCMInterfaceImpl) GetPullSecret added in v0.1.4

func (*DefaultOCMInterfaceImpl) GetPullSecret() (string, error)

GetPullSecret returns pull secret from OCM

func (*DefaultOCMInterfaceImpl) GetServiceCluster added in v0.1.3

func (*DefaultOCMInterfaceImpl) GetServiceCluster(targetClusterId string) (clusterId, clusterName string, err error)

GetServiceCluster gets the service cluster for a given hpyershift hosted cluster

func (*DefaultOCMInterfaceImpl) GetTargetCluster

func (*DefaultOCMInterfaceImpl) GetTargetCluster(clusterKey string) (clusterId, clusterName string, err error)

GetTargetCluster returns one single cluster based on the search key and survery.

func (*DefaultOCMInterfaceImpl) IsClusterHibernating

func (*DefaultOCMInterfaceImpl) IsClusterHibernating(clusterId string) (bool, error)

IsClusterHibernating returns a boolean to indicate whether the cluster is hibernating

func (*DefaultOCMInterfaceImpl) IsProduction

func (*DefaultOCMInterfaceImpl) IsProduction() (bool, error)

IsProduction checks if OCM is currently in production env

type OCMInterface

type OCMInterface interface {
	IsClusterHibernating(clusterId string) (bool, error)
	GetTargetCluster(clusterKey string) (clusterId, clusterName string, err error)
	GetManagingCluster(clusterKey string) (clusterId, clusterName string, err error)
	GetOCMAccessToken() (*string, error)
	GetServiceCluster(clusterKey string) (clusterId, clusterName string, err error)
	GetClusterInfoByID(clusterId string) (*cmv1.Cluster, error)
	IsProduction() (bool, error)
	GetPullSecret() (string, error)
}
var DefaultOCMInterface OCMInterface = &DefaultOCMInterfaceImpl{}

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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