fix func name and use extracExprs

Signed-off-by: Xian Chaobo <xianchaobo@huawei.com>
This commit is contained in:
Xian Chaobo 2015-07-07 11:30:26 +08:00
parent 05ba86d329
commit 0037c31a95
3 changed files with 7 additions and 10 deletions

View File

@ -147,13 +147,10 @@ func (c *ContainerConfig) Constraints() []string {
return c.extractExprs("constraints")
}
// AddSoftImageAffinity to config
func (c *ContainerConfig) AddSoftImageAffinity(image string) error {
affnitiesJSON := c.Labels[SwarmLabelNamespace+".affinities"]
var affinities []string
json.Unmarshal([]byte(affnitiesJSON), &affinities)
affinities = append(affinities, "image==~"+image)
// AddAffinity to config
func (c *ContainerConfig) AddAffinity(affinity string) error {
affinities := c.extractExprs("affinities")
affinities = append(affinities, affinity)
labels, err := json.Marshal(affinities)
if err != nil {
return err

View File

@ -82,10 +82,10 @@ func TestConsolidateResourceFields(t *testing.T) {
}
func TestAddSoftImageAffinity(t *testing.T) {
func TestAddAffinity(t *testing.T) {
config := BuildContainerConfig(dockerclient.ContainerConfig{})
assert.Empty(t, config.Affinities())
config.AddSoftImageAffinity("testimage")
config.AddAffinity("image==~testimage")
assert.Len(t, config.Affinities(), 1)
}

View File

@ -116,7 +116,7 @@ func (c *Cluster) createContainer(config *cluster.ContainerConfig, name string,
configTemp := config
if withSoftImageAffinity {
configTemp.AddSoftImageAffinity(config.Image)
configTemp.AddAffinity("image==~" + config.Image)
}
n, err := c.scheduler.SelectNodeForContainer(c.listNodes(), configTemp)