mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge branch 'master' of github.com:grafana/grafana into dash-edit-mode
This commit is contained in:
commit
2fbe8cde8a
@ -229,6 +229,7 @@ auth_url = https://accounts.google.com/o/oauth2/auth
|
|||||||
token_url = https://accounts.google.com/o/oauth2/token
|
token_url = https://accounts.google.com/o/oauth2/token
|
||||||
api_url = https://www.googleapis.com/oauth2/v1/userinfo
|
api_url = https://www.googleapis.com/oauth2/v1/userinfo
|
||||||
allowed_domains =
|
allowed_domains =
|
||||||
|
hosted_domain =
|
||||||
|
|
||||||
#################################### Grafana.net Auth ####################
|
#################################### Grafana.net Auth ####################
|
||||||
[auth.grafananet]
|
[auth.grafananet]
|
||||||
|
@ -23,7 +23,7 @@ All options defined in conf/grafana.ini can be overridden using environment vari
|
|||||||
```
|
```
|
||||||
docker run -i -p 3000:3000 \
|
docker run -i -p 3000:3000 \
|
||||||
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
|
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
|
||||||
-e "GF_SECURITY_ADMIN_PASSWORD=secret \
|
-e "GF_SECURITY_ADMIN_PASSWORD=secret" \
|
||||||
grafana/grafana:develop
|
grafana/grafana:develop
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ func init() {
|
|||||||
"AWS/ML": {"PredictCount", "PredictFailureCount"},
|
"AWS/ML": {"PredictCount", "PredictFailureCount"},
|
||||||
"AWS/OpsWorks": {"cpu_idle", "cpu_nice", "cpu_system", "cpu_user", "cpu_waitio", "load_1", "load_5", "load_15", "memory_buffers", "memory_cached", "memory_free", "memory_swap", "memory_total", "memory_used", "procs"},
|
"AWS/OpsWorks": {"cpu_idle", "cpu_nice", "cpu_system", "cpu_user", "cpu_waitio", "load_1", "load_5", "load_15", "memory_buffers", "memory_cached", "memory_free", "memory_swap", "memory_total", "memory_used", "procs"},
|
||||||
"AWS/Redshift": {"CPUUtilization", "DatabaseConnections", "HealthStatus", "MaintenanceMode", "NetworkReceiveThroughput", "NetworkTransmitThroughput", "PercentageDiskSpaceUsed", "ReadIOPS", "ReadLatency", "ReadThroughput", "WriteIOPS", "WriteLatency", "WriteThroughput"},
|
"AWS/Redshift": {"CPUUtilization", "DatabaseConnections", "HealthStatus", "MaintenanceMode", "NetworkReceiveThroughput", "NetworkTransmitThroughput", "PercentageDiskSpaceUsed", "ReadIOPS", "ReadLatency", "ReadThroughput", "WriteIOPS", "WriteLatency", "WriteThroughput"},
|
||||||
"AWS/RDS": {"BinLogDiskUsage", "CPUUtilization", "CPUCreditUsage", "CPUCreditBalance", "DatabaseConnections", "DiskQueueDepth", "FreeableMemory", "FreeStorageSpace", "ReplicaLag", "SwapUsage", "ReadIOPS", "WriteIOPS", "ReadLatency", "WriteLatency", "ReadThroughput", "WriteThroughput", "NetworkReceiveThroughput", "NetworkTransmitThroughput"},
|
"AWS/RDS": {"ActiveTransactions", "AuroraBinlogReplicaLag", "AuroraReplicaLag", "AuroraReplicaLagMaximum", "AuroraReplicaLagMinimum", "BinLogDiskUsage", "BlockedTransactions", "BufferCacheHitRatio", "CommitLatency", "CommitThroughput", "CPUCreditBalance", "CPUCreditUsage", "CPUUtilization", "DatabaseConnections", "DDLLatency", "DDLThroughput", "Deadlocks", "DiskQueueDepth", "DMLLatency", "DMLThroughput", "FailedSqlStatements", "FreeableMemory", "FreeStorageSpace", "LoginFailures", "NetworkReceiveThroughput", "NetworkTransmitThroughput", "ReadIOPS", "ReadLatency", "ReadThroughput", "ReplicaLag", "ResultSetCacheHitRatio", "SelectLatency", "SelectThroughput", "SwapUsage", "TotalConnections", "VolumeReadIOPS", "VolumeWriteIOPS", "WriteIOPS", "WriteLatency", "WriteThroughput"},
|
||||||
"AWS/Route53": {"HealthCheckStatus", "HealthCheckPercentageHealthy", "ConnectionTime", "SSLHandshakeTime", "TimeToFirstByte"},
|
"AWS/Route53": {"HealthCheckStatus", "HealthCheckPercentageHealthy", "ConnectionTime", "SSLHandshakeTime", "TimeToFirstByte"},
|
||||||
"AWS/S3": {"BucketSizeBytes", "NumberOfObjects"},
|
"AWS/S3": {"BucketSizeBytes", "NumberOfObjects"},
|
||||||
"AWS/SNS": {"NumberOfMessagesPublished", "PublishSize", "NumberOfNotificationsDelivered", "NumberOfNotificationsFailed"},
|
"AWS/SNS": {"NumberOfMessagesPublished", "PublishSize", "NumberOfNotificationsDelivered", "NumberOfNotificationsFailed"},
|
||||||
|
@ -53,7 +53,11 @@ func OAuthLogin(ctx *middleware.Context) {
|
|||||||
if code == "" {
|
if code == "" {
|
||||||
state := GenStateString()
|
state := GenStateString()
|
||||||
ctx.Session.Set(middleware.SESS_KEY_OAUTH_STATE, state)
|
ctx.Session.Set(middleware.SESS_KEY_OAUTH_STATE, state)
|
||||||
ctx.Redirect(connect.AuthCodeURL(state, oauth2.AccessTypeOnline))
|
if setting.OAuthService.OAuthInfos[name].HostedDomain == "" {
|
||||||
|
ctx.Redirect(connect.AuthCodeURL(state, oauth2.AccessTypeOnline))
|
||||||
|
}else{
|
||||||
|
ctx.Redirect(connect.AuthCodeURL(state, oauth2.SetParam("hd", setting.OAuthService.OAuthInfos[name].HostedDomain), oauth2.AccessTypeOnline));
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,7 +30,10 @@ func (db *Mysql) AutoIncrStr() string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (db *Mysql) BooleanStr(value bool) string {
|
func (db *Mysql) BooleanStr(value bool) string {
|
||||||
return strconv.FormatBool(value)
|
if value {
|
||||||
|
return "1"
|
||||||
|
}
|
||||||
|
return "0"
|
||||||
}
|
}
|
||||||
|
|
||||||
func (db *Mysql) SqlType(c *Column) string {
|
func (db *Mysql) SqlType(c *Column) string {
|
||||||
|
@ -6,6 +6,7 @@ type OAuthInfo struct {
|
|||||||
AuthUrl, TokenUrl string
|
AuthUrl, TokenUrl string
|
||||||
Enabled bool
|
Enabled bool
|
||||||
AllowedDomains []string
|
AllowedDomains []string
|
||||||
|
HostedDomain string
|
||||||
ApiUrl string
|
ApiUrl string
|
||||||
AllowSignup bool
|
AllowSignup bool
|
||||||
Name string
|
Name string
|
||||||
|
@ -12,6 +12,7 @@ import (
|
|||||||
type SocialGoogle struct {
|
type SocialGoogle struct {
|
||||||
*oauth2.Config
|
*oauth2.Config
|
||||||
allowedDomains []string
|
allowedDomains []string
|
||||||
|
hostedDomain string
|
||||||
apiUrl string
|
apiUrl string
|
||||||
allowSignup bool
|
allowSignup bool
|
||||||
}
|
}
|
||||||
|
@ -51,6 +51,7 @@ func NewOAuthService() {
|
|||||||
ApiUrl: sec.Key("api_url").String(),
|
ApiUrl: sec.Key("api_url").String(),
|
||||||
Enabled: sec.Key("enabled").MustBool(),
|
Enabled: sec.Key("enabled").MustBool(),
|
||||||
AllowedDomains: sec.Key("allowed_domains").Strings(" "),
|
AllowedDomains: sec.Key("allowed_domains").Strings(" "),
|
||||||
|
HostedDomain: sec.Key("hosted_domain").String(),
|
||||||
AllowSignup: sec.Key("allow_sign_up").MustBool(),
|
AllowSignup: sec.Key("allow_sign_up").MustBool(),
|
||||||
Name: sec.Key("name").MustString(name),
|
Name: sec.Key("name").MustString(name),
|
||||||
TlsClientCert: sec.Key("tls_client_cert").String(),
|
TlsClientCert: sec.Key("tls_client_cert").String(),
|
||||||
@ -92,6 +93,7 @@ func NewOAuthService() {
|
|||||||
SocialMap["google"] = &SocialGoogle{
|
SocialMap["google"] = &SocialGoogle{
|
||||||
Config: &config,
|
Config: &config,
|
||||||
allowedDomains: info.AllowedDomains,
|
allowedDomains: info.AllowedDomains,
|
||||||
|
hostedDomain: info.HostedDomain,
|
||||||
apiUrl: info.ApiUrl,
|
apiUrl: info.ApiUrl,
|
||||||
allowSignup: info.AllowSignup,
|
allowSignup: info.AllowSignup,
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,10 @@ export class DashboardSrv {
|
|||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.dash.title === 'New dashboard') {
|
||||||
|
return this.saveDashboardAs();
|
||||||
|
}
|
||||||
|
|
||||||
var clone = this.dash.getSaveModelClone();
|
var clone = this.dash.getSaveModelClone();
|
||||||
|
|
||||||
return this.backendSrv.saveDashboard(clone, options).then(data => {
|
return this.backendSrv.saveDashboard(clone, options).then(data => {
|
||||||
|
Loading…
Reference in New Issue
Block a user