コード例 #1
0
ファイル: common.go プロジェクト: nanopack/portal
func SetVip(vip core.Vip) error {
	// in case of failure
	oldVips, err := database.GetVips()
	if err != nil {
		return err
	}

	// apply to vipmgr
	err = vipmgr.SetVip(vip)
	if err != nil {
		return err
	}

	if !database.CentralStore {
		// save to backend
		err = database.SetVip(vip)
		if err != nil {
			// undo vipmgr action
			if uerr := vipmgr.SetVips(oldVips); uerr != nil {
				err = fmt.Errorf("%v - %v", err.Error(), uerr.Error())
			}
			return err
		}
	}
	return nil
}
コード例 #2
0
ファイル: none.go プロジェクト: nanopack/portal
func (n None) SetVip(vip core.Vip) error {
	err := common.SetVip(vip)
	if err != nil {
		return err
	}
	if database.CentralStore {
		return database.SetVip(vip)
	}
	return nil
}