diff options
Diffstat (limited to 'oldCluster.go')
| -rw-r--r-- | oldCluster.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/oldCluster.go b/oldCluster.go new file mode 100644 index 0000000..c6d6fd9 --- /dev/null +++ b/oldCluster.go @@ -0,0 +1,48 @@ +package virtpb + +import ( + sync "sync" + + durationpb "google.golang.org/protobuf/types/known/durationpb" + "google.golang.org/protobuf/types/known/timestamppb" +) + +type OldCluster struct { + sync.RWMutex + + Dirs []string + d *Droplets + H *Hypervisors + e *Events + Unstable *timestamppb.Timestamp + UnstableTimeout *durationpb.Duration +} + +func (c *OldCluster) GetDropletsPB() *Droplets { + return c.d +} + +func (c *OldCluster) GetHypervisorsPB() *Hypervisors { + return c.H +} + +func (c *OldCluster) GetEventsPB() *Events { + return c.e +} + +// adds a new droplet. enforce unique hostnames +func (c *OldCluster) AddDroplet(newd *Droplet) bool { + c.Lock() + defer c.Unlock() + + for _, d := range c.d.Droplets { + if newd.Hostname == d.Hostname { + // boo. that one is already here + return false + } + } + + // everything is ok, this hostname is new + c.d.Droplets = append(c.d.Droplets, newd) + return true +} |
