2
0
Эх сурвалжийг харах

add initial endpoints for porter agent v2

Mohammed Nafees 4 жил өмнө
parent
commit
65a915df04

+ 29 - 0
api/server/handlers/cluster/get_incidents.go

@@ -0,0 +1,29 @@
+package cluster
+
+import (
+	"net/http"
+
+	"github.com/porter-dev/porter/api/server/authz"
+	"github.com/porter-dev/porter/api/server/handlers"
+	"github.com/porter-dev/porter/api/server/shared"
+	"github.com/porter-dev/porter/api/server/shared/config"
+)
+
+type GetIncidentsHandler struct {
+	handlers.PorterHandlerReadWriter
+	authz.KubernetesAgentGetter
+}
+
+func NewGetIncidentsHandler(
+	config *config.Config,
+	writer shared.ResultWriter,
+) *GetIncidentsHandler {
+	return &GetIncidentsHandler{
+		PorterHandlerReadWriter: handlers.NewDefaultPorterHandler(config, nil, writer),
+		KubernetesAgentGetter:   authz.NewOutOfClusterAgentGetter(config),
+	}
+}
+
+func (c *GetIncidentsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+
+}

+ 29 - 0
api/server/handlers/release/get_incidents.go

@@ -0,0 +1,29 @@
+package release
+
+import (
+	"net/http"
+
+	"github.com/porter-dev/porter/api/server/authz"
+	"github.com/porter-dev/porter/api/server/handlers"
+	"github.com/porter-dev/porter/api/server/shared"
+	"github.com/porter-dev/porter/api/server/shared/config"
+)
+
+type NewGetIncidentsByReleaseName struct {
+	handlers.PorterHandlerReadWriter
+	authz.KubernetesAgentGetter
+}
+
+func NewGetIncidentsByReleaseNameHandler(
+	config *config.Config,
+	writer shared.ResultWriter,
+) *NewGetIncidentsByReleaseName {
+	return &NewGetIncidentsByReleaseName{
+		PorterHandlerReadWriter: handlers.NewDefaultPorterHandler(config, nil, writer),
+		KubernetesAgentGetter:   authz.NewOutOfClusterAgentGetter(config),
+	}
+}
+
+func (c *NewGetIncidentsByReleaseName) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+
+}

+ 28 - 0
api/server/router/cluster.go

@@ -917,5 +917,33 @@ func getClusterRoutes(
 		Router:   r,
 	})
 
+	// GET /api/projects/{project_id}/clusters/{cluster_id}/incidents -> cluster.NewGetIncidentsHandler
+	getIncidentsEndpoint := factory.NewAPIEndpoint(
+		&types.APIRequestMetadata{
+			Verb:   types.APIVerbGet,
+			Method: types.HTTPVerbGet,
+			Path: &types.Path{
+				Parent:       basePath,
+				RelativePath: relPath + "/incidents",
+			},
+			Scopes: []types.PermissionScope{
+				types.UserScope,
+				types.ProjectScope,
+				types.ClusterScope,
+			},
+		},
+	)
+
+	getIncidentsHandler := cluster.NewGetIncidentsHandler(
+		config,
+		factory.GetResultWriter(),
+	)
+
+	routes = append(routes, &Route{
+		Endpoint: getIncidentsEndpoint,
+		Handler:  getIncidentsHandler,
+		Router:   r,
+	})
+
 	return routes, newPath
 }

+ 29 - 0
api/server/router/release.go

@@ -782,5 +782,34 @@ func getReleaseRoutes(
 		Router:   r,
 	})
 
+	// GET /api/projects/{project_id}/clusters/{cluster_id}/namespaces/{namespace}/releases/{name}/incidents -> release.NewGetIncidentsByReleaseNameHandler
+	getIncidentsByReleaseNameEndpoint := factory.NewAPIEndpoint(
+		&types.APIRequestMetadata{
+			Verb:   types.APIVerbGet,
+			Method: types.HTTPVerbGet,
+			Path: &types.Path{
+				Parent:       basePath,
+				RelativePath: "/releases/{name}/incidents",
+			},
+			Scopes: []types.PermissionScope{
+				types.UserScope,
+				types.ProjectScope,
+				types.ClusterScope,
+				types.NamespaceScope,
+			},
+		},
+	)
+
+	getIncidentsByReleaseNameHandler := release.NewGetIncidentsByReleaseNameHandler(
+		config,
+		factory.GetResultWriter(),
+	)
+
+	routes = append(routes, &Route{
+		Endpoint: getIncidentsByReleaseNameEndpoint,
+		Handler:  getIncidentsByReleaseNameHandler,
+		Router:   r,
+	})
+
 	return routes, newPath
 }

+ 7 - 0
internal/kubernetes/porter_agent/v2/agent_server.go

@@ -0,0 +1,7 @@
+package v2
+
+func GetAllIncidents() {}
+
+func GetIncidentEventsByID() {}
+
+func GetIncidentsByReleaseName() {}