Replace pkg/settings with pkg/config
This commit is contained in:
parent
0d33d93e35
commit
42896b3711
7 changed files with 41 additions and 37 deletions
|
@ -8,10 +8,10 @@ import (
|
|||
"github.com/drone/drone/Godeps/_workspace/src/github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/drone/drone/Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs"
|
||||
"github.com/drone/drone/pkg/config"
|
||||
"github.com/drone/drone/pkg/remote/github"
|
||||
"github.com/drone/drone/pkg/server"
|
||||
"github.com/drone/drone/pkg/server/session"
|
||||
"github.com/drone/drone/pkg/settings"
|
||||
|
||||
log "github.com/drone/drone/Godeps/_workspace/src/github.com/Sirupsen/logrus"
|
||||
eventbus "github.com/drone/drone/pkg/bus/builtin"
|
||||
|
@ -37,7 +37,7 @@ var (
|
|||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
settings, err := settings.Parse(*conf)
|
||||
settings, err := config.Load(*conf)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
@ -46,8 +46,8 @@ func main() {
|
|||
store := store.New(db)
|
||||
defer db.Close()
|
||||
|
||||
remote := github.New(settings.Service)
|
||||
session := session.New(settings.Session)
|
||||
remote := github.New(settings)
|
||||
session := session.New(settings)
|
||||
eventbus_ := eventbus.New()
|
||||
queue_ := queue.New()
|
||||
updater := runner.NewUpdater(eventbus_, store, remote)
|
||||
|
@ -55,7 +55,7 @@ func main() {
|
|||
|
||||
// launch the local queue runner if the system
|
||||
// is not conifugred to run in agent mode
|
||||
if settings.Agents != nil && settings.Agents.Secret != "" {
|
||||
if len(settings.Agents.Secret) != 0 {
|
||||
log.Infof("Run builds using remote build agents")
|
||||
} else {
|
||||
log.Infof("Run builds using the embedded build runner")
|
||||
|
|
|
@ -40,6 +40,10 @@ type Config struct {
|
|||
Expires int64 `envconfig:"optional"`
|
||||
}
|
||||
|
||||
Agents struct {
|
||||
Secret string `envconfig:"optional"`
|
||||
}
|
||||
|
||||
Database struct {
|
||||
Driver string `envconfig:"optional"`
|
||||
Datasource string `envconfig:"optional"`
|
||||
|
@ -56,7 +60,7 @@ type Config struct {
|
|||
|
||||
// Plugins represents a white-list of plugins
|
||||
// that the system is authorized to load.
|
||||
Plugins []string `envconfig:"white_list"`
|
||||
Plugins []string `envconfig:"optional"`
|
||||
}
|
||||
|
||||
// Load loads the configuration file and reads
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/drone/drone/Godeps/_workspace/src/github.com/hashicorp/golang-lru"
|
||||
"github.com/drone/drone/pkg/settings"
|
||||
"github.com/drone/drone/pkg/config"
|
||||
common "github.com/drone/drone/pkg/types"
|
||||
|
||||
"github.com/drone/drone/Godeps/_workspace/src/github.com/google/go-github/github"
|
||||
|
@ -33,14 +33,14 @@ type GitHub struct {
|
|||
cache *lru.Cache
|
||||
}
|
||||
|
||||
func New(service *settings.Service) *GitHub {
|
||||
func New(conf *config.Config) *GitHub {
|
||||
var github = GitHub{
|
||||
API: DefaultAPI,
|
||||
URL: DefaultURL,
|
||||
Client: service.OAuth.Client,
|
||||
Secret: service.OAuth.Secret,
|
||||
PrivateMode: service.PrivateMode,
|
||||
SkipVerify: service.SkipVerify,
|
||||
Client: conf.Auth.Client,
|
||||
Secret: conf.Auth.Secret,
|
||||
PrivateMode: conf.Remote.Private,
|
||||
SkipVerify: conf.Remote.SkipVerify,
|
||||
}
|
||||
var err error
|
||||
github.cache, err = lru.New(1028)
|
||||
|
@ -50,9 +50,9 @@ func New(service *settings.Service) *GitHub {
|
|||
|
||||
// if GitHub enterprise then ensure we're using the
|
||||
// appropriate URLs
|
||||
if !strings.HasPrefix(service.Base, DefaultURL) && len(service.Base) != 0 {
|
||||
github.URL = service.Base
|
||||
github.API = service.Base + "/api/v3/"
|
||||
if !strings.HasPrefix(conf.Remote.Base, DefaultURL) && len(conf.Remote.Base) != 0 {
|
||||
github.URL = conf.Remote.Base
|
||||
github.API = conf.Remote.Base + "/api/v3/"
|
||||
}
|
||||
// the API must have a trailing slash
|
||||
if !strings.HasSuffix(github.API, "/") {
|
||||
|
|
|
@ -36,9 +36,9 @@ func GetLogin(c *gin.Context) {
|
|||
// Auth (username and password). This will delegate
|
||||
// authorization accordingly.
|
||||
switch {
|
||||
case settings.Service.OAuth == nil:
|
||||
getLoginBasic(c)
|
||||
case settings.Service.OAuth.RequestToken != "":
|
||||
// case settings.Auth == nil:
|
||||
// getLoginBasic(c)
|
||||
case settings.Auth.RequestToken != "":
|
||||
getLoginOauth1(c)
|
||||
default:
|
||||
getLoginOauth2(c)
|
||||
|
@ -52,9 +52,9 @@ func GetLogin(c *gin.Context) {
|
|||
login := ToUser(c)
|
||||
|
||||
// check organization membership, if applicable
|
||||
if len(settings.Service.Orgs) != 0 {
|
||||
if len(settings.Remote.Orgs) != 0 {
|
||||
orgs, _ := remote.Orgs(login)
|
||||
if !checkMembership(orgs, settings.Service.Orgs) {
|
||||
if !checkMembership(orgs, settings.Remote.Orgs) {
|
||||
c.Redirect(303, "/login#error=access_denied_org")
|
||||
return
|
||||
}
|
||||
|
@ -73,7 +73,7 @@ func GetLogin(c *gin.Context) {
|
|||
// if self-registration is disabled we should
|
||||
// return a notAuthorized error. the only exception
|
||||
// is if no users exist yet in the system we'll proceed.
|
||||
if !settings.Service.Open && count != 0 {
|
||||
if !settings.Remote.Open && count != 0 {
|
||||
log.Errorf("cannot register %s. registration closed", login.Login)
|
||||
c.Redirect(303, "/login#error=access_denied")
|
||||
return
|
||||
|
@ -137,11 +137,11 @@ func getLoginOauth2(c *gin.Context) {
|
|||
var remote = ToRemote(c)
|
||||
|
||||
var config = &oauth2.Config{
|
||||
ClientId: settings.Service.OAuth.Client,
|
||||
ClientSecret: settings.Service.OAuth.Secret,
|
||||
Scope: strings.Join(settings.Service.OAuth.Scope, ","),
|
||||
AuthURL: settings.Service.OAuth.Authorize,
|
||||
TokenURL: settings.Service.OAuth.AccessToken,
|
||||
ClientId: settings.Auth.Client,
|
||||
ClientSecret: settings.Auth.Secret,
|
||||
Scope: strings.Join(settings.Auth.Scope, ","),
|
||||
AuthURL: settings.Auth.Authorize,
|
||||
TokenURL: settings.Auth.AccessToken,
|
||||
RedirectURL: fmt.Sprintf("%s/authorize", httputil.GetURL(c.Request)),
|
||||
//settings.Server.Scheme, settings.Server.Hostname),
|
||||
}
|
||||
|
|
|
@ -7,11 +7,11 @@ import (
|
|||
"github.com/drone/drone/Godeps/_workspace/src/github.com/gin-gonic/gin"
|
||||
|
||||
"github.com/drone/drone/pkg/bus"
|
||||
"github.com/drone/drone/pkg/config"
|
||||
"github.com/drone/drone/pkg/queue"
|
||||
"github.com/drone/drone/pkg/remote"
|
||||
"github.com/drone/drone/pkg/runner"
|
||||
"github.com/drone/drone/pkg/server/session"
|
||||
"github.com/drone/drone/pkg/settings"
|
||||
"github.com/drone/drone/pkg/store"
|
||||
common "github.com/drone/drone/pkg/types"
|
||||
)
|
||||
|
@ -91,17 +91,17 @@ func SetUpdater(u runner.Updater) gin.HandlerFunc {
|
|||
}
|
||||
}
|
||||
|
||||
func ToSettings(c *gin.Context) *settings.Settings {
|
||||
v, ok := c.Get("settings")
|
||||
func ToSettings(c *gin.Context) *config.Config {
|
||||
v, ok := c.Get("config")
|
||||
if !ok {
|
||||
return nil
|
||||
}
|
||||
return v.(*settings.Settings)
|
||||
return v.(*config.Config)
|
||||
}
|
||||
|
||||
func SetSettings(s *settings.Settings) gin.HandlerFunc {
|
||||
func SetSettings(s *config.Config) gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
c.Set("settings", s)
|
||||
c.Set("config", s)
|
||||
c.Next()
|
||||
}
|
||||
}
|
||||
|
@ -249,7 +249,7 @@ func MustAgent() gin.HandlerFunc {
|
|||
conf := ToSettings(c)
|
||||
|
||||
// verify remote agents are enabled
|
||||
if conf.Agents == nil || len(conf.Agents.Secret) == 0 {
|
||||
if len(conf.Agents.Secret) == 0 {
|
||||
c.AbortWithStatus(405)
|
||||
return
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ import (
|
|||
"time"
|
||||
|
||||
"github.com/drone/drone/Godeps/_workspace/src/github.com/dgrijalva/jwt-go"
|
||||
"github.com/drone/drone/pkg/settings"
|
||||
"github.com/drone/drone/pkg/config"
|
||||
common "github.com/drone/drone/pkg/types"
|
||||
)
|
||||
|
||||
|
@ -20,8 +20,8 @@ type session struct {
|
|||
expire time.Duration
|
||||
}
|
||||
|
||||
func New(s *settings.Session) Session {
|
||||
secret := []byte(s.Secret)
|
||||
func New(s *config.Config) Session {
|
||||
secret := []byte(s.Session.Secret)
|
||||
expire := time.Hour * 72
|
||||
return &session{
|
||||
secret: secret,
|
||||
|
|
|
@ -76,7 +76,7 @@ func GetStream(c *gin.Context) {
|
|||
// if the commit is being executed by an agent
|
||||
// we'll proxy the build output directly to the
|
||||
// remote Docker client, through the agent.
|
||||
if conf.Agents != nil && conf.Agents.Secret != "" {
|
||||
if conf.Agents.Secret != "" {
|
||||
addr, err := store.Agent(commit)
|
||||
if err != nil {
|
||||
c.Fail(500, err)
|
||||
|
|
Loading…
Reference in a new issue