Skip to content

Commit d2534c1

Browse files
committed
Add /api/v1/clusters/{name}/events route
Relates to #47
1 parent ac1767c commit d2534c1

12 files changed

+849
-0
lines changed

pkg/api/client/operations/get_cluster_events_parameters.go

Lines changed: 134 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/api/client/operations/get_cluster_events_responses.go

Lines changed: 110 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/api/client/operations/operations_client.go

Lines changed: 29 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package handlers
2+
3+
import (
4+
"github.com/go-openapi/runtime/middleware"
5+
"github.com/go-openapi/strfmt"
6+
"github.com/sapcc/kubernikus/pkg/api"
7+
"github.com/sapcc/kubernikus/pkg/api/models"
8+
"github.com/sapcc/kubernikus/pkg/api/rest/operations"
9+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
10+
)
11+
12+
func NewGetClusterEvents(rt *api.Runtime) operations.GetClusterEventsHandler {
13+
return &getClusterEvents{Runtime: rt}
14+
}
15+
16+
type getClusterEvents struct {
17+
*api.Runtime
18+
}
19+
20+
func (d *getClusterEvents) Handle(params operations.GetClusterEventsParams, principal *models.Principal) middleware.Responder {
21+
eventsInterface := d.Kubernetes.Core().Events("")
22+
klusterName := qualifiedName(params.Name, principal.Account)
23+
selector := eventsInterface.GetFieldSelector(&klusterName, &d.Namespace, nil, nil)
24+
kEvents, err := eventsInterface.List(metav1.ListOptions{FieldSelector: selector.String()})
25+
if err != nil {
26+
return NewErrorResponse(&operations.GetClusterEventsDefault{}, 500, err.Error())
27+
}
28+
events := make([]*models.Event, 0, len(kEvents.Items))
29+
for _, ev := range kEvents.Items {
30+
events = append(events, &models.Event{
31+
FirstTimestamp: strfmt.DateTime(ev.FirstTimestamp.Time),
32+
LastTimestamp: strfmt.DateTime(ev.LastTimestamp.Time),
33+
Message: ev.Message,
34+
Reason: ev.Reason,
35+
Count: int64(ev.Count),
36+
})
37+
38+
}
39+
40+
return operations.NewGetClusterEventsOK().WithPayload(events)
41+
}

pkg/api/models/event.go

Lines changed: 72 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)