| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package models
- import (
- "time"
- "github.com/porter-dev/porter/api/types"
- "gorm.io/gorm"
- )
- // KubeEvent model refers to a type of event from a Kubernetes cluster
- type KubeEvent struct {
- gorm.Model
- ProjectID uint
- ClusterID uint
- // The name of the referenced kube object
- Name string
- // The kube resource type, such as "pod", "hpa", or "node"
- ResourceType string
- // (optional) The owner reference type and name, which can be used to filter events by
- // controller
- OwnerType string
- OwnerName string
- // (optional) the namespace of the event, if namespaceable
- Namespace string
- // The "subevents" attached to the event. These are a grouped collection of events that belong
- // to the same object.
- SubEvents []KubeSubEvent
- }
- type KubeSubEvent struct {
- gorm.Model
- KubeEventID uint
- Message string
- Reason string
- Timestamp time.Time
- // The event type, such as "critical" or "normal"
- EventType types.KubeEventType
- }
- func (k *KubeSubEvent) ToKubeSubEventType() *types.KubeSubEvent {
- return &types.KubeSubEvent{
- Message: k.Message,
- Reason: k.Reason,
- Timestamp: k.Timestamp,
- EventType: k.EventType,
- }
- }
- func (k *KubeEvent) ToKubeEventType() *types.KubeEvent {
- subEvents := make([]*types.KubeSubEvent, 0)
- for _, subEvent := range k.SubEvents {
- subEvents = append(subEvents, subEvent.ToKubeSubEventType())
- }
- return &types.KubeEvent{
- CreatedAt: k.CreatedAt,
- UpdatedAt: k.UpdatedAt,
- ID: k.ID,
- ProjectID: k.ProjectID,
- ClusterID: k.ClusterID,
- ResourceType: k.ResourceType,
- Name: k.Name,
- Namespace: k.Namespace,
- OwnerType: k.OwnerType,
- OwnerName: k.OwnerName,
- SubEvents: subEvents,
- }
- }
|