1
0
mirror of https://github.com/juanfont/headscale.git synced 2024-10-17 20:05:55 +02:00

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 (
"context"
apiV1 "github.com/juanfont/headscale/gen/go/v1"
apiV1 "github.com/juanfont/headscale/gen/go/headscale/v1"
)
type headscaleV1APIServer struct { // apiV1.HeadscaleServiceServer
@ -21,14 +21,55 @@ func newHeadscaleV1APIServer(h *Headscale) apiV1.HeadscaleServiceServer {
func (api headscaleV1APIServer) GetMachine(
ctx context.Context,
request *apiV1.GetMachineRequest,
) (*apiV1.Machine, error) {
m, err := api.h.GetMachineByID(request.MachineId)
) (*apiV1.GetMachineResponse, error) {
// 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 {
return nil, err
}
// TODO(kradalby): Make this function actually do something
return &apiV1.Machine{Name: m.Name}, nil
return &apiV1.CreateNamespaceResponse{Name: namespace.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() {}