Merge pull request #245 from jonboulle/units

init: simplify CloudConfigUnit interface
This commit is contained in:
Jonathan Boulle 2014-10-06 15:26:36 -07:00
commit 5214ead926
7 changed files with 13 additions and 26 deletions

View File

@ -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

View File

@ -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 }}}
} }

View File

@ -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)
} }

View File

@ -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 }}}
} }

View File

@ -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)
} }

View File

@ -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) {

View File

@ -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)
} }