mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-27 00:19:36 -05:00
2d8fcd9bf4
Co-authored-by: Malte Poll <mp@edgeless.systems> Co-authored-by: katexochen <katexochen@users.noreply.github.com> Co-authored-by: Daniel Weiße <dw@edgeless.systems> Co-authored-by: Thomas Tendyck <tt@edgeless.systems> Co-authored-by: Benedict Schlueter <bs@edgeless.systems> Co-authored-by: leongross <leon.gross@rub.de> Co-authored-by: Moritz Eckert <m1gh7ym0@gmail.com>
59 lines
1.3 KiB
Go
59 lines
1.3 KiB
Go
package ec2
|
|
|
|
import "errors"
|
|
|
|
// Instance is an ec2 instance.
|
|
type Instance struct {
|
|
PublicIP string
|
|
PrivateIP string
|
|
}
|
|
|
|
// Instances is a map of ec2 Instances. The ID of an instance is used as key.
|
|
type Instances map[string]Instance
|
|
|
|
// IDs returns the IDs of all instances of the Constellation.
|
|
func (i Instances) IDs() []string {
|
|
var ids []string
|
|
for id := range i {
|
|
ids = append(ids, id)
|
|
}
|
|
return ids
|
|
}
|
|
|
|
// PublicIPs returns the public IPs of all the instances of the Constellation.
|
|
func (i Instances) PublicIPs() []string {
|
|
var ips []string
|
|
for _, instance := range i {
|
|
ips = append(ips, instance.PublicIP)
|
|
}
|
|
return ips
|
|
}
|
|
|
|
// PrivateIPs returns the private IPs of all the instances of the Constellation.
|
|
func (i Instances) PrivateIPs() []string {
|
|
var ips []string
|
|
for _, instance := range i {
|
|
ips = append(ips, instance.PrivateIP)
|
|
}
|
|
return ips
|
|
}
|
|
|
|
// GetOne return anyone instance out of the instances and its ID.
|
|
func (i Instances) GetOne() (string, Instance, error) {
|
|
for id, instance := range i {
|
|
return id, instance, nil
|
|
}
|
|
return "", Instance{}, errors.New("map is empty")
|
|
}
|
|
|
|
// GetOthers returns all instances but the one with the handed ID.
|
|
func (i Instances) GetOthers(id string) Instances {
|
|
others := make(Instances)
|
|
for key, instance := range i {
|
|
if key != id {
|
|
others[key] = instance
|
|
}
|
|
}
|
|
return others
|
|
}
|