mirror of
https://github.com/juanfont/headscale.git
synced 2024-12-20 19:09:07 +01:00
Setup create, delete and list namespace over grpc
This commit is contained in:
parent
07bbeafa3b
commit
c7fa9b6e4a
51
grpcv1.go
51
grpcv1.go
@ -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() {}
|
||||||
|
Loading…
Reference in New Issue
Block a user