diff --git a/main.go b/main.go index a185c29..4ca5190 100644 --- a/main.go +++ b/main.go @@ -4,7 +4,6 @@ import ( "fmt" "net/netip" - "github.com/google/uuid" "github.com/thefeli73/polemos/mtdaws" "github.com/thefeli73/polemos/state" ) @@ -39,6 +38,7 @@ func indexAllInstances(config state.Config) state.Config { //index AWS instances awsNewInstanceCounter := 0 + awsRemovedInstanceCounter := 0 awsInstanceCounter := 0 awsInstances := mtdaws.GetInstances(config) for _, instance := range awsInstances { @@ -57,7 +57,8 @@ func indexAllInstances(config state.Config) state.Config { } 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 @@ -68,11 +69,10 @@ func indexInstance(config state.Config, cloudID string, serviceIP netip.Addr) (s for _, service := range config.MTD.Services { if service.CloudID == cloudID { found = true + break; } } - u := uuid.New() newService := state.Service{ - ID: state.CustomUUID(u), CloudID: cloudID, ServiceIP: serviceIP} return newService, found diff --git a/state/config.go b/state/config.go index a74c59e..628df3f 100644 --- a/state/config.go +++ b/state/config.go @@ -6,7 +6,6 @@ import ( "net/netip" "os" - "github.com/google/uuid" "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 type Service struct { - ID CustomUUID `yaml:"id"` CloudID string `yaml:"cloud_id"` EntryIP netip.Addr `yaml:"entry_ip"` EntryPort uint16 `yaml:"entry_port"` @@ -30,29 +28,11 @@ type Service struct { ServicePort uint16 `yaml:"service_port"` } -// CustomUUID is an alias for uuid.UUID to enable custom unmarshal function -type CustomUUID uuid.UUID - type aws struct { Regions []string `yaml:"regions"` 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 func LoadConf(filename string) (Config) { var config Config