2017-10-02 10:32:02 +02:00
package anonymize
import (
"crypto/tls"
2018-10-01 19:18:03 +02:00
"os"
2017-10-02 10:32:02 +02:00
"testing"
"time"
2018-07-31 19:28:03 +02:00
"github.com/containous/flaeg/parse"
2017-10-02 10:32:02 +02:00
"github.com/containous/traefik/acme"
2018-11-27 17:42:04 +01:00
"github.com/containous/traefik/config/static"
"github.com/containous/traefik/provider"
acmeprovider "github.com/containous/traefik/provider/acme"
"github.com/containous/traefik/provider/file"
2018-03-06 10:12:04 +01:00
traefiktls "github.com/containous/traefik/tls"
2018-11-27 17:42:04 +01:00
"github.com/containous/traefik/types"
2019-02-18 07:52:03 +01:00
assetfs "github.com/elazarl/go-bindata-assetfs"
2017-10-02 10:32:02 +02:00
)
func TestDo_globalConfiguration ( t * testing . T ) {
2018-11-27 17:42:04 +01:00
config := & static . Configuration { }
2017-10-02 10:32:02 +02:00
2018-11-27 17:42:04 +01:00
config . Global = & static . Global {
Debug : true ,
CheckNewVersion : true ,
SendAnonymousUsage : true ,
}
2017-10-02 10:32:02 +02:00
config . AccessLog = & types . AccessLog {
FilePath : "AccessLog FilePath" ,
Format : "AccessLog Format" ,
}
2018-11-27 17:42:04 +01:00
config . Log = & types . TraefikLog {
LogLevel : "LogLevel" ,
FilePath : "/foo/path" ,
Format : "json" ,
}
config . EntryPoints = static . EntryPoints {
2017-10-02 10:32:02 +02:00
"foo" : {
Address : "foo Address" ,
2018-11-27 17:42:04 +01:00
Transport : & static . EntryPointsTransport {
RespondingTimeouts : & static . RespondingTimeouts {
ReadTimeout : parse . Duration ( 111 * time . Second ) ,
WriteTimeout : parse . Duration ( 111 * time . Second ) ,
IdleTimeout : parse . Duration ( 111 * time . Second ) ,
} ,
} ,
2018-03-06 10:12:04 +01:00
TLS : & traefiktls . TLS {
2017-10-02 10:32:02 +02:00
MinVersion : "foo MinVersion" ,
CipherSuites : [ ] string { "foo CipherSuites 1" , "foo CipherSuites 2" , "foo CipherSuites 3" } ,
2018-03-06 10:12:04 +01:00
ClientCA : traefiktls . ClientCA {
2018-08-29 11:36:03 +02:00
Files : traefiktls . FilesOrContents { "foo ClientCAFiles 1" , "foo ClientCAFiles 2" , "foo ClientCAFiles 3" } ,
2017-11-10 10:30:04 +01:00
Optional : false ,
} ,
2017-10-02 10:32:02 +02:00
} ,
2018-11-27 17:42:04 +01:00
ProxyProtocol : & static . ProxyProtocol {
2017-10-10 14:50:03 +02:00
TrustedIPs : [ ] string { "127.0.0.1/32" , "192.168.0.1" } ,
} ,
2017-10-02 10:32:02 +02:00
} ,
"fii" : {
Address : "fii Address" ,
2018-11-27 17:42:04 +01:00
Transport : & static . EntryPointsTransport {
RespondingTimeouts : & static . RespondingTimeouts {
ReadTimeout : parse . Duration ( 111 * time . Second ) ,
WriteTimeout : parse . Duration ( 111 * time . Second ) ,
IdleTimeout : parse . Duration ( 111 * time . Second ) ,
} ,
} ,
2018-03-06 10:12:04 +01:00
TLS : & traefiktls . TLS {
2017-10-02 10:32:02 +02:00
MinVersion : "fii MinVersion" ,
CipherSuites : [ ] string { "fii CipherSuites 1" , "fii CipherSuites 2" , "fii CipherSuites 3" } ,
2018-03-06 10:12:04 +01:00
ClientCA : traefiktls . ClientCA {
2018-08-29 11:36:03 +02:00
Files : traefiktls . FilesOrContents { "fii ClientCAFiles 1" , "fii ClientCAFiles 2" , "fii ClientCAFiles 3" } ,
2017-11-10 10:30:04 +01:00
Optional : false ,
} ,
2017-10-02 10:32:02 +02:00
} ,
2018-11-27 17:42:04 +01:00
ProxyProtocol : & static . ProxyProtocol {
2017-10-10 14:50:03 +02:00
TrustedIPs : [ ] string { "127.0.0.1/32" , "192.168.0.1" } ,
} ,
2017-10-02 10:32:02 +02:00
} ,
}
config . ACME = & acme . ACME {
Email : "acme Email" ,
2018-03-05 20:54:04 +01:00
Domains : [ ] types . Domain {
2017-10-02 10:32:02 +02:00
{
Main : "Domains Main" ,
SANs : [ ] string { "Domains acme SANs 1" , "Domains acme SANs 2" , "Domains acme SANs 3" } ,
} ,
} ,
2018-11-14 10:18:03 +01:00
Storage : "Storage" ,
OnDemand : true ,
OnHostRule : true ,
CAServer : "CAServer" ,
EntryPoint : "EntryPoint" ,
DNSChallenge : & acmeprovider . DNSChallenge { Provider : "DNSProvider" } ,
ACMELogging : true ,
2017-10-02 10:32:02 +02:00
TLSConfig : & tls . Config {
InsecureSkipVerify : true ,
// ...
} ,
}
2018-11-27 17:42:04 +01:00
config . Providers = & static . Providers {
ProvidersThrottleDuration : parse . Duration ( 111 * time . Second ) ,
2017-10-02 10:32:02 +02:00
}
2018-11-27 17:42:04 +01:00
config . ServersTransport = & static . ServersTransport {
InsecureSkipVerify : true ,
RootCAs : traefiktls . FilesOrContents { "RootCAs 1" , "RootCAs 2" , "RootCAs 3" } ,
MaxIdleConnsPerHost : 111 ,
ForwardingTimeouts : & static . ForwardingTimeouts {
DialTimeout : parse . Duration ( 111 * time . Second ) ,
ResponseHeaderTimeout : parse . Duration ( 111 * time . Second ) ,
} ,
2017-10-02 10:32:02 +02:00
}
2018-11-27 17:42:04 +01:00
config . API = & static . API {
EntryPoint : "traefik" ,
Dashboard : true ,
2018-10-01 19:18:03 +02:00
Statistics : & types . Statistics {
2018-11-27 17:42:04 +01:00
RecentErrors : 111 ,
2018-10-01 19:18:03 +02:00
} ,
DashboardAssets : & assetfs . AssetFS {
Asset : func ( path string ) ( [ ] byte , error ) {
return nil , nil
} ,
AssetDir : func ( path string ) ( [ ] string , error ) {
return nil , nil
} ,
AssetInfo : func ( path string ) ( os . FileInfo , error ) {
return nil , nil
} ,
Prefix : "fii" ,
} ,
2018-11-27 17:42:04 +01:00
Middlewares : [ ] string { "first" , "second" } ,
2018-10-01 19:18:03 +02:00
}
2018-11-27 17:42:04 +01:00
config . Providers . File = & file . Provider {
2017-10-02 10:32:02 +02:00
BaseProvider : provider . BaseProvider {
Watch : true ,
Filename : "file Filename" ,
Constraints : types . Constraints {
{
Key : "file Constraints Key 1" ,
Regex : "file Constraints Regex 2" ,
MustMatch : true ,
} ,
{
Key : "file Constraints Key 1" ,
Regex : "file Constraints Regex 2" ,
MustMatch : true ,
} ,
} ,
2018-09-07 09:40:03 +02:00
Trace : true ,
2017-10-02 10:32:02 +02:00
DebugLogGeneratedTemplate : true ,
} ,
Directory : "file Directory" ,
}
2018-11-27 17:42:04 +01:00
// FIXME Test the other providers once they are migrated
2017-10-02 10:32:02 +02:00
cleanJSON , err := Do ( config , true )
if err != nil {
t . Fatal ( err , cleanJSON )
}
}