本文整理匯總了Golang中github.com/mesos/mesos-go/scheduler.DriverConfig.WithAuthContext方法的典型用法代碼示例。如果您正苦於以下問題:Golang DriverConfig.WithAuthContext方法的具體用法?Golang DriverConfig.WithAuthContext怎麽用?Golang DriverConfig.WithAuthContext使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/mesos/mesos-go/scheduler.DriverConfig
的用法示例。
在下文中一共展示了DriverConfig.WithAuthContext方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: Run
func (sc *SchedulerCore) Run(mesosMaster string) {
sc.schedulerState.MesosMaster = mesosMaster
var frameworkId *mesos.FrameworkID
if sc.schedulerState.FrameworkID == nil {
frameworkId = nil
} else {
frameworkId = &mesos.FrameworkID{
Value: sc.schedulerState.FrameworkID,
}
}
fwinfo := &mesos.FrameworkInfo{
Name: proto.String(sc.frameworkName),
Id: frameworkId,
FailoverTimeout: proto.Float64(86400),
WebuiUrl: proto.String(sc.schedulerHTTPServer.GetURI()),
Checkpoint: proto.Bool(true),
Role: proto.String(sc.frameworkRole),
}
if sc.user != "" {
fwinfo.User = proto.String(sc.user)
} else {
guestUser := "guest"
fwinfo.User = &guestUser
}
cred := (*mesos.Credential)(nil)
if sc.mesosAuthPrincipal != "" {
fwinfo.Principal = proto.String(sc.mesosAuthPrincipal)
}
if sc.mesosAuthSecretFile != "" && sc.mesosAuthPrincipal != "" {
secret, err := ioutil.ReadFile(sc.mesosAuthSecretFile)
if err != nil {
log.Fatal(err)
}
cred = &mesos.Credential{
Principal: proto.String(sc.mesosAuthPrincipal),
Secret: secret,
}
}
hostname, err := os.Hostname()
if err != nil {
log.Fatal(err)
}
config := sched.DriverConfig{
Scheduler: sc,
Framework: fwinfo,
Master: mesosMaster,
Credential: cred,
HostnameOverride: hostname,
}
if sc.schedulerIPAddr != "" {
config.BindingAddress = parseIP(sc.schedulerIPAddr)
}
if sc.authProvider != "" && sc.mesosAuthPrincipal != "" {
config.WithAuthContext = func(ctx context.Context) context.Context {
ctx = auth.WithLoginProvider(ctx, sc.authProvider)
if sc.schedulerIPAddr != "" {
ctx = sasl.WithBindingAddress(ctx, parseIP(sc.schedulerIPAddr))
}
return ctx
}
}
log.Infof("Running scheduler with FrameworkInfo: %v and DriverConfig: %v", fwinfo, config)
driver, err := sched.NewMesosSchedulerDriver(config)
if err != nil {
log.Error("Unable to create a SchedulerDriver ", err.Error())
}
sc.rServer = newReconciliationServer(driver, sc)
sc.mgr.SetupFramework(sc.schedulerHTTPServer.URI)
if stat, err := driver.Run(); err != nil {
log.Infof("Framework stopped with status %s and error: %s\n", stat.String(), err.Error())
}
}