remove UUIDs

This commit is contained in:
schulze 2023-04-11 12:55:38 +02:00
parent d0cd4340a5
commit c6c26bd914
2 changed files with 4 additions and 24 deletions

View File

@ -4,7 +4,6 @@ import (
"fmt" "fmt"
"net/netip" "net/netip"
"github.com/google/uuid"
"github.com/thefeli73/polemos/mtdaws" "github.com/thefeli73/polemos/mtdaws"
"github.com/thefeli73/polemos/state" "github.com/thefeli73/polemos/state"
) )
@ -39,6 +38,7 @@ func indexAllInstances(config state.Config) state.Config {
//index AWS instances //index AWS instances
awsNewInstanceCounter := 0 awsNewInstanceCounter := 0
awsRemovedInstanceCounter := 0
awsInstanceCounter := 0 awsInstanceCounter := 0
awsInstances := mtdaws.GetInstances(config) awsInstances := mtdaws.GetInstances(config)
for _, instance := range awsInstances { for _, instance := range awsInstances {
@ -57,7 +57,8 @@ func indexAllInstances(config state.Config) state.Config {
} }
awsInstanceCounter++ awsInstanceCounter++
} }
fmt.Printf("Found %d AWS instances (%d newly added)\n", awsInstanceCounter, awsNewInstanceCounter) // TODO: Purge instances in config that are not found in the cloud
fmt.Printf("Found %d AWS instances (%d newly added, %d removed)\n", awsInstanceCounter, awsNewInstanceCounter, awsRemovedInstanceCounter)
return config return config
@ -68,11 +69,10 @@ func indexInstance(config state.Config, cloudID string, serviceIP netip.Addr) (s
for _, service := range config.MTD.Services { for _, service := range config.MTD.Services {
if service.CloudID == cloudID { if service.CloudID == cloudID {
found = true found = true
break;
} }
} }
u := uuid.New()
newService := state.Service{ newService := state.Service{
ID: state.CustomUUID(u),
CloudID: cloudID, CloudID: cloudID,
ServiceIP: serviceIP} ServiceIP: serviceIP}
return newService, found return newService, found

View File

@ -6,7 +6,6 @@ import (
"net/netip" "net/netip"
"os" "os"
"github.com/google/uuid"
"gopkg.in/yaml.v3" "gopkg.in/yaml.v3"
) )
@ -22,7 +21,6 @@ type mtdconf struct {
// Service contains all necessary information about a service to identify it in the cloud as well as configuring a proxy for it // Service contains all necessary information about a service to identify it in the cloud as well as configuring a proxy for it
type Service struct { type Service struct {
ID CustomUUID `yaml:"id"`
CloudID string `yaml:"cloud_id"` CloudID string `yaml:"cloud_id"`
EntryIP netip.Addr `yaml:"entry_ip"` EntryIP netip.Addr `yaml:"entry_ip"`
EntryPort uint16 `yaml:"entry_port"` EntryPort uint16 `yaml:"entry_port"`
@ -30,29 +28,11 @@ type Service struct {
ServicePort uint16 `yaml:"service_port"` ServicePort uint16 `yaml:"service_port"`
} }
// CustomUUID is an alias for uuid.UUID to enable custom unmarshal function
type CustomUUID uuid.UUID
type aws struct { type aws struct {
Regions []string `yaml:"regions"` Regions []string `yaml:"regions"`
CredentialsPath string `yaml:"credentials_path"` CredentialsPath string `yaml:"credentials_path"`
} }
// UnmarshalYAML parses uuid in yaml to CustomUUID type
func (u *CustomUUID) UnmarshalYAML(value *yaml.Node) error {
id, err := uuid.Parse(value.Value)
if err != nil {
return err
}
*u = CustomUUID(id)
return nil
}
// MarshalYAML parses CustomUUID type to uuid string for yaml
func (u CustomUUID) MarshalYAML() (interface{}, error) {
return uuid.UUID(u).String(), nil
}
// LoadConf loads config from a yaml file // LoadConf loads config from a yaml file
func LoadConf(filename string) (Config) { func LoadConf(filename string) (Config) {
var config Config var config Config