zrok/controller/zrokEdgeSdk/service.go

57 lines
1.8 KiB
Go
Raw Normal View History

2022-12-14 20:40:45 +01:00
package zrokEdgeSdk
import (
"context"
"github.com/openziti/edge/rest_management_api_client"
edge_service "github.com/openziti/edge/rest_management_api_client/service"
"github.com/openziti/edge/rest_model"
2022-12-14 20:11:50 +01:00
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"time"
)
2023-01-04 20:21:23 +01:00
func CreateShareService(envZId, shrToken, cfgZId string, edge *rest_management_api_client.ZitiEdgeManagement) (shrZId string, err error) {
shrZId, err = CreateService(shrToken, []string{cfgZId}, map[string]interface{}{"zrokShareToken": shrToken}, edge)
2022-12-14 20:11:50 +01:00
if err != nil {
2023-01-04 20:21:23 +01:00
return "", errors.Wrapf(err, "error creating share '%v'", shrToken)
2022-12-14 20:11:50 +01:00
}
2023-01-04 20:21:23 +01:00
logrus.Infof("created share '%v' (with ziti id '%v') for environment '%v'", shrToken, shrZId, envZId)
return shrZId, nil
2022-12-14 20:11:50 +01:00
}
2023-01-04 20:21:23 +01:00
func CreateService(name string, cfgZIds []string, addlTags map[string]interface{}, edge *rest_management_api_client.ZitiEdgeManagement) (shrZId string, err error) {
encryptionRequired := true
svc := &rest_model.ServiceCreate{
EncryptionRequired: &encryptionRequired,
Name: &name,
Tags: MergeTags(ZrokTags(), addlTags),
}
if cfgZIds != nil {
svc.Configs = cfgZIds
}
req := &edge_service.CreateServiceParams{
Service: svc,
Context: context.Background(),
}
req.SetTimeout(30 * time.Second)
resp, err := edge.Service.CreateService(req, nil)
if err != nil {
return "", err
}
return resp.Payload.Data.ID, nil
}
2023-01-04 20:42:58 +01:00
func DeleteService(envZId, shrZId string, edge *rest_management_api_client.ZitiEdgeManagement) error {
req := &edge_service.DeleteServiceParams{
2023-01-04 20:42:58 +01:00
ID: shrZId,
Context: context.Background(),
}
req.SetTimeout(30 * time.Second)
_, err := edge.Service.DeleteService(req, nil)
if err != nil {
return err
}
2023-01-04 20:42:58 +01:00
logrus.Infof("deleted service '%v' for environment '%v'", shrZId, envZId)
return nil
}