init: simplify CloudConfigUnit interface
This commit is contained in:
parent
75e288c553
commit
e2c24c4cef
@ -22,7 +22,7 @@ type CloudConfigFile interface {
|
|||||||
// CloudConfigUnit represents a CoreOS specific configuration option that can generate
|
// CloudConfigUnit represents a CoreOS specific configuration option that can generate
|
||||||
// associated system.Units to be created/enabled appropriately
|
// associated system.Units to be created/enabled appropriately
|
||||||
type CloudConfigUnit interface {
|
type CloudConfigUnit interface {
|
||||||
Units() ([]system.Unit, error)
|
Units() []system.Unit
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply renders a CloudConfig to an Environment. This can involve things like
|
// Apply renders a CloudConfig to an Environment. This can involve things like
|
||||||
@ -117,11 +117,7 @@ func Apply(cfg config.CloudConfig, env *Environment) error {
|
|||||||
system.Fleet{cfg.Coreos.Fleet},
|
system.Fleet{cfg.Coreos.Fleet},
|
||||||
system.Update{cfg.Coreos.Update, system.DefaultReadConfig},
|
system.Update{cfg.Coreos.Update, system.DefaultReadConfig},
|
||||||
} {
|
} {
|
||||||
u, err := ccu.Units()
|
units = append(units, ccu.Units()...)
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
units = append(units, u...)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
wroteEnvironment := false
|
wroteEnvironment := false
|
||||||
|
@ -11,15 +11,15 @@ type Etcd struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Units creates a Unit file drop-in for etcd, using any configured options.
|
// Units creates a Unit file drop-in for etcd, using any configured options.
|
||||||
func (ee Etcd) Units() ([]Unit, error) {
|
func (ee Etcd) Units() []Unit {
|
||||||
content := dropinContents(ee.Etcd)
|
content := dropinContents(ee.Etcd)
|
||||||
if content == "" {
|
if content == "" {
|
||||||
return nil, nil
|
return nil
|
||||||
}
|
}
|
||||||
return []Unit{{config.Unit{
|
return []Unit{{config.Unit{
|
||||||
Name: "etcd.service",
|
Name: "etcd.service",
|
||||||
Runtime: true,
|
Runtime: true,
|
||||||
DropIn: true,
|
DropIn: true,
|
||||||
Content: content,
|
Content: content,
|
||||||
}}}, nil
|
}}}
|
||||||
}
|
}
|
||||||
|
@ -49,10 +49,7 @@ Environment="ETCD_PEER_BIND_ADDR=127.0.0.1:7002"
|
|||||||
}}},
|
}}},
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
units, err := Etcd{tt.config}.Units()
|
units := Etcd{tt.config}.Units()
|
||||||
if err != nil {
|
|
||||||
t.Errorf("bad error (%q): want %q, got %q", tt.config, nil, err)
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(tt.units, units) {
|
if !reflect.DeepEqual(tt.units, units) {
|
||||||
t.Errorf("bad units (%q): want %#v, got %#v", tt.config, tt.units, units)
|
t.Errorf("bad units (%q): want %#v, got %#v", tt.config, tt.units, units)
|
||||||
}
|
}
|
||||||
|
@ -12,15 +12,15 @@ type Fleet struct {
|
|||||||
|
|
||||||
// Units generates a Unit file drop-in for fleet, if any fleet options were
|
// Units generates a Unit file drop-in for fleet, if any fleet options were
|
||||||
// configured in cloud-config
|
// configured in cloud-config
|
||||||
func (fe Fleet) Units() ([]Unit, error) {
|
func (fe Fleet) Units() []Unit {
|
||||||
content := dropinContents(fe.Fleet)
|
content := dropinContents(fe.Fleet)
|
||||||
if content == "" {
|
if content == "" {
|
||||||
return nil, nil
|
return nil
|
||||||
}
|
}
|
||||||
return []Unit{{config.Unit{
|
return []Unit{{config.Unit{
|
||||||
Name: "fleet.service",
|
Name: "fleet.service",
|
||||||
Runtime: true,
|
Runtime: true,
|
||||||
DropIn: true,
|
DropIn: true,
|
||||||
Content: content,
|
Content: content,
|
||||||
}}}, nil
|
}}}
|
||||||
}
|
}
|
||||||
|
@ -30,10 +30,7 @@ Environment="FLEET_PUBLIC_IP=12.34.56.78"
|
|||||||
}}},
|
}}},
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
units, err := Fleet{tt.config}.Units()
|
units := Fleet{tt.config}.Units()
|
||||||
if err != nil {
|
|
||||||
t.Errorf("bad error (%q): want %q, got %q", tt.config, nil, err)
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(units, tt.units) {
|
if !reflect.DeepEqual(units, tt.units) {
|
||||||
t.Errorf("bad units (%q): want %q, got %q", tt.config, tt.units, units)
|
t.Errorf("bad units (%q): want %q, got %q", tt.config, tt.units, units)
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ func (uc Update) File() (*File, error) {
|
|||||||
// Units generates units for the cloud-init initializer to act on:
|
// Units generates units for the cloud-init initializer to act on:
|
||||||
// - a locksmith Unit, if "reboot-strategy" was set in cloud-config
|
// - a locksmith Unit, if "reboot-strategy" was set in cloud-config
|
||||||
// - an update_engine Unit, if "group" or "server" was set in cloud-config
|
// - an update_engine Unit, if "group" or "server" was set in cloud-config
|
||||||
func (uc Update) Units() ([]Unit, error) {
|
func (uc Update) Units() []Unit {
|
||||||
var units []Unit
|
var units []Unit
|
||||||
if uc.Config.RebootStrategy != "" {
|
if uc.Config.RebootStrategy != "" {
|
||||||
ls := &Unit{config.Unit{
|
ls := &Unit{config.Unit{
|
||||||
@ -125,7 +125,7 @@ func (uc Update) Units() ([]Unit, error) {
|
|||||||
units = append(units, ue)
|
units = append(units, ue)
|
||||||
}
|
}
|
||||||
|
|
||||||
return units, nil
|
return units
|
||||||
}
|
}
|
||||||
|
|
||||||
func sortedKeys(m map[string]string) (keys []string) {
|
func sortedKeys(m map[string]string) (keys []string) {
|
||||||
|
@ -66,10 +66,7 @@ func TestUpdateUnits(t *testing.T) {
|
|||||||
}}},
|
}}},
|
||||||
},
|
},
|
||||||
} {
|
} {
|
||||||
units, err := Update{tt.config, testReadConfig("")}.Units()
|
units := Update{tt.config, testReadConfig("")}.Units()
|
||||||
if !reflect.DeepEqual(tt.err, err) {
|
|
||||||
t.Errorf("bad error (%q): want %q, got %q", tt.config, tt.err, err)
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(tt.units, units) {
|
if !reflect.DeepEqual(tt.units, units) {
|
||||||
t.Errorf("bad units (%q): want %#v, got %#v", tt.config, tt.units, units)
|
t.Errorf("bad units (%q): want %#v, got %#v", tt.config, tt.units, units)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user