model

package
v0.0.0-...-1a511a4 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2024 License: Apache-2.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DMethodValidateCreateData       = "ValidateCreateData"
	DMethodValidateUpdateData       = "ValidateUpdateData"
	DMethodValidateDeleteCondition  = "ValidateDeleteCondition"
	DMethodNewK8SRawObjectForCreate = "NewK8SRawObjectForCreate"
	DMethodNewK8SRawObjectForUpdate = "NewK8SRawObjectForUpdate"
	DMethodCustomizeDelete          = "CustomizeDelete"
	DMethodListItemFilter           = "ListItemFilter"
	DMethodGetAPIObject             = "GetAPIObject"
	DMethodGetAPIDetailObject       = "GetAPIDetailObject"
)

Variables

View Source
var (
	GetK8sModelManagerByKind func(kindName string) IModelManager
)

Functions

func CustomizeDelete

func CustomizeDelete(model IK8sModel, ctx *RequestContext, query, data *jsonutils.JSONDict) error

func DoDelete

func DoDelete(
	man IK8sModelManager,
	model IK8sModel,
	ctx *RequestContext,
	query, data *jsonutils.JSONDict) error

func FindFunc

func FindFunc(modelVal reflect.Value, fName string) (reflect.Value, error)

func GetDetails

func GetDetails(model IK8sModel) (*jsonutils.JSONDict, error)

func GetObject

func GetObject(model IK8sModel) (*jsonutils.JSONDict, error)

func IsEventOwner

func IsEventOwner(model IOwnerModel, event *v1.Event) (bool, error)

func IsJobOwner

func IsJobOwner(model IK8sModel, job *batch.Job) (bool, error)

func K8sObjectToJSONObject

func K8sObjectToJSONObject(obj runtime.Object) jsonutils.JSONObject

func NewK8SRawObjectForCreate

func NewK8SRawObjectForCreate(manager IK8sModelManager, ctx *RequestContext, data *jsonutils.JSONDict) (runtime.Object, error)

func NewK8SRawObjectForUpdate

func NewK8SRawObjectForUpdate(model IK8sModel, ctx *RequestContext, data *jsonutils.JSONDict) (runtime.Object, error)

func NewObjectMeta

func NewObjectMeta(kObj runtime.Object, cluster api.ICluster) (api.ObjectMeta, error)

func Query2List

func Query2List(ctx *RequestContext, man IK8sModelManager, q IQuery) ([]jsonutils.JSONObject, error)

func ValidateCreateData

func ValidateCreateData(manager IK8sModelManager, ctx *RequestContext, query *jsonutils.JSONDict, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error)

func ValidateDeleteCondition

func ValidateDeleteCondition(model IK8sModel, ctx *RequestContext, query, data *jsonutils.JSONDict) error

func ValidateUpdateData

func ValidateUpdateData(model IK8sModel, ctx *RequestContext, query *jsonutils.JSONDict, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error)

func ValueToError

func ValueToError(out reflect.Value) error

func ValueToJSONDict

func ValueToJSONDict(out reflect.Value) *jsonutils.JSONDict

func ValueToJSONObject

func ValueToJSONObject(out reflect.Value) jsonutils.JSONObject

Types

type Caller

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

func NewCaller

func NewCaller(model interface{}, fName string) *Caller

func (*Caller) Call

func (c *Caller) Call() ([]reflect.Value, error)

func (*Caller) Inputs

func (c *Caller) Inputs(inputs ...interface{}) *Caller

type ICluster

type ICluster interface {
	api.ICluster

	GetHandler() client.ResourceHandler
	GetClientset() kubernetes.Interface
	GetClient() *clientv2.Client
	GetClusterObject() manager.ICluster
}

type IK8sModel

type IK8sModel interface {
	lockman.ILockedObject
	object.IObject

	GetName() string
	GetNamespace() string
	KeywordPlural() string

	GetModelManager() IK8sModelManager
	SetModelManager(manager IK8sModelManager, model IK8sModel) IK8sModel

	GetCluster() ICluster
	SetCluster(cluster ICluster) IK8sModel

	SetK8sObject(runtime.Object) IK8sModel
	GetK8sObject() runtime.Object

	GetTypeMeta() api.TypeMeta

	IOwnerModel
}

func DoCreate

func DoCreate(manager IK8sModelManager, ctx *RequestContext, query, data *jsonutils.JSONDict) (IK8sModel, error)

func DoUpdate

func DoUpdate(
	manager IK8sModelManager,
	model IK8sModel,
	ctx *RequestContext, query, data *jsonutils.JSONDict) (IK8sModel, error)

func NewK8SModelObject

func NewK8SModelObject(man IK8sModelManager, cluster ICluster, obj runtime.Object) (IK8sModel, error)

func NewK8SModelObjectByName

func NewK8SModelObjectByName(man IK8sModelManager, cluster ICluster, namespace, name string) (IK8sModel, error)

func NewK8SModelObjectByRef

func NewK8SModelObjectByRef(
	man IK8sModelManager, cluster ICluster,
	ref *v1.ObjectReference) (IK8sModel, error)

type IK8sModelManager

type IK8sModelManager interface {
	IModelManager

	Factory() *SK8sObjectFactory
	KeywordPlural() string
	GetQuery(cluster ICluster) IQuery
	GetOrderFields() OrderFields
	RegisterOrderFields(fields ...IOrderField)
}

type IK8sOwnedResource

type IK8sOwnedResource interface {
	IsOwnedBy(ownerModel IOwnerModel) (bool, error)
}

type IModelManager

type IModelManager interface {
	lockman.ILockedClass
	object.IObject

	GetK8sResourceInfo() K8sResourceInfo
	GetOwnerModel(userCred mcclient.TokenCredential, manager IModelManager, cluster ICluster, namespace string, nameOrId string) (IOwnerModel, error)
}

type IOrderField

type IOrderField interface {
	GetFieldName() string
	// default compare order is desc
	Compare(obj1, obj2 IK8sModel) bool
}

func OrderFieldFactoryForString

func OrderFieldFactoryForString(name string) IOrderField

func OrderFieldName

func OrderFieldName() IOrderField

func OrderFieldNamespace

func OrderFieldNamespace() IOrderField

func OrderFieldStatus

func OrderFieldStatus() IOrderField

type IOwnerModel

type IOwnerModel interface {
	GetObjectMeta() (api.ObjectMeta, error)
}

type IQuery

type IQuery interface {
	Namespace(ns string) IQuery
	Limit(limit int64) IQuery
	Offset(offset int64) IQuery
	PagingMarker(marker string) IQuery
	AddFilter(filters ...QueryFilter) IQuery
	FilterAny(any bool) IQuery
	AddOrderFields(ofs ...OrderField) IQuery

	FetchObjects() ([]IK8sModel, error)

	GetTotal() int64
	GetLimit() int64
	GetOffset() int64
}

func ListItemFilter

func ListItemFilter(ctx *RequestContext, manager IK8sModelManager, q IQuery, query *jsonutils.JSONDict) (IQuery, error)

func NewK8SResourceQuery

func NewK8SResourceQuery(cluster ICluster, manager IK8sModelManager) IQuery

type K8SModelHandler

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

func NewK8SModelHandler

func NewK8SModelHandler(manager IK8sModelManager) *K8SModelHandler

func (*K8SModelHandler) Create

func (h *K8SModelHandler) Create(ctx *RequestContext, query, data *jsonutils.JSONDict) (jsonutils.JSONObject, error)

func (*K8SModelHandler) Delete

func (h *K8SModelHandler) Delete(ctx *RequestContext, id string, query, data *jsonutils.JSONDict) (jsonutils.JSONObject, error)

func (*K8SModelHandler) Filter

func (*K8SModelHandler) Get

func (*K8SModelHandler) GetRawData

func (h *K8SModelHandler) GetRawData(ctx *RequestContext, id string, query *jsonutils.JSONDict) (jsonutils.JSONObject, error)

func (*K8SModelHandler) GetSpecific

func (h *K8SModelHandler) GetSpecific(ctx *RequestContext, id, spec string, query *jsonutils.JSONDict) (jsonutils.JSONObject, error)

func (*K8SModelHandler) Keyword

func (h *K8SModelHandler) Keyword() string

func (*K8SModelHandler) KeywordPlural

func (h *K8SModelHandler) KeywordPlural() string

func (*K8SModelHandler) List

func (*K8SModelHandler) PerformAction

func (h *K8SModelHandler) PerformAction(ctx *RequestContext, id, action string, query, data *jsonutils.JSONDict) (jsonutils.JSONObject, error)

func (*K8SModelHandler) PerformClassAction

func (h *K8SModelHandler) PerformClassAction(ctx *RequestContext, action string, query, data *jsonutils.JSONDict) (jsonutils.JSONObject, error)

func (*K8SModelHandler) Update

func (h *K8SModelHandler) Update(ctx *RequestContext, id string, query, data *jsonutils.JSONDict) (jsonutils.JSONObject, error)

func (*K8SModelHandler) UpdateRawData

func (h *K8SModelHandler) UpdateRawData(ctx *RequestContext, id string, query, data *jsonutils.JSONDict) (jsonutils.JSONObject, error)

type K8SModelSorter

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

func (*K8SModelSorter) Objects

func (s *K8SModelSorter) Objects() []IK8sModel

type K8sResourceInfo

type K8sResourceInfo struct {
	ResourceName string
	Group        string
	Version      string
	KindName     string
	Object       runtime.Object
}

type OrderField

type OrderField struct {
	Field IOrderField
	Order OrderType
}

func NewOrderField

func NewOrderField(f IOrderField, order OrderType) OrderField

type OrderFieldCreationTimestamp

type OrderFieldCreationTimestamp struct{}

func (OrderFieldCreationTimestamp) Compare

func (_ OrderFieldCreationTimestamp) Compare(obj1, obj2 IK8sModel) bool

func (OrderFieldCreationTimestamp) GetFieldName

func (_ OrderFieldCreationTimestamp) GetFieldName() string

type OrderFields

type OrderFields map[string]IOrderField

func (OrderFields) Get

func (of OrderFields) Get(fieldName string) IOrderField

func (OrderFields) Set

func (of OrderFields) Set(fields ...IOrderField) OrderFields

type OrderType

type OrderType string
const (
	OrderDESC OrderType = "desc"
	OrderASC  OrderType = "asc"
)

type QueryFilter

type QueryFilter func(obj IK8sModel) (bool, error)

func QWrap

func QWrap(f func(data *jsonutils.JSONDict) (bool, error), format string, hints ...interface{}) QueryFilter

func QWrapStr

func QWrapStr(field string, f func(val string) (bool, error), format string, hints ...interface{}) QueryFilter

type RequestContext

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

func NewRequestContext

func NewRequestContext(
	ctx context.Context,
	userCred mcclient.TokenCredential,
	cluster ICluster,
	query *jsonutils.JSONDict,
	data *jsonutils.JSONDict,
) *RequestContext

func (*RequestContext) Cluster

func (c *RequestContext) Cluster() ICluster

func (*RequestContext) Context

func (c *RequestContext) Context() context.Context

func (*RequestContext) GetData

func (c *RequestContext) GetData() *jsonutils.JSONDict

func (*RequestContext) GetNamespace

func (c *RequestContext) GetNamespace() string

func (*RequestContext) GetNamespaceByData

func (c *RequestContext) GetNamespaceByData() string

func (*RequestContext) GetNamespaceByQuery

func (c *RequestContext) GetNamespaceByQuery() string

func (*RequestContext) GetQuery

func (c *RequestContext) GetQuery() *jsonutils.JSONDict

func (*RequestContext) ShowAllNamespace

func (c *RequestContext) ShowAllNamespace() bool

func (*RequestContext) UserCred

func (c *RequestContext) UserCred() mcclient.TokenCredential

type SFilterClause

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

func ParseFilterClause

func ParseFilterClause(filter string) *SFilterClause

func (*SFilterClause) GetField

func (fc *SFilterClause) GetField() string

func (*SFilterClause) QueryFilter

func (fc *SFilterClause) QueryFilter() QueryFilter

func (*SFilterClause) String

func (fc *SFilterClause) String() string

type SK8sClusterResourceBase

type SK8sClusterResourceBase struct {
	SK8sModelBase

	Cluster string `json:"cluster"`
}

func (*SK8sClusterResourceBase) CustomizeDelete

func (m *SK8sClusterResourceBase) CustomizeDelete(
	ctx *RequestContext, _, _ *jsonutils.JSONDict) error

func (*SK8sClusterResourceBase) GetName

func (m *SK8sClusterResourceBase) GetName() string

func (*SK8sClusterResourceBase) ValidateDeleteCondition

func (m *SK8sClusterResourceBase) ValidateDeleteCondition(
	_ *RequestContext, _, _ *jsonutils.JSONDict) error

func (*SK8sClusterResourceBase) ValidateUpdateData

func (m *SK8sClusterResourceBase) ValidateUpdateData(
	_ *RequestContext, query, data *jsonutils.JSONDict) (*jsonutils.JSONDict, error)

type SK8sClusterResourceBaseManager

type SK8sClusterResourceBaseManager struct {
	SK8sModelBaseManager
}

func NewK8SClusterResourceBaseManager

func NewK8SClusterResourceBaseManager(dt interface{}, keyword, keywordPlural string) SK8sClusterResourceBaseManager

func (SK8sClusterResourceBaseManager) GetOwnerModel

func (_ SK8sClusterResourceBaseManager) GetOwnerModel(userCred mcclient.TokenCredential, manager IModelManager, cluster ICluster, namespace string, nameOrId string) (IOwnerModel, error)

func (*SK8sClusterResourceBaseManager) ListItemFilter

func (*SK8sClusterResourceBaseManager) ValidateCreateData

type SK8sModelBase

type SK8sModelBase struct {
	object.SObject

	K8sObject runtime.Object `json:"rawObject"`
	// contains filtered or unexported fields
}

func (*SK8sModelBase) GetCluster

func (m *SK8sModelBase) GetCluster() ICluster

func (SK8sModelBase) GetId

func (m SK8sModelBase) GetId() string

func (*SK8sModelBase) GetK8sObject

func (m *SK8sModelBase) GetK8sObject() runtime.Object

func (*SK8sModelBase) GetMetaObject

func (m *SK8sModelBase) GetMetaObject() metav1.Object

func (SK8sModelBase) GetModelManager

func (m SK8sModelBase) GetModelManager() IK8sModelManager

func (SK8sModelBase) GetName

func (m SK8sModelBase) GetName() string

func (*SK8sModelBase) GetNamespace

func (m *SK8sModelBase) GetNamespace() string

func (*SK8sModelBase) GetObjectMeta

func (m *SK8sModelBase) GetObjectMeta() (api.ObjectMeta, error)

func (*SK8sModelBase) GetTypeMeta

func (m *SK8sModelBase) GetTypeMeta() api.TypeMeta

func (SK8sModelBase) Keyword

func (m SK8sModelBase) Keyword() string

func (SK8sModelBase) KeywordPlural

func (m SK8sModelBase) KeywordPlural() string

func (*SK8sModelBase) SetCluster

func (m *SK8sModelBase) SetCluster(cluster ICluster) IK8sModel

func (*SK8sModelBase) SetK8sObject

func (m *SK8sModelBase) SetK8sObject(obj runtime.Object) IK8sModel

func (*SK8sModelBase) SetModelManager

func (m *SK8sModelBase) SetModelManager(man IK8sModelManager, virtual IK8sModel) IK8sModel

type SK8sModelBaseManager

type SK8sModelBaseManager struct {
	object.SObject
	// contains filtered or unexported fields
}

func NewK8sModelBaseManager

func NewK8sModelBaseManager(model interface{}, keyword, keywordPlural string) SK8sModelBaseManager

func (*SK8sModelBaseManager) Factory

func (*SK8sModelBaseManager) GetContextManagers

func (m *SK8sModelBaseManager) GetContextManagers() [][]IK8sModelManager

func (*SK8sModelBaseManager) GetIModelManager

func (m *SK8sModelBaseManager) GetIModelManager() IK8sModelManager

func (*SK8sModelBaseManager) GetOrderFields

func (m *SK8sModelBaseManager) GetOrderFields() OrderFields

func (*SK8sModelBaseManager) GetQuery

func (m *SK8sModelBaseManager) GetQuery(cluster ICluster) IQuery

func (*SK8sModelBaseManager) Keyword

func (m *SK8sModelBaseManager) Keyword() string

func (*SK8sModelBaseManager) KeywordPlural

func (m *SK8sModelBaseManager) KeywordPlural() string

func (*SK8sModelBaseManager) ListItemFilter

func (m *SK8sModelBaseManager) ListItemFilter(ctx *RequestContext, q IQuery, query api.ListInputK8SBase) (IQuery, error)

func (*SK8sModelBaseManager) RegisterOrderFields

func (m *SK8sModelBaseManager) RegisterOrderFields(fields ...IOrderField)

func (*SK8sModelBaseManager) ValidateName

func (m *SK8sModelBaseManager) ValidateName(name string) error

type SK8sNamespaceResourceBase

type SK8sNamespaceResourceBase struct {
	SK8sClusterResourceBase
}

func (SK8sNamespaceResourceBase) GetNamespace

func (m SK8sNamespaceResourceBase) GetNamespace() string

type SK8sNamespaceResourceBaseManager

type SK8sNamespaceResourceBaseManager struct {
	SK8sClusterResourceBaseManager
}

func NewK8sNamespaceResourceBaseManager

func NewK8sNamespaceResourceBaseManager(dt interface{}, keyword string, keywordPlural string) SK8sNamespaceResourceBaseManager

func (*SK8sNamespaceResourceBaseManager) ListItemFilter

func (SK8sNamespaceResourceBaseManager) ValidateCreateData

type SK8sObjectFactory

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

func NewK8sObjectFactory

func NewK8sObjectFactory(model interface{}) *SK8sObjectFactory

func (*SK8sObjectFactory) DataType

func (f *SK8sObjectFactory) DataType() reflect.Type

type SK8sOwnedResourceBaseManager

type SK8sOwnedResourceBaseManager struct{}

func (SK8sOwnedResourceBaseManager) ListItemFilter

func (m SK8sOwnedResourceBaseManager) ListItemFilter(ctx *RequestContext, q IQuery, query api.ListInputOwner) (IQuery, error)

func (SK8sOwnedResourceBaseManager) ListOwnerFilter

Jump to

Keyboard shortcuts

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