diff --git a/ecs-cli/Gopkg.lock b/ecs-cli/Gopkg.lock index 7a8faf6f7..2dd6cde6b 100644 --- a/ecs-cli/Gopkg.lock +++ b/ecs-cli/Gopkg.lock @@ -117,7 +117,8 @@ "cli/compose/types", "opts" ] - revision = "1872bd802c697f39eb783a9b7d25e60d6fe601d6" + revision = "7178075fdad68c953431cab5989dbe08bdcb94ac" + version = "v18.06.0-ce-rc3" [[projects]] name = "github.com/docker/docker" @@ -149,7 +150,8 @@ "pkg/term/windows", "pkg/urlutil" ] - revision = "92309e34e42aec3a0e041403bdd3c4fc0dc20269" + revision = "8e435b8279f2af3e0cebd73fa9e25ca1bb26004e" + source = "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/moby/moby.git" [[projects]] name = "github.com/docker/go-connections" @@ -331,6 +333,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "09cc6ede11a1723e900b53c27e98f3f8d462c0516dca8e5ce2f6a27bb01aba9c" + inputs-digest = "d59fab9628f333a133b15b020e103485bb80f1a12055a4dee8c6bcfc1d62c355" solver-name = "gps-cdcl" solver-version = 1 diff --git a/ecs-cli/Gopkg.toml b/ecs-cli/Gopkg.toml index b6de75b4a..a0a7d2afe 100644 --- a/ecs-cli/Gopkg.toml +++ b/ecs-cli/Gopkg.toml @@ -82,4 +82,9 @@ [[constraint]] name = "github.com/docker/cli" - revision = "1872bd802c697f39eb783a9b7d25e60d6fe601d6" + version = "18.06.0-ce" + +[[override]] + name = "github.com/docker/docker" + revision = "8e435b8279f2af3e0cebd73fa9e25ca1bb26004e" + source = "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/moby/moby.git" diff --git a/ecs-cli/vendor/github.com/docker/cli/AUTHORS b/ecs-cli/vendor/github.com/docker/cli/AUTHORS index 4678a7304..bc1edce71 100644 --- a/ecs-cli/vendor/github.com/docker/cli/AUTHORS +++ b/ecs-cli/vendor/github.com/docker/cli/AUTHORS @@ -17,6 +17,7 @@ Aidan Feldman Aidan Hobson Sayers AJ Bowen Akihiro Suda +Akim Demaille Alan Thompson Albert Callarisa Aleksa Sarai @@ -25,6 +26,7 @@ Alex Mavrogiannis Alexander Boyd Alexander Larsson Alexander Morozov +Alexander Ryabov Alexandre González Alfred Landrum Alicia Lauerman @@ -68,6 +70,7 @@ Bill Wang Bin Liu Bingshen Wang Boaz Shuster +Bogdan Anton Boris Pruessmann Bradley Cicenas Brandon Philips @@ -107,6 +110,7 @@ Christophe Robin Christophe Vidal Christopher Biscardi Christopher Jones +Christy Perez Chun Chen Clinton Kitson Coenraad Loubser @@ -137,6 +141,7 @@ Dattatraya Kumbhar Dave Goodchild Dave Henderson Dave Tucker +David Beitey David Calavera David Cramer David Dooling @@ -178,6 +183,7 @@ Eric-Olivier Lamey Erica Windisch Erik Hollensbe Erik St. Martin +Ethan Haynes Eugene Yakubovich Evan Allrich Evan Hazlett @@ -219,6 +225,7 @@ Harry Zhang He Simei Helen Xie Henning Sprang +Henry N Hernan Garcia Hongbin Lu Hu Keping @@ -234,6 +241,7 @@ Ilya Khlopotov Ilya Sotkov Isabel Jimenez Ivan Grcic +Ivan Markin Jacob Atzen Jacob Tomlinson Jaivish Kothari @@ -314,6 +322,7 @@ Kai Qiang Wu (Kennan) Kara Alexandra Kareem Khazem Karthik Nayak +Kat Samperi Katie McLaughlin Ke Xu Kei Ohmura @@ -324,6 +333,7 @@ Kenfe-Mickaël Laventure Kevin Burke Kevin Feyrer Kevin Kern +Kevin Kirsche Kevin Meredith Kevin Richardson khaled souf @@ -362,6 +372,7 @@ Luca Marturana Lucas Chan Luka Hartwig Lukasz Zajaczkowski +Lydell Manganti Lénaïc Huard Ma Shimiao Mabin @@ -380,6 +391,7 @@ Mark Oates Martin Mosegaard Amdisen Mary Anthony Mason Malone +Mateusz Major Matt Gucci Matt Robenolt Matthew Heon @@ -420,11 +432,13 @@ Moorthy RS Morgan Bauer Moysés Borges Mrunal Patel +muicoder Muthukumar R Máximo Cuadros Nace Oroz Nahum Shalman Nalin Dahyabhai +Nassim 'Nass' Eddequiouaq Natalie Parker Nate Brennand Nathan Hsieh @@ -456,7 +470,9 @@ Paul Weaver Pavel Pospisil Paweł Szczekutowicz Peeyush Gupta +Per Lundberg Peter Edge +Peter Hsu Peter Jaffe Peter Nagy Peter Salvatore @@ -468,6 +484,7 @@ pidster pixelistik Pratik Karki Prayag Verma +Preston Cowley Pure White Qiang Huang Qinglan Peng @@ -520,6 +537,7 @@ Shukui Yang Sian Lerk Lau Sidhartha Mani sidharthamani +Silvin Lubecki Simei He Simon Ferquel Sindhu S @@ -532,12 +550,13 @@ Srini Brahmaroutu Stefan S. Stefan Scherer Stefan Weil -Stephen Day +Stephen Day Stephen Rust Steve Durrheimer Steven Burgess Subhajit Ghosh Sun Jianbo +Sungwon Han Sven Dowideit Sylvain Baubeau Sébastien HOUZÉ @@ -546,6 +565,7 @@ TAGOMORI Satoshi Taylor Jones Thatcher Peskens Thomas Gazagnaire +Thomas Krzero Thomas Leonard Thomas Léveil Thomas Riccardi @@ -594,6 +614,7 @@ Wang Long Wang Ping Wang Xing Wang Yuexiao +Wataru Ishida Wayne Song Wen Cheng Ma Wenzhi Liang diff --git a/ecs-cli/vendor/github.com/docker/cli/cli/compose/interpolation/interpolation.go b/ecs-cli/vendor/github.com/docker/cli/cli/compose/interpolation/interpolation.go index a1e771986..d4f5c4a43 100644 --- a/ecs-cli/vendor/github.com/docker/cli/cli/compose/interpolation/interpolation.go +++ b/ecs-cli/vendor/github.com/docker/cli/cli/compose/interpolation/interpolation.go @@ -14,6 +14,8 @@ type Options struct { LookupValue LookupValue // TypeCastMapping maps key paths to functions to cast to a type TypeCastMapping map[Path]Cast + // Substitution function to use + Substitute func(string, template.Mapping) (string, error) } // LookupValue is a function which maps from variable names to values. @@ -33,6 +35,9 @@ func Interpolate(config map[string]interface{}, opts Options) (map[string]interf if opts.TypeCastMapping == nil { opts.TypeCastMapping = make(map[Path]Cast) } + if opts.Substitute == nil { + opts.Substitute = template.Substitute + } out := map[string]interface{}{} @@ -51,7 +56,7 @@ func recursiveInterpolate(value interface{}, path Path, opts Options) (interface switch value := value.(type) { case string: - newValue, err := template.Substitute(value, template.Mapping(opts.LookupValue)) + newValue, err := opts.Substitute(value, template.Mapping(opts.LookupValue)) if err != nil || newValue == value { return value, newPathError(path, err) } diff --git a/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/full-example.yml b/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/full-example.yml index 92a60f8e0..2dd5799a1 100644 --- a/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/full-example.yml +++ b/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/full-example.yml @@ -1,4 +1,4 @@ -version: "3.6" +version: "3.7" services: foo: @@ -29,6 +29,14 @@ services: command: bundle exec thin -p 3000 # command: ["bundle", "exec", "thin", "-p", "3000"] + configs: + - config1 + - source: config2 + target: /my_config + uid: '103' + gid: '103' + mode: 0440 + container_name: my-web-container depends_on: @@ -39,6 +47,13 @@ services: mode: replicated replicas: 6 labels: [FOO=BAR] + rollback_config: + parallelism: 3 + delay: 10s + failure_action: continue + monitor: 60s + max_failure_ratio: 0.3 + order: start-first update_config: parallelism: 3 delay: 10s @@ -193,7 +208,7 @@ services: ports: - 3000 - - "3000-3005" + - "3001-3005" - "8000:8000" - "9090-9091:8080-8081" - "49100:22" @@ -206,6 +221,14 @@ services: restart: always + secrets: + - secret1 + - source: secret2 + target: my_secret + uid: '103' + gid: '103' + mode: 0440 + security_opt: - label=level:s0:c100,c200 - label=type:svirt_apache_t @@ -255,6 +278,8 @@ services: size: 10000 working_dir: /code + x-bar: baz + x-foo: bar networks: # Entries can be null, which specifies simply that a network @@ -282,6 +307,9 @@ networks: - subnet: 2001:3984:3989::/64 # gateway: 2001:3984:3989::1 + labels: + foo: bar + external-network: # Specifies that a pre-existing network called "external-network" # can be referred to within this file as "external-network" @@ -292,6 +320,8 @@ networks: # can be referred to within this file as "other-external-network" external: name: my-cool-network + x-bar: baz + x-foo: bar volumes: # Entries can be null, which specifies simply that a volume @@ -306,6 +336,8 @@ volumes: # Values can be strings or numbers foo: "bar" baz: 1 + labels: + foo: bar another-volume: name: "user_specified_name" @@ -333,3 +365,40 @@ volumes: # can be referred to within this file as "external-volume3" name: this-is-volume3 external: true + x-bar: baz + x-foo: bar + +configs: + config1: + file: ./config_data + labels: + foo: bar + config2: + external: + name: my_config + config3: + external: true + config4: + name: foo + x-bar: baz + x-foo: bar + +secrets: + secret1: + file: ./secret_data + labels: + foo: bar + secret2: + external: + name: my_secret + secret3: + external: true + secret4: + name: bar + x-bar: baz + x-foo: bar +x-bar: baz +x-foo: bar +x-nested: + bar: baz + foo: bar diff --git a/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/interpolate.go b/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/interpolate.go index 5c3e1b8b0..888d29b58 100644 --- a/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/interpolate.go +++ b/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/interpolate.go @@ -64,11 +64,6 @@ func toBoolean(value string) (interface{}, error) { } } -func interpolateConfig(configDict map[string]interface{}, lookupEnv interp.LookupValue) (map[string]interface{}, error) { - return interp.Interpolate( - configDict, - interp.Options{ - LookupValue: lookupEnv, - TypeCastMapping: interpolateTypeCastMapping, - }) +func interpolateConfig(configDict map[string]interface{}, opts interp.Options) (map[string]interface{}, error) { + return interp.Interpolate(configDict, opts) } diff --git a/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/loader.go b/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/loader.go index 12bdf4b12..f11619b98 100644 --- a/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/loader.go +++ b/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/loader.go @@ -8,6 +8,7 @@ import ( "sort" "strings" + interp "github.com/docker/cli/cli/compose/interpolation" "github.com/docker/cli/cli/compose/schema" "github.com/docker/cli/cli/compose/template" "github.com/docker/cli/cli/compose/types" @@ -22,6 +23,16 @@ import ( yaml "gopkg.in/yaml.v2" ) +// Options supported by Load +type Options struct { + // Skip schema validation + SkipValidation bool + // Skip interpolation + SkipInterpolation bool + // Interpolation options + Interpolate *interp.Options +} + // ParseYAML reads the bytes from a file, parses the bytes into a mapping // structure, and returns it. func ParseYAML(source []byte) (map[string]interface{}, error) { @@ -41,12 +52,25 @@ func ParseYAML(source []byte) (map[string]interface{}, error) { } // Load reads a ConfigDetails and returns a fully loaded configuration -func Load(configDetails types.ConfigDetails) (*types.Config, error) { +func Load(configDetails types.ConfigDetails, options ...func(*Options)) (*types.Config, error) { if len(configDetails.ConfigFiles) < 1 { return nil, errors.Errorf("No files specified") } + opts := &Options{ + Interpolate: &interp.Options{ + Substitute: template.Substitute, + LookupValue: configDetails.LookupEnv, + TypeCastMapping: interpolateTypeCastMapping, + }, + } + + for _, op := range options { + op(opts) + } + configs := []*types.Config{} + var err error for _, file := range configDetails.ConfigFiles { configDict := file.Config @@ -62,14 +86,17 @@ func Load(configDetails types.ConfigDetails) (*types.Config, error) { return nil, err } - var err error - configDict, err = interpolateConfig(configDict, configDetails.LookupEnv) - if err != nil { - return nil, err + if !opts.SkipInterpolation { + configDict, err = interpolateConfig(configDict, *opts.Interpolate) + if err != nil { + return nil, err + } } - if err := schema.Validate(configDict, configDetails.Version); err != nil { - return nil, err + if !opts.SkipValidation { + if err := schema.Validate(configDict, configDetails.Version); err != nil { + return nil, err + } } cfg, err := loadSections(configDict, configDetails) @@ -98,7 +125,9 @@ func validateForbidden(configDict map[string]interface{}) error { func loadSections(config map[string]interface{}, configDetails types.ConfigDetails) (*types.Config, error) { var err error - cfg := types.Config{} + cfg := types.Config{ + Version: schema.Version(config), + } var loaders = []struct { key string @@ -145,6 +174,7 @@ func loadSections(config map[string]interface{}, configDetails types.ConfigDetai return nil, err } } + cfg.Extras = getExtras(config) return &cfg, nil } @@ -359,10 +389,35 @@ func LoadService(name string, serviceDict map[string]interface{}, workingDir str return nil, err } - resolveVolumePaths(serviceConfig.Volumes, workingDir, lookupEnv) + if err := resolveVolumePaths(serviceConfig.Volumes, workingDir, lookupEnv); err != nil { + return nil, err + } + + serviceConfig.Extras = getExtras(serviceDict) + return serviceConfig, nil } +func loadExtras(name string, source map[string]interface{}) map[string]interface{} { + if dict, ok := source[name].(map[string]interface{}); ok { + return getExtras(dict) + } + return nil +} + +func getExtras(dict map[string]interface{}) map[string]interface{} { + extras := map[string]interface{}{} + for key, value := range dict { + if strings.HasPrefix(key, "x-") { + extras[key] = value + } + } + if len(extras) == 0 { + return nil + } + return extras +} + func updateEnvironment(environment map[string]*string, vars map[string]*string, lookupEnv template.Mapping) { for k, v := range vars { interpolatedV, ok := lookupEnv(k) @@ -398,12 +453,16 @@ func resolveEnvironment(serviceConfig *types.ServiceConfig, workingDir string, l return nil } -func resolveVolumePaths(volumes []types.ServiceVolumeConfig, workingDir string, lookupEnv template.Mapping) { +func resolveVolumePaths(volumes []types.ServiceVolumeConfig, workingDir string, lookupEnv template.Mapping) error { for i, volume := range volumes { if volume.Type != "bind" { continue } + if volume.Source == "" { + return errors.New(`invalid mount config for type "bind": field Source must not be empty`) + } + filePath := expandUser(volume.Source, lookupEnv) // Check for a Unix absolute path first, to handle a Windows client // with a Unix daemon. This handles a Windows client connecting to a @@ -416,6 +475,7 @@ func resolveVolumePaths(volumes []types.ServiceVolumeConfig, workingDir string, volume.Source = filePath volumes[i] = volume } + return nil } // TODO: make this more robust @@ -470,6 +530,7 @@ func LoadNetworks(source map[string]interface{}, version string) (map[string]typ case network.Name == "": network.Name = name } + network.Extras = loadExtras(name, source) networks[name] = network } return networks, nil @@ -512,6 +573,7 @@ func LoadVolumes(source map[string]interface{}, version string) (map[string]type case volume.Name == "": volume.Name = name } + volume.Extras = loadExtras(name, source) volumes[name] = volume } return volumes, nil @@ -529,7 +591,9 @@ func LoadSecrets(source map[string]interface{}, details types.ConfigDetails) (ma if err != nil { return nil, err } - secrets[name] = types.SecretConfig(obj) + secretConfig := types.SecretConfig(obj) + secretConfig.Extras = loadExtras(name, source) + secrets[name] = secretConfig } return secrets, nil } @@ -546,7 +610,9 @@ func LoadConfigObjs(source map[string]interface{}, details types.ConfigDetails) if err != nil { return nil, err } - configs[name] = types.ConfigObjConfig(obj) + configConfig := types.ConfigObjConfig(obj) + configConfig.Extras = loadExtras(name, source) + configs[name] = configConfig } return configs, nil } diff --git a/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/merge.go b/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/merge.go index a6b7269b9..24b74ffbc 100644 --- a/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/merge.go +++ b/ecs-cli/vendor/github.com/docker/cli/cli/compose/loader/merge.go @@ -61,7 +61,7 @@ func mergeServices(base, override []types.ServiceConfig) ([]types.ServiceConfig, } for name, overrideService := range overrideServices { if baseService, ok := baseServices[name]; ok { - if err := mergo.Merge(&baseService, &overrideService, mergo.WithOverride, mergo.WithTransformers(specials)); err != nil { + if err := mergo.Merge(&baseService, &overrideService, mergo.WithAppendSlice, mergo.WithOverride, mergo.WithTransformers(specials)); err != nil { return base, errors.Wrapf(err, "cannot merge service %s", name) } baseServices[name] = baseService @@ -213,21 +213,21 @@ func mapByName(services []types.ServiceConfig) map[string]types.ServiceConfig { } func mergeVolumes(base, override map[string]types.VolumeConfig) (map[string]types.VolumeConfig, error) { - err := mergo.Map(&base, &override) + err := mergo.Map(&base, &override, mergo.WithOverride) return base, err } func mergeNetworks(base, override map[string]types.NetworkConfig) (map[string]types.NetworkConfig, error) { - err := mergo.Map(&base, &override) + err := mergo.Map(&base, &override, mergo.WithOverride) return base, err } func mergeSecrets(base, override map[string]types.SecretConfig) (map[string]types.SecretConfig, error) { - err := mergo.Map(&base, &override) + err := mergo.Map(&base, &override, mergo.WithOverride) return base, err } func mergeConfigs(base, override map[string]types.ConfigObjConfig) (map[string]types.ConfigObjConfig, error) { - err := mergo.Map(&base, &override) + err := mergo.Map(&base, &override, mergo.WithOverride) return base, err } diff --git a/ecs-cli/vendor/github.com/docker/cli/cli/compose/schema/bindata.go b/ecs-cli/vendor/github.com/docker/cli/cli/compose/schema/bindata.go index 56a0bfbf1..9ec4891fa 100644 --- a/ecs-cli/vendor/github.com/docker/cli/cli/compose/schema/bindata.go +++ b/ecs-cli/vendor/github.com/docker/cli/cli/compose/schema/bindata.go @@ -1,375 +1,520 @@ -// Code generated by go-bindata. -// sources: -// data/config_schema_v3.0.json -// data/config_schema_v3.1.json -// data/config_schema_v3.2.json -// data/config_schema_v3.3.json -// data/config_schema_v3.4.json -// data/config_schema_v3.5.json -// data/config_schema_v3.6.json -// DO NOT EDIT! +// Code generated by "esc -o bindata.go -pkg schema -private -modtime=1518458244 data"; DO NOT EDIT. package schema import ( "bytes" "compress/gzip" - "fmt" - "io" + "encoding/base64" "io/ioutil" + "net/http" "os" - "path/filepath" - "strings" + "path" + "sync" "time" ) -func bindataRead(data []byte, name string) ([]byte, error) { - gz, err := gzip.NewReader(bytes.NewBuffer(data)) - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } +type _escLocalFS struct{} - var buf bytes.Buffer - _, err = io.Copy(&buf, gz) - clErr := gz.Close() +var _escLocal _escLocalFS - if err != nil { - return nil, fmt.Errorf("Read %q: %v", name, err) - } - if clErr != nil { - return nil, err - } +type _escStaticFS struct{} - return buf.Bytes(), nil -} - -type asset struct { - bytes []byte - info os.FileInfo -} - -type bindataFileInfo struct { - name string - size int64 - mode os.FileMode - modTime time.Time -} +var _escStatic _escStaticFS -func (fi bindataFileInfo) Name() string { - return fi.name -} -func (fi bindataFileInfo) Size() int64 { - return fi.size -} -func (fi bindataFileInfo) Mode() os.FileMode { - return fi.mode -} -func (fi bindataFileInfo) ModTime() time.Time { - return fi.modTime -} -func (fi bindataFileInfo) IsDir() bool { - return false -} -func (fi bindataFileInfo) Sys() interface{} { - return nil +type _escDirectory struct { + fs http.FileSystem + name string } -var _dataConfig_schema_v30Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5a\x4b\x8f\xdb\x38\x12\xbe\xfb\x57\x08\x4a\x6e\x71\x77\x07\xd8\x60\x81\xcd\x6d\x8f\x7b\xda\x39\x4f\x43\x11\x68\xa9\x6c\x33\x4d\x91\x4c\x91\x72\xda\x09\xfc\xdf\x07\xd4\xcb\x14\x4d\x8a\xb2\xad\x3c\x30\x98\x53\xb7\xc5\xaa\x62\xbd\xf8\x55\xb1\xa4\xef\xab\x24\x49\xdf\xaa\x62\x0f\x15\x49\x3f\x26\xe9\x5e\x6b\xf9\xf1\xe9\xe9\xb3\x12\xfc\xa1\x7d\xfa\x28\x70\xf7\x54\x22\xd9\xea\x87\xf7\x1f\x9e\xda\x67\x6f\xd2\xb5\xe1\xa3\xa5\x61\x29\x04\xdf\xd2\x5d\xde\xae\xe4\x87\x7f\x3d\xbe\x7f\x34\xec\x2d\x89\x3e\x4a\x30\x44\x62\xf3\x19\x0a\xdd\x3e\x43\xf8\x52\x53\x04\xc3\xfc\x9c\x1e\x00\x15\x15\x3c\xcd\xd6\x2b\xb3\x26\x51\x48\x40\x4d\x41\xa5\x1f\x13\xa3\x5c\x92\x0c\x24\xfd\x03\x4b\xac\xd2\x48\xf9\x2e\x6d\x1e\x9f\x1a\x09\x49\x92\x2a\xc0\x03\x2d\x2c\x09\x83\xaa\x6f\x9e\xce\xf2\x9f\x06\xb2\xb5\x2b\xd5\x52\xb6\x79\x2e\x89\xd6\x80\xfc\x8f\x4b\xdd\x9a\xe5\x4f\xcf\xe4\xe1\xdb\x7f\x1f\xfe\x7c\xff\xf0\x9f\xc7\xfc\x21\x7b\xf7\x76\xb4\x6c\xfc\x8b\xb0\x6d\xb7\x2f\x61\x4b\x39\xd5\x54\xf0\x61\xff\x74\xa0\x3c\x75\xff\x9d\x86\x8d\x49\x59\x36\xc4\x84\x8d\xf6\xde\x12\xa6\x60\x6c\x33\x07\xfd\x55\xe0\x4b\xcc\xe6\x81\xec\x17\xd9\xdc\xed\xef\xb1\x79\x6c\xce\x41\xb0\xba\x8a\x46\xb0\xa7\xfa\x45\xc6\xb4\xdb\xdf\x17\xbf\x55\x6f\xf4\x24\x6d\x4b\x61\xed\xdd\x28\x38\xca\x76\x9f\xab\x7c\xd9\x16\xf6\xd5\xe0\xac\x80\x97\x4a\x90\x4c\x1c\xcd\xb3\x80\x3f\x5a\x82\x0a\xb8\x4e\x07\x17\x24\x49\xba\xa9\x29\x2b\x5d\x8f\x0a\x0e\xff\x37\x22\x9e\xad\x87\x49\xf2\xdd\x3d\xd8\x96\x9c\x66\x7d\xf4\x2b\x1c\xf0\x61\x3d\x60\xcb\xb0\x5e\x08\xae\xe1\x55\x37\x46\x4d\x6f\xdd\xba\x40\x14\x2f\x80\x5b\xca\x60\x2e\x07\xc1\x9d\x9a\x70\x19\xa3\x4a\xe7\x02\xf3\x92\x16\x3a\x3d\x39\xec\x17\xf2\xe2\xf9\x34\xb0\x5a\xbf\xb2\x95\x47\x60\x5a\x10\x99\x93\xb2\x1c\xd9\x41\x10\xc9\x31\x5d\x27\x29\xd5\x50\x29\xbf\x89\x49\x5a\x73\xfa\xa5\x86\xff\x75\x24\x1a\x6b\x70\xe5\x96\x28\xe4\xf2\x82\x77\x28\x6a\x99\x4b\x82\x26\xc1\xa6\xdd\x9f\x16\xa2\xaa\x08\x5f\x2a\xeb\xae\xb1\x63\x86\xe7\x05\xd7\x84\x72\xc0\x9c\x93\x2a\x96\x48\xe6\xd4\x01\x2f\x55\xde\xd6\xbf\xc9\x34\xda\xe6\x2d\xbf\x72\x04\x0c\xc5\x70\xd1\x78\x94\x7c\x2a\xb1\x5b\x31\x26\xb5\x8d\x6e\xa9\xc3\x98\x2b\x20\x58\xec\x6f\xe4\x17\x15\xa1\x7c\x8e\xef\x80\x6b\x3c\x4a\x41\xdb\x7c\xf9\xed\x12\x01\xf8\x21\x1f\xb0\xe4\x6a\x37\x00\x3f\x50\x14\xbc\xea\x4f\xc3\x1c\x80\x19\x40\xde\xf0\xbf\x4a\xa1\xc0\x75\x8c\x63\xa0\xbd\x34\x98\x3a\xf2\x49\xcf\xf1\xdc\x1b\xbe\x4e\x52\x5e\x57\x1b\x40\xd3\xd2\x8d\x28\xb7\x02\x2b\x62\x94\xed\xf7\xb6\x96\x47\x9e\xf6\x64\x9e\xed\x40\xdb\x06\x53\xd6\x09\xcb\x19\xe5\x2f\xcb\xa7\x38\xbc\x6a\x24\xf9\x5e\x28\x3d\x1f\xc3\x2d\xf6\x3d\x10\xa6\xf7\xc5\x1e\x8a\x97\x09\x76\x9b\x6a\xc4\x2d\x94\x9e\x93\xe4\xb4\x22\xbb\x38\x91\x2c\x62\x24\x8c\x6c\x80\xdd\x64\xe7\xa2\xce\xb7\xc4\x8a\xdd\xce\x90\x86\x32\xee\xa2\x73\xe9\x96\x63\x35\xbf\x44\x7a\x00\x9c\x5b\xc0\x85\x3c\x37\x5c\xee\x62\xbc\x01\x49\xe2\xdd\xe7\x88\xf4\xd3\x63\xdb\x7c\x4e\x9c\xaa\xe6\x3f\xc6\xd2\xcc\x6d\x17\x12\xa7\xee\xfb\x9e\x38\x16\xce\x6b\x28\x46\x51\xa9\x48\x61\xfa\x06\x04\x15\x88\xeb\x99\xb4\x6b\xf6\xf3\x4a\x94\xa1\x04\xbd\x20\x76\x7d\x13\x44\xea\xab\x0b\x61\x72\x53\xff\x38\x2b\x74\xd1\x0b\x44\xc4\x9a\x90\x7a\x73\xd5\x3c\xab\x1b\x4f\xb1\x86\x8e\x30\x4a\x14\xc4\x0f\x7b\xd0\x91\x23\x69\x54\x1e\x3e\xcc\xcc\x09\x1f\xef\xbf\x27\x79\x03\xac\x41\x99\xf3\x7b\xe4\x88\xa8\xb3\x2a\xcd\x71\xf3\x29\x92\x45\x4e\xdb\x0f\x6e\xe1\x25\x2d\xc3\x58\xd1\x20\x84\x7d\xc0\xa4\x40\x7d\x71\xba\x7e\x4e\xb9\x6f\xb7\xbe\xbb\xda\x4b\xa4\x07\xca\x60\x07\xe3\x5b\xcb\x46\x08\x06\x84\x8f\xa0\x07\x81\x94\xb9\xe0\xec\x38\x83\x52\x69\x82\xd1\x0b\x85\x82\xa2\x46\xaa\x8f\xb9\x90\x7a\xf1\x3e\x43\xed\xab\x5c\xd1\x6f\x30\x8e\xe6\x19\xef\x3b\x41\xd9\x88\xe7\xa8\x0a\x7d\x5b\xbd\x56\xba\xa4\x3c\x17\x12\x78\xd4\x3b\x4a\x0b\x99\xef\x90\x14\x90\x4b\x40\x2a\x4a\x9f\x81\x6b\x3b\xd6\x65\x8d\xc4\xec\x7f\x29\x46\xd1\x1d\x27\x2c\xe6\x68\x5d\xc9\xed\x8d\x17\x0b\xad\xe3\xe1\xae\x19\xad\x68\xf8\x1c\x78\x00\x76\x46\x0d\x68\xf1\xdf\x0f\xfb\x13\x90\x7f\xd6\x94\x72\x0d\x3b\x40\x1f\x52\x4e\x74\x1d\xd3\x4d\xc7\x8c\x6e\x63\x4f\x70\x1c\xd0\x09\x3d\x1a\x06\x25\xb6\xda\xcf\xe0\xeb\x45\xbc\x7a\x8d\x86\xbf\x8d\xbc\x75\xa7\x48\xe6\xa5\xbf\x0a\xce\x5d\x35\xb2\x20\xa2\x9e\xbc\x88\x5a\xab\x68\x63\xd8\xd0\x70\x35\xd5\xd4\x0c\xa4\xd6\x14\x73\x51\xbc\x30\x8d\x92\x39\x04\x25\xf5\x6b\xbb\x72\x2c\xbb\x62\x8e\xec\xdc\x59\x7a\x01\xbe\x89\xa2\x4d\x1a\x9d\xc0\x4e\x4f\x37\x3b\xa2\xe0\xe4\x91\x2a\xb2\x71\x66\x6e\xbe\xc3\x6d\xb2\x11\x0f\x71\x8c\x41\xd0\x48\x9d\xb8\x74\x68\x3b\xc2\x13\x50\xbf\xe7\xe0\x40\xd3\x0a\x44\xed\xaf\x59\x2b\x3b\xbf\x3b\xa6\xd4\x9a\xcc\x46\x82\x6a\x51\xba\x31\x7d\x1e\x82\xda\xf7\x17\xd1\xc0\xcd\x39\x24\x08\x92\xd1\x82\xa8\x18\x10\xdd\x71\x41\xad\x65\x49\x34\xe4\xed\x8b\xaa\xab\xa0\x7f\x02\xf3\x25\x41\xc2\x18\x30\xaa\xaa\x39\x18\x9a\x96\xc0\xc8\xf1\xa6\xf2\xd9\xb0\x6f\x09\x65\x35\x42\x4e\x0a\xdd\xbd\x0b\x8b\xe4\x5c\x5a\x09\x4e\xb5\xf0\x22\xc4\xbc\x2d\x2b\xf2\x9a\xf7\xdb\x36\x24\xde\x03\x13\x6c\xeb\xe6\xde\x2d\xad\x4c\x50\xa2\xc6\xe2\xc2\xd9\x37\x87\xe8\x5c\xeb\x03\x19\xd3\xef\x78\x61\x3a\x82\x32\x48\x32\x5c\xfd\xa3\xfc\x8b\x7a\xc1\x34\xa4\xb9\x14\x8c\x16\xc7\xa5\x5c\x51\x08\xde\xea\x31\x27\x73\xee\x4c\x55\x93\x37\xa6\x67\xaa\xa4\x8e\x9e\xea\x86\xe1\x2b\xe5\xa5\xf8\x7a\xc5\x86\xcb\x79\x5b\x32\x52\x80\x03\x8c\xf7\x3a\x5a\x69\x24\x94\xeb\xab\xeb\xfe\xbd\x66\xdd\x51\xf6\x87\x44\x8e\x94\x87\x81\x2e\xfe\xca\x35\x50\x12\x0a\x59\x47\x07\x47\x15\x54\x02\xbd\x09\xb8\xc0\x2b\xf2\x98\x89\x3d\xd9\x02\xe5\x6f\xd6\xa4\xb1\xa3\x32\x17\xcb\xc5\xaf\x25\xf1\x69\x62\x16\x6f\x8a\xa9\x24\xd5\x52\xa7\x63\xf6\xec\x35\xf5\x16\xeb\x64\x7a\x66\x91\x84\xe7\x16\x31\xad\xe3\xba\x77\x14\xaa\xde\x70\x98\x6c\xbd\x2c\x7f\xfa\x5e\x08\xcf\xbf\xcf\x9c\xc2\xb7\x97\xfb\x40\xaf\x7f\x6d\x12\x88\xea\xf3\xd0\x5c\xaf\x07\x5f\x65\xb3\x43\x1c\x7c\x67\xb1\x9c\xfe\x4d\x9f\xef\xce\x12\x7c\x17\x82\x2b\x5b\xc6\x3b\xc0\xa5\xfb\x16\x24\x82\x2d\x1d\xd5\x3f\xd0\xf2\x37\x49\xc4\x9f\x97\x5f\xce\xd8\xcb\xca\xb3\xcb\x1b\xe9\x54\x4a\xcc\x9e\xf7\x77\x1c\xd9\x58\x0d\x97\xcc\xf3\x49\xde\x18\x96\xa7\xc6\x1c\x3d\x49\x60\xfe\xeb\x6c\xda\x39\x71\xda\xf2\x05\x33\xfc\xf1\xdd\x44\xf1\x99\x7a\x2f\xf7\x83\x50\x7b\x81\x11\x92\x3f\xa6\x4e\xc7\xda\x7b\xf7\xf2\xbb\xb2\x00\xa8\x59\xfc\x17\x5f\x99\x19\x3b\xf9\xf1\x62\x62\xf2\x7d\x3c\x06\x6c\xbf\x10\xcb\x46\xfe\x71\x48\xda\xb7\xdc\x16\xa4\x64\x76\x13\x1f\x0a\xa3\xf7\xdb\x33\x77\x08\xd9\x7f\x03\x96\xf9\xe1\x6a\x65\xff\x6d\xbe\xd7\x5b\x9d\x56\x7f\x05\x00\x00\xff\xff\xef\x66\x29\x26\x37\x2b\x00\x00") +type _escFile struct { + compressed string + size int64 + modtime int64 + local string + isDir bool -func dataConfig_schema_v30JsonBytes() ([]byte, error) { - return bindataRead( - _dataConfig_schema_v30Json, - "data/config_schema_v3.0.json", - ) + once sync.Once + data []byte + name string } -func dataConfig_schema_v30Json() (*asset, error) { - bytes, err := dataConfig_schema_v30JsonBytes() - if err != nil { - return nil, err +func (_escLocalFS) Open(name string) (http.File, error) { + f, present := _escData[path.Clean(name)] + if !present { + return nil, os.ErrNotExist } - - info := bindataFileInfo{name: "data/config_schema_v3.0.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil + return os.Open(f.local) } -var _dataConfig_schema_v31Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x1a\xcb\x8e\xdb\x36\xf0\xee\xaf\x10\x94\xdc\xe2\xdd\x4d\xd1\xa0\x40\x73\xeb\xb1\xa7\xf6\xdc\x85\x23\xd0\xd2\x58\x66\x96\x22\x19\x92\x72\xd6\x09\xfc\xef\x05\xf5\x32\x45\x91\x22\x6d\x2b\xd9\x45\xd1\xd3\xae\xc5\x99\xe1\xbc\x67\x38\xe4\xf7\x55\x92\xa4\x6f\x65\xbe\x87\x0a\xa5\x1f\x93\x74\xaf\x14\xff\xf8\xf0\xf0\x59\x32\x7a\xd7\x7e\xbd\x67\xa2\x7c\x28\x04\xda\xa9\xbb\xf7\x1f\x1e\xda\x6f\x6f\xd2\xb5\xc6\xc3\x85\x46\xc9\x19\xdd\xe1\x32\x6b\x57\xb2\xc3\xaf\xf7\xbf\xdc\x6b\xf4\x16\x44\x1d\x39\x68\x20\xb6\xfd\x0c\xb9\x6a\xbf\x09\xf8\x52\x63\x01\x1a\xf9\x31\x3d\x80\x90\x98\xd1\x74\xb3\x5e\xe9\x35\x2e\x18\x07\xa1\x30\xc8\xf4\x63\xa2\x99\x4b\x92\x01\xa4\xff\x60\x90\x95\x4a\x60\x5a\xa6\xcd\xe7\x53\x43\x21\x49\x52\x09\xe2\x80\x73\x83\xc2\xc0\xea\x9b\x87\x33\xfd\x87\x01\x6c\x6d\x53\x35\x98\x6d\xbe\x73\xa4\x14\x08\xfa\xf7\x94\xb7\x66\xf9\xd3\x23\xba\xfb\xf6\xc7\xdd\x3f\xef\xef\x7e\xbf\xcf\xee\x36\xef\xde\x8e\x96\xb5\x7e\x05\xec\xda\xed\x0b\xd8\x61\x8a\x15\x66\x74\xd8\x3f\x1d\x20\x4f\xdd\x7f\xa7\x61\x63\x54\x14\x0d\x30\x22\xa3\xbd\x77\x88\x48\x18\xcb\x4c\x41\x7d\x65\xe2\x29\x24\xf3\x00\xf6\x42\x32\x77\xfb\x3b\x64\x1e\x8b\x73\x60\xa4\xae\x82\x16\xec\xa1\x5e\x48\x98\x76\xfb\x65\xec\x27\x21\x17\xa0\xc2\x2e\xdb\x42\xbd\x98\xc7\xea\xed\x6f\x13\x78\xd5\x0b\x3d\x0b\xdb\x42\x18\x7b\x37\x0c\x8e\xc2\xdb\xa5\x2a\x57\x78\xf9\x75\x35\x28\xcb\xa3\xa5\x02\x38\x61\x47\xfd\xcd\xa3\x8f\x16\xa0\x02\xaa\xd2\x41\x05\x49\x92\x6e\x6b\x4c\x0a\x5b\xa3\x8c\xc2\x5f\x9a\xc4\xa3\xf1\x31\x49\xbe\xdb\x99\xcc\xa0\xd3\xac\x8f\x7e\xf9\x0d\x3e\xac\x7b\x64\x19\xd6\x73\x46\x15\x3c\xab\x46\xa8\xf9\xad\x5b\x15\xb0\xfc\x09\xc4\x0e\x13\x88\xc5\x40\xa2\x94\x33\x2a\x23\x58\xaa\x8c\x89\xac\xc0\xb9\x4a\x4f\x16\xfa\x84\x5e\xd8\x9f\x06\x54\xe3\xd7\x66\xe5\x20\x98\xe6\x88\x67\xa8\x28\x46\x72\x20\x21\xd0\x31\x5d\x27\x29\x56\x50\x49\xb7\x88\x49\x5a\x53\xfc\xa5\x86\x3f\x3b\x10\x25\x6a\xb0\xe9\x16\x82\xf1\xe5\x09\x97\x82\xd5\x3c\xe3\x48\x68\x07\x9b\x57\x7f\x9a\xb3\xaa\x42\x74\x29\xaf\xbb\x44\x8e\x08\xcd\x33\xaa\x10\xa6\x20\x32\x8a\xaa\x90\x23\xe9\xa8\x03\x5a\xc8\xac\x2d\xf8\xb3\x6e\xb4\xcb\x5a\x7c\x69\x11\x18\xaa\xff\xa2\xf6\x28\xe8\x9c\x63\xb7\x64\xb4\x6b\x6b\xde\x52\x0b\x31\x93\x80\x44\xbe\xbf\x12\x9f\x55\x08\xd3\x18\xdd\x01\x55\xe2\xc8\x19\x6e\xfd\xe5\xd5\x39\x02\xd0\x43\x36\xe4\x92\x8b\xd5\x00\xf4\x80\x05\xa3\x55\x1f\x0d\x31\x09\x66\x48\xf2\x1a\xff\x99\x33\x09\xb6\x62\x2c\x01\xcd\xa5\x41\xd4\x91\x4e\x7a\x8c\xc7\x5e\xf0\x75\x92\xd2\xba\xda\x82\xd0\x3d\xec\x08\x72\xc7\x44\x85\x34\xb3\xfd\xde\xc6\xf2\x48\xd3\x0e\xcf\x33\x15\x68\xca\xa0\xcb\x3a\x22\x19\xc1\xf4\x69\x79\x17\x87\x67\x25\x50\xb6\x67\x52\xc5\xe7\x70\x03\x7d\x0f\x88\xa8\x7d\xbe\x87\xfc\x69\x06\xdd\x84\x1a\x61\x33\xa9\x62\x9c\x1c\x57\xa8\x0c\x03\xf1\x3c\x04\x42\xd0\x16\xc8\x55\x72\x2e\xaa\x7c\x83\x2c\x2b\x4b\x0d\xea\xf3\xb8\x49\xe7\xd2\x2d\x87\x6a\x7e\x21\xf0\x01\x44\x6c\x01\x67\xfc\xdc\x70\xd9\x8b\xe1\x06\x24\x09\x77\x9f\x23\xd0\x4f\xf7\x6d\xf3\x39\x13\x55\xcd\x7f\x84\xa4\x1b\xbb\x5d\x48\xac\xba\xef\xfa\x62\x49\x18\xd7\x50\x8c\xac\x52\xa1\x5c\xf7\x0d\x02\xa4\xc7\xae\x67\xd0\xee\x74\x93\x55\xac\xf0\x39\xe8\x04\xd8\xd6\x8d\x37\x53\x5f\x5c\x08\x93\xab\xfa\xc7\x28\xd3\x05\x0f\x10\x01\x69\x7c\xec\xc5\xb2\x79\x66\x37\xec\x62\x0d\x1c\x22\x18\x49\x08\x07\xbb\x57\x91\x23\x6a\x98\x1f\x3e\x44\xfa\x84\x0b\xf7\xb7\x59\x5c\x0f\xaa\x97\x66\x7c\x8f\x1c\x20\x75\x66\xa5\x09\x37\x17\x23\x9b\x40\xb4\xfd\xe0\x16\x9e\xe3\xc2\x9f\x2b\x9a\x0c\x61\x06\x18\x67\x42\x4d\xa2\xeb\xe7\x94\xfb\x76\xeb\x9b\xab\x3d\x17\xf8\x80\x09\x94\x30\x3e\xb5\x6c\x19\x23\x80\xe8\x28\xf5\x08\x40\x45\xc6\x28\x39\x46\x40\x4a\x85\x44\xf0\x40\x21\x21\xaf\x05\x56\xc7\x8c\x71\xb5\x78\x9f\x21\xf7\x55\x26\xf1\x37\x18\x5b\xf3\x9c\xef\x3b\x42\x1b\x8b\x21\x6b\x42\x72\xa5\x41\x7d\x29\x29\x1c\xc6\x8e\x44\x18\x4c\x54\xe1\x14\x95\x4a\x56\x8b\x3c\xf6\x80\xad\xf7\x44\xa2\x84\xd8\x23\xbc\x76\xb7\x71\xd8\xcc\x03\x97\x97\x00\x4f\x0a\x5d\x67\xc2\x50\x55\xb6\x7f\x9b\x79\xe5\xe4\x0c\x7d\x79\x94\xb9\xba\xae\x5b\x93\xaa\xc0\x34\x63\x1c\x68\x30\x36\xa4\x62\x3c\x2b\x05\xca\x21\xe3\x20\x30\x73\xaa\x62\x6d\x46\x7a\x51\x0b\xa4\xf7\x9f\x92\x91\xb8\xa4\x88\x84\xc2\x4c\x55\x7c\x77\xe5\xb1\x52\xa9\x70\xb0\xd7\x04\x57\xd8\x1f\x34\x0e\xaf\x8d\xe8\x00\xda\xea\xef\x2e\xfa\x33\x05\xff\xcc\x29\xa6\x0a\x4a\xed\x26\x53\xa7\x9a\xe9\x39\xe7\x5b\xce\x88\x5e\x73\x8f\xc4\xd8\xa0\x33\x7c\x24\x6d\x60\xee\x94\x1b\xc1\xd5\x89\x3a\xf9\x1a\xdd\x75\x34\xf4\xd6\x1d\x23\x1b\x27\xfc\x45\xc5\xdc\x66\x63\xe3\xad\xa7\xee\xa0\xaa\x65\xf0\x58\xd0\xc0\x50\x39\xd7\xd2\x0e\xa0\xc6\xd0\x7e\xd1\x6a\xa1\xdb\x64\x1d\x04\x05\x76\x73\xbb\xb2\x24\xbb\x60\xec\x6e\x9d\x58\x7b\x02\xae\x79\xb2\x09\x1a\x9c\xbf\xcf\xcf\xb6\x3b\x20\xef\xdc\x19\x4b\xb4\xb5\x26\xae\xae\xe0\xd6\xde\x28\x0e\xe1\x1c\x23\x40\x09\x6c\xd9\xa5\x4f\xd4\x66\x3e\x01\xf9\x3a\xc7\x46\x0a\x57\xc0\x6a\x77\xc1\x5b\x99\xfe\xdd\x21\xa5\xc6\x5c\x3e\x60\x54\x03\xd2\xb6\xe9\xe3\x60\xd4\xbe\xbb\x0c\x1a\x2e\x26\x48\x04\x70\x82\x73\x24\x43\x89\xe8\x86\xf1\x44\xcd\x0b\xa4\x20\x6b\xef\x65\x2f\x4a\xfd\x33\x39\x9f\x23\x81\x08\x01\x82\x65\x15\x93\x43\xd3\x02\x08\x3a\x5e\x55\x3e\x1b\xf4\x1d\xc2\xa4\x16\x90\xa1\x5c\x75\x57\xbf\x01\x9f\x4b\x2b\x46\xb1\x62\xce\x0c\x11\xb7\x65\x85\x9e\xb3\x7e\xdb\x06\x24\xd4\xd9\x8c\x9b\xfa\xd8\xc9\x82\xe1\x09\x6d\xe3\x77\x59\x75\x9e\x31\xd1\xb9\xd6\x7b\x3c\xa6\xdf\x71\x22\xba\x00\xa9\x33\xc9\x30\xf8\x09\xe2\x2f\xaa\x05\x7d\x1c\xc9\x38\x23\x38\x3f\x2e\xa5\x8a\x9c\xd1\x96\x8f\x18\xcf\xb9\xd1\x55\xb5\xdf\xe8\x9e\xa9\xe2\x2a\x18\xd5\x0d\xc2\x57\x4c\x0b\xf6\xf5\x82\x0d\x97\xd3\x36\x27\x28\x07\x2b\x31\xde\xaa\x68\xa9\x04\xc2\x54\x5d\x5c\xf7\x6f\x15\xeb\x86\xb2\x3f\x38\x72\xa0\x3c\x0c\x70\xe1\x0b\x77\x4f\x49\xc8\x79\x1d\x1c\x1b\x56\x50\x31\xe1\x74\xc0\x05\x5e\x84\x84\x44\xec\xc1\x16\x28\x7f\x51\x73\xe6\x0e\x2a\x63\x7c\xf9\x63\x49\x78\x96\xbc\x09\x37\xc5\x98\xa3\x6a\xa9\xe8\x88\x9e\xbc\xa7\xce\x62\x9d\xcc\x0f\x38\x12\xff\x90\x23\xc4\x75\x98\xf7\x0e\x42\xd6\x5b\xea\x99\x35\x4c\x8f\x23\xae\xe7\x00\xf1\xe7\x99\x93\xff\xf4\x72\x5b\xd2\xeb\x2f\xcd\x3c\x56\x7d\x1c\x9a\xeb\xf5\xa0\xab\x4d\xb4\x89\xbd\x37\x56\xcb\xf1\xdf\xf4\xf9\xf6\x2c\xc1\x75\x20\xb8\xb0\x65\xbc\x21\xb9\x74\x4f\x9f\x02\xb9\xa5\x83\xfa\x3f\xb5\xfc\x47\x1c\xf1\xe7\xf9\x57\xf7\xd2\x2c\xf8\xc4\xab\x81\xba\xba\x38\x47\xbc\x6b\x7a\x05\x36\x7b\x69\x53\x8c\x27\x90\x86\x49\xa6\xc3\x81\x39\x4d\x46\x5f\xbc\x75\x18\x9b\x31\x1b\x36\x98\xe3\x31\xf0\xb8\x42\xce\x4d\x9c\x7a\x10\xcf\x45\x8c\xb5\x69\xa7\xc4\x79\xc9\x17\x4c\x36\xf7\xef\x66\xfa\x80\xb9\x0b\xf2\x1f\x54\x40\x17\x98\xe6\xb9\x6d\x6a\x1d\x1e\x7a\xed\x4e\x1f\x78\x7a\xe2\xdf\xc0\x9f\x3c\xf7\xd4\x72\xd2\xe3\x64\x78\xf5\x7d\x3c\x91\x6d\x9f\x6a\x6e\x46\xfa\xb1\x40\xda\xe7\x26\x46\x76\xdf\x98\xe7\x29\x9f\x19\x9d\x8f\x40\xed\x79\x70\xff\x18\xd3\x73\xfd\xb1\x32\xff\x36\x0f\x67\x57\xa7\xd5\xbf\x01\x00\x00\xff\xff\x1c\xc9\xf2\x49\xb1\x2f\x00\x00") - -func dataConfig_schema_v31JsonBytes() ([]byte, error) { - return bindataRead( - _dataConfig_schema_v31Json, - "data/config_schema_v3.1.json", - ) -} - -func dataConfig_schema_v31Json() (*asset, error) { - bytes, err := dataConfig_schema_v31JsonBytes() +func (_escStaticFS) prepare(name string) (*_escFile, error) { + f, present := _escData[path.Clean(name)] + if !present { + return nil, os.ErrNotExist + } + var err error + f.once.Do(func() { + f.name = path.Base(name) + if f.size == 0 { + return + } + var gr *gzip.Reader + b64 := base64.NewDecoder(base64.StdEncoding, bytes.NewBufferString(f.compressed)) + gr, err = gzip.NewReader(b64) + if err != nil { + return + } + f.data, err = ioutil.ReadAll(gr) + }) if err != nil { return nil, err } - - info := bindataFileInfo{name: "data/config_schema_v3.1.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil + return f, nil } -var _dataConfig_schema_v32Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5b\x4b\x93\xdc\x28\x12\xbe\xd7\xaf\x50\xc8\xbe\xb9\x1f\x8e\x5d\xc7\x46\xac\x6f\x7b\xdc\xd3\xcc\x79\x3a\xca\x0a\x0a\x65\xa9\x70\x4b\x80\x01\x55\x77\xd9\xd1\xff\x7d\x42\xcf\x02\x04\x02\x75\xa9\xdc\x9e\x89\x39\xd9\x2d\x32\x13\xf2\xc9\x97\x40\xfd\xd8\x24\x49\xfa\x5e\xe2\x03\x54\x28\xfd\x9c\xa4\x07\xa5\xf8\xe7\xfb\xfb\xaf\x92\xd1\xdb\xee\xeb\x1d\x13\xc5\x7d\x2e\xd0\x5e\xdd\x7e\xfc\x74\xdf\x7d\x7b\x97\xde\x34\x7c\x24\x6f\x58\x30\xa3\x7b\x52\x64\xdd\x48\x76\xfc\xf7\xdd\xbf\xee\x1a\xf6\x8e\x44\x9d\x38\x34\x44\x6c\xf7\x15\xb0\xea\xbe\x09\xf8\x56\x13\x01\x0d\xf3\x43\x7a\x04\x21\x09\xa3\xe9\xf6\x66\xd3\x8c\x71\xc1\x38\x08\x45\x40\xa6\x9f\x93\x66\x71\x49\x32\x92\x0c\x1f\x34\xb1\x52\x09\x42\x8b\xb4\xfd\xfc\xd2\x4a\x48\x92\x54\x82\x38\x12\xac\x49\x18\x97\xfa\xee\xfe\x2c\xff\x7e\x24\xbb\xb1\xa5\x6a\x8b\x6d\xbf\x73\xa4\x14\x08\xfa\xfb\x74\x6d\xed\xf0\x97\x07\x74\xfb\xfd\x7f\xb7\x7f\x7c\xbc\xfd\xef\x5d\x76\xbb\xfd\xf0\xde\x18\x6e\xec\x2b\x60\xdf\x4d\x9f\xc3\x9e\x50\xa2\x08\xa3\xe3\xfc\xe9\x48\xf9\xd2\xff\xef\x65\x9c\x18\xe5\x79\x4b\x8c\x4a\x63\xee\x3d\x2a\x25\x98\x3a\x53\x50\x4f\x4c\x3c\x86\x74\x1e\xc9\xde\x48\xe7\x7e\x7e\x87\xce\xa6\x3a\x47\x56\xd6\x55\xd0\x83\x03\xd5\x1b\x29\xd3\x4d\xbf\x8e\xff\x24\x60\x01\x2a\x1c\xb2\x1d\xd5\x9b\x45\x6c\x33\xfd\x65\x0a\x6f\x06\xa5\x67\x69\x3b\x0a\x6d\xee\x76\x81\x46\x7a\xbb\x4c\xe5\x4a\x2f\xbf\xad\x46\x63\x79\xac\x94\x03\x2f\xd9\xa9\xf9\xe6\xb1\x47\x47\x50\x01\x55\xe9\x68\x82\x24\x49\x77\x35\x29\x73\xdb\xa2\x8c\xc2\x6f\x8d\x88\x07\xed\x63\x92\xfc\xb0\x2b\x99\x26\xa7\x1d\x37\xfe\xf2\x3b\x7c\x1c\xf7\xe8\x32\x8e\x63\x46\x15\x3c\xab\x56\xa9\xf9\xa9\x3b\x13\x30\xfc\x08\x62\x4f\x4a\x88\xe5\x40\xa2\x90\x33\x26\x2b\x89\x54\x19\x13\x59\x4e\xb0\x72\xf2\x63\x84\x0f\x90\xed\x05\xab\x82\x52\xf6\x59\xb7\x0e\x99\xbe\x58\x72\x26\x82\xc3\x81\x39\xb2\x6a\x7f\x6d\x37\x0e\x81\x29\x46\x3c\x43\x79\x6e\x18\x04\x09\x81\x4e\xe9\x4d\x92\x12\x05\x95\x74\xdb\x2a\x49\x6b\x4a\xbe\xd5\xf0\xff\x9e\x44\x89\x1a\x6c\xb9\xb9\x60\x7c\x7d\xc1\x85\x60\x35\xcf\x38\x12\x4d\xa4\xce\xfb\x31\xc5\xac\xaa\x10\x5d\x2b\x7c\x97\xe8\x11\x61\x79\x46\x15\x22\x14\x44\x46\x51\x15\x8a\xc8\x26\x7d\x81\xe6\x32\xeb\x90\x43\x6c\x24\x19\x02\x46\x18\xb1\xaa\x3f\x72\x3a\x97\x21\x9d\x98\x26\x47\x9a\xb5\xa5\x16\x63\x26\x01\x09\x7c\x78\x25\x3f\xab\x10\xa1\x31\xb6\x03\xaa\xc4\x89\x33\xd2\xc5\xcb\x2f\x17\x08\x40\x8f\xd9\x58\x94\x16\x9b\x01\xe8\x91\x08\x46\xab\x21\x1b\xe2\x2a\x95\xc6\xff\xcc\x99\x04\xdb\x30\x96\x82\xfa\xd0\xa8\xaa\x61\x93\x81\xe3\x61\x50\xfc\x26\x49\x69\x5d\xed\x40\x34\x60\xd8\xa0\xdc\x33\x51\xa1\x66\xb1\xc3\xdc\xda\xb0\x61\x69\x47\xe4\xe9\x06\xd4\x75\x68\xf0\x01\x2a\xb3\x92\xd0\xc7\xf5\x43\x1c\x9e\x95\x40\xd9\x81\x49\xf5\x9a\xcd\x20\x3d\x00\x2a\xd5\x01\x1f\x00\x3f\xce\xb0\xeb\x54\x06\x37\x93\x2a\x26\xc8\x49\x85\x8a\x30\x11\xc7\x21\x92\x12\xed\xa0\x7c\x95\x9e\xab\x1a\x5f\x13\xcb\x8a\xa2\x21\xf5\x45\xdc\x04\x02\xf5\xc3\x21\xf0\x90\x0b\x72\x04\x11\x8b\x04\x18\x3f\x23\x37\x7b\x30\x8c\x64\x92\x30\x8c\x35\x48\xbf\xdc\x75\x28\x76\x26\xab\xda\xff\x95\x65\xba\xb5\xe1\x42\x62\xed\xfb\xae\x2f\x96\x86\x71\x80\xc2\xf0\x4a\x85\x70\x83\x1b\x04\x48\x8f\x5f\xcf\xa4\x7d\x9b\x94\x55\x2c\xf7\x05\xe8\x84\xd8\xb6\x8d\xb7\x52\x2f\xde\x08\x93\x57\x01\xd1\x28\xd7\x05\x3b\x91\x80\x36\xbe\xe5\xc5\x2e\xf3\xbc\xdc\x70\x88\xb5\x74\xa8\x24\x48\x42\x38\xd9\xbd\x86\x34\xa4\x11\x7e\xfc\x14\x19\x13\x2e\xde\xff\xcc\xf2\x7a\x58\xbd\x32\xe3\x31\x72\x40\xd4\x79\x29\x6d\xba\xb9\x16\xb2\x0d\x64\xdb\x95\x21\x3c\x27\xb9\xbf\x56\xb4\x15\x42\x4f\x30\xce\x84\x9a\x64\xd7\xf2\xed\xde\x17\xc1\xba\xb9\x86\x3a\x75\xde\xf0\xbb\xc9\x27\xd6\x98\xb8\x3b\x8a\x69\x9a\x7f\xc1\xfc\x08\x67\x46\x3a\x53\xa5\x1c\xd4\x0a\x89\x02\xcc\x36\x84\x50\x05\x05\x08\x0f\x03\xaf\x77\x25\x91\x07\xc8\x97\xf0\x08\xa6\x18\x66\x65\x5c\x62\x38\xfb\xd8\xf8\x64\x30\x05\x6e\x2f\xc6\x66\x5c\x90\x23\x29\xa1\xb0\x34\xde\x31\x56\x02\xa2\xc6\x46\x21\x00\xe5\x19\xa3\xe5\x29\x82\x52\x2a\x24\x82\xed\x9f\x04\x5c\x0b\xa2\x4e\x19\xe3\x6a\x75\x54\x28\x0f\x55\x26\xc9\x77\x30\x73\xef\x1c\xf5\xbd\xa0\xad\xb5\x20\xeb\x60\x2c\xb9\x56\xfa\xf9\xc2\xf6\x4a\x69\x23\x59\x2d\xf0\x65\x89\x33\x4b\x5f\x9b\x45\x6e\x9e\xb8\x58\x42\x3c\x49\xf8\xde\x85\x21\x0c\x35\x9b\x2a\xce\x42\x2d\x4f\x12\xab\xd7\x61\x6b\xa9\x72\x42\x33\xc6\x81\x06\x73\x43\x2a\xc6\xb3\x42\x20\x0c\x19\x07\x41\x98\xd3\x14\x46\x81\xcd\x6b\x81\x9a\xf9\xa7\x62\x24\x29\x28\x72\xd7\x1d\x8d\x54\x55\x7c\xff\xca\x43\x00\xa5\xc2\xc9\x5e\x97\xa4\x22\xfe\xa4\x71\x44\x6d\x04\x5e\xeb\xb0\x9a\x1b\xa2\xcd\xc0\xb3\xa8\x92\x3d\xd3\x21\xcc\x37\x08\x11\x9d\xc1\x01\x89\x05\x5b\x47\x9b\x98\x7b\xcf\xfe\xe4\xea\x1b\x9c\xeb\x32\xae\xb8\x5a\x79\x37\xfd\x42\xb6\x4e\xfa\x45\xd0\xcb\x5e\xc6\xd6\x8b\x7e\xdc\x49\x55\xcb\x60\x13\xd7\xd2\x50\x39\xd7\x80\x8c\xa4\xd3\xbb\x9a\xe4\x2f\x51\xa1\x0d\x1f\xb5\xe4\x0e\xdf\x44\xd4\xf1\x7e\xa6\xc8\xda\x79\xed\xaa\x1f\x8d\x08\x34\x1e\xcc\xa8\x24\x52\x01\xc5\xa7\xf8\x89\x76\x64\x72\x4a\x3c\x35\xca\x7c\xdf\x15\xd7\x75\xb5\x54\xa8\xe8\xea\x6d\x74\xa3\x13\x9f\xab\xfd\x35\xde\x4f\x51\x85\x32\xcc\xb8\xc7\x35\xf1\x6a\x5c\x19\xc0\x5a\x27\x1d\x33\xb0\xd5\x57\x61\x9e\x98\x78\x6c\xf6\xaf\x9c\xb8\x0b\xcd\xc6\x62\x59\x70\x51\x6a\x1d\x0d\x0e\x02\x5c\x37\x80\x3a\x69\xf0\xc6\x74\xfe\x36\xb2\x27\xf2\xde\x14\x12\x89\x76\xd6\x1d\x99\x6b\x5f\x6e\x36\x12\x71\x0c\xc3\x03\x01\x4a\x10\xeb\xe6\x61\xc0\x58\x3a\x14\x00\xf9\x6b\x9e\xcf\x2b\x52\x01\xab\xdd\x55\x6b\xa3\x07\x4e\xcf\x94\x6a\x37\xa9\x01\xa7\x6a\x94\xb6\x4f\x1f\x46\xa7\x0e\x6d\x7c\xd0\x71\x31\xfb\x1b\xd0\xbc\xbd\x09\x89\xda\x0c\x05\xf0\x92\x60\x24\x43\x80\xe3\x82\x43\xe3\x9a\xe7\x48\x41\xd6\x3d\xbb\x59\x04\xf1\x66\xb0\x1d\x47\x02\x95\x25\x94\x44\x56\x31\x58\x29\xcd\xa1\x44\xce\xcd\x22\x08\x93\x5b\xf6\x3d\x22\x65\x2d\x20\x43\xd8\x5b\xd5\x2d\x8e\x8a\x51\xa2\x98\xb3\x9c\xc4\x4d\x59\xa1\xe7\x6c\x98\xb6\x25\x09\x75\x30\x66\xf3\x1e\x7b\xde\xab\x45\x42\xb7\xd5\x2f\x43\xe1\x33\x2e\x3a\x63\x7a\x4f\xc4\x0c\x33\x4e\x54\x17\x20\x9b\xb2\x33\x1e\xc7\x07\xf9\x57\xb5\x82\x42\x42\x65\x9c\x95\xa4\x43\x17\x6b\x98\x02\x33\xda\xad\x23\x26\x72\x2e\x0c\xd5\x26\x6e\x9a\xde\xa8\xe2\x2a\x98\xd5\x2d\xc3\x13\xa1\x39\x7b\x5a\x30\xe1\x7a\xd6\xe6\x25\xc2\x60\x55\xd1\x4b\x0d\x2d\x95\x40\x84\xaa\xc5\xd7\x54\x97\xaa\x75\x01\x46\x18\x03\x39\xb0\x97\x8c\x74\x41\x74\xe0\xdb\x3f\x30\xaf\x83\x97\x39\x15\x54\x4c\xb8\x81\xf5\x05\x3a\x0e\x2f\xe9\x02\x2a\x0e\x64\x2b\xec\x95\x51\xb7\x7f\x3d\x55\xc6\xf8\xfa\xc7\x0f\xe1\x1b\xbe\x6d\xb8\xf9\x25\x1c\x55\x6b\x65\x47\xf4\x7d\x68\xea\xdc\xac\x93\xf9\x36\x39\xf1\xb7\xca\xa1\x55\x87\xd7\xde\x53\xc8\x7a\x47\x3d\xdd\xe5\x75\x9b\x8c\x15\x8b\xde\xf0\x94\xc1\xe3\xd5\x87\x11\x89\xdf\x8c\xb6\xda\x46\xbb\xd8\xfb\x8e\x60\xbd\xf5\xb7\x4d\x81\x7d\x66\xe8\xea\x1e\x90\x52\x08\x1f\xa2\x1a\x8d\x85\xe8\xf2\x82\x3a\x34\xe9\x9e\x9d\x65\xa8\xa7\xfa\xa7\x0a\xfd\x4d\x62\xf6\xe7\xc5\x57\xff\xe6\x38\xf8\xd8\xb7\xa5\x7a\xf5\x3e\x1e\xf1\xc2\xf5\x17\xf0\xd9\x5b\xbb\xc2\xbc\x94\xd0\x5c\x32\x3d\x74\x98\xb3\xe4\xd2\x57\xbd\x5b\x73\x19\x36\x99\xe3\x67\x21\xe6\x66\x3a\x77\x65\x39\x90\x78\x0e\xb9\xac\x49\x7b\x23\xce\x6b\xbe\x62\xb1\xb9\xfb\x30\x03\x19\xe6\x5e\x38\x5d\x69\xaf\x5d\xe1\x3a\xd8\xed\x53\xab\xcf\x18\xac\x3b\x7d\xea\xef\xc9\x7f\x8d\x7f\xf2\xf0\xbf\xd1\x93\x9e\x26\x87\x62\x3f\xcc\x0b\x80\xee\xd1\xfe\xd6\xb0\x8f\x45\xd2\xbd\x17\xd4\xaa\xfb\x56\x6f\xbd\x7c\x6e\x74\xfe\x1c\xc0\xbe\x7e\x18\x9e\xe5\x7b\x6e\x44\x37\xfa\xbf\xed\x4f\x28\x36\x2f\x9b\x3f\x03\x00\x00\xff\xff\x08\xbb\xeb\x9c\xbb\x35\x00\x00") - -func dataConfig_schema_v32JsonBytes() ([]byte, error) { - return bindataRead( - _dataConfig_schema_v32Json, - "data/config_schema_v3.2.json", - ) -} - -func dataConfig_schema_v32Json() (*asset, error) { - bytes, err := dataConfig_schema_v32JsonBytes() +func (fs _escStaticFS) Open(name string) (http.File, error) { + f, err := fs.prepare(name) if err != nil { return nil, err } - - info := bindataFileInfo{name: "data/config_schema_v3.2.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil + return f.File() } -var _dataConfig_schema_v33Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5b\xcb\x93\xdb\x2c\x12\xbf\xfb\xaf\x50\xe9\xfb\x6e\x99\x47\xaa\x92\xda\xaa\xcd\x6d\x8f\x7b\xda\x3d\xef\x94\xa3\xc2\xa8\x6d\x93\x41\x40\x00\x79\xc6\x49\xcd\xff\xbe\xa5\xa7\x01\x81\xc0\xb6\x26\x33\xbb\x5f\x4e\x33\x96\x7e\xdd\xd0\xdd\xf4\x0b\xd0\xcf\x55\x96\xe5\x7f\x2a\xbc\x87\x0a\xe5\x5f\xb2\x7c\xaf\xb5\xf8\x72\x7f\xff\x4d\x71\x76\xdb\x3d\xbd\xe3\x72\x77\x5f\x4a\xb4\xd5\xb7\x1f\x3f\xdf\x77\xcf\xfe\xc8\x6f\x1a\x3a\x52\x36\x24\x98\xb3\x2d\xd9\x15\xdd\x9b\xe2\xf0\xe9\xee\xd3\x5d\x43\xde\x41\xf4\x51\x40\x03\xe2\x9b\x6f\x80\x75\xf7\x4c\xc2\xf7\x9a\x48\x68\x88\x1f\xf2\x03\x48\x45\x38\xcb\xd7\x37\xab\xe6\x9d\x90\x5c\x80\xd4\x04\x54\xfe\x25\x6b\x26\x97\x65\x23\x64\x78\x60\xb0\x55\x5a\x12\xb6\xcb\xdb\xc7\x2f\x2d\x87\x2c\xcb\x15\xc8\x03\xc1\x06\x87\x71\xaa\x7f\xdc\x9f\xf8\xdf\x8f\xb0\x1b\x97\xab\x31\xd9\xf6\xb9\x40\x5a\x83\x64\xff\x9e\xce\xad\x7d\xfd\xf5\x01\xdd\xfe\xf8\xc7\xed\x7f\x3e\xde\xfe\xfd\xae\xb8\x5d\x7f\xf8\xd3\x7a\xdd\xe8\x57\xc2\xb6\x1b\xbe\x84\x2d\x61\x44\x13\xce\xc6\xf1\xf3\x11\xf9\xd2\xff\xf7\x32\x0e\x8c\xca\xb2\x05\x23\x6a\x8d\xbd\x45\x54\x81\x2d\x33\x03\xfd\xc4\xe5\x63\x4c\xe6\x11\xf6\x46\x32\xf7\xe3\x7b\x64\xb6\xc5\x39\x70\x5a\x57\x51\x0b\x0e\xa8\x37\x12\xa6\x1b\x7e\x19\xfb\x29\xc0\x12\x74\x7c\xc9\x76\xa8\x37\x5b\xb1\xcd\xf0\xcb\x08\xdc\x45\x8d\x98\xc0\x03\xea\x8d\x04\xee\x86\xbf\x4e\xe0\xd5\x20\xf4\x2c\xb6\x43\x18\x63\xb7\x13\xb4\xe2\x99\x4f\x55\xbe\x78\x12\xd6\xd5\xa8\xac\x80\x96\x4a\x10\x94\x1f\x9b\x67\x01\x7d\x74\x80\x0a\x98\xce\x47\x15\x64\x59\xbe\xa9\x09\x2d\x5d\x8d\x72\x06\xff\x6a\x58\x3c\x18\x0f\xb3\xec\xa7\x1b\xba\x0d\x3e\xed\x7b\xeb\x57\xd8\xe0\xe3\xfb\x80\x2c\xe3\x7b\xcc\x99\x86\x67\xdd\x0a\x35\x3f\x74\xa7\x02\x8e\x1f\x41\x6e\x09\x85\x54\x0a\x24\xbb\x55\x1c\x50\x19\x25\x4a\x17\x5c\x16\x25\xc1\xda\x4b\x4f\xd1\x06\xe8\x55\x1c\x30\xc2\x7b\x28\xb6\x92\x57\x51\x2e\xdb\xa2\x93\x44\xe5\x2f\x0e\x9f\x09\xe3\xf8\xd2\x1e\x49\x8d\x5f\xeb\x95\x87\x61\x8e\x91\x28\x50\x59\x5a\x2a\x45\x52\xa2\x63\x7e\x93\xe5\x44\x43\xa5\xfc\xda\xce\xf2\x9a\x91\xef\x35\xfc\xb3\x87\x68\x59\x83\xcb\xb7\x94\x5c\x2c\xcf\x78\x27\x79\x2d\x0a\x81\x64\xb3\xd6\xe7\x57\x42\x8e\x79\x55\x21\xb6\x94\x03\x9c\x23\x47\x82\xe6\x27\x61\x36\x33\xbd\xaa\x1f\xc3\x7c\x35\x8e\x66\x4d\x2b\x20\x4d\x5c\x9e\xa9\x4b\xc7\x9d\x3a\xee\xd6\x4d\x54\xe4\xb5\xc4\xa9\x5e\xda\x8c\x89\xe4\x0e\x52\xe3\x40\x96\xe5\x35\x29\xd3\xc1\xbb\x73\xc0\x15\x2f\xed\x79\xb3\xba\xda\x80\x9c\xb8\xa4\xed\x59\xd3\xdf\xeb\x95\xef\x8d\x63\x7d\x8d\x08\x03\x59\x30\x54\xc5\x74\x95\x63\x09\x25\x30\x4d\x10\x2d\x94\x00\x6c\xc1\x07\x4b\xcd\x58\x26\x4f\x8a\x9a\xb9\x84\x1d\x51\x5a\x1e\xbd\xc8\x93\x14\xe6\xc4\x4a\x10\xc0\x4a\x55\x74\x3d\x40\x6a\x80\xb3\x18\x8c\x0d\xc1\xa2\x61\xa2\x64\x73\x81\xbb\x63\xd3\x84\xee\x66\x6e\xb9\x43\x58\x28\x40\x12\xef\x2f\xa4\xe7\x15\x22\x2c\xc5\xa8\xc0\xb4\x3c\x0a\x4e\xba\x30\xf6\xee\xe2\x13\xb0\x43\x31\xae\x9b\xb3\xd5\x00\xec\x40\x24\x67\xd5\x10\xa4\xd3\x12\xa8\x41\xff\x2c\xb8\x82\xeb\x83\x63\x4f\xf1\x30\x08\x7e\x33\xfa\xf4\xda\xd6\x5e\xbe\xe5\xb2\x42\xcd\x64\x87\xb1\x4d\x1f\xb6\x86\x9a\xae\x3c\x53\x81\xa6\x0c\x4d\xe1\x8b\x68\x41\x09\x7b\x5c\x7e\x89\xc3\xb3\x96\xa8\xd8\x73\xa5\x2f\xa9\x51\xf2\x3d\x20\xaa\xf7\x78\x0f\xf8\x71\x86\xdc\x44\x59\xd4\x5c\xe9\x94\x45\x4e\x2a\xb4\x8b\x83\x04\x8e\x41\x2e\xae\xc5\xf2\x45\x95\x6f\xb0\xe5\xbb\x5d\x03\x0d\xad\xb8\x49\x6d\xdf\xbf\x8e\x55\xc5\xa5\x24\x07\x90\xa9\x25\x2e\x17\xa7\x96\xc4\x7d\x99\x92\xcd\xa3\xfd\x99\x05\xfd\x7a\xd7\xb5\x67\x33\x5e\xd5\xfe\x47\x69\xbe\x9e\xa6\xcc\x69\xd2\x74\x9f\x38\x12\xa6\xd5\xb9\x96\x55\x2a\x84\x9b\x72\x56\x82\x0a\xd8\xf5\x04\xed\x37\x3c\x8a\x49\xce\x3f\x61\x27\xe0\x49\x62\x0d\x45\xea\xb3\x13\x61\x76\x51\x87\x95\x64\xba\x68\x8b\x1d\x91\x26\x34\xbd\xd4\x69\x9e\xa6\x1b\x5f\x62\x2d\x0e\x51\x82\x14\xc4\x9d\x3d\xa8\x48\x8b\x1b\x11\x87\xcf\x89\x6b\xc2\x47\xfb\xb7\x59\xda\x00\x69\x90\x67\x7a\xeb\x16\x61\x65\x96\xa8\x94\x7a\x27\xb2\x8e\x17\xad\xaf\xd9\x59\x0a\xbb\xf0\xb6\x63\x45\x1b\x21\x4c\x07\x13\x5c\xea\x5f\xd2\x0b\x9d\xe2\xd4\x29\xe1\x77\x83\x4f\xdb\x23\xd7\xdc\x49\x44\xaf\xd3\x53\xcd\x44\x29\x0f\xda\xd3\x51\x11\xa6\x61\xd7\xb4\x32\xfe\x24\x50\x6f\x28\x51\x7b\x28\xcf\xa1\x91\x5c\x73\xcc\x69\x9a\x63\x78\x37\x68\xd2\x9d\x61\xa6\xbf\xba\xa8\x36\x13\x92\x1c\x08\x85\x9d\x23\xf1\x86\x73\x0a\x88\x59\x89\x42\x02\x2a\x0b\xce\xe8\x31\x01\xa9\x34\x92\xd1\x5d\x09\x05\xb8\x96\x44\x1f\x0b\x2e\xf4\xe2\x55\xa1\xda\x57\x85\x22\x3f\xc0\xf6\xbd\xd3\xaa\xef\x19\xad\x9d\x09\x39\x5b\xdc\xd9\xef\xad\x88\xbf\xcc\x56\x84\x3a\x2a\xac\x2f\xab\xad\x95\x2e\x09\x2b\xb8\x00\x16\xf5\x0d\xa5\xb9\x28\x76\x12\x61\x28\x04\x48\xc2\xbd\xaa\xb0\x02\x6c\x59\x4b\xd4\x8c\x3f\x65\xa3\xc8\x8e\x21\x7f\xdc\x31\xa0\xba\x12\xdb\x0b\x37\x01\xb4\x8e\x3b\x7b\x4d\x49\x45\xc2\x4e\xe3\x59\xb5\x09\xf5\x5a\x57\xab\xf9\x4b\xb4\x99\xf2\x2c\x29\x64\xcf\x74\x08\xf3\x0d\x42\x42\x67\xb0\x47\xf2\x8c\xd4\xd1\x3a\xe6\x36\x90\x9f\x7c\x7d\x83\x77\x5e\xd6\x61\x75\xcb\xef\xa6\x9f\xc8\xda\x8b\x3f\xab\xf4\x72\xa7\xb1\x0e\x56\x3f\x7e\xa7\xaa\x55\xb4\x89\x6b\x31\x4c\xcd\x35\x20\x23\x74\x7a\xea\x9a\xfd\x4f\x44\x68\xcb\x46\x2d\xdc\x63\x9b\x84\x38\xde\x8f\x94\x18\x3b\x5f\x3b\xea\x27\x57\x04\x06\x0d\xe6\x4c\x11\xa5\x81\x61\xff\xfe\xaa\x97\x68\x43\x26\x87\x17\x53\xa5\xcc\xf7\x5d\x69\x5d\x57\x8b\x42\xbb\x2e\xde\x26\x37\x3a\xe9\xbe\xda\x1f\xc8\xff\x12\x51\x18\xc7\x5c\x04\x4c\x93\x2e\xc6\x2b\x17\xb0\xce\x4e\xc7\x4c\xd9\x1a\x8a\x30\x4f\x5c\x3e\x36\xf9\xab\x24\xfe\x40\xb3\x72\x48\xce\xb8\x01\xe0\x6c\x0d\x0e\x0c\x7c\x47\xdb\x26\x34\x7a\x15\x60\xfe\x98\xbd\x07\x05\x8f\xc0\x89\x42\x1b\xe7\x18\xc3\x97\x97\x9b\x44\x22\x0f\xf1\xf2\x40\x82\x96\xc4\x39\x79\x18\x6a\x2c\xb3\x14\x00\xf5\x3e\xf7\xe7\x35\xa9\x80\xd7\xfe\xa8\xb5\x32\x17\x4e\x4f\x94\x1b\x57\x04\x22\x46\x35\x90\xae\x4d\x1f\x8c\xf3\xa6\xae\x8d\x8f\x1a\x2e\x25\xbf\x01\x2b\xdb\x93\x90\xa4\x64\x28\x41\x50\x82\x91\x8a\x15\x1c\x57\x6c\x1a\xd7\xa2\x44\x1a\x8a\xfe\x96\xc9\x39\x25\xde\x4c\x6d\x27\x90\x44\x94\x02\x25\xaa\x4a\xa9\x95\xf2\x12\x28\xf2\x26\x8b\x68\x99\xdc\x92\x6f\x11\xa1\xb5\x84\x02\xe1\x60\x54\x77\x28\x2a\xce\x88\xe6\xde\x70\x92\x36\x64\x85\x9e\x8b\x61\xd8\x16\x12\xeb\x60\xec\xe6\x3d\x75\xbf\xd7\x58\x09\x5d\xaa\x3f\xaf\x0a\x9f\x31\xd1\xa9\xa6\x0f\xac\x98\x61\xc4\x89\xe8\x12\x54\x13\x76\xc6\xed\xf8\x28\xfd\xa2\x5a\xd0\x48\xea\x42\x70\x4a\xba\xea\x62\x09\x55\x60\xce\xba\x79\xa4\xac\x9c\x2b\x97\x6a\xb3\x6e\x9a\xde\xa8\x12\x3a\xea\xd5\x2d\xc1\x13\x61\x25\x7f\x3a\x63\xc0\xe5\xb4\x2d\x28\xc2\xe0\x44\xd1\x6b\x15\xad\xb4\x44\x84\xe9\xb3\x8f\xa9\x5c\xb5\x08\x09\x5b\x90\xc0\xa6\x1e\x91\xcd\xb7\x0b\x59\xb8\x65\x88\xc9\x16\x97\xb0\x47\x28\xd1\xd4\xcd\x6f\xb0\x5b\x78\xad\xf1\xaf\xa8\xa4\x46\x77\x8f\x64\xdc\x11\x17\xad\xa1\x42\x59\x16\x8b\x3a\x7a\xe4\x55\x41\xc5\xe7\xaf\x77\x5c\x71\xc1\x39\x26\xe2\x00\x5b\xa0\xa2\x48\x3a\x23\xed\x51\x05\x17\xcb\x6f\xd2\xc4\xcf\x41\xd7\xf1\x2d\x02\x22\x50\xb5\x54\x0c\x49\x3e\x35\xce\xbd\x25\x4d\xf6\x0e\xa2\x43\xbd\x61\x81\x1e\xfc\x7d\x47\x07\xfb\x46\x46\x7b\xe1\x23\x60\xd5\x87\xb1\x5f\xb9\x19\x75\xb5\x4e\x36\x71\xf0\xb6\xc5\x72\xf3\x6f\x5b\x27\x77\x67\xd5\xd7\x63\x21\xad\x11\xde\x27\xb5\x63\x67\xd6\xe0\x57\xc4\xa1\xc9\x1e\x83\x37\x0c\xf5\xa8\xdf\x51\xe8\xff\x64\xcd\xfe\xba\xf5\xd5\x7f\x63\x11\xbd\xeb\xdf\xa2\x2e\xce\xe3\x09\x57\x35\xdf\x81\xcd\xde\xd8\x14\x93\x24\xe6\x35\x45\x8f\xfa\x6d\x8a\x57\xf5\x0a\xfb\x14\xcd\x30\xc9\x74\x97\x6c\x4e\x93\xe7\x7e\x1d\xb1\xb6\xa7\xe1\xc2\x3c\x5f\x24\xda\x75\xcd\xdc\x19\xfb\x00\x09\xec\xca\x3a\x83\xf6\x4a\x9c\x97\x7c\xc1\xb8\x7f\xf7\x61\xa6\x7a\x9b\xbb\x92\xf7\x4a\x65\xcf\x02\xf7\x17\xfc\x36\x75\x1a\xe3\x41\xbb\xd3\x8f\xae\xc2\xfe\x3f\xd0\x4f\x3e\xc1\x6a\xe4\x64\xc7\xc9\x2e\xee\x4f\xfb\xc4\xaa\xfb\x7c\x6a\x6d\xe9\xc7\x81\x74\x17\x5c\x8d\x44\xbb\x36\xf7\x0a\x82\x37\xf2\x7d\x1f\x66\xb9\xe7\x65\xc3\x07\x52\x81\x23\xfc\x95\xf9\xb7\xfd\x98\x6d\xf5\xb2\xfa\x6f\x00\x00\x00\xff\xff\x46\x95\x2c\x74\x36\x3c\x00\x00") - -func dataConfig_schema_v33JsonBytes() ([]byte, error) { - return bindataRead( - _dataConfig_schema_v33Json, - "data/config_schema_v3.3.json", - ) +func (dir _escDirectory) Open(name string) (http.File, error) { + return dir.fs.Open(dir.name + name) } -func dataConfig_schema_v33Json() (*asset, error) { - bytes, err := dataConfig_schema_v33JsonBytes() - if err != nil { - return nil, err +func (f *_escFile) File() (http.File, error) { + type httpFile struct { + *bytes.Reader + *_escFile } - - info := bindataFileInfo{name: "data/config_schema_v3.3.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil + return &httpFile{ + Reader: bytes.NewReader(f.data), + _escFile: f, + }, nil } -var _dataConfig_schema_v34Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5b\x41\x73\xeb\xb8\x0d\xbe\xfb\x57\x68\xb4\x7b\x5b\x3b\xd9\x99\xbe\xe9\x4c\xdf\xad\xc7\x9e\xda\x73\x33\x7e\x1a\x9a\x82\x6d\x6e\x28\x92\x0b\x52\x7e\xf1\xbe\xc9\x7f\xef\x48\x94\x64\x4a\xa2\x44\xda\x56\x5e\xb2\xdd\x77\x4a\x2c\x01\x20\x01\x02\x1f\x00\x92\xfa\xb6\x4a\x92\xf4\x67\x4d\x8f\x50\x90\xf4\x73\x92\x1e\x8d\x51\x9f\x1f\x1f\x7f\xd3\x52\x6c\xec\xd3\x07\x89\x87\xc7\x1c\xc9\xde\x6c\x7e\xfd\xf4\x68\x9f\xfd\x94\xae\x2b\x3e\x96\x57\x2c\x54\x8a\x3d\x3b\x64\xf6\x4d\x76\xfa\xdb\xc3\xa7\x87\x8a\xdd\x92\x98\xb3\x82\x8a\x48\xee\x7e\x03\x6a\xec\x33\x84\xdf\x4b\x86\x50\x31\x3f\xa5\x27\x40\xcd\xa4\x48\xb7\xeb\x55\xf5\x4e\xa1\x54\x80\x86\x81\x4e\x3f\x27\xd5\xe4\x92\xa4\x23\x69\x1f\x38\x62\xb5\x41\x26\x0e\x69\xfd\xf8\xb5\x96\x90\x24\xa9\x06\x3c\x31\xea\x48\xe8\xa6\xfa\xd3\xe3\x45\xfe\x63\x47\xb6\x1e\x4a\x75\x26\x5b\x3f\x57\xc4\x18\x40\xf1\x9f\xf1\xdc\xea\xd7\x5f\x9e\xc8\xe6\x8f\x7f\x6e\xfe\xfb\xeb\xe6\x1f\x0f\xd9\x66\xfb\xcb\xcf\xbd\xd7\x95\x7d\x11\xf6\x76\xf8\x1c\xf6\x4c\x30\xc3\xa4\xe8\xc6\x4f\x3b\xca\xd7\xe6\xbf\xd7\x6e\x60\x92\xe7\x35\x31\xe1\xbd\xb1\xf7\x84\x6b\xe8\xeb\x2c\xc0\x7c\x95\xf8\x1c\xd2\xb9\x23\x7b\x27\x9d\x9b\xf1\x3d\x3a\xf7\xd5\x39\x49\x5e\x16\xc1\x15\x6c\xa9\xde\x49\x19\x3b\xfc\x32\xeb\xa7\x81\x22\x98\xb0\xcb\x5a\xaa\x77\xf3\xd8\x6a\xf8\x65\x14\xb6\xa8\x11\x52\xb8\xa5\x7a\x27\x85\xed\xf0\xf7\x29\xbc\x6a\x95\xf6\xcf\x31\xfd\xf2\xb2\xa9\xfe\xbe\xd6\x32\x67\xe5\x59\x29\xce\xfc\x6a\x25\x7a\x98\xe7\x33\xa7\x0f\x73\xa6\xed\xd9\x19\x74\xc2\x92\x39\x28\x2e\xcf\xf5\xcc\xfd\x36\xb3\x04\x05\x08\x93\x76\x66\x4a\x92\x74\x57\x32\x9e\x0f\xad\x2e\x05\xfc\xbb\x12\xf1\xe4\x3c\x4c\x92\x6f\x43\x78\x77\xe4\xd4\xef\x7b\xbf\xa6\x9d\xa2\x7b\x3f\xa1\x4b\xf7\x9e\x4a\x61\xe0\xc5\xd4\x4a\xcd\x0f\x6d\x4d\x20\xe9\x33\xe0\x9e\x71\x88\xe5\x20\x68\x3d\x7d\xc2\x64\x9c\x69\x93\x49\xcc\x72\x46\x8d\x97\x9f\x93\x1d\xf0\xbb\x24\x50\x42\x8f\x90\xed\x51\x16\x41\x29\xfb\xcc\x6a\xa2\xbd\x82\x5a\x04\x8f\xd4\xdc\x10\x3c\x80\xdf\xb2\x03\xe2\x11\x77\x38\xb6\x3a\x56\xe7\xd7\x76\xe5\x11\x98\x52\xa2\x32\x92\xe7\xbd\x79\x10\x44\x72\x4e\xd7\x49\xca\x0c\x14\xda\xaf\x50\x92\x96\x82\xfd\x5e\xc2\xbf\x1a\x12\x83\x25\x0c\xe5\xe6\x28\xd5\xf2\x82\x0f\x28\x4b\x95\x29\x82\x55\x20\xcd\x1b\x3b\xa5\xb2\x28\x88\x58\x2a\xba\xae\xd1\x23\xc2\xf2\x23\x9c\x4f\xdc\x90\x6d\xc6\x70\x5f\x75\xa3\xf5\xa6\x35\xa1\x4d\x58\x9f\x31\x5e\x84\x11\x23\x8c\x19\x15\xe4\xca\x12\x69\x2c\x04\xcc\x87\x82\x97\xbe\x64\x79\x3c\xf1\xe1\x1a\xe2\x42\xe6\xfd\x79\x8b\xb2\xd8\x01\x8e\x42\xb2\x1f\x59\xe3\xdf\xdb\x95\xef\xcd\x60\xf5\x0d\x61\x02\x30\x13\xa4\x08\xd9\x2a\xa5\x08\x39\x08\xc3\x08\xcf\xb4\x02\xda\x23\x6f\x57\x6a\x66\x65\xd2\x28\x48\x4e\x11\x0e\x4c\x1b\x3c\xcf\x83\xd2\xab\x3b\xb1\x1c\x14\x88\x5c\x67\xb6\x09\xb9\x1e\x3d\xd3\x1c\xba\x8e\x64\x51\x98\xc8\xc5\x5c\x56\xb0\x62\xaa\xbc\x50\xcd\x2d\x1d\x30\x66\x1a\x08\xd2\xe3\x8d\xfc\xb2\x20\x4c\xc4\x2c\x2a\x08\x83\x67\x25\x99\x85\xb1\x0f\x87\x4f\x20\x4e\x59\xe7\x37\x57\x9b\x01\xc4\x89\xa1\x14\x45\x0b\xd2\x71\xd9\xd9\xe1\x7f\x51\x52\xc3\xfd\xe0\xd8\x70\x3c\xb5\x8a\xaf\xbb\x98\xde\xf6\xad\x97\xee\x25\x16\xa4\x9a\x6c\x3b\xb6\x1b\xc3\xbd\xa1\xc6\x9e\xe7\x1a\xd0\xd5\xa1\xaa\x6a\x09\xcf\x38\x13\xcf\xcb\xbb\x38\xbc\x18\x24\xd9\x51\x6a\x73\x4b\x01\x94\x1e\x81\x70\x73\xa4\x47\xa0\xcf\x33\xec\x2e\x55\x8f\x5b\x6a\x13\xe3\xe4\xac\x20\x87\x30\x91\xa2\x21\x92\x9b\x0b\xbd\x74\x51\xe3\x3b\x62\xe5\xe1\x50\x91\x4e\x79\xdc\xa8\x71\x68\x5e\x87\x4a\xee\x1c\xd9\x09\x30\xb6\x8a\x94\xea\xd2\xef\x0c\x5f\xc6\x64\xf3\x60\x83\xd8\x23\xfd\xf2\x60\xfb\xc3\x99\xa8\xaa\xff\xe3\x3c\xdd\x8e\x53\xe6\x38\x69\x0e\x9f\x0c\x34\x8c\xab\x73\x7b\xab\x52\x10\x5a\x95\xb3\x08\x7a\x62\x5d\x2f\xa4\x4d\xbd\x9e\x8d\x72\xfe\x85\x76\x44\x3c\x4a\xac\x53\x48\x7d\x53\x1b\x71\x7d\xfb\x16\xb5\x74\xc1\x1e\x3f\xa0\xcd\xd4\xf4\x62\xa7\x79\x99\x6e\xd8\xc5\x6a\x3a\xc2\x19\xd1\x10\x0e\xf6\xd9\x7e\xac\x93\xc6\xd4\xe9\x53\xa4\x4f\xf8\x78\xff\x3e\xcb\x3b\xc1\x3a\x29\x33\xbe\x75\x0b\x88\x72\x4b\x54\xce\xbd\x13\xd9\x86\x8b\xd6\xb7\xec\x2c\x55\xbf\xf0\xee\x63\x45\x8d\x10\x6e\x80\x29\x89\xe6\xbb\xf4\x42\x17\x9c\xba\x24\x7c\x3b\xf8\xb8\x3d\x1a\x2e\x77\x14\xd3\xdb\xf4\x54\x33\x28\xe5\xa1\xf6\x74\x54\x4c\x18\x38\x54\xad\x8c\x3f\x09\x94\x3b\xce\xf4\x11\xf2\x6b\x78\x50\x1a\x49\x25\x8f\x0b\x0c\xef\xee\x4f\x7c\x30\xcc\xf4\x57\x37\xd5\x66\x0a\xd9\x89\x71\x38\x0c\x34\xde\x49\xc9\x81\x88\x5e\xa2\x40\x20\x79\x26\x05\x3f\x47\x50\x6a\x43\x30\xb8\x2b\xa1\x81\x96\xc8\xcc\x39\x93\xca\x2c\x5e\x15\xea\x63\x91\x69\xf6\x07\xf4\x63\xef\xe2\xf5\x8d\xa0\xed\x60\x42\x83\x3d\xf6\xe4\xc7\x56\xc4\x5f\x66\x2b\x42\x9f\x35\x35\xb7\xd5\xd6\xda\xe4\x4c\x64\x52\x81\x08\xc6\x86\x36\x52\x65\x07\x24\x14\x32\x05\xc8\xa4\xd7\x14\x3d\x80\xcd\x4b\x24\xd5\xf8\x63\x31\x9a\x1d\x04\xf1\xe3\x8e\x43\x6a\x0a\xb5\xbf\x71\x13\xc0\x98\x70\xb0\x97\x9c\x15\x6c\x3a\x68\x3c\x5e\x1b\x51\xaf\xd9\x5a\xcd\x5f\xa2\xcd\x94\x67\x51\x90\x3d\xd3\x21\xcc\x37\x08\x11\x9d\xc1\x91\xe0\x15\xa9\xa3\x0e\xcc\xfd\x44\x7e\xf2\xf5\x0d\xde\x79\xf5\x4e\xcb\x6b\x79\xeb\x66\x22\x5b\x2f\xfd\x55\xa5\xd7\x70\x1a\xdb\xc9\xea\xc7\x1f\x54\xa5\x0e\x36\x71\x35\x8d\xd0\x73\x0d\x48\x47\x3a\x3e\xf6\x4d\xfe\x14\x08\xdd\x5b\xa3\x9a\xdc\xb3\x36\x11\x38\xde\x8c\x14\x89\x9d\x6f\x8d\xfa\xd1\x15\x81\xc3\x43\xa5\xd0\x4c\x1b\x10\xd4\xbf\xbf\xea\x65\xda\xb1\xd1\xe1\xc5\xd8\x28\xf3\x7d\x57\x5c\xd7\x55\x53\x91\x83\xc5\xdb\xe8\x46\x27\x3e\x56\x9b\x1b\x01\xdf\x45\x15\x21\xa9\x54\x13\x4b\x13\xaf\xc6\x1b\x17\xb0\x83\x9d\x8e\x99\xb2\x75\x0a\x61\xbe\x4a\x7c\xae\xf2\x57\xce\xfc\x40\xb3\x1a\xb0\x5c\x71\x05\x61\xb0\x35\xd8\x0a\xf0\x9d\x9b\xbb\xa4\xc1\xbb\x08\xf3\x67\xf8\x0d\xd1\xe4\xf9\x3a\xd3\x64\x37\x38\xc6\xf0\xe5\xe5\x2a\x91\xe0\xc9\x5f\x1e\x84\xeb\x0b\x04\x83\x6c\x70\x1e\xd1\x56\x5e\x6e\x81\x00\xfa\x63\xee\xda\x1b\x56\x80\x2c\xbd\x58\x16\x53\x5c\x11\x34\xd7\x97\x67\x2b\xd7\x4d\x1b\x79\xa9\x73\xdb\x21\xe0\x42\x0e\xe5\xd0\x83\x9e\x9c\xd3\x2d\xbb\x69\x10\x74\x93\x98\x6c\x0a\x22\xaf\xcf\x5d\xa2\x52\x2f\x82\xe2\x8c\x12\x1d\x2a\x6f\xee\xd8\xa2\x2e\x55\x4e\x0c\x64\xcd\xa5\x9a\x6b\x0a\xca\x99\x4a\x52\x11\x24\x9c\x03\x67\xba\x88\xa9\xcc\xd2\x1c\x38\xf1\xa6\xa6\xa0\xdf\xd4\xec\x7b\xc2\x78\x89\x90\x11\x3a\x99\x43\x06\x1c\x85\x14\xcc\x48\x2f\x78\xc5\x0d\x59\x90\x97\xac\x1d\xb6\x26\x09\x44\x6d\xcd\x24\x31\xf7\x57\x66\xeb\xca\x2f\xca\xc2\x53\x1b\xd9\xb8\xd8\xec\x19\x6a\x63\x5b\x68\xa9\x9a\x5f\x7d\x50\x7f\x9d\xdc\x96\x88\xdd\xc9\x76\xbc\xce\x16\x31\xd7\xf5\x17\x33\xee\x70\xe9\x56\x26\xbc\xb3\x1d\x71\x64\x31\x04\x5d\x01\x6a\x77\xd0\x10\xe4\x5f\xd4\x0a\x16\x92\x24\x67\xb6\x6e\x5a\xc2\x14\x54\x0a\x3b\x8f\x18\x2f\xbd\x33\x2c\x2a\x1f\xad\xba\xbe\x42\x99\x20\x82\xd4\x0c\x5f\x99\xc8\xe5\xd7\xeb\xd1\x77\x01\x6b\x2b\x4e\x28\x0c\x10\xfb\x5e\x43\x6b\x83\x84\x09\x73\xf5\x01\xdc\xd0\x2c\x0a\x61\x0f\x08\x62\x1c\x11\xc9\x7c\x23\x94\x4c\x37\x43\x21\xdd\xc2\x1a\x36\x14\x5a\x55\x1d\xc1\x3b\xec\x83\xde\xbb\xf8\x77\xd4\x88\x5d\xb8\x07\xb2\x7b\x47\x17\xac\x0e\xa7\x32\x3a\x55\x65\xf0\x30\xaf\x80\x42\xce\x5f\x5c\xb9\xe3\xee\x78\x48\xc5\x96\x6c\x81\xea\x25\xea\xf4\xb7\xa1\xca\xa4\x5a\x7e\xfb\x29\x7c\xc2\xbb\x0d\x6f\x7e\x30\x45\x8a\xa5\x30\x24\xfa\x3c\x3c\xf5\x96\x4f\xc9\x07\x40\x87\x72\x27\xe2\x6e\x7a\x7e\x30\x74\x70\x2b\xe6\xe6\x2a\xcb\xc4\xaa\x3e\x75\x9d\xd8\xba\xb3\xd5\x36\x7a\x89\x27\xef\x91\x2c\x37\xff\xba\x29\x1c\xee\x19\xfb\xba\x47\x62\x0c\xa1\xc7\xa8\x46\xf3\xca\x7a\xff\x0e\x1c\x1a\xed\x9e\x78\x61\xa8\xa1\x5a\x00\x85\x62\x2e\xf6\xfc\x7f\x20\xd5\x9f\xdd\xaf\xbf\x9f\x0f\x36\x9f\xb8\x04\x3f\xa3\xa8\xa9\x6e\xce\xf5\x11\x17\x55\x3f\xc0\x9a\xbd\xf3\x52\x8c\x12\x9d\x77\x29\x1a\xaa\x1f\x4b\xf1\xa6\x51\xd1\x3f\x43\x74\x96\x64\xbc\x1b\x38\x67\xc9\xe8\x8b\x4e\x0d\xc7\xb6\x3f\x8d\x21\x99\xe7\x83\xd0\x7e\xed\x33\x77\xc3\xa0\x25\x99\xd8\x93\x1e\x0c\xda\x18\x71\x5e\xf3\x05\x71\xff\xe1\x97\x99\x0a\x6f\xee\x42\xe2\x1b\x95\x46\x0b\xdc\xde\xf0\xaf\xe9\xa0\x79\x6e\xad\x3b\xfe\x9e\x6d\x3a\xfe\x5b\xfe\xd1\xd7\x6d\x95\x9e\xe2\x3c\xda\xad\xfe\xd6\x3f\xaf\xb3\x5f\xa6\x6d\x7b\xf6\x19\x90\xd8\xeb\xbd\x4e\xa2\xdd\xba\xfb\x09\x93\xdf\x23\xf8\xbe\x79\x1b\x9e\x16\xb6\xdf\x9e\x4d\x5c\x60\x58\xb9\x7f\xeb\x6f\x09\x57\xaf\xab\xff\x05\x00\x00\xff\xff\x49\xe6\x45\x51\xb5\x3d\x00\x00") - -func dataConfig_schema_v34JsonBytes() ([]byte, error) { - return bindataRead( - _dataConfig_schema_v34Json, - "data/config_schema_v3.4.json", - ) +func (f *_escFile) Close() error { + return nil } -func dataConfig_schema_v34Json() (*asset, error) { - bytes, err := dataConfig_schema_v34JsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "data/config_schema_v3.4.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil +func (f *_escFile) Readdir(count int) ([]os.FileInfo, error) { + return nil, nil } -var _dataConfig_schema_v35Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x1b\xcb\x72\xe3\xb8\xf1\xae\xaf\x60\x61\xf7\xb6\x7e\x6c\x55\x36\xa9\xca\xdc\x72\xcc\x29\x39\xc7\xa5\x61\x41\x60\x4b\xc2\x1a\x04\xb0\x0d\x50\x63\xed\x94\xff\x3d\xc5\x87\x28\x90\x04\x08\x50\x92\xc7\x9e\xda\x39\xd9\x22\xbb\x1b\xfd\x42\xbf\x00\x7e\x5d\x65\x19\xf9\xd9\xb0\x3d\x94\x94\x7c\xca\xc8\xde\x5a\xfd\xe9\xf1\xf1\x77\xa3\xe4\x7d\xfb\xf4\x41\xe1\xee\xb1\x40\xba\xb5\xf7\xbf\xfe\xf6\xd8\x3e\xfb\x89\xdc\xd5\x78\xbc\xa8\x51\x98\x92\x5b\xbe\xcb\xdb\x37\xf9\xe1\x6f\x0f\x7f\x7f\xa8\xd1\x5b\x10\x7b\xd4\x50\x03\xa9\xcd\xef\xc0\x6c\xfb\x0c\xe1\x8f\x8a\x23\xd4\xc8\x4f\xe4\x00\x68\xb8\x92\x64\x7d\xb7\xaa\xdf\x69\x54\x1a\xd0\x72\x30\xe4\x53\x56\x33\x97\x65\x3d\xc8\xe9\x81\x43\xd6\x58\xe4\x72\x47\x9a\xc7\xaf\x0d\x85\x2c\x23\x06\xf0\xc0\x99\x43\xa1\x67\xf5\xa7\xc7\x33\xfd\xc7\x1e\xec\x6e\x4c\xd5\x61\xb6\x79\xae\xa9\xb5\x80\xf2\xbf\x53\xde\x9a\xd7\x9f\x9f\xe8\xfd\x9f\xff\xba\xff\xdf\xaf\xf7\xff\x7c\xc8\xef\xd7\xbf\xfc\x3c\x78\x5d\xeb\x17\x61\xdb\x2e\x5f\xc0\x96\x4b\x6e\xb9\x92\xfd\xfa\xa4\x87\x7c\xed\xfe\x7b\xed\x17\xa6\x45\xd1\x00\x53\x31\x58\x7b\x4b\x85\x81\xa1\xcc\x12\xec\x17\x85\xcf\x31\x99\x7b\xb0\x77\x92\xb9\x5b\xdf\x23\xf3\x50\x9c\x83\x12\x55\x19\xb5\xe0\x09\xea\x9d\x84\x69\x97\xbf\x8d\xfd\x0c\x30\x04\x1b\x77\xd9\x16\xea\xdd\x3c\xb6\x5e\xfe\x36\x02\xb7\x51\x23\x26\xf0\x09\xea\x9d\x04\x6e\x97\xbf\x4e\xe0\xd5\x49\x68\x3f\x8f\xe4\xf3\xcb\x7d\xfd\xf7\xb5\xa1\x39\x4b\xaf\xa5\xe2\xf0\xd7\x08\x31\x88\x79\x3e\x75\xfa\x62\x4e\x58\x9f\xbd\x42\x03\x9a\x2c\x40\x0b\x75\x6c\x38\xf7\xeb\xac\x05\x28\x41\x5a\xd2\xab\x29\xcb\xc8\xa6\xe2\xa2\x18\x6b\x5d\x49\xf8\x4f\x4d\xe2\xc9\x79\x98\x65\x5f\xc7\xe1\xdd\xa1\xd3\xbc\x1f\xfc\x0a\x3b\x45\xff\x3e\x20\x4b\xff\x9e\x29\x69\xe1\xc5\x36\x42\xcd\x2f\xdd\xaa\x40\xb1\x67\xc0\x2d\x17\x90\x8a\x41\xb1\xf5\xf4\x80\xca\x04\x37\x36\x57\x98\x17\x9c\x59\x2f\xbe\xa0\x1b\x10\x57\x51\x60\x94\xed\x21\xdf\xa2\x2a\xa3\x54\xb6\x79\x2b\x89\xf1\x12\x3a\x45\xf0\x44\xc9\x2d\xc5\x1d\x24\x6b\xd6\xec\xcb\xdc\xf0\x3f\x07\x7a\x7d\x22\x5c\x5a\xd8\x01\x92\xbb\x1e\x77\xfd\x3a\xc2\x9d\x10\x8b\x6f\xcc\x1e\xd5\xf9\xb5\x5e\x79\x08\x12\x46\x75\x4e\x8b\x62\x20\x04\x45\xa4\xc7\x9a\x23\x6e\xa1\x34\x7e\xf9\x32\x52\x49\xfe\x47\x05\xff\xee\x40\x2c\x56\x30\xa6\x5b\xa0\xd2\xb7\x27\xbc\x43\x55\xe9\x5c\x53\xac\x77\xe1\xbc\xee\x09\x53\x65\x49\xe5\xad\xb6\xe6\x12\x39\x12\x34\x3f\x49\x12\x99\xbb\xdf\xbb\x35\xdc\x57\xfd\x6a\x03\xb6\x02\xd2\xc4\xe5\x99\x06\x9b\x78\xb8\x89\x07\x9c\xda\xd3\x55\x85\x2c\x35\x7e\x2c\xdd\x47\x59\x46\x2a\x5e\xa4\x03\xef\x96\x00\x97\xaa\x18\xf2\x2d\xab\x72\x03\x48\xc6\x5b\x72\xb8\xb3\xa6\xbf\xd7\x2b\xdf\x9b\x91\xf5\x2d\xe5\x12\x30\x97\xb4\x8c\xe9\x8a\x30\x84\x02\xa4\xe5\x54\xe4\x46\x03\x1b\x80\x9f\x2c\x35\x63\x19\x92\x14\xcf\x09\xc2\x8e\x1b\x8b\x47\x2f\xe4\x59\x0a\x97\xb1\x02\x34\xc8\xc2\xe4\x6d\x07\xb3\x3c\xf4\x92\x02\xfa\x76\xe6\xa6\x61\xa2\x90\x73\x29\xa5\x25\x53\x27\x95\x9a\x37\x32\x42\xcc\x0d\x50\x64\xfb\x0b\xf1\x55\x49\xb9\x4c\x31\x2a\x48\x8b\x47\xad\x78\x1b\xc6\x3e\x5c\x7c\x02\x79\xc8\x7b\xbf\x59\xac\x06\x90\x07\x8e\x4a\x96\xa7\x20\x9d\x96\xda\x1d\xfc\x17\xad\x0c\x5c\x1f\x1c\xfb\x44\xdb\x09\x7e\xd7\xef\xe9\xf5\x50\x7b\x64\xab\xb0\xa4\x35\xb3\xa7\xb5\xdd\x3d\x3c\x58\x6a\xea\x79\xae\x02\x5d\x19\xea\x92\x98\x8a\x5c\x70\xf9\x7c\x7b\x17\x87\x17\x8b\x34\xdf\x2b\x63\x2f\xa9\x9e\xc8\x1e\xa8\xb0\x7b\xb6\x07\xf6\x3c\x83\xee\x42\x0d\xb0\x95\xb1\x29\x4e\xce\x4b\xba\x8b\x03\x69\x16\x05\x31\x4a\x50\xdb\x4d\x4a\xe6\x00\x2f\x2e\x27\xc9\x4d\xad\xe4\x90\x55\xbb\x5d\x0d\x1a\x72\xcd\x49\x7b\xd2\xbd\x8e\x15\xf6\x05\xf2\x03\x60\x6a\xf5\xa9\xf4\xb9\xab\x1a\xbf\x4c\x49\xfb\xd1\x36\x74\x00\xfa\xf9\xa1\xed\x42\x67\xb6\x5f\xf3\x9f\x10\xd3\x72\x37\xf3\x64\xd7\xf1\x93\x91\x84\x69\x05\xf1\xc0\x2a\x25\x65\x75\xdd\x8b\x60\x02\x76\x3d\x83\x76\x5d\x41\x3e\x29\x0e\xce\xb0\x13\xe0\x49\x06\x0e\x85\xf4\x8b\x9a\x95\xe5\x4d\x62\x92\xe9\xa2\x93\x84\x88\x34\x21\xf6\x52\xd9\x3c\xb3\x1b\x77\xb1\x06\x8e\x0a\x4e\x0d\xc4\x37\xfb\x6c\xd7\xd7\x53\xe3\xfa\xf0\x5b\xa2\x4f\xf8\x70\xff\x31\x8b\x1b\x40\x0d\xd2\x4c\xef\xf1\x22\xa4\xdc\x5a\x56\x08\x2f\x23\xeb\x78\x75\xfb\x96\x2d\xa8\x1e\x56\xe8\xc3\x58\xd1\x44\x08\x77\x83\x69\x85\xf6\x9b\x34\x4d\xe7\x38\x75\xae\x0c\xda\xc5\xa7\x7d\xd4\xd8\xdc\x49\x48\x6f\xd3\x7c\xcd\x44\x29\x0f\xb4\xa7\xf5\x3a\x4d\x24\xfc\x08\xba\xda\x08\x6e\xf6\x50\x2c\xc1\x41\x65\x15\x53\x22\x6d\x63\x78\x67\x4c\xe9\x9b\x61\xa6\x11\xbb\xa8\x88\xd3\xc8\x0f\x5c\xc0\x6e\x24\xf1\x46\x29\x01\x54\x0e\x12\x05\x02\x2d\x72\x25\xc5\x31\x01\xd2\x58\x8a\xd1\xf1\x85\x01\x56\x21\xb7\xc7\x5c\x69\x7b\xf3\xf2\xd1\x3f\x8f\x3a\x7b\x7d\x3f\x8e\x1a\x32\x34\x9a\xe4\x67\x3f\x66\x16\x7f\x99\x99\x85\x39\x1a\x66\x2f\xab\xad\x8d\x2d\xb8\xcc\x95\x06\x19\xdd\x1b\xc6\x2a\x9d\xef\x90\x32\xc8\x35\x20\x57\x5e\x55\x0c\x02\x6c\x51\x61\xdb\x1a\x4c\xc8\x18\xbe\x93\xd4\x1f\x77\x1c\x50\x5b\xea\xed\x85\xd3\x02\x6b\xe3\x9b\xbd\x12\xbc\xe4\xe1\x4d\xe3\xf1\xda\x84\x7a\xad\xad\xd5\xfc\x25\xda\x4c\x79\x96\x14\xb2\x67\x3a\x84\xf9\x06\x21\xa1\x33\xd8\x53\x5c\x90\x3a\x9a\x8d\xb9\x0d\xe4\x27\x5f\xdf\xe0\xe5\x6b\x70\x26\xdf\xd0\xbb\xeb\x18\x59\x7b\xe1\x17\x95\x5e\x63\x36\xd6\xc1\xea\xc7\xbf\xa9\x2a\x13\x6d\xe2\x1a\x18\x69\xe6\x1a\x90\x1e\x74\x7a\xb8\x9c\x7d\x17\x11\x7a\x60\xa3\x06\xdc\x63\x9b\x84\x38\xde\xad\x94\x18\x3b\xdf\x3a\xea\x27\x57\x04\x0e\x0e\x53\xd2\x70\x63\x41\x32\xff\x20\xd6\x8b\xb4\xe1\x93\x53\x8e\xa9\x52\xe6\xfb\xae\xb4\xae\xab\x81\xa2\xbb\xf0\x28\xc6\xdf\x9b\x24\xef\xd5\xee\xde\xc1\x37\x11\x45\x2a\xa6\x74\xc0\x34\xe9\x62\xbc\x71\x01\x3b\x9a\x74\xcc\x94\xad\xa1\x08\xf3\x45\xe1\x73\x9d\xbf\x0a\xee\x0f\x34\xab\x11\xca\x82\x8b\x0e\xa3\x19\xe2\x89\x80\xef\x74\xde\x05\x8d\xde\x78\x98\xbf\x29\xd0\x01\x05\x4f\xf1\xb9\xa1\x9b\xd1\x79\x87\x2f\x2f\xd7\x89\x04\x0f\xfe\xf2\x20\x5e\x5f\x20\x58\xe4\xa3\x83\x8b\x53\xe5\xe5\x16\x08\x60\x3e\xe6\x78\xdf\xf2\x12\x54\xe5\x8d\x65\x29\xc5\x15\x45\xbb\xbc\x3c\x5b\xb9\x6e\xda\xd1\x23\xce\x9d\x8a\x88\x0b\x39\x90\x63\x0f\x7a\x72\x8e\xc1\xda\xa1\x41\xd4\x4d\x52\xb2\x29\xc8\xa2\x39\xa0\x49\x4a\xbd\x08\x5a\x70\x46\x4d\xac\xbc\xb9\x62\x44\x5d\xe9\x82\x5a\xc8\xbb\xab\x3b\x4b\x0a\xca\x99\x4a\x52\x53\xa4\x42\x80\xe0\xa6\x4c\xa9\xcc\x48\x01\x82\x7a\x53\x53\xd4\x6f\x1a\xf4\x2d\xe5\xa2\x42\xc8\x29\x4b\x18\xe7\x77\x96\x92\xdc\x2a\x6f\xf0\x4a\x5b\xb2\xa4\x2f\xf9\x69\xd9\x06\x24\xb2\x6b\x1b\x24\x85\x85\xbf\x32\xbb\xab\xfd\xa2\x2a\x3d\xb5\x51\xbb\x2f\xee\xb7\x1c\x8d\x6d\x5b\x68\xa5\xbb\x5f\xc3\xa0\xfe\x1a\x1c\x4b\xa4\x4e\xb2\x1d\xaf\x6b\x8b\x98\x65\xfd\xc5\x8c\x3b\x78\xbb\x95\x18\xc5\x18\xd5\xe6\x3d\xd3\x55\xea\x60\x95\x94\x50\xaa\xd8\x49\xb4\x47\x7f\xe9\x3a\xf4\xa0\xd6\xba\xac\x33\x42\xe8\xa4\xe4\xa3\x28\xc0\x03\xbd\x03\x09\xc8\x59\x3e\xf0\x86\x40\x74\x99\xc2\xbe\xd1\xb8\xf7\x7a\xcf\x6e\xd3\x8c\x12\xbc\xad\x85\x6f\xe1\xde\x4c\xc9\x96\x8f\x94\xc8\x73\x65\xa8\xab\xe3\x4e\xdd\xc9\x97\xda\x46\xb3\x42\x83\xf0\x85\xcb\x42\x7d\x59\x9e\x51\x6f\xa0\x6d\x2d\x28\x83\x51\x16\xbe\x56\xd1\xc6\x22\xe5\xd2\x2e\x3e\x54\x1d\xab\x45\x23\x6c\x01\x41\x4e\xa3\x5c\x36\xdf\xdc\x66\xe1\x06\x37\x26\x5b\x5c\xc2\x0e\xc2\xe8\xba\xcb\x7b\x87\xd9\xf6\xb5\xc6\xbf\xa2\xee\xf7\x86\x9b\xb9\xd2\x6d\x8a\x30\xe9\x01\x86\xd6\xf3\x58\x2d\x6c\xad\x99\x9b\x4f\x05\x37\x0c\xc1\x42\xbf\x72\x7f\x81\x6a\xe8\x62\xb3\x9e\x30\xef\x05\xe4\xb9\x6b\xbe\xa3\x81\x9a\x1c\xa8\xa8\x12\x86\xb5\x17\x1d\x6f\x87\xda\xbf\x04\xe4\xd1\x07\x0a\xce\x35\xd8\x39\x9b\x9e\xc0\x6e\x50\x8b\xa7\xdc\x24\x49\xba\xef\xd0\x41\xe5\x4a\xdf\x7e\xe0\x1a\xbf\xd3\xb0\x8e\x8f\xfb\xb8\xa6\xe5\xad\x22\x6c\xf2\x0d\x10\xe2\x6d\x18\xb2\x0f\x10\x3b\xab\x8d\x0c\xcc\xd3\x3e\x76\xec\x74\x7b\xc4\xee\x96\x57\xc0\xaa\x4f\xfd\xec\xe1\xae\xd7\xd5\x3a\xd9\xc4\xc1\x8d\x71\x3b\xfe\x9b\x31\xc8\xf8\x94\xc4\x37\x2f\xa1\xd6\x52\xb6\x4f\x1a\xad\x2c\xec\x70\xaf\xc8\x44\x93\x79\xa1\x37\x54\x75\x50\x3f\x22\xd5\x82\x48\xf5\xbd\xfb\xf5\xb7\xf3\xc1\xee\xd3\xb1\xe8\xe7\x49\x0d\x54\x74\xf6\x79\x8d\xe7\x25\xdc\xf3\xfe\x00\x76\x7d\x67\x73\x4d\x92\xa1\xd7\x5c\x1d\xd4\x0f\x73\xbd\xb7\xb9\x46\xa7\xef\x8e\xd9\xa6\x73\xf4\x39\x4d\x26\x5f\x11\xec\x30\xd6\x43\x36\xc6\x60\x9e\x0f\xb6\x43\x1d\x4c\x90\xa9\xd0\x69\xce\x68\xd1\x4e\x89\xf3\x92\xdf\x30\x7f\x3c\xfc\x32\x53\x29\xce\x5d\xe5\x7d\xa3\x12\xeb\x06\xf7\x9e\xfc\x36\x1d\x8d\x28\x4e\xda\x9d\x7e\x6f\x1a\x8e\x11\x27\xfc\xc9\xd7\xa7\xb5\x9c\xf2\x38\x39\xe7\xf9\x3a\x3c\xe9\x6e\xbf\x1c\x5d\x0f\xf4\x33\x02\x69\x6f\xd0\x3b\x09\x7b\x9d\xd4\xf8\xfa\xbe\x49\x1d\x9f\xb3\x9f\xbe\x0d\x0d\x5c\xfd\x59\xb9\x7f\x9b\x6f\x7d\x57\xaf\xab\xff\x07\x00\x00\xff\xff\xfe\x67\x55\x11\x55\x41\x00\x00") - -func dataConfig_schema_v35JsonBytes() ([]byte, error) { - return bindataRead( - _dataConfig_schema_v35Json, - "data/config_schema_v3.5.json", - ) +func (f *_escFile) Stat() (os.FileInfo, error) { + return f, nil } -func dataConfig_schema_v35Json() (*asset, error) { - bytes, err := dataConfig_schema_v35JsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "data/config_schema_v3.5.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil +func (f *_escFile) Name() string { + return f.name } -var _dataConfig_schema_v36Json = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x1b\xcb\x92\xe3\x28\xf2\xee\xaf\x50\x30\x73\x9b\x7a\x74\xc4\xce\x6e\xc4\xf6\x6d\x8f\x7b\xda\x3d\x6f\x85\x5b\x81\x51\xda\x66\x0a\x01\x03\xc8\x5d\x9e\x8e\xfa\xf7\x0d\x3d\x2d\x10\x08\x64\xab\xba\x6a\x62\xfa\x54\x65\x29\x33\xc9\x17\x49\x66\x92\xfa\xb6\xc9\x32\xf4\xb3\x26\x47\x28\x31\xfa\x9c\xa1\xa3\x31\xf2\xf3\xe3\xe3\x6f\x5a\xf0\xfb\xf6\xe9\x83\x50\x87\xc7\x42\xe1\xbd\xb9\xff\xf4\xeb\x63\xfb\xec\x27\x74\x57\xe3\xd1\xa2\x46\x21\x82\xef\xe9\x21\x6f\xdf\xe4\xa7\xbf\x3d\xfc\xfd\xa1\x46\x6f\x41\xcc\x59\x42\x0d\x24\x76\xbf\x01\x31\xed\x33\x05\xbf\x57\x54\x41\x8d\xfc\x84\x4e\xa0\x34\x15\x1c\x6d\xef\x36\xf5\x3b\xa9\x84\x04\x65\x28\x68\xf4\x39\xab\x99\xcb\xb2\x01\xa4\x7f\x30\x22\xab\x8d\xa2\xfc\x80\x9a\xc7\xaf\x0d\x85\x2c\x43\x1a\xd4\x89\x92\x11\x85\x81\xd5\x9f\x1e\x2f\xf4\x1f\x07\xb0\x3b\x97\xea\x88\xd9\xe6\xb9\xc4\xc6\x80\xe2\xff\x9d\xf2\xd6\xbc\xfe\xf2\x84\xef\xff\xf8\xd7\xfd\xff\x3e\xdd\xff\xf3\x21\xbf\xdf\xfe\xf2\xb3\xf5\xba\xd6\xaf\x82\x7d\xbb\x7c\x01\x7b\xca\xa9\xa1\x82\x0f\xeb\xa3\x01\xf2\xb5\xfb\xef\x75\x58\x18\x17\x45\x03\x8c\x99\xb5\xf6\x1e\x33\x0d\xb6\xcc\x1c\xcc\x57\xa1\x9e\x63\x32\x0f\x60\xef\x24\x73\xb7\xbe\x47\x66\x5b\x9c\x93\x60\x55\x19\xb5\x60\x0f\xf5\x4e\xc2\xb4\xcb\xaf\x63\x3f\x0d\x44\x81\x89\xbb\x6c\x0b\xf5\x6e\x1e\x5b\x2f\xbf\x8e\xc0\x6d\xd4\x88\x09\xdc\x43\xbd\x93\xc0\xed\xf2\xb7\x09\xbc\xe9\x85\xf6\xf3\x88\xbe\xbc\xdc\xd7\x7f\x5f\x1b\x9a\xb3\xf4\x5a\x2a\x23\xfe\x1a\x21\xac\x98\xe7\x53\xa7\x2f\xe6\x84\xf5\x39\x28\x34\xa0\xc9\x02\x24\x13\xe7\x86\x73\xbf\xce\x5a\x80\x12\xb8\x41\x83\x9a\xb2\x0c\xed\x2a\xca\x0a\x57\xeb\x82\xc3\x7f\x6a\x12\x4f\xa3\x87\x59\xf6\xcd\x0d\xef\x23\x3a\xcd\x7b\xeb\x57\xd8\x29\x86\xf7\x01\x59\x86\xf7\x44\x70\x03\x2f\xa6\x11\x6a\x7e\xe9\x56\x05\x82\x3c\x83\xda\x53\x06\xa9\x18\x58\xb5\x9e\x1e\x50\x19\xa3\xda\xe4\x42\xe5\x05\x25\xc6\x8b\xcf\xf0\x0e\xd8\x4d\x14\x08\x26\x47\xc8\xf7\x4a\x94\x51\x2a\xfb\xbc\x95\x44\x7b\x09\xf5\x11\x3c\x51\x72\x83\xd5\x01\x92\x35\xab\x8f\x65\xae\xe9\x1f\x96\x5e\x9f\x10\xe5\x06\x0e\xa0\xd0\xdd\x80\xbb\x7d\x75\x70\x27\xc4\xe2\x1b\x73\x40\x1d\xfd\xda\x6e\x3c\x04\x11\xc1\x32\xc7\x45\x61\x09\x81\x95\xc2\xe7\x9a\x23\x6a\xa0\xd4\x7e\xf9\x32\x54\x71\xfa\x7b\x05\xff\xee\x40\x8c\xaa\xc0\xa5\x5b\x28\x21\xd7\x27\x7c\x50\xa2\x92\xb9\xc4\xaa\xde\x85\xf3\xba\x47\x44\x94\x25\xe6\x6b\x6d\xcd\x25\x72\x24\x68\x7e\x72\x48\x64\xe3\xfd\xde\xad\x31\x7e\x35\xac\x66\xb1\x15\x90\x26\x2e\xcf\x34\xd8\xc4\xc3\x4d\x3c\xe0\xd4\x9e\x2e\x2a\x45\x52\xe3\xc7\xd2\x7d\x94\x65\xa8\xa2\x45\x3a\xf0\x61\x09\x70\x29\x0a\x9b\x6f\x5e\x95\x3b\x50\xc8\xdd\x92\xf6\xce\x9a\xfe\xde\x6e\x7c\x6f\x1c\xeb\x1b\x4c\x39\xa8\x9c\xe3\x32\xa6\x2b\x44\x14\x14\xc0\x0d\xc5\x2c\xd7\x12\x88\x05\xde\x5b\x6a\xc6\x32\x28\x29\x9e\x23\x05\x07\xaa\x8d\x3a\x7b\x21\x2f\x52\x8c\x19\x2b\x40\x02\x2f\x74\xde\x56\x30\xcb\x43\x2f\x2a\x60\x28\x67\x56\x0d\x13\x05\x9f\x3b\x52\x5a\x32\xf5\xa1\x52\xf3\x86\x1c\xc4\x5c\x03\x56\xe4\x78\x25\xbe\x28\x31\xe5\x29\x46\x05\x6e\xd4\x59\x0a\xda\x86\xb1\x0f\x17\x9f\x80\x9f\xf2\xc1\x6f\x16\xab\x01\xf8\x89\x2a\xc1\xcb\x3e\x48\xa7\x1d\xed\x23\xfc\x17\x29\x34\xdc\x1e\x1c\x87\x83\xb6\x13\xfc\x6e\xd8\xd3\x5b\x5b\x7b\x68\x2f\x54\x89\x6b\x66\xfb\xb5\xc7\x7b\xd8\x5a\x6a\xea\x79\x63\x05\x8e\x65\xa8\x53\x62\xcc\x72\x46\xf9\xf3\xfa\x2e\x0e\x2f\x46\xe1\xfc\x28\xb4\xb9\x26\x7b\x42\x47\xc0\xcc\x1c\xc9\x11\xc8\xf3\x0c\xfa\x18\xca\xc2\x16\xda\xa4\x38\x39\x2d\xf1\x21\x0e\x24\x49\x14\x44\x0b\x86\x4d\xd7\x29\x99\x03\xbc\x3a\x9d\x44\xab\x5a\x69\x44\x56\x1c\x0e\x35\x68\xc8\x35\x27\xe5\x49\xf7\x3a\x96\xd8\x17\x8a\x9e\x40\xa5\x66\x9f\x42\x5e\xaa\x2a\xf7\x65\xca\xb1\x1f\x2d\x43\x2d\xd0\x2f\x0f\x6d\x15\x3a\xb3\xfd\x9a\xff\x18\x9b\xa6\xbb\x99\xe7\x74\x75\x9f\x38\x12\xa6\x25\xc4\x96\x55\x4a\x4c\xea\xbc\x57\x81\x0e\xd8\xf5\x02\xda\x55\x05\xf9\x24\x39\xb8\xc0\x4e\x80\x27\x27\x70\x28\xa4\x5f\x55\xac\x2c\x2f\x12\x93\x4c\x17\xed\x24\x44\xa4\x09\xb1\x97\xca\xe6\x85\xdd\xb8\x8b\x35\x70\x98\x51\xac\x21\xbe\xd9\x67\xab\xbe\x81\x1a\x95\xa7\x5f\x13\x7d\xc2\x87\xfb\x8f\x59\xdc\x00\x6a\x90\x66\x7a\x8d\x17\x21\x35\xce\x65\x19\xf3\x32\xb2\x8d\x67\xb7\x6f\x59\x82\x4a\x3b\x43\xb7\x63\x45\x13\x21\xc6\x1b\x4c\x0a\x65\xbe\x4b\xd1\x74\x89\x53\x97\xcc\xa0\x5d\x7c\x5a\x47\xb9\xe6\x4e\x42\x7a\x9b\xe2\x6b\x26\x4a\x79\xa0\x3d\xa5\x57\xdf\x91\xf0\x23\xc8\x6a\xc7\xa8\x3e\x42\xb1\x04\x47\x09\x23\x88\x60\x69\x1b\xc3\xdb\x63\x4a\xdf\x0c\x33\x85\xd8\x55\x49\x9c\x54\xf4\x44\x19\x1c\x1c\x89\x77\x42\x30\xc0\xdc\x3a\x28\x14\xe0\x22\x17\x9c\x9d\x13\x20\xb5\xc1\x2a\xda\xbe\xd0\x40\x2a\x45\xcd\x39\x17\xd2\xac\x9e\x3e\xfa\xfb\x51\x17\xaf\x1f\xda\x51\x36\x43\x4e\x27\x3f\xfb\xd1\xb3\xf8\xcb\xf4\x2c\xf4\x59\x13\x73\x5d\x6e\xad\x4d\x41\x79\x2e\x24\xf0\xe8\xde\xd0\x46\xc8\xfc\xa0\x30\x81\x5c\x82\xa2\xc2\xab\x0a\x2b\xc0\x16\x95\x6a\x4b\x83\x09\x19\x4d\x0f\x1c\xfb\xe3\xce\x08\xd4\x94\x72\x7f\x65\xb7\xc0\x98\xf8\x66\xaf\x18\x2d\x69\x78\xd3\x78\xbc\x36\x21\x5f\x6b\x73\x35\x7f\x8a\x36\x93\x9e\x25\x85\xec\x99\x0a\x61\xbe\x40\x48\xa8\x0c\x8e\x58\x2d\x38\x3a\x9a\x8d\xb9\x0f\x9c\x4f\xbe\xba\xc1\xcb\x97\x75\x27\xdf\xd0\xbb\xeb\x18\xd9\x7a\xe1\x17\xa5\x5e\x2e\x1b\xdb\x60\xf6\xe3\xdf\x54\x95\x8e\x16\x71\x0d\x0c\xd7\x73\x05\xc8\x00\x3a\xbd\x5c\xce\xfe\x14\x11\xda\xb2\x51\x03\xee\xb1\x4d\x42\x1c\xef\x56\x4a\x8c\x9d\x6f\x1d\xf5\x93\x33\x82\x11\x0e\x11\x5c\x53\x6d\x80\x13\x7f\x23\xd6\x8b\xb4\xa3\x93\x5b\x8e\xa9\x52\xe6\xeb\xae\xb4\xaa\xab\x81\xc2\x87\x70\x2b\xc6\x5f\x9b\x24\xef\xd5\x6e\xee\xe0\xbb\x88\xc2\x05\x11\x32\x60\x9a\x1b\xc5\x18\x8e\x94\xb7\x97\xa2\xcf\xe1\xc2\xc5\xa9\x1b\x39\x67\xea\xd8\x92\x72\x5a\x56\x25\xfa\x9c\x7d\x0a\x55\xac\xe9\x9a\x79\xe3\xd4\xde\xe9\x01\xcd\x24\xf4\xa1\xd8\xfb\x55\xa8\xe7\xfa\x64\x2f\xa8\x3f\x04\x6f\x1c\x94\x05\x23\x20\x4e\x77\xb5\x27\xe0\x9b\x5b\x18\x83\x46\x67\x41\xe6\x67\x28\x3a\xa0\xe0\x7c\x03\xd5\x78\xe7\xdc\x04\xf9\x32\x96\xda\x51\xd4\xc9\x9f\x38\xc5\x33\x2f\x05\x46\x51\xe7\x4a\xa7\xcf\x49\xc7\xa9\x13\xe8\x8f\x79\xf1\x61\x68\x09\xa2\xf2\x46\xf9\x94\xb4\x13\x2b\xb3\x3c\x71\xdd\x8c\xdd\xb4\xa3\x87\x46\xd3\x26\x11\x17\x1a\x41\xba\x1e\xf4\x34\xba\x20\x6c\xdb\x29\x51\x37\x49\xc9\x33\x80\x17\xcd\xd5\x55\x52\x52\xa2\x40\x32\x4a\xb0\x8e\x25\x7e\x37\x34\xef\x2b\x59\x60\x03\x79\x37\xd4\xb4\x24\xd5\x9e\xc9\xb1\x25\x56\x98\x31\x60\x54\x97\x29\x39\x2b\x2a\x80\x61\xef\xa1\x1d\xf5\x9b\x06\x7d\x8f\x29\xab\x14\xe4\x98\x24\x5c\x74\x74\x96\xe2\xd4\x08\x6f\xf0\x4a\x5b\xb2\xc4\x2f\x79\xbf\x6c\x03\x12\xd9\xb5\x0d\x92\x50\x85\x3f\x67\xbd\xab\xfd\xa2\x39\x3d\xdc\xac\xb1\xdd\x17\xf7\x7b\xaa\xb4\x69\x9b\x0b\x42\x76\xbf\xec\xa0\x6e\x25\xcc\x96\xa1\x52\x7b\xfc\x23\xaf\x6b\xd3\xbb\x65\x95\xd7\x8c\x3b\x78\xeb\xb8\x18\xc5\x18\xd5\xe6\x3d\x91\x55\x6a\xcb\x19\x95\x50\x8a\xd8\x1d\xbd\x47\x7f\xe9\x3a\xf4\xa0\xd6\xba\xac\x4f\x84\xd0\x1d\xd2\x47\x51\x80\x07\xfa\x00\x1c\x14\x25\xb9\xe5\x0d\x81\xe8\x32\x85\x7d\xa3\x46\xf8\xed\x9e\xdd\x1e\x33\x82\xd1\xb6\x4a\x58\xc3\xbd\x89\xe0\x2d\x1f\x29\x91\xe7\xc6\x50\x57\xc7\x1d\x6c\x0c\x94\xd2\x44\x4f\x85\x06\xe1\x2b\xe5\x85\xf8\xba\xfc\x44\x5d\x41\xdb\x92\x61\x02\xce\x29\x7c\xab\xa2\xb5\x51\x98\x72\xb3\xf8\xba\xd9\x55\x8b\x54\xb0\x07\x05\x7c\x1a\xe5\xb2\xf9\xb2\x3f\x0b\x97\xfe\x31\xd9\xe2\x12\x76\x10\x5a\xd6\xf5\xef\x3b\x74\xfd\x6f\x35\xfe\x0d\x79\xbf\x37\xdc\xcc\xa5\x6e\x53\x84\x49\x0d\x60\x5b\xcf\x63\xb5\xb0\xb5\x66\x66\xc2\x0a\xaa\x89\x02\x03\xc3\xca\xc3\x68\x99\xed\x62\xb3\x9e\x30\xef\x05\xe8\xb9\x6b\x4b\x44\x03\x35\x3a\x61\x56\x25\xb4\xb1\xaf\xba\xf8\x0f\x95\x7f\x09\xc8\xce\xa7\x1b\xa3\x01\xe1\x39\x9b\xf6\x60\x2b\xe4\xe2\x29\x33\x36\x49\x93\x20\x1d\x54\x2e\xe4\xfa\xad\xe8\xf8\xb4\xc7\x36\xde\x08\xa5\x12\x97\x6b\x45\xd8\xe4\xd9\x18\xe4\x2d\x18\xb2\x0f\x10\x3b\xab\x1d\x0f\x74\x1a\x3f\x76\xec\x1c\xd7\x88\xdd\xfc\x5b\xc0\xaa\x4f\x43\xef\xe1\x6e\xd0\xd5\x36\xd9\xc4\xc1\x8d\xb1\x1e\xff\x4d\x1b\xc4\xbd\x3f\xf2\xf5\x4b\xb0\x31\x98\x1c\x93\x5a\x2b\x0b\x2b\xdc\x1b\x4e\xa2\x49\x27\xd5\x1b\xaa\x3a\xa8\x1f\x91\x6a\x41\xa4\xfa\xb3\xfb\xf5\xf7\xf3\xc1\xee\xa3\xba\xe8\x87\x5b\x0d\x54\xb4\xf7\x79\x8b\xe7\x25\x4c\xc0\x7f\x00\xbb\xbe\xb3\xb9\x26\x87\xa1\xd7\x5c\x1d\xd4\x0f\x73\xbd\xb7\xb9\x9c\xb9\x84\x91\xd9\xa6\x7d\xf4\x39\x4d\x26\x0f\x4f\x76\x18\x5b\x9b\x0d\x17\xcc\xf3\x29\x7b\xa8\x82\x09\x32\x15\xba\xcd\x71\x16\xed\x94\x38\x2f\xf9\x8a\xe7\xc7\xc3\x2f\x33\x99\xe2\xdc\x90\xf3\x1b\xa5\x58\x2b\x4c\x84\xf9\x6d\xea\xb4\x28\x7a\xed\x4e\xbf\xc4\x0d\xc7\x88\x1e\x7f\xf2\x5d\x6e\x2d\x27\x3f\x4f\xee\x79\xbe\xd9\x33\x00\xed\x37\xb5\x5b\x4b\x3f\x0e\x48\xfb\x6d\xc1\xe8\xc0\xde\x26\x15\xbe\xbe\xaf\x75\xdd\x09\x84\xfe\xab\xd9\xc0\x50\xd4\x66\xfc\xb7\xf9\x0a\x7a\xf3\xba\xf9\x7f\x00\x00\x00\xff\xff\x13\x21\x46\x84\x6f\x42\x00\x00") - -func dataConfig_schema_v36JsonBytes() ([]byte, error) { - return bindataRead( - _dataConfig_schema_v36Json, - "data/config_schema_v3.6.json", - ) +func (f *_escFile) Size() int64 { + return f.size } -func dataConfig_schema_v36Json() (*asset, error) { - bytes, err := dataConfig_schema_v36JsonBytes() - if err != nil { - return nil, err - } - - info := bindataFileInfo{name: "data/config_schema_v3.6.json", size: 0, mode: os.FileMode(0), modTime: time.Unix(0, 0)} - a := &asset{bytes: bytes, info: info} - return a, nil +func (f *_escFile) Mode() os.FileMode { + return 0 } -// Asset loads and returns the asset for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func Asset(name string) ([]byte, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("Asset %s can't read by error: %v", name, err) - } - return a.bytes, nil - } - return nil, fmt.Errorf("Asset %s not found", name) +func (f *_escFile) ModTime() time.Time { + return time.Unix(f.modtime, 0) } -// MustAsset is like Asset but panics when Asset would return an error. -// It simplifies safe initialization of global variables. -func MustAsset(name string) []byte { - a, err := Asset(name) - if err != nil { - panic("asset: Asset(" + name + "): " + err.Error()) - } - - return a +func (f *_escFile) IsDir() bool { + return f.isDir } -// AssetInfo loads and returns the asset info for the given name. -// It returns an error if the asset could not be found or -// could not be loaded. -func AssetInfo(name string) (os.FileInfo, error) { - cannonicalName := strings.Replace(name, "\\", "/", -1) - if f, ok := _bindata[cannonicalName]; ok { - a, err := f() - if err != nil { - return nil, fmt.Errorf("AssetInfo %s can't read by error: %v", name, err) - } - return a.info, nil - } - return nil, fmt.Errorf("AssetInfo %s not found", name) +func (f *_escFile) Sys() interface{} { + return f } -// AssetNames returns the names of the assets. -func AssetNames() []string { - names := make([]string, 0, len(_bindata)) - for name := range _bindata { - names = append(names, name) +// _escFS returns a http.Filesystem for the embedded assets. If useLocal is true, +// the filesystem's contents are instead used. +func _escFS(useLocal bool) http.FileSystem { + if useLocal { + return _escLocal } - return names + return _escStatic } -// _bindata is a table, holding each asset generator, mapped to its name. -var _bindata = map[string]func() (*asset, error){ - "data/config_schema_v3.0.json": dataConfig_schema_v30Json, - "data/config_schema_v3.1.json": dataConfig_schema_v31Json, - "data/config_schema_v3.2.json": dataConfig_schema_v32Json, - "data/config_schema_v3.3.json": dataConfig_schema_v33Json, - "data/config_schema_v3.4.json": dataConfig_schema_v34Json, - "data/config_schema_v3.5.json": dataConfig_schema_v35Json, - "data/config_schema_v3.6.json": dataConfig_schema_v36Json, -} - -// AssetDir returns the file names below a certain -// directory embedded in the file by go-bindata. -// For example if you run go-bindata on data/... and data contains the -// following hierarchy: -// data/ -// foo.txt -// img/ -// a.png -// b.png -// then AssetDir("data") would return []string{"foo.txt", "img"} -// AssetDir("data/img") would return []string{"a.png", "b.png"} -// AssetDir("foo.txt") and AssetDir("notexist") would return an error -// AssetDir("") will return []string{"data"}. -func AssetDir(name string) ([]string, error) { - node := _bintree - if len(name) != 0 { - cannonicalName := strings.Replace(name, "\\", "/", -1) - pathList := strings.Split(cannonicalName, "/") - for _, p := range pathList { - node = node.Children[p] - if node == nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - } +// _escDir returns a http.Filesystem for the embedded assets on a given prefix dir. +// If useLocal is true, the filesystem's contents are instead used. +func _escDir(useLocal bool, name string) http.FileSystem { + if useLocal { + return _escDirectory{fs: _escLocal, name: name} } - if node.Func != nil { - return nil, fmt.Errorf("Asset %s not found", name) - } - rv := make([]string, 0, len(node.Children)) - for childName := range node.Children { - rv = append(rv, childName) - } - return rv, nil + return _escDirectory{fs: _escStatic, name: name} } -type bintree struct { - Func func() (*asset, error) - Children map[string]*bintree -} -var _bintree = &bintree{nil, map[string]*bintree{ - "data": &bintree{nil, map[string]*bintree{ - "config_schema_v3.0.json": &bintree{dataConfig_schema_v30Json, map[string]*bintree{}}, - "config_schema_v3.1.json": &bintree{dataConfig_schema_v31Json, map[string]*bintree{}}, - "config_schema_v3.2.json": &bintree{dataConfig_schema_v32Json, map[string]*bintree{}}, - "config_schema_v3.3.json": &bintree{dataConfig_schema_v33Json, map[string]*bintree{}}, - "config_schema_v3.4.json": &bintree{dataConfig_schema_v34Json, map[string]*bintree{}}, - "config_schema_v3.5.json": &bintree{dataConfig_schema_v35Json, map[string]*bintree{}}, - "config_schema_v3.6.json": &bintree{dataConfig_schema_v36Json, map[string]*bintree{}}, - }}, -}} - -// RestoreAsset restores an asset under the given directory -func RestoreAsset(dir, name string) error { - data, err := Asset(name) - if err != nil { - return err - } - info, err := AssetInfo(name) - if err != nil { - return err - } - err = os.MkdirAll(_filePath(dir, filepath.Dir(name)), os.FileMode(0755)) - if err != nil { - return err - } - err = ioutil.WriteFile(_filePath(dir, name), data, info.Mode()) - if err != nil { - return err +// _escFSByte returns the named file from the embedded assets. If useLocal is +// true, the filesystem's contents are instead used. +func _escFSByte(useLocal bool, name string) ([]byte, error) { + if useLocal { + f, err := _escLocal.Open(name) + if err != nil { + return nil, err + } + b, err := ioutil.ReadAll(f) + _ = f.Close() + return b, err } - err = os.Chtimes(_filePath(dir, name), info.ModTime(), info.ModTime()) + f, err := _escStatic.prepare(name) if err != nil { - return err + return nil, err } - return nil + return f.data, nil } -// RestoreAssets restores an asset under the given directory recursively -func RestoreAssets(dir, name string) error { - children, err := AssetDir(name) - // File +// _escFSMustByte is the same as _escFSByte, but panics if name is not present. +func _escFSMustByte(useLocal bool, name string) []byte { + b, err := _escFSByte(useLocal, name) if err != nil { - return RestoreAsset(dir, name) - } - // Dir - for _, child := range children { - err = RestoreAssets(dir, filepath.Join(name, child)) - if err != nil { - return err - } + panic(err) } - return nil + return b +} + +// _escFSString is the string version of _escFSByte. +func _escFSString(useLocal bool, name string) (string, error) { + b, err := _escFSByte(useLocal, name) + return string(b), err +} + +// _escFSMustString is the string version of _escFSMustByte. +func _escFSMustString(useLocal bool, name string) string { + return string(_escFSMustByte(useLocal, name)) +} + +var _escData = map[string]*_escFile{ + + "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/data/config_schema_v3.0.json": { + local: "data/config_schema_v3.0.json", + size: 11063, + modtime: 1518458244, + compressed: ` +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 +/BUAAP//72YpJjcrAAA= +`, + }, + + "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/data/config_schema_v3.1.json": { + local: "data/config_schema_v3.1.json", + size: 12209, + modtime: 1518458244, + compressed: ` +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 +`, + }, + + "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/data/config_schema_v3.2.json": { + local: "data/config_schema_v3.2.json", + size: 13755, + modtime: 1518458244, + compressed: ` +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 +`, + }, + + "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/data/config_schema_v3.3.json": { + local: "data/config_schema_v3.3.json", + size: 15414, + modtime: 1518458244, + compressed: ` +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 +ZccPpEaO8N0m78L+f178PwAA//9GlSx0NjwAAA== +`, + }, + + "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/data/config_schema_v3.4.json": { + local: "data/config_schema_v3.4.json", + size: 15797, + modtime: 1518458244, + compressed: ` +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 +`, + }, + + "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/data/config_schema_v3.5.json": { + local: "data/config_schema_v3.5.json", + size: 16725, + modtime: 1518458244, + compressed: ` +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 +`, + }, + + "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/data/config_schema_v3.6.json": { + local: "data/config_schema_v3.6.json", + size: 17007, + modtime: 1518458244, + compressed: ` +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 +`, + }, + + "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/data/config_schema_v3.7.json": { + local: "data/config_schema_v3.7.json", + size: 17777, + modtime: 1518458244, + compressed: ` +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 +`, + }, + + "/": { + isDir: true, + local: "", + }, + + "/data": { + isDir: true, + local: "data", + }, } - -func _filePath(dir, name string) string { - cannonicalName := strings.Replace(name, "\\", "/", -1) - return filepath.Join(append([]string{dir}, strings.Split(cannonicalName, "/")...)...) -} - diff --git a/ecs-cli/vendor/github.com/docker/cli/cli/compose/schema/schema.go b/ecs-cli/vendor/github.com/docker/cli/cli/compose/schema/schema.go index 9a70dc2aa..bbf20fb8a 100644 --- a/ecs-cli/vendor/github.com/docker/cli/cli/compose/schema/schema.go +++ b/ecs-cli/vendor/github.com/docker/cli/cli/compose/schema/schema.go @@ -1,6 +1,6 @@ package schema -//go:generate go-bindata -pkg schema -nometadata data +//go:generate esc -o bindata.go -pkg schema -private -modtime=1518458244 data import ( "fmt" @@ -56,7 +56,7 @@ func normalizeVersion(version string) string { // Validate uses the jsonschema to validate the configuration func Validate(config map[string]interface{}, version string) error { - schemaData, err := Asset(fmt.Sprintf("data/config_schema_v%s.json", version)) + schemaData, err := _escFSByte(false, fmt.Sprintf("/data/config_schema_v%s.json", version)) if err != nil { return errors.Errorf("unsupported Compose file version: %s", version) } diff --git a/ecs-cli/vendor/github.com/docker/cli/cli/compose/template/template.go b/ecs-cli/vendor/github.com/docker/cli/cli/compose/template/template.go index 8426a2352..be5d45605 100644 --- a/ecs-cli/vendor/github.com/docker/cli/cli/compose/template/template.go +++ b/ecs-cli/vendor/github.com/docker/cli/cli/compose/template/template.go @@ -7,7 +7,7 @@ import ( ) var delimiter = "\\$" -var substitution = "[_a-z][_a-z0-9]*(?::?-[^}]+)?" +var substitution = "[_a-z][_a-z0-9]*(?::?[-?][^}]*)?" var patternString = fmt.Sprintf( "%s(?i:(?P%s)|(?P%s)|{(?P%s)}|(?P))", @@ -16,6 +16,14 @@ var patternString = fmt.Sprintf( var pattern = regexp.MustCompile(patternString) +// DefaultSubstituteFuncs contains the default SubstitueFunc used by the docker cli +var DefaultSubstituteFuncs = []SubstituteFunc{ + softDefault, + hardDefault, + requiredNonEmpty, + required, +} + // InvalidTemplateError is returned when a variable template is not in a valid // format type InvalidTemplateError struct { @@ -32,62 +40,121 @@ func (e InvalidTemplateError) Error() string { // and the absence of a value. type Mapping func(string) (string, bool) -// Substitute variables in the string with their values -func Substitute(template string, mapping Mapping) (string, error) { +// SubstituteFunc is a user-supplied function that apply substitution. +// Returns the value as a string, a bool indicating if the function could apply +// the substitution and an error. +type SubstituteFunc func(string, Mapping) (string, bool, error) + +// SubstituteWith subsitute variables in the string with their values. +// It accepts additional substitute function. +func SubstituteWith(template string, mapping Mapping, pattern *regexp.Regexp, subsFuncs ...SubstituteFunc) (string, error) { var err error result := pattern.ReplaceAllStringFunc(template, func(substring string) string { matches := pattern.FindStringSubmatch(substring) - groups := make(map[string]string) - for i, name := range pattern.SubexpNames() { - if i != 0 { - groups[name] = matches[i] - } + groups := matchGroups(matches) + if escaped := groups["escaped"]; escaped != "" { + return escaped } substitution := groups["named"] if substitution == "" { substitution = groups["braced"] } - if substitution != "" { - // Soft default (fall back if unset or empty) - if strings.Contains(substitution, ":-") { - name, defaultValue := partition(substitution, ":-") - value, ok := mapping(name) - if !ok || value == "" { - return defaultValue - } - return value - } - // Hard default (fall back if-and-only-if empty) - if strings.Contains(substitution, "-") { - name, defaultValue := partition(substitution, "-") - value, ok := mapping(name) - if !ok { - return defaultValue - } - return value - } + if substitution == "" { + err = &InvalidTemplateError{Template: template} + return "" + } - // No default (fall back to empty string) - value, ok := mapping(substitution) - if !ok { + for _, f := range subsFuncs { + var ( + value string + applied bool + ) + value, applied, err = f(substitution, mapping) + if err != nil { return "" } + if !applied { + continue + } return value } - if escaped := groups["escaped"]; escaped != "" { - return escaped - } - - err = &InvalidTemplateError{Template: template} - return "" + value, _ := mapping(substitution) + return value }) return result, err } +// Substitute variables in the string with their values +func Substitute(template string, mapping Mapping) (string, error) { + return SubstituteWith(template, mapping, pattern, DefaultSubstituteFuncs...) +} + +// Soft default (fall back if unset or empty) +func softDefault(substitution string, mapping Mapping) (string, bool, error) { + if !strings.Contains(substitution, ":-") { + return "", false, nil + } + name, defaultValue := partition(substitution, ":-") + value, ok := mapping(name) + if !ok || value == "" { + return defaultValue, true, nil + } + return value, true, nil +} + +// Hard default (fall back if-and-only-if empty) +func hardDefault(substitution string, mapping Mapping) (string, bool, error) { + if !strings.Contains(substitution, "-") { + return "", false, nil + } + name, defaultValue := partition(substitution, "-") + value, ok := mapping(name) + if !ok { + return defaultValue, true, nil + } + return value, true, nil +} + +func requiredNonEmpty(substitution string, mapping Mapping) (string, bool, error) { + if !strings.Contains(substitution, ":?") { + return "", false, nil + } + name, errorMessage := partition(substitution, ":?") + value, ok := mapping(name) + if !ok || value == "" { + return "", true, &InvalidTemplateError{ + Template: fmt.Sprintf("required variable %s is missing a value: %s", name, errorMessage), + } + } + return value, true, nil +} + +func required(substitution string, mapping Mapping) (string, bool, error) { + if !strings.Contains(substitution, "?") { + return "", false, nil + } + name, errorMessage := partition(substitution, "?") + value, ok := mapping(name) + if !ok { + return "", true, &InvalidTemplateError{ + Template: fmt.Sprintf("required variable %s is missing a value: %s", name, errorMessage), + } + } + return value, true, nil +} + +func matchGroups(matches []string) map[string]string { + groups := make(map[string]string) + for i, name := range pattern.SubexpNames()[1:] { + groups[name] = matches[i+1] + } + return groups +} + // Split the string at the first occurrence of sep, and return the part before the separator, // and the part after the separator. // diff --git a/ecs-cli/vendor/github.com/docker/cli/cli/compose/types/types.go b/ecs-cli/vendor/github.com/docker/cli/cli/compose/types/types.go index 8922a6d41..6c1a0dd75 100644 --- a/ecs-cli/vendor/github.com/docker/cli/cli/compose/types/types.go +++ b/ecs-cli/vendor/github.com/docker/cli/cli/compose/types/types.go @@ -1,6 +1,7 @@ package types import ( + "fmt" "time" ) @@ -69,77 +70,94 @@ func (cd ConfigDetails) LookupEnv(key string) (string, bool) { // Config is a full compose file configuration type Config struct { - Filename string - Services []ServiceConfig + Filename string `yaml:"-"` + Version string + Services Services Networks map[string]NetworkConfig Volumes map[string]VolumeConfig Secrets map[string]SecretConfig Configs map[string]ConfigObjConfig + Extras map[string]interface{} `yaml:",inline"` +} + +// Services is a list of ServiceConfig +type Services []ServiceConfig + +// MarshalYAML makes Services implement yaml.Marshaller +func (s Services) MarshalYAML() (interface{}, error) { + services := map[string]ServiceConfig{} + for _, service := range s { + services[service.Name] = service + } + return services, nil } // ServiceConfig is the configuration of one service type ServiceConfig struct { - Name string - - Build BuildConfig - CapAdd []string `mapstructure:"cap_add"` - CapDrop []string `mapstructure:"cap_drop"` - CgroupParent string `mapstructure:"cgroup_parent"` - Command ShellCommand - Configs []ServiceConfigObjConfig - ContainerName string `mapstructure:"container_name"` - CredentialSpec CredentialSpecConfig `mapstructure:"credential_spec"` - DependsOn []string `mapstructure:"depends_on"` - Deploy DeployConfig - Devices []string - DNS StringList - DNSSearch StringList `mapstructure:"dns_search"` - DomainName string `mapstructure:"domainname"` - Entrypoint ShellCommand - Environment MappingWithEquals - EnvFile StringList `mapstructure:"env_file"` - Expose StringOrNumberList - ExternalLinks []string `mapstructure:"external_links"` - ExtraHosts HostsList `mapstructure:"extra_hosts"` - Hostname string - HealthCheck *HealthCheckConfig - Image string - Ipc string - Labels Labels - Links []string - Logging *LoggingConfig - MacAddress string `mapstructure:"mac_address"` - NetworkMode string `mapstructure:"network_mode"` - Networks map[string]*ServiceNetworkConfig - Pid string - Ports []ServicePortConfig - Privileged bool - ReadOnly bool `mapstructure:"read_only"` - Restart string - Secrets []ServiceSecretConfig - SecurityOpt []string `mapstructure:"security_opt"` - StdinOpen bool `mapstructure:"stdin_open"` - StopGracePeriod *time.Duration `mapstructure:"stop_grace_period"` - StopSignal string `mapstructure:"stop_signal"` - Tmpfs StringList - Tty bool `mapstructure:"tty"` - Ulimits map[string]*UlimitsConfig - User string - Volumes []ServiceVolumeConfig - WorkingDir string `mapstructure:"working_dir"` - Isolation string `mapstructure:"isolation"` + Name string `yaml:"-"` + + Build BuildConfig `yaml:",omitempty"` + CapAdd []string `mapstructure:"cap_add" yaml:"cap_add,omitempty"` + CapDrop []string `mapstructure:"cap_drop" yaml:"cap_drop,omitempty"` + CgroupParent string `mapstructure:"cgroup_parent" yaml:"cgroup_parent,omitempty"` + Command ShellCommand `yaml:",omitempty"` + Configs []ServiceConfigObjConfig `yaml:",omitempty"` + ContainerName string `mapstructure:"container_name" yaml:"container_name,omitempty"` + CredentialSpec CredentialSpecConfig `mapstructure:"credential_spec" yaml:"credential_spec,omitempty"` + DependsOn []string `mapstructure:"depends_on" yaml:"depends_on,omitempty"` + Deploy DeployConfig `yaml:",omitempty"` + Devices []string `yaml:",omitempty"` + DNS StringList `yaml:",omitempty"` + DNSSearch StringList `mapstructure:"dns_search" yaml:"dns_search,omitempty"` + DomainName string `mapstructure:"domainname" yaml:"domainname,omitempty"` + Entrypoint ShellCommand `yaml:",omitempty"` + Environment MappingWithEquals `yaml:",omitempty"` + EnvFile StringList `mapstructure:"env_file" yaml:"env_file,omitempty"` + Expose StringOrNumberList `yaml:",omitempty"` + ExternalLinks []string `mapstructure:"external_links" yaml:"external_links,omitempty"` + ExtraHosts HostsList `mapstructure:"extra_hosts" yaml:"extra_hosts,omitempty"` + Hostname string `yaml:",omitempty"` + HealthCheck *HealthCheckConfig `yaml:",omitempty"` + Image string `yaml:",omitempty"` + Init *bool `yaml:",omitempty"` + Ipc string `yaml:",omitempty"` + Isolation string `mapstructure:"isolation" yaml:"isolation,omitempty"` + Labels Labels `yaml:",omitempty"` + Links []string `yaml:",omitempty"` + Logging *LoggingConfig `yaml:",omitempty"` + MacAddress string `mapstructure:"mac_address" yaml:"mac_address,omitempty"` + NetworkMode string `mapstructure:"network_mode" yaml:"network_mode,omitempty"` + Networks map[string]*ServiceNetworkConfig `yaml:",omitempty"` + Pid string `yaml:",omitempty"` + Ports []ServicePortConfig `yaml:",omitempty"` + Privileged bool `yaml:",omitempty"` + ReadOnly bool `mapstructure:"read_only" yaml:"read_only,omitempty"` + Restart string `yaml:",omitempty"` + Secrets []ServiceSecretConfig `yaml:",omitempty"` + SecurityOpt []string `mapstructure:"security_opt" yaml:"security_opt,omitempty"` + StdinOpen bool `mapstructure:"stdin_open" yaml:"stdin_open,omitempty"` + StopGracePeriod *time.Duration `mapstructure:"stop_grace_period" yaml:"stop_grace_period,omitempty"` + StopSignal string `mapstructure:"stop_signal" yaml:"stop_signal,omitempty"` + Tmpfs StringList `yaml:",omitempty"` + Tty bool `mapstructure:"tty" yaml:"tty,omitempty"` + Ulimits map[string]*UlimitsConfig `yaml:",omitempty"` + User string `yaml:",omitempty"` + Volumes []ServiceVolumeConfig `yaml:",omitempty"` + WorkingDir string `mapstructure:"working_dir" yaml:"working_dir,omitempty"` + + Extras map[string]interface{} `yaml:",inline"` } // BuildConfig is a type for build // using the same format at libcompose: https://github.com/docker/libcompose/blob/master/yaml/build.go#L12 type BuildConfig struct { - Context string - Dockerfile string - Args MappingWithEquals - Labels Labels - CacheFrom StringList `mapstructure:"cache_from"` - Network string - Target string + Context string `yaml:",omitempty"` + Dockerfile string `yaml:",omitempty"` + Args MappingWithEquals `yaml:",omitempty"` + Labels Labels `yaml:",omitempty"` + CacheFrom StringList `mapstructure:"cache_from" yaml:"cache_from,omitempty"` + Network string `yaml:",omitempty"` + Target string `yaml:",omitempty"` } // ShellCommand is a string or list of string args @@ -170,30 +188,31 @@ type HostsList []string // LoggingConfig the logging configuration for a service type LoggingConfig struct { - Driver string - Options map[string]string + Driver string `yaml:",omitempty"` + Options map[string]string `yaml:",omitempty"` } // DeployConfig the deployment configuration for a service type DeployConfig struct { - Mode string - Replicas *uint64 - Labels Labels - UpdateConfig *UpdateConfig `mapstructure:"update_config"` - Resources Resources - RestartPolicy *RestartPolicy `mapstructure:"restart_policy"` - Placement Placement - EndpointMode string `mapstructure:"endpoint_mode"` + Mode string `yaml:",omitempty"` + Replicas *uint64 `yaml:",omitempty"` + Labels Labels `yaml:",omitempty"` + UpdateConfig *UpdateConfig `mapstructure:"update_config" yaml:"update_config,omitempty"` + RollbackConfig *UpdateConfig `mapstructure:"rollback_config" yaml:"rollback_config,omitempty"` + Resources Resources `yaml:",omitempty"` + RestartPolicy *RestartPolicy `mapstructure:"restart_policy" yaml:"restart_policy,omitempty"` + Placement Placement `yaml:",omitempty"` + EndpointMode string `mapstructure:"endpoint_mode" yaml:"endpoint_mode,omitempty"` } // HealthCheckConfig the healthcheck configuration for a service type HealthCheckConfig struct { - Test HealthCheckTest - Timeout *time.Duration - Interval *time.Duration - Retries *uint64 - StartPeriod *time.Duration `mapstructure:"start_period"` - Disable bool + Test HealthCheckTest `yaml:",omitempty"` + Timeout *time.Duration `yaml:",omitempty"` + Interval *time.Duration `yaml:",omitempty"` + Retries *uint64 `yaml:",omitempty"` + StartPeriod *time.Duration `mapstructure:"start_period" yaml:"start_period,omitempty"` + Disable bool `yaml:",omitempty"` } // HealthCheckTest is the command run to test the health of a service @@ -201,32 +220,32 @@ type HealthCheckTest []string // UpdateConfig the service update configuration type UpdateConfig struct { - Parallelism *uint64 - Delay time.Duration - FailureAction string `mapstructure:"failure_action"` - Monitor time.Duration - MaxFailureRatio float32 `mapstructure:"max_failure_ratio"` - Order string + Parallelism *uint64 `yaml:",omitempty"` + Delay time.Duration `yaml:",omitempty"` + FailureAction string `mapstructure:"failure_action" yaml:"failure_action,omitempty"` + Monitor time.Duration `yaml:",omitempty"` + MaxFailureRatio float32 `mapstructure:"max_failure_ratio" yaml:"max_failure_ratio,omitempty"` + Order string `yaml:",omitempty"` } // Resources the resource limits and reservations type Resources struct { - Limits *Resource - Reservations *Resource + Limits *Resource `yaml:",omitempty"` + Reservations *Resource `yaml:",omitempty"` } // Resource is a resource to be limited or reserved type Resource struct { // TODO: types to convert from units and ratios - NanoCPUs string `mapstructure:"cpus"` - MemoryBytes UnitBytes `mapstructure:"memory"` - GenericResources []GenericResource `mapstructure:"generic_resources"` + NanoCPUs string `mapstructure:"cpus" yaml:"cpus,omitempty"` + MemoryBytes UnitBytes `mapstructure:"memory" yaml:"memory,omitempty"` + GenericResources []GenericResource `mapstructure:"generic_resources" yaml:"generic_resources,omitempty"` } // GenericResource represents a "user defined" resource which can // only be an integer (e.g: SSD=3) for a service type GenericResource struct { - DiscreteResourceSpec *DiscreteGenericResource `mapstructure:"discrete_resource_spec"` + DiscreteResourceSpec *DiscreteGenericResource `mapstructure:"discrete_resource_spec" yaml:"discrete_resource_spec,omitempty"` } // DiscreteGenericResource represents a "user defined" resource which is defined @@ -241,74 +260,79 @@ type DiscreteGenericResource struct { // UnitBytes is the bytes type type UnitBytes int64 +// MarshalYAML makes UnitBytes implement yaml.Marshaller +func (u UnitBytes) MarshalYAML() (interface{}, error) { + return fmt.Sprintf("%d", u), nil +} + // RestartPolicy the service restart policy type RestartPolicy struct { - Condition string - Delay *time.Duration - MaxAttempts *uint64 `mapstructure:"max_attempts"` - Window *time.Duration + Condition string `yaml:",omitempty"` + Delay *time.Duration `yaml:",omitempty"` + MaxAttempts *uint64 `mapstructure:"max_attempts" yaml:"max_attempts,omitempty"` + Window *time.Duration `yaml:",omitempty"` } // Placement constraints for the service type Placement struct { - Constraints []string - Preferences []PlacementPreferences + Constraints []string `yaml:",omitempty"` + Preferences []PlacementPreferences `yaml:",omitempty"` } // PlacementPreferences is the preferences for a service placement type PlacementPreferences struct { - Spread string + Spread string `yaml:",omitempty"` } // ServiceNetworkConfig is the network configuration for a service type ServiceNetworkConfig struct { - Aliases []string - Ipv4Address string `mapstructure:"ipv4_address"` - Ipv6Address string `mapstructure:"ipv6_address"` + Aliases []string `yaml:",omitempty"` + Ipv4Address string `mapstructure:"ipv4_address" yaml:"ipv4_address,omitempty"` + Ipv6Address string `mapstructure:"ipv6_address" yaml:"ipv6_address,omitempty"` } // ServicePortConfig is the port configuration for a service type ServicePortConfig struct { - Mode string - Target uint32 - Published uint32 - Protocol string + Mode string `yaml:",omitempty"` + Target uint32 `yaml:",omitempty"` + Published uint32 `yaml:",omitempty"` + Protocol string `yaml:",omitempty"` } // ServiceVolumeConfig are references to a volume used by a service type ServiceVolumeConfig struct { - Type string - Source string - Target string - ReadOnly bool `mapstructure:"read_only"` - Consistency string - Bind *ServiceVolumeBind - Volume *ServiceVolumeVolume - Tmpfs *ServiceVolumeTmpfs + Type string `yaml:",omitempty"` + Source string `yaml:",omitempty"` + Target string `yaml:",omitempty"` + ReadOnly bool `mapstructure:"read_only" yaml:"read_only,omitempty"` + Consistency string `yaml:",omitempty"` + Bind *ServiceVolumeBind `yaml:",omitempty"` + Volume *ServiceVolumeVolume `yaml:",omitempty"` + Tmpfs *ServiceVolumeTmpfs `yaml:",omitempty"` } // ServiceVolumeBind are options for a service volume of type bind type ServiceVolumeBind struct { - Propagation string + Propagation string `yaml:",omitempty"` } // ServiceVolumeVolume are options for a service volume of type volume type ServiceVolumeVolume struct { - NoCopy bool `mapstructure:"nocopy"` + NoCopy bool `mapstructure:"nocopy" yaml:"nocopy,omitempty"` } // ServiceVolumeTmpfs are options for a service volume of type tmpfs type ServiceVolumeTmpfs struct { - Size int64 + Size int64 `yaml:",omitempty"` } // FileReferenceConfig for a reference to a swarm file object type FileReferenceConfig struct { - Source string - Target string - UID string - GID string - Mode *uint32 + Source string `yaml:",omitempty"` + Target string `yaml:",omitempty"` + UID string `yaml:",omitempty"` + GID string `yaml:",omitempty"` + Mode *uint32 `yaml:",omitempty"` } // ServiceConfigObjConfig is the config obj configuration for a service @@ -319,63 +343,82 @@ type ServiceSecretConfig FileReferenceConfig // UlimitsConfig the ulimit configuration type UlimitsConfig struct { - Single int - Soft int - Hard int + Single int `yaml:",omitempty"` + Soft int `yaml:",omitempty"` + Hard int `yaml:",omitempty"` +} + +// MarshalYAML makes UlimitsConfig implement yaml.Marshaller +func (u *UlimitsConfig) MarshalYAML() (interface{}, error) { + if u.Single != 0 { + return u.Single, nil + } + return u, nil } // NetworkConfig for a network type NetworkConfig struct { - Name string - Driver string - DriverOpts map[string]string `mapstructure:"driver_opts"` - Ipam IPAMConfig - External External - Internal bool - Attachable bool - Labels Labels + Name string `yaml:",omitempty"` + Driver string `yaml:",omitempty"` + DriverOpts map[string]string `mapstructure:"driver_opts" yaml:"driver_opts,omitempty"` + Ipam IPAMConfig `yaml:",omitempty"` + External External `yaml:",omitempty"` + Internal bool `yaml:",omitempty"` + Attachable bool `yaml:",omitempty"` + Labels Labels `yaml:",omitempty"` + Extras map[string]interface{} `yaml:",inline"` } // IPAMConfig for a network type IPAMConfig struct { - Driver string - Config []*IPAMPool + Driver string `yaml:",omitempty"` + Config []*IPAMPool `yaml:",omitempty"` } // IPAMPool for a network type IPAMPool struct { - Subnet string + Subnet string `yaml:",omitempty"` } // VolumeConfig for a volume type VolumeConfig struct { - Name string - Driver string - DriverOpts map[string]string `mapstructure:"driver_opts"` - External External - Labels Labels + Name string `yaml:",omitempty"` + Driver string `yaml:",omitempty"` + DriverOpts map[string]string `mapstructure:"driver_opts" yaml:"driver_opts,omitempty"` + External External `yaml:",omitempty"` + Labels Labels `yaml:",omitempty"` + Extras map[string]interface{} `yaml:",inline"` } // External identifies a Volume or Network as a reference to a resource that is // not managed, and should already exist. // External.name is deprecated and replaced by Volume.name type External struct { - Name string - External bool + Name string `yaml:",omitempty"` + External bool `yaml:",omitempty"` +} + +// MarshalYAML makes External implement yaml.Marshaller +func (e External) MarshalYAML() (interface{}, error) { + if e.Name == "" { + return e.External, nil + } + return External{Name: e.Name}, nil } // CredentialSpecConfig for credential spec on Windows type CredentialSpecConfig struct { - File string - Registry string + File string `yaml:",omitempty"` + Registry string `yaml:",omitempty"` } // FileObjectConfig is a config type for a file used by a service type FileObjectConfig struct { - Name string - File string - External External - Labels Labels + Name string `yaml:",omitempty"` + File string `yaml:",omitempty"` + External External `yaml:",omitempty"` + Labels Labels `yaml:",omitempty"` + Extras map[string]interface{} `yaml:",inline"` } // SecretConfig for a secret diff --git a/ecs-cli/vendor/github.com/docker/cli/opts/envfile.go b/ecs-cli/vendor/github.com/docker/cli/opts/envfile.go index f72379921..10054c896 100644 --- a/ecs-cli/vendor/github.com/docker/cli/opts/envfile.go +++ b/ecs-cli/vendor/github.com/docker/cli/opts/envfile.go @@ -1,13 +1,7 @@ package opts import ( - "bufio" - "bytes" - "fmt" "os" - "strings" - "unicode" - "unicode/utf8" ) // ParseEnvFile reads a file with environment variables enumerated by lines @@ -24,58 +18,5 @@ import ( // environment variables, that's why we just strip leading whitespace and // nothing more. func ParseEnvFile(filename string) ([]string, error) { - fh, err := os.Open(filename) - if err != nil { - return []string{}, err - } - defer fh.Close() - - lines := []string{} - scanner := bufio.NewScanner(fh) - currentLine := 0 - utf8bom := []byte{0xEF, 0xBB, 0xBF} - for scanner.Scan() { - scannedBytes := scanner.Bytes() - if !utf8.Valid(scannedBytes) { - return []string{}, fmt.Errorf("env file %s contains invalid utf8 bytes at line %d: %v", filename, currentLine+1, scannedBytes) - } - // We trim UTF8 BOM - if currentLine == 0 { - scannedBytes = bytes.TrimPrefix(scannedBytes, utf8bom) - } - // trim the line from all leading whitespace first - line := strings.TrimLeftFunc(string(scannedBytes), unicode.IsSpace) - currentLine++ - // line is not empty, and not starting with '#' - if len(line) > 0 && !strings.HasPrefix(line, "#") { - data := strings.SplitN(line, "=", 2) - - // trim the front of a variable, but nothing else - variable := strings.TrimLeft(data[0], whiteSpaces) - if strings.ContainsAny(variable, whiteSpaces) { - return []string{}, ErrBadEnvVariable{fmt.Sprintf("variable '%s' has white spaces", variable)} - } - - if len(data) > 1 { - - // pass the value through, no trimming - lines = append(lines, fmt.Sprintf("%s=%s", variable, data[1])) - } else { - // if only a pass-through variable is given, clean it up. - lines = append(lines, fmt.Sprintf("%s=%s", strings.TrimSpace(line), os.Getenv(line))) - } - } - } - return lines, scanner.Err() -} - -var whiteSpaces = " \t" - -// ErrBadEnvVariable typed error for bad environment variable -type ErrBadEnvVariable struct { - msg string -} - -func (e ErrBadEnvVariable) Error() string { - return fmt.Sprintf("poorly formatted environment: %s", e.msg) + return parseKeyValueFile(filename, os.Getenv) } diff --git a/ecs-cli/vendor/github.com/docker/cli/opts/file.go b/ecs-cli/vendor/github.com/docker/cli/opts/file.go new file mode 100644 index 000000000..281905949 --- /dev/null +++ b/ecs-cli/vendor/github.com/docker/cli/opts/file.go @@ -0,0 +1,71 @@ +package opts + +import ( + "bufio" + "bytes" + "fmt" + "os" + "strings" + "unicode" + "unicode/utf8" +) + +var whiteSpaces = " \t" + +// ErrBadKey typed error for bad environment variable +type ErrBadKey struct { + msg string +} + +func (e ErrBadKey) Error() string { + return fmt.Sprintf("poorly formatted environment: %s", e.msg) +} + +func parseKeyValueFile(filename string, emptyFn func(string) string) ([]string, error) { + fh, err := os.Open(filename) + if err != nil { + return []string{}, err + } + defer fh.Close() + + lines := []string{} + scanner := bufio.NewScanner(fh) + currentLine := 0 + utf8bom := []byte{0xEF, 0xBB, 0xBF} + for scanner.Scan() { + scannedBytes := scanner.Bytes() + if !utf8.Valid(scannedBytes) { + return []string{}, fmt.Errorf("env file %s contains invalid utf8 bytes at line %d: %v", filename, currentLine+1, scannedBytes) + } + // We trim UTF8 BOM + if currentLine == 0 { + scannedBytes = bytes.TrimPrefix(scannedBytes, utf8bom) + } + // trim the line from all leading whitespace first + line := strings.TrimLeftFunc(string(scannedBytes), unicode.IsSpace) + currentLine++ + // line is not empty, and not starting with '#' + if len(line) > 0 && !strings.HasPrefix(line, "#") { + data := strings.SplitN(line, "=", 2) + + // trim the front of a variable, but nothing else + variable := strings.TrimLeft(data[0], whiteSpaces) + if strings.ContainsAny(variable, whiteSpaces) { + return []string{}, ErrBadKey{fmt.Sprintf("variable '%s' has white spaces", variable)} + } + + if len(data) > 1 { + // pass the value through, no trimming + lines = append(lines, fmt.Sprintf("%s=%s", variable, data[1])) + } else { + var value string + if emptyFn != nil { + value = emptyFn(line) + } + // if only a pass-through variable is given, clean it up. + lines = append(lines, fmt.Sprintf("%s=%s", strings.TrimSpace(line), value)) + } + } + } + return lines, scanner.Err() +} diff --git a/ecs-cli/vendor/github.com/docker/cli/opts/opts.go b/ecs-cli/vendor/github.com/docker/cli/opts/opts.go index d915ec2f7..51519e03b 100644 --- a/ecs-cli/vendor/github.com/docker/cli/opts/opts.go +++ b/ecs-cli/vendor/github.com/docker/cli/opts/opts.go @@ -6,6 +6,7 @@ import ( "net" "path" "regexp" + "strconv" "strings" "github.com/docker/docker/api/types/filters" @@ -486,3 +487,38 @@ func (m *MemSwapBytes) UnmarshalJSON(s []byte) error { b := MemBytes(*m) return b.UnmarshalJSON(s) } + +// NullableBool is a type for tri-state boolean options +type NullableBool struct { + b *bool +} + +// Type returns the type +func (n *NullableBool) Type() string { + return "" +} + +// Value returns the value in *bool +func (n *NullableBool) Value() *bool { + return n.b +} + +// Set sets the value. If value is empty string or "auto", nil is set. +// Otherwise true or false are set based on flag.Bool behavior. +func (n *NullableBool) Set(value string) error { + if value != "auto" && value != "" { + b, err := strconv.ParseBool(value) + if err != nil { + return err + } + n.b = &b + } + return nil +} + +func (n *NullableBool) String() string { + if n.b == nil { + return "auto" + } + return strconv.FormatBool(*n.b) +} diff --git a/ecs-cli/vendor/github.com/docker/cli/opts/parse.go b/ecs-cli/vendor/github.com/docker/cli/opts/parse.go index a88ea1385..679759ded 100644 --- a/ecs-cli/vendor/github.com/docker/cli/opts/parse.go +++ b/ecs-cli/vendor/github.com/docker/cli/opts/parse.go @@ -2,6 +2,7 @@ package opts import ( "fmt" + "os" "strconv" "strings" @@ -11,18 +12,29 @@ import ( // ReadKVStrings reads a file of line terminated key=value pairs, and overrides any keys // present in the file with additional pairs specified in the override parameter func ReadKVStrings(files []string, override []string) ([]string, error) { - envVariables := []string{} + return readKVStrings(files, override, nil) +} + +// ReadKVEnvStrings reads a file of line terminated key=value pairs, and overrides any keys +// present in the file with additional pairs specified in the override parameter. +// If a key has no value, it will get the value from the environment. +func ReadKVEnvStrings(files []string, override []string) ([]string, error) { + return readKVStrings(files, override, os.Getenv) +} + +func readKVStrings(files []string, override []string, emptyFn func(string) string) ([]string, error) { + variables := []string{} for _, ef := range files { - parsedVars, err := ParseEnvFile(ef) + parsedVars, err := parseKeyValueFile(ef, emptyFn) if err != nil { return nil, err } - envVariables = append(envVariables, parsedVars...) + variables = append(variables, parsedVars...) } // parse the '-e' and '--env' after, to allow override - envVariables = append(envVariables, override...) + variables = append(variables, override...) - return envVariables, nil + return variables, nil } // ConvertKVStringsToMap converts ["key=value"] to {"key":"value"} diff --git a/ecs-cli/vendor/github.com/docker/cli/opts/port.go b/ecs-cli/vendor/github.com/docker/cli/opts/port.go index 49ca7d0fe..201aefafc 100644 --- a/ecs-cli/vendor/github.com/docker/cli/opts/port.go +++ b/ecs-cli/vendor/github.com/docker/cli/opts/port.go @@ -9,6 +9,7 @@ import ( "github.com/docker/docker/api/types/swarm" "github.com/docker/go-connections/nat" + "github.com/sirupsen/logrus" ) const ( @@ -49,7 +50,7 @@ func (p *PortOpt) Set(value string) error { switch key { case portOptProtocol: - if value != string(swarm.PortConfigProtocolTCP) && value != string(swarm.PortConfigProtocolUDP) { + if value != string(swarm.PortConfigProtocolTCP) && value != string(swarm.PortConfigProtocolUDP) && value != string(swarm.PortConfigProtocolSCTP) { return fmt.Errorf("invalid protocol value %s", value) } @@ -147,6 +148,9 @@ func ConvertPortToPortConfig( ports := []swarm.PortConfig{} for _, binding := range portBindings[port] { + if binding.HostIP != "" && binding.HostIP != "0.0.0.0" { + logrus.Warnf("ignoring IP-address (%s:%s:%s) service will listen on '0.0.0.0'", binding.HostIP, binding.HostPort, port) + } hostPort, err := strconv.ParseUint(binding.HostPort, 10, 16) if err != nil && binding.HostPort != "" { return nil, fmt.Errorf("invalid hostport binding (%s) for port (%s)", binding.HostPort, port.Port()) diff --git a/ecs-cli/vendor/github.com/docker/docker/AUTHORS b/ecs-cli/vendor/github.com/docker/docker/AUTHORS index afafb2d72..84059b7c2 100644 --- a/ecs-cli/vendor/github.com/docker/docker/AUTHORS +++ b/ecs-cli/vendor/github.com/docker/docker/AUTHORS @@ -21,6 +21,7 @@ Adam Eijdenberg Adam Kunk Adam Miller Adam Mills +Adam Pointer Adam Singer Adam Walz Addam Hardy @@ -204,7 +205,7 @@ Bharath Thiruveedula Bhiraj Butala Bhumika Bayani Bilal Amarni -Bill W +Bill Wang Bin Liu Bingshen Wang Blake Geno @@ -212,7 +213,6 @@ Boaz Shuster bobby abbott Boris Pruessmann Boshi Lian -boucher Bouke Haarsma Boyd Hemphill boynux @@ -249,7 +249,6 @@ Bryan Bess Bryan Boreham Bryan Matsuo Bryan Murphy -buddhamagnet Burke Libbey Byung Kang Caleb Spare @@ -274,6 +273,7 @@ Cezar Sa Espinola Chad Swenson Chance Zibolski Chander Govindarajan +Chanhun Jeong Chao Wang Charles Chan Charles Hooper @@ -391,6 +391,7 @@ Daniel Nordberg Daniel Robinson Daniel S Daniel Von Fange +Daniel Watkins Daniel X Moore Daniel YC Lin Daniel Zhang @@ -403,6 +404,7 @@ Darren Stahl Dattatraya Kumbhar Davanum Srinivas Dave Barboza +Dave Goodchild Dave Henderson Dave MacDonald Dave Tucker @@ -429,7 +431,7 @@ David Röthlisberger David Sheets David Sissitka David Trott -David Williamson +David Williamson David Xia David Young Davide Ceretti @@ -498,6 +500,7 @@ Dr Nic Williams dragon788 Dražen Lučanin Drew Erny +Drew Hubl Dustin Sallings Ed Costello Edmund Wagner @@ -513,6 +516,7 @@ Elias Probst Elijah Zupancic eluck Elvir Kuric +Emil Davtyan Emil Hernvall Emily Maier Emily Rose @@ -528,7 +532,7 @@ Eric Lee Eric Myhre Eric Paris Eric Rafaloff -Eric Rosenberg +Eric Rosenberg Eric Sage Eric Soderstrom Eric Yang @@ -548,7 +552,6 @@ Eugen Krizo Eugene Yakubovich Evan Allrich Evan Carmi -Evan Hazlett Evan Hazlett Evan Krall Evan Phoenix @@ -578,7 +581,7 @@ Federico Gimenez Felipe Oliveira Felix Abecassis Felix Geisendörfer -Felix Hupfeld +Felix Hupfeld Felix Rabe Felix Ruess Felix Schindler @@ -590,10 +593,8 @@ Fero Volar Ferran Rodenas Filipe Brandenburger Filipe Oliveira -fl0yd Flavio Castelli Flavio Crisciani -FLGMwt Florian Florian Klein Florian Maier @@ -729,7 +730,7 @@ Iliana Weller Ilkka Laukkanen Ilya Dmitrichenko Ilya Gusev -ILYA Khlopotov +Ilya Khlopotov imre Fitos inglesp Ingo Gottwald @@ -749,6 +750,7 @@ Jacob Edelman Jacob Tomlinson Jacob Vallejo Jacob Wen +Jaivish Kothari Jake Champlin Jake Moshenko Jake Sanders @@ -765,7 +767,7 @@ James Mills James Nesbitt James Nugent James Turnbull -Jamie Hannaford +Jamie Hannaford Jamshid Afshar Jan Keromnes Jan Koprowski @@ -775,7 +777,6 @@ Jan-Gerd Tenberge Jan-Jaap Driessen Jana Radhakrishnan Jannick Fahlbusch -Janonymous Januar Wayong Jared Biel Jared Hocutt @@ -829,11 +830,9 @@ Jesse Dearing Jesse Dubay Jessica Frazelle Jezeniel Zapanta -jgeiger Jhon Honce Ji.Zhilong Jian Zhang -jianbosun Jie Luo Jihyun Hwang Jilles Oldenbeuving @@ -862,6 +861,7 @@ Joel Friedly Joel Handwell Joel Hansson Joel Wurtz +Joey Geiger Joey Geiger Joey Gibson Joffrey F @@ -914,6 +914,7 @@ Joseph Kern Joseph Rothrock Josh Josh Bodah +Josh Bonczkowski Josh Chorlton Josh Eveleth Josh Hawn @@ -986,12 +987,12 @@ Kevin J. Lynagh Kevin Jing Qiu Kevin Kern Kevin Menard +Kevin Meredith Kevin P. Kucharczyk Kevin Richardson Kevin Shi Kevin Wallace Kevin Yap -kevinmeredith Keyvan Fatehi kies Kim BKC Carlbacker @@ -999,7 +1000,6 @@ Kim Eik Kimbro Staken Kir Kolyshkin Kiran Gangadharan -Kirill Kolyshkin Kirill SIbirev knappe Kohei Tsuruta @@ -1074,7 +1074,7 @@ longliqiang88 <394564827@qq.com> Lorenz Leutgeb Lorenzo Fontana Louis Opter -Luca Favatella +Luca Favatella Luca Marturana Luca Orlandi Luca-Bogdan Grigorescu @@ -1131,6 +1131,7 @@ Mark Allen Mark McGranaghan Mark McKinstry Mark Milstein +Mark Oates Mark Parker Mark West Markan Patel @@ -1300,7 +1301,7 @@ Nick Stenning Nick Stinemates NickrenREN Nicola Kabar -Nicolas Borboën +Nicolas Borboën Nicolas De Loof Nicolas Dudebout Nicolas Goy @@ -1324,7 +1325,6 @@ Nuutti Kotivuori nzwsch O.S. Tezer objectified -OddBloke odk- Oguz Bilgic Oh Jinkyun @@ -1441,7 +1441,7 @@ Ralph Bean Ramkumar Ramachandra Ramon Brooker Ramon van Alteren -Ray Tsang +Ray Tsang ReadmeCritic Recursive Madman Reficul @@ -1500,7 +1500,6 @@ Roman Strashkin Ron Smits Ron Williams root -root root root root @@ -1524,6 +1523,7 @@ Ryan McLaughlin Ryan O'Donnell Ryan Seto Ryan Simmen +Ryan Stelly Ryan Thomas Ryan Trauntvein Ryan Wallner @@ -1537,7 +1537,7 @@ Sabin Basyal Sachin Joshi Sagar Hani Sainath Grandhi -sakeven +Sakeven Jiang Sally O'Malley Sam Abed Sam Alba @@ -1609,6 +1609,7 @@ shuai-z Shukui Yang Shuwei Hao Sian Lerk Lau +Sidhartha Mani sidharthamani Silas Sewell Silvan Jegen @@ -1660,6 +1661,7 @@ Steven Taylor Subhajit Ghosh Sujith Haridasan Sun Gengze <690388648@qq.com> +Sun Jianbo Sunny Gogoi Suryakumar Sudar Sven Dowideit @@ -1816,6 +1818,7 @@ Vladimir Pouzanov Vladimir Rutsky Vladimir Varankin VladimirAus +Vlastimil Zeman Vojtech Vitek (V-Teq) waitingkuo Walter Leibbrandt @@ -1856,9 +1859,7 @@ William Martin William Riancho William Thurston WiseTrem -wlan0 Wolfgang Powisch -wonderflow Wonjun Kim xamyzhao Xianglin Gao @@ -1921,7 +1922,7 @@ zhangxianwei Zhenan Ye <21551168@zju.edu.cn> zhenghenghuo Zhenkun Bi -zhouhao +Zhou Hao Zhu Guihua Zhu Kunjia Zhuoyun Wei diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/auth.go b/ecs-cli/vendor/github.com/docker/docker/api/types/auth.go index 056af6b84..ddf15bb18 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/auth.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/auth.go @@ -1,4 +1,4 @@ -package types +package types // import "github.com/docker/docker/api/types" // AuthConfig contains authorization information for connecting to a Registry type AuthConfig struct { diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/blkiodev/blkio.go b/ecs-cli/vendor/github.com/docker/docker/api/types/blkiodev/blkio.go index 931ae10ab..bf3463b90 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/blkiodev/blkio.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/blkiodev/blkio.go @@ -1,4 +1,4 @@ -package blkiodev +package blkiodev // import "github.com/docker/docker/api/types/blkiodev" import "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/client.go b/ecs-cli/vendor/github.com/docker/docker/api/types/client.go index 93ca42854..18b36d592 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/client.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/client.go @@ -1,4 +1,4 @@ -package types +package types // import "github.com/docker/docker/api/types" import ( "bufio" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/configs.go b/ecs-cli/vendor/github.com/docker/docker/api/types/configs.go index 54d3e39fb..f6537a27f 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/configs.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/configs.go @@ -1,4 +1,4 @@ -package types +package types // import "github.com/docker/docker/api/types" import ( "github.com/docker/docker/api/types/container" @@ -25,19 +25,6 @@ type ContainerRmConfig struct { ForceRemove, RemoveVolume, RemoveLink bool } -// ContainerCommitConfig contains build configs for commit operation, -// and is used when making a commit with the current state of the container. -type ContainerCommitConfig struct { - Pause bool - Repo string - Tag string - Author string - Comment string - // merge container config into commit config before commit - MergeConfigs bool - Config *container.Config -} - // ExecConfig is a small subset of the Config struct that holds the configuration // for the exec feature of docker. type ExecConfig struct { diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/container/config.go b/ecs-cli/vendor/github.com/docker/docker/api/types/container/config.go index 55a03fc98..89ad08c23 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/container/config.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/container/config.go @@ -1,4 +1,4 @@ -package container +package container // import "github.com/docker/docker/api/types/container" import ( "time" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/container/host_config.go b/ecs-cli/vendor/github.com/docker/docker/api/types/container/host_config.go index 568cdcca9..02271ecd9 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/container/host_config.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/container/host_config.go @@ -1,4 +1,4 @@ -package container +package container // import "github.com/docker/docker/api/types/container" import ( "strings" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/container/hostconfig_unix.go b/ecs-cli/vendor/github.com/docker/docker/api/types/container/hostconfig_unix.go index 2d664d1c9..cf6fdf440 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/container/hostconfig_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/container/hostconfig_unix.go @@ -1,6 +1,6 @@ // +build !windows -package container +package container // import "github.com/docker/docker/api/types/container" // IsValid indicates if an isolation technology is valid func (i Isolation) IsValid() bool { diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/container/hostconfig_windows.go b/ecs-cli/vendor/github.com/docker/docker/api/types/container/hostconfig_windows.go index 3374d737f..99f803a5b 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/container/hostconfig_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/container/hostconfig_windows.go @@ -1,4 +1,4 @@ -package container +package container // import "github.com/docker/docker/api/types/container" // IsBridge indicates whether container uses the bridge network stack // in windows it is given the name NAT diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/container/waitcondition.go b/ecs-cli/vendor/github.com/docker/docker/api/types/container/waitcondition.go index 64820fe35..cd8311f99 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/container/waitcondition.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/container/waitcondition.go @@ -1,4 +1,4 @@ -package container +package container // import "github.com/docker/docker/api/types/container" // WaitCondition is a type used to specify a container state for which // to wait. diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/filters/parse.go b/ecs-cli/vendor/github.com/docker/docker/api/types/filters/parse.go index d45d0528f..a41e3d8d9 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/filters/parse.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/filters/parse.go @@ -1,7 +1,7 @@ /*Package filters provides tools for encoding a mapping of keys to a set of multiple values. */ -package filters +package filters // import "github.com/docker/docker/api/types/filters" import ( "encoding/json" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/mount/mount.go b/ecs-cli/vendor/github.com/docker/docker/api/types/mount/mount.go index b7d133cd8..3fef974df 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/mount/mount.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/mount/mount.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/api/types/mount" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/network/network.go b/ecs-cli/vendor/github.com/docker/docker/api/types/network/network.go index 7c7dbacc8..761d0b34f 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/network/network.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/network/network.go @@ -1,4 +1,4 @@ -package network +package network // import "github.com/docker/docker/api/types/network" // Address represents an IP address type Address struct { diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/plugin_responses.go b/ecs-cli/vendor/github.com/docker/docker/api/types/plugin_responses.go index 18f743fcd..60d1fb5ad 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/plugin_responses.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/plugin_responses.go @@ -1,4 +1,4 @@ -package types +package types // import "github.com/docker/docker/api/types" import ( "encoding/json" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/registry/authenticate.go b/ecs-cli/vendor/github.com/docker/docker/api/types/registry/authenticate.go index 42cac4430..f0a2113e4 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/registry/authenticate.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/registry/authenticate.go @@ -1,4 +1,4 @@ -package registry +package registry // import "github.com/docker/docker/api/types/registry" // ---------------------------------------------------------------------------- // DO NOT EDIT THIS FILE diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/registry/registry.go b/ecs-cli/vendor/github.com/docker/docker/api/types/registry/registry.go index b98a943a1..8789ad3b3 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/registry/registry.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/registry/registry.go @@ -1,4 +1,4 @@ -package registry +package registry // import "github.com/docker/docker/api/types/registry" import ( "encoding/json" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/seccomp.go b/ecs-cli/vendor/github.com/docker/docker/api/types/seccomp.go index 7d62c9a43..67a41e1a8 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/seccomp.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/seccomp.go @@ -1,4 +1,4 @@ -package types +package types // import "github.com/docker/docker/api/types" // Seccomp represents the config for a seccomp profile for syscall restriction. type Seccomp struct { diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/stats.go b/ecs-cli/vendor/github.com/docker/docker/api/types/stats.go index 7ca76a5b6..60175c061 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/stats.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/stats.go @@ -1,6 +1,6 @@ // Package types is used for API stability in the types and response to the // consumers of the API stats endpoint. -package types +package types // import "github.com/docker/docker/api/types" import "time" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/strslice/strslice.go b/ecs-cli/vendor/github.com/docker/docker/api/types/strslice/strslice.go index bad493fb8..82921cebc 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/strslice/strslice.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/strslice/strslice.go @@ -1,4 +1,4 @@ -package strslice +package strslice // import "github.com/docker/docker/api/types/strslice" import "encoding/json" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/common.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/common.go index 2834cf202..ef020f458 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/common.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/common.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" import "time" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/config.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/config.go index 0fb021ce9..c1fdf3b3e 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/config.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/config.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" import "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/container.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/container.go index 734236c4b..0041653c9 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/container.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/container.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" import ( "time" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/network.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/network.go index 97c484e14..98ef3284d 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/network.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/network.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" import ( "github.com/docker/docker/api/types/network" @@ -62,6 +62,8 @@ const ( PortConfigProtocolTCP PortConfigProtocol = "tcp" // PortConfigProtocolUDP UDP PortConfigProtocolUDP PortConfigProtocol = "udp" + // PortConfigProtocolSCTP SCTP + PortConfigProtocolSCTP PortConfigProtocol = "sctp" ) // EndpointVirtualIP represents the virtual ip of a port. diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/node.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/node.go index 28c6851e9..1e30f5fa1 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/node.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/node.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" // Node represents a node. type Node struct { diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/runtime.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/runtime.go index c4c731dc8..81b5f4cfd 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/runtime.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/runtime.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" // RuntimeType is the type of runtime used for the TaskSpec type RuntimeType string diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/runtime/gen.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/runtime/gen.go index 47ae234ef..98c2806c3 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/runtime/gen.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/runtime/gen.go @@ -1,3 +1,3 @@ //go:generate protoc -I . --gogofast_out=import_path=github.com/docker/docker/api/types/swarm/runtime:. plugin.proto -package runtime +package runtime // import "github.com/docker/docker/api/types/swarm/runtime" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/secret.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/secret.go index f9b1e9266..cfba1141d 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/secret.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/secret.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" import "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/service.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/service.go index fa31a7ec8..abf192e75 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/service.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/service.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" import "time" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/swarm.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/swarm.go index b65fa86da..1b111d725 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/swarm.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/swarm.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" import "time" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/task.go b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/task.go index ff11b07e7..5c2bc492e 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/task.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/swarm/task.go @@ -1,4 +1,4 @@ -package swarm +package swarm // import "github.com/docker/docker/api/types/swarm" import ( "time" @@ -36,6 +36,10 @@ const ( TaskStateFailed TaskState = "failed" // TaskStateRejected REJECTED TaskStateRejected TaskState = "rejected" + // TaskStateRemove REMOVE + TaskStateRemove TaskState = "remove" + // TaskStateOrphaned ORPHANED + TaskStateOrphaned TaskState = "orphaned" ) // Task represents a task. @@ -162,19 +166,19 @@ const ( // TaskStatus represents the status of a task. type TaskStatus struct { - Timestamp time.Time `json:",omitempty"` - State TaskState `json:",omitempty"` - Message string `json:",omitempty"` - Err string `json:",omitempty"` - ContainerStatus ContainerStatus `json:",omitempty"` - PortStatus PortStatus `json:",omitempty"` + Timestamp time.Time `json:",omitempty"` + State TaskState `json:",omitempty"` + Message string `json:",omitempty"` + Err string `json:",omitempty"` + ContainerStatus *ContainerStatus `json:",omitempty"` + PortStatus PortStatus `json:",omitempty"` } // ContainerStatus represents the status of a container. type ContainerStatus struct { - ContainerID string `json:",omitempty"` - PID int `json:",omitempty"` - ExitCode int `json:",omitempty"` + ContainerID string + PID int + ExitCode int } // PortStatus represents the port status of a task's host ports whose diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/types.go b/ecs-cli/vendor/github.com/docker/docker/api/types/types.go index 7814e6b93..729f4eb6c 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/types.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/types.go @@ -1,4 +1,4 @@ -package types +package types // import "github.com/docker/docker/api/types" import ( "errors" diff --git a/ecs-cli/vendor/github.com/docker/docker/api/types/versions/compare.go b/ecs-cli/vendor/github.com/docker/docker/api/types/versions/compare.go index 611d4fed6..8ccb0aa92 100644 --- a/ecs-cli/vendor/github.com/docker/docker/api/types/versions/compare.go +++ b/ecs-cli/vendor/github.com/docker/docker/api/types/versions/compare.go @@ -1,4 +1,4 @@ -package versions +package versions // import "github.com/docker/docker/api/types/versions" import ( "strconv" diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/env.go b/ecs-cli/vendor/github.com/docker/docker/opts/env.go index 4fbd470bc..f6e5e9074 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/env.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/env.go @@ -1,4 +1,4 @@ -package opts +package opts // import "github.com/docker/docker/opts" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/hosts.go b/ecs-cli/vendor/github.com/docker/docker/opts/hosts.go index f46b8ee71..2adf4211d 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/hosts.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/hosts.go @@ -1,4 +1,4 @@ -package opts +package opts // import "github.com/docker/docker/opts" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/hosts_unix.go b/ecs-cli/vendor/github.com/docker/docker/opts/hosts_unix.go index 611407a9d..9d5bb6456 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/hosts_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/hosts_unix.go @@ -1,6 +1,6 @@ // +build !windows -package opts +package opts // import "github.com/docker/docker/opts" import "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/hosts_windows.go b/ecs-cli/vendor/github.com/docker/docker/opts/hosts_windows.go index 684f0e128..906eba53e 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/hosts_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/hosts_windows.go @@ -1,4 +1,4 @@ -package opts +package opts // import "github.com/docker/docker/opts" // DefaultHost constant defines the default host string used by docker on Windows var DefaultHost = "npipe://" + DefaultNamedPipe diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/ip.go b/ecs-cli/vendor/github.com/docker/docker/opts/ip.go index 109506397..cfbff3a9f 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/ip.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/ip.go @@ -1,4 +1,4 @@ -package opts +package opts // import "github.com/docker/docker/opts" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/opts.go b/ecs-cli/vendor/github.com/docker/docker/opts/opts.go index a2cc5e33b..bfdcb996b 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/opts.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/opts.go @@ -1,4 +1,4 @@ -package opts +package opts // import "github.com/docker/docker/opts" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/opts_unix.go b/ecs-cli/vendor/github.com/docker/docker/opts/opts_unix.go index 2766a43a0..0c32367cb 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/opts_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/opts_unix.go @@ -1,6 +1,6 @@ // +build !windows -package opts +package opts // import "github.com/docker/docker/opts" // DefaultHTTPHost Default HTTP Host used if only port is provided to -H flag e.g. dockerd -H tcp://:8080 const DefaultHTTPHost = "localhost" diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/opts_windows.go b/ecs-cli/vendor/github.com/docker/docker/opts/opts_windows.go index 98b7251a9..0e1b6c6d1 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/opts_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/opts_windows.go @@ -1,4 +1,4 @@ -package opts +package opts // import "github.com/docker/docker/opts" // TODO Windows. Identify bug in GOLang 1.5.1+ and/or Windows Server 2016 TP5. // @jhowardmsft, @swernli. diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/quotedstring.go b/ecs-cli/vendor/github.com/docker/docker/opts/quotedstring.go index 09c68a526..6c889070e 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/quotedstring.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/quotedstring.go @@ -1,4 +1,4 @@ -package opts +package opts // import "github.com/docker/docker/opts" // QuotedString is a string that may have extra quotes around the value. The // quotes are stripped from the value. diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/runtime.go b/ecs-cli/vendor/github.com/docker/docker/opts/runtime.go index 4361b3ce0..4b9babf0a 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/runtime.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/runtime.go @@ -1,4 +1,4 @@ -package opts +package opts // import "github.com/docker/docker/opts" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/opts/ulimit.go b/ecs-cli/vendor/github.com/docker/docker/opts/ulimit.go index a2a65fcd2..0e2a36236 100644 --- a/ecs-cli/vendor/github.com/docker/docker/opts/ulimit.go +++ b/ecs-cli/vendor/github.com/docker/docker/opts/ulimit.go @@ -1,4 +1,4 @@ -package opts +package opts // import "github.com/docker/docker/opts" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive.go index a0c25937c..e8f50869d 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "archive/tar" @@ -6,6 +6,7 @@ import ( "bytes" "compress/bzip2" "compress/gzip" + "context" "fmt" "io" "io/ioutil" @@ -13,6 +14,7 @@ import ( "os/exec" "path/filepath" "runtime" + "strconv" "strings" "syscall" @@ -24,6 +26,17 @@ import ( "github.com/sirupsen/logrus" ) +var unpigzPath string + +func init() { + if path, err := exec.LookPath("unpigz"); err != nil { + logrus.Debug("unpigz binary not found in PATH, falling back to go gzip library") + } else { + logrus.Debugf("Using unpigz binary found at path %s", path) + unpigzPath = path + } +} + type ( // Compression is the state represents if compressed or not. Compression int @@ -136,10 +149,34 @@ func DetectCompression(source []byte) Compression { return Uncompressed } -func xzDecompress(archive io.Reader) (io.ReadCloser, <-chan struct{}, error) { +func xzDecompress(ctx context.Context, archive io.Reader) (io.ReadCloser, error) { args := []string{"xz", "-d", "-c", "-q"} - return cmdStream(exec.Command(args[0], args[1:]...), archive) + return cmdStream(exec.CommandContext(ctx, args[0], args[1:]...), archive) +} + +func gzDecompress(ctx context.Context, buf io.Reader) (io.ReadCloser, error) { + if unpigzPath == "" { + return gzip.NewReader(buf) + } + + disablePigzEnv := os.Getenv("MOBY_DISABLE_PIGZ") + if disablePigzEnv != "" { + if disablePigz, err := strconv.ParseBool(disablePigzEnv); err != nil { + return nil, err + } else if disablePigz { + return gzip.NewReader(buf) + } + } + + return cmdStream(exec.CommandContext(ctx, unpigzPath, "-d", "-c"), buf) +} + +func wrapReadCloser(readBuf io.ReadCloser, cancel context.CancelFunc) io.ReadCloser { + return ioutils.NewReadCloserWrapper(readBuf, func() error { + cancel() + return readBuf.Close() + }) } // DecompressStream decompresses the archive and returns a ReaderCloser with the decompressed archive. @@ -163,26 +200,29 @@ func DecompressStream(archive io.Reader) (io.ReadCloser, error) { readBufWrapper := p.NewReadCloserWrapper(buf, buf) return readBufWrapper, nil case Gzip: - gzReader, err := gzip.NewReader(buf) + ctx, cancel := context.WithCancel(context.Background()) + + gzReader, err := gzDecompress(ctx, buf) if err != nil { + cancel() return nil, err } readBufWrapper := p.NewReadCloserWrapper(buf, gzReader) - return readBufWrapper, nil + return wrapReadCloser(readBufWrapper, cancel), nil case Bzip2: bz2Reader := bzip2.NewReader(buf) readBufWrapper := p.NewReadCloserWrapper(buf, bz2Reader) return readBufWrapper, nil case Xz: - xzReader, chdone, err := xzDecompress(buf) + ctx, cancel := context.WithCancel(context.Background()) + + xzReader, err := xzDecompress(ctx, buf) if err != nil { + cancel() return nil, err } readBufWrapper := p.NewReadCloserWrapper(buf, xzReader) - return ioutils.NewReadCloserWrapper(readBufWrapper, func() error { - <-chdone - return readBufWrapper.Close() - }), nil + return wrapReadCloser(readBufWrapper, cancel), nil default: return nil, fmt.Errorf("Unsupported compression format %s", (&compression).Extension()) } @@ -1163,8 +1203,7 @@ func remapIDs(idMappings *idtools.IDMappings, hdr *tar.Header) error { // cmdStream executes a command, and returns its stdout as a stream. // If the command fails to run or doesn't complete successfully, an error // will be returned, including anything written on stderr. -func cmdStream(cmd *exec.Cmd, input io.Reader) (io.ReadCloser, <-chan struct{}, error) { - chdone := make(chan struct{}) +func cmdStream(cmd *exec.Cmd, input io.Reader) (io.ReadCloser, error) { cmd.Stdin = input pipeR, pipeW := io.Pipe() cmd.Stdout = pipeW @@ -1173,7 +1212,7 @@ func cmdStream(cmd *exec.Cmd, input io.Reader) (io.ReadCloser, <-chan struct{}, // Run the command and return the pipe if err := cmd.Start(); err != nil { - return nil, nil, err + return nil, err } // Copy stdout to the returned pipe @@ -1183,10 +1222,9 @@ func cmdStream(cmd *exec.Cmd, input io.Reader) (io.ReadCloser, <-chan struct{}, } else { pipeW.Close() } - close(chdone) }() - return pipeR, chdone, nil + return pipeR, nil } // NewTempArchive reads the content of src into a temporary file, and returns the contents diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_linux.go index 6e950e93c..970d4d068 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_linux.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "archive/tar" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_other.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_other.go index 54acbf285..462dfc632 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_other.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_other.go @@ -1,6 +1,6 @@ // +build !linux -package archive +package archive // import "github.com/docker/docker/pkg/archive" func getWhiteoutConverter(format WhiteoutFormat) tarWhiteoutConverter { return nil diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_unix.go index 02e95adff..e81076c17 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_unix.go @@ -1,6 +1,6 @@ // +build !windows -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "archive/tar" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_windows.go index 66243a64a..e75bfc9b6 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/archive_windows.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "archive/tar" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes.go index d78fe6ac6..43734db5b 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "archive/tar" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_linux.go index e9eb478fe..78a5393c8 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_linux.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "bytes" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_other.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_other.go index da70ed37c..ba744741c 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_other.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_other.go @@ -1,6 +1,6 @@ // +build !linux -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_unix.go index 7aa1226d7..c06a209d8 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_unix.go @@ -1,6 +1,6 @@ // +build !windows -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_windows.go index 6fd353269..6555c0136 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/changes_windows.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy.go index d1e036d5c..d0f13ca79 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "archive/tar" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy_unix.go index e305b5e4a..3958364f5 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy_unix.go @@ -1,6 +1,6 @@ // +build !windows -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "path/filepath" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy_windows.go index 2b775b45c..a878d1bac 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/copy_windows.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "path/filepath" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/diff.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/diff.go index 019facd38..d0cff98ff 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/diff.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/diff.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "archive/tar" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/time_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/time_linux.go index 3448569b1..58aefe3ef 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/time_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/time_linux.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/time_unsupported.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/time_unsupported.go index e85aac054..f58bf227f 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/time_unsupported.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/time_unsupported.go @@ -1,6 +1,6 @@ // +build !linux -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/whiteouts.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/whiteouts.go index d20478a10..4c072a87e 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/whiteouts.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/whiteouts.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" // Whiteouts are files with a special meaning for the layered filesystem. // Docker uses AUFS whiteout files inside exported archives. In other diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/wrap.go b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/wrap.go index b39d12c87..85435694c 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/archive/wrap.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/archive/wrap.go @@ -1,4 +1,4 @@ -package archive +package archive // import "github.com/docker/docker/pkg/archive" import ( "archive/tar" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils.go b/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils.go index a129e654e..88e0f2834 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils.go @@ -1,4 +1,4 @@ -package fileutils +package fileutils // import "github.com/docker/docker/pkg/fileutils" import ( "errors" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_darwin.go b/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_darwin.go index ccd648fac..e40cc271b 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_darwin.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_darwin.go @@ -1,4 +1,4 @@ -package fileutils +package fileutils // import "github.com/docker/docker/pkg/fileutils" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_unix.go index 9e0e97bd6..565396f1c 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_unix.go @@ -1,6 +1,6 @@ // +build linux freebsd -package fileutils +package fileutils // import "github.com/docker/docker/pkg/fileutils" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_windows.go index 5ec21cace..3f1ebb656 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/fileutils/fileutils_windows.go @@ -1,4 +1,4 @@ -package fileutils +package fileutils // import "github.com/docker/docker/pkg/fileutils" // GetTotalUsedFds Returns the number of used File Descriptors. Not supported // on Windows. diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_linux.go index a7cd2e103..ee15ed52b 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_linux.go @@ -1,4 +1,4 @@ -package homedir +package homedir // import "github.com/docker/docker/pkg/homedir" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_others.go b/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_others.go index 6b96b856f..75ada2fe5 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_others.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_others.go @@ -1,6 +1,6 @@ // +build !linux -package homedir +package homedir // import "github.com/docker/docker/pkg/homedir" import ( "errors" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go index f2a20ea8f..d85e12448 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_unix.go @@ -1,6 +1,6 @@ // +build !windows -package homedir +package homedir // import "github.com/docker/docker/pkg/homedir" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_windows.go index fafdb2bbf..2f81813b2 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/homedir/homedir_windows.go @@ -1,4 +1,4 @@ -package homedir +package homedir // import "github.com/docker/docker/pkg/homedir" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools.go b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools.go index 6108ae3f4..e2b493158 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools.go @@ -1,4 +1,4 @@ -package idtools +package idtools // import "github.com/docker/docker/pkg/idtools" import ( "bufio" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools_unix.go index aedf8ad34..1d87ea3bc 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools_unix.go @@ -1,6 +1,6 @@ // +build !windows -package idtools +package idtools // import "github.com/docker/docker/pkg/idtools" import ( "bytes" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools_windows.go index ec4917770..d72cc2892 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/idtools_windows.go @@ -1,4 +1,4 @@ -package idtools +package idtools // import "github.com/docker/docker/pkg/idtools" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_linux.go index 9da7975e2..6272c5a40 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_linux.go @@ -1,4 +1,4 @@ -package idtools +package idtools // import "github.com/docker/docker/pkg/idtools" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_unsupported.go b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_unsupported.go index d98b354cb..e7c4d6311 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_unsupported.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/usergroupadd_unsupported.go @@ -1,6 +1,6 @@ // +build !linux -package idtools +package idtools // import "github.com/docker/docker/pkg/idtools" import "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/utils_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/utils_unix.go index 9703ecbd9..903ac4501 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/utils_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/idtools/utils_unix.go @@ -1,6 +1,6 @@ // +build !windows -package idtools +package idtools // import "github.com/docker/docker/pkg/idtools" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/buffer.go b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/buffer.go index 3d737b3e1..466f79294 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/buffer.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/buffer.go @@ -1,4 +1,4 @@ -package ioutils +package ioutils // import "github.com/docker/docker/pkg/ioutils" import ( "errors" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go index 72a04f349..d4bbf3c9d 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/bytespipe.go @@ -1,4 +1,4 @@ -package ioutils +package ioutils // import "github.com/docker/docker/pkg/ioutils" import ( "errors" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/fswriters.go b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/fswriters.go index a56c46265..534d66ac2 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/fswriters.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/fswriters.go @@ -1,4 +1,4 @@ -package ioutils +package ioutils // import "github.com/docker/docker/pkg/ioutils" import ( "io" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/readers.go b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/readers.go index 63f3c07f4..72f7f2319 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/readers.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/readers.go @@ -1,4 +1,4 @@ -package ioutils +package ioutils // import "github.com/docker/docker/pkg/ioutils" import ( "crypto/sha256" @@ -8,18 +8,22 @@ import ( "golang.org/x/net/context" ) -type readCloserWrapper struct { +// ReadCloserWrapper wraps an io.Reader, and implements an io.ReadCloser +// It calls the given callback function when closed. It should be constructed +// with NewReadCloserWrapper +type ReadCloserWrapper struct { io.Reader closer func() error } -func (r *readCloserWrapper) Close() error { +// Close calls back the passed closer function +func (r *ReadCloserWrapper) Close() error { return r.closer() } // NewReadCloserWrapper returns a new io.ReadCloser. func NewReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser { - return &readCloserWrapper{ + return &ReadCloserWrapper{ Reader: r, closer: closer, } diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/temp_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/temp_unix.go index 1539ad21b..dc894f913 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/temp_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/temp_unix.go @@ -1,6 +1,6 @@ // +build !windows -package ioutils +package ioutils // import "github.com/docker/docker/pkg/ioutils" import "io/ioutil" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/temp_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/temp_windows.go index fb14c9548..ecaba2e36 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/temp_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/temp_windows.go @@ -1,4 +1,4 @@ -package ioutils +package ioutils // import "github.com/docker/docker/pkg/ioutils" import ( "io/ioutil" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go index 52a4901ad..91b8d1826 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go @@ -1,4 +1,4 @@ -package ioutils +package ioutils // import "github.com/docker/docker/pkg/ioutils" import ( "io" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/writers.go b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/writers.go index ccc7f9c23..61c679497 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/writers.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/ioutils/writers.go @@ -1,4 +1,4 @@ -package ioutils +package ioutils // import "github.com/docker/docker/pkg/ioutils" import "io" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go b/ecs-cli/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go index 6cfa46483..368f12894 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/jsonmessage/jsonmessage.go @@ -1,4 +1,4 @@ -package jsonmessage +package jsonmessage // import "github.com/docker/docker/pkg/jsonmessage" import ( "encoding/json" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/longpath/longpath.go b/ecs-cli/vendor/github.com/docker/docker/pkg/longpath/longpath.go index 9b15bfff4..4177affba 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/longpath/longpath.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/longpath/longpath.go @@ -2,7 +2,7 @@ // in Windows, which are expected to be prepended with `\\?\` and followed by either // a drive letter, a UNC server\share, or a volume identifier. -package longpath +package longpath // import "github.com/docker/docker/pkg/longpath" import ( "strings" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags.go index 607dbed43..272363b68 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_freebsd.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_freebsd.go index 5f76f331b..ef35ef905 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_freebsd.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_freebsd.go @@ -1,6 +1,6 @@ // +build freebsd,cgo -package mount +package mount // import "github.com/docker/docker/pkg/mount" /* #include diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_linux.go index 0425d0dd6..a1b199a31 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_linux.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" import ( "golang.org/x/sys/unix" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_unsupported.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_unsupported.go index 43d5e339f..cc6c47590 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_unsupported.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/flags_unsupported.go @@ -1,6 +1,6 @@ // +build !linux,!freebsd freebsd,!cgo -package mount +package mount // import "github.com/docker/docker/pkg/mount" // These flags are unsupported. const ( diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mount.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mount.go index ee5833c49..8ff4925d7 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mount.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mount.go @@ -1,9 +1,11 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" import ( "sort" "strings" + "syscall" + "github.com/sirupsen/logrus" ) @@ -77,18 +79,30 @@ func RecursiveUnmount(target string) error { continue } logrus.Debugf("Trying to unmount %s", m.Mountpoint) - err = Unmount(m.Mountpoint) - if err != nil && i == len(mounts)-1 { - if mounted, err := Mounted(m.Mountpoint); err != nil || mounted { - return err + err = unmount(m.Mountpoint, mntDetach) + if err != nil { + // If the error is EINVAL either this whole package is wrong (invalid flags passed to unmount(2)) or this is + // not a mountpoint (which is ok in this case). + // Meanwhile calling `Mounted()` is very expensive. + // + // We've purposefully used `syscall.EINVAL` here instead of `unix.EINVAL` to avoid platform branching + // Since `EINVAL` is defined for both Windows and Linux in the `syscall` package (and other platforms), + // this is nicer than defining a custom value that we can refer to in each platform file. + if err == syscall.EINVAL { + continue + } + if i == len(mounts)-1 { + if mounted, e := Mounted(m.Mountpoint); e != nil || mounted { + return err + } + continue } - // Ignore errors for submounts and continue trying to unmount others - // The final unmount should fail if there ane any submounts remaining - } else if err != nil { - logrus.Errorf("Failed to unmount %s: %v", m.Mountpoint, err) - } else if err == nil { - logrus.Debugf("Unmounted %s", m.Mountpoint) + // This is some submount, we can ignore this error for now, the final unmount will fail if this is a real problem + logrus.WithError(err).Warnf("Failed to unmount submount %s", m.Mountpoint) + continue } + + logrus.Debugf("Unmounted %s", m.Mountpoint) } return nil } diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_freebsd.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_freebsd.go index 814896cc9..b6ab83a23 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_freebsd.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_freebsd.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" /* #include diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_linux.go index 39c36d472..631daf10a 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_linux.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" import ( "golang.org/x/sys/unix" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_unsupported.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_unsupported.go index eb93365eb..1428dffa5 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_unsupported.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mounter_unsupported.go @@ -1,6 +1,6 @@ // +build !linux,!freebsd freebsd,!cgo -package mount +package mount // import "github.com/docker/docker/pkg/mount" func mount(device, target, mType string, flag uintptr, data string) error { panic("Not implemented") diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo.go index ff4cc1d86..05803938a 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" // Info reveals information about a particular mounted filesystem. This // struct is populated from the content in the /proc//mountinfo file. diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_freebsd.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_freebsd.go index 4f32edcd9..b86f4a97f 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_freebsd.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_freebsd.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" /* #include diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go index dde889e7b..4afa8d538 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_linux.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" import ( "bufio" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_unsupported.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_unsupported.go index b8d9aa5c7..2ecc8baed 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_unsupported.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_unsupported.go @@ -1,6 +1,6 @@ // +build !windows,!linux,!freebsd freebsd,!cgo -package mount +package mount // import "github.com/docker/docker/pkg/mount" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_windows.go index dab8a37ed..7ecba7c13 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/mountinfo_windows.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" func parseMountTable() ([]*Info, error) { // Do NOT return an error! diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/sharedsubtree_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/sharedsubtree_linux.go index f3c13e5a1..538f6637a 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/mount/sharedsubtree_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/mount/sharedsubtree_linux.go @@ -1,4 +1,4 @@ -package mount +package mount // import "github.com/docker/docker/pkg/mount" // MakeShared ensures a mounted filesystem has the SHARED mount option enabled. // See the supported options in flags.go for further reference. diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/pools/pools.go b/ecs-cli/vendor/github.com/docker/docker/pkg/pools/pools.go index 6a111a3ba..46339c282 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/pools/pools.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/pools/pools.go @@ -7,7 +7,7 @@ // // Utility functions which operate on pools should be added to this // package to allow them to be reused. -package pools +package pools // import "github.com/docker/docker/pkg/pools" import ( "bufio" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/stdcopy/stdcopy.go b/ecs-cli/vendor/github.com/docker/docker/pkg/stdcopy/stdcopy.go index a018a203f..3b1e18736 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/stdcopy/stdcopy.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/stdcopy/stdcopy.go @@ -1,4 +1,4 @@ -package stdcopy +package stdcopy // import "github.com/docker/docker/pkg/stdcopy" import ( "bytes" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes.go index 056d19954..c26a4e24b 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "os" @@ -27,9 +27,5 @@ func Chtimes(name string, atime time.Time, mtime time.Time) error { } // Take platform specific action for setting create time. - if err := setCTime(name, mtime); err != nil { - return err - } - - return nil + return setCTime(name, mtime) } diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes_unix.go index 09d58bcbf..259138a45 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes_unix.go @@ -1,6 +1,6 @@ // +build !windows -package system +package system // import "github.com/docker/docker/pkg/system" import ( "time" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes_windows.go index a1f4fd53b..d3a115ff4 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/chtimes_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "time" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/errors.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/errors.go index 288318985..2573d7162 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/errors.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/errors.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "errors" @@ -7,4 +7,7 @@ import ( var ( // ErrNotSupportedPlatform means the platform is not supported. ErrNotSupportedPlatform = errors.New("platform and architecture is not supported") + + // ErrNotSupportedOperatingSystem means the operating system is not supported. + ErrNotSupportedOperatingSystem = errors.New("operating system is not supported") ) diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/exitcode.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/exitcode.go index a5e5616c4..4ba8fe35b 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/exitcode.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/exitcode.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/filesys.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/filesys.go index 102565f76..adeb16305 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/filesys.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/filesys.go @@ -1,6 +1,6 @@ // +build !windows -package system +package system // import "github.com/docker/docker/pkg/system" import ( "io/ioutil" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/filesys_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/filesys_windows.go index b1e46d9e8..a1f6013f1 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/filesys_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/filesys_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/init.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/init.go index 17935088d..a17597aab 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/init.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/init.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/init_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/init_unix.go index a219895e6..4996a67c1 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/init_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/init_unix.go @@ -1,6 +1,6 @@ // +build !windows -package system +package system // import "github.com/docker/docker/pkg/system" // InitLCOW does nothing since LCOW is a windows only feature func InitLCOW(experimental bool) { diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/init_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/init_windows.go index 75f8f2c06..4910ff69d 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/init_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/init_windows.go @@ -1,17 +1,12 @@ -package system - -import "os" +package system // import "github.com/docker/docker/pkg/system" // lcowSupported determines if Linux Containers on Windows are supported. var lcowSupported = false // InitLCOW sets whether LCOW is supported or not -// TODO @jhowardmsft. -// 1. Replace with RS3 RTM build number. -// 2. Remove the getenv check when image-store is coalesced as shouldn't be needed anymore. func InitLCOW(experimental bool) { v := GetOSVersion() - if experimental && v.Build > 16270 && os.Getenv("LCOW_SUPPORTED") != "" { + if experimental && v.Build >= 16299 { lcowSupported = true } } diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow.go index b88c11e31..5c3fbfe6f 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "fmt" @@ -56,3 +56,14 @@ func ParsePlatform(in string) *specs.Platform { } return p } + +// IsOSSupported determines if an operating system is supported by the host +func IsOSSupported(os string) bool { + if runtime.GOOS == os { + return true + } + if LCOWSupported() && os == "linux" { + return true + } + return false +} diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow_unix.go index cff33bb40..26397fb8a 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow_unix.go @@ -1,6 +1,6 @@ // +build !windows -package system +package system // import "github.com/docker/docker/pkg/system" // LCOWSupported returns true if Linux containers on Windows are supported. func LCOWSupported() bool { diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow_windows.go index e54d01e69..f0139df8f 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lcow_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" // LCOWSupported returns true if Linux containers on Windows are supported. func LCOWSupported() bool { diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lstat_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lstat_unix.go index bd23c4d50..7477995f1 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lstat_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lstat_unix.go @@ -1,6 +1,6 @@ // +build !windows -package system +package system // import "github.com/docker/docker/pkg/system" import ( "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lstat_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lstat_windows.go index e51df0daf..359c791d9 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/lstat_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/lstat_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo.go index 3b6e947e6..6667eb84d 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" // MemInfo contains memory statistics of the host system. type MemInfo struct { diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_linux.go index 385f1d5e7..d79e8b076 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_linux.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "bufio" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_unsupported.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_unsupported.go index 82ddd30c1..56f449426 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_unsupported.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_unsupported.go @@ -1,6 +1,6 @@ // +build !linux,!windows -package system +package system // import "github.com/docker/docker/pkg/system" // ReadMemInfo is not supported on platforms other than linux and windows. func ReadMemInfo() (*MemInfo, error) { diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_windows.go index 883944a4c..6ed93f2fe 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/meminfo_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "unsafe" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/mknod.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/mknod.go index 2200ec42d..b132482e0 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/mknod.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/mknod.go @@ -1,6 +1,6 @@ // +build !windows -package system +package system // import "github.com/docker/docker/pkg/system" import ( "golang.org/x/sys/unix" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/mknod_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/mknod_windows.go index ba2692aed..ec89d7a15 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/mknod_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/mknod_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" // Mknod is not implemented on Windows. func Mknod(path string, mode uint32, dev int) error { diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/path.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/path.go index 034c33c87..a3d957afa 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/path.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/path.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "fmt" @@ -35,7 +35,7 @@ func DefaultPathEnv(os string) string { // This is used, for example, when validating a user provided path in docker cp. // If a drive letter is supplied, it must be the system drive. The drive letter // is always removed. Also, it translates it to OS semantics (IOW / to \). We -// need the path in this syntax so that it can ultimately be contatenated with +// need the path in this syntax so that it can ultimately be concatenated with // a Windows long-path which doesn't support drive-letters. Examples: // C: --> Fail // C:\ --> \ diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/process_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/process_unix.go index 02c138235..0195a891b 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/process_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/process_unix.go @@ -1,6 +1,6 @@ // +build linux freebsd darwin -package system +package system // import "github.com/docker/docker/pkg/system" import ( "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/process_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/process_windows.go index 5973c46de..4e70c97b1 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/process_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/process_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/rm.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/rm.go index c453adcdb..02e4d2622 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/rm.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/rm.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_darwin.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_darwin.go index 715f05b93..c1c0ee9f3 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_darwin.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_darwin.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_freebsd.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_freebsd.go index 715f05b93..c1c0ee9f3 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_freebsd.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_freebsd.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_linux.go index 1939f9518..98c9eb18d 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_linux.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go index b607dea94..756b92d1e 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_openbsd.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_solaris.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_solaris.go index b607dea94..756b92d1e 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_solaris.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_solaris.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_unix.go index 9dcec6afb..3d7e2ebbe 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_unix.go @@ -1,6 +1,6 @@ // +build !windows -package system +package system // import "github.com/docker/docker/pkg/system" import ( "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_windows.go index 6c6397268..b2456cb88 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/stat_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/syscall_unix.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/syscall_unix.go index 49dbdd378..919a412a7 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/syscall_unix.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/syscall_unix.go @@ -1,6 +1,6 @@ // +build linux freebsd -package system +package system // import "github.com/docker/docker/pkg/system" import "golang.org/x/sys/unix" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/syscall_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/syscall_windows.go index 23e9b207c..85e89a7ee 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/syscall_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/syscall_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "unsafe" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/umask.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/umask.go index 5a10eda5a..9912a2bab 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/umask.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/umask.go @@ -1,6 +1,6 @@ // +build !windows -package system +package system // import "github.com/docker/docker/pkg/system" import ( "golang.org/x/sys/unix" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/umask_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/umask_windows.go index 71fc0f1ba..fc62388c3 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/umask_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/umask_windows.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" // Umask is not supported on the windows platform. func Umask(newmask int) (oldmask int, err error) { diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_freebsd.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_freebsd.go index 6a7752437..ed1b9fad5 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_freebsd.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_freebsd.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_linux.go index edc588a63..0afe85458 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_linux.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import ( "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go index 139714544..095e072e1 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/utimes_unsupported.go @@ -1,6 +1,6 @@ // +build !linux,!freebsd -package system +package system // import "github.com/docker/docker/pkg/system" import "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go index 98b111be4..66d4895b2 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/xattrs_linux.go @@ -1,4 +1,4 @@ -package system +package system // import "github.com/docker/docker/pkg/system" import "golang.org/x/sys/unix" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go b/ecs-cli/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go index 0114f2227..d780a90cd 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/system/xattrs_unsupported.go @@ -1,6 +1,6 @@ // +build !linux -package system +package system // import "github.com/docker/docker/pkg/system" // Lgetxattr is not supported on platforms other than linux. func Lgetxattr(path string, attr string) ([]byte, error) { diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/ascii.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/ascii.go index 55873c055..87bca8d4a 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/ascii.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/ascii.go @@ -1,4 +1,4 @@ -package term +package term // import "github.com/docker/docker/pkg/term" import ( "fmt" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/proxy.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/proxy.go index e648eb812..5c4a5260f 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/proxy.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/proxy.go @@ -1,4 +1,4 @@ -package term +package term // import "github.com/docker/docker/pkg/term" import ( "io" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/tc.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/tc.go index 19dbb1cb1..01bcaa8ab 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/tc.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/tc.go @@ -1,6 +1,6 @@ // +build !windows -package term +package term // import "github.com/docker/docker/pkg/term" import ( "syscall" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/term.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/term.go index 4f59d8d93..0589a9551 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/term.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/term.go @@ -2,7 +2,7 @@ // Package term provides structures and helper functions to work with // terminal (state, sizes). -package term +package term // import "github.com/docker/docker/pkg/term" import ( "errors" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/term_windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/term_windows.go index 284ac6301..64ead3c53 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/term_windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/term_windows.go @@ -1,4 +1,4 @@ -package term +package term // import "github.com/docker/docker/pkg/term" import ( "io" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/termios_bsd.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/termios_bsd.go index c47341e87..48f25ce7e 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/termios_bsd.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/termios_bsd.go @@ -1,6 +1,6 @@ // +build darwin freebsd openbsd -package term +package term // import "github.com/docker/docker/pkg/term" import ( "unsafe" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/termios_linux.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/termios_linux.go index 0f21abcc2..6d4c63fdb 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/termios_linux.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/termios_linux.go @@ -1,4 +1,4 @@ -package term +package term // import "github.com/docker/docker/pkg/term" import ( "golang.org/x/sys/unix" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/ansi_reader.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/ansi_reader.go index 29d396318..1d7c452cc 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/ansi_reader.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/ansi_reader.go @@ -1,6 +1,6 @@ // +build windows -package windowsconsole +package windowsconsole // import "github.com/docker/docker/pkg/term/windows" import ( "bytes" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/ansi_writer.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/ansi_writer.go index 256577e1f..7799a03fc 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/ansi_writer.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/ansi_writer.go @@ -1,6 +1,6 @@ // +build windows -package windowsconsole +package windowsconsole // import "github.com/docker/docker/pkg/term/windows" import ( "io" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/console.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/console.go index 4bad32ea7..527401975 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/console.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/console.go @@ -1,6 +1,6 @@ // +build windows -package windowsconsole +package windowsconsole // import "github.com/docker/docker/pkg/term/windows" import ( "os" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/windows.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/windows.go index c02a93a03..1f8965969 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/windows.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/windows/windows.go @@ -2,7 +2,7 @@ // When asked for the set of standard streams (e.g., stdin, stdout, stderr), the code will create // and return pseudo-streams that convert ANSI sequences to / from Windows Console API calls. -package windowsconsole +package windowsconsole // import "github.com/docker/docker/pkg/term/windows" import ( "io/ioutil" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/term/winsize.go b/ecs-cli/vendor/github.com/docker/docker/pkg/term/winsize.go index 1ef98d599..a19663ad8 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/term/winsize.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/term/winsize.go @@ -1,6 +1,6 @@ // +build !windows -package term +package term // import "github.com/docker/docker/pkg/term" import ( "golang.org/x/sys/unix" diff --git a/ecs-cli/vendor/github.com/docker/docker/pkg/urlutil/urlutil.go b/ecs-cli/vendor/github.com/docker/docker/pkg/urlutil/urlutil.go index cfcd58203..eaf2535da 100644 --- a/ecs-cli/vendor/github.com/docker/docker/pkg/urlutil/urlutil.go +++ b/ecs-cli/vendor/github.com/docker/docker/pkg/urlutil/urlutil.go @@ -1,6 +1,6 @@ // Package urlutil provides helper function to check urls kind. // It supports http urls, git urls and transport url (tcp://, …) -package urlutil +package urlutil // import "github.com/docker/docker/pkg/urlutil" import ( "regexp"