本文整理汇总了Golang中github.com/openshift/origin/pkg/deploy/api/test.OkConfigChangeTrigger函数的典型用法代码示例。如果您正苦于以下问题:Golang OkConfigChangeTrigger函数的具体用法?Golang OkConfigChangeTrigger怎么用?Golang OkConfigChangeTrigger使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了OkConfigChangeTrigger函数的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestHandle_newConfigTriggers
// TestHandle_newConfigTriggers ensures that the creation of a new config
// (with version 0) with a config change trigger results in a version bump and
// cause update for initial deployment.
func TestHandle_newConfigTriggers(t *testing.T) {
var updated *deployapi.DeploymentConfig
fake := &testclient.Fake{}
fake.AddReactor("update", "deploymentconfigs/status", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
updated = action.(ktestclient.UpdateAction).GetObject().(*deployapi.DeploymentConfig)
return true, updated, nil
})
kFake := &ktestclient.Fake{}
controller := NewDeploymentTriggerController(fake, kFake, codec)
config := testapi.OkDeploymentConfig(0)
config.Namespace = kapi.NamespaceDefault
config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{testapi.OkConfigChangeTrigger()}
if err := controller.Handle(config); err != nil {
t.Fatalf("unexpected error: %v", err)
}
if updated == nil {
t.Fatalf("expected config to be updated")
}
if e, a := int64(1), updated.Status.LatestVersion; e != a {
t.Fatalf("expected update to latestversion=%d, got %d", e, a)
}
if updated.Status.Details == nil {
t.Fatalf("expected config change details to be set")
} else if updated.Status.Details.Causes == nil {
t.Fatalf("expected config change causes to be set")
} else if updated.Status.Details.Causes[0].Type != deployapi.DeploymentTriggerOnConfigChange {
t.Fatalf("expected config change cause to be set to config change trigger, got %s", updated.Status.Details.Causes[0].Type)
}
}
开发者ID:sgallagher,项目名称:origin,代码行数:35,代码来源:controller_test.go
示例2: TestHandle_waitForImageController
// TestHandle_waitForImageController tests an initial deployment with unresolved image. The config
// change controller should never increment latestVersion, thus trigger a deployment for this config.
func TestHandle_waitForImageController(t *testing.T) {
fake := &testclient.Fake{}
kFake := &ktestclient.Fake{}
fake.PrependReactor("update", "deploymentconfigs/status", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
t.Fatalf("an update should never run before the template image is resolved")
return true, nil, nil
})
controller := &DeploymentConfigChangeController{
client: fake,
kClient: kFake,
decodeConfig: func(deployment *kapi.ReplicationController) (*deployapi.DeploymentConfig, error) {
return deployutil.DecodeDeploymentConfig(deployment, kapi.Codecs.LegacyCodec(deployapi.SchemeGroupVersion))
},
}
config := testapi.OkDeploymentConfig(0)
config.Namespace = kapi.NamespaceDefault
config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{testapi.OkConfigChangeTrigger(), testapi.OkImageChangeTrigger()}
if err := controller.Handle(config); err != nil {
t.Fatalf("unexpected error: %v", err)
}
}
开发者ID:RomainVabre,项目名称:origin,代码行数:27,代码来源:controller_test.go
示例3: TestHandle_changeWithTemplateDiff
// TestHandle_changeWithTemplateDiff ensures that a pod template change to a
// config with a config change trigger results in a version bump and cause
// update.
func TestHandle_changeWithTemplateDiff(t *testing.T) {
var updated *deployapi.DeploymentConfig
controller := &DeploymentConfigChangeController{
decodeConfig: func(deployment *kapi.ReplicationController) (*deployapi.DeploymentConfig, error) {
return deployutil.DecodeDeploymentConfig(deployment, api.Codec)
},
changeStrategy: &changeStrategyImpl{
generateDeploymentConfigFunc: func(namespace, name string) (*deployapi.DeploymentConfig, error) {
return deployapitest.OkDeploymentConfig(2), nil
},
updateDeploymentConfigFunc: func(namespace string, config *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) {
updated = config
return config, nil
},
getDeploymentFunc: func(namespace, name string) (*kapi.ReplicationController, error) {
deployment, _ := deployutil.MakeDeployment(deployapitest.OkDeploymentConfig(1), kapi.Codec)
return deployment, nil
},
},
}
config := deployapitest.OkDeploymentConfig(1)
config.Triggers = []deployapi.DeploymentTriggerPolicy{deployapitest.OkConfigChangeTrigger()}
config.Template.ControllerTemplate.Template.Spec.Containers[1].Name = "modified"
err := controller.Handle(config)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if updated == nil {
t.Fatalf("expected config to be updated")
}
if e, a := 2, updated.LatestVersion; e != a {
t.Fatalf("expected update to latestversion=%d, got %d", e, a)
}
if updated.Details == nil {
t.Fatalf("expected config change details to be set")
} else if updated.Details.Causes == nil {
t.Fatalf("expected config change causes to be set")
} else if updated.Details.Causes[0].Type != deployapi.DeploymentTriggerOnConfigChange {
t.Fatalf("expected config change cause to be set to config change trigger, got %s", updated.Details.Causes[0].Type)
}
}
开发者ID:cjnygard,项目名称:origin,代码行数:50,代码来源:controller_test.go
示例4: TestHandle_nonAutomaticImageUpdates
func TestHandle_nonAutomaticImageUpdates(t *testing.T) {
var updated *deployapi.DeploymentConfig
controller := &DeploymentConfigChangeController{
decodeConfig: func(deployment *kapi.ReplicationController) (*deployapi.DeploymentConfig, error) {
return deployutil.DecodeDeploymentConfig(deployment, kapi.Codecs.LegacyCodec(deployapi.SchemeGroupVersion))
},
changeStrategy: &changeStrategyImpl{
generateDeploymentConfigFunc: func(namespace, name string) (*deployapi.DeploymentConfig, error) {
generated := deployapitest.OkDeploymentConfig(1)
// The generator doesn't change automatic so it's ok to fake it here.
generated.Spec.Triggers[0].ImageChangeParams.Automatic = false
generated.Status.Details = deployapitest.OkImageChangeDetails()
updated = generated
return generated, nil
},
updateDeploymentConfigFunc: func(namespace string, config *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) {
updated.Status.Details = deployapitest.OkConfigChangeDetails()
return updated, nil
},
},
}
config := deployapitest.OkDeploymentConfig(0)
ict := deployapitest.OkImageChangeTrigger()
ict.ImageChangeParams.Automatic = false
config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{deployapitest.OkConfigChangeTrigger(), ict}
if err := controller.Handle(config); err != nil {
t.Fatalf("unexpected error: %v", err)
}
if e, a := 1, updated.Status.LatestVersion; e != a {
t.Fatalf("expected update to latestversion=%d, got %d", e, a)
}
if updated.Status.Details == nil {
t.Fatalf("expected config change details to be set")
} else if updated.Status.Details.Causes == nil {
t.Fatalf("expected config change causes to be set")
} else if updated.Status.Details.Causes[0].Type != deployapi.DeploymentTriggerOnConfigChange {
t.Fatalf("expected config change cause to be set to config change trigger, got %s", updated.Status.Details.Causes[0].Type)
}
}
开发者ID:asiainfoLDP,项目名称:datafactory,代码行数:44,代码来源:controller_test.go
示例5: TestHandle_waitForImageController
// TestHandle_waitForImageController tests an initial deployment with unresolved image. The config
// change controller should never increment latestVersion, thus trigger a deployment for this config.
func TestHandle_waitForImageController(t *testing.T) {
fake := &testclient.Fake{}
kFake := &ktestclient.Fake{}
fake.PrependReactor("update", "deploymentconfigs/status", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
t.Fatalf("an update should never run before the template image is resolved")
return true, nil, nil
})
controller := NewDeploymentTriggerController(fake, kFake, codec)
config := testapi.OkDeploymentConfig(0)
config.Namespace = kapi.NamespaceDefault
config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{testapi.OkConfigChangeTrigger(), testapi.OkImageChangeTrigger()}
if err := controller.Handle(config); err != nil {
t.Fatalf("unexpected error: %v", err)
}
}
开发者ID:sgallagher,项目名称:origin,代码行数:21,代码来源:controller_test.go
示例6: TestHandle_newConfigTriggers
// TestHandle_newConfigTriggers ensures that the creation of a new config
// (with version 0) with a config change trigger results in a version bump and
// cause update for initial deployment.
func TestHandle_newConfigTriggers(t *testing.T) {
var updated *deployapi.DeploymentConfig
controller := &DeploymentConfigChangeController{
decodeConfig: func(deployment *kapi.ReplicationController) (*deployapi.DeploymentConfig, error) {
return deployutil.DecodeDeploymentConfig(deployment, kapi.Codecs.LegacyCodec(deployapi.SchemeGroupVersion))
},
changeStrategy: &changeStrategyImpl{
generateDeploymentConfigFunc: func(namespace, name string) (*deployapi.DeploymentConfig, error) {
return deployapitest.OkDeploymentConfig(1), nil
},
updateDeploymentConfigFunc: func(namespace string, config *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) {
updated = config
return config, nil
},
},
}
config := deployapitest.OkDeploymentConfig(0)
config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{deployapitest.OkConfigChangeTrigger()}
err := controller.Handle(config)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if updated == nil {
t.Fatalf("expected config to be updated")
}
if e, a := 1, updated.Status.LatestVersion; e != a {
t.Fatalf("expected update to latestversion=%d, got %d", e, a)
}
if updated.Status.Details == nil {
t.Fatalf("expected config change details to be set")
} else if updated.Status.Details.Causes == nil {
t.Fatalf("expected config change causes to be set")
} else if updated.Status.Details.Causes[0].Type != deployapi.DeploymentTriggerOnConfigChange {
t.Fatalf("expected config change cause to be set to config change trigger, got %s", updated.Status.Details.Causes[0].Type)
}
}
开发者ID:asiainfoLDP,项目名称:datafactory,代码行数:45,代码来源:controller_test.go
示例7: TestHandle_raceWithTheImageController
func TestHandle_raceWithTheImageController(t *testing.T) {
var updated *deployapi.DeploymentConfig
controller := &DeploymentConfigChangeController{
decodeConfig: func(deployment *kapi.ReplicationController) (*deployapi.DeploymentConfig, error) {
return deployutil.DecodeDeploymentConfig(deployment, kapi.Codecs.LegacyCodec(deployapi.SchemeGroupVersion))
},
changeStrategy: &changeStrategyImpl{
generateDeploymentConfigFunc: func(namespace, name string) (*deployapi.DeploymentConfig, error) {
generated := deployapitest.OkDeploymentConfig(1)
generated.Status.Details = deployapitest.OkImageChangeDetails()
updated = generated
return generated, nil
},
updateDeploymentConfigFunc: func(namespace string, config *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) {
t.Errorf("an update should never run in the presence of races")
updated.Status.Details = deployapitest.OkConfigChangeDetails()
return updated, nil
},
},
}
config := deployapitest.OkDeploymentConfig(0)
config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{deployapitest.OkConfigChangeTrigger(), deployapitest.OkImageChangeTrigger()}
if err := controller.Handle(config); err != nil {
t.Fatalf("unexpected error: %v", err)
}
if e, a := 1, updated.Status.LatestVersion; e != a {
t.Fatalf("expected update to latestversion=%d, got %d", e, a)
}
if updated.Status.Details == nil {
t.Fatalf("expected config change details to be set")
} else if updated.Status.Details.Causes == nil {
t.Fatalf("expected config change causes to be set")
} else if updated.Status.Details.Causes[0].Type != deployapi.DeploymentTriggerOnImageChange {
t.Fatalf("expected config change cause to be set to image change trigger, got %s", updated.Status.Details.Causes[0].Type)
}
}
开发者ID:asiainfoLDP,项目名称:datafactory,代码行数:41,代码来源:controller_test.go
示例8: TestHandle_changeWithoutTemplateDiff
// TestHandle_changeWithoutTemplateDiff ensures that an updated config with no
// pod template diff results in the config version remaining the same.
func TestHandle_changeWithoutTemplateDiff(t *testing.T) {
config := deployapitest.OkDeploymentConfig(1)
config.Triggers = []deployapi.DeploymentTriggerPolicy{deployapitest.OkConfigChangeTrigger()}
generated := false
updated := false
controller := &DeploymentConfigChangeController{
decodeConfig: func(deployment *kapi.ReplicationController) (*deployapi.DeploymentConfig, error) {
return deployutil.DecodeDeploymentConfig(deployment, api.Codec)
},
changeStrategy: &changeStrategyImpl{
generateDeploymentConfigFunc: func(namespace, name string) (*deployapi.DeploymentConfig, error) {
generated = true
return config, nil
},
updateDeploymentConfigFunc: func(namespace string, config *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) {
updated = true
return config, nil
},
getDeploymentFunc: func(namespace, name string) (*kapi.ReplicationController, error) {
deployment, _ := deployutil.MakeDeployment(deployapitest.OkDeploymentConfig(1), kapi.Codec)
return deployment, nil
},
},
}
err := controller.Handle(config)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if generated {
t.Error("Unexpected generation of deploymentConfig")
}
if updated {
t.Error("Unexpected update of deploymentConfig")
}
}
开发者ID:cjnygard,项目名称:origin,代码行数:43,代码来源:controller_test.go
示例9: TestHandle_configChangeTrigger
// TestHandle_configChangeTrigger ensures that a config with a config change
// trigger will be reconciled.
func TestHandle_configChangeTrigger(t *testing.T) {
updated := false
fake := &testclient.Fake{}
fake.AddReactor("update", "deploymentconfigs/instantiate", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
updated = true
return true, nil, nil
})
controller := NewDeploymentTriggerController(dcInformer, streamInformer, fake, codec)
config := testapi.OkDeploymentConfig(0)
config.Namespace = kapi.NamespaceDefault
config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{testapi.OkConfigChangeTrigger()}
if err := controller.Handle(config); err != nil {
t.Fatalf("unexpected error: %v", err)
}
if !updated {
t.Fatalf("expected config to be instantiated")
}
}
开发者ID:pweil-,项目名称:origin,代码行数:23,代码来源:controller_test.go
示例10: TestHandle_changeWithTemplateDiff
// TestHandle_changeWithTemplateDiff ensures that a pod template change to a
// config with a config change trigger results in a version bump and cause
// update.
func TestHandle_changeWithTemplateDiff(t *testing.T) {
scenarios := []struct {
name string
modify func(*deployapi.DeploymentConfig)
changeExpected bool
}{
{
name: "container name change",
changeExpected: true,
modify: func(config *deployapi.DeploymentConfig) {
config.Spec.Template.Spec.Containers[1].Name = "modified"
},
},
{
name: "template label change",
changeExpected: true,
modify: func(config *deployapi.DeploymentConfig) {
config.Spec.Template.Labels["newkey"] = "value"
},
},
{
name: "no diff",
changeExpected: false,
modify: func(config *deployapi.DeploymentConfig) {},
},
}
for _, s := range scenarios {
t.Logf("running scenario: %s", s.name)
config := deployapitest.OkDeploymentConfig(1)
config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{deployapitest.OkConfigChangeTrigger()}
deployment, _ := deployutil.MakeDeployment(config, kapi.Codec)
var updated *deployapi.DeploymentConfig
controller := &DeploymentConfigChangeController{
decodeConfig: func(deployment *kapi.ReplicationController) (*deployapi.DeploymentConfig, error) {
return deployutil.DecodeDeploymentConfig(deployment, api.Codec)
},
changeStrategy: &changeStrategyImpl{
generateDeploymentConfigFunc: func(namespace, name string) (*deployapi.DeploymentConfig, error) {
return deployapitest.OkDeploymentConfig(2), nil
},
updateDeploymentConfigFunc: func(namespace string, config *deployapi.DeploymentConfig) (*deployapi.DeploymentConfig, error) {
updated = config
return config, nil
},
getDeploymentFunc: func(namespace, name string) (*kapi.ReplicationController, error) {
return deployment, nil
},
},
}
s.modify(config)
err := controller.Handle(config)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if s.changeExpected {
if updated == nil {
t.Errorf("expected config to be updated")
continue
}
if e, a := 2, updated.Status.LatestVersion; e != a {
t.Errorf("expected update to latestversion=%d, got %d", e, a)
}
if updated.Status.Details == nil {
t.Errorf("expected config change details to be set")
} else if updated.Status.Details.Causes == nil {
t.Errorf("expected config change causes to be set")
} else if updated.Status.Details.Causes[0].Type != deployapi.DeploymentTriggerOnConfigChange {
t.Errorf("expected config change cause to be set to config change trigger, got %s", updated.Status.Details.Causes[0].Type)
}
} else {
if updated != nil {
t.Errorf("unexpected update to version %d", updated.Status.LatestVersion)
}
}
}
}
开发者ID:johnmccawley,项目名称:origin,代码行数:85,代码来源:controller_test.go
示例11: TestTriggers_configChange
func TestTriggers_configChange(t *testing.T) {
const namespace = "test-triggers-configchange"
_, clusterAdminKubeConfig, err := testserver.StartTestMaster()
checkErr(t, err)
clusterAdminClientConfig, err := testutil.GetClusterAdminClientConfig(clusterAdminKubeConfig)
checkErr(t, err)
clusterAdminClient, err := testutil.GetClusterAdminClient(clusterAdminKubeConfig)
checkErr(t, err)
_, err = testserver.CreateNewProject(clusterAdminClient, *clusterAdminClientConfig, namespace, "my-test-user")
checkErr(t, err)
osClient, kubeClient, _, err := testutil.GetClientForUser(*clusterAdminClientConfig, "my-test-user")
checkErr(t, err)
config := deploytest.OkDeploymentConfig(0)
config.Namespace = namespace
config.Spec.Triggers[0] = deploytest.OkConfigChangeTrigger()
rcWatch, err := kubeClient.ReplicationControllers(namespace).Watch(labels.Everything(), fields.Everything(), "0")
if err != nil {
t.Fatalf("Couldn't subscribe to Deployments %v", err)
}
defer rcWatch.Stop()
// submit the initial deployment config
if _, err := osClient.DeploymentConfigs(namespace).Create(config); err != nil {
t.Fatalf("Couldn't create DeploymentConfig: %v", err)
}
// verify the initial deployment exists
event := <-rcWatch.ResultChan()
if e, a := watchapi.Added, event.Type; e != a {
t.Fatalf("expected watch event type %s, got %s", e, a)
}
deployment := event.Object.(*kapi.ReplicationController)
if e, a := config.Name, deployutil.DeploymentConfigNameFor(deployment); e != a {
t.Fatalf("Expected deployment annotated with deploymentConfig '%s', got '%s'", e, a)
}
assertEnvVarEquals("ENV1", "VAL1", deployment, t)
retryErr := kclient.RetryOnConflict(wait.Backoff{Steps: maxUpdateRetries}, func() error {
// submit a new config with an updated environment variable
config, err := osClient.DeploymentConfigs(namespace).Generate(config.Name)
if err != nil {
return err
}
config.Spec.Template.Spec.Containers[0].Env[0].Value = "UPDATED"
// before we update the config, we need to update the state of the existing deployment
// this is required to be done manually since the deployment and deployer pod controllers are not run in this test
// get this live or conflicts will never end up resolved
liveDeployment, err := kubeClient.ReplicationControllers(deployment.Namespace).Get(deployment.Name)
if err != nil {
return err
}
liveDeployment.Annotations[deployapi.DeploymentStatusAnnotation] = string(deployapi.DeploymentStatusComplete)
// update the deployment
if _, err := kubeClient.ReplicationControllers(namespace).Update(liveDeployment); err != nil {
return err
}
event = <-rcWatch.ResultChan()
if e, a := watchapi.Modified, event.Type; e != a {
t.Fatalf("expected watch event type %s, got %s", e, a)
}
if _, err := osClient.DeploymentConfigs(namespace).Update(config); err != nil {
return err
}
return nil
})
if retryErr != nil {
t.Fatal(retryErr)
}
var newDeployment *kapi.ReplicationController
for {
event = <-rcWatch.ResultChan()
if event.Type != watchapi.Added {
// Discard modifications which could be applied to the original RC, etc.
continue
}
newDeployment = event.Object.(*kapi.ReplicationController)
break
}
assertEnvVarEquals("ENV1", "UPDATED", newDeployment, t)
if newDeployment.Name == deployment.Name {
t.Fatalf("expected new deployment; old=%s, new=%s", deployment.Name, newDeployment.Name)
}
}
开发者ID:johnmccawley,项目名称:origin,代码行数:96,代码来源:deploy_trigger_test.go
示例12: TestDeploymentConfigDescriber
func TestDeploymentConfigDescriber(t *testing.T) {
config := deployapitest.OkDeploymentConfig(1)
deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(deployapi.SchemeGroupVersion))
podList := &kapi.PodList{}
fake := &testclient.Fake{}
fake.PrependReactor("get", "deploymentconfigs", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
return true, config, nil
})
kFake := &ktestclient.Fake{}
kFake.PrependReactor("list", "horizontalpodautoscalers", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
return true, &extensions.HorizontalPodAutoscalerList{
Items: []extensions.HorizontalPodAutoscaler{
*deployapitest.OkHPAForDeploymentConfig(config, 1, 3),
}}, nil
})
kFake.PrependReactor("get", "replicationcontrollers", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
return true, deployment, nil
})
kFake.PrependReactor("list", "replicationcontrollers", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
return true, &kapi.ReplicationControllerList{}, nil
})
kFake.PrependReactor("list", "pods", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
return true, podList, nil
})
kFake.PrependReactor("list", "events", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
return true, &kapi.EventList{}, nil
})
d := &DeploymentConfigDescriber{
osClient: fake,
kubeClient: kFake,
}
describe := func() string {
output, err := d.Describe("test", "deployment", kubectl.DescriberSettings{})
if err != nil {
t.Fatalf("unexpected error: %v", err)
return ""
}
t.Logf("describer output:\n%s\n", output)
return output
}
podList.Items = []kapi.Pod{*mkPod(kapi.PodRunning, 0)}
out := describe()
substr := "Autoscaling:\tbetween 1 and 3 replicas"
if !strings.Contains(out, substr) {
t.Fatalf("expected %q in output:\n%s", substr, out)
}
config.Spec.Triggers = append(config.Spec.Triggers, deployapitest.OkConfigChangeTrigger())
describe()
config.Spec.Strategy = deployapitest.OkCustomStrategy()
describe()
config.Spec.Triggers[0].ImageChangeParams.From = kapi.ObjectReference{Name: "imagestream"}
describe()
config.Spec.Strategy = deployapitest.OkStrategy()
config.Spec.Strategy.RecreateParams = &deployapi.RecreateDeploymentStrategyParams{
Pre: &deployapi.LifecycleHook{
FailurePolicy: deployapi.LifecycleHookFailurePolicyAbort,
ExecNewPod: &deployapi.ExecNewPodHook{
ContainerName: "container",
Command: []string{"/command1", "args"},
Env: []kapi.EnvVar{
{
Name: "KEY1",
Value: "value1",
},
},
},
},
Post: &deployapi.LifecycleHook{
FailurePolicy: deployapi.LifecycleHookFailurePolicyIgnore,
ExecNewPod: &deployapi.ExecNewPodHook{
ContainerName: "container",
Command: []string{"/command2", "args"},
Env: []kapi.EnvVar{
{
Name: "KEY2",
Value: "value2",
},
},
},
},
}
describe()
}
开发者ID:ZenoRewn,项目名称:origin,代码行数:91,代码来源:deployments_test.go
示例13: TestCanTrigger
func TestCanTrigger(t *testing.T) {
tests := []struct {
name string
config *deployapi.DeploymentConfig
decoded *deployapi.DeploymentConfig
force bool
expected bool
expectedCauses []deployapi.DeploymentCause
expectedErr bool
}{
{
name: "no trigger [w/ podtemplate change]",
config: &deployapi.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "config"},
Spec: deployapi.DeploymentConfigSpec{
Triggers: []deployapi.DeploymentTriggerPolicy{},
Template: deploytest.OkPodTemplateChanged(),
},
Status: deploytest.OkDeploymentConfigStatus(1),
},
decoded: &deployapi.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "config"},
Spec: deployapi.DeploymentConfigSpec{
Triggers: []deployapi.DeploymentTriggerPolicy{},
Template: deploytest.OkPodTemplate(),
},
Status: deploytest.OkDeploymentConfigStatus(1),
},
force: false,
expected: false,
expectedCauses: nil,
},
{
name: "forced updated",
config: &deployapi.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "config"},
Spec: deployapi.DeploymentConfigSpec{
Template: deploytest.OkPodTemplateChanged(),
},
Status: deploytest.OkDeploymentConfigStatus(1),
},
decoded: &deployapi.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "config"},
Spec: deployapi.DeploymentConfigSpec{
Template: deploytest.OkPodTemplate(),
},
Status: deploytest.OkDeploymentConfigStatus(1),
},
force: true,
expected: true,
expectedCauses: []deployapi.DeploymentCause{{Type: deployapi.DeploymentTriggerManual}},
},
{
name: "config change trigger only [w/ podtemplate change]",
config: &deployapi.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "config"},
Spec: deployapi.DeploymentConfigSpec{
Template: deploytest.OkPodTemplateChanged(),
Triggers: []deployapi.DeploymentTriggerPolicy{
deploytest.OkConfigChangeTrigger(),
},
},
Status: deploytest.OkDeploymentConfigStatus(1),
},
decoded: &deployapi.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "config"},
Spec: deployapi.DeploymentConfigSpec{
Template: deploytest.OkPodTemplate(),
Triggers: []deployapi.DeploymentTriggerPolicy{
deploytest.OkConfigChangeTrigger(),
},
},
Status: deploytest.OkDeploymentConfigStatus(1),
},
force: false,
expected: true,
expectedCauses: deploytest.OkConfigChangeDetails().Causes,
},
{
name: "config change trigger only [no change][initial]",
config: &deployapi.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "config"},
Spec: deployapi.DeploymentConfigSpec{
Template: deploytest.OkPodTemplate(),
Triggers: []deployapi.DeploymentTriggerPolicy{
deploytest.OkConfigChangeTrigger(),
},
},
Status: deploytest.OkDeploymentConfigStatus(0),
},
decoded: &deployapi.DeploymentConfig{
//.........这里部分代码省略.........
开发者ID:juanluisvaladas,项目名称:origin,代码行数:101,代码来源:rest_test.go
示例14: TestHandle_changeWithTemplateDiff
// TestHandle_changeWithTemplateDiff ensures that a pod template change to a
// config with a config change trigger results in a version bump and cause
// update.
func TestHandle_changeWithTemplateDiff(t *testing.T) {
scenarios := []struct {
name string
modify func(*deployapi.DeploymentConfig)
changeExpected bool
}{
{
name: "container name change",
changeExpected: true,
modify: func(config *deployapi.DeploymentConfig) {
config.Spec.Template.Spec.Containers[1].Name = "modified"
},
},
{
name: "template label change",
changeExpected: true,
modify: func(config *deployapi.DeploymentConfig) {
config.Spec.Template.Labels["newkey"] = "value"
},
},
{
name: "no diff",
changeExpected: false,
modify: func(config *deployapi.DeploymentConfig) {},
},
}
for _, s := range scenarios {
t.Logf("running scenario: %s", s.name)
fake := &testclient.Fake{}
kFake := &ktestclient.Fake{}
config := testapi.OkDeploymentConfig(1)
config.Namespace = kapi.NamespaceDefault
config.Spec.Triggers = []deployapi.DeploymentTriggerPolicy{testapi.OkConfigChangeTrigger()}
deployment, _ := deployutil.MakeDeployment(config, kapi.Codecs.LegacyCodec(deployapi.SchemeGroupVersion))
var updated *deployapi.DeploymentConfig
fake.PrependReactor("update", "deploymentconfigs/status", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
updated = action.(ktestclient.UpdateAction).GetObject().(*deployapi.DeploymentConfig)
return true, updated, nil
})
kFake.PrependReactor("get", "replicationcontrollers", func(action ktestclient.Action) (handled bool, ret runtime.Object, err error) {
return true, deployment, nil
})
controller := NewDeploymentTriggerController(fake, kFake, codec)
s.modify(config)
if err := controller.Handle(config); err != nil {
t.Errorf("unexpected error: %v", err)
continue
}
if !s.changeExpected {
if updated != nil {
t.Errorf("unexpected update to version %d", updated.Status.LatestVersion)
}
continue
}
// changeExpected == true
if updated == nil {
t.Errorf("expected config to be updated")
continue
}
if e, a := int64(2), updated.Status.LatestVersion; e != a {
t.Errorf("expected update to latestversion=%d, got %d", e, a)
continue
}
if updated.Status.Details == nil {
t.Errorf("expected config change details to be set")
} else if updated.Status.Details.Causes == nil {
t.Errorf("expected config change causes to be set")
} else if updated.Status.Details.Causes[0].Type != deployapi.DeploymentTriggerOnConfigChange {
t.Errorf("expected config change cause to be set to config change trigger, got %s", updated.Status.Details.Causes[0].Type)
}
}
}
开发者ID:sgallagher,项目名称:origin,代码行数:83,代码来源:controller_test.go
示例15: TestCanTrigger
func TestCanTrigger(t *testing.T) {
tests := []struct {
name string
config *deployapi.DeploymentConfig
decoded *deployapi.DeploymentConfig
expected bool
expectedCauses []deployapi.DeploymentCause
}{
{
name: "nil decoded config",
config: testapi.OkDeploymentConfig(1),
decoded: nil,
expected: false,
expectedCauses: nil,
},
{
name: "no trigger",
config: &deployapi.DeploymentConfig{
Spec: deployapi.DeploymentConfigSpec{
Template: testapi.OkPodTemplateChanged(),
},
Status: testapi.OkDeploymentConfigStatus(1),
},
decoded: &deployapi.DeploymentConfig{
Spec: deployapi.DeploymentConfigSpec{
Template: testapi.OkPodTemplate(),
},
Status: testapi.OkDeploymentConfigStatus(1),
},
expected: false,
expectedCauses: nil,
},
{
name: "config change trigger only",
config: &deployapi.DeploymentConfig{
Spec: deployapi.DeploymentConfigSpec{
Template: testapi.OkPodTemplateChanged(),
Triggers: []deployapi.DeploymentTriggerPolicy{
testapi.OkConfigChangeTrigger(),
},
},
Status: testapi.OkDeploymentConfigStatus(1),
},
decoded: &deployapi.DeploymentConfig{
Spec: deployapi.DeploymentConfigSpec{
Template: testapi.OkPodTemplate(),
Triggers: []deployapi.DeploymentTriggerPolicy{
testapi.OkConfigChangeTrigger(),
},
},
Status: testapi.OkDeploymentConfigStatus(1),
},
expected: true,
expectedCauses: testapi.OkConfigChangeDetails().Causes,
},
{
name: "config change trigger only [no change][initial]",
config: &deployapi.DeploymentConfig{
Spec: deployapi.DeploymentConfigSpec{
Template: testapi.OkPodTemplate(),
Triggers: []deployapi.DeploymentTriggerPolicy{
testapi.OkConfigChangeTrigger(),
},
},
Status: testapi.OkDeploymentConfigStatus(0),
},
decoded: &deployapi.DeploymentConfig{
Spec: deployapi.DeploymentConfigSpec{
Template: testapi.OkPodTemplate(),
Triggers: []deployapi.DeploymentTriggerPolicy{
testapi.OkConfigChangeTrigger(),
},
},
Status: testapi.OkDeploymentConfigStatus(0),
},
expected: true,
expectedCauses: testapi.OkConfigChangeDetails().Causes,
},
{
name: "config change trigger only [no change]",
config: &deployapi.DeploymentConfig{
Spec: deployapi.DeploymentConfigSpec{
Template: testapi.OkPodTemplate(),
Triggers: []deployapi.DeploymentTriggerPolicy{
testapi.OkConfigChangeTrigger(),
},
},
Status: testapi.OkDeploymentConfigStatus(1),
},
//.........这里部分代码省略.........
开发者ID:sgallagher,项目名称:origin,代码行数:101,代码来源:controller_test.go
示例16: TestValidateDeploymentConfigMissingFields
func TestValidateDeploymentConfigMissingFields(t *testing.T) {
errorCases := map[string]struct {
DeploymentConfig api.DeploymentConfig
ErrorType field.ErrorType
Field string
}{
"empty container field": {
api.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"},
Spec: api.DeploymentConfigSpec{
Replicas: 1,
Triggers: []api.DeploymentTriggerPolicy{test.OkConfigChangeTrigger()},
Selector: test.OkSelector(),
Strategy: test.OkStrategy(),
Template: test.OkPodTemplateMissingImage("container1"),
},
},
field.ErrorTypeRequired,
"spec.template.spec.containers[0].image",
},
"missing name": {
api.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "", Namespace: "bar"},
Spec: test.OkDeploymentConfigSpec(),
},
field.ErrorTypeRequired,
"metadata.name",
},
"missing namespace": {
api.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: ""},
Spec: test.OkDeploymentConfigSpec(),
},
field.ErrorTypeRequired,
"metadata.namespace",
},
"invalid name": {
api.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "-foo", Namespace: "bar"},
Spec: test.OkDeploymentConfigSpec(),
},
field.ErrorTypeInvalid,
"metadata.name",
},
"invalid namespace": {
api.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "-bar"},
Spec: test.OkDeploymentConfigSpec(),
},
field.ErrorTypeInvalid,
"metadata.namespace",
},
"missing trigger.type": {
api.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"},
Spec: api.DeploymentConfigSpec{
Replicas: 1,
Triggers: []api.DeploymentTriggerPolicy{
{
ImageChangeParams: &api.DeploymentTriggerImageChangeParams{
ContainerNames: []string{"foo"},
},
},
},
Selector: test.OkSelector(),
Strategy: test.OkStrategy(),
Template: test.OkPodTemplate(),
},
},
field.ErrorTypeRequired,
"spec.triggers[0].type",
},
"missing Trigger imageChangeParams.from": {
api.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"},
Spec: api.DeploymentConfigSpec{
Replicas: 1,
Triggers: []api.DeploymentTriggerPolicy{
{
Type: api.DeploymentTriggerOnImageChange,
ImageChangeParams: &api.DeploymentTriggerImageChangeParams{
ContainerNames: []string{"foo"},
},
},
},
Selector: test.OkSelector(),
Strategy: test.OkStrategy(),
Template: test.OkPodTemplate(),
},
},
field.ErrorTypeRequired,
"spec.triggers[0].imageChangeParams.from",
},
"invalid Trigger imageChangeParams.from.kind": {
api.DeploymentConfig{
ObjectMeta: kapi.ObjectMeta{Name: "foo", Namespace: "bar"},
Spec: api.DeploymentConfigSpec{
Replicas: 1,
Triggers: []api.DeploymentTriggerPolicy{
//.........这里部分代码省略.........
开发者ID:Xmagicer,项目名称:origin,代码行数:101,代码来源:validation_test.go
示例17: TestDeploymentConfigDescriber
func TestDeploymentConfigDescriber(t *testing.T) {
config := deployapitest.OkDeploymentConfig(1)
deployment, _ := deployutil.MakeDeployment(config, kapi.Codec)
podList := &kapi.PodList{}
eventList := &kapi.EventList{}
deploymentList := &kapi.ReplicationControllerList{}
d := &DeploymentConfigDescriber{
client: &genericDeploymentDescriberClient{
getDeploymentConfigFunc: func(namespace, name string) (*deployapi.DeploymentConfig, error) {
return config, nil
},
getDeploymentFunc: func(namespace, name string) (*kapi.ReplicationController, error) {
return deployment, nil
},
listDeploymentsFunc: func(namespace string, selector labels.Selector) (*kapi.ReplicationControllerList, error) {
return deploymentList, nil
},
listPodsFunc: func(namespace string, selector labels.Selector) (*kapi.PodList, error) {
return podList, nil
},
listEventsFunc: func(deploymentConfig *deployapi.DeploymentConfig) (*kapi.EventList, error) {
return eventList, nil
},
},
}
describe := func() {
if output, err := d.Describe("test", "deployment"); err != nil {
t.Fatalf("unexpected error: %v", err)
} else {
t.Logf("describer output:\n%s\n", output)
}
}
podList.Items = []kapi.Pod{*mkPod(kapi.PodRunning, 0)}
describe()
config.Triggers = append(config.Triggers, deployapitest.OkConfigChangeTrigger())
describe()
config.Template.Strategy = deployapitest.OkCustomStrategy()
describe()
config.Triggers[0].ImageChangeParams.RepositoryName = ""
config.Triggers[0].ImageChangeParams.From = kapi.ObjectReference{Name: "imageRepo"}
describe()
config.Template.Strategy = deployapitest.OkStrategy()
config.Template.Strategy.RecreateParams = &deployapi.RecreateDeploymentStrategyParams{
Pre: &deployapi.LifecycleHook{
FailurePolicy: deployapi.LifecycleHookFailurePolicyAbort,
ExecNewPod: &deployapi.ExecNewPodHook{
ContainerName: "container",
Command: []string{"/command1", "args"},
Env: []kapi.EnvVar{
{
Name: "KEY1",
Value: "value1",
},
},
},
},
Post: &deployapi.LifecycleHook{
FailurePolicy: deployapi.LifecycleHookFailurePolicyIgnore,
ExecNewPod: &deployapi.ExecNewPodHook{
ContainerName: "container",
Command: []string{"/command2", "args"},
Env: []kapi.EnvVar{
{
Name: "KEY2",
Value: "value2",
},
},
},
},
}
describe()
}
开发者ID:dctse,项目名称:openshift-cucumber,代码行数:79,代码来源:describer_test.go
示例18: TestTriggers_configChange
func TestTriggers_configChange(t *testing.T) {
testutil.DeleteAllEtcdKeys()
openshift := NewTestDeployOpenshift(t)
defer openshift.Close()
config := deploytest.OkDeploymentConfig(0)
config.Namespace = testutil.Namespace()
co
|
请发表评论