Setup create, delete and list namespace over grpc

This commit is contained in:
Kristoffer Dalby 2021-10-29 16:44:32 +00:00
parent 07bbeafa3b
commit c7fa9b6e4a

View File

@ -4,7 +4,7 @@ package headscale
import ( import (
"context" "context"
apiV1 "github.com/juanfont/headscale/gen/go/v1" apiV1 "github.com/juanfont/headscale/gen/go/headscale/v1"
) )
type headscaleV1APIServer struct { // apiV1.HeadscaleServiceServer type headscaleV1APIServer struct { // apiV1.HeadscaleServiceServer
@ -21,14 +21,55 @@ func newHeadscaleV1APIServer(h *Headscale) apiV1.HeadscaleServiceServer {
func (api headscaleV1APIServer) GetMachine( func (api headscaleV1APIServer) GetMachine(
ctx context.Context, ctx context.Context,
request *apiV1.GetMachineRequest, request *apiV1.GetMachineRequest,
) (*apiV1.Machine, error) { ) (*apiV1.GetMachineResponse, error) {
m, err := api.h.GetMachineByID(request.MachineId) // m, err := api.h.GetMachineByID(request.MachineId)
// if err != nil {
// return nil, err
// }
// TODO(kradalby): Make this function actually do something
return &apiV1.GetMachineResponse{Name: "test"}, nil
}
func (api headscaleV1APIServer) CreateNamespace(
ctx context.Context,
request *apiV1.CreateNamespaceRequest,
) (*apiV1.CreateNamespaceResponse, error) {
namespace, err := api.h.CreateNamespace(request.Name)
if err != nil { if err != nil {
return nil, err return nil, err
} }
// TODO(kradalby): Make this function actually do something return &apiV1.CreateNamespaceResponse{Name: namespace.Name}, nil
return &apiV1.Machine{Name: m.Name}, nil }
func (api headscaleV1APIServer) DeleteNamespace(
ctx context.Context,
request *apiV1.DeleteNamespaceRequest,
) (*apiV1.DeleteNamespaceResponse, error) {
err := api.h.DestroyNamespace(request.Name)
if err != nil {
return nil, err
}
return &apiV1.DeleteNamespaceResponse{}, nil
}
func (api headscaleV1APIServer) ListNamespaces(
ctx context.Context,
request *apiV1.ListNamespacesRequest,
) (*apiV1.ListNamespacesResponse, error) {
namespaces, err := api.h.ListNamespaces()
if err != nil {
return nil, err
}
response := make([]string, len(*namespaces))
for index, namespace := range *namespaces {
response[index] = namespace.Name
}
return &apiV1.ListNamespacesResponse{Namespaces: response}, nil
} }
func (api headscaleV1APIServer) mustEmbedUnimplementedHeadscaleServiceServer() {} func (api headscaleV1APIServer) mustEmbedUnimplementedHeadscaleServiceServer() {}