本文整理匯總了Golang中github.com/tsuru/tsuru/provision.App.GetCname方法的典型用法代碼示例。如果您正苦於以下問題:Golang App.GetCname方法的具體用法?Golang App.GetCname怎麽用?Golang App.GetCname使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/tsuru/tsuru/provision.App
的用法示例。
在下文中一共展示了App.GetCname方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: minifyApp
func minifyApp(app provision.App) (miniApp, error) {
units, err := app.Units()
if err != nil {
return miniApp{}, err
}
return miniApp{
Name: app.GetName(),
Units: units,
CName: app.GetCname(),
Ip: app.GetIp(),
Lock: app.GetLock(),
}, nil
}
示例2: Restart
func (p *FakeProvisioner) Restart(app provision.App, process string, w io.Writer) error {
if err := p.getError("Restart"); err != nil {
return err
}
p.mut.Lock()
defer p.mut.Unlock()
pApp, ok := p.apps[app.GetName()]
if !ok {
return errNotProvisioned
}
pApp.restarts[process]++
p.apps[app.GetName()] = pApp
if w != nil {
fmt.Fprintf(w, "restarting app")
}
r := routertest.FakeRouter
err := r.AddBackend(app.GetName())
if err != nil && err != router.ErrBackendExists {
return err
}
var newAddr string
if newAddr, err = r.Addr(app.GetName()); err == nil && newAddr != app.GetIp() {
var conn *db.Storage
conn, err = db.Conn()
if err != nil {
return err
}
defer conn.Close()
err = conn.Apps().Update(bson.M{"name": app.GetName()}, bson.M{"$set": bson.M{"ip": newAddr}})
if err != nil {
return err
}
}
for _, cname := range app.GetCname() {
err = r.SetCName(cname, app.GetName())
if err != nil && err != router.ErrCNameExists {
return err
}
}
oldRoutes, err := r.Routes(app.GetName())
if err != nil {
return err
}
expectedMap := make(map[string]*url.URL)
units := p.apps[app.GetName()].units
if err != nil {
return err
}
for _, unit := range units {
expectedMap[unit.Address.String()] = unit.Address
}
var toRemove []*url.URL
for _, url := range oldRoutes {
if _, isPresent := expectedMap[url.String()]; isPresent {
delete(expectedMap, url.String())
} else {
toRemove = append(toRemove, url)
}
}
for _, toAddUrl := range expectedMap {
err := r.AddRoute(app.GetName(), toAddUrl)
if err != nil {
return err
}
}
for _, toRemoveUrl := range toRemove {
err := r.RemoveRoute(app.GetName(), toRemoveUrl)
if err != nil {
return err
}
}
return nil
}