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
}