Skip to content

Commit

Permalink
fix: adding latencysampler routes to the frontend
Browse files Browse the repository at this point in the history
  • Loading branch information
Tamir David authored and Tamir David committed Jul 10, 2024
1 parent 666d9ee commit f64bde5
Show file tree
Hide file tree
Showing 3 changed files with 122 additions and 0 deletions.
100 changes: 100 additions & 0 deletions frontend/endpoints/actions/latencysampler.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
package actions

import (
"github.com/gin-gonic/gin"
"github.com/odigos-io/odigos/api/actions/v1alpha1"
"github.com/odigos-io/odigos/frontend/kube"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

func GetLatencySampler(c *gin.Context, odigosns string, id string) {
action, err := kube.DefaultClient.ActionsClient.LatencySamplers(odigosns).Get(c, id, metav1.GetOptions{})
if err != nil {
if apierrors.IsNotFound(err) {
c.JSON(404, gin.H{
"error": "not found",
})
return
} else {
c.JSON(500, gin.H{
"error": err.Error(),
})
return
}
}
c.JSON(200, action.Spec)
}

func CreateLatencySampler(c *gin.Context, odigosns string) {
var action v1alpha1.LatencySampler
if err := c.ShouldBindJSON(&action.Spec); err != nil {
c.JSON(400, gin.H{
"error": err.Error(),
})
return
}
action.GenerateName = "ls-"
generatedAction, err := kube.DefaultClient.ActionsClient.LatencySamplers(odigosns).Create(c, &action, metav1.CreateOptions{})
if err != nil {
c.JSON(500, gin.H{
"error": err.Error(),
})
return
}
c.JSON(201, gin.H{
"id": generatedAction.Name,
})
}

func UpdateLatencySampler(c *gin.Context, odigosns string, id string) {
action, err := kube.DefaultClient.ActionsClient.LatencySamplers(odigosns).Get(c, id, metav1.GetOptions{})
if err != nil {
if apierrors.IsNotFound(err) {
c.JSON(404, gin.H{
"error": "not found",
})
return
} else {
c.JSON(500, gin.H{
"error": err.Error(),
})
}
return
}
action.Spec = v1alpha1.LatencySamplerSpec{}
if err := c.ShouldBindJSON(&action.Spec); err != nil {
c.JSON(400, gin.H{
"error": err.Error(),
})
return
}
action.Name = id

_, err = kube.DefaultClient.ActionsClient.LatencySamplers(odigosns).Update(c, action, metav1.UpdateOptions{})
if err != nil {
c.JSON(500, gin.H{
"error": err.Error(),
})
return
}
c.JSON(204, nil)
}

func DeleteLatencySampler(c *gin.Context, odigosns string, id string) {
err := kube.DefaultClient.ActionsClient.LatencySamplers(odigosns).Delete(c, id, metav1.DeleteOptions{})
if err != nil {
if apierrors.IsNotFound(err) {
c.JSON(404, gin.H{
"error": "not found",
})
return
} else {
c.JSON(500, gin.H{
"error": err.Error(),
})
return
}
}
c.JSON(204, nil)
}
16 changes: 16 additions & 0 deletions frontend/endpoints/actions/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,5 +64,21 @@ func GetActions(c *gin.Context, odigosns string) {
})
}

lsActions, err := kube.DefaultClient.ActionsClient.LatencySamplers(odigosns).List(c, metav1.ListOptions{})
if err != nil {
c.JSON(500, gin.H{
"error": err.Error(),
})
return
}

for _, action := range lsActions.Items {
response = append(response, IcaInstanceResponse{
Id: action.Name,
Type: action.Kind,
Spec: action.Spec,
})
}

c.JSON(200, response)
}
6 changes: 6 additions & 0 deletions frontend/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,12 @@ func startHTTPServer(flags *Flags) (*gin.Engine, error) {
apis.POST("/actions/types/RenameAttribute", func(c *gin.Context) { actions.CreateRenameAttribute(c, flags.Namespace) })
apis.PUT("/actions/types/RenameAttribute/:id", func(c *gin.Context) { actions.UpdateRenameAttribute(c, flags.Namespace, c.Param("id")) })
apis.DELETE("/actions/types/RenameAttribute/:id", func(c *gin.Context) { actions.DeleteRenameAttribute(c, flags.Namespace, c.Param("id")) })

// LatencySampler
apis.GET("/actions/types/LatencySampler/:id", func(c *gin.Context) { actions.GetLatencySampler(c, flags.Namespace, c.Param("id")) })
apis.POST("/actions/types/LatencySampler", func(c *gin.Context) { actions.CreateLatencySampler(c, flags.Namespace) })
apis.PUT("/actions/types/LatencySampler/:id", func(c *gin.Context) { actions.UpdateLatencySampler(c, flags.Namespace, c.Param("id")) })
apis.DELETE("/actions/types/LatencySampler/:id", func(c *gin.Context) { actions.DeleteLatencySampler(c, flags.Namespace, c.Param("id")) })
}

return r, nil
Expand Down

0 comments on commit f64bde5

Please sign in to comment.