├── .gitignore ├── Dockerfile ├── Dockerfile.build ├── Dockerfile.tools ├── LICENSE ├── Makefile ├── README.md ├── common ├── config.go └── constants.go ├── config.json ├── docs ├── BUILD.md └── CONFIG.md ├── driver ├── infoblox_ipam.go └── ipam_driver.go ├── ea-defs └── create_ea_defs.go ├── etc └── config.example ├── glide.lock ├── glide.yaml ├── ipam-tools └── launch.sh ├── scripts └── create_ea_defs.sh └── vendor ├── github.com ├── BurntSushi │ └── toml │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── COMPATIBLE │ │ ├── COPYING │ │ ├── Makefile │ │ ├── README.md │ │ ├── _examples │ │ ├── example.go │ │ ├── example.toml │ │ ├── hard.toml │ │ ├── implicit.toml │ │ ├── invalid-apples.toml │ │ ├── invalid.toml │ │ ├── readme1.toml │ │ └── readme2.toml │ │ ├── cmd │ │ ├── toml-test-decoder │ │ │ ├── COPYING │ │ │ ├── README.md │ │ │ └── main.go │ │ ├── toml-test-encoder │ │ │ ├── COPYING │ │ │ ├── README.md │ │ │ └── main.go │ │ └── tomlv │ │ │ ├── COPYING │ │ │ ├── README.md │ │ │ └── main.go │ │ ├── decode.go │ │ ├── decode_meta.go │ │ ├── decode_test.go │ │ ├── doc.go │ │ ├── encode.go │ │ ├── encode_test.go │ │ ├── encoding_types.go │ │ ├── encoding_types_1.1.go │ │ ├── lex.go │ │ ├── parse.go │ │ ├── session.vim │ │ ├── type_check.go │ │ └── type_fields.go ├── Microsoft │ └── go-winio │ │ ├── LICENSE │ │ ├── README.md │ │ ├── archive │ │ └── tar │ │ │ ├── LICENSE │ │ │ ├── common.go │ │ │ ├── example_test.go │ │ │ ├── reader.go │ │ │ ├── reader_test.go │ │ │ ├── stat_atim.go │ │ │ ├── stat_atimespec.go │ │ │ ├── stat_unix.go │ │ │ ├── tar_test.go │ │ │ ├── writer.go │ │ │ └── writer_test.go │ │ ├── backup.go │ │ ├── backup_test.go │ │ ├── backuptar │ │ ├── tar.go │ │ └── tar_test.go │ │ ├── file.go │ │ ├── fileinfo.go │ │ ├── pipe.go │ │ ├── pipe_test.go │ │ ├── privilege.go │ │ ├── privileges_test.go │ │ ├── reparse.go │ │ ├── sd.go │ │ ├── sd_test.go │ │ ├── syscall.go │ │ └── zsyscall.go ├── Sirupsen │ └── logrus │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── alt_exit.go │ │ ├── alt_exit_test.go │ │ ├── doc.go │ │ ├── entry.go │ │ ├── entry_test.go │ │ ├── examples │ │ ├── basic │ │ │ └── basic.go │ │ └── hook │ │ │ └── hook.go │ │ ├── exported.go │ │ ├── formatter.go │ │ ├── formatter_bench_test.go │ │ ├── hook_test.go │ │ ├── hooks.go │ │ ├── hooks │ │ ├── syslog │ │ │ ├── README.md │ │ │ ├── syslog.go │ │ │ └── syslog_test.go │ │ └── test │ │ │ ├── test.go │ │ │ └── test_test.go │ │ ├── json_formatter.go │ │ ├── json_formatter_test.go │ │ ├── logger.go │ │ ├── logger_bench_test.go │ │ ├── logrus.go │ │ ├── logrus_test.go │ │ ├── terminal_appengine.go │ │ ├── terminal_bsd.go │ │ ├── terminal_linux.go │ │ ├── terminal_notwindows.go │ │ ├── terminal_solaris.go │ │ ├── terminal_windows.go │ │ ├── text_formatter.go │ │ ├── text_formatter_test.go │ │ └── writer.go ├── caarlos0 │ └── env │ │ ├── .gitignore │ │ ├── .hound.yml │ │ ├── .travis.yml │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── env.go │ │ ├── env_test.go │ │ └── examples │ │ └── first.go ├── coreos │ └── go-systemd │ │ ├── .travis.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── activation │ │ ├── files.go │ │ ├── files_test.go │ │ ├── listeners.go │ │ ├── listeners_test.go │ │ ├── packetconns.go │ │ └── packetconns_test.go │ │ ├── daemon │ │ └── sdnotify.go │ │ ├── dbus │ │ ├── dbus.go │ │ ├── dbus_test.go │ │ ├── methods.go │ │ ├── methods_test.go │ │ ├── properties.go │ │ ├── set.go │ │ ├── set_test.go │ │ ├── subscription.go │ │ ├── subscription_set.go │ │ ├── subscription_set_test.go │ │ └── subscription_test.go │ │ ├── examples │ │ └── activation │ │ │ ├── activation.go │ │ │ ├── httpserver │ │ │ ├── README.md │ │ │ ├── hello.service │ │ │ ├── hello.socket │ │ │ └── httpserver.go │ │ │ ├── listen.go │ │ │ └── udpconn.go │ │ ├── fixtures │ │ ├── enable-disable.service │ │ ├── start-stop.service │ │ ├── subscribe-events-set.service │ │ └── subscribe-events.service │ │ ├── journal │ │ └── journal.go │ │ ├── login1 │ │ ├── dbus.go │ │ └── dbus_test.go │ │ ├── machine1 │ │ ├── dbus.go │ │ └── dbus_test.go │ │ ├── sdjournal │ │ ├── journal.go │ │ ├── journal_test.go │ │ └── read.go │ │ ├── test │ │ ├── unit │ │ ├── deserialize.go │ │ ├── deserialize_test.go │ │ ├── end_to_end_test.go │ │ ├── escape.go │ │ ├── escape_test.go │ │ ├── option.go │ │ ├── option_test.go │ │ ├── serialize.go │ │ └── serialize_test.go │ │ └── util │ │ └── util.go ├── docker │ ├── distribution │ │ ├── .gitignore │ │ ├── .mailmap │ │ ├── AUTHORS │ │ ├── BUILDING.md │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── Dockerfile │ │ ├── LICENSE │ │ ├── MAINTAINERS │ │ ├── Makefile │ │ ├── README.md │ │ ├── RELEASE-CHECKLIST.md │ │ ├── ROADMAP.md │ │ ├── blobs.go │ │ ├── circle.yml │ │ ├── cmd │ │ │ ├── digest │ │ │ │ └── main.go │ │ │ ├── registry-api-descriptor-template │ │ │ │ └── main.go │ │ │ └── registry │ │ │ │ ├── config-cache.yml │ │ │ │ ├── config-dev.yml │ │ │ │ ├── config-example.yml │ │ │ │ └── main.go │ │ ├── configuration │ │ │ ├── configuration.go │ │ │ ├── configuration_test.go │ │ │ └── parser.go │ │ ├── context │ │ │ ├── context.go │ │ │ ├── doc.go │ │ │ ├── http.go │ │ │ ├── http_test.go │ │ │ ├── logger.go │ │ │ ├── trace.go │ │ │ ├── trace_test.go │ │ │ ├── util.go │ │ │ ├── version.go │ │ │ └── version_test.go │ │ ├── contrib │ │ │ ├── apache │ │ │ │ ├── README.MD │ │ │ │ └── apache.conf │ │ │ ├── compose │ │ │ │ ├── README.md │ │ │ │ ├── docker-compose.yml │ │ │ │ └── nginx │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── docker-registry-v2.conf │ │ │ │ │ ├── docker-registry.conf │ │ │ │ │ ├── nginx.conf │ │ │ │ │ └── registry.conf │ │ │ ├── docker-integration │ │ │ │ ├── Dockerfile │ │ │ │ ├── README.md │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── golem.conf │ │ │ │ ├── helpers.bash │ │ │ │ ├── install_certs.sh │ │ │ │ ├── malevolent-certs │ │ │ │ │ ├── localregistry.cert │ │ │ │ │ └── localregistry.key │ │ │ │ ├── malevolent.bats │ │ │ │ ├── nginx │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── docker-registry-v2.conf │ │ │ │ │ ├── nginx.conf │ │ │ │ │ ├── registry-basic.conf │ │ │ │ │ ├── registry-noauth.conf │ │ │ │ │ ├── registry.conf │ │ │ │ │ ├── test.passwd │ │ │ │ │ └── v1 │ │ │ │ │ │ └── search.json │ │ │ │ ├── plugins.bats │ │ │ │ ├── run_multiversion.sh │ │ │ │ ├── tls.bats │ │ │ │ ├── token.bats │ │ │ │ ├── tokenserver-oauth │ │ │ │ │ ├── .htpasswd │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── certs │ │ │ │ │ │ ├── auth.localregistry.cert │ │ │ │ │ │ ├── auth.localregistry.key │ │ │ │ │ │ ├── localregistry.cert │ │ │ │ │ │ ├── localregistry.key │ │ │ │ │ │ ├── signing.cert │ │ │ │ │ │ └── signing.key │ │ │ │ │ ├── registry-config-notls.yml │ │ │ │ │ └── registry-config.yml │ │ │ │ └── tokenserver │ │ │ │ │ ├── .htpasswd │ │ │ │ │ ├── Dockerfile │ │ │ │ │ ├── certs │ │ │ │ │ ├── auth.localregistry.cert │ │ │ │ │ ├── auth.localregistry.key │ │ │ │ │ ├── localregistry.cert │ │ │ │ │ ├── localregistry.key │ │ │ │ │ ├── signing.cert │ │ │ │ │ └── signing.key │ │ │ │ │ └── registry-config.yml │ │ │ └── token-server │ │ │ │ ├── errors.go │ │ │ │ ├── main.go │ │ │ │ └── token.go │ │ ├── coverpkg.sh │ │ ├── digestset │ │ │ ├── set.go │ │ │ └── set_test.go │ │ ├── doc.go │ │ ├── docs │ │ │ ├── README.md │ │ │ ├── architecture.md │ │ │ ├── configuration.md │ │ │ └── spec │ │ │ │ ├── api.md │ │ │ │ ├── api.md.tmpl │ │ │ │ ├── auth │ │ │ │ ├── index.md │ │ │ │ ├── jwt.md │ │ │ │ ├── oauth.md │ │ │ │ ├── scope.md │ │ │ │ └── token.md │ │ │ │ ├── images │ │ │ │ └── v2-registry-auth.png │ │ │ │ ├── implementations.md │ │ │ │ ├── index.md │ │ │ │ ├── json.md │ │ │ │ ├── manifest-v2-1.md │ │ │ │ ├── manifest-v2-2.md │ │ │ │ └── menu.md │ │ ├── errors.go │ │ ├── health │ │ │ ├── api │ │ │ │ ├── api.go │ │ │ │ └── api_test.go │ │ │ ├── checks │ │ │ │ ├── checks.go │ │ │ │ └── checks_test.go │ │ │ ├── doc.go │ │ │ ├── health.go │ │ │ └── health_test.go │ │ ├── manifest │ │ │ ├── doc.go │ │ │ ├── manifestlist │ │ │ │ ├── manifestlist.go │ │ │ │ └── manifestlist_test.go │ │ │ ├── schema1 │ │ │ │ ├── config_builder.go │ │ │ │ ├── config_builder_test.go │ │ │ │ ├── manifest.go │ │ │ │ ├── manifest_test.go │ │ │ │ ├── reference_builder.go │ │ │ │ ├── reference_builder_test.go │ │ │ │ ├── sign.go │ │ │ │ └── verify.go │ │ │ ├── schema2 │ │ │ │ ├── builder.go │ │ │ │ ├── builder_test.go │ │ │ │ ├── manifest.go │ │ │ │ └── manifest_test.go │ │ │ └── versioned.go │ │ ├── manifests.go │ │ ├── notifications │ │ │ ├── bridge.go │ │ │ ├── bridge_test.go │ │ │ ├── endpoint.go │ │ │ ├── event.go │ │ │ ├── event_test.go │ │ │ ├── http.go │ │ │ ├── http_test.go │ │ │ ├── listener.go │ │ │ ├── listener_test.go │ │ │ ├── metrics.go │ │ │ ├── metrics_test.go │ │ │ ├── sinks.go │ │ │ └── sinks_test.go │ │ ├── project │ │ │ ├── dev-image │ │ │ │ └── Dockerfile │ │ │ └── hooks │ │ │ │ ├── README.md │ │ │ │ ├── configure-hooks.sh │ │ │ │ └── pre-commit │ │ ├── reference │ │ │ ├── helpers.go │ │ │ ├── normalize.go │ │ │ ├── normalize_test.go │ │ │ ├── reference.go │ │ │ ├── reference_test.go │ │ │ ├── regexp.go │ │ │ └── regexp_test.go │ │ ├── registry.go │ │ ├── registry │ │ │ ├── api │ │ │ │ ├── errcode │ │ │ │ │ ├── errors.go │ │ │ │ │ ├── errors_test.go │ │ │ │ │ ├── handler.go │ │ │ │ │ └── register.go │ │ │ │ └── v2 │ │ │ │ │ ├── descriptors.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── errors.go │ │ │ │ │ ├── headerparser.go │ │ │ │ │ ├── headerparser_test.go │ │ │ │ │ ├── routes.go │ │ │ │ │ ├── routes_test.go │ │ │ │ │ ├── urls.go │ │ │ │ │ └── urls_test.go │ │ │ ├── auth │ │ │ │ ├── auth.go │ │ │ │ ├── htpasswd │ │ │ │ │ ├── access.go │ │ │ │ │ ├── access_test.go │ │ │ │ │ ├── htpasswd.go │ │ │ │ │ └── htpasswd_test.go │ │ │ │ ├── silly │ │ │ │ │ ├── access.go │ │ │ │ │ └── access_test.go │ │ │ │ └── token │ │ │ │ │ ├── accesscontroller.go │ │ │ │ │ ├── stringset.go │ │ │ │ │ ├── token.go │ │ │ │ │ ├── token_test.go │ │ │ │ │ └── util.go │ │ │ ├── client │ │ │ │ ├── auth │ │ │ │ │ ├── api_version.go │ │ │ │ │ ├── challenge │ │ │ │ │ │ ├── addr.go │ │ │ │ │ │ ├── authchallenge.go │ │ │ │ │ │ └── authchallenge_test.go │ │ │ │ │ ├── session.go │ │ │ │ │ └── session_test.go │ │ │ │ ├── blob_writer.go │ │ │ │ ├── blob_writer_test.go │ │ │ │ ├── errors.go │ │ │ │ ├── errors_test.go │ │ │ │ ├── repository.go │ │ │ │ ├── repository_test.go │ │ │ │ └── transport │ │ │ │ │ ├── http_reader.go │ │ │ │ │ └── transport.go │ │ │ ├── doc.go │ │ │ ├── handlers │ │ │ │ ├── api_test.go │ │ │ │ ├── app.go │ │ │ │ ├── app_test.go │ │ │ │ ├── basicauth.go │ │ │ │ ├── basicauth_prego14.go │ │ │ │ ├── blob.go │ │ │ │ ├── blobupload.go │ │ │ │ ├── catalog.go │ │ │ │ ├── context.go │ │ │ │ ├── health_test.go │ │ │ │ ├── helpers.go │ │ │ │ ├── hmac.go │ │ │ │ ├── hmac_test.go │ │ │ │ ├── hooks.go │ │ │ │ ├── mail.go │ │ │ │ ├── manifests.go │ │ │ │ └── tags.go │ │ │ ├── listener │ │ │ │ └── listener.go │ │ │ ├── middleware │ │ │ │ ├── registry │ │ │ │ │ └── middleware.go │ │ │ │ └── repository │ │ │ │ │ └── middleware.go │ │ │ ├── proxy │ │ │ │ ├── proxyauth.go │ │ │ │ ├── proxyblobstore.go │ │ │ │ ├── proxyblobstore_test.go │ │ │ │ ├── proxymanifeststore.go │ │ │ │ ├── proxymanifeststore_test.go │ │ │ │ ├── proxymetrics.go │ │ │ │ ├── proxyregistry.go │ │ │ │ ├── proxytagservice.go │ │ │ │ ├── proxytagservice_test.go │ │ │ │ └── scheduler │ │ │ │ │ ├── scheduler.go │ │ │ │ │ └── scheduler_test.go │ │ │ ├── registry.go │ │ │ ├── registry_test.go │ │ │ ├── root.go │ │ │ └── storage │ │ │ │ ├── blob_test.go │ │ │ │ ├── blobcachemetrics.go │ │ │ │ ├── blobserver.go │ │ │ │ ├── blobstore.go │ │ │ │ ├── blobwriter.go │ │ │ │ ├── blobwriter_nonresumable.go │ │ │ │ ├── blobwriter_resumable.go │ │ │ │ ├── cache │ │ │ │ ├── cache.go │ │ │ │ ├── cachecheck │ │ │ │ │ └── suite.go │ │ │ │ ├── cachedblobdescriptorstore.go │ │ │ │ ├── memory │ │ │ │ │ ├── memory.go │ │ │ │ │ └── memory_test.go │ │ │ │ └── redis │ │ │ │ │ ├── redis.go │ │ │ │ │ └── redis_test.go │ │ │ │ ├── catalog.go │ │ │ │ ├── catalog_test.go │ │ │ │ ├── digester_resumable_test.go │ │ │ │ ├── doc.go │ │ │ │ ├── driver │ │ │ │ ├── azure │ │ │ │ │ ├── azure.go │ │ │ │ │ └── azure_test.go │ │ │ │ ├── base │ │ │ │ │ ├── base.go │ │ │ │ │ ├── regulator.go │ │ │ │ │ └── regulator_test.go │ │ │ │ ├── factory │ │ │ │ │ └── factory.go │ │ │ │ ├── fileinfo.go │ │ │ │ ├── filesystem │ │ │ │ │ ├── driver.go │ │ │ │ │ └── driver_test.go │ │ │ │ ├── gcs │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── gcs.go │ │ │ │ │ └── gcs_test.go │ │ │ │ ├── inmemory │ │ │ │ │ ├── driver.go │ │ │ │ │ ├── driver_test.go │ │ │ │ │ └── mfs.go │ │ │ │ ├── middleware │ │ │ │ │ ├── cloudfront │ │ │ │ │ │ └── middleware.go │ │ │ │ │ ├── redirect │ │ │ │ │ │ ├── middleware.go │ │ │ │ │ │ └── middleware_test.go │ │ │ │ │ └── storagemiddleware.go │ │ │ │ ├── oss │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── oss.go │ │ │ │ │ └── oss_test.go │ │ │ │ ├── s3-aws │ │ │ │ │ ├── s3.go │ │ │ │ │ ├── s3_test.go │ │ │ │ │ └── s3_v2_signer.go │ │ │ │ ├── s3-goamz │ │ │ │ │ ├── s3.go │ │ │ │ │ └── s3_test.go │ │ │ │ ├── storagedriver.go │ │ │ │ ├── swift │ │ │ │ │ ├── swift.go │ │ │ │ │ └── swift_test.go │ │ │ │ ├── testdriver │ │ │ │ │ └── testdriver.go │ │ │ │ └── testsuites │ │ │ │ │ └── testsuites.go │ │ │ │ ├── filereader.go │ │ │ │ ├── filereader_test.go │ │ │ │ ├── garbagecollect.go │ │ │ │ ├── garbagecollect_test.go │ │ │ │ ├── io.go │ │ │ │ ├── linkedblobstore.go │ │ │ │ ├── linkedblobstore_test.go │ │ │ │ ├── manifestlisthandler.go │ │ │ │ ├── manifeststore.go │ │ │ │ ├── manifeststore_test.go │ │ │ │ ├── paths.go │ │ │ │ ├── paths_test.go │ │ │ │ ├── purgeuploads.go │ │ │ │ ├── purgeuploads_test.go │ │ │ │ ├── registry.go │ │ │ │ ├── schema2manifesthandler.go │ │ │ │ ├── schema2manifesthandler_test.go │ │ │ │ ├── signedmanifesthandler.go │ │ │ │ ├── tagstore.go │ │ │ │ ├── tagstore_test.go │ │ │ │ ├── util.go │ │ │ │ ├── vacuum.go │ │ │ │ ├── walk.go │ │ │ │ └── walk_test.go │ │ ├── tags.go │ │ ├── testutil │ │ │ ├── handler.go │ │ │ ├── manifests.go │ │ │ └── tarfile.go │ │ ├── uuid │ │ │ ├── uuid.go │ │ │ └── uuid_test.go │ │ ├── vendor.conf │ │ └── version │ │ │ ├── print.go │ │ │ ├── version.go │ │ │ └── version.sh │ ├── engine-api │ │ ├── .travis.yml │ │ ├── CHANGELOG.md │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── MAINTAINERS │ │ ├── Makefile │ │ ├── README.md │ │ ├── appveyor.yml │ │ ├── client │ │ │ ├── checkpoint_create.go │ │ │ ├── checkpoint_create_test.go │ │ │ ├── checkpoint_delete.go │ │ │ ├── checkpoint_delete_test.go │ │ │ ├── checkpoint_list.go │ │ │ ├── checkpoint_list_test.go │ │ │ ├── client.go │ │ │ ├── client_darwin.go │ │ │ ├── client_mock_test.go │ │ │ ├── client_test.go │ │ │ ├── client_unix.go │ │ │ ├── client_windows.go │ │ │ ├── container_attach.go │ │ │ ├── container_commit.go │ │ │ ├── container_commit_test.go │ │ │ ├── container_copy.go │ │ │ ├── container_copy_test.go │ │ │ ├── container_create.go │ │ │ ├── container_create_test.go │ │ │ ├── container_diff.go │ │ │ ├── container_diff_test.go │ │ │ ├── container_exec.go │ │ │ ├── container_exec_test.go │ │ │ ├── container_export.go │ │ │ ├── container_export_test.go │ │ │ ├── container_inspect.go │ │ │ ├── container_inspect_test.go │ │ │ ├── container_kill.go │ │ │ ├── container_kill_test.go │ │ │ ├── container_list.go │ │ │ ├── container_list_test.go │ │ │ ├── container_logs.go │ │ │ ├── container_logs_test.go │ │ │ ├── container_pause.go │ │ │ ├── container_pause_test.go │ │ │ ├── container_remove.go │ │ │ ├── container_remove_test.go │ │ │ ├── container_rename.go │ │ │ ├── container_rename_test.go │ │ │ ├── container_resize.go │ │ │ ├── container_resize_test.go │ │ │ ├── container_restart.go │ │ │ ├── container_restart_test.go │ │ │ ├── container_start.go │ │ │ ├── container_start_test.go │ │ │ ├── container_stats.go │ │ │ ├── container_stats_test.go │ │ │ ├── container_stop.go │ │ │ ├── container_stop_test.go │ │ │ ├── container_top.go │ │ │ ├── container_top_test.go │ │ │ ├── container_unpause.go │ │ │ ├── container_unpause_test.go │ │ │ ├── container_update.go │ │ │ ├── container_update_test.go │ │ │ ├── container_wait.go │ │ │ ├── container_wait_test.go │ │ │ ├── errors.go │ │ │ ├── events.go │ │ │ ├── events_test.go │ │ │ ├── hijack.go │ │ │ ├── image_build.go │ │ │ ├── image_build_test.go │ │ │ ├── image_create.go │ │ │ ├── image_create_test.go │ │ │ ├── image_history.go │ │ │ ├── image_history_test.go │ │ │ ├── image_import.go │ │ │ ├── image_import_test.go │ │ │ ├── image_inspect.go │ │ │ ├── image_inspect_test.go │ │ │ ├── image_list.go │ │ │ ├── image_list_test.go │ │ │ ├── image_load.go │ │ │ ├── image_load_test.go │ │ │ ├── image_pull.go │ │ │ ├── image_pull_test.go │ │ │ ├── image_push.go │ │ │ ├── image_push_test.go │ │ │ ├── image_remove.go │ │ │ ├── image_remove_test.go │ │ │ ├── image_save.go │ │ │ ├── image_save_test.go │ │ │ ├── image_search.go │ │ │ ├── image_search_test.go │ │ │ ├── image_tag.go │ │ │ ├── image_tag_test.go │ │ │ ├── info.go │ │ │ ├── info_test.go │ │ │ ├── interface.go │ │ │ ├── interface_experimental.go │ │ │ ├── interface_stable.go │ │ │ ├── login.go │ │ │ ├── network_connect.go │ │ │ ├── network_connect_test.go │ │ │ ├── network_create.go │ │ │ ├── network_create_test.go │ │ │ ├── network_disconnect.go │ │ │ ├── network_disconnect_test.go │ │ │ ├── network_inspect.go │ │ │ ├── network_inspect_test.go │ │ │ ├── network_list.go │ │ │ ├── network_list_test.go │ │ │ ├── network_remove.go │ │ │ ├── network_remove_test.go │ │ │ ├── node_inspect.go │ │ │ ├── node_inspect_test.go │ │ │ ├── node_list.go │ │ │ ├── node_list_test.go │ │ │ ├── node_remove.go │ │ │ ├── node_remove_test.go │ │ │ ├── node_update.go │ │ │ ├── node_update_test.go │ │ │ ├── plugin_disable.go │ │ │ ├── plugin_disable_test.go │ │ │ ├── plugin_enable.go │ │ │ ├── plugin_enable_test.go │ │ │ ├── plugin_inspect.go │ │ │ ├── plugin_inspect_test.go │ │ │ ├── plugin_install.go │ │ │ ├── plugin_list.go │ │ │ ├── plugin_list_test.go │ │ │ ├── plugin_push.go │ │ │ ├── plugin_push_test.go │ │ │ ├── plugin_remove.go │ │ │ ├── plugin_remove_test.go │ │ │ ├── plugin_set.go │ │ │ ├── plugin_set_test.go │ │ │ ├── request.go │ │ │ ├── request_test.go │ │ │ ├── service_create.go │ │ │ ├── service_create_test.go │ │ │ ├── service_inspect.go │ │ │ ├── service_inspect_test.go │ │ │ ├── service_list.go │ │ │ ├── service_list_test.go │ │ │ ├── service_remove.go │ │ │ ├── service_remove_test.go │ │ │ ├── service_update.go │ │ │ ├── service_update_test.go │ │ │ ├── swarm_init.go │ │ │ ├── swarm_init_test.go │ │ │ ├── swarm_inspect.go │ │ │ ├── swarm_inspect_test.go │ │ │ ├── swarm_join.go │ │ │ ├── swarm_join_test.go │ │ │ ├── swarm_leave.go │ │ │ ├── swarm_leave_test.go │ │ │ ├── swarm_update.go │ │ │ ├── swarm_update_test.go │ │ │ ├── task_inspect.go │ │ │ ├── task_inspect_test.go │ │ │ ├── task_list.go │ │ │ ├── task_list_test.go │ │ │ ├── testdata │ │ │ │ ├── ca.pem │ │ │ │ ├── cert.pem │ │ │ │ └── key.pem │ │ │ ├── transport │ │ │ │ ├── cancellable │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── canceler.go │ │ │ │ │ ├── canceler_go14.go │ │ │ │ │ └── cancellable.go │ │ │ │ ├── client.go │ │ │ │ └── transport.go │ │ │ ├── version.go │ │ │ ├── volume_create.go │ │ │ ├── volume_create_test.go │ │ │ ├── volume_inspect.go │ │ │ ├── volume_inspect_test.go │ │ │ ├── volume_list.go │ │ │ ├── volume_list_test.go │ │ │ ├── volume_remove.go │ │ │ └── volume_remove_test.go │ │ ├── doc.go │ │ └── types │ │ │ ├── auth.go │ │ │ ├── blkiodev │ │ │ └── blkio.go │ │ │ ├── client.go │ │ │ ├── configs.go │ │ │ ├── container │ │ │ ├── config.go │ │ │ ├── host_config.go │ │ │ ├── hostconfig_unix.go │ │ │ └── hostconfig_windows.go │ │ │ ├── errors.go │ │ │ ├── events │ │ │ └── events.go │ │ │ ├── filters │ │ │ ├── parse.go │ │ │ └── parse_test.go │ │ │ ├── network │ │ │ └── network.go │ │ │ ├── plugin.go │ │ │ ├── reference │ │ │ ├── image_reference.go │ │ │ └── image_reference_test.go │ │ │ ├── registry │ │ │ └── registry.go │ │ │ ├── seccomp.go │ │ │ ├── stats.go │ │ │ ├── strslice │ │ │ ├── strslice.go │ │ │ └── strslice_test.go │ │ │ ├── swarm │ │ │ ├── common.go │ │ │ ├── container.go │ │ │ ├── network.go │ │ │ ├── node.go │ │ │ ├── service.go │ │ │ ├── swarm.go │ │ │ └── task.go │ │ │ ├── time │ │ │ ├── duration_convert.go │ │ │ ├── duration_convert_test.go │ │ │ ├── timestamp.go │ │ │ └── timestamp_test.go │ │ │ ├── types.go │ │ │ └── versions │ │ │ ├── README.md │ │ │ ├── compare.go │ │ │ ├── compare_test.go │ │ │ ├── v1p19 │ │ │ └── types.go │ │ │ └── v1p20 │ │ │ └── types.go │ ├── go-connections │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── MAINTAINERS │ │ ├── README.md │ │ ├── circle.yml │ │ ├── doc.go │ │ ├── nat │ │ │ ├── nat.go │ │ │ ├── nat_test.go │ │ │ ├── parse.go │ │ │ ├── parse_test.go │ │ │ ├── sort.go │ │ │ └── sort_test.go │ │ ├── proxy │ │ │ ├── logger.go │ │ │ ├── network_proxy_test.go │ │ │ ├── proxy.go │ │ │ ├── stub_proxy.go │ │ │ ├── tcp_proxy.go │ │ │ └── udp_proxy.go │ │ ├── sockets │ │ │ ├── README.md │ │ │ ├── inmem_socket.go │ │ │ ├── inmem_socket_test.go │ │ │ ├── proxy.go │ │ │ ├── sockets.go │ │ │ ├── sockets_unix.go │ │ │ ├── sockets_windows.go │ │ │ ├── tcp_socket.go │ │ │ └── unix_socket.go │ │ └── tlsconfig │ │ │ ├── certpool_go17.go │ │ │ ├── certpool_other.go │ │ │ ├── config.go │ │ │ ├── config_client_ciphers.go │ │ │ ├── config_legacy_client_ciphers.go │ │ │ ├── config_test.go │ │ │ └── fixtures │ │ │ ├── cert.pem │ │ │ ├── cert_of_encrypted_key.pem │ │ │ ├── encrypted_key.pem │ │ │ ├── key.pem │ │ │ └── multi.pem │ ├── go-plugins-helpers │ │ ├── .gitignore │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE │ │ ├── MAINTAINERS │ │ ├── Makefile │ │ ├── NOTICE │ │ ├── README.md │ │ ├── authorization │ │ │ ├── README.md │ │ │ ├── api.go │ │ │ └── api_test.go │ │ ├── graphdriver │ │ │ ├── README.md │ │ │ ├── api.go │ │ │ ├── api_test.go │ │ │ └── shim │ │ │ │ ├── shim.go │ │ │ │ └── shim_test.go │ │ ├── ipam │ │ │ ├── README.md │ │ │ └── api.go │ │ ├── network │ │ │ ├── README.md │ │ │ ├── api.go │ │ │ └── api_test.go │ │ ├── sdk │ │ │ ├── encoder.go │ │ │ ├── handler.go │ │ │ ├── pool.go │ │ │ ├── sdk_test.go │ │ │ ├── tcp_listener.go │ │ │ ├── unix_listener.go │ │ │ ├── unix_listener_nosystemd.go │ │ │ ├── unix_listener_systemd.go │ │ │ └── unix_listener_unsupported.go │ │ └── volume │ │ │ ├── README.md │ │ │ ├── api.go │ │ │ ├── api_test.go │ │ │ └── shim │ │ │ ├── shim.go │ │ │ └── shim_test.go │ ├── go-units │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE.code │ │ ├── LICENSE.docs │ │ ├── MAINTAINERS │ │ ├── README.md │ │ ├── circle.yml │ │ ├── duration.go │ │ ├── duration_test.go │ │ ├── size.go │ │ ├── size_test.go │ │ ├── ulimit.go │ │ └── ulimit_test.go │ └── libnetwork │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── CHANGELOG.md │ │ ├── Dockerfile.build │ │ ├── Godeps │ │ ├── Godeps.json │ │ └── Readme │ │ ├── LICENSE │ │ ├── MAINTAINERS │ │ ├── Makefile │ │ ├── README.md │ │ ├── ROADMAP.md │ │ ├── Vagrantfile │ │ ├── agent.go │ │ ├── api │ │ ├── api.go │ │ ├── api_test.go │ │ └── types.go │ │ ├── bitseq │ │ ├── sequence.go │ │ ├── sequence_test.go │ │ └── store.go │ │ ├── circle.yml │ │ ├── client │ │ ├── client.go │ │ ├── client_service_test.go │ │ ├── client_test.go │ │ ├── network.go │ │ ├── service.go │ │ └── types.go │ │ ├── cmd │ │ ├── dnet │ │ │ ├── cmd.go │ │ │ ├── dnet.go │ │ │ ├── dnet_linux.go │ │ │ ├── dnet_windows.go │ │ │ ├── flags.go │ │ │ └── libnetwork.toml │ │ ├── ovrouter │ │ │ └── ovrouter.go │ │ └── readme_test │ │ │ └── readme.go │ │ ├── config │ │ ├── config.go │ │ ├── config_test.go │ │ └── libnetwork.toml │ │ ├── controller.go │ │ ├── datastore │ │ ├── cache.go │ │ ├── datastore.go │ │ ├── datastore_test.go │ │ └── mock_store.go │ │ ├── default_gateway.go │ │ ├── default_gateway_freebsd.go │ │ ├── default_gateway_linux.go │ │ ├── default_gateway_solaris.go │ │ ├── default_gateway_windows.go │ │ ├── discoverapi │ │ └── discoverapi.go │ │ ├── docs │ │ ├── bridge.md │ │ ├── cnm-model.jpg │ │ ├── design.md │ │ ├── ipam.md │ │ ├── legacy.md │ │ ├── overlay.md │ │ ├── remote.md │ │ ├── vagrant-systemd │ │ │ └── docker.service │ │ └── vagrant.md │ │ ├── driverapi │ │ ├── driverapi.go │ │ ├── driverapi_test.go │ │ ├── errors.go │ │ └── ipamdata.go │ │ ├── drivers │ │ ├── bridge │ │ │ ├── bridge.go │ │ │ ├── bridge_store.go │ │ │ ├── bridge_test.go │ │ │ ├── errors.go │ │ │ ├── interface.go │ │ │ ├── interface_test.go │ │ │ ├── labels.go │ │ │ ├── link.go │ │ │ ├── link_test.go │ │ │ ├── netlink_deprecated_linux.go │ │ │ ├── netlink_deprecated_linux_armppc64.go │ │ │ ├── netlink_deprecated_linux_notarm.go │ │ │ ├── netlink_deprecated_unsupported.go │ │ │ ├── network_test.go │ │ │ ├── port_mapping.go │ │ │ ├── port_mapping_test.go │ │ │ ├── resolvconf.go │ │ │ ├── resolvconf_test.go │ │ │ ├── setup.go │ │ │ ├── setup_bridgenetfiltering.go │ │ │ ├── setup_bridgenetfiltering_test.go │ │ │ ├── setup_device.go │ │ │ ├── setup_device_test.go │ │ │ ├── setup_firewalld.go │ │ │ ├── setup_ip_forwarding.go │ │ │ ├── setup_ip_forwarding_test.go │ │ │ ├── setup_ip_tables.go │ │ │ ├── setup_ip_tables_test.go │ │ │ ├── setup_ipv4.go │ │ │ ├── setup_ipv4_test.go │ │ │ ├── setup_ipv6.go │ │ │ ├── setup_ipv6_test.go │ │ │ ├── setup_verify.go │ │ │ └── setup_verify_test.go │ │ ├── host │ │ │ ├── host.go │ │ │ └── host_test.go │ │ ├── ipvlan │ │ │ ├── ipvlan.go │ │ │ ├── ipvlan_endpoint.go │ │ │ ├── ipvlan_joinleave.go │ │ │ ├── ipvlan_network.go │ │ │ ├── ipvlan_setup.go │ │ │ ├── ipvlan_setup_test.go │ │ │ ├── ipvlan_state.go │ │ │ ├── ipvlan_store.go │ │ │ └── ipvlan_test.go │ │ ├── macvlan │ │ │ ├── macvlan.go │ │ │ ├── macvlan_endpoint.go │ │ │ ├── macvlan_joinleave.go │ │ │ ├── macvlan_network.go │ │ │ ├── macvlan_setup.go │ │ │ ├── macvlan_setup_test.go │ │ │ ├── macvlan_state.go │ │ │ ├── macvlan_store.go │ │ │ └── macvlan_test.go │ │ ├── null │ │ │ ├── null.go │ │ │ └── null_test.go │ │ ├── overlay │ │ │ ├── filter.go │ │ │ ├── joinleave.go │ │ │ ├── ov_endpoint.go │ │ │ ├── ov_network.go │ │ │ ├── ov_serf.go │ │ │ ├── ov_utils.go │ │ │ ├── overlay.go │ │ │ ├── overlay_test.go │ │ │ ├── ovmanager │ │ │ │ ├── ovmanager.go │ │ │ │ └── ovmanager_test.go │ │ │ └── peerdb.go │ │ ├── remote │ │ │ ├── api │ │ │ │ └── api.go │ │ │ ├── driver.go │ │ │ └── driver_test.go │ │ └── windows │ │ │ ├── labels.go │ │ │ ├── windows.go │ │ │ └── windows_test.go │ │ ├── drivers_experimental_linux.go │ │ ├── drivers_freebsd.go │ │ ├── drivers_linux.go │ │ ├── drivers_solaris.go │ │ ├── drivers_stub_linux.go │ │ ├── drivers_windows.go │ │ ├── drvregistry │ │ ├── drvregistry.go │ │ └── drvregistry_test.go │ │ ├── endpoint.go │ │ ├── endpoint_cnt.go │ │ ├── endpoint_info.go │ │ ├── error.go │ │ ├── errors_test.go │ │ ├── etchosts │ │ ├── etchosts.go │ │ └── etchosts_test.go │ │ ├── hostdiscovery │ │ ├── hostdiscovery.go │ │ ├── hostdiscovery_api.go │ │ ├── hostdiscovery_test.go │ │ └── libnetwork.toml │ │ ├── idm │ │ ├── idm.go │ │ └── idm_test.go │ │ ├── ipam │ │ ├── allocator.go │ │ ├── allocator_test.go │ │ ├── store.go │ │ ├── structures.go │ │ └── utils.go │ │ ├── ipamapi │ │ └── contract.go │ │ ├── ipams │ │ ├── builtin │ │ │ ├── builtin_unix.go │ │ │ └── builtin_windows.go │ │ ├── null │ │ │ ├── null.go │ │ │ └── null_test.go │ │ ├── remote │ │ │ ├── api │ │ │ │ └── api.go │ │ │ ├── remote.go │ │ │ └── remote_test.go │ │ └── windowsipam │ │ │ ├── windowsipam.go │ │ │ └── windowsipam_test.go │ │ ├── ipamutils │ │ ├── utils.go │ │ └── utils_test.go │ │ ├── iptables │ │ ├── firewalld.go │ │ ├── firewalld_test.go │ │ ├── iptables.go │ │ └── iptables_test.go │ │ ├── libnetwork_internal_test.go │ │ ├── libnetwork_test.go │ │ ├── machines │ │ ├── netlabel │ │ ├── labels.go │ │ └── labels_test.go │ │ ├── netutils │ │ ├── utils.go │ │ ├── utils_freebsd.go │ │ ├── utils_linux.go │ │ ├── utils_solaris.go │ │ ├── utils_test.go │ │ └── utils_windows.go │ │ ├── network.go │ │ ├── networkdb │ │ ├── broadcast.go │ │ ├── cluster.go │ │ ├── delegate.go │ │ ├── event_delegate.go │ │ ├── message.go │ │ ├── networkdb.go │ │ ├── networkdb_test.go │ │ └── watch.go │ │ ├── ns │ │ └── init_linux.go │ │ ├── options │ │ ├── options.go │ │ └── options_test.go │ │ ├── osl │ │ ├── interface_freebsd.go │ │ ├── interface_linux.go │ │ ├── interface_solaris.go │ │ ├── interface_windows.go │ │ ├── namespace_linux.go │ │ ├── namespace_unsupported.go │ │ ├── namespace_windows.go │ │ ├── neigh_freebsd.go │ │ ├── neigh_linux.go │ │ ├── neigh_solaris.go │ │ ├── neigh_windows.go │ │ ├── options_linux.go │ │ ├── route_linux.go │ │ ├── sandbox.go │ │ ├── sandbox_freebsd.go │ │ ├── sandbox_linux_test.go │ │ ├── sandbox_test.go │ │ ├── sandbox_unsupported.go │ │ └── sandbox_unsupported_test.go │ │ ├── portallocator │ │ ├── portallocator.go │ │ └── portallocator_test.go │ │ ├── portmapper │ │ ├── mapper.go │ │ ├── mapper_test.go │ │ ├── mock_proxy.go │ │ └── proxy.go │ │ ├── resolvconf │ │ ├── README.md │ │ ├── dns │ │ │ └── resolvconf.go │ │ ├── resolvconf.go │ │ └── resolvconf_test.go │ │ ├── resolver.go │ │ ├── resolver_unix.go │ │ ├── resolver_windows.go │ │ ├── sandbox.go │ │ ├── sandbox_dns_unix.go │ │ ├── sandbox_dns_windows.go │ │ ├── sandbox_externalkey.go │ │ ├── sandbox_externalkey_solaris.go │ │ ├── sandbox_externalkey_unix.go │ │ ├── sandbox_externalkey_windows.go │ │ ├── sandbox_store.go │ │ ├── sandbox_test.go │ │ ├── store.go │ │ ├── store_test.go │ │ ├── test │ │ └── integration │ │ │ ├── README.md │ │ │ ├── daemon-configs.bats │ │ │ ├── daemon.cfg │ │ │ ├── dnet │ │ │ ├── bridge.bats │ │ │ ├── dnet.bats │ │ │ ├── helpers.bash │ │ │ ├── multi.bats │ │ │ ├── overlay-consul-host.bats │ │ │ ├── overlay-consul.bats │ │ │ ├── overlay-etcd.bats │ │ │ ├── overlay-local.bats │ │ │ ├── overlay-zookeeper.bats │ │ │ ├── run-integration-tests.sh │ │ │ └── simple.bats │ │ │ └── helpers.bash │ │ ├── testutils │ │ ├── context_unix.go │ │ ├── context_windows.go │ │ └── net.go │ │ ├── types │ │ ├── types.go │ │ └── types_test.go │ │ └── wrapmake.sh ├── infobloxopen │ └── infoblox-go-client │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── connector.go │ │ ├── connector_test.go │ │ ├── infoblox_go_client_suite_test.go │ │ ├── lock.go │ │ ├── object_manager.go │ │ ├── object_manager_test.go │ │ ├── objects.go │ │ └── objects_test.go ├── opencontainers │ └── go-digest │ │ ├── .mailmap │ │ ├── .pullapprove.yml │ │ ├── .travis.yml │ │ ├── CONTRIBUTING.md │ │ ├── LICENSE.code │ │ ├── LICENSE.docs │ │ ├── MAINTAINERS │ │ ├── README.md │ │ ├── algorithm.go │ │ ├── algorithm_test.go │ │ ├── digest.go │ │ ├── digest_test.go │ │ ├── digester.go │ │ ├── doc.go │ │ ├── verifiers.go │ │ └── verifiers_test.go └── pkg │ └── errors │ ├── .gitignore │ ├── .travis.yml │ ├── LICENSE │ ├── README.md │ ├── appveyor.yml │ ├── bench_test.go │ ├── errors.go │ ├── errors_test.go │ ├── example_test.go │ ├── format_test.go │ ├── stack.go │ └── stack_test.go └── golang.org └── x ├── net ├── .gitattributes ├── .gitignore ├── AUTHORS ├── CONTRIBUTORS ├── LICENSE ├── PATENTS ├── README ├── context │ ├── context.go │ ├── context_test.go │ └── withtimeout_test.go ├── dict │ └── dict.go ├── html │ ├── atom │ │ ├── atom.go │ │ ├── atom_test.go │ │ ├── gen.go │ │ ├── table.go │ │ └── table_test.go │ ├── charset │ │ ├── charset.go │ │ ├── charset_test.go │ │ ├── gen.go │ │ ├── table.go │ │ └── testdata │ │ │ ├── HTTP-charset.html │ │ │ ├── HTTP-vs-UTF-8-BOM.html │ │ │ ├── HTTP-vs-meta-charset.html │ │ │ ├── HTTP-vs-meta-content.html │ │ │ ├── No-encoding-declaration.html │ │ │ ├── README │ │ │ ├── UTF-16BE-BOM.html │ │ │ ├── UTF-16LE-BOM.html │ │ │ ├── UTF-8-BOM-vs-meta-charset.html │ │ │ ├── UTF-8-BOM-vs-meta-content.html │ │ │ ├── meta-charset-attribute.html │ │ │ └── meta-content-attribute.html │ ├── const.go │ ├── doc.go │ ├── doctype.go │ ├── entity.go │ ├── entity_test.go │ ├── escape.go │ ├── escape_test.go │ ├── example_test.go │ ├── foreign.go │ ├── node.go │ ├── node_test.go │ ├── parse.go │ ├── parse_test.go │ ├── render.go │ ├── render_test.go │ ├── testdata │ │ ├── go1.html │ │ └── webkit │ │ │ ├── README │ │ │ ├── adoption01.dat │ │ │ ├── adoption02.dat │ │ │ ├── comments01.dat │ │ │ ├── doctype01.dat │ │ │ ├── entities01.dat │ │ │ ├── entities02.dat │ │ │ ├── html5test-com.dat │ │ │ ├── inbody01.dat │ │ │ ├── isindex.dat │ │ │ ├── pending-spec-changes-plain-text-unsafe.dat │ │ │ ├── pending-spec-changes.dat │ │ │ ├── plain-text-unsafe.dat │ │ │ ├── scriptdata01.dat │ │ │ ├── scripted │ │ │ ├── adoption01.dat │ │ │ └── webkit01.dat │ │ │ ├── tables01.dat │ │ │ ├── tests1.dat │ │ │ ├── tests10.dat │ │ │ ├── tests11.dat │ │ │ ├── tests12.dat │ │ │ ├── tests14.dat │ │ │ ├── tests15.dat │ │ │ ├── tests16.dat │ │ │ ├── tests17.dat │ │ │ ├── tests18.dat │ │ │ ├── tests19.dat │ │ │ ├── tests2.dat │ │ │ ├── tests20.dat │ │ │ ├── tests21.dat │ │ │ ├── tests22.dat │ │ │ ├── tests23.dat │ │ │ ├── tests24.dat │ │ │ ├── tests25.dat │ │ │ ├── tests26.dat │ │ │ ├── tests3.dat │ │ │ ├── tests4.dat │ │ │ ├── tests5.dat │ │ │ ├── tests6.dat │ │ │ ├── tests7.dat │ │ │ ├── tests8.dat │ │ │ ├── tests9.dat │ │ │ ├── tests_innerHTML_1.dat │ │ │ ├── tricky01.dat │ │ │ ├── webkit01.dat │ │ │ └── webkit02.dat │ ├── token.go │ └── token_test.go ├── icmp │ ├── dstunreach.go │ ├── echo.go │ ├── endpoint.go │ ├── example_test.go │ ├── extension.go │ ├── helper_posix.go │ ├── ipv4.go │ ├── ipv4_test.go │ ├── ipv6.go │ ├── listen_posix.go │ ├── listen_stub.go │ ├── message.go │ ├── message_test.go │ ├── messagebody.go │ ├── packettoobig.go │ ├── paramprob.go │ ├── ping_test.go │ ├── sys_freebsd.go │ └── timeexceeded.go ├── idna │ ├── idna.go │ ├── idna_test.go │ ├── punycode.go │ └── punycode_test.go ├── internal │ ├── iana │ │ ├── const.go │ │ └── gen.go │ └── nettest │ │ ├── error_posix.go │ │ ├── error_stub.go │ │ ├── interface.go │ │ ├── stack.go │ │ ├── stack_stub.go │ │ ├── stack_unix.go │ │ └── stack_windows.go ├── ipv4 │ ├── control.go │ ├── control_bsd.go │ ├── control_pktinfo.go │ ├── control_stub.go │ ├── control_unix.go │ ├── control_windows.go │ ├── defs_darwin.go │ ├── defs_dragonfly.go │ ├── defs_freebsd.go │ ├── defs_linux.go │ ├── defs_netbsd.go │ ├── defs_openbsd.go │ ├── defs_solaris.go │ ├── dgramopt_posix.go │ ├── dgramopt_stub.go │ ├── doc.go │ ├── endpoint.go │ ├── example_test.go │ ├── gen.go │ ├── genericopt_posix.go │ ├── genericopt_stub.go │ ├── header.go │ ├── header_test.go │ ├── helper.go │ ├── helper_stub.go │ ├── helper_unix.go │ ├── helper_windows.go │ ├── iana.go │ ├── icmp.go │ ├── icmp_linux.go │ ├── icmp_stub.go │ ├── icmp_test.go │ ├── mocktransponder_test.go │ ├── multicast_test.go │ ├── multicastlistener_test.go │ ├── multicastsockopt_test.go │ ├── packet.go │ ├── payload.go │ ├── payload_cmsg.go │ ├── payload_nocmsg.go │ ├── readwrite_test.go │ ├── sockopt.go │ ├── sockopt_asmreq.go │ ├── sockopt_asmreq_stub.go │ ├── sockopt_asmreq_unix.go │ ├── sockopt_asmreq_windows.go │ ├── sockopt_asmreqn_stub.go │ ├── sockopt_asmreqn_unix.go │ ├── sockopt_ssmreq_stub.go │ ├── sockopt_ssmreq_unix.go │ ├── sockopt_stub.go │ ├── sockopt_unix.go │ ├── sockopt_windows.go │ ├── sys_bsd.go │ ├── sys_darwin.go │ ├── sys_freebsd.go │ ├── sys_linux.go │ ├── sys_openbsd.go │ ├── sys_stub.go │ ├── sys_windows.go │ ├── syscall_linux_386.go │ ├── syscall_unix.go │ ├── thunk_linux_386.s │ ├── unicast_test.go │ ├── unicastsockopt_test.go │ ├── zsys_darwin.go │ ├── zsys_dragonfly.go │ ├── zsys_freebsd_386.go │ ├── zsys_freebsd_amd64.go │ ├── zsys_freebsd_arm.go │ ├── zsys_linux_386.go │ ├── zsys_linux_amd64.go │ ├── zsys_linux_arm.go │ ├── zsys_netbsd.go │ ├── zsys_openbsd.go │ └── zsys_solaris.go ├── ipv6 │ ├── control.go │ ├── control_rfc2292_unix.go │ ├── control_rfc3542_unix.go │ ├── control_stub.go │ ├── control_unix.go │ ├── control_windows.go │ ├── defs_darwin.go │ ├── defs_dragonfly.go │ ├── defs_freebsd.go │ ├── defs_linux.go │ ├── defs_netbsd.go │ ├── defs_openbsd.go │ ├── defs_solaris.go │ ├── dgramopt_posix.go │ ├── dgramopt_stub.go │ ├── doc.go │ ├── endpoint.go │ ├── example_test.go │ ├── gen.go │ ├── genericopt_posix.go │ ├── genericopt_stub.go │ ├── header.go │ ├── header_test.go │ ├── helper.go │ ├── helper_stub.go │ ├── helper_unix.go │ ├── helper_windows.go │ ├── iana.go │ ├── icmp.go │ ├── icmp_bsd.go │ ├── icmp_linux.go │ ├── icmp_solaris.go │ ├── icmp_stub.go │ ├── icmp_test.go │ ├── icmp_windows.go │ ├── mocktransponder_test.go │ ├── multicast_test.go │ ├── multicastlistener_test.go │ ├── multicastsockopt_test.go │ ├── payload.go │ ├── payload_cmsg.go │ ├── payload_nocmsg.go │ ├── readwrite_test.go │ ├── sockopt.go │ ├── sockopt_asmreq_unix.go │ ├── sockopt_asmreq_windows.go │ ├── sockopt_ssmreq_stub.go │ ├── sockopt_ssmreq_unix.go │ ├── sockopt_stub.go │ ├── sockopt_test.go │ ├── sockopt_unix.go │ ├── sockopt_windows.go │ ├── sys_bsd.go │ ├── sys_darwin.go │ ├── sys_freebsd.go │ ├── sys_linux.go │ ├── sys_stub.go │ ├── sys_windows.go │ ├── syscall_linux_386.go │ ├── syscall_unix.go │ ├── thunk_linux_386.s │ ├── unicast_test.go │ ├── unicastsockopt_test.go │ ├── zsys_darwin.go │ ├── zsys_dragonfly.go │ ├── zsys_freebsd_386.go │ ├── zsys_freebsd_amd64.go │ ├── zsys_freebsd_arm.go │ ├── zsys_linux_386.go │ ├── zsys_linux_amd64.go │ ├── zsys_linux_arm.go │ ├── zsys_netbsd.go │ ├── zsys_openbsd.go │ └── zsys_solaris.go ├── netutil │ ├── listen.go │ └── listen_test.go ├── proxy │ ├── direct.go │ ├── per_host.go │ ├── per_host_test.go │ ├── proxy.go │ ├── proxy_test.go │ └── socks5.go ├── publicsuffix │ ├── gen.go │ ├── list.go │ ├── list_test.go │ ├── table.go │ └── table_test.go ├── spdy │ ├── dictionary.go │ ├── read.go │ ├── spdy_test.go │ ├── types.go │ └── write.go ├── webdav │ ├── file.go │ ├── file_test.go │ ├── if.go │ ├── if_test.go │ ├── litmus_test_server.go │ ├── lock.go │ ├── lock_test.go │ ├── webdav.go │ ├── xml.go │ └── xml_test.go └── websocket │ ├── client.go │ ├── exampledial_test.go │ ├── examplehandler_test.go │ ├── hybi.go │ ├── hybi_test.go │ ├── server.go │ ├── websocket.go │ └── websocket_test.go └── sys ├── .gitattributes ├── .gitignore ├── AUTHORS ├── CONTRIBUTING.md ├── CONTRIBUTORS ├── LICENSE ├── PATENTS ├── README ├── codereview.cfg ├── plan9 ├── asm.s ├── asm_plan9_386.s ├── asm_plan9_amd64.s ├── const_plan9.go ├── dir_plan9.go ├── env_plan9.go ├── env_unset.go ├── errors_plan9.go ├── mkall.sh ├── mkerrors.sh ├── mksyscall.pl ├── mksysnum_plan9.sh ├── pwd_go15_plan9.go ├── pwd_plan9.go ├── race.go ├── race0.go ├── str.go ├── syscall.go ├── syscall_plan9.go ├── syscall_test.go ├── zsyscall_plan9_386.go ├── zsyscall_plan9_amd64.go └── zsysnum_plan9.go ├── unix ├── .gitignore ├── README.md ├── asm_darwin_386.s ├── asm_darwin_amd64.s ├── asm_darwin_arm.s ├── asm_darwin_arm64.s ├── asm_dragonfly_amd64.s ├── asm_freebsd_386.s ├── asm_freebsd_amd64.s ├── asm_freebsd_arm.s ├── asm_linux_386.s ├── asm_linux_amd64.s ├── asm_linux_arm.s ├── asm_linux_arm64.s ├── asm_linux_mips64x.s ├── asm_linux_mipsx.s ├── asm_linux_ppc64x.s ├── asm_linux_s390x.s ├── asm_netbsd_386.s ├── asm_netbsd_amd64.s ├── asm_netbsd_arm.s ├── asm_openbsd_386.s ├── asm_openbsd_amd64.s ├── asm_solaris_amd64.s ├── bluetooth_linux.go ├── cap_freebsd.go ├── constants.go ├── creds_test.go ├── dev_linux.go ├── dev_linux_test.go ├── dirent.go ├── endian_big.go ├── endian_little.go ├── env_unix.go ├── env_unset.go ├── errors_freebsd_386.go ├── errors_freebsd_amd64.go ├── export_test.go ├── file_unix.go ├── flock.go ├── flock_linux_32bit.go ├── gccgo.go ├── gccgo_c.c ├── gccgo_linux_amd64.go ├── gccgo_linux_sparc64.go ├── linux │ ├── Dockerfile │ ├── mkall.go │ ├── mksysnum.pl │ └── types.go ├── mkall.sh ├── mkerrors.sh ├── mkpost.go ├── mksyscall.pl ├── mksyscall_solaris.pl ├── mksysctl_openbsd.pl ├── mksysnum_darwin.pl ├── mksysnum_dragonfly.pl ├── mksysnum_freebsd.pl ├── mksysnum_netbsd.pl ├── mksysnum_openbsd.pl ├── mmap_unix_test.go ├── openbsd_pledge.go ├── openbsd_test.go ├── race.go ├── race0.go ├── sockcmsg_linux.go ├── sockcmsg_unix.go ├── str.go ├── syscall.go ├── syscall_bsd.go ├── syscall_bsd_test.go ├── syscall_darwin.go ├── syscall_darwin_386.go ├── syscall_darwin_amd64.go ├── syscall_darwin_arm.go ├── syscall_darwin_arm64.go ├── syscall_dragonfly.go ├── syscall_dragonfly_amd64.go ├── syscall_freebsd.go ├── syscall_freebsd_386.go ├── syscall_freebsd_amd64.go ├── syscall_freebsd_arm.go ├── syscall_freebsd_test.go ├── syscall_linux.go ├── syscall_linux_386.go ├── syscall_linux_amd64.go ├── syscall_linux_amd64_gc.go ├── syscall_linux_arm.go ├── syscall_linux_arm64.go ├── syscall_linux_mips64x.go ├── syscall_linux_mipsx.go ├── syscall_linux_ppc64x.go ├── syscall_linux_s390x.go ├── syscall_linux_sparc64.go ├── syscall_linux_test.go ├── syscall_netbsd.go ├── syscall_netbsd_386.go ├── syscall_netbsd_amd64.go ├── syscall_netbsd_arm.go ├── syscall_no_getwd.go ├── syscall_openbsd.go ├── syscall_openbsd_386.go ├── syscall_openbsd_amd64.go ├── syscall_solaris.go ├── syscall_solaris_amd64.go ├── syscall_solaris_test.go ├── syscall_test.go ├── syscall_unix.go ├── syscall_unix_gc.go ├── syscall_unix_test.go ├── types_darwin.go ├── types_dragonfly.go ├── types_freebsd.go ├── types_netbsd.go ├── types_openbsd.go ├── types_solaris.go ├── zerrors_darwin_386.go ├── zerrors_darwin_amd64.go ├── zerrors_darwin_arm.go ├── zerrors_darwin_arm64.go ├── zerrors_dragonfly_amd64.go ├── zerrors_freebsd_386.go ├── zerrors_freebsd_amd64.go ├── zerrors_freebsd_arm.go ├── zerrors_linux_386.go ├── zerrors_linux_amd64.go ├── zerrors_linux_arm.go ├── zerrors_linux_arm64.go ├── zerrors_linux_mips.go ├── zerrors_linux_mips64.go ├── zerrors_linux_mips64le.go ├── zerrors_linux_mipsle.go ├── zerrors_linux_ppc64.go ├── zerrors_linux_ppc64le.go ├── zerrors_linux_s390x.go ├── zerrors_linux_sparc64.go ├── zerrors_netbsd_386.go ├── zerrors_netbsd_amd64.go ├── zerrors_netbsd_arm.go ├── zerrors_openbsd_386.go ├── zerrors_openbsd_amd64.go ├── zerrors_solaris_amd64.go ├── zsyscall_darwin_386.go ├── zsyscall_darwin_amd64.go ├── zsyscall_darwin_arm.go ├── zsyscall_darwin_arm64.go ├── zsyscall_dragonfly_amd64.go ├── zsyscall_freebsd_386.go ├── zsyscall_freebsd_amd64.go ├── zsyscall_freebsd_arm.go ├── zsyscall_linux_386.go ├── zsyscall_linux_amd64.go ├── zsyscall_linux_arm.go ├── zsyscall_linux_arm64.go ├── zsyscall_linux_mips.go ├── zsyscall_linux_mips64.go ├── zsyscall_linux_mips64le.go ├── zsyscall_linux_mipsle.go ├── zsyscall_linux_ppc64.go ├── zsyscall_linux_ppc64le.go ├── zsyscall_linux_s390x.go ├── zsyscall_linux_sparc64.go ├── zsyscall_netbsd_386.go ├── zsyscall_netbsd_amd64.go ├── zsyscall_netbsd_arm.go ├── zsyscall_openbsd_386.go ├── zsyscall_openbsd_amd64.go ├── zsyscall_solaris_amd64.go ├── zsysctl_openbsd.go ├── zsysnum_darwin_386.go ├── zsysnum_darwin_amd64.go ├── zsysnum_darwin_arm.go ├── zsysnum_darwin_arm64.go ├── zsysnum_dragonfly_amd64.go ├── zsysnum_freebsd_386.go ├── zsysnum_freebsd_amd64.go ├── zsysnum_freebsd_arm.go ├── zsysnum_linux_386.go ├── zsysnum_linux_amd64.go ├── zsysnum_linux_arm.go ├── zsysnum_linux_arm64.go ├── zsysnum_linux_mips.go ├── zsysnum_linux_mips64.go ├── zsysnum_linux_mips64le.go ├── zsysnum_linux_mipsle.go ├── zsysnum_linux_ppc64.go ├── zsysnum_linux_ppc64le.go ├── zsysnum_linux_s390x.go ├── zsysnum_linux_sparc64.go ├── zsysnum_netbsd_386.go ├── zsysnum_netbsd_amd64.go ├── zsysnum_netbsd_arm.go ├── zsysnum_openbsd_386.go ├── zsysnum_openbsd_amd64.go ├── zsysnum_solaris_amd64.go ├── ztypes_darwin_386.go ├── ztypes_darwin_amd64.go ├── ztypes_darwin_arm.go ├── ztypes_darwin_arm64.go ├── ztypes_dragonfly_amd64.go ├── ztypes_freebsd_386.go ├── ztypes_freebsd_amd64.go ├── ztypes_freebsd_arm.go ├── ztypes_linux_386.go ├── ztypes_linux_amd64.go ├── ztypes_linux_arm.go ├── ztypes_linux_arm64.go ├── ztypes_linux_mips.go ├── ztypes_linux_mips64.go ├── ztypes_linux_mips64le.go ├── ztypes_linux_mipsle.go ├── ztypes_linux_ppc64.go ├── ztypes_linux_ppc64le.go ├── ztypes_linux_s390x.go ├── ztypes_linux_sparc64.go ├── ztypes_netbsd_386.go ├── ztypes_netbsd_amd64.go ├── ztypes_netbsd_arm.go ├── ztypes_openbsd_386.go ├── ztypes_openbsd_amd64.go └── ztypes_solaris_amd64.go └── windows ├── asm_windows_386.s ├── asm_windows_amd64.s ├── dll_windows.go ├── env_unset.go ├── env_windows.go ├── eventlog.go ├── exec_windows.go ├── memory_windows.go ├── mksyscall.go ├── race.go ├── race0.go ├── registry ├── export_test.go ├── key.go ├── mksyscall.go ├── registry_test.go ├── syscall.go ├── value.go └── zsyscall_windows.go ├── security_windows.go ├── service.go ├── str.go ├── svc ├── debug │ ├── log.go │ └── service.go ├── event.go ├── eventlog │ ├── install.go │ ├── log.go │ └── log_test.go ├── example │ ├── beep.go │ ├── install.go │ ├── main.go │ ├── manage.go │ └── service.go ├── go12.c ├── go12.go ├── go13.go ├── mgr │ ├── config.go │ ├── mgr.go │ ├── mgr_test.go │ └── service.go ├── security.go ├── service.go ├── svc_test.go ├── sys_386.s └── sys_amd64.s ├── syscall.go ├── syscall_test.go ├── syscall_windows.go ├── syscall_windows_test.go ├── zsyscall_windows.go ├── ztypes_windows.go ├── ztypes_windows_386.go └── ztypes_windows_amd64.go /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *.prof 25 | *.swp 26 | 27 | # Ignore the binaries 28 | ipam-driver 29 | create_ea_defs 30 | bin/ 31 | plugin/ 32 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.5 2 | 3 | RUN mkdir -p /run/docker/plugins 4 | 5 | COPY bin/ipam-plugin /ipam-plugin 6 | 7 | ENTRYPOINT ["/ipam-plugin"] 8 | -------------------------------------------------------------------------------- /Dockerfile.build: -------------------------------------------------------------------------------- 1 | FROM golang:1.7-alpine 2 | 3 | RUN apk --update add --no-cache --virtual .build-deps \ 4 | gcc libc-dev linux-headers 5 | 6 | COPY . /go/src/github.com/infobloxopen/docker-infoblox 7 | WORKDIR /go/src/github.com/infobloxopen/docker-infoblox 8 | 9 | RUN go build -o bin/ipam-plugin ./driver \ 10 | && go build -o bin/create-ea-defs ./ea-defs 11 | -------------------------------------------------------------------------------- /Dockerfile.tools: -------------------------------------------------------------------------------- 1 | FROM alpine:3.5 2 | 3 | COPY ipam-tools/launch.sh launch.sh 4 | COPY bin/create-ea-defs /usr/local/bin/create-ea-defs 5 | 6 | ENTRYPOINT ["/launch.sh"] 7 | -------------------------------------------------------------------------------- /etc/config.example: -------------------------------------------------------------------------------- 1 | [grid-config] 2 | grid-host="10.120.21.150" 3 | wapi-port="443" 4 | wapi-username="admin" 5 | wapi-password="infoblox" 6 | wapi-version="2.0" 7 | ssl-verify="false" 8 | http-request-timeout=60 9 | http-pool-connections=10 10 | 11 | [ipam-config] 12 | global-view="global" 13 | global-network-container="172.18.0.0/24" 14 | global-prefix-length=25 15 | local-view="local" 16 | local-network-container="192.168.0.0/24" 17 | local-prefix-length=25 18 | -------------------------------------------------------------------------------- /ipam-tools/launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | set -e 4 | 5 | echo "Executing command '$@'" 6 | exec $@ 7 | -------------------------------------------------------------------------------- /scripts/create_ea_defs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | PLUGIN_DIR="/run/docker/plugins" 4 | # GRID_HOST="192.168.124.200" 5 | GRID_HOST="192.168.124.200" 6 | WAPI_PORT="443" 7 | WAPI_USERNAME="" 8 | WAPI_PASSWORD="" 9 | WAPI_VERSION="2.2" 10 | SSL_VERIFY="false" 11 | 12 | 13 | 14 | bin/create_ea_defs --grid-host=${GRID_HOST} --wapi-port=${WAPI_PORT} --wapi-username=${WAPI_USERNAME} --wapi-password=${WAPI_PASSWORD} --wapi-version=${WAPI_VERSION} --ssl-verify=${SSL_VERIFY} 15 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/.gitignore: -------------------------------------------------------------------------------- 1 | TAGS 2 | tags 3 | .*.swp 4 | tomlcheck/tomlcheck 5 | toml.test 6 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.1 4 | - 1.2 5 | - 1.3 6 | - 1.4 7 | - 1.5 8 | - 1.6 9 | - tip 10 | install: 11 | - go install ./... 12 | - go get github.com/BurntSushi/toml-test 13 | script: 14 | - export PATH="$PATH:$HOME/gopath/bin" 15 | - make test 16 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/COMPATIBLE: -------------------------------------------------------------------------------- 1 | Compatible with TOML version 2 | [v0.4.0](https://github.com/toml-lang/toml/blob/v0.4.0/versions/en/toml-v0.4.0.md) 3 | 4 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/COPYING: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | 15 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/Makefile: -------------------------------------------------------------------------------- 1 | install: 2 | go install ./... 3 | 4 | test: install 5 | go test -v 6 | toml-test toml-test-decoder 7 | toml-test -encoder toml-test-encoder 8 | 9 | fmt: 10 | gofmt -w *.go */*.go 11 | colcheck *.go */*.go 12 | 13 | tags: 14 | find ./ -name '*.go' -print0 | xargs -0 gotags > TAGS 15 | 16 | push: 17 | git push origin master 18 | git push github master 19 | 20 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/_examples/implicit.toml: -------------------------------------------------------------------------------- 1 | # [x] you 2 | # [x.y] don't 3 | # [x.y.z] need these 4 | [x.y.z.w] # for this to work 5 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/_examples/invalid-apples.toml: -------------------------------------------------------------------------------- 1 | # DO NOT WANT 2 | [fruit] 3 | type = "apple" 4 | 5 | [fruit.type] 6 | apple = "yes" 7 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/_examples/readme1.toml: -------------------------------------------------------------------------------- 1 | Age = 25 2 | Cats = [ "Cauchy", "Plato" ] 3 | Pi = 3.14 4 | Perfection = [ 6, 28, 496, 8128 ] 5 | DOB = 1987-07-05T05:45:00Z 6 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/_examples/readme2.toml: -------------------------------------------------------------------------------- 1 | some_key_NAME = "wat" 2 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/COPYING: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | 15 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/cmd/toml-test-decoder/README.md: -------------------------------------------------------------------------------- 1 | # Implements the TOML test suite interface 2 | 3 | This is an implementation of the interface expected by 4 | [toml-test](https://github.com/BurntSushi/toml-test) for my 5 | [toml parser written in Go](https://github.com/BurntSushi/toml). 6 | In particular, it maps TOML data on `stdin` to a JSON format on `stdout`. 7 | 8 | 9 | Compatible with TOML version 10 | [v0.4.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md) 11 | 12 | Compatible with `toml-test` version 13 | [v0.2.0](https://github.com/BurntSushi/toml-test/tree/v0.2.0) 14 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/COPYING: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | 15 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/cmd/toml-test-encoder/README.md: -------------------------------------------------------------------------------- 1 | # Implements the TOML test suite interface for TOML encoders 2 | 3 | This is an implementation of the interface expected by 4 | [toml-test](https://github.com/BurntSushi/toml-test) for the 5 | [TOML encoder](https://github.com/BurntSushi/toml). 6 | In particular, it maps JSON data on `stdin` to a TOML format on `stdout`. 7 | 8 | 9 | Compatible with TOML version 10 | [v0.4.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md) 11 | 12 | Compatible with `toml-test` version 13 | [v0.2.0](https://github.com/BurntSushi/toml-test/tree/v0.2.0) 14 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/cmd/tomlv/COPYING: -------------------------------------------------------------------------------- 1 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 2 | Version 2, December 2004 3 | 4 | Copyright (C) 2004 Sam Hocevar 5 | 6 | Everyone is permitted to copy and distribute verbatim or modified 7 | copies of this license document, and changing it is allowed as long 8 | as the name is changed. 9 | 10 | DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE 11 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 12 | 13 | 0. You just DO WHAT THE FUCK YOU WANT TO. 14 | 15 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/cmd/tomlv/README.md: -------------------------------------------------------------------------------- 1 | # TOML Validator 2 | 3 | If Go is installed, it's simple to try it out: 4 | 5 | ```bash 6 | go get github.com/BurntSushi/toml/cmd/tomlv 7 | tomlv some-toml-file.toml 8 | ``` 9 | 10 | You can see the types of every key in a TOML file with: 11 | 12 | ```bash 13 | tomlv -types some-toml-file.toml 14 | ``` 15 | 16 | At the moment, only one error message is reported at a time. Error messages 17 | include line numbers. No output means that the files given are valid TOML, or 18 | there is a bug in `tomlv`. 19 | 20 | Compatible with TOML version 21 | [v0.4.0](https://github.com/toml-lang/toml/blob/master/versions/en/toml-v0.4.0.md) 22 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/encoding_types.go: -------------------------------------------------------------------------------- 1 | // +build go1.2 2 | 3 | package toml 4 | 5 | // In order to support Go 1.1, we define our own TextMarshaler and 6 | // TextUnmarshaler types. For Go 1.2+, we just alias them with the 7 | // standard library interfaces. 8 | 9 | import ( 10 | "encoding" 11 | ) 12 | 13 | // TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here 14 | // so that Go 1.1 can be supported. 15 | type TextMarshaler encoding.TextMarshaler 16 | 17 | // TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined 18 | // here so that Go 1.1 can be supported. 19 | type TextUnmarshaler encoding.TextUnmarshaler 20 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/encoding_types_1.1.go: -------------------------------------------------------------------------------- 1 | // +build !go1.2 2 | 3 | package toml 4 | 5 | // These interfaces were introduced in Go 1.2, so we add them manually when 6 | // compiling for Go 1.1. 7 | 8 | // TextMarshaler is a synonym for encoding.TextMarshaler. It is defined here 9 | // so that Go 1.1 can be supported. 10 | type TextMarshaler interface { 11 | MarshalText() (text []byte, err error) 12 | } 13 | 14 | // TextUnmarshaler is a synonym for encoding.TextUnmarshaler. It is defined 15 | // here so that Go 1.1 can be supported. 16 | type TextUnmarshaler interface { 17 | UnmarshalText(text []byte) error 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/BurntSushi/toml/session.vim: -------------------------------------------------------------------------------- 1 | au BufWritePost *.go silent!make tags > /dev/null 2>&1 2 | -------------------------------------------------------------------------------- /vendor/github.com/Microsoft/go-winio/README.md: -------------------------------------------------------------------------------- 1 | # go-winio 2 | 3 | This repository contains utilities for efficiently performing Win32 IO operations in 4 | Go. Currently, this is focused on accessing named pipes and other file handles, and 5 | for using named pipes as a net transport. 6 | 7 | This code relies on IO completion ports to avoid blocking IO on system threads, allowing Go 8 | to reuse the thread to schedule another goroutine. This limits support to Windows Vista and 9 | newer operating systems. This is similar to the implementation of network sockets in Go's net 10 | package. 11 | 12 | Please see the LICENSE file for licensing information. 13 | 14 | Thanks to natefinch for the inspiration for this library. See https://github.com/natefinch/npipe 15 | for another named pipe implementation. 16 | -------------------------------------------------------------------------------- /vendor/github.com/Microsoft/go-winio/archive/tar/stat_atim.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build linux dragonfly openbsd solaris 6 | 7 | package tar 8 | 9 | import ( 10 | "syscall" 11 | "time" 12 | ) 13 | 14 | func statAtime(st *syscall.Stat_t) time.Time { 15 | return time.Unix(st.Atim.Unix()) 16 | } 17 | 18 | func statCtime(st *syscall.Stat_t) time.Time { 19 | return time.Unix(st.Ctim.Unix()) 20 | } 21 | -------------------------------------------------------------------------------- /vendor/github.com/Microsoft/go-winio/archive/tar/stat_atimespec.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build darwin freebsd netbsd 6 | 7 | package tar 8 | 9 | import ( 10 | "syscall" 11 | "time" 12 | ) 13 | 14 | func statAtime(st *syscall.Stat_t) time.Time { 15 | return time.Unix(st.Atimespec.Unix()) 16 | } 17 | 18 | func statCtime(st *syscall.Stat_t) time.Time { 19 | return time.Unix(st.Ctimespec.Unix()) 20 | } 21 | -------------------------------------------------------------------------------- /vendor/github.com/Microsoft/go-winio/privileges_test.go: -------------------------------------------------------------------------------- 1 | package winio 2 | 3 | import "testing" 4 | 5 | func TestRunWithUnavailablePrivilege(t *testing.T) { 6 | err := RunWithPrivilege("SeCreateTokenPrivilege", func() error { return nil }) 7 | if _, ok := err.(*PrivilegeError); err == nil || !ok { 8 | t.Fatal("expected PrivilegeError") 9 | } 10 | } 11 | 12 | func TestRunWithPrivileges(t *testing.T) { 13 | err := RunWithPrivilege("SeShutdownPrivilege", func() error { return nil }) 14 | if err != nil { 15 | t.Fatal(err) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /vendor/github.com/Microsoft/go-winio/syscall.go: -------------------------------------------------------------------------------- 1 | package winio 2 | 3 | //go:generate go run $GOROOT/src/syscall/mksyscall_windows.go -output zsyscall.go file.go pipe.go sd.go fileinfo.go privilege.go backup.go 4 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/.gitignore: -------------------------------------------------------------------------------- 1 | logrus 2 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.6.x 4 | - 1.7.x 5 | - 1.8.x 6 | - tip 7 | env: 8 | - GOMAXPROCS=4 GORACE=halt_on_error=1 9 | install: 10 | - go get github.com/stretchr/testify/assert 11 | script: 12 | - go test -race -v . 13 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/doc.go: -------------------------------------------------------------------------------- 1 | /* 2 | Package logrus is a structured logger for Go, completely API compatible with the standard library logger. 3 | 4 | 5 | The simplest way to use Logrus is simply the package-level exported logger: 6 | 7 | package main 8 | 9 | import ( 10 | log "github.com/sirupsen/logrus" 11 | ) 12 | 13 | func main() { 14 | log.WithFields(log.Fields{ 15 | "animal": "walrus", 16 | "number": 1, 17 | "size": 10, 18 | }).Info("A walrus appears") 19 | } 20 | 21 | Output: 22 | time="2015-09-07T08:48:33Z" level=info msg="A walrus appears" animal=walrus number=1 size=10 23 | 24 | For a full guide visit https://github.com/sirupsen/logrus 25 | */ 26 | package logrus 27 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/examples/hook/hook.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "github.com/sirupsen/logrus" 5 | "gopkg.in/gemnasium/logrus-airbrake-hook.v2" 6 | ) 7 | 8 | var log = logrus.New() 9 | 10 | func init() { 11 | log.Formatter = new(logrus.TextFormatter) // default 12 | log.Hooks.Add(airbrake.NewHook(123, "xyz", "development")) 13 | } 14 | 15 | func main() { 16 | log.WithFields(logrus.Fields{ 17 | "animal": "walrus", 18 | "size": 10, 19 | }).Info("A group of walrus emerges from the ocean") 20 | 21 | log.WithFields(logrus.Fields{ 22 | "omg": true, 23 | "number": 122, 24 | }).Warn("The group's number increased tremendously!") 25 | 26 | log.WithFields(logrus.Fields{ 27 | "omg": true, 28 | "number": 100, 29 | }).Fatal("The ice breaks!") 30 | } 31 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/hooks/syslog/syslog_test.go: -------------------------------------------------------------------------------- 1 | package logrus_syslog 2 | 3 | import ( 4 | "github.com/sirupsen/logrus" 5 | "log/syslog" 6 | "testing" 7 | ) 8 | 9 | func TestLocalhostAddAndPrint(t *testing.T) { 10 | log := logrus.New() 11 | hook, err := NewSyslogHook("udp", "localhost:514", syslog.LOG_INFO, "") 12 | 13 | if err != nil { 14 | t.Errorf("Unable to connect to local syslog.") 15 | } 16 | 17 | log.Hooks.Add(hook) 18 | 19 | for _, level := range hook.Levels() { 20 | if len(log.Hooks[level]) != 1 { 21 | t.Errorf("SyslogHook was not added. The length of log.Hooks[%v]: %v", level, len(log.Hooks[level])) 22 | } 23 | } 24 | 25 | log.Info("Congratulations!") 26 | } 27 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/terminal_appengine.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | package logrus 4 | 5 | import "io" 6 | 7 | // IsTerminal returns true if stderr's file descriptor is a terminal. 8 | func IsTerminal(f io.Writer) bool { 9 | return true 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/terminal_bsd.go: -------------------------------------------------------------------------------- 1 | // +build darwin freebsd openbsd netbsd dragonfly 2 | // +build !appengine 3 | 4 | package logrus 5 | 6 | import "syscall" 7 | 8 | const ioctlReadTermios = syscall.TIOCGETA 9 | 10 | type Termios syscall.Termios 11 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/terminal_linux.go: -------------------------------------------------------------------------------- 1 | // Based on ssh/terminal: 2 | // Copyright 2013 The Go Authors. All rights reserved. 3 | // Use of this source code is governed by a BSD-style 4 | // license that can be found in the LICENSE file. 5 | 6 | // +build !appengine 7 | 8 | package logrus 9 | 10 | import "syscall" 11 | 12 | const ioctlReadTermios = syscall.TCGETS 13 | 14 | type Termios syscall.Termios 15 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/terminal_notwindows.go: -------------------------------------------------------------------------------- 1 | // Based on ssh/terminal: 2 | // Copyright 2011 The Go Authors. All rights reserved. 3 | // Use of this source code is governed by a BSD-style 4 | // license that can be found in the LICENSE file. 5 | 6 | // +build linux darwin freebsd openbsd netbsd dragonfly 7 | // +build !appengine 8 | 9 | package logrus 10 | 11 | import ( 12 | "io" 13 | "os" 14 | "syscall" 15 | "unsafe" 16 | ) 17 | 18 | // IsTerminal returns true if stderr's file descriptor is a terminal. 19 | func IsTerminal(f io.Writer) bool { 20 | var termios Termios 21 | switch v := f.(type) { 22 | case *os.File: 23 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(v.Fd()), ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 24 | return err == 0 25 | default: 26 | return false 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/github.com/Sirupsen/logrus/terminal_solaris.go: -------------------------------------------------------------------------------- 1 | // +build solaris,!appengine 2 | 3 | package logrus 4 | 5 | import ( 6 | "io" 7 | "os" 8 | 9 | "golang.org/x/sys/unix" 10 | ) 11 | 12 | // IsTerminal returns true if the given file descriptor is a terminal. 13 | func IsTerminal(f io.Writer) bool { 14 | switch v := f.(type) { 15 | case *os.File: 16 | _, err := unix.IoctlGetTermios(int(v.Fd()), unix.TCGETA) 17 | return err == nil 18 | default: 19 | return false 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/caarlos0/env/.gitignore: -------------------------------------------------------------------------------- 1 | coverage.out 2 | -------------------------------------------------------------------------------- /vendor/github.com/caarlos0/env/.hound.yml: -------------------------------------------------------------------------------- 1 | go: 2 | enabled: true 3 | -------------------------------------------------------------------------------- /vendor/github.com/caarlos0/env/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.5 4 | - 1.6 5 | - 1.7 6 | - 1.8 7 | - tip 8 | before_install: 9 | - go get github.com/axw/gocov/gocov 10 | - go get github.com/mattn/goveralls 11 | - go get golang.org/x/tools/cmd/cover 12 | script: 13 | - go test -v -cover -race -coverprofile=coverage.out 14 | after_script: 15 | - go get github.com/mattn/goveralls 16 | - goveralls -coverprofile=coverage.out -service=travis-ci -repotoken='eCcizKmTdSaJCz8Ih33WDppdqb9kioYwi' 17 | -------------------------------------------------------------------------------- /vendor/github.com/caarlos0/env/examples/first.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "time" 6 | 7 | "github.com/caarlos0/env" 8 | ) 9 | 10 | type config struct { 11 | Home string `env:"HOME"` 12 | Port int `env:"PORT" envDefault:"3000"` 13 | IsProduction bool `env:"PRODUCTION"` 14 | Hosts []string `env:"HOSTS" envSeparator:":"` 15 | Duration time.Duration `env:"DURATION"` 16 | } 17 | 18 | func main() { 19 | cfg := config{} 20 | err := env.Parse(&cfg) 21 | if err != nil { 22 | fmt.Printf("%+v\n", err) 23 | } 24 | fmt.Printf("%+v\n", cfg) 25 | } 26 | -------------------------------------------------------------------------------- /vendor/github.com/coreos/go-systemd/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 1.4 3 | 4 | install: 5 | - go get github.com/godbus/dbus 6 | 7 | script: 8 | - ./test 9 | -------------------------------------------------------------------------------- /vendor/github.com/coreos/go-systemd/daemon/sdnotify.go: -------------------------------------------------------------------------------- 1 | // Code forked from Docker project 2 | package daemon 3 | 4 | import ( 5 | "errors" 6 | "net" 7 | "os" 8 | ) 9 | 10 | var SdNotifyNoSocket = errors.New("No socket") 11 | 12 | // SdNotify sends a message to the init daemon. It is common to ignore the error. 13 | func SdNotify(state string) error { 14 | socketAddr := &net.UnixAddr{ 15 | Name: os.Getenv("NOTIFY_SOCKET"), 16 | Net: "unixgram", 17 | } 18 | 19 | if socketAddr.Name == "" { 20 | return SdNotifyNoSocket 21 | } 22 | 23 | conn, err := net.DialUnix(socketAddr.Net, nil, socketAddr) 24 | if err != nil { 25 | return err 26 | } 27 | defer conn.Close() 28 | 29 | _, err = conn.Write([]byte(state)) 30 | return err 31 | } 32 | -------------------------------------------------------------------------------- /vendor/github.com/coreos/go-systemd/examples/activation/httpserver/README.md: -------------------------------------------------------------------------------- 1 | ## socket activated http server 2 | 3 | This is a simple example of using socket activation with systemd to serve a 4 | simple HTTP server on http://127.0.0.1:8076 5 | 6 | To try it out `go get` the httpserver and run it under the systemd-activate helper 7 | 8 | ``` 9 | export GOPATH=`pwd` 10 | go get github.com/coreos/go-systemd/examples/activation/httpserver 11 | sudo /usr/lib/systemd/systemd-activate -l 127.0.0.1:8076 ./bin/httpserver 12 | ``` 13 | 14 | Then curl the URL and you will notice that it starts up: 15 | 16 | ``` 17 | curl 127.0.0.1:8076 18 | hello socket activated world! 19 | ``` 20 | -------------------------------------------------------------------------------- /vendor/github.com/coreos/go-systemd/examples/activation/httpserver/hello.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Hello World HTTP 3 | Requires=network.target 4 | After=multi-user.target 5 | 6 | [Service] 7 | Type=simple 8 | ExecStart=/usr/local/bin/httpserver 9 | 10 | [Install] 11 | WantedBy=multi-user.target 12 | -------------------------------------------------------------------------------- /vendor/github.com/coreos/go-systemd/examples/activation/httpserver/hello.socket: -------------------------------------------------------------------------------- 1 | [Socket] 2 | ListenStream=127.0.0.1:8076 3 | 4 | [Install] 5 | WantedBy=sockets.target 6 | -------------------------------------------------------------------------------- /vendor/github.com/coreos/go-systemd/fixtures/enable-disable.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=enable disable test 3 | 4 | [Service] 5 | ExecStart=/bin/sleep 400 6 | -------------------------------------------------------------------------------- /vendor/github.com/coreos/go-systemd/fixtures/start-stop.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=start stop test 3 | 4 | [Service] 5 | ExecStart=/bin/sleep 400 6 | -------------------------------------------------------------------------------- /vendor/github.com/coreos/go-systemd/fixtures/subscribe-events-set.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=start stop test 3 | 4 | [Service] 5 | ExecStart=/bin/sleep 400 6 | -------------------------------------------------------------------------------- /vendor/github.com/coreos/go-systemd/fixtures/subscribe-events.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=start stop test 3 | 4 | [Service] 5 | ExecStart=/bin/sleep 400 6 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *.prof 25 | 26 | # never checkin from the bin file (for now) 27 | bin/* 28 | 29 | # Test key files 30 | *.pem 31 | 32 | # Cover profiles 33 | *.out 34 | 35 | # Editor/IDE specific files. 36 | *.sublime-project 37 | *.sublime-workspace 38 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM golang:1.8-alpine 2 | 3 | ENV DISTRIBUTION_DIR /go/src/github.com/docker/distribution 4 | ENV DOCKER_BUILDTAGS include_oss include_gcs 5 | 6 | ARG GOOS=linux 7 | ARG GOARCH=amd64 8 | 9 | RUN set -ex \ 10 | && apk add --no-cache make git 11 | 12 | WORKDIR $DISTRIBUTION_DIR 13 | COPY . $DISTRIBUTION_DIR 14 | COPY cmd/registry/config-dev.yml /etc/docker/registry/config.yml 15 | 16 | RUN make PREFIX=/go clean binaries 17 | 18 | VOLUME ["/var/lib/registry"] 19 | EXPOSE 5000 20 | ENTRYPOINT ["registry"] 21 | CMD ["serve", "/etc/docker/registry/config.yml"] 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/cmd/registry/config-example.yml: -------------------------------------------------------------------------------- 1 | version: 0.1 2 | log: 3 | fields: 4 | service: registry 5 | storage: 6 | cache: 7 | blobdescriptor: inmemory 8 | filesystem: 9 | rootdirectory: /var/lib/registry 10 | http: 11 | addr: :5000 12 | headers: 13 | X-Content-Type-Options: [nosniff] 14 | health: 15 | storagedriver: 16 | enabled: true 17 | interval: 10s 18 | threshold: 3 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/context/util.go: -------------------------------------------------------------------------------- 1 | package context 2 | 3 | import ( 4 | "time" 5 | ) 6 | 7 | // Since looks up key, which should be a time.Time, and returns the duration 8 | // since that time. If the key is not found, the value returned will be zero. 9 | // This is helpful when inferring metrics related to context execution times. 10 | func Since(ctx Context, key interface{}) time.Duration { 11 | if startedAt, ok := ctx.Value(key).(time.Time); ok { 12 | return time.Since(startedAt) 13 | } 14 | return 0 15 | } 16 | 17 | // GetStringValue returns a string value from the context. The empty string 18 | // will be returned if not found. 19 | func GetStringValue(ctx Context, key interface{}) (value string) { 20 | if valuev, ok := ctx.Value(key).(string); ok { 21 | value = valuev 22 | } 23 | return value 24 | } 25 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/context/version.go: -------------------------------------------------------------------------------- 1 | package context 2 | 3 | // WithVersion stores the application version in the context. The new context 4 | // gets a logger to ensure log messages are marked with the application 5 | // version. 6 | func WithVersion(ctx Context, version string) Context { 7 | ctx = WithValue(ctx, "version", version) 8 | // push a new logger onto the stack 9 | return WithLogger(ctx, GetLogger(ctx, "version")) 10 | } 11 | 12 | // GetVersion returns the application version from the context. An empty 13 | // string may returned if the version was not set on the context. 14 | func GetVersion(ctx Context) string { 15 | return GetStringValue(ctx, "version") 16 | } 17 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/context/version_test.go: -------------------------------------------------------------------------------- 1 | package context 2 | 3 | import "testing" 4 | 5 | func TestVersionContext(t *testing.T) { 6 | ctx := Background() 7 | 8 | if GetVersion(ctx) != "" { 9 | t.Fatalf("context should not yet have a version") 10 | } 11 | 12 | expected := "2.1-whatever" 13 | ctx = WithVersion(ctx, expected) 14 | version := GetVersion(ctx) 15 | 16 | if version != expected { 17 | t.Fatalf("version was not set: %q != %q", version, expected) 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/compose/docker-compose.yml: -------------------------------------------------------------------------------- 1 | nginx: 2 | build: "nginx" 3 | ports: 4 | - "5000:5000" 5 | links: 6 | - registryv1:registryv1 7 | - registryv2:registryv2 8 | registryv1: 9 | image: registry 10 | ports: 11 | - "5000" 12 | registryv2: 13 | build: "../../" 14 | ports: 15 | - "5000" 16 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/compose/nginx/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.7 2 | 3 | COPY nginx.conf /etc/nginx/nginx.conf 4 | COPY registry.conf /etc/nginx/conf.d/registry.conf 5 | COPY docker-registry.conf /etc/nginx/docker-registry.conf 6 | COPY docker-registry-v2.conf /etc/nginx/docker-registry-v2.conf 7 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/compose/nginx/docker-registry-v2.conf: -------------------------------------------------------------------------------- 1 | proxy_pass http://docker-registry-v2; 2 | proxy_set_header Host $http_host; # required for docker client's sake 3 | proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP 4 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 5 | proxy_set_header X-Forwarded-Proto $scheme; 6 | proxy_read_timeout 900; 7 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/compose/nginx/docker-registry.conf: -------------------------------------------------------------------------------- 1 | proxy_pass http://docker-registry; 2 | proxy_set_header Host $http_host; # required for docker client's sake 3 | proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP 4 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 5 | proxy_set_header X-Forwarded-Proto $scheme; 6 | proxy_set_header Authorization ""; # For basic auth through nginx in v1 to work, please comment this line 7 | proxy_read_timeout 900; 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/compose/nginx/nginx.conf: -------------------------------------------------------------------------------- 1 | user nginx; 2 | worker_processes 1; 3 | 4 | error_log /var/log/nginx/error.log warn; 5 | pid /var/run/nginx.pid; 6 | 7 | events { 8 | worker_connections 1024; 9 | } 10 | 11 | http { 12 | include /etc/nginx/mime.types; 13 | default_type application/octet-stream; 14 | 15 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 16 | '$status $body_bytes_sent "$http_referer" ' 17 | '"$http_user_agent" "$http_x_forwarded_for"'; 18 | 19 | access_log /var/log/nginx/access.log main; 20 | 21 | sendfile on; 22 | 23 | keepalive_timeout 65; 24 | 25 | include /etc/nginx/conf.d/*.conf; 26 | } 27 | 28 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM distribution/golem:0.1 2 | 3 | MAINTAINER Docker Distribution Team 4 | 5 | RUN apk add --no-cache git 6 | 7 | ENV TMPDIR /var/lib/docker/tmp 8 | 9 | WORKDIR /go/src/github.com/docker/distribution/contrib/docker-integration 10 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/golem.conf: -------------------------------------------------------------------------------- 1 | [[suite]] 2 | dind=true 3 | images=[ "nginx:1.9", "dmcgowan/token-server:simple", "dmcgowan/token-server:oauth", "dmcgowan/malevolent:0.1.0", "dmcgowan/ncat:latest" ] 4 | 5 | [[suite.pretest]] 6 | command="sh ./install_certs.sh /etc/generated_certs.d" 7 | [[suite.testrunner]] 8 | command="bats -t ." 9 | format="tap" 10 | env=["TEST_REPO=hello-world", "TEST_TAG=latest", "TEST_USER=testuser", "TEST_PASSWORD=passpassword", "TEST_REGISTRY=localregistry", "TEST_SKIP_PULL=true"] 11 | [[suite.customimage]] 12 | tag="golem-distribution:latest" 13 | default="registry:2.2.1" 14 | [[suite.customimage]] 15 | tag="golem-dind:latest" 16 | default="docker:1.10.1-dind" 17 | version="1.10.1" 18 | 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/nginx/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM nginx:1.9 2 | 3 | COPY nginx.conf /etc/nginx/nginx.conf 4 | COPY registry.conf /etc/nginx/conf.d/registry.conf 5 | COPY docker-registry-v2.conf /etc/nginx/docker-registry-v2.conf 6 | COPY registry-noauth.conf /etc/nginx/registry-noauth.conf 7 | COPY registry-basic.conf /etc/nginx/registry-basic.conf 8 | COPY test.passwd /etc/nginx/test.passwd 9 | COPY ssl /etc/nginx/ssl 10 | COPY v1 /var/www/html/v1 11 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/nginx/docker-registry-v2.conf: -------------------------------------------------------------------------------- 1 | proxy_pass http://docker-registry-v2; 2 | proxy_set_header Host $http_host; # required for docker client's sake 3 | proxy_set_header X-Real-IP $remote_addr; # pass on real client's IP 4 | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 5 | proxy_set_header X-Forwarded-Proto $scheme; 6 | proxy_read_timeout 900; 7 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/nginx/registry-basic.conf: -------------------------------------------------------------------------------- 1 | client_max_body_size 0; 2 | chunked_transfer_encoding on; 3 | location /v2/ { 4 | auth_basic "registry.localhost"; 5 | auth_basic_user_file test.passwd; 6 | add_header 'Docker-Distribution-Api-Version' 'registry/2.0' always; 7 | include docker-registry-v2.conf; 8 | } 9 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/nginx/registry-noauth.conf: -------------------------------------------------------------------------------- 1 | client_max_body_size 0; 2 | chunked_transfer_encoding on; 3 | location /v2/ { 4 | include docker-registry-v2.conf; 5 | } 6 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/nginx/test.passwd: -------------------------------------------------------------------------------- 1 | testuser:$apr1$YmLhHjm6$AjP4z8J1WgcUNxU8J4ue5. 2 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/nginx/v1/search.json: -------------------------------------------------------------------------------- 1 | {"num_pages":1,"num_results":2,"page":1,"page_size": 25,"query":"testsearch","results":[{"description":"","is_automated":false,"is_official":false,"is_trusted":false, "name":"dmcgowan/testsearch-1","star_count":1000},{"description":"Some automated build","is_automated":true,"is_official":false,"is_trusted":false,"name":"dmcgowan/testsearch-2","star_count":10}]} 2 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/tokenserver-oauth/.htpasswd: -------------------------------------------------------------------------------- 1 | testuser:$2y$05$T2MlBvkN1R/yICNnLuf1leOlOfAY0DvybctbbWUFKlojfkShVgn4m 2 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/tokenserver-oauth/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM dmcgowan/token-server@sha256:5a6f76d3086cdf63249c77b521108387b49d85a30c5e1c4fe82fdf5ae3b76ba7 2 | 3 | WORKDIR / 4 | 5 | COPY ./.htpasswd /.htpasswd 6 | COPY ./certs/auth.localregistry.cert /tls.cert 7 | COPY ./certs/auth.localregistry.key /tls.key 8 | COPY ./certs/signing.key /sign.key 9 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/tokenserver-oauth/registry-config-notls.yml: -------------------------------------------------------------------------------- 1 | version: 0.1 2 | loglevel: debug 3 | storage: 4 | cache: 5 | blobdescriptor: inmemory 6 | filesystem: 7 | rootdirectory: /tmp/registry-dev 8 | http: 9 | addr: 0.0.0.0:5000 10 | auth: 11 | token: 12 | realm: "https://auth.localregistry:5559/token/" 13 | issuer: "registry-test" 14 | service: "registry-test" 15 | rootcertbundle: "/etc/docker/registry/tokenbundle.pem" 16 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/tokenserver-oauth/registry-config.yml: -------------------------------------------------------------------------------- 1 | version: 0.1 2 | loglevel: debug 3 | storage: 4 | cache: 5 | blobdescriptor: inmemory 6 | filesystem: 7 | rootdirectory: /tmp/registry-dev 8 | http: 9 | addr: 0.0.0.0:5000 10 | tls: 11 | certificate: "/etc/docker/registry/localregistry.cert" 12 | key: "/etc/docker/registry/localregistry.key" 13 | auth: 14 | token: 15 | realm: "https://auth.localregistry:5559/token/" 16 | issuer: "registry-test" 17 | service: "registry-test" 18 | rootcertbundle: "/etc/docker/registry/tokenbundle.pem" 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/tokenserver/.htpasswd: -------------------------------------------------------------------------------- 1 | testuser:$2y$05$T2MlBvkN1R/yICNnLuf1leOlOfAY0DvybctbbWUFKlojfkShVgn4m 2 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/tokenserver/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM dmcgowan/token-server@sha256:0eab50ebdff5b6b95b3addf4edbd8bd2f5b940f27b41b43c94afdf05863a81af 2 | 3 | WORKDIR / 4 | 5 | COPY ./.htpasswd /.htpasswd 6 | COPY ./certs/auth.localregistry.cert /tls.cert 7 | COPY ./certs/auth.localregistry.key /tls.key 8 | COPY ./certs/signing.key /sign.key 9 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/contrib/docker-integration/tokenserver/registry-config.yml: -------------------------------------------------------------------------------- 1 | version: 0.1 2 | loglevel: debug 3 | storage: 4 | cache: 5 | blobdescriptor: inmemory 6 | filesystem: 7 | rootdirectory: /tmp/registry-dev 8 | http: 9 | addr: 0.0.0.0:5000 10 | tls: 11 | certificate: "/etc/docker/registry/localregistry.cert" 12 | key: "/etc/docker/registry/localregistry.key" 13 | auth: 14 | token: 15 | realm: "https://auth.localregistry:5556/token/" 16 | issuer: "registry-test" 17 | service: "registry-test" 18 | rootcertbundle: "/etc/docker/registry/tokenbundle.pem" 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/coverpkg.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # Given a subpackage and the containing package, figures out which packages 3 | # need to be passed to `go test -coverpkg`: this includes all of the 4 | # subpackage's dependencies within the containing package, as well as the 5 | # subpackage itself. 6 | DEPENDENCIES="$(go list -f $'{{range $f := .Deps}}{{$f}}\n{{end}}' ${1} | grep ${2} | grep -v github.com/docker/distribution/vendor)" 7 | echo "${1} ${DEPENDENCIES}" | xargs echo -n | tr ' ' ',' 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/doc.go: -------------------------------------------------------------------------------- 1 | // Package distribution will define the interfaces for the components of 2 | // docker distribution. The goal is to allow users to reliably package, ship 3 | // and store content related to docker images. 4 | // 5 | // This is currently a work in progress. More details are available in the 6 | // README.md. 7 | package distribution 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/docs/README.md: -------------------------------------------------------------------------------- 1 | # The docs have been moved! 2 | 3 | The documentation for Registry has been merged into 4 | [the general documentation repo](https://github.com/docker/docker.github.io). 5 | Commit history has been preserved. 6 | 7 | The docs for Registry are now here: 8 | https://github.com/docker/docker.github.io/tree/master/registry 9 | 10 | > Note: The definitive [./spec directory](spec/) directory and 11 | [configuration.md](configuration.md) file will be maintained in this repository 12 | and be refreshed periodically in 13 | [the general documentation repo](https://github.com/docker/docker.github.io). 14 | 15 | As always, the docs in the general repo remain open-source and we appreciate 16 | your feedback and pull requests! 17 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/docs/spec/auth/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Docker Registry Token Authentication" 3 | description: "Docker Registry v2 authentication schema" 4 | keywords: ["registry, on-prem, images, tags, repository, distribution, authentication, advanced"] 5 | --- 6 | 7 | # Docker Registry v2 authentication 8 | 9 | See the [Token Authentication Specification](token.md), 10 | [Token Authentication Implementation](jwt.md), 11 | [Token Scope Documentation](scope.md), 12 | [OAuth2 Token Authentication](oauth.md) for more information. 13 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/docs/spec/images/v2-registry-auth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infobloxopen/docker-infoblox/b7529e52705380cbfc713a836ecf43cf3c74bd50/vendor/github.com/docker/distribution/docs/spec/images/v2-registry-auth.png -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/docs/spec/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Reference Overview" 3 | description: "Explains registry JSON objects" 4 | keywords: ["registry, service, images, repository, json"] 5 | --- 6 | 7 | # Docker Registry Reference 8 | 9 | * [HTTP API V2](api.md) 10 | * [Storage Driver](../storage-drivers/index.md) 11 | * [Token Authentication Specification](auth/token.md) 12 | * [Token Authentication Implementation](auth/jwt.md) 13 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/docs/spec/menu.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Reference" 3 | description: "Explains registry JSON objects" 4 | keywords: ["registry, service, images, repository, json"] 5 | type: "menu" 6 | identifier: "smn_registry_ref" 7 | --- 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/manifest/doc.go: -------------------------------------------------------------------------------- 1 | package manifest 2 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/manifest/versioned.go: -------------------------------------------------------------------------------- 1 | package manifest 2 | 3 | // Versioned provides a struct with the manifest schemaVersion and mediaType. 4 | // Incoming content with unknown schema version can be decoded against this 5 | // struct to check the version. 6 | type Versioned struct { 7 | // SchemaVersion is the image manifest schema that this image follows 8 | SchemaVersion int `json:"schemaVersion"` 9 | 10 | // MediaType is the media type of this schema. 11 | MediaType string `json:"mediaType,omitempty"` 12 | } 13 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/project/dev-image/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:14.04 2 | 3 | ENV GOLANG_VERSION 1.4rc1 4 | ENV GOPATH /var/cache/drone 5 | ENV GOROOT /usr/local/go 6 | ENV PATH $PATH:$GOROOT/bin:$GOPATH/bin 7 | 8 | ENV LANG C 9 | ENV LC_ALL C 10 | 11 | RUN apt-get update && apt-get install -y \ 12 | wget ca-certificates git mercurial bzr \ 13 | --no-install-recommends \ 14 | && rm -rf /var/lib/apt/lists/* 15 | 16 | RUN wget https://golang.org/dl/go$GOLANG_VERSION.linux-amd64.tar.gz --quiet && \ 17 | tar -C /usr/local -xzf go$GOLANG_VERSION.linux-amd64.tar.gz && \ 18 | rm go${GOLANG_VERSION}.linux-amd64.tar.gz 19 | 20 | RUN go get github.com/axw/gocov/gocov github.com/mattn/goveralls github.com/golang/lint/golint 21 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/project/hooks/README.md: -------------------------------------------------------------------------------- 1 | Git Hooks 2 | ========= 3 | 4 | To enforce valid and properly-formatted code, there is CI in place which runs `gofmt`, `golint`, and `go vet` against code in the repository. 5 | 6 | As an aid to prevent committing invalid code in the first place, a git pre-commit hook has been added to the repository, found in [pre-commit](./pre-commit). As it is impossible to automatically add linked hooks to a git repository, this hook should be linked into your `.git/hooks/pre-commit`, which can be done by running the `configure-hooks.sh` script in this directory. This script is the preferred method of configuring hooks, as it will be updated as more are added. -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/project/hooks/configure-hooks.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | cd $(dirname $0) 4 | 5 | REPO_ROOT=$(git rev-parse --show-toplevel) 6 | RESOLVE_REPO_ROOT_STATUS=$? 7 | if [ "$RESOLVE_REPO_ROOT_STATUS" -ne "0" ]; then 8 | echo -e "Unable to resolve repository root. Error:\n$REPO_ROOT" > /dev/stderr 9 | exit $RESOLVE_REPO_ROOT_STATUS 10 | fi 11 | 12 | set -e 13 | set -x 14 | 15 | # Just in case the directory doesn't exist 16 | mkdir -p $REPO_ROOT/.git/hooks 17 | 18 | ln -f -s $(pwd)/pre-commit $REPO_ROOT/.git/hooks/pre-commit -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/api/v2/doc.go: -------------------------------------------------------------------------------- 1 | // Package v2 describes routes, urls and the error codes used in the Docker 2 | // Registry JSON HTTP API V2. In addition to declarations, descriptors are 3 | // provided for routes and error codes that can be used for implementation and 4 | // automatically generating documentation. 5 | // 6 | // Definitions here are considered to be locked down for the V2 registry api. 7 | // Any changes must be considered carefully and should not proceed without a 8 | // change proposal in docker core. 9 | package v2 10 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/doc.go: -------------------------------------------------------------------------------- 1 | // Package registry provides the main entrypoints for running a registry. 2 | package registry 3 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/handlers/basicauth.go: -------------------------------------------------------------------------------- 1 | // +build go1.4 2 | 3 | package handlers 4 | 5 | import ( 6 | "net/http" 7 | ) 8 | 9 | func basicAuth(r *http.Request) (username, password string, ok bool) { 10 | return r.BasicAuth() 11 | } 12 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/storage/blobwriter_nonresumable.go: -------------------------------------------------------------------------------- 1 | // +build noresumabledigest 2 | 3 | package storage 4 | 5 | import ( 6 | "github.com/docker/distribution/context" 7 | ) 8 | 9 | // resumeHashAt is a noop when resumable digest support is disabled. 10 | func (bw *blobWriter) resumeDigest(ctx context.Context) error { 11 | return errResumableDigestNotAvailable 12 | } 13 | 14 | // storeHashState is a noop when resumable digest support is disabled. 15 | func (bw *blobWriter) storeHashState(ctx context.Context) error { 16 | return errResumableDigestNotAvailable 17 | } 18 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/storage/cache/memory/memory_test.go: -------------------------------------------------------------------------------- 1 | package memory 2 | 3 | import ( 4 | "testing" 5 | 6 | "github.com/docker/distribution/registry/storage/cache/cachecheck" 7 | ) 8 | 9 | // TestInMemoryBlobInfoCache checks the in memory implementation is working 10 | // correctly. 11 | func TestInMemoryBlobInfoCache(t *testing.T) { 12 | cachecheck.CheckBlobDescriptorCache(t, NewInMemoryBlobDescriptorCacheProvider()) 13 | } 14 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/storage/digester_resumable_test.go: -------------------------------------------------------------------------------- 1 | // +build !noresumabledigest 2 | 3 | package storage 4 | 5 | import ( 6 | "testing" 7 | 8 | digest "github.com/opencontainers/go-digest" 9 | "github.com/stevvooe/resumable" 10 | _ "github.com/stevvooe/resumable/sha256" 11 | ) 12 | 13 | // TestResumableDetection just ensures that the resumable capability of a hash 14 | // is exposed through the digester type, which is just a hash plus a Digest 15 | // method. 16 | func TestResumableDetection(t *testing.T) { 17 | d := digest.Canonical.Digester() 18 | 19 | if _, ok := d.Hash().(resumable.Hash); !ok { 20 | t.Fatalf("expected digester to implement resumable.Hash: %#v, %v", d, d.Hash()) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/storage/doc.go: -------------------------------------------------------------------------------- 1 | // Package storage contains storage services for use in the registry 2 | // application. It should be considered an internal package, as of Go 1.4. 3 | package storage 4 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/storage/driver/gcs/doc.go: -------------------------------------------------------------------------------- 1 | // Package gcs implements the Google Cloud Storage driver backend. Support can be 2 | // enabled by including the "include_gcs" build tag. 3 | package gcs 4 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/storage/driver/inmemory/driver_test.go: -------------------------------------------------------------------------------- 1 | package inmemory 2 | 3 | import ( 4 | "testing" 5 | 6 | storagedriver "github.com/docker/distribution/registry/storage/driver" 7 | "github.com/docker/distribution/registry/storage/driver/testsuites" 8 | "gopkg.in/check.v1" 9 | ) 10 | 11 | // Hook up gocheck into the "go test" runner. 12 | func Test(t *testing.T) { check.TestingT(t) } 13 | 14 | func init() { 15 | inmemoryDriverConstructor := func() (storagedriver.StorageDriver, error) { 16 | return New(), nil 17 | } 18 | testsuites.RegisterSuite(inmemoryDriverConstructor, testsuites.NeverSkip) 19 | } 20 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/storage/driver/oss/doc.go: -------------------------------------------------------------------------------- 1 | // Package oss implements the Aliyun OSS Storage driver backend. Support can be 2 | // enabled by including the "include_oss" build tag. 3 | package oss 4 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/registry/storage/util.go: -------------------------------------------------------------------------------- 1 | package storage 2 | 3 | import ( 4 | "github.com/docker/distribution/context" 5 | "github.com/docker/distribution/registry/storage/driver" 6 | ) 7 | 8 | // Exists provides a utility method to test whether or not a path exists in 9 | // the given driver. 10 | func exists(ctx context.Context, drv driver.StorageDriver, path string) (bool, error) { 11 | if _, err := drv.Stat(ctx, path); err != nil { 12 | switch err := err.(type) { 13 | case driver.PathNotFoundError: 14 | return false, nil 15 | default: 16 | return false, err 17 | } 18 | } 19 | 20 | return true, nil 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/version/print.go: -------------------------------------------------------------------------------- 1 | package version 2 | 3 | import ( 4 | "fmt" 5 | "io" 6 | "os" 7 | ) 8 | 9 | // FprintVersion outputs the version string to the writer, in the following 10 | // format, followed by a newline: 11 | // 12 | // 13 | // 14 | // For example, a binary "registry" built from github.com/docker/distribution 15 | // with version "v2.0" would print the following: 16 | // 17 | // registry github.com/docker/distribution v2.0 18 | // 19 | func FprintVersion(w io.Writer) { 20 | fmt.Fprintln(w, os.Args[0], Package, Version) 21 | } 22 | 23 | // PrintVersion outputs the version information, from Fprint, to stdout. 24 | func PrintVersion() { 25 | FprintVersion(os.Stdout) 26 | } 27 | -------------------------------------------------------------------------------- /vendor/github.com/docker/distribution/version/version.go: -------------------------------------------------------------------------------- 1 | package version 2 | 3 | // Package is the overall, canonical project import path under which the 4 | // package was built. 5 | var Package = "github.com/docker/distribution" 6 | 7 | // Version indicates which version of the binary is running. This is set to 8 | // the latest release tag by hand, always suffixed by "+unknown". During 9 | // build, it will be replaced by the actual version. The value here will be 10 | // used if the registry is run after a go get based install. 11 | var Version = "v2.6.0+unknown" 12 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | language: go 3 | sudo: false 4 | notifications: 5 | email: false 6 | go: 7 | - 1.6 8 | install: make deps 9 | script: make validate && make test 10 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all deps test validate lint 2 | 3 | all: deps test validate 4 | 5 | deps: 6 | go get -t ./... 7 | go get -u github.com/golang/lint/golint 8 | 9 | test: 10 | go test -tags experimental -race -cover ./... 11 | 12 | validate: lint 13 | go vet ./... 14 | test -z "$(gofmt -s -l . | tee /dev/stderr)" 15 | 16 | lint: 17 | out="$$(golint ./...)"; \ 18 | if [ -n "$$(golint ./...)" ]; then \ 19 | echo "$$out"; \ 20 | exit 1; \ 21 | fi 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/checkpoint_create.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "github.com/docker/engine-api/types" 5 | "golang.org/x/net/context" 6 | ) 7 | 8 | // CheckpointCreate creates a checkpoint from the given container with the given name 9 | func (cli *Client) CheckpointCreate(ctx context.Context, container string, options types.CheckpointCreateOptions) error { 10 | resp, err := cli.post(ctx, "/containers/"+container+"/checkpoints", nil, options, nil) 11 | ensureReaderClosed(resp) 12 | return err 13 | } 14 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/checkpoint_delete.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "golang.org/x/net/context" 5 | ) 6 | 7 | // CheckpointDelete deletes the checkpoint with the given name from the given container 8 | func (cli *Client) CheckpointDelete(ctx context.Context, containerID string, checkpointID string) error { 9 | resp, err := cli.delete(ctx, "/containers/"+containerID+"/checkpoints/"+checkpointID, nil, nil) 10 | ensureReaderClosed(resp) 11 | return err 12 | } 13 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/checkpoint_list.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "github.com/docker/engine-api/types" 7 | "golang.org/x/net/context" 8 | ) 9 | 10 | // CheckpointList returns the volumes configured in the docker host. 11 | func (cli *Client) CheckpointList(ctx context.Context, container string) ([]types.Checkpoint, error) { 12 | var checkpoints []types.Checkpoint 13 | 14 | resp, err := cli.get(ctx, "/containers/"+container+"/checkpoints", nil, nil) 15 | if err != nil { 16 | return checkpoints, err 17 | } 18 | 19 | err = json.NewDecoder(resp.body).Decode(&checkpoints) 20 | ensureReaderClosed(resp) 21 | return checkpoints, err 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/client_darwin.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | // DefaultDockerHost defines os specific default if DOCKER_HOST is unset 4 | const DefaultDockerHost = "tcp://127.0.0.1:2375" 5 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/client_unix.go: -------------------------------------------------------------------------------- 1 | // +build linux freebsd solaris openbsd 2 | 3 | package client 4 | 5 | // DefaultDockerHost defines os specific default if DOCKER_HOST is unset 6 | const DefaultDockerHost = "unix:///var/run/docker.sock" 7 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/client_windows.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | // DefaultDockerHost defines os specific default if DOCKER_HOST is unset 4 | const DefaultDockerHost = "npipe:////./pipe/docker_engine" 5 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_diff.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "encoding/json" 5 | "net/url" 6 | 7 | "github.com/docker/engine-api/types" 8 | "golang.org/x/net/context" 9 | ) 10 | 11 | // ContainerDiff shows differences in a container filesystem since it was started. 12 | func (cli *Client) ContainerDiff(ctx context.Context, containerID string) ([]types.ContainerChange, error) { 13 | var changes []types.ContainerChange 14 | 15 | serverResp, err := cli.get(ctx, "/containers/"+containerID+"/changes", url.Values{}, nil) 16 | if err != nil { 17 | return changes, err 18 | } 19 | 20 | err = json.NewDecoder(serverResp.body).Decode(&changes) 21 | ensureReaderClosed(serverResp) 22 | return changes, err 23 | } 24 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_export.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "io" 5 | "net/url" 6 | 7 | "golang.org/x/net/context" 8 | ) 9 | 10 | // ContainerExport retrieves the raw contents of a container 11 | // and returns them as an io.ReadCloser. It's up to the caller 12 | // to close the stream. 13 | func (cli *Client) ContainerExport(ctx context.Context, containerID string) (io.ReadCloser, error) { 14 | serverResp, err := cli.get(ctx, "/containers/"+containerID+"/export", url.Values{}, nil) 15 | if err != nil { 16 | return nil, err 17 | } 18 | 19 | return serverResp.body, nil 20 | } 21 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_kill.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "net/url" 5 | 6 | "golang.org/x/net/context" 7 | ) 8 | 9 | // ContainerKill terminates the container process but does not remove the container from the docker host. 10 | func (cli *Client) ContainerKill(ctx context.Context, containerID, signal string) error { 11 | query := url.Values{} 12 | query.Set("signal", signal) 13 | 14 | resp, err := cli.post(ctx, "/containers/"+containerID+"/kill", query, nil, nil) 15 | ensureReaderClosed(resp) 16 | return err 17 | } 18 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_pause.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import "golang.org/x/net/context" 4 | 5 | // ContainerPause pauses the main process of a given container without terminating it. 6 | func (cli *Client) ContainerPause(ctx context.Context, containerID string) error { 7 | resp, err := cli.post(ctx, "/containers/"+containerID+"/pause", nil, nil, nil) 8 | ensureReaderClosed(resp) 9 | return err 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_remove.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "net/url" 5 | 6 | "github.com/docker/engine-api/types" 7 | "golang.org/x/net/context" 8 | ) 9 | 10 | // ContainerRemove kills and removes a container from the docker host. 11 | func (cli *Client) ContainerRemove(ctx context.Context, containerID string, options types.ContainerRemoveOptions) error { 12 | query := url.Values{} 13 | if options.RemoveVolumes { 14 | query.Set("v", "1") 15 | } 16 | if options.RemoveLinks { 17 | query.Set("link", "1") 18 | } 19 | 20 | if options.Force { 21 | query.Set("force", "1") 22 | } 23 | 24 | resp, err := cli.delete(ctx, "/containers/"+containerID, query, nil) 25 | ensureReaderClosed(resp) 26 | return err 27 | } 28 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_rename.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "net/url" 5 | 6 | "golang.org/x/net/context" 7 | ) 8 | 9 | // ContainerRename changes the name of a given container. 10 | func (cli *Client) ContainerRename(ctx context.Context, containerID, newContainerName string) error { 11 | query := url.Values{} 12 | query.Set("name", newContainerName) 13 | resp, err := cli.post(ctx, "/containers/"+containerID+"/rename", query, nil, nil) 14 | ensureReaderClosed(resp) 15 | return err 16 | } 17 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_restart.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "net/url" 5 | "time" 6 | 7 | timetypes "github.com/docker/engine-api/types/time" 8 | "golang.org/x/net/context" 9 | ) 10 | 11 | // ContainerRestart stops and starts a container again. 12 | // It makes the daemon to wait for the container to be up again for 13 | // a specific amount of time, given the timeout. 14 | func (cli *Client) ContainerRestart(ctx context.Context, containerID string, timeout *time.Duration) error { 15 | query := url.Values{} 16 | if timeout != nil { 17 | query.Set("t", timetypes.DurationToSecondsString(*timeout)) 18 | } 19 | resp, err := cli.post(ctx, "/containers/"+containerID+"/restart", query, nil, nil) 20 | ensureReaderClosed(resp) 21 | return err 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_start.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "net/url" 5 | 6 | "golang.org/x/net/context" 7 | 8 | "github.com/docker/engine-api/types" 9 | ) 10 | 11 | // ContainerStart sends a request to the docker daemon to start a container. 12 | func (cli *Client) ContainerStart(ctx context.Context, containerID string, options types.ContainerStartOptions) error { 13 | query := url.Values{} 14 | if len(options.CheckpointID) != 0 { 15 | query.Set("checkpoint", options.CheckpointID) 16 | } 17 | 18 | resp, err := cli.post(ctx, "/containers/"+containerID+"/start", query, nil, nil) 19 | ensureReaderClosed(resp) 20 | return err 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_stats.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "io" 5 | "net/url" 6 | 7 | "golang.org/x/net/context" 8 | ) 9 | 10 | // ContainerStats returns near realtime stats for a given container. 11 | // It's up to the caller to close the io.ReadCloser returned. 12 | func (cli *Client) ContainerStats(ctx context.Context, containerID string, stream bool) (io.ReadCloser, error) { 13 | query := url.Values{} 14 | query.Set("stream", "0") 15 | if stream { 16 | query.Set("stream", "1") 17 | } 18 | 19 | resp, err := cli.get(ctx, "/containers/"+containerID+"/stats", query, nil) 20 | if err != nil { 21 | return nil, err 22 | } 23 | return resp.body, err 24 | } 25 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_stop.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "net/url" 5 | "time" 6 | 7 | timetypes "github.com/docker/engine-api/types/time" 8 | "golang.org/x/net/context" 9 | ) 10 | 11 | // ContainerStop stops a container without terminating the process. 12 | // The process is blocked until the container stops or the timeout expires. 13 | func (cli *Client) ContainerStop(ctx context.Context, containerID string, timeout *time.Duration) error { 14 | query := url.Values{} 15 | if timeout != nil { 16 | query.Set("t", timetypes.DurationToSecondsString(*timeout)) 17 | } 18 | resp, err := cli.post(ctx, "/containers/"+containerID+"/stop", query, nil, nil) 19 | ensureReaderClosed(resp) 20 | return err 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_unpause.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import "golang.org/x/net/context" 4 | 5 | // ContainerUnpause resumes the process execution within a container 6 | func (cli *Client) ContainerUnpause(ctx context.Context, containerID string) error { 7 | resp, err := cli.post(ctx, "/containers/"+containerID+"/unpause", nil, nil, nil) 8 | ensureReaderClosed(resp) 9 | return err 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_update.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "github.com/docker/engine-api/types/container" 5 | "golang.org/x/net/context" 6 | ) 7 | 8 | // ContainerUpdate updates resources of a container 9 | func (cli *Client) ContainerUpdate(ctx context.Context, containerID string, updateConfig container.UpdateConfig) error { 10 | resp, err := cli.post(ctx, "/containers/"+containerID+"/update", nil, updateConfig, nil) 11 | ensureReaderClosed(resp) 12 | return err 13 | } 14 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/container_wait.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "golang.org/x/net/context" 7 | 8 | "github.com/docker/engine-api/types" 9 | ) 10 | 11 | // ContainerWait pauses execution until a container exits. 12 | // It returns the API status code as response of its readiness. 13 | func (cli *Client) ContainerWait(ctx context.Context, containerID string) (int, error) { 14 | resp, err := cli.post(ctx, "/containers/"+containerID+"/wait", nil, nil, nil) 15 | if err != nil { 16 | return -1, err 17 | } 18 | defer ensureReaderClosed(resp) 19 | 20 | var res types.ContainerWaitResponse 21 | if err := json.NewDecoder(resp.body).Decode(&res); err != nil { 22 | return -1, err 23 | } 24 | 25 | return res.StatusCode, nil 26 | } 27 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/image_history.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "encoding/json" 5 | "net/url" 6 | 7 | "github.com/docker/engine-api/types" 8 | "golang.org/x/net/context" 9 | ) 10 | 11 | // ImageHistory returns the changes in an image in history format. 12 | func (cli *Client) ImageHistory(ctx context.Context, imageID string) ([]types.ImageHistory, error) { 13 | var history []types.ImageHistory 14 | serverResp, err := cli.get(ctx, "/images/"+imageID+"/history", url.Values{}, nil) 15 | if err != nil { 16 | return history, err 17 | } 18 | 19 | err = json.NewDecoder(serverResp.body).Decode(&history) 20 | ensureReaderClosed(serverResp) 21 | return history, err 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/image_save.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "io" 5 | "net/url" 6 | 7 | "golang.org/x/net/context" 8 | ) 9 | 10 | // ImageSave retrieves one or more images from the docker host as an io.ReadCloser. 11 | // It's up to the caller to store the images and close the stream. 12 | func (cli *Client) ImageSave(ctx context.Context, imageIDs []string) (io.ReadCloser, error) { 13 | query := url.Values{ 14 | "names": imageIDs, 15 | } 16 | 17 | resp, err := cli.get(ctx, "/images/get", query, nil) 18 | if err != nil { 19 | return nil, err 20 | } 21 | return resp.body, nil 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/info.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "encoding/json" 5 | "fmt" 6 | "net/url" 7 | 8 | "github.com/docker/engine-api/types" 9 | "golang.org/x/net/context" 10 | ) 11 | 12 | // Info returns information about the docker server. 13 | func (cli *Client) Info(ctx context.Context) (types.Info, error) { 14 | var info types.Info 15 | serverResp, err := cli.get(ctx, "/info", url.Values{}, nil) 16 | if err != nil { 17 | return info, err 18 | } 19 | defer ensureReaderClosed(serverResp) 20 | 21 | if err := json.NewDecoder(serverResp.body).Decode(&info); err != nil { 22 | return info, fmt.Errorf("Error reading remote info: %v", err) 23 | } 24 | 25 | return info, nil 26 | } 27 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/interface_stable.go: -------------------------------------------------------------------------------- 1 | // +build !experimental 2 | 3 | package client 4 | 5 | // APIClient is an interface that clients that talk with a docker server must implement. 6 | type APIClient interface { 7 | CommonAPIClient 8 | } 9 | 10 | // Ensure that Client always implements APIClient. 11 | var _ APIClient = &Client{} 12 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/network_connect.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "github.com/docker/engine-api/types" 5 | "github.com/docker/engine-api/types/network" 6 | "golang.org/x/net/context" 7 | ) 8 | 9 | // NetworkConnect connects a container to an existent network in the docker host. 10 | func (cli *Client) NetworkConnect(ctx context.Context, networkID, containerID string, config *network.EndpointSettings) error { 11 | nc := types.NetworkConnect{ 12 | Container: containerID, 13 | EndpointConfig: config, 14 | } 15 | resp, err := cli.post(ctx, "/networks/"+networkID+"/connect", nil, nc, nil) 16 | ensureReaderClosed(resp) 17 | return err 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/network_disconnect.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "github.com/docker/engine-api/types" 5 | "golang.org/x/net/context" 6 | ) 7 | 8 | // NetworkDisconnect disconnects a container from an existent network in the docker host. 9 | func (cli *Client) NetworkDisconnect(ctx context.Context, networkID, containerID string, force bool) error { 10 | nd := types.NetworkDisconnect{Container: containerID, Force: force} 11 | resp, err := cli.post(ctx, "/networks/"+networkID+"/disconnect", nil, nd, nil) 12 | ensureReaderClosed(resp) 13 | return err 14 | } 15 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/network_remove.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import "golang.org/x/net/context" 4 | 5 | // NetworkRemove removes an existent network from the docker host. 6 | func (cli *Client) NetworkRemove(ctx context.Context, networkID string) error { 7 | resp, err := cli.delete(ctx, "/networks/"+networkID, nil, nil) 8 | ensureReaderClosed(resp) 9 | return err 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/node_remove.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import "golang.org/x/net/context" 4 | 5 | // NodeRemove removes a Node. 6 | func (cli *Client) NodeRemove(ctx context.Context, nodeID string) error { 7 | resp, err := cli.delete(ctx, "/nodes/"+nodeID, nil, nil) 8 | ensureReaderClosed(resp) 9 | return err 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/node_update.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "net/url" 5 | "strconv" 6 | 7 | "github.com/docker/engine-api/types/swarm" 8 | "golang.org/x/net/context" 9 | ) 10 | 11 | // NodeUpdate updates a Node. 12 | func (cli *Client) NodeUpdate(ctx context.Context, nodeID string, version swarm.Version, node swarm.NodeSpec) error { 13 | query := url.Values{} 14 | query.Set("version", strconv.FormatUint(version.Index, 10)) 15 | resp, err := cli.post(ctx, "/nodes/"+nodeID+"/update", query, node, nil) 16 | ensureReaderClosed(resp) 17 | return err 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/plugin_disable.go: -------------------------------------------------------------------------------- 1 | // +build experimental 2 | 3 | package client 4 | 5 | import ( 6 | "golang.org/x/net/context" 7 | ) 8 | 9 | // PluginDisable disables a plugin 10 | func (cli *Client) PluginDisable(ctx context.Context, name string) error { 11 | resp, err := cli.post(ctx, "/plugins/"+name+"/disable", nil, nil, nil) 12 | ensureReaderClosed(resp) 13 | return err 14 | } 15 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/plugin_enable.go: -------------------------------------------------------------------------------- 1 | // +build experimental 2 | 3 | package client 4 | 5 | import ( 6 | "golang.org/x/net/context" 7 | ) 8 | 9 | // PluginEnable enables a plugin 10 | func (cli *Client) PluginEnable(ctx context.Context, name string) error { 11 | resp, err := cli.post(ctx, "/plugins/"+name+"/enable", nil, nil, nil) 12 | ensureReaderClosed(resp) 13 | return err 14 | } 15 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/plugin_inspect.go: -------------------------------------------------------------------------------- 1 | // +build experimental 2 | 3 | package client 4 | 5 | import ( 6 | "encoding/json" 7 | 8 | "github.com/docker/engine-api/types" 9 | "golang.org/x/net/context" 10 | ) 11 | 12 | // PluginInspect inspects an existing plugin 13 | func (cli *Client) PluginInspect(ctx context.Context, name string) (*types.Plugin, error) { 14 | var p types.Plugin 15 | resp, err := cli.get(ctx, "/plugins/"+name, nil, nil) 16 | if err != nil { 17 | return nil, err 18 | } 19 | err = json.NewDecoder(resp.body).Decode(&p) 20 | ensureReaderClosed(resp) 21 | return &p, err 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/plugin_list.go: -------------------------------------------------------------------------------- 1 | // +build experimental 2 | 3 | package client 4 | 5 | import ( 6 | "encoding/json" 7 | 8 | "github.com/docker/engine-api/types" 9 | "golang.org/x/net/context" 10 | ) 11 | 12 | // PluginList returns the installed plugins 13 | func (cli *Client) PluginList(ctx context.Context) (types.PluginsListResponse, error) { 14 | var plugins types.PluginsListResponse 15 | resp, err := cli.get(ctx, "/plugins", nil, nil) 16 | if err != nil { 17 | return plugins, err 18 | } 19 | 20 | err = json.NewDecoder(resp.body).Decode(&plugins) 21 | ensureReaderClosed(resp) 22 | return plugins, err 23 | } 24 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/plugin_push.go: -------------------------------------------------------------------------------- 1 | // +build experimental 2 | 3 | package client 4 | 5 | import ( 6 | "golang.org/x/net/context" 7 | ) 8 | 9 | // PluginPush pushes a plugin to a registry 10 | func (cli *Client) PluginPush(ctx context.Context, name string, registryAuth string) error { 11 | headers := map[string][]string{"X-Registry-Auth": {registryAuth}} 12 | resp, err := cli.post(ctx, "/plugins/"+name+"/push", nil, nil, headers) 13 | ensureReaderClosed(resp) 14 | return err 15 | } 16 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/plugin_remove.go: -------------------------------------------------------------------------------- 1 | // +build experimental 2 | 3 | package client 4 | 5 | import ( 6 | "golang.org/x/net/context" 7 | ) 8 | 9 | // PluginRemove removes a plugin 10 | func (cli *Client) PluginRemove(ctx context.Context, name string) error { 11 | resp, err := cli.delete(ctx, "/plugins/"+name, nil, nil) 12 | ensureReaderClosed(resp) 13 | return err 14 | } 15 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/plugin_set.go: -------------------------------------------------------------------------------- 1 | // +build experimental 2 | 3 | package client 4 | 5 | import ( 6 | "golang.org/x/net/context" 7 | ) 8 | 9 | // PluginSet modifies settings for an existing plugin 10 | func (cli *Client) PluginSet(ctx context.Context, name string, args []string) error { 11 | resp, err := cli.post(ctx, "/plugins/"+name+"/set", nil, args, nil) 12 | ensureReaderClosed(resp) 13 | return err 14 | } 15 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/service_remove.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import "golang.org/x/net/context" 4 | 5 | // ServiceRemove kills and removes a service. 6 | func (cli *Client) ServiceRemove(ctx context.Context, serviceID string) error { 7 | resp, err := cli.delete(ctx, "/services/"+serviceID, nil, nil) 8 | ensureReaderClosed(resp) 9 | return err 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/swarm_init.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "github.com/docker/engine-api/types/swarm" 7 | "golang.org/x/net/context" 8 | ) 9 | 10 | // SwarmInit initializes the Swarm. 11 | func (cli *Client) SwarmInit(ctx context.Context, req swarm.InitRequest) (string, error) { 12 | serverResp, err := cli.post(ctx, "/swarm/init", nil, req, nil) 13 | if err != nil { 14 | return "", err 15 | } 16 | 17 | var response string 18 | err = json.NewDecoder(serverResp.body).Decode(&response) 19 | ensureReaderClosed(serverResp) 20 | return response, err 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/swarm_inspect.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "github.com/docker/engine-api/types/swarm" 7 | "golang.org/x/net/context" 8 | ) 9 | 10 | // SwarmInspect inspects the Swarm. 11 | func (cli *Client) SwarmInspect(ctx context.Context) (swarm.Swarm, error) { 12 | serverResp, err := cli.get(ctx, "/swarm", nil, nil) 13 | if err != nil { 14 | return swarm.Swarm{}, err 15 | } 16 | 17 | var response swarm.Swarm 18 | err = json.NewDecoder(serverResp.body).Decode(&response) 19 | ensureReaderClosed(serverResp) 20 | return response, err 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/swarm_join.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "github.com/docker/engine-api/types/swarm" 5 | "golang.org/x/net/context" 6 | ) 7 | 8 | // SwarmJoin joins the Swarm. 9 | func (cli *Client) SwarmJoin(ctx context.Context, req swarm.JoinRequest) error { 10 | resp, err := cli.post(ctx, "/swarm/join", nil, req, nil) 11 | ensureReaderClosed(resp) 12 | return err 13 | } 14 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/swarm_leave.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "net/url" 5 | 6 | "golang.org/x/net/context" 7 | ) 8 | 9 | // SwarmLeave leaves the Swarm. 10 | func (cli *Client) SwarmLeave(ctx context.Context, force bool) error { 11 | query := url.Values{} 12 | if force { 13 | query.Set("force", "1") 14 | } 15 | resp, err := cli.post(ctx, "/swarm/leave", query, nil, nil) 16 | ensureReaderClosed(resp) 17 | return err 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/swarm_update.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "fmt" 5 | "net/url" 6 | "strconv" 7 | 8 | "github.com/docker/engine-api/types/swarm" 9 | "golang.org/x/net/context" 10 | ) 11 | 12 | // SwarmUpdate updates the Swarm. 13 | func (cli *Client) SwarmUpdate(ctx context.Context, version swarm.Version, swarm swarm.Spec, flags swarm.UpdateFlags) error { 14 | query := url.Values{} 15 | query.Set("version", strconv.FormatUint(version.Index, 10)) 16 | query.Set("rotateWorkerToken", fmt.Sprintf("%v", flags.RotateWorkerToken)) 17 | query.Set("rotateManagerToken", fmt.Sprintf("%v", flags.RotateManagerToken)) 18 | resp, err := cli.post(ctx, "/swarm/update", query, swarm, nil) 19 | ensureReaderClosed(resp) 20 | return err 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/transport/cancellable/canceler.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.5 6 | 7 | package cancellable 8 | 9 | import ( 10 | "net/http" 11 | 12 | "github.com/docker/engine-api/client/transport" 13 | ) 14 | 15 | func canceler(client transport.Sender, req *http.Request) func() { 16 | // TODO(djd): Respect any existing value of req.Cancel. 17 | ch := make(chan struct{}) 18 | req.Cancel = ch 19 | 20 | return func() { 21 | close(ch) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/transport/cancellable/canceler_go14.go: -------------------------------------------------------------------------------- 1 | // Copyright 2015 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build !go1.5 6 | 7 | package cancellable 8 | 9 | import ( 10 | "net/http" 11 | 12 | "github.com/docker/engine-api/client/transport" 13 | ) 14 | 15 | type requestCanceler interface { 16 | CancelRequest(*http.Request) 17 | } 18 | 19 | func canceler(client transport.Sender, req *http.Request) func() { 20 | rc, ok := client.(requestCanceler) 21 | if !ok { 22 | return func() {} 23 | } 24 | return func() { 25 | rc.CancelRequest(req) 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/version.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "github.com/docker/engine-api/types" 7 | "golang.org/x/net/context" 8 | ) 9 | 10 | // ServerVersion returns information of the docker client and server host. 11 | func (cli *Client) ServerVersion(ctx context.Context) (types.Version, error) { 12 | resp, err := cli.get(ctx, "/version", nil, nil) 13 | if err != nil { 14 | return types.Version{}, err 15 | } 16 | 17 | var server types.Version 18 | err = json.NewDecoder(resp.body).Decode(&server) 19 | ensureReaderClosed(resp) 20 | return server, err 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/volume_create.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import ( 4 | "encoding/json" 5 | 6 | "github.com/docker/engine-api/types" 7 | "golang.org/x/net/context" 8 | ) 9 | 10 | // VolumeCreate creates a volume in the docker host. 11 | func (cli *Client) VolumeCreate(ctx context.Context, options types.VolumeCreateRequest) (types.Volume, error) { 12 | var volume types.Volume 13 | resp, err := cli.post(ctx, "/volumes/create", nil, options, nil) 14 | if err != nil { 15 | return volume, err 16 | } 17 | err = json.NewDecoder(resp.body).Decode(&volume) 18 | ensureReaderClosed(resp) 19 | return volume, err 20 | } 21 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/client/volume_remove.go: -------------------------------------------------------------------------------- 1 | package client 2 | 3 | import "golang.org/x/net/context" 4 | 5 | // VolumeRemove removes a volume from the docker host. 6 | func (cli *Client) VolumeRemove(ctx context.Context, volumeID string) error { 7 | resp, err := cli.delete(ctx, "/volumes/"+volumeID, nil, nil) 8 | ensureReaderClosed(resp) 9 | return err 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/types/blkiodev/blkio.go: -------------------------------------------------------------------------------- 1 | package blkiodev 2 | 3 | import "fmt" 4 | 5 | // WeightDevice is a structure that holds device:weight pair 6 | type WeightDevice struct { 7 | Path string 8 | Weight uint16 9 | } 10 | 11 | func (w *WeightDevice) String() string { 12 | return fmt.Sprintf("%s:%d", w.Path, w.Weight) 13 | } 14 | 15 | // ThrottleDevice is a structure that holds device:rate_per_second pair 16 | type ThrottleDevice struct { 17 | Path string 18 | Rate uint64 19 | } 20 | 21 | func (t *ThrottleDevice) String() string { 22 | return fmt.Sprintf("%s:%d", t.Path, t.Rate) 23 | } 24 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/types/errors.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | // ErrorResponse is the response body of API errors. 4 | type ErrorResponse struct { 5 | Message string `json:"message"` 6 | } 7 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/types/swarm/common.go: -------------------------------------------------------------------------------- 1 | package swarm 2 | 3 | import "time" 4 | 5 | // Version represent the internal object version. 6 | type Version struct { 7 | Index uint64 `json:",omitempty"` 8 | } 9 | 10 | // Meta is base object inherited by most of the other once. 11 | type Meta struct { 12 | Version Version `json:",omitempty"` 13 | CreatedAt time.Time `json:",omitempty"` 14 | UpdatedAt time.Time `json:",omitempty"` 15 | } 16 | 17 | // Annotations represents how to describe an object. 18 | type Annotations struct { 19 | Name string `json:",omitempty"` 20 | Labels map[string]string `json:",omitempty"` 21 | } 22 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/types/time/duration_convert.go: -------------------------------------------------------------------------------- 1 | package time 2 | 3 | import ( 4 | "strconv" 5 | "time" 6 | ) 7 | 8 | // DurationToSecondsString converts the specified duration to the number 9 | // seconds it represents, formatted as a string. 10 | func DurationToSecondsString(duration time.Duration) string { 11 | return strconv.FormatFloat(duration.Seconds(), 'f', 0, 64) 12 | } 13 | -------------------------------------------------------------------------------- /vendor/github.com/docker/engine-api/types/time/duration_convert_test.go: -------------------------------------------------------------------------------- 1 | package time 2 | 3 | import ( 4 | "testing" 5 | "time" 6 | ) 7 | 8 | func TestDurationToSecondsString(t *testing.T) { 9 | cases := []struct { 10 | in time.Duration 11 | expected string 12 | }{ 13 | {0 * time.Second, "0"}, 14 | {1 * time.Second, "1"}, 15 | {1 * time.Minute, "60"}, 16 | {24 * time.Hour, "86400"}, 17 | } 18 | 19 | for _, c := range cases { 20 | s := DurationToSecondsString(c.in) 21 | if s != c.expected { 22 | t.Errorf("wrong value for input `%v`: expected `%s`, got `%s`", c.in, c.expected, s) 23 | t.Fail() 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/README.md: -------------------------------------------------------------------------------- 1 | [![GoDoc](https://godoc.org/github.com/docker/go-connections?status.svg)](https://godoc.org/github.com/docker/go-connections) 2 | 3 | # Introduction 4 | 5 | go-connections provides common package to work with network connections. 6 | 7 | ## Usage 8 | 9 | See the [docs in godoc](https://godoc.org/github.com/docker/go-connections) for examples and documentation. 10 | 11 | ## License 12 | 13 | go-connections is licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for the full license text. 14 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/circle.yml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | pre: 3 | # setup ipv6 4 | - sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0 net.ipv6.conf.default.disable_ipv6=0 net.ipv6.conf.all.disable_ipv6=0 5 | post: 6 | # install golint 7 | - go get github.com/golang/lint/golint 8 | 9 | test: 10 | pre: 11 | # run analysis before tests 12 | - go vet ./... 13 | - test -z "$(golint ./... | tee /dev/stderr)" 14 | - test -z "$(gofmt -s -l . | tee /dev/stderr)" 15 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/doc.go: -------------------------------------------------------------------------------- 1 | // Package connections provides libraries to work with network connections. 2 | // This library is divided in several components for specific usage. 3 | package connections 4 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/proxy/logger.go: -------------------------------------------------------------------------------- 1 | package proxy 2 | 3 | type logger interface { 4 | Printf(format string, args ...interface{}) 5 | } 6 | 7 | type noopLogger struct{} 8 | 9 | func (l *noopLogger) Printf(_ string, _ ...interface{}) { 10 | // Do nothing :) 11 | } 12 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/sockets/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infobloxopen/docker-infoblox/b7529e52705380cbfc713a836ecf43cf3c74bd50/vendor/github.com/docker/go-connections/sockets/README.md -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/sockets/sockets_windows.go: -------------------------------------------------------------------------------- 1 | package sockets 2 | 3 | import ( 4 | "net" 5 | "net/http" 6 | "time" 7 | 8 | "github.com/Microsoft/go-winio" 9 | ) 10 | 11 | func configureUnixTransport(tr *http.Transport, proto, addr string) error { 12 | return ErrProtocolNotAvailable 13 | } 14 | 15 | func configureNpipeTransport(tr *http.Transport, proto, addr string) error { 16 | // No need for compression in local communications. 17 | tr.DisableCompression = true 18 | tr.Dial = func(_, _ string) (net.Conn, error) { 19 | return DialPipe(addr, defaultTimeout) 20 | } 21 | return nil 22 | } 23 | 24 | // DialPipe connects to a Windows named pipe. 25 | func DialPipe(addr string, timeout time.Duration) (net.Conn, error) { 26 | return winio.DialPipe(addr, &timeout) 27 | } 28 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/sockets/tcp_socket.go: -------------------------------------------------------------------------------- 1 | // Package sockets provides helper functions to create and configure Unix or TCP sockets. 2 | package sockets 3 | 4 | import ( 5 | "crypto/tls" 6 | "net" 7 | ) 8 | 9 | // NewTCPSocket creates a TCP socket listener with the specified address and 10 | // the specified tls configuration. If TLSConfig is set, will encapsulate the 11 | // TCP listener inside a TLS one. 12 | func NewTCPSocket(addr string, tlsConfig *tls.Config) (net.Listener, error) { 13 | l, err := net.Listen("tcp", addr) 14 | if err != nil { 15 | return nil, err 16 | } 17 | if tlsConfig != nil { 18 | tlsConfig.NextProtos = []string{"http/1.1"} 19 | l = tls.NewListener(l, tlsConfig) 20 | } 21 | return l, nil 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/sockets/unix_socket.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | 3 | package sockets 4 | 5 | import ( 6 | "net" 7 | "os" 8 | "syscall" 9 | ) 10 | 11 | // NewUnixSocket creates a unix socket with the specified path and group. 12 | func NewUnixSocket(path string, gid int) (net.Listener, error) { 13 | if err := syscall.Unlink(path); err != nil && !os.IsNotExist(err) { 14 | return nil, err 15 | } 16 | mask := syscall.Umask(0777) 17 | defer syscall.Umask(mask) 18 | 19 | l, err := net.Listen("unix", path) 20 | if err != nil { 21 | return nil, err 22 | } 23 | if err := os.Chown(path, 0, gid); err != nil { 24 | l.Close() 25 | return nil, err 26 | } 27 | if err := os.Chmod(path, 0660); err != nil { 28 | l.Close() 29 | return nil, err 30 | } 31 | return l, nil 32 | } 33 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/tlsconfig/certpool_go17.go: -------------------------------------------------------------------------------- 1 | // +build go1.7 2 | 3 | package tlsconfig 4 | 5 | import ( 6 | "crypto/x509" 7 | "runtime" 8 | ) 9 | 10 | // SystemCertPool returns a copy of the system cert pool, 11 | // returns an error if failed to load or empty pool on windows. 12 | func SystemCertPool() (*x509.CertPool, error) { 13 | certpool, err := x509.SystemCertPool() 14 | if err != nil && runtime.GOOS == "windows" { 15 | return x509.NewCertPool(), nil 16 | } 17 | return certpool, err 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/tlsconfig/certpool_other.go: -------------------------------------------------------------------------------- 1 | // +build !go1.7 2 | 3 | package tlsconfig 4 | 5 | import ( 6 | "crypto/x509" 7 | 8 | ) 9 | 10 | // SystemCertPool returns an new empty cert pool, 11 | // accessing system cert pool is supported in go 1.7 12 | func SystemCertPool() (*x509.CertPool, error) { 13 | return x509.NewCertPool(), nil 14 | } 15 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/tlsconfig/config_client_ciphers.go: -------------------------------------------------------------------------------- 1 | // +build go1.5 2 | 3 | // Package tlsconfig provides primitives to retrieve secure-enough TLS configurations for both clients and servers. 4 | // 5 | package tlsconfig 6 | 7 | import ( 8 | "crypto/tls" 9 | ) 10 | 11 | // Client TLS cipher suites (dropping CBC ciphers for client preferred suite set) 12 | var clientCipherSuites = []uint16{ 13 | tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, 14 | tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, 15 | tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 16 | tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 17 | } 18 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-connections/tlsconfig/config_legacy_client_ciphers.go: -------------------------------------------------------------------------------- 1 | // +build !go1.5 2 | 3 | // Package tlsconfig provides primitives to retrieve secure-enough TLS configurations for both clients and servers. 4 | // 5 | package tlsconfig 6 | 7 | import ( 8 | "crypto/tls" 9 | ) 10 | 11 | // Client TLS cipher suites (dropping CBC ciphers for client preferred suite set) 12 | var clientCipherSuites = []uint16{ 13 | tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 14 | tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 15 | } 16 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-plugins-helpers/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *.prof 25 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-plugins-helpers/.travis.yml: -------------------------------------------------------------------------------- 1 | --- 2 | sudo: required 3 | services: 4 | - docker 5 | notifications: 6 | email: false 7 | script: 8 | - make test 9 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-plugins-helpers/Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: all test test-local install-deps lint fmt vet 2 | 3 | REPO_NAME = go-plugins-helpers 4 | REPO_OWNER = docker 5 | PKG_NAME = github.com/${REPO_OWNER}/${REPO_NAME} 6 | IMAGE = golang:1.7 7 | 8 | all: test 9 | 10 | test-local: install-deps fmt lint vet 11 | @echo "+ $@" 12 | @go test -v ./... 13 | 14 | test: 15 | @docker run -v ${shell pwd}:/go/src/${PKG_NAME} -w /go/src/${PKG_NAME} ${IMAGE} make test-local 16 | 17 | install-deps: 18 | @echo "+ $@" 19 | @go get -u github.com/golang/lint/golint 20 | @go get -d ./... 21 | 22 | lint: 23 | @echo "+ $@" 24 | @test -z "$$(golint ./... | tee /dev/stderr)" 25 | 26 | fmt: 27 | @echo "+ $@" 28 | @test -z "$$(gofmt -s -l . | tee /dev/stderr)" 29 | 30 | vet: 31 | @echo "+ $@" 32 | @go vet ./... 33 | 34 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-plugins-helpers/NOTICE: -------------------------------------------------------------------------------- 1 | Docker 2 | Copyright 2012-2015 Docker, Inc. 3 | 4 | This product includes software developed at Docker, Inc. (https://www.docker.com). 5 | 6 | This product contains software (https://github.com/kr/pty) developed 7 | by Keith Rarick, licensed under the MIT License. 8 | 9 | The following is courtesy of our legal counsel: 10 | 11 | 12 | Use and transfer of Docker may be subject to certain restrictions by the 13 | United States and other governments. 14 | It is your responsibility to ensure that your use and/or transfer does not 15 | violate applicable laws. 16 | 17 | For more information, please see https://www.bis.doc.gov 18 | 19 | See also https://www.apache.org/dev/crypto.html and/or seek legal counsel. 20 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-plugins-helpers/graphdriver/README.md: -------------------------------------------------------------------------------- 1 | # Docker volume extension api. 2 | 3 | Go handler to create external graphdriver extensions for Docker. 4 | 5 | ## Usage 6 | 7 | This library is designed to be integrated in your program. 8 | 9 | 1. Implement the `graphdriver.Driver` interface. 10 | 2. Initialize a `graphdriver.Handler` with your implementation. 11 | 3. Call either `ServeTCP` or `ServeUnix` from the `graphdriver.Handler`. 12 | 13 | ### Example using TCP sockets: 14 | 15 | ```go 16 | d := MyGraphDriver{} 17 | h := graphdriver.NewHandler(d) 18 | h.ServeTCP("test_graph", ":8080") 19 | ``` 20 | 21 | ### Example using Unix sockets: 22 | 23 | ```go 24 | d := MyGraphDriver{} 25 | h := graphdriver.NewHandler(d) 26 | h.ServeUnix("root", "test_graph") 27 | ``` 28 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-plugins-helpers/sdk/pool.go: -------------------------------------------------------------------------------- 1 | package sdk 2 | 3 | import ( 4 | "io" 5 | "sync" 6 | ) 7 | 8 | const buffer32K = 32 * 1024 9 | 10 | var buffer32KPool = &sync.Pool{New: func() interface{} { return make([]byte, buffer32K) }} 11 | 12 | // copyBuf uses a shared buffer pool with io.CopyBuffer 13 | func copyBuf(w io.Writer, r io.Reader) (int64, error) { 14 | buf := buffer32KPool.Get().([]byte) 15 | written, err := io.CopyBuffer(w, r, buf) 16 | buffer32KPool.Put(buf) 17 | return written, err 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-plugins-helpers/sdk/sdk_test.go: -------------------------------------------------------------------------------- 1 | package sdk 2 | 3 | import "testing" 4 | 5 | func TestTrue(t *testing.T) { 6 | // FIXME: Add tests 7 | } 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-plugins-helpers/sdk/unix_listener_nosystemd.go: -------------------------------------------------------------------------------- 1 | // +build linux freebsd 2 | // +build nosystemd 3 | 4 | package sdk 5 | 6 | import "net" 7 | 8 | func setupSocketActivation() (net.Listener, error) { 9 | return nil, nil 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-plugins-helpers/sdk/unix_listener_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux,!freebsd 2 | 3 | package sdk 4 | 5 | import ( 6 | "errors" 7 | "net" 8 | ) 9 | 10 | var ( 11 | errOnlySupportedOnLinuxAndFreeBSD = errors.New("unix socket creation is only supported on linux and freebsd") 12 | ) 13 | 14 | func newUnixListener(pluginName string, gid int) (net.Listener, string, error) { 15 | return nil, "", errOnlySupportedOnLinuxAndFreeBSD 16 | } 17 | -------------------------------------------------------------------------------- /vendor/github.com/docker/go-units/circle.yml: -------------------------------------------------------------------------------- 1 | dependencies: 2 | post: 3 | # install golint 4 | - go get github.com/golang/lint/golint 5 | 6 | test: 7 | pre: 8 | # run analysis before tests 9 | - go vet ./... 10 | - test -z "$(golint ./... | tee /dev/stderr)" 11 | - test -z "$(gofmt -s -l . | tee /dev/stderr)" 12 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | bin/ 6 | 7 | # Folders 8 | integration-tmp/ 9 | _obj 10 | _test 11 | .vagrant 12 | 13 | 14 | # Architecture specific extensions/prefixes 15 | *.[568vq] 16 | [568vq].out 17 | 18 | *.cgo1.go 19 | *.cgo2.c 20 | _cgo_defun.c 21 | _cgo_gotypes.go 22 | _cgo_export.* 23 | 24 | _testmain.go 25 | 26 | *.exe 27 | *.test 28 | *.prof 29 | cmd/dnet/dnet 30 | 31 | # Coverage 32 | *.tmp 33 | *.coverprofile 34 | 35 | # IDE files and folders 36 | .project 37 | .settings/ 38 | 39 | libnetworkbuild.created 40 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/Dockerfile.build: -------------------------------------------------------------------------------- 1 | FROM golang:1.5.3 2 | RUN apt-get update && apt-get -y install iptables 3 | 4 | RUN go get github.com/tools/godep \ 5 | github.com/golang/lint/golint \ 6 | golang.org/x/tools/cmd/cover\ 7 | github.com/mattn/goveralls 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/Godeps/Readme: -------------------------------------------------------------------------------- 1 | This directory tree is generated automatically by godep. 2 | 3 | Please do not edit. 4 | 5 | See https://github.com/tools/godep for more information. 6 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/circle.yml: -------------------------------------------------------------------------------- 1 | machine: 2 | services: 3 | - docker 4 | 5 | dependencies: 6 | override: 7 | - sudo apt-get update; sudo apt-get install -y iptables zookeeperd 8 | - go get golang.org/x/tools/cmd/vet 9 | - go get golang.org/x/tools/cmd/goimports 10 | - go get golang.org/x/tools/cmd/cover 11 | - go get github.com/tools/godep 12 | - go get github.com/golang/lint/golint 13 | - go get github.com/mattn/goveralls 14 | 15 | test: 16 | override: 17 | - make circle-ci 18 | 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/cmd/dnet/dnet_linux.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "os" 5 | "os/signal" 6 | "syscall" 7 | 8 | psignal "github.com/docker/docker/pkg/signal" 9 | ) 10 | 11 | func setupDumpStackTrap() { 12 | c := make(chan os.Signal, 1) 13 | signal.Notify(c, syscall.SIGUSR1) 14 | go func() { 15 | for range c { 16 | psignal.DumpStacks() 17 | } 18 | }() 19 | } 20 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/cmd/dnet/dnet_windows.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | "syscall" 7 | 8 | "github.com/Sirupsen/logrus" 9 | "github.com/docker/docker/pkg/signal" 10 | "github.com/docker/docker/pkg/system" 11 | ) 12 | 13 | // Copied over from docker/daemon/debugtrap_windows.go 14 | func setupDumpStackTrap() { 15 | go func() { 16 | sa := syscall.SecurityAttributes{ 17 | Length: 0, 18 | } 19 | ev := "Global\\docker-daemon-" + fmt.Sprint(os.Getpid()) 20 | if h, _ := system.CreateEvent(&sa, false, false, ev); h != 0 { 21 | logrus.Debugf("Stackdump - waiting signal at %s", ev) 22 | for { 23 | syscall.WaitForSingleObject(h, syscall.INFINITE) 24 | signal.DumpStacks() 25 | } 26 | } 27 | }() 28 | } 29 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/cmd/dnet/libnetwork.toml: -------------------------------------------------------------------------------- 1 | title = "LibNetwork Configuration file" 2 | 3 | [daemon] 4 | debug = false 5 | [cluster] 6 | discovery = "consul://localhost:8500" 7 | Address = "1.1.1.1" 8 | Heartbeat = 20 9 | [datastore] 10 | embedded = false 11 | [datastore.client] 12 | provider = "consul" 13 | Address = "localhost:8500" 14 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/config/libnetwork.toml: -------------------------------------------------------------------------------- 1 | title = "LibNetwork Configuration file" 2 | 3 | [daemon] 4 | debug = false 5 | [cluster] 6 | discovery = "token://swarm-discovery-token" 7 | Address = "Cluster-wide reachable Host IP" 8 | [datastore] 9 | embedded = false 10 | [datastore.client] 11 | provider = "consul" 12 | Address = "localhost:8500" 13 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/default_gateway_freebsd.go: -------------------------------------------------------------------------------- 1 | package libnetwork 2 | 3 | import "github.com/docker/libnetwork/types" 4 | 5 | func (c *controller) createGWNetwork() (Network, error) { 6 | return nil, types.NotImplementedErrorf("default gateway functionality is not implemented in freebsd") 7 | } 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/default_gateway_linux.go: -------------------------------------------------------------------------------- 1 | package libnetwork 2 | 3 | import ( 4 | "fmt" 5 | "strconv" 6 | 7 | "github.com/docker/libnetwork/drivers/bridge" 8 | ) 9 | 10 | func (c *controller) createGWNetwork() (Network, error) { 11 | netOption := map[string]string{ 12 | bridge.BridgeName: libnGWNetwork, 13 | bridge.EnableICC: strconv.FormatBool(false), 14 | bridge.EnableIPMasquerade: strconv.FormatBool(true), 15 | } 16 | 17 | n, err := c.NewNetwork("bridge", libnGWNetwork, "", 18 | NetworkOptionDriverOpts(netOption), 19 | NetworkOptionEnableIPv6(false), 20 | ) 21 | 22 | if err != nil { 23 | return nil, fmt.Errorf("error creating external connectivity network: %v", err) 24 | } 25 | return n, err 26 | } 27 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/default_gateway_solaris.go: -------------------------------------------------------------------------------- 1 | package libnetwork 2 | 3 | import "github.com/docker/libnetwork/types" 4 | 5 | func (c *controller) createGWNetwork() (Network, error) { 6 | return nil, types.NotImplementedErrorf("default gateway functionality is not implemented in solaris") 7 | } 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/default_gateway_windows.go: -------------------------------------------------------------------------------- 1 | package libnetwork 2 | 3 | import "github.com/docker/libnetwork/types" 4 | 5 | func (c *controller) createGWNetwork() (Network, error) { 6 | return nil, types.NotImplementedErrorf("default gateway functionality is not implemented in windows") 7 | } 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/docs/bridge.md: -------------------------------------------------------------------------------- 1 | Bridge Driver 2 | ============= 3 | 4 | The bridge driver is an implementation that uses Linux Bridging and iptables to provide connectivity for containers 5 | It creates a single bridge, called `docker0` by default, and attaches a `veth pair` between the bridge and every endpoint. 6 | 7 | ## Configuration 8 | 9 | The bridge driver supports configuration through the Docker Daemon flags. 10 | 11 | ## Usage 12 | 13 | This driver is supported for the default "bridge" network only and it cannot be used for any other networks. 14 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/docs/cnm-model.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infobloxopen/docker-infoblox/b7529e52705380cbfc713a836ecf43cf3c74bd50/vendor/github.com/docker/libnetwork/docs/cnm-model.jpg -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/docs/vagrant-systemd/docker.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Docker Application Container Engine 3 | Documentation=https://docs.docker.com 4 | After=network.target docker.socket 5 | Requires=docker.socket 6 | 7 | [Service] 8 | EnvironmentFile=-/etc/default/docker 9 | ExecStart=/usr/bin/docker daemon -H fd:// $DOCKER_OPTS 10 | MountFlags=slave 11 | LimitNOFILE=1048576 12 | LimitNPROC=1048576 13 | LimitCORE=infinity 14 | 15 | [Install] 16 | WantedBy=multi-user.target 17 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers/bridge/labels.go: -------------------------------------------------------------------------------- 1 | package bridge 2 | 3 | const ( 4 | // BridgeName label for bridge driver 5 | BridgeName = "com.docker.network.bridge.name" 6 | 7 | // EnableIPMasquerade label for bridge driver 8 | EnableIPMasquerade = "com.docker.network.bridge.enable_ip_masquerade" 9 | 10 | // EnableICC label 11 | EnableICC = "com.docker.network.bridge.enable_icc" 12 | 13 | // DefaultBindingIP label 14 | DefaultBindingIP = "com.docker.network.bridge.host_binding_ipv4" 15 | 16 | // DefaultBridge label 17 | DefaultBridge = "com.docker.network.bridge.default_bridge" 18 | ) 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers/bridge/netlink_deprecated_linux_armppc64.go: -------------------------------------------------------------------------------- 1 | // +build arm ppc64 ppc64le 2 | 3 | package bridge 4 | 5 | func ifrDataByte(b byte) uint8 { 6 | return uint8(b) 7 | } 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers/bridge/netlink_deprecated_linux_notarm.go: -------------------------------------------------------------------------------- 1 | // +build !arm,!ppc64,!ppc64le 2 | 3 | package bridge 4 | 5 | func ifrDataByte(b byte) int8 { 6 | return int8(b) 7 | } 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers/bridge/netlink_deprecated_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package bridge 4 | 5 | import ( 6 | "errors" 7 | "net" 8 | ) 9 | 10 | // Add a slave to a bridge device. This is more backward-compatible than 11 | // netlink.NetworkSetMaster and works on RHEL 6. 12 | func ioctlAddToBridge(iface, master *net.Interface) error { 13 | return errors.New("not implemented") 14 | } 15 | 16 | func ioctlCreateBridge(name string, setMacAddr bool) error { 17 | return errors.New("not implemented") 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers/bridge/setup.go: -------------------------------------------------------------------------------- 1 | package bridge 2 | 3 | type setupStep func(*networkConfiguration, *bridgeInterface) error 4 | 5 | type bridgeSetup struct { 6 | config *networkConfiguration 7 | bridge *bridgeInterface 8 | steps []setupStep 9 | } 10 | 11 | func newBridgeSetup(c *networkConfiguration, i *bridgeInterface) *bridgeSetup { 12 | return &bridgeSetup{config: c, bridge: i} 13 | } 14 | 15 | func (b *bridgeSetup) apply() error { 16 | for _, fn := range b.steps { 17 | if err := fn(b.config, b.bridge); err != nil { 18 | return err 19 | } 20 | } 21 | return nil 22 | } 23 | 24 | func (b *bridgeSetup) queueStep(step setupStep) { 25 | b.steps = append(b.steps, step) 26 | } 27 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers/bridge/setup_bridgenetfiltering_test.go: -------------------------------------------------------------------------------- 1 | package bridge 2 | 3 | import "testing" 4 | 5 | func TestIPConstantValues(t *testing.T) { 6 | if ipv4|ipv6 != ipvboth { 7 | t.Fatalf("bitwise or of ipv4(%04b) and ipv6(%04b) must yield ipvboth(%04b)", ipv4, ipv6, ipvboth) 8 | } 9 | if ipvboth&(^(ipv4 | ipv6)) != ipvnone { 10 | t.Fatalf("ipvboth(%04b) with unset ipv4(%04b) and ipv6(%04b) bits shall equal to ipvnone", ipvboth, ipv4, ipv6) 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers/bridge/setup_firewalld.go: -------------------------------------------------------------------------------- 1 | package bridge 2 | 3 | import "github.com/docker/libnetwork/iptables" 4 | 5 | func (n *bridgeNetwork) setupFirewalld(config *networkConfiguration, i *bridgeInterface) error { 6 | d := n.driver 7 | d.Lock() 8 | driverConfig := d.config 9 | d.Unlock() 10 | 11 | // Sanity check. 12 | if driverConfig.EnableIPTables == false { 13 | return IPTableCfgError(config.BridgeName) 14 | } 15 | 16 | iptables.OnReloaded(func() { n.setupIPTables(config, i) }) 17 | iptables.OnReloaded(n.portMapper.ReMapAll) 18 | 19 | return nil 20 | } 21 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers/windows/labels.go: -------------------------------------------------------------------------------- 1 | package windows 2 | 3 | const ( 4 | // NetworkName label for bridge driver 5 | NetworkName = "com.docker.network.windowsshim.networkname" 6 | 7 | // HNSID of the discovered network 8 | HNSID = "com.docker.network.windowsshim.hnsid" 9 | 10 | // RoutingDomain of the network 11 | RoutingDomain = "com.docker.network.windowsshim.routingdomain" 12 | 13 | // Interface of the network 14 | Interface = "com.docker.network.windowsshim.interface" 15 | 16 | // QosPolicies of the endpoint 17 | QosPolicies = "com.docker.endpoint.windowsshim.qospolicies" 18 | ) 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers_experimental_linux.go: -------------------------------------------------------------------------------- 1 | // +build experimental 2 | 3 | package libnetwork 4 | 5 | import ( 6 | "github.com/docker/libnetwork/drivers/ipvlan" 7 | "github.com/docker/libnetwork/drivers/macvlan" 8 | ) 9 | 10 | func additionalDrivers() []initializer { 11 | return []initializer{ 12 | {macvlan.Init, "macvlan"}, 13 | {ipvlan.Init, "ipvlan"}, 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers_freebsd.go: -------------------------------------------------------------------------------- 1 | package libnetwork 2 | 3 | import ( 4 | "github.com/docker/libnetwork/drivers/null" 5 | "github.com/docker/libnetwork/drivers/remote" 6 | ) 7 | 8 | func getInitializers() []initializer { 9 | return []initializer{ 10 | {null.Init, "null"}, 11 | {remote.Init, "remote"}, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers_linux.go: -------------------------------------------------------------------------------- 1 | package libnetwork 2 | 3 | import ( 4 | "github.com/docker/libnetwork/drivers/bridge" 5 | "github.com/docker/libnetwork/drivers/host" 6 | "github.com/docker/libnetwork/drivers/null" 7 | "github.com/docker/libnetwork/drivers/overlay" 8 | "github.com/docker/libnetwork/drivers/remote" 9 | ) 10 | 11 | func getInitializers() []initializer { 12 | in := []initializer{ 13 | {bridge.Init, "bridge"}, 14 | {host.Init, "host"}, 15 | {null.Init, "null"}, 16 | {remote.Init, "remote"}, 17 | {overlay.Init, "overlay"}, 18 | } 19 | 20 | in = append(in, additionalDrivers()...) 21 | return in 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers_solaris.go: -------------------------------------------------------------------------------- 1 | package libnetwork 2 | 3 | func getInitializers() []initializer { 4 | return []initializer{} 5 | } 6 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers_stub_linux.go: -------------------------------------------------------------------------------- 1 | // +build !experimental 2 | 3 | package libnetwork 4 | 5 | func additionalDrivers() []initializer { 6 | return nil 7 | } 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/drivers_windows.go: -------------------------------------------------------------------------------- 1 | package libnetwork 2 | 3 | import ( 4 | "github.com/docker/libnetwork/drivers/null" 5 | "github.com/docker/libnetwork/drivers/windows" 6 | ) 7 | 8 | func getInitializers() []initializer { 9 | return []initializer{ 10 | {null.Init, "null"}, 11 | {windows.GetInit("transparent"), "transparent"}, 12 | {windows.GetInit("l2bridge"), "l2bridge"}, 13 | {windows.GetInit("l2tunnel"), "l2tunnel"}, 14 | {windows.GetInit("nat"), "nat"}, 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/hostdiscovery/libnetwork.toml: -------------------------------------------------------------------------------- 1 | title = "LibNetwork Configuration file" 2 | 3 | [cluster] 4 | discovery = "consul://localhost:8500" 5 | Address = "6.5.5.5" 6 | Heartbeat = 3 7 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/ipams/builtin/builtin_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package builtin 4 | 5 | import ( 6 | "github.com/docker/libnetwork/ipamapi" 7 | 8 | windowsipam "github.com/docker/libnetwork/ipams/windowsipam" 9 | ) 10 | 11 | // Init registers the built-in ipam service with libnetwork 12 | func Init(ic ipamapi.Callback, l, g interface{}) error { 13 | initFunc := windowsipam.GetInit(ipamapi.DefaultIPAM) 14 | 15 | return initFunc(ic, l, g) 16 | } 17 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/ipamutils/utils_test.go: -------------------------------------------------------------------------------- 1 | package ipamutils 2 | 3 | import ( 4 | "testing" 5 | 6 | _ "github.com/docker/libnetwork/testutils" 7 | ) 8 | 9 | func init() { 10 | InitNetworks() 11 | } 12 | 13 | func TestGranularPredefined(t *testing.T) { 14 | for _, nw := range PredefinedGranularNetworks { 15 | if ones, bits := nw.Mask.Size(); bits != 32 || ones != 24 { 16 | t.Fatalf("Unexpected size for network in granular list: %v", nw) 17 | } 18 | } 19 | 20 | for _, nw := range PredefinedBroadNetworks { 21 | if ones, bits := nw.Mask.Size(); bits != 32 || (ones != 20 && ones != 16) { 22 | t.Fatalf("Unexpected size for network in broad list: %v", nw) 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/networkdb/event_delegate.go: -------------------------------------------------------------------------------- 1 | package networkdb 2 | 3 | import "github.com/hashicorp/memberlist" 4 | 5 | type eventDelegate struct { 6 | nDB *NetworkDB 7 | } 8 | 9 | func (e *eventDelegate) NotifyJoin(n *memberlist.Node) { 10 | e.nDB.Lock() 11 | e.nDB.nodes[n.Name] = n 12 | e.nDB.Unlock() 13 | } 14 | 15 | func (e *eventDelegate) NotifyLeave(n *memberlist.Node) { 16 | e.nDB.deleteNodeTableEntries(n.Name) 17 | e.nDB.Lock() 18 | delete(e.nDB.nodes, n.Name) 19 | e.nDB.Unlock() 20 | } 21 | 22 | func (e *eventDelegate) NotifyUpdate(n *memberlist.Node) { 23 | } 24 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/osl/interface_freebsd.go: -------------------------------------------------------------------------------- 1 | package osl 2 | 3 | // IfaceOption is a function option type to set interface options 4 | type IfaceOption func() 5 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/osl/interface_solaris.go: -------------------------------------------------------------------------------- 1 | package osl 2 | 3 | // IfaceOption is a function option type to set interface options 4 | type IfaceOption func() 5 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/osl/interface_windows.go: -------------------------------------------------------------------------------- 1 | package osl 2 | 3 | // IfaceOption is a function option type to set interface options 4 | type IfaceOption func() 5 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/osl/namespace_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux,!windows,!freebsd 2 | 3 | package osl 4 | 5 | // GC triggers garbage collection of namespace path right away 6 | // and waits for it. 7 | func GC() { 8 | } 9 | 10 | func GetSandboxForExternalKey(path string, key string) (Sandbox, error) { 11 | return nil, nil 12 | } 13 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/osl/neigh_freebsd.go: -------------------------------------------------------------------------------- 1 | package osl 2 | 3 | // NeighOption is a function option type to set neighbor options 4 | type NeighOption func() 5 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/osl/neigh_solaris.go: -------------------------------------------------------------------------------- 1 | package osl 2 | 3 | // NeighOption is a function option type to set interface options 4 | type NeighOption func() 5 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/osl/neigh_windows.go: -------------------------------------------------------------------------------- 1 | package osl 2 | 3 | // NeighOption is a function option type to set neighbor options 4 | type NeighOption func() 5 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/osl/sandbox_unsupported.go: -------------------------------------------------------------------------------- 1 | // +build !linux,!windows,!freebsd 2 | 3 | package osl 4 | 5 | import "errors" 6 | 7 | var ( 8 | // ErrNotImplemented is for platforms which don't implement sandbox 9 | ErrNotImplemented = errors.New("not implemented") 10 | ) 11 | 12 | // NewSandbox provides a new sandbox instance created in an os specific way 13 | // provided a key which uniquely identifies the sandbox 14 | func NewSandbox(key string, osCreate bool) (Sandbox, error) { 15 | return nil, ErrNotImplemented 16 | } 17 | 18 | // GenerateKey generates a sandbox key based on the passed 19 | // container id. 20 | func GenerateKey(containerID string) string { 21 | return "" 22 | } 23 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/osl/sandbox_unsupported_test.go: -------------------------------------------------------------------------------- 1 | // +build !linux 2 | 3 | package osl 4 | 5 | import ( 6 | "errors" 7 | "testing" 8 | ) 9 | 10 | var ErrNotImplemented = errors.New("not implemented") 11 | 12 | func newKey(t *testing.T) (string, error) { 13 | return nil, ErrNotImplemented 14 | } 15 | 16 | func verifySandbox(t *testing.T, s Sandbox) { 17 | return 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/portmapper/mock_proxy.go: -------------------------------------------------------------------------------- 1 | package portmapper 2 | 3 | import "net" 4 | 5 | func newMockProxyCommand(proto string, hostIP net.IP, hostPort int, containerIP net.IP, containerPort int) userlandProxy { 6 | return &mockProxyCommand{} 7 | } 8 | 9 | type mockProxyCommand struct { 10 | } 11 | 12 | func (p *mockProxyCommand) Start() error { 13 | return nil 14 | } 15 | 16 | func (p *mockProxyCommand) Stop() error { 17 | return nil 18 | } 19 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/resolvconf/README.md: -------------------------------------------------------------------------------- 1 | Package resolvconf provides utility code to query and update DNS configuration in /etc/resolv.conf 2 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/resolvconf/dns/resolvconf.go: -------------------------------------------------------------------------------- 1 | package dns 2 | 3 | import ( 4 | "regexp" 5 | ) 6 | 7 | // IPLocalhost is a regex patter for localhost IP address range. 8 | const IPLocalhost = `((127\.([0-9]{1,3}\.){2}[0-9]{1,3})|(::1)$)` 9 | 10 | var localhostIPRegexp = regexp.MustCompile(IPLocalhost) 11 | 12 | // IsLocalhost returns true if ip matches the localhost IP regular expression. 13 | // Used for determining if nameserver settings are being passed which are 14 | // localhost addresses 15 | func IsLocalhost(ip string) bool { 16 | return localhostIPRegexp.MatchString(ip) 17 | } 18 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/resolver_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package libnetwork 4 | 5 | func (r *resolver) setupIPTable() error { 6 | return nil 7 | } 8 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/sandbox_dns_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package libnetwork 4 | 5 | import ( 6 | "github.com/docker/libnetwork/etchosts" 7 | ) 8 | 9 | // Stub implementations for DNS related functions 10 | 11 | func (sb *sandbox) startResolver() { 12 | } 13 | 14 | func (sb *sandbox) setupResolutionFiles() error { 15 | return nil 16 | } 17 | 18 | func (sb *sandbox) updateHostsFile(ifaceIP string) error { 19 | return nil 20 | } 21 | 22 | func (sb *sandbox) addHostsEntries(recs []etchosts.Record) { 23 | 24 | } 25 | 26 | func (sb *sandbox) deleteHostsEntries(recs []etchosts.Record) { 27 | 28 | } 29 | 30 | func (sb *sandbox) updateDNS(ipv6Enabled bool) error { 31 | return nil 32 | } 33 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/sandbox_externalkey.go: -------------------------------------------------------------------------------- 1 | package libnetwork 2 | 3 | import "github.com/docker/docker/pkg/reexec" 4 | 5 | type setKeyData struct { 6 | ContainerID string 7 | Key string 8 | } 9 | 10 | func init() { 11 | reexec.Register("libnetwork-setkey", processSetKeyReexec) 12 | } 13 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/test/integration/daemon.cfg: -------------------------------------------------------------------------------- 1 | CACERT=/var/lib/boot2docker/ca.pem 2 | SERVERCERT=/var/lib/boot2docker/server-key.pem 3 | SERVERKEY=/var/lib/boot2docker/server.pem 4 | DOCKER_TLS=no 5 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/test/integration/dnet/overlay-consul-host.bats: -------------------------------------------------------------------------------- 1 | # -*- mode: sh -*- 2 | #!/usr/bin/env bats 3 | 4 | load helpers 5 | 6 | @test "Test overlay network hostmode with consul" { 7 | skip_for_circleci 8 | test_overlay_hostmode consul 9 | } 10 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/test/integration/dnet/overlay-etcd.bats: -------------------------------------------------------------------------------- 1 | # -*- mode: sh -*- 2 | #!/usr/bin/env bats 3 | 4 | load helpers 5 | 6 | @test "Test overlay network with etcd" { 7 | skip_for_circleci 8 | test_overlay etcd 9 | } 10 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/test/integration/dnet/overlay-zookeeper.bats: -------------------------------------------------------------------------------- 1 | # -*- mode: sh -*- 2 | #!/usr/bin/env bats 3 | 4 | load helpers 5 | 6 | @test "Test overlay network with zookeeper" { 7 | skip_for_circleci 8 | test_overlay zookeeper 9 | } 10 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/testutils/context_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package testutils 4 | 5 | import ( 6 | "os" 7 | "testing" 8 | ) 9 | 10 | // SetupTestOSContext joins a new network namespace, and returns its associated 11 | // teardown function. 12 | // 13 | // Example usage: 14 | // 15 | // defer SetupTestOSContext(t)() 16 | // 17 | func SetupTestOSContext(t *testing.T) func() { 18 | return func() { 19 | } 20 | } 21 | 22 | // RunningOnCircleCI returns true if being executed on libnetwork Circle CI setup 23 | func RunningOnCircleCI() bool { 24 | return os.Getenv("CIRCLECI") != "" 25 | } 26 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/testutils/net.go: -------------------------------------------------------------------------------- 1 | package testutils 2 | 3 | import "flag" 4 | 5 | var runningInContainer = flag.Bool("incontainer", false, "Indicates if the test is running in a container") 6 | 7 | // IsRunningInContainer returns whether the test is running inside a container. 8 | func IsRunningInContainer() bool { 9 | return (*runningInContainer) 10 | } 11 | -------------------------------------------------------------------------------- /vendor/github.com/docker/libnetwork/wrapmake.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | function raise() 6 | { 7 | kill -$1 0 8 | } 9 | 10 | trap "raise SIGINT" SIGINT 11 | make $1 12 | -------------------------------------------------------------------------------- /vendor/github.com/infobloxopen/infoblox-go-client/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *.prof 25 | -------------------------------------------------------------------------------- /vendor/github.com/infobloxopen/infoblox-go-client/infoblox_go_client_suite_test.go: -------------------------------------------------------------------------------- 1 | package ibclient_test 2 | 3 | import ( 4 | . "github.com/onsi/ginkgo" 5 | . "github.com/onsi/gomega" 6 | 7 | "testing" 8 | ) 9 | 10 | func TestInfobloxGoClient(t *testing.T) { 11 | RegisterFailHandler(Fail) 12 | RunSpecs(t, "InfobloxGoClient Suite") 13 | } 14 | -------------------------------------------------------------------------------- /vendor/github.com/opencontainers/go-digest/.mailmap: -------------------------------------------------------------------------------- 1 | Stephen J Day 2 | -------------------------------------------------------------------------------- /vendor/github.com/opencontainers/go-digest/.pullapprove.yml: -------------------------------------------------------------------------------- 1 | approve_by_comment: true 2 | approve_regex: '^(Approved|lgtm|LGTM|:shipit:|:star:|:\+1:|:ship:)' 3 | reject_regex: ^Rejected 4 | reset_on_push: true 5 | author_approval: ignored 6 | signed_off_by: 7 | required: true 8 | reviewers: 9 | teams: 10 | - go-digest-maintainers 11 | name: default 12 | required: 2 13 | -------------------------------------------------------------------------------- /vendor/github.com/opencontainers/go-digest/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.7 4 | - master 5 | -------------------------------------------------------------------------------- /vendor/github.com/opencontainers/go-digest/MAINTAINERS: -------------------------------------------------------------------------------- 1 | Aaron Lehmann (@aaronlehmann) 2 | Brandon Philips (@philips) 3 | Brendan Burns (@brendandburns) 4 | Derek McGowan (@dmcgowan) 5 | Jason Bouzane (@jbouzane) 6 | John Starks (@jstarks) 7 | Jonathan Boulle (@jonboulle) 8 | Stephen Day (@stevvooe) 9 | Vincent Batts (@vbatts) 10 | -------------------------------------------------------------------------------- /vendor/github.com/pkg/errors/.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled Object files, Static and Dynamic libs (Shared Objects) 2 | *.o 3 | *.a 4 | *.so 5 | 6 | # Folders 7 | _obj 8 | _test 9 | 10 | # Architecture specific extensions/prefixes 11 | *.[568vq] 12 | [568vq].out 13 | 14 | *.cgo1.go 15 | *.cgo2.c 16 | _cgo_defun.c 17 | _cgo_gotypes.go 18 | _cgo_export.* 19 | 20 | _testmain.go 21 | 22 | *.exe 23 | *.test 24 | *.prof 25 | -------------------------------------------------------------------------------- /vendor/github.com/pkg/errors/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go_import_path: github.com/pkg/errors 3 | go: 4 | - 1.4.x 5 | - 1.5.x 6 | - 1.6.x 7 | - 1.7.x 8 | - 1.8.x 9 | - tip 10 | 11 | script: 12 | - go test -v ./... 13 | -------------------------------------------------------------------------------- /vendor/github.com/pkg/errors/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: build-{build}.{branch} 2 | 3 | clone_folder: C:\gopath\src\github.com\pkg\errors 4 | shallow_clone: true # for startup speed 5 | 6 | environment: 7 | GOPATH: C:\gopath 8 | 9 | platform: 10 | - x64 11 | 12 | # http://www.appveyor.com/docs/installed-software 13 | install: 14 | # some helpful output for debugging builds 15 | - go version 16 | - go env 17 | # pre-installed MinGW at C:\MinGW is 32bit only 18 | # but MSYS2 at C:\msys64 has mingw64 19 | - set PATH=C:\msys64\mingw64\bin;%PATH% 20 | - gcc --version 21 | - g++ --version 22 | 23 | build_script: 24 | - go install -v ./... 25 | 26 | test_script: 27 | - set PATH=C:\gopath\bin;%PATH% 28 | - go test -v ./... 29 | 30 | #artifacts: 31 | # - path: '%GOPATH%\bin\*.exe' 32 | deploy: off 33 | -------------------------------------------------------------------------------- /vendor/golang.org/x/net/.gitattributes: -------------------------------------------------------------------------------- 1 | # Treat all files in this repo as binary, with no git magic updating 2 | # line endings. Windows users contributing to Go will need to use a 3 | # modern version of git and editors capable of LF line endings. 4 | # 5 | # We'll prevent accidental CRLF line endings from entering the repo 6 | # via the git-review gofmt checks. 7 | # 8 | # See golang.org/issue/9281 9 | 10 | * -text 11 | -------------------------------------------------------------------------------- /vendor/golang.org/x/net/.gitignore: -------------------------------------------------------------------------------- 1 | # Add no patterns to .hgignore except for files generated by the build. 2 | last-change 3 | -------------------------------------------------------------------------------- /vendor/golang.org/x/net/AUTHORS: -------------------------------------------------------------------------------- 1 | # This source code refers to The Go Authors for copyright purposes. 2 | # The master list of authors is in the main Go distribution, 3 | # visible at http://tip.golang.org/AUTHORS. 4 | -------------------------------------------------------------------------------- /vendor/golang.org/x/net/CONTRIBUTORS: -------------------------------------------------------------------------------- 1 | # This source code was written by the Go contributors. 2 | # The master list of contributors is in the main Go distribution, 3 | # visible at http://tip.golang.org/CONTRIBUTORS. 4 | -------------------------------------------------------------------------------- /vendor/golang.org/x/net/README: -------------------------------------------------------------------------------- 1 | This repository holds supplementary Go networking libraries. 2 | 3 | To submit changes to this repository, see http://golang.org/doc/contribute.html. 4 | -------------------------------------------------------------------------------- /vendor/golang.org/x/net/context/withtimeout_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package context_test 6 | 7 | import ( 8 | "fmt" 9 | "time" 10 | 11 | "golang.org/x/net/context" 12 | ) 13 | 14 | func ExampleWithTimeout() { 15 | // Pass a context with a timeout to tell a blocking function that it 16 | // should abandon its work after the timeout elapses. 17 | ctx, _ := context.WithTimeout(context.Background(), 100*time.Millisecond) 18 | select { 19 | case <-time.After(200 * time.Millisecond): 20 | fmt.Println("overslept") 21 | case <-ctx.Done(): 22 | fmt.Println(ctx.Err()) // prints "context deadline exceeded" 23 | } 24 | // Output: 25 | // context deadline exceeded 26 | } 27 | -------------------------------------------------------------------------------- /vendor/golang.org/x/net/html/charset/testdata/README: -------------------------------------------------------------------------------- 1 | These test cases come from http://www.w3.org/International/tests/html5/the-input-byte-stream/results-basics 2 | -------------------------------------------------------------------------------- /vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infobloxopen/docker-infoblox/b7529e52705380cbfc713a836ecf43cf3c74bd50/vendor/golang.org/x/net/html/charset/testdata/UTF-16BE-BOM.html -------------------------------------------------------------------------------- /vendor/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/infobloxopen/docker-infoblox/b7529e52705380cbfc713a836ecf43cf3c74bd50/vendor/golang.org/x/net/html/charset/testdata/UTF-16LE-BOM.html -------------------------------------------------------------------------------- /vendor/golang.org/x/net/html/testdata/webkit/adoption02.dat: -------------------------------------------------------------------------------- 1 | #data 2 | 12

34 3 | #errors 4 | #document 5 | | 6 | | 7 | | 8 | | 9 | | "1" 10 | | 11 | | "2" 12 | | 13 | |

14 | | 15 | | "3" 16 | | "4" 17 | 18 | #data 19 |

20 | #errors 21 | #document 22 | | 23 | | 24 | | 25 | | 26 | |
27 | | 28 | |