mirror of
https://github.com/juanfont/headscale.git
synced 2024-11-26 08:53:05 +00:00
Setup create, delete and list namespace over grpc
This commit is contained in:
parent
07bbeafa3b
commit
c7fa9b6e4a
1 changed files with 46 additions and 5 deletions
51
grpcv1.go
51
grpcv1.go
|
@ -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() {}
|
||||
|
|
Loading…
Reference in a new issue