func (s *DeployHelperSuite) TestResolveDepValues(c *C) { datamodel.Zk.RecursiveDelete(helper.GetBaseEnvPath()) datamodel.Zk.RecursiveDelete(helper.GetBaseRouterPath(true)) datamodel.Zk.RecursiveDelete(helper.GetBaseRouterPath(false)) datamodel.Zk.RecursiveDelete(helper.GetBaseRouterPortsPath(true)) datamodel.Zk.RecursiveDelete(helper.GetBaseRouterPortsPath(false)) datamodel.CreateEnvPath() datamodel.CreateRouterPaths() datamodel.Router(true, "dev", "somehost", "1.2.3.4").Save() zkEnv := datamodel.Env("root") err := zkEnv.Save() c.Assert(err, IsNil) deps, err := ResolveDepValues("app", zkEnv, []string{"hello-go"}, false, &Task{}) c.Assert(err, Not(IsNil)) _, err = datamodel.CreateInstance("hello-go", "1234567890", "root", "myhost") c.Assert(err, IsNil) _, err = datamodel.CreateOrUpdateApp(false, false, "app", "ssh://github.com/ooyala/apo", "/", "*****@*****.**") c.Assert(err, IsNil) zkApp, err := datamodel.CreateOrUpdateApp(false, true, "hello-go", "ssh://github.com/ooyala/hello-go", "/", "*****@*****.**") c.Assert(err, IsNil) c.Assert(zkApp.AddDependerAppData(&DependerAppData{Name: "app", DependerEnvData: map[string]*DependerEnvData{"root": &DependerEnvData{Name: "root"}}}), IsNil) deps, err = ResolveDepValues("app", zkEnv, []string{"hello-go"}, false, &Task{}) c.Assert(err, IsNil) c.Assert(deps["dev1"]["hello-go"].DataMap["address"], Equals, fmt.Sprintf("internal-router.1.%s.suffix.com:%d", Region, datamodel.MinRouterPort)) deps, err = ResolveDepValues("app", zkEnv, []string{"hello-go"}, true, &Task{}) c.Assert(err, IsNil) c.Assert(deps["dev1"]["hello-go"].EncryptedData, Not(Equals), "") c.Assert(deps["dev1"]["hello-go"].DataMap, IsNil) scrypto.DecryptAppDep(deps["dev1"]["hello-go"]) c.Assert(deps["dev1"]["hello-go"].DataMap, Not(IsNil)) c.Assert(deps["dev1"]["hello-go"].DataMap["address"], Equals, fmt.Sprintf("internal-router.1.%s.suffix.com:%d", Region, datamodel.MinRouterPort)) }
func deployToHost(respCh chan *DeployHostResult, manifest *Manifest, sha, env, host string) { instance, err := datamodel.CreateInstance(manifest.Name, sha, env, host) if err != nil { respCh <- &DeployHostResult{Host: host, Container: nil, Error: err} return } ihReply, err := supervisor.Deploy(host, manifest.Name, sha, env, instance.ID, manifest) if err != nil { instance.Delete() respCh <- &DeployHostResult{Host: host, Container: nil, Error: err} return } if ihReply.Status != StatusOk { instance.Delete() respCh <- &DeployHostResult{Host: host, Container: nil, Error: err} return } ihReply.Container.Host = host instance.SetPort(ihReply.Container.PrimaryPort) instance.SetManifest(ihReply.Container.Manifest) AddAppShaToEnv(manifest.Name, sha, env) respCh <- &DeployHostResult{Host: host, Container: ihReply.Container, Error: nil} }