├── .circleci
└── config.yml
├── .gitignore
├── .idea
├── data-acc.iml
├── dictionaries
│ └── john.xml
├── encodings.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── misc.xml
├── modules.xml
├── vcs.xml
└── webResources.xml
├── CONTRIBUTING.rst
├── LICENSE
├── Makefile
├── README.md
├── build
├── func_test.sh
└── rebuild_mocks.sh
├── cmd
├── dacctl
│ ├── actions.go
│ ├── main.go
│ └── main_test.go
└── dacd
│ └── main.go
├── dac-ansible
├── README.md
├── ansible.cfg
├── create-servers.py
├── hosts.example
├── master.yml
├── requirements.yml
├── roles
│ └── data-acc
│ │ ├── defaults
│ │ └── main.yml
│ │ ├── tasks
│ │ ├── fake_nvme.yml
│ │ ├── main.yml
│ │ └── systemd.yml
│ │ └── templates
│ │ ├── dacd.conf.j2
│ │ ├── dacd.service.j2
│ │ ├── etcd-ls.sh
│ │ └── etcd-rm-rf.sh
└── templates
│ ├── slurm-master.yml.j2
│ └── slurm-worker.yml.j2
├── docker-slurm
├── Dockerfile
├── README.md
├── build.sh
├── burst_buffer.conf
├── demo.sh
├── docker-compose.yml
├── docker-entrypoint.sh
├── register_cluster.sh
├── slurm.conf
└── slurmdbd.conf
├── docs
├── _config.yml
├── index.md
└── install.md
├── fs-ansible
├── README.md
├── ansible.cfg
├── create.yml
├── delete.yml
├── restore.yml
└── roles
│ ├── beegfs
│ └── tasks
│ │ ├── client-build-ops.yaml
│ │ ├── client.yaml
│ │ ├── create-mgs-mdt.yaml
│ │ ├── create-ost.yaml
│ │ ├── format-mount.yaml
│ │ ├── main.yaml
│ │ ├── repo.yaml
│ │ ├── stop-all.yaml
│ │ └── unmount.yaml
│ ├── lustre
│ ├── defaults
│ │ └── main.yaml
│ └── tasks
│ │ ├── format.yaml
│ │ ├── main.yaml
│ │ ├── mount.yaml
│ │ ├── unmount.yaml
│ │ └── wipe.yaml
│ └── lustre_client_mount
│ ├── defaults
│ └── main.yaml
│ └── tasks
│ └── main.yaml
├── go.mod
├── go.sum
├── internal
└── pkg
│ ├── config
│ ├── brick_manager.go
│ ├── config.go
│ ├── config_test.go
│ ├── filesystem.go
│ ├── keystore.go
│ └── log.go
│ ├── dacctl
│ ├── actions_impl
│ │ ├── actions.go
│ │ ├── actions_test.go
│ │ ├── configurations.go
│ │ ├── instances.go
│ │ ├── job.go
│ │ ├── job_test.go
│ │ ├── parsers
│ │ │ ├── capacity.go
│ │ │ ├── capacity_test.go
│ │ │ ├── hostnames.go
│ │ │ ├── hostnames_test.go
│ │ │ ├── job.go
│ │ │ └── job_test.go
│ │ ├── persistent.go
│ │ ├── persistent_test.go
│ │ ├── pools.go
│ │ ├── sessions.go
│ │ ├── show.go
│ │ └── show_test.go
│ ├── interface.go
│ └── workflow_impl
│ │ ├── session.go
│ │ └── session_test.go
│ ├── dacd
│ ├── brick_manager_impl
│ │ ├── brick_manager.go
│ │ ├── brick_manager_test.go
│ │ ├── host_bricks.go
│ │ ├── session_action_handler.go
│ │ └── session_action_handler_test.go
│ └── interface.go
│ ├── datamodel
│ ├── brick_allocation.go
│ ├── brick_host.go
│ ├── pool.go
│ ├── session.go
│ └── session_action.go
│ ├── facade
│ ├── session.go
│ └── session_action_handler.go
│ ├── fileio
│ └── disk.go
│ ├── filesystem
│ ├── ansible.go
│ └── provider.go
│ ├── filesystem_impl
│ ├── ansible.go
│ ├── ansible_test.go
│ ├── copy.go
│ ├── copy_test.go
│ ├── fs_type.go
│ ├── mount.go
│ ├── mount_test.go
│ └── provider.go
│ ├── mock_facade
│ ├── session.go
│ └── session_action_handler.go
│ ├── mock_fileio
│ └── disk_mock.go
│ ├── mock_filesystem
│ ├── ansible.go
│ └── provider.go
│ ├── mock_registry
│ ├── brick_allocation.go
│ ├── brick_host.go
│ ├── session.go
│ └── session_actions.go
│ ├── mock_store
│ └── keystore.go
│ ├── registry
│ ├── brick_allocation.go
│ ├── brick_host.go
│ ├── session.go
│ └── session_actions.go
│ ├── registry_impl
│ ├── brick_allocation.go
│ ├── brick_host.go
│ ├── session.go
│ ├── session_actions.go
│ ├── session_actions_test.go
│ └── session_test.go
│ ├── store
│ └── keystore.go
│ └── store_impl
│ └── keystore.go
├── pkg
└── version
│ └── version.go
├── push.sh
├── tools
├── dac-reset.sh
├── dac-test.sh
├── etcd-ls.sh
├── slurm-demo.sh
└── slurm-test.sh
└── vendor
├── github.com
├── alecthomas
│ ├── template
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── doc.go
│ │ ├── exec.go
│ │ ├── funcs.go
│ │ ├── go.mod
│ │ ├── helper.go
│ │ ├── parse
│ │ │ ├── lex.go
│ │ │ ├── node.go
│ │ │ └── parse.go
│ │ └── template.go
│ └── units
│ │ ├── COPYING
│ │ ├── README.md
│ │ ├── bytes.go
│ │ ├── doc.go
│ │ ├── go.mod
│ │ ├── si.go
│ │ └── util.go
├── coreos
│ ├── etcd
│ │ ├── LICENSE
│ │ ├── NOTICE
│ │ ├── auth
│ │ │ └── authpb
│ │ │ │ ├── auth.pb.go
│ │ │ │ └── auth.proto
│ │ ├── clientv3
│ │ │ ├── auth.go
│ │ │ ├── balancer
│ │ │ │ ├── balancer.go
│ │ │ │ ├── connectivity
│ │ │ │ │ └── connectivity.go
│ │ │ │ ├── picker
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── err.go
│ │ │ │ │ ├── picker.go
│ │ │ │ │ └── roundrobin_balanced.go
│ │ │ │ ├── resolver
│ │ │ │ │ └── endpoint
│ │ │ │ │ │ └── endpoint.go
│ │ │ │ └── utils.go
│ │ │ ├── client.go
│ │ │ ├── clientv3util
│ │ │ │ └── util.go
│ │ │ ├── cluster.go
│ │ │ ├── compact_op.go
│ │ │ ├── compare.go
│ │ │ ├── concurrency
│ │ │ │ ├── doc.go
│ │ │ │ ├── election.go
│ │ │ │ ├── key.go
│ │ │ │ ├── mutex.go
│ │ │ │ ├── session.go
│ │ │ │ └── stm.go
│ │ │ ├── config.go
│ │ │ ├── credentials
│ │ │ │ └── credentials.go
│ │ │ ├── ctx.go
│ │ │ ├── doc.go
│ │ │ ├── kv.go
│ │ │ ├── lease.go
│ │ │ ├── logger.go
│ │ │ ├── maintenance.go
│ │ │ ├── op.go
│ │ │ ├── options.go
│ │ │ ├── retry.go
│ │ │ ├── retry_interceptor.go
│ │ │ ├── sort.go
│ │ │ ├── txn.go
│ │ │ ├── utils.go
│ │ │ └── watch.go
│ │ ├── etcdserver
│ │ │ ├── api
│ │ │ │ └── v3rpc
│ │ │ │ │ └── rpctypes
│ │ │ │ │ ├── doc.go
│ │ │ │ │ ├── error.go
│ │ │ │ │ ├── md.go
│ │ │ │ │ └── metadatafields.go
│ │ │ └── etcdserverpb
│ │ │ │ ├── etcdserver.pb.go
│ │ │ │ ├── etcdserver.proto
│ │ │ │ ├── raft_internal.pb.go
│ │ │ │ ├── raft_internal.proto
│ │ │ │ ├── raft_internal_stringer.go
│ │ │ │ ├── rpc.pb.go
│ │ │ │ └── rpc.proto
│ │ ├── mvcc
│ │ │ └── mvccpb
│ │ │ │ ├── kv.pb.go
│ │ │ │ └── kv.proto
│ │ ├── pkg
│ │ │ ├── logutil
│ │ │ │ ├── discard_logger.go
│ │ │ │ ├── doc.go
│ │ │ │ ├── log_level.go
│ │ │ │ ├── logger.go
│ │ │ │ ├── merge_logger.go
│ │ │ │ ├── package_logger.go
│ │ │ │ ├── zap.go
│ │ │ │ ├── zap_grpc.go
│ │ │ │ ├── zap_journal.go
│ │ │ │ └── zap_raft.go
│ │ │ ├── systemd
│ │ │ │ ├── doc.go
│ │ │ │ └── journal.go
│ │ │ ├── tlsutil
│ │ │ │ ├── cipher_suites.go
│ │ │ │ ├── doc.go
│ │ │ │ └── tlsutil.go
│ │ │ ├── transport
│ │ │ │ ├── doc.go
│ │ │ │ ├── keepalive_listener.go
│ │ │ │ ├── limit_listen.go
│ │ │ │ ├── listener.go
│ │ │ │ ├── listener_tls.go
│ │ │ │ ├── timeout_conn.go
│ │ │ │ ├── timeout_dialer.go
│ │ │ │ ├── timeout_listener.go
│ │ │ │ ├── timeout_transport.go
│ │ │ │ ├── tls.go
│ │ │ │ ├── transport.go
│ │ │ │ └── unix_listener.go
│ │ │ └── types
│ │ │ │ ├── doc.go
│ │ │ │ ├── id.go
│ │ │ │ ├── set.go
│ │ │ │ ├── slice.go
│ │ │ │ ├── urls.go
│ │ │ │ └── urlsmap.go
│ │ ├── raft
│ │ │ ├── README.md
│ │ │ ├── design.md
│ │ │ ├── doc.go
│ │ │ ├── log.go
│ │ │ ├── log_unstable.go
│ │ │ ├── logger.go
│ │ │ ├── node.go
│ │ │ ├── progress.go
│ │ │ ├── raft.go
│ │ │ ├── raftpb
│ │ │ │ ├── raft.pb.go
│ │ │ │ └── raft.proto
│ │ │ ├── rawnode.go
│ │ │ ├── read_only.go
│ │ │ ├── status.go
│ │ │ ├── storage.go
│ │ │ └── util.go
│ │ └── version
│ │ │ └── version.go
│ ├── go-semver
│ │ ├── LICENSE
│ │ ├── NOTICE
│ │ └── semver
│ │ │ ├── semver.go
│ │ │ └── sort.go
│ ├── go-systemd
│ │ ├── LICENSE
│ │ ├── NOTICE
│ │ └── journal
│ │ │ └── journal.go
│ └── pkg
│ │ ├── LICENSE
│ │ ├── NOTICE
│ │ └── capnslog
│ │ ├── README.md
│ │ ├── formatters.go
│ │ ├── glog_formatter.go
│ │ ├── init.go
│ │ ├── init_windows.go
│ │ ├── journald_formatter.go
│ │ ├── log_hijack.go
│ │ ├── logmap.go
│ │ ├── pkg_logger.go
│ │ └── syslog_formatter.go
├── cpuguy83
│ └── go-md2man
│ │ └── v2
│ │ ├── LICENSE.md
│ │ └── md2man
│ │ ├── md2man.go
│ │ └── roff.go
├── davecgh
│ └── go-spew
│ │ ├── LICENSE
│ │ └── spew
│ │ ├── bypass.go
│ │ ├── bypasssafe.go
│ │ ├── common.go
│ │ ├── config.go
│ │ ├── doc.go
│ │ ├── dump.go
│ │ ├── format.go
│ │ └── spew.go
├── gogo
│ └── protobuf
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── gogoproto
│ │ ├── Makefile
│ │ ├── doc.go
│ │ ├── gogo.pb.go
│ │ ├── gogo.pb.golden
│ │ ├── gogo.proto
│ │ └── helper.go
│ │ ├── proto
│ │ ├── Makefile
│ │ ├── clone.go
│ │ ├── custom_gogo.go
│ │ ├── decode.go
│ │ ├── deprecated.go
│ │ ├── discard.go
│ │ ├── duration.go
│ │ ├── duration_gogo.go
│ │ ├── encode.go
│ │ ├── encode_gogo.go
│ │ ├── equal.go
│ │ ├── extensions.go
│ │ ├── extensions_gogo.go
│ │ ├── lib.go
│ │ ├── lib_gogo.go
│ │ ├── message_set.go
│ │ ├── pointer_reflect.go
│ │ ├── pointer_reflect_gogo.go
│ │ ├── pointer_unsafe.go
│ │ ├── pointer_unsafe_gogo.go
│ │ ├── properties.go
│ │ ├── properties_gogo.go
│ │ ├── skip_gogo.go
│ │ ├── table_marshal.go
│ │ ├── table_marshal_gogo.go
│ │ ├── table_merge.go
│ │ ├── table_unmarshal.go
│ │ ├── table_unmarshal_gogo.go
│ │ ├── text.go
│ │ ├── text_gogo.go
│ │ ├── text_parser.go
│ │ ├── timestamp.go
│ │ ├── timestamp_gogo.go
│ │ ├── wrappers.go
│ │ └── wrappers_gogo.go
│ │ └── protoc-gen-gogo
│ │ └── descriptor
│ │ ├── Makefile
│ │ ├── descriptor.go
│ │ ├── descriptor.pb.go
│ │ ├── descriptor_gostring.gen.go
│ │ └── helper.go
├── golang
│ ├── mock
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ └── gomock
│ │ │ ├── call.go
│ │ │ ├── callset.go
│ │ │ ├── controller.go
│ │ │ └── matchers.go
│ └── protobuf
│ │ ├── AUTHORS
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── proto
│ │ ├── buffer.go
│ │ ├── defaults.go
│ │ ├── deprecated.go
│ │ ├── discard.go
│ │ ├── extensions.go
│ │ ├── properties.go
│ │ ├── proto.go
│ │ ├── registry.go
│ │ ├── text_decode.go
│ │ ├── text_encode.go
│ │ ├── wire.go
│ │ └── wrappers.go
│ │ ├── protoc-gen-go
│ │ └── descriptor
│ │ │ └── descriptor.pb.go
│ │ └── ptypes
│ │ ├── any.go
│ │ ├── any
│ │ └── any.pb.go
│ │ ├── doc.go
│ │ ├── duration.go
│ │ ├── duration
│ │ └── duration.pb.go
│ │ ├── timestamp.go
│ │ └── timestamp
│ │ └── timestamp.pb.go
├── google
│ └── uuid
│ │ ├── .travis.yml
│ │ ├── CONTRIBUTING.md
│ │ ├── CONTRIBUTORS
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── dce.go
│ │ ├── doc.go
│ │ ├── go.mod
│ │ ├── hash.go
│ │ ├── marshal.go
│ │ ├── node.go
│ │ ├── node_js.go
│ │ ├── node_net.go
│ │ ├── sql.go
│ │ ├── time.go
│ │ ├── util.go
│ │ ├── uuid.go
│ │ ├── version1.go
│ │ └── version4.go
├── konsorten
│ └── go-windows-terminal-sequences
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── go.mod
│ │ └── sequences.go
├── pmezard
│ └── go-difflib
│ │ ├── LICENSE
│ │ └── difflib
│ │ └── difflib.go
├── prometheus
│ └── common
│ │ ├── LICENSE
│ │ ├── NOTICE
│ │ └── log
│ │ ├── eventlog_formatter.go
│ │ ├── log.go
│ │ └── syslog_formatter.go
├── russross
│ └── blackfriday
│ │ └── v2
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── block.go
│ │ ├── doc.go
│ │ ├── esc.go
│ │ ├── go.mod
│ │ ├── html.go
│ │ ├── inline.go
│ │ ├── markdown.go
│ │ ├── node.go
│ │ └── smartypants.go
├── shurcooL
│ └── sanitized_anchor_name
│ │ ├── .travis.yml
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── go.mod
│ │ └── main.go
├── sirupsen
│ └── logrus
│ │ ├── .gitignore
│ │ ├── .travis.yml
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── alt_exit.go
│ │ ├── appveyor.yml
│ │ ├── doc.go
│ │ ├── entry.go
│ │ ├── exported.go
│ │ ├── formatter.go
│ │ ├── go.mod
│ │ ├── go.sum
│ │ ├── hooks.go
│ │ ├── json_formatter.go
│ │ ├── logger.go
│ │ ├── logrus.go
│ │ ├── terminal_check_appengine.go
│ │ ├── terminal_check_bsd.go
│ │ ├── terminal_check_no_terminal.go
│ │ ├── terminal_check_notappengine.go
│ │ ├── terminal_check_solaris.go
│ │ ├── terminal_check_unix.go
│ │ ├── terminal_check_windows.go
│ │ ├── text_formatter.go
│ │ └── writer.go
├── stretchr
│ └── testify
│ │ ├── LICENSE
│ │ └── assert
│ │ ├── assertion_format.go
│ │ ├── assertion_format.go.tmpl
│ │ ├── assertion_forward.go
│ │ ├── assertion_forward.go.tmpl
│ │ ├── assertion_order.go
│ │ ├── assertions.go
│ │ ├── doc.go
│ │ ├── errors.go
│ │ ├── forward_assertions.go
│ │ └── http_assertions.go
└── urfave
│ └── cli
│ ├── .flake8
│ ├── .gitignore
│ ├── CODE_OF_CONDUCT.md
│ ├── LICENSE
│ ├── README.md
│ ├── app.go
│ ├── appveyor.yml
│ ├── category.go
│ ├── cli.go
│ ├── command.go
│ ├── context.go
│ ├── docs.go
│ ├── errors.go
│ ├── fish.go
│ ├── flag.go
│ ├── flag_bool.go
│ ├── flag_bool_t.go
│ ├── flag_duration.go
│ ├── flag_float64.go
│ ├── flag_generic.go
│ ├── flag_int.go
│ ├── flag_int64.go
│ ├── flag_int64_slice.go
│ ├── flag_int_slice.go
│ ├── flag_string.go
│ ├── flag_string_slice.go
│ ├── flag_uint.go
│ ├── flag_uint64.go
│ ├── funcs.go
│ ├── go.mod
│ ├── go.sum
│ ├── help.go
│ ├── parse.go
│ ├── sort.go
│ └── template.go
├── go.uber.org
├── atomic
│ ├── .codecov.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CHANGELOG.md
│ ├── LICENSE.txt
│ ├── Makefile
│ ├── README.md
│ ├── atomic.go
│ ├── error.go
│ ├── go.mod
│ ├── go.sum
│ └── string.go
├── multierr
│ ├── .codecov.yml
│ ├── .gitignore
│ ├── .travis.yml
│ ├── CHANGELOG.md
│ ├── LICENSE.txt
│ ├── Makefile
│ ├── README.md
│ ├── error.go
│ ├── glide.yaml
│ ├── go.mod
│ ├── go.sum
│ └── go113.go
└── zap
│ ├── .codecov.yml
│ ├── .gitignore
│ ├── .readme.tmpl
│ ├── .travis.yml
│ ├── CHANGELOG.md
│ ├── CODE_OF_CONDUCT.md
│ ├── CONTRIBUTING.md
│ ├── FAQ.md
│ ├── LICENSE.txt
│ ├── Makefile
│ ├── README.md
│ ├── array.go
│ ├── buffer
│ ├── buffer.go
│ └── pool.go
│ ├── checklicense.sh
│ ├── config.go
│ ├── doc.go
│ ├── encoder.go
│ ├── error.go
│ ├── field.go
│ ├── flag.go
│ ├── glide.yaml
│ ├── global.go
│ ├── global_go112.go
│ ├── global_prego112.go
│ ├── go.mod
│ ├── go.sum
│ ├── http_handler.go
│ ├── internal
│ ├── bufferpool
│ │ └── bufferpool.go
│ ├── color
│ │ └── color.go
│ └── exit
│ │ └── exit.go
│ ├── level.go
│ ├── logger.go
│ ├── options.go
│ ├── sink.go
│ ├── stacktrace.go
│ ├── sugar.go
│ ├── time.go
│ ├── writer.go
│ └── zapcore
│ ├── console_encoder.go
│ ├── core.go
│ ├── doc.go
│ ├── encoder.go
│ ├── entry.go
│ ├── error.go
│ ├── field.go
│ ├── hook.go
│ ├── increase_level.go
│ ├── json_encoder.go
│ ├── level.go
│ ├── level_strings.go
│ ├── marshaler.go
│ ├── memory_encoder.go
│ ├── sampler.go
│ ├── tee.go
│ └── write_syncer.go
├── golang.org
└── x
│ ├── net
│ ├── AUTHORS
│ ├── CONTRIBUTORS
│ ├── LICENSE
│ ├── PATENTS
│ ├── http
│ │ └── httpguts
│ │ │ ├── guts.go
│ │ │ └── httplex.go
│ ├── http2
│ │ ├── .gitignore
│ │ ├── Dockerfile
│ │ ├── Makefile
│ │ ├── README
│ │ ├── ciphers.go
│ │ ├── client_conn_pool.go
│ │ ├── databuffer.go
│ │ ├── errors.go
│ │ ├── flow.go
│ │ ├── frame.go
│ │ ├── go111.go
│ │ ├── gotrack.go
│ │ ├── headermap.go
│ │ ├── hpack
│ │ │ ├── encode.go
│ │ │ ├── hpack.go
│ │ │ ├── huffman.go
│ │ │ └── tables.go
│ │ ├── http2.go
│ │ ├── not_go111.go
│ │ ├── pipe.go
│ │ ├── server.go
│ │ ├── transport.go
│ │ ├── write.go
│ │ ├── writesched.go
│ │ ├── writesched_priority.go
│ │ └── writesched_random.go
│ ├── idna
│ │ ├── idna10.0.0.go
│ │ ├── idna9.0.0.go
│ │ ├── punycode.go
│ │ ├── tables10.0.0.go
│ │ ├── tables11.0.0.go
│ │ ├── tables12.00.go
│ │ ├── tables9.0.0.go
│ │ ├── trie.go
│ │ └── trieval.go
│ ├── internal
│ │ └── timeseries
│ │ │ └── timeseries.go
│ └── trace
│ │ ├── events.go
│ │ ├── histogram.go
│ │ └── trace.go
│ ├── sys
│ ├── AUTHORS
│ ├── CONTRIBUTORS
│ ├── LICENSE
│ ├── PATENTS
│ ├── internal
│ │ └── unsafeheader
│ │ │ └── unsafeheader.go
│ ├── unix
│ │ ├── .gitignore
│ │ ├── README.md
│ │ ├── affinity_linux.go
│ │ ├── aliases.go
│ │ ├── asm_aix_ppc64.s
│ │ ├── 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_freebsd_arm64.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_riscv64.s
│ │ ├── asm_linux_s390x.s
│ │ ├── asm_netbsd_386.s
│ │ ├── asm_netbsd_amd64.s
│ │ ├── asm_netbsd_arm.s
│ │ ├── asm_netbsd_arm64.s
│ │ ├── asm_openbsd_386.s
│ │ ├── asm_openbsd_amd64.s
│ │ ├── asm_openbsd_arm.s
│ │ ├── asm_openbsd_arm64.s
│ │ ├── asm_solaris_amd64.s
│ │ ├── bluetooth_linux.go
│ │ ├── cap_freebsd.go
│ │ ├── constants.go
│ │ ├── dev_aix_ppc.go
│ │ ├── dev_aix_ppc64.go
│ │ ├── dev_darwin.go
│ │ ├── dev_dragonfly.go
│ │ ├── dev_freebsd.go
│ │ ├── dev_linux.go
│ │ ├── dev_netbsd.go
│ │ ├── dev_openbsd.go
│ │ ├── dirent.go
│ │ ├── endian_big.go
│ │ ├── endian_little.go
│ │ ├── env_unix.go
│ │ ├── errors_freebsd_386.go
│ │ ├── errors_freebsd_amd64.go
│ │ ├── errors_freebsd_arm.go
│ │ ├── errors_freebsd_arm64.go
│ │ ├── fcntl.go
│ │ ├── fcntl_darwin.go
│ │ ├── fcntl_linux_32bit.go
│ │ ├── fdset.go
│ │ ├── gccgo.go
│ │ ├── gccgo_c.c
│ │ ├── gccgo_linux_amd64.go
│ │ ├── ioctl.go
│ │ ├── mkall.sh
│ │ ├── mkerrors.sh
│ │ ├── pagesize_unix.go
│ │ ├── pledge_openbsd.go
│ │ ├── race.go
│ │ ├── race0.go
│ │ ├── readdirent_getdents.go
│ │ ├── readdirent_getdirentries.go
│ │ ├── sockcmsg_dragonfly.go
│ │ ├── sockcmsg_linux.go
│ │ ├── sockcmsg_unix.go
│ │ ├── sockcmsg_unix_other.go
│ │ ├── str.go
│ │ ├── syscall.go
│ │ ├── syscall_aix.go
│ │ ├── syscall_aix_ppc.go
│ │ ├── syscall_aix_ppc64.go
│ │ ├── syscall_bsd.go
│ │ ├── syscall_darwin.1_12.go
│ │ ├── syscall_darwin.1_13.go
│ │ ├── syscall_darwin.go
│ │ ├── syscall_darwin_386.1_11.go
│ │ ├── syscall_darwin_386.go
│ │ ├── syscall_darwin_amd64.1_11.go
│ │ ├── syscall_darwin_amd64.go
│ │ ├── syscall_darwin_arm.1_11.go
│ │ ├── syscall_darwin_arm.go
│ │ ├── syscall_darwin_arm64.1_11.go
│ │ ├── syscall_darwin_arm64.go
│ │ ├── syscall_darwin_libSystem.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_arm64.go
│ │ ├── syscall_illumos.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_gc.go
│ │ ├── syscall_linux_gc_386.go
│ │ ├── syscall_linux_gccgo_386.go
│ │ ├── syscall_linux_gccgo_arm.go
│ │ ├── syscall_linux_mips64x.go
│ │ ├── syscall_linux_mipsx.go
│ │ ├── syscall_linux_ppc64x.go
│ │ ├── syscall_linux_riscv64.go
│ │ ├── syscall_linux_s390x.go
│ │ ├── syscall_linux_sparc64.go
│ │ ├── syscall_netbsd.go
│ │ ├── syscall_netbsd_386.go
│ │ ├── syscall_netbsd_amd64.go
│ │ ├── syscall_netbsd_arm.go
│ │ ├── syscall_netbsd_arm64.go
│ │ ├── syscall_openbsd.go
│ │ ├── syscall_openbsd_386.go
│ │ ├── syscall_openbsd_amd64.go
│ │ ├── syscall_openbsd_arm.go
│ │ ├── syscall_openbsd_arm64.go
│ │ ├── syscall_solaris.go
│ │ ├── syscall_solaris_amd64.go
│ │ ├── syscall_unix.go
│ │ ├── syscall_unix_gc.go
│ │ ├── syscall_unix_gc_ppc64x.go
│ │ ├── timestruct.go
│ │ ├── unveil_openbsd.go
│ │ ├── xattr_bsd.go
│ │ ├── zerrors_aix_ppc.go
│ │ ├── zerrors_aix_ppc64.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_freebsd_arm64.go
│ │ ├── zerrors_linux.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_riscv64.go
│ │ ├── zerrors_linux_s390x.go
│ │ ├── zerrors_linux_sparc64.go
│ │ ├── zerrors_netbsd_386.go
│ │ ├── zerrors_netbsd_amd64.go
│ │ ├── zerrors_netbsd_arm.go
│ │ ├── zerrors_netbsd_arm64.go
│ │ ├── zerrors_openbsd_386.go
│ │ ├── zerrors_openbsd_amd64.go
│ │ ├── zerrors_openbsd_arm.go
│ │ ├── zerrors_openbsd_arm64.go
│ │ ├── zerrors_solaris_amd64.go
│ │ ├── zptrace_armnn_linux.go
│ │ ├── zptrace_linux_arm64.go
│ │ ├── zptrace_mipsnn_linux.go
│ │ ├── zptrace_mipsnnle_linux.go
│ │ ├── zptrace_x86_linux.go
│ │ ├── zsyscall_aix_ppc.go
│ │ ├── zsyscall_aix_ppc64.go
│ │ ├── zsyscall_aix_ppc64_gc.go
│ │ ├── zsyscall_aix_ppc64_gccgo.go
│ │ ├── zsyscall_darwin_386.1_11.go
│ │ ├── zsyscall_darwin_386.1_13.go
│ │ ├── zsyscall_darwin_386.1_13.s
│ │ ├── zsyscall_darwin_386.go
│ │ ├── zsyscall_darwin_386.s
│ │ ├── zsyscall_darwin_amd64.1_11.go
│ │ ├── zsyscall_darwin_amd64.1_13.go
│ │ ├── zsyscall_darwin_amd64.1_13.s
│ │ ├── zsyscall_darwin_amd64.go
│ │ ├── zsyscall_darwin_amd64.s
│ │ ├── zsyscall_darwin_arm.1_11.go
│ │ ├── zsyscall_darwin_arm.1_13.go
│ │ ├── zsyscall_darwin_arm.1_13.s
│ │ ├── zsyscall_darwin_arm.go
│ │ ├── zsyscall_darwin_arm.s
│ │ ├── zsyscall_darwin_arm64.1_11.go
│ │ ├── zsyscall_darwin_arm64.1_13.go
│ │ ├── zsyscall_darwin_arm64.1_13.s
│ │ ├── zsyscall_darwin_arm64.go
│ │ ├── zsyscall_darwin_arm64.s
│ │ ├── zsyscall_dragonfly_amd64.go
│ │ ├── zsyscall_freebsd_386.go
│ │ ├── zsyscall_freebsd_amd64.go
│ │ ├── zsyscall_freebsd_arm.go
│ │ ├── zsyscall_freebsd_arm64.go
│ │ ├── zsyscall_illumos_amd64.go
│ │ ├── zsyscall_linux.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_riscv64.go
│ │ ├── zsyscall_linux_s390x.go
│ │ ├── zsyscall_linux_sparc64.go
│ │ ├── zsyscall_netbsd_386.go
│ │ ├── zsyscall_netbsd_amd64.go
│ │ ├── zsyscall_netbsd_arm.go
│ │ ├── zsyscall_netbsd_arm64.go
│ │ ├── zsyscall_openbsd_386.go
│ │ ├── zsyscall_openbsd_amd64.go
│ │ ├── zsyscall_openbsd_arm.go
│ │ ├── zsyscall_openbsd_arm64.go
│ │ ├── zsyscall_solaris_amd64.go
│ │ ├── zsysctl_openbsd_386.go
│ │ ├── zsysctl_openbsd_amd64.go
│ │ ├── zsysctl_openbsd_arm.go
│ │ ├── zsysctl_openbsd_arm64.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_freebsd_arm64.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_riscv64.go
│ │ ├── zsysnum_linux_s390x.go
│ │ ├── zsysnum_linux_sparc64.go
│ │ ├── zsysnum_netbsd_386.go
│ │ ├── zsysnum_netbsd_amd64.go
│ │ ├── zsysnum_netbsd_arm.go
│ │ ├── zsysnum_netbsd_arm64.go
│ │ ├── zsysnum_openbsd_386.go
│ │ ├── zsysnum_openbsd_amd64.go
│ │ ├── zsysnum_openbsd_arm.go
│ │ ├── zsysnum_openbsd_arm64.go
│ │ ├── ztypes_aix_ppc.go
│ │ ├── ztypes_aix_ppc64.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_freebsd_arm64.go
│ │ ├── ztypes_linux.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_riscv64.go
│ │ ├── ztypes_linux_s390x.go
│ │ ├── ztypes_linux_sparc64.go
│ │ ├── ztypes_netbsd_386.go
│ │ ├── ztypes_netbsd_amd64.go
│ │ ├── ztypes_netbsd_arm.go
│ │ ├── ztypes_netbsd_arm64.go
│ │ ├── ztypes_openbsd_386.go
│ │ ├── ztypes_openbsd_amd64.go
│ │ ├── ztypes_openbsd_arm.go
│ │ ├── ztypes_openbsd_arm64.go
│ │ └── ztypes_solaris_amd64.go
│ └── windows
│ │ ├── aliases.go
│ │ ├── dll_windows.go
│ │ ├── empty.s
│ │ ├── env_windows.go
│ │ ├── eventlog.go
│ │ ├── exec_windows.go
│ │ ├── memory_windows.go
│ │ ├── mkerrors.bash
│ │ ├── mkknownfolderids.bash
│ │ ├── mksyscall.go
│ │ ├── race.go
│ │ ├── race0.go
│ │ ├── registry
│ │ ├── key.go
│ │ ├── mksyscall.go
│ │ ├── syscall.go
│ │ ├── value.go
│ │ └── zsyscall_windows.go
│ │ ├── security_windows.go
│ │ ├── service.go
│ │ ├── str.go
│ │ ├── svc
│ │ └── eventlog
│ │ │ ├── install.go
│ │ │ └── log.go
│ │ ├── syscall.go
│ │ ├── syscall_windows.go
│ │ ├── types_windows.go
│ │ ├── types_windows_386.go
│ │ ├── types_windows_amd64.go
│ │ ├── types_windows_arm.go
│ │ ├── zerrors_windows.go
│ │ ├── zknownfolderids_windows.go
│ │ └── zsyscall_windows.go
│ └── text
│ ├── AUTHORS
│ ├── CONTRIBUTORS
│ ├── LICENSE
│ ├── PATENTS
│ ├── secure
│ └── bidirule
│ │ ├── bidirule.go
│ │ ├── bidirule10.0.0.go
│ │ └── bidirule9.0.0.go
│ ├── transform
│ └── transform.go
│ └── unicode
│ ├── bidi
│ ├── bidi.go
│ ├── bracket.go
│ ├── core.go
│ ├── prop.go
│ ├── tables10.0.0.go
│ ├── tables9.0.0.go
│ └── trieval.go
│ └── norm
│ ├── composition.go
│ ├── forminfo.go
│ ├── input.go
│ ├── iter.go
│ ├── normalize.go
│ ├── readwriter.go
│ ├── tables10.0.0.go
│ ├── tables9.0.0.go
│ ├── transform.go
│ └── trie.go
├── google.golang.org
├── genproto
│ ├── LICENSE
│ └── googleapis
│ │ ├── api
│ │ └── annotations
│ │ │ ├── annotations.pb.go
│ │ │ ├── client.pb.go
│ │ │ ├── field_behavior.pb.go
│ │ │ ├── http.pb.go
│ │ │ └── resource.pb.go
│ │ └── rpc
│ │ └── status
│ │ └── status.pb.go
├── grpc
│ ├── .travis.yml
│ ├── AUTHORS
│ ├── CODE-OF-CONDUCT.md
│ ├── CONTRIBUTING.md
│ ├── GOVERNANCE.md
│ ├── LICENSE
│ ├── MAINTAINERS.md
│ ├── Makefile
│ ├── README.md
│ ├── attributes
│ │ └── attributes.go
│ ├── backoff.go
│ ├── backoff
│ │ └── backoff.go
│ ├── balancer.go
│ ├── balancer
│ │ ├── balancer.go
│ │ ├── base
│ │ │ ├── balancer.go
│ │ │ └── base.go
│ │ └── roundrobin
│ │ │ └── roundrobin.go
│ ├── balancer_conn_wrappers.go
│ ├── balancer_v1_wrapper.go
│ ├── binarylog
│ │ └── grpc_binarylog_v1
│ │ │ └── binarylog.pb.go
│ ├── call.go
│ ├── clientconn.go
│ ├── codec.go
│ ├── codegen.sh
│ ├── codes
│ │ ├── code_string.go
│ │ └── codes.go
│ ├── connectivity
│ │ └── connectivity.go
│ ├── credentials
│ │ ├── credentials.go
│ │ ├── go12.go
│ │ ├── internal
│ │ │ ├── syscallconn.go
│ │ │ └── syscallconn_appengine.go
│ │ └── tls.go
│ ├── dialoptions.go
│ ├── doc.go
│ ├── encoding
│ │ ├── encoding.go
│ │ └── proto
│ │ │ └── proto.go
│ ├── go.mod
│ ├── go.sum
│ ├── grpclog
│ │ ├── grpclog.go
│ │ ├── logger.go
│ │ └── loggerv2.go
│ ├── install_gae.sh
│ ├── interceptor.go
│ ├── internal
│ │ ├── backoff
│ │ │ └── backoff.go
│ │ ├── balancerload
│ │ │ └── load.go
│ │ ├── binarylog
│ │ │ ├── binarylog.go
│ │ │ ├── binarylog_testutil.go
│ │ │ ├── env_config.go
│ │ │ ├── method_logger.go
│ │ │ ├── regenerate.sh
│ │ │ ├── sink.go
│ │ │ └── util.go
│ │ ├── buffer
│ │ │ └── unbounded.go
│ │ ├── channelz
│ │ │ ├── funcs.go
│ │ │ ├── types.go
│ │ │ ├── types_linux.go
│ │ │ ├── types_nonlinux.go
│ │ │ ├── util_linux.go
│ │ │ └── util_nonlinux.go
│ │ ├── envconfig
│ │ │ └── envconfig.go
│ │ ├── grpcrand
│ │ │ └── grpcrand.go
│ │ ├── grpcsync
│ │ │ └── event.go
│ │ ├── internal.go
│ │ ├── resolver
│ │ │ ├── dns
│ │ │ │ ├── dns_resolver.go
│ │ │ │ └── go113.go
│ │ │ └── passthrough
│ │ │ │ └── passthrough.go
│ │ ├── syscall
│ │ │ ├── syscall_linux.go
│ │ │ └── syscall_nonlinux.go
│ │ └── transport
│ │ │ ├── bdp_estimator.go
│ │ │ ├── controlbuf.go
│ │ │ ├── defaults.go
│ │ │ ├── flowcontrol.go
│ │ │ ├── handler_server.go
│ │ │ ├── http2_client.go
│ │ │ ├── http2_server.go
│ │ │ ├── http_util.go
│ │ │ ├── log.go
│ │ │ └── transport.go
│ ├── keepalive
│ │ └── keepalive.go
│ ├── metadata
│ │ └── metadata.go
│ ├── naming
│ │ ├── dns_resolver.go
│ │ └── naming.go
│ ├── peer
│ │ └── peer.go
│ ├── picker_wrapper.go
│ ├── pickfirst.go
│ ├── preloader.go
│ ├── proxy.go
│ ├── resolver
│ │ ├── dns
│ │ │ └── dns_resolver.go
│ │ ├── passthrough
│ │ │ └── passthrough.go
│ │ └── resolver.go
│ ├── resolver_conn_wrapper.go
│ ├── rpc_util.go
│ ├── server.go
│ ├── service_config.go
│ ├── serviceconfig
│ │ └── serviceconfig.go
│ ├── stats
│ │ ├── handlers.go
│ │ └── stats.go
│ ├── status
│ │ └── status.go
│ ├── stream.go
│ ├── tap
│ │ └── tap.go
│ ├── trace.go
│ ├── version.go
│ └── vet.sh
└── protobuf
│ ├── AUTHORS
│ ├── CONTRIBUTORS
│ ├── LICENSE
│ ├── PATENTS
│ ├── encoding
│ ├── prototext
│ │ ├── decode.go
│ │ ├── doc.go
│ │ └── encode.go
│ └── protowire
│ │ └── wire.go
│ ├── internal
│ ├── descfmt
│ │ └── stringer.go
│ ├── descopts
│ │ └── options.go
│ ├── detrand
│ │ └── rand.go
│ ├── encoding
│ │ ├── defval
│ │ │ └── default.go
│ │ ├── messageset
│ │ │ └── messageset.go
│ │ ├── tag
│ │ │ └── tag.go
│ │ └── text
│ │ │ ├── decode.go
│ │ │ ├── decode_number.go
│ │ │ ├── decode_string.go
│ │ │ ├── decode_token.go
│ │ │ ├── doc.go
│ │ │ └── encode.go
│ ├── errors
│ │ ├── errors.go
│ │ ├── is_go112.go
│ │ └── is_go113.go
│ ├── fieldnum
│ │ ├── any_gen.go
│ │ ├── api_gen.go
│ │ ├── descriptor_gen.go
│ │ ├── doc.go
│ │ ├── duration_gen.go
│ │ ├── empty_gen.go
│ │ ├── field_mask_gen.go
│ │ ├── source_context_gen.go
│ │ ├── struct_gen.go
│ │ ├── timestamp_gen.go
│ │ ├── type_gen.go
│ │ └── wrappers_gen.go
│ ├── fieldsort
│ │ └── fieldsort.go
│ ├── filedesc
│ │ ├── build.go
│ │ ├── desc.go
│ │ ├── desc_init.go
│ │ ├── desc_lazy.go
│ │ ├── desc_list.go
│ │ ├── desc_list_gen.go
│ │ └── placeholder.go
│ ├── filetype
│ │ └── build.go
│ ├── flags
│ │ ├── flags.go
│ │ ├── proto_legacy_disable.go
│ │ └── proto_legacy_enable.go
│ ├── genname
│ │ └── name.go
│ ├── impl
│ │ ├── api_export.go
│ │ ├── checkinit.go
│ │ ├── codec_extension.go
│ │ ├── codec_field.go
│ │ ├── codec_gen.go
│ │ ├── codec_map.go
│ │ ├── codec_map_go111.go
│ │ ├── codec_map_go112.go
│ │ ├── codec_message.go
│ │ ├── codec_messageset.go
│ │ ├── codec_reflect.go
│ │ ├── codec_tables.go
│ │ ├── codec_unsafe.go
│ │ ├── convert.go
│ │ ├── convert_list.go
│ │ ├── convert_map.go
│ │ ├── decode.go
│ │ ├── encode.go
│ │ ├── enum.go
│ │ ├── extension.go
│ │ ├── legacy_enum.go
│ │ ├── legacy_export.go
│ │ ├── legacy_extension.go
│ │ ├── legacy_file.go
│ │ ├── legacy_message.go
│ │ ├── merge.go
│ │ ├── merge_gen.go
│ │ ├── message.go
│ │ ├── message_reflect.go
│ │ ├── message_reflect_field.go
│ │ ├── message_reflect_gen.go
│ │ ├── pointer_reflect.go
│ │ ├── pointer_unsafe.go
│ │ ├── validate.go
│ │ └── weak.go
│ ├── mapsort
│ │ └── mapsort.go
│ ├── pragma
│ │ └── pragma.go
│ ├── set
│ │ └── ints.go
│ ├── strs
│ │ ├── strings.go
│ │ ├── strings_pure.go
│ │ └── strings_unsafe.go
│ └── version
│ │ └── version.go
│ ├── proto
│ ├── checkinit.go
│ ├── decode.go
│ ├── decode_gen.go
│ ├── doc.go
│ ├── encode.go
│ ├── encode_gen.go
│ ├── equal.go
│ ├── extension.go
│ ├── merge.go
│ ├── messageset.go
│ ├── proto.go
│ ├── proto_methods.go
│ ├── proto_reflect.go
│ ├── reset.go
│ ├── size.go
│ ├── size_gen.go
│ └── wrappers.go
│ ├── reflect
│ ├── protoreflect
│ │ ├── methods.go
│ │ ├── proto.go
│ │ ├── source.go
│ │ ├── type.go
│ │ ├── value.go
│ │ ├── value_pure.go
│ │ ├── value_union.go
│ │ └── value_unsafe.go
│ └── protoregistry
│ │ └── registry.go
│ ├── runtime
│ ├── protoiface
│ │ ├── legacy.go
│ │ └── methods.go
│ └── protoimpl
│ │ ├── impl.go
│ │ └── version.go
│ └── types
│ ├── descriptorpb
│ └── descriptor.pb.go
│ └── known
│ ├── anypb
│ └── any.pb.go
│ ├── durationpb
│ └── duration.pb.go
│ └── timestamppb
│ └── timestamp.pb.go
├── gopkg.in
├── alecthomas
│ └── kingpin.v2
│ │ ├── .travis.yml
│ │ ├── COPYING
│ │ ├── README.md
│ │ ├── actions.go
│ │ ├── app.go
│ │ ├── args.go
│ │ ├── cmd.go
│ │ ├── completions.go
│ │ ├── doc.go
│ │ ├── envar.go
│ │ ├── flags.go
│ │ ├── global.go
│ │ ├── guesswidth.go
│ │ ├── guesswidth_unix.go
│ │ ├── model.go
│ │ ├── parser.go
│ │ ├── parsers.go
│ │ ├── templates.go
│ │ ├── usage.go
│ │ ├── values.go
│ │ ├── values.json
│ │ └── values_generated.go
└── yaml.v2
│ ├── .travis.yml
│ ├── LICENSE
│ ├── LICENSE.libyaml
│ ├── NOTICE
│ ├── README.md
│ ├── apic.go
│ ├── decode.go
│ ├── emitterc.go
│ ├── encode.go
│ ├── go.mod
│ ├── parserc.go
│ ├── readerc.go
│ ├── resolve.go
│ ├── scannerc.go
│ ├── sorter.go
│ ├── writerc.go
│ ├── yaml.go
│ ├── yamlh.go
│ └── yamlprivateh.go
└── modules.txt
/.circleci/config.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | jobs:
3 | build:
4 | docker:
5 | - image: circleci/golang:1.14
6 | working_directory: ~/data-acc
7 | steps:
8 | - checkout
9 | - restore_cache:
10 | keys:
11 | - go-mod-v1-{{ checksum "go.sum" }}
12 |
13 | - run: make tar
14 | - run: make test
15 | - run: bash <(curl -s https://codecov.io/bash)
16 |
17 | - save_cache:
18 | key: go-mod-v1-{{ checksum "go.sum" }}
19 | paths:
20 | - "/go/pkg/mod"
21 |
22 | - store_artifacts:
23 | path: ~/data-acc/bin
24 |
25 | workflows:
26 | version: 2
27 | regular-build:
28 | jobs:
29 | - build
30 | tagged-build:
31 | jobs:
32 | - build:
33 | filters:
34 | tags:
35 | only: /^v.*/
36 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /bin
2 | /.go
3 | /.push-*
4 | /.container-*
5 | /.dockerfile-*
6 | /.idea/workspace.xml
7 | /docker-slurm/bin/*
8 | /docker-slurm/fs-ansible/*
9 | /dac-ansible/.venv/*
10 |
--------------------------------------------------------------------------------
/.idea/data-acc.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/.idea/dictionaries/john.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ansible
5 | dacctl
6 | dacd
7 | nodehostnamefile
8 | slurm
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/webResources.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/CONTRIBUTING.rst:
--------------------------------------------------------------------------------
1 | Please raise issues and submit pull requests via Github.
2 |
3 | Thanks in advance!
4 |
--------------------------------------------------------------------------------
/build/func_test.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eu -o pipefail
4 |
5 | DOWNLOAD_URL=https://github.com/etcd-io/etcd/releases/download
6 | ETCD_VER=v3.3.10
7 | ETCDCTL_API=3
8 |
9 | if [ ! -d /tmp/etcd-download ]; then
10 | curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
11 | rm -rf /tmp/etcd-download
12 | mkdir /tmp/etcd-download
13 | tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download --strip-components=1
14 | rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
15 | fi
16 | /tmp/etcd-download/etcd --version
17 | ETCDCTL_API=3 /tmp/etcd-download/etcdctl version
18 |
19 | make
20 |
21 | # be sure to kill etcd even if we hit an error
22 | trap 'kill $(jobs -p)' EXIT
23 | /tmp/etcd-download/etcd &
24 |
25 | ETCDCTL_ENDPOINTS=127.0.0.1:2379 ./bin/dac-func-test
26 |
--------------------------------------------------------------------------------
/build/rebuild_mocks.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | set -eux
4 |
5 | go get github.com/golang/mock/mockgen
6 |
7 | echo "Regenerate mocks:"
8 |
9 | mkdir -p internal/pkg/mocks
10 |
11 | items="session session_action_handler"
12 | for i in $items; do
13 | mockgen -source=internal/pkg/facade/${i}.go \
14 | >internal/pkg/mock_facade/${i}.go
15 | done
16 |
17 | items="disk"
18 | for i in $items; do
19 | mockgen -source=internal/pkg/fileio/${i}.go \
20 | >internal/pkg/mock_fileio/${i}_mock.go
21 | done
22 |
23 | items="provider ansible"
24 | for i in $items; do
25 | mockgen -source=internal/pkg/filesystem/${i}.go \
26 | >internal/pkg/mock_filesystem/${i}.go
27 | done
28 |
29 | items="brick_allocation brick_host session session_actions"
30 | for i in $items; do
31 | mockgen -source=internal/pkg/registry/${i}.go \
32 | >internal/pkg/mock_registry/${i}.go
33 | done
34 |
35 | items="keystore"
36 | for i in $items; do
37 | mockgen -source=internal/pkg/store/${i}.go \
38 | >internal/pkg/mock_store/${i}.go
39 | done
40 |
--------------------------------------------------------------------------------
/cmd/dacd/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "github.com/RSE-Cambridge/data-acc/internal/pkg/dacd"
5 | "github.com/RSE-Cambridge/data-acc/internal/pkg/dacd/brick_manager_impl"
6 | "github.com/RSE-Cambridge/data-acc/internal/pkg/store_impl"
7 | "log"
8 | "os"
9 | "os/signal"
10 | "syscall"
11 | )
12 |
13 | func waitForShutdown(manager dacd.BrickManager) {
14 | c := make(chan os.Signal)
15 | signal.Notify(c, os.Interrupt, syscall.SIGINT)
16 | <-c
17 | log.Println("I have been asked to shutdown, doing tidy up...")
18 | manager.Shutdown()
19 | os.Exit(1)
20 | }
21 |
22 | func main() {
23 | log.Println("Starting data-accelerator's brick manager")
24 |
25 | keystore := store_impl.NewKeystore()
26 | defer func() {
27 | log.Println("keystore closed with error: ", keystore.Close())
28 | }()
29 |
30 | manager := brick_manager_impl.NewBrickManager(keystore)
31 | manager.Startup()
32 |
33 | log.Println("Brick manager started for:", manager.Hostname())
34 |
35 | waitForShutdown(manager)
36 | }
37 |
--------------------------------------------------------------------------------
/dac-ansible/ansible.cfg:
--------------------------------------------------------------------------------
1 | [defaults]
2 | forks = 20
3 | gathering = smart
4 |
5 | [ssh_connection]
6 | pipelining = True
7 | retries = 3
8 |
--------------------------------------------------------------------------------
/dac-ansible/hosts.example:
--------------------------------------------------------------------------------
1 | [dac_workers]
2 | dac1.dac.hpc.cam.ac.uk ansible_host=10.43.101.29 ansible_user=centos
3 | dac2.dac.hpc.cam.ac.uk ansible_host=10.43.101.31 ansible_user=centos
4 | dac3.dac.hpc.cam.ac.uk ansible_host=10.43.101.9 ansible_user=centos
5 |
6 | [etcd_master]
7 | dac-etcd.dac.hpc.cam.ac.uk ansible_host=10.43.101.30 ansible_user=centos
8 |
9 | [etcd:children]
10 | etcd_master
11 | dac_workers
12 |
13 | [slurm_master]
14 | dac-slurm-master.dac.hpc.cam.ac.uk ansible_host=10.43.101.28 ansible_user=centos
15 |
16 | [slurm_workers]
17 | slurm-cpu1.dac.hpc.cam.ac.uk ansible_host=10.43.101.40 ansible_user=centos
18 | slurm-cpu2.dac.hpc.cam.ac.uk ansible_host=10.43.101.37 ansible_user=centos
19 |
20 | [slurm:children]
21 | slurm_master
22 | slurm_workers
23 |
--------------------------------------------------------------------------------
/dac-ansible/requirements.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - src: andrewrothstein.etcd-cluster
3 | - src: andrewrothstein.pki
4 | - src: geerlingguy.nfs
5 | - src: geerlingguy.repo-epel
6 | - src: geerlingguy.pip
7 | - src: https://github.com/RSE-Cambridge/slurm-ansible
8 |
--------------------------------------------------------------------------------
/dac-ansible/roles/data-acc/defaults/main.yml:
--------------------------------------------------------------------------------
1 | ---
2 | data_acc_version: 'v2.6'
3 | data_acc_checksum: 'sha256:36a4307fef65c0738befc86750f2d511e81b14802677f668bfd23e6fd7fdc72e'
4 | data_acc_platform: linux-amd64
5 | data_acc_mirror: https://github.com/RSE-Cambridge/data-acc/releases/download
6 | data_acc_install_dir: /usr/local/bin
7 | data_acc_download_timeout_seconds: 600
8 |
9 | data_acc_install_dacd: True
10 | data_acc_launch: True
11 |
12 | data_acc_name: 'data-acc-{{data_acc_version}}'
13 | data_acc_tgz: '{{data_acc_name}}.tgz'
14 | data_acc_tgz_url: '{{ data_acc_mirror }}/{{ data_acc_version }}/data-acc-{{ data_acc_version }}.tgz'
15 |
16 | data_acc_user: dac
17 | data_acc_group: dac
18 | data_acc_data_dir: /var/lib/dac
19 |
--------------------------------------------------------------------------------
/dac-ansible/roles/data-acc/templates/dacd.conf.j2:
--------------------------------------------------------------------------------
1 | ETCDCTL_API=3
2 | ETCDCTL_ENDPOINTS=https://{{ hostvars[groups['etcd_master'][0]].ansible_host }}:2379
3 | #ETCD_CLIENT_DEBUG=1
4 | ETCDCTL_CERT_FILE=/etc/data-acc/pki/{{ inventory_hostname }}.pem
5 | ETCDCTL_KEY_FILE=/etc/data-acc/pki/{{ inventory_hostname }}-key.pem
6 | ETCDCTL_CA_FILE=/etc/data-acc/pki/ca.pem
7 |
8 | # dacd config settings
9 | DAC_POOL_NAME=default
10 | DAC_BRICK_CAPACITY_GB=1600
11 | DAC_BRICK_COUNT=5
12 | DAC_BRICK_ADDRESS_PATTERN="loop%d"
13 |
14 | #DAC_SKIP_ANSIBLE=True
15 | DAC_ANSIBLE_DIR={{data_acc_install_dir}}/{{data_acc_name}}/fs-ansible/
16 | DAC_HOST_GROUP=dac-fake
17 | DACCTL_LOG=/var/log/dacctl.log
18 | #DAC_LNET_SUFFIX="-opa@o2ib1"
19 | DAC_MDT_SIZE_MB="50"
20 | DAC_MAX_MDT_COUNT=2
21 |
--------------------------------------------------------------------------------
/dac-ansible/roles/data-acc/templates/dacd.service.j2:
--------------------------------------------------------------------------------
1 | [Unit]
2 | Description=Data Accelerator Host
3 | After=network.target
4 |
5 | [Service]
6 | Type=simple
7 | User={{data_acc_user}}
8 | EnvironmentFile=-/etc/data-acc/dacd.conf
9 | # set GOMAXPROCS to number of processors
10 | ExecStart=/usr/local/bin/dacd
11 | Restart=on-failure
12 |
13 | PermissionsStartOnly=true
14 | StandardOutput=syslog
15 | StandardError=syslog
16 | SyslogIdentifier=dac
17 |
18 | [Install]
19 | WantedBy=multi-user.target
20 |
--------------------------------------------------------------------------------
/dac-ansible/roles/data-acc/templates/etcd-ls.sh:
--------------------------------------------------------------------------------
1 | set -eux
2 |
3 | set -a
4 | . /etc/data-acc/dacd.conf
5 | set +a
6 |
7 | /usr/local/bin/etcdctl --key /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk-key.pem --cert /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk.pem --cacert /etc/data-acc/pki/ca.pem get --prefix ''
8 |
--------------------------------------------------------------------------------
/dac-ansible/roles/data-acc/templates/etcd-rm-rf.sh:
--------------------------------------------------------------------------------
1 | set -eux
2 |
3 | set -a
4 | . /etc/data-acc/dacd.conf
5 | set +a
6 |
7 | /usr/local/bin/etcdctl --key /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk-key.pem --cert /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk.pem --cacert /etc/data-acc/pki/ca.pem del --prefix ''
8 |
--------------------------------------------------------------------------------
/dac-ansible/templates/slurm-worker.yml.j2:
--------------------------------------------------------------------------------
1 | version: "2.2"
2 |
3 | services:
4 | slurmd:
5 | image: johngarbutt/data-acc-slurm
6 | command: ["slurmd"]
7 | container_name: "slurmd"
8 | volumes:
9 | - etc_munge:/etc/munge
10 | - etc_slurm:/etc/slurm
11 | - slurm_jobdir:/data
12 | - var_log_slurm:/var/log/slurm
13 | expose:
14 | - "6818"
15 | - "60001-63000"
16 | environment:
17 | - "MYSQL_HOST={{ hostvars[groups['slurm_master'][0]].ansible_host }}"
18 | - "SLURM_DB_HOST=dac-slurm-master"
19 | - "SLURM_DB={{ hostvars[groups['slurm_master'][0]].ansible_host }}"
20 | - "SLURM_CTL={{ hostvars[groups['slurm_master'][0]].ansible_host }}"
21 | - "SLURM_CTL_HOST=dac-slurm-master"
22 | - "COMPUTE_NODE=slurm-cpu"
23 | network_mode: host
24 |
25 | volumes:
26 | etc_munge:
27 | etc_slurm:
28 | slurm_jobdir:
29 | var_log_slurm:
30 |
--------------------------------------------------------------------------------
/docker-slurm/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -eux
3 |
4 | cd ../
5 | make clean
6 | make tar
7 |
8 | cd docker-slurm
9 | rm -rf ./bin
10 | mkdir ./bin
11 | cp ../bin/*.tgz ./bin
12 | mv `ls bin/*.tgz` ./bin/data-acc.tgz
13 |
14 | docker-compose build
15 | #docker-compose push
16 |
--------------------------------------------------------------------------------
/docker-slurm/burst_buffer.conf:
--------------------------------------------------------------------------------
1 | Flags=EnablePersistent,PrivateData
2 |
3 | StageInTimeout=3600
4 | StageOutTimeout=3600
5 | OtherTimeout=300
6 |
7 | DefaultPool=default
8 |
--------------------------------------------------------------------------------
/docker-slurm/demo.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -eux
3 |
4 | docker-compose down -v
5 |
6 | ./build.sh
7 |
8 | docker-compose up -d
9 |
10 | sleep 10
11 | ./register_cluster.sh
12 |
13 | docker exec slurmctld bash -c '/usr/local/bin/data-acc/tools/slurm-test.sh'
14 |
15 | sleep 10
16 | docker exec slurmctld bash -c "scontrol show burstbuffer"
17 | docker exec slurmctld bash -c "squeue"
18 |
--------------------------------------------------------------------------------
/docker-slurm/register_cluster.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | set -e
3 |
4 | docker exec slurmctld bash -c "/usr/bin/sacctmgr --immediate add cluster name=linux" && \
5 | docker-compose restart slurmdbd slurmctld
6 |
--------------------------------------------------------------------------------
/docker-slurm/slurmdbd.conf:
--------------------------------------------------------------------------------
1 | #
2 | # Example slurmdbd.conf file.
3 | #
4 | # See the slurmdbd.conf man page for more information.
5 | #
6 | # Archive info
7 | #ArchiveJobs=yes
8 | #ArchiveDir="/tmp"
9 | #ArchiveSteps=yes
10 | #ArchiveScript=
11 | #JobPurge=12
12 | #StepPurge=1
13 | #
14 | # Authentication info
15 | AuthType=auth/munge
16 | #AuthInfo=/var/run/munge/munge.socket.2
17 | #
18 | # slurmDBD info
19 | DbdAddr=$SLURM_DB
20 | DbdHost=$SLURM_DB_HOST
21 | DbdPort=6819
22 | SlurmUser=slurm
23 | #MessageTimeout=300
24 | DebugLevel=4
25 | #DefaultQOS=normal,standby
26 | LogFile=/var/log/slurm/slurmdbd.log
27 | PidFile=/var/run/slurmdbd/slurmdbd.pid
28 | #PluginDir=/usr/lib/slurm
29 | #PrivateData=accounts,users,usage,jobs
30 | #TrackWCKey=yes
31 | #
32 | # Database info
33 | StorageType=accounting_storage/mysql
34 | StorageHost=$MYSQL_HOST
35 | StorageUser=slurm
36 | StoragePass=password
37 | StorageLoc=slurm_acct_db
38 |
--------------------------------------------------------------------------------
/docs/_config.yml:
--------------------------------------------------------------------------------
1 | theme: jekyll-theme-slate
--------------------------------------------------------------------------------
/fs-ansible/README.md:
--------------------------------------------------------------------------------
1 | # Configure fileystems for data-acc
2 |
3 | This provides the ansible to configure Lustre file-systems for the
4 | data accelerator. The BeeGFS scripts are currently not maintained.
5 |
6 | The current entry points are the following playbooks:
7 |
8 | * create.yml - create empty lustre filesystem
9 | * delete.yml - teardown buffer, deleting partitions, disks not wiped
10 | * restore.yml - re-mount filesystem (after dac host reboot)
11 |
12 | The expected inventory format is best seen in the dac unit tests:
13 |
14 | * https://github.com/RSE-Cambridge/data-acc/blob/master/internal/pkg/filesystem_impl/ansible_test.go
15 |
16 | Note that dacctl is able to generate the ansible being used for any
17 | current buffer via the `generate_ansible` command.
18 |
19 | ## Install notes
20 |
21 | You may find this useful to run the above ansible-playbook command:
22 |
23 | virtualenv .venv
24 | . .venv/bin/activate
25 | pip install -U pip
26 | pip install -U ansible
27 |
--------------------------------------------------------------------------------
/fs-ansible/ansible.cfg:
--------------------------------------------------------------------------------
1 | [defaults]
2 | forks = 30
3 | gathering = smart
4 |
5 | [ssh_connection]
6 | ssh_args = -o ControlMaster=auto -o ControlPersist=240s
7 | pipelining = True
8 | retries = 3
9 |
--------------------------------------------------------------------------------
/fs-ansible/create.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Create Lustre filesystem (format)
3 | hosts: all
4 | any_errors_fatal: true
5 | become: yes
6 | roles:
7 | - role: lustre
8 | vars:
9 | lustre_state: "present"
10 | lustre_format_disks: true
--------------------------------------------------------------------------------
/fs-ansible/delete.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Delete Lustre filesystem
3 | hosts: all
4 | any_errors_fatal: true
5 | become: yes
6 | roles:
7 | - role: lustre
8 | vars:
9 | lustre_state: "absent"
--------------------------------------------------------------------------------
/fs-ansible/restore.yml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: Restore Lustre filesystem
3 | hosts: all
4 | any_errors_fatal: true
5 | become: yes
6 | roles:
7 | - role: lustre
8 | vars:
9 | lustre_state: "present"
10 | lustre_format_disks: false
--------------------------------------------------------------------------------
/fs-ansible/roles/beegfs/tasks/client-build-ops.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: set ib enable for building client
3 | lineinfile:
4 | path: /etc/beegfs/beegfs-client-autobuild.conf
5 | regexp: '^buildArgs='
6 | line: 'buildArgs=-j8 BEEGFS_OPENTK_IBVERBS=1'
7 | tags: ['never', 'rebuild_client']
8 |
9 | - name: rebuild client
10 | command: '/etc/init.d/beegfs-client rebuild'
11 | tags: ['never', 'rebuild_client']
12 |
13 |
--------------------------------------------------------------------------------
/fs-ansible/roles/beegfs/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | - include: repo.yaml
3 | - include: client-build-ops.yaml
4 | - include: format-mount.yaml
5 | - include: create-mgs-mdt.yaml
6 | - include: create-ost.yaml
7 | - include: client.yaml
8 | - include: stop-all.yaml
9 | - include: unmount.yaml
10 |
--------------------------------------------------------------------------------
/fs-ansible/roles/beegfs/tasks/repo.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: enable beegfs repo
3 | yum_repository:
4 | name: BeeGFS7
5 | description: "BeeGFS 7"
6 | file: beegfs-repo
7 | baseurl: http://www.beegfs.io/release/beegfs_7/dists/rhel7
8 | gpgcheck: no
9 | tags: ['never', 'create_mgs', 'create_mdt']
10 |
11 | - name: install beegfs
12 | yum:
13 | name: "{{ item }}"
14 | state: present
15 | with_items:
16 | - libibverbs-utils
17 | - beegfs-mgmtd
18 | - beegfs-meta
19 | - beegfs-storage
20 | - beegfs-client
21 | - beegfs-helperd
22 | - beegfs-utils
23 | - beegfs-admon
24 | - beeond
25 | tags: ['never', 'create_mgs', 'create_mdt']
26 |
--------------------------------------------------------------------------------
/fs-ansible/roles/beegfs/tasks/stop-all.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | # facts set in create-ost and create-mgs-mdt
3 | - name: stop storage service
4 | systemd:
5 | state: stopped
6 | name: "beegfs-storage@{{ fs_name }}-{{ item }}.service"
7 | loop: "{{ osts.keys() }}"
8 | when:
9 | - osts is defined
10 | tags: ['never', 'stop_all']
11 |
12 | - name: stop meta service
13 | systemd:
14 | state: stopped
15 | name: "beegfs-meta@{{ fs_name }}.service"
16 | when:
17 | - mdt is defined
18 | tags: ['never', 'stop_all']
19 |
20 | - name: stop mgmtd service
21 | systemd:
22 | state: stopped
23 | name: "beegfs-mgmtd@{{ fs_name }}.service"
24 | when:
25 | - mgs is defined
26 | tags: ['never', 'stop_all']
27 |
--------------------------------------------------------------------------------
/fs-ansible/roles/beegfs/tasks/unmount.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | # facts are set in format-mount.yaml
3 | - name: Unmount disks
4 | block:
5 |
6 | - name: Mount EXT4 OSTs
7 | command: umount -l /data/{{ fs_name }}/{{ item }}
8 | register: command_result
9 | failed_when: "command_result.rc != 0 and ('not mounted' not in command_result.stderr) and ('mountpoint not found' not in command_result.stderr)"
10 | changed_when: "command_result.rc == 0"
11 | loop: "{{ all_disks }}"
12 |
13 | - name: Delete mount point dir
14 | file:
15 | path: /data/{{ fs_name }}
16 | state: absent
17 |
18 | tags: ['never', 'unmount', 'stop_all']
19 |
--------------------------------------------------------------------------------
/fs-ansible/roles/lustre/defaults/main.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | # state is either present or absent
3 | lustre_state: "present"
4 | lustre_format_disks: true
5 | lustre_stop_mgs: false
6 |
7 | mdt_size_mb: "50"
8 |
9 | # following are usually overwritten by host vars
10 | mdts: {}
11 | osts: {}
--------------------------------------------------------------------------------
/fs-ansible/roles/lustre/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | - import_tasks: wipe.yaml
3 | when: lustre_format_disks|bool and lustre_state == "present"
4 |
5 | - import_tasks: format.yaml
6 | when: lustre_format_disks|bool and lustre_state == "present"
7 |
8 | - import_tasks: mount.yaml
9 | when: lustre_state == "present"
10 |
11 | - import_tasks: unmount.yaml
12 | when: lustre_state == "absent"
13 |
14 | - import_tasks: wipe.yaml
15 | when: lustre_state == "absent"
16 |
--------------------------------------------------------------------------------
/fs-ansible/roles/lustre/tasks/wipe.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | - set_fact:
3 | mdts: "{{ mdts | default({}) }}"
4 | osts: "{{ osts | default({}) }}"
5 |
6 | # TODO: maybe call wipefs or ss out the block device headers
7 |
8 | - name: Remove old MDT Partition
9 | parted:
10 | device: "/dev/{{ item }}"
11 | number: 1
12 | state: absent
13 | loop: "{{ osts | combine(mdts) | list }}"
14 |
15 | - name: Remove old OST Partition
16 | parted:
17 | device: "/dev/{{ item }}"
18 | number: 2
19 | state: absent
20 | loop: "{{ osts | combine(mdts) | list }}"
21 |
22 | - name: Wait for MDT partition to disappear from /dev
23 | wait_for:
24 | path: "/dev/{{ item }}p1"
25 | state: absent
26 | timeout: 120
27 | sleep: 5
28 | loop: "{{ osts | combine(mdts) | list }}"
29 |
30 | - name: Wait for OST partition to disappear from /dev
31 | wait_for:
32 | path: "/dev/{{ item }}p2"
33 | state: absent
34 | timeout: 120
35 | sleep: 5
36 | loop: "{{ osts | combine(mdts) | list }}"
37 |
--------------------------------------------------------------------------------
/fs-ansible/roles/lustre_client_mount/defaults/main.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | lustre_client_mount_present: true
--------------------------------------------------------------------------------
/fs-ansible/roles/lustre_client_mount/tasks/main.yaml:
--------------------------------------------------------------------------------
1 | ---
2 | - name: mount lustre FS
3 | block:
4 | - name: ensure mount dir exists
5 | file:
6 | path: "/mnt/lustre/{{ fs_name }}"
7 | state: directory
8 | recurse: yes
9 | - name: mount lustre fs
10 | command: "mount -t lustre {{ mgsnode }}{{ lnet_suffix }}:/{{ fs_name }} /mnt/lustre/{{ fs_name }}"
11 | register: command_result
12 | failed_when: "command_result.rc != 0 and ('is already mounted' not in command_result.stderr)"
13 | changed_when: "command_result.rc == 0"
14 | when: "lustre_client_mount_present|bool"
15 |
16 | - name: umount lustre FS
17 | block:
18 | - name: umount lustre fs
19 | command: "umount -l /mnt/lustre/{{ fs_name }}"
20 | register: command_result
21 | failed_when: "command_result.rc != 0 and ('not mounted' not in command_result.stderr) and ('mountpoint not found' not in command_result.stderr)"
22 | changed_when: "command_result.rc == 0"
23 |
24 | - name: ensure mount dir deleted
25 | file:
26 | path: "/mnt/lustre/{{ fs_name }}"
27 | state: absent
28 | when: "not (lustre_client_mount_present|bool)"
--------------------------------------------------------------------------------
/internal/pkg/config/config_test.go:
--------------------------------------------------------------------------------
1 | package config
2 |
3 | import (
4 | "github.com/RSE-Cambridge/data-acc/internal/pkg/datamodel"
5 | "github.com/stretchr/testify/assert"
6 | "os"
7 | "testing"
8 | )
9 |
10 | func TestGetBrickManagerConfig(t *testing.T) {
11 | config := GetBrickManagerConfig(DefaultEnv)
12 |
13 | hostname, _ := os.Hostname()
14 | assert.Equal(t, datamodel.BrickHostName(hostname), config.BrickHostName)
15 | assert.Equal(t, uint(12), config.DeviceCount)
16 | assert.Equal(t, datamodel.PoolName("default"), config.PoolName)
17 | assert.Equal(t, true, config.HostEnabled)
18 | assert.Equal(t, "nvme%dn1", config.DeviceAddressPattern)
19 | assert.Equal(t, uint(1400), config.DeviceCapacityGiB)
20 | }
21 |
--------------------------------------------------------------------------------
/internal/pkg/config/filesystem.go:
--------------------------------------------------------------------------------
1 | package config
2 |
3 | type FilesystemConfig struct {
4 | MGSDevice string
5 | MGSHost string
6 | MaxMDTs uint
7 | HostGroup string
8 | AnsibleDir string
9 | SkipAnsible bool
10 | LnetSuffix string
11 | MDTSizeMB uint
12 | }
13 |
14 | func GetFilesystemConfig() FilesystemConfig {
15 | env := DefaultEnv
16 | conf := FilesystemConfig{
17 | MGSDevice: getString(env, "DAC_MGS_DEV", "sdb"),
18 | MGSHost: getString(env, "DAC_MGS_HOST", "localhost"),
19 | MaxMDTs: getUint(env, "DAC_MAX_MDT_COUNT", 24),
20 | HostGroup: getString(env, "DAC_HOST_GROUP", "dac-prod"),
21 | AnsibleDir: getString(env, "DAC_ANSIBLE_DIR", "/var/lib/data-acc/fs-ansible/"),
22 | SkipAnsible: getBool(env, "DAC_SKIP_ANSIBLE", false),
23 | LnetSuffix: getString(env, "DAC_LNET_SUFFIX", ""),
24 | }
25 | mdtSizeMB := getUint(env, "DAC_MDT_SIZE_GB", 0) * 1024
26 | if mdtSizeMB == 0 {
27 | mdtSizeMB = getUint(env, "DAC_MDT_SIZE_MB", uint(20*1024))
28 | }
29 | conf.MDTSizeMB = mdtSizeMB
30 | return conf
31 | }
32 |
--------------------------------------------------------------------------------
/internal/pkg/config/keystore.go:
--------------------------------------------------------------------------------
1 | package config
2 |
3 | import (
4 | "log"
5 | "strings"
6 | )
7 |
8 | type KeystoreConfig struct {
9 | Endpoints []string
10 | CertFile string
11 | KeyFile string
12 | CAFile string
13 | }
14 |
15 | func GetKeystoreConfig(env ReadEnvironemnt) KeystoreConfig {
16 | config := KeystoreConfig{
17 | CertFile: getString(env, "ETCDCTL_CERT_FILE", ""),
18 | KeyFile: getString(env, "ETCDCTL_KEY_FILE", ""),
19 | CAFile: getString(env, "ETCDCTL_CA_FILE", ""),
20 | }
21 | endpointsStr := getString(env, "ETCDCTL_ENDPOINTS", "")
22 | if endpointsStr == "" {
23 | endpointsStr = getString(env, "ETCD_ENDPOINTS", "")
24 | }
25 | if endpointsStr == "" {
26 | log.Fatalf("Must set ETCDCTL_ENDPOINTS environment variable, e.g. export ETCDCTL_ENDPOINTS=127.0.0.1:2379")
27 | }
28 | config.Endpoints = strings.Split(endpointsStr, ",")
29 | return config
30 | }
31 |
--------------------------------------------------------------------------------
/internal/pkg/config/log.go:
--------------------------------------------------------------------------------
1 | package config
2 |
3 | func GetDacctlLog() string {
4 | return getString(DefaultEnv, "DACCTL_LOG", "/var/log/dacctl.log")
5 | }
6 |
--------------------------------------------------------------------------------
/internal/pkg/dacctl/actions_impl/configurations.go:
--------------------------------------------------------------------------------
1 | package actions_impl
2 |
3 | import (
4 | "encoding/json"
5 | "log"
6 | )
7 |
8 | type configurations []string
9 |
10 | func configurationToString(list configurations) string {
11 | message := map[string]configurations{"configurations": list}
12 | output, err := json.Marshal(message)
13 | if err != nil {
14 | log.Fatal(err.Error())
15 | }
16 | return string(output)
17 | }
18 |
--------------------------------------------------------------------------------
/internal/pkg/dacctl/actions_impl/instances.go:
--------------------------------------------------------------------------------
1 | package actions_impl
2 |
3 | import (
4 | "encoding/json"
5 | "github.com/prometheus/common/log"
6 | )
7 |
8 | type instanceCapacity struct {
9 | Bytes uint `json:"bytes"`
10 | Nodes uint `json:"nodes"`
11 | }
12 |
13 | type instanceLinks struct {
14 | Session string `json:"session"`
15 | }
16 |
17 | type instance struct {
18 | Id string `json:"id"`
19 | Capacity instanceCapacity `json:"capacity"`
20 | Links instanceLinks `json:"links"`
21 | }
22 |
23 | type instances []instance
24 |
25 | func instancesToString(list []instance) string {
26 | message := map[string]instances{"instances": list}
27 | output, err := json.Marshal(message)
28 | if err != nil {
29 | log.Fatal(err.Error())
30 | }
31 | return string(output)
32 | }
33 |
--------------------------------------------------------------------------------
/internal/pkg/dacctl/actions_impl/persistent_test.go:
--------------------------------------------------------------------------------
1 | package actions_impl
2 |
3 | import (
4 | "github.com/RSE-Cambridge/data-acc/internal/pkg/datamodel"
5 | "github.com/RSE-Cambridge/data-acc/internal/pkg/mock_facade"
6 | "github.com/golang/mock/gomock"
7 | "github.com/stretchr/testify/assert"
8 | "testing"
9 | )
10 |
11 | func TestDacctlActions_CreatePersistentBuffer(t *testing.T) {
12 | mockCtrl := gomock.NewController(t)
13 | defer mockCtrl.Finish()
14 | session := mock_facade.NewMockSession(mockCtrl)
15 |
16 | session.EXPECT().CreateSession(datamodel.Session{
17 | Name: "token",
18 | Owner: 1001,
19 | Group: 1002,
20 | CreatedAt: 123,
21 | VolumeRequest: datamodel.VolumeRequest{
22 | MultiJob: true,
23 | Caller: "caller",
24 | PoolName: "pool1",
25 | TotalCapacityBytes: 2147483648,
26 | },
27 | }).Return(nil)
28 | fakeTime = 123
29 |
30 | actions := dacctlActions{session: session}
31 | err := actions.CreatePersistentBuffer(getMockCliContext(2))
32 |
33 | assert.Nil(t, err)
34 | }
35 |
--------------------------------------------------------------------------------
/internal/pkg/dacctl/actions_impl/pools.go:
--------------------------------------------------------------------------------
1 | package actions_impl
2 |
3 | import (
4 | "encoding/json"
5 | "log"
6 | )
7 |
8 | type pool struct {
9 | Id string `json:"id"`
10 | Units string `json:"units"`
11 | Granularity uint `json:"granularity"`
12 | Quantity uint `json:"quantity"`
13 | Free uint `json:"free"`
14 | }
15 |
16 | type pools []pool
17 |
18 | func getPoolsAsString(list pools) string {
19 | message := map[string]pools{"pools": list}
20 | output, err := json.Marshal(message)
21 | if err != nil {
22 | log.Fatal(err.Error())
23 | }
24 | return string(output)
25 | }
26 |
--------------------------------------------------------------------------------
/internal/pkg/dacctl/actions_impl/sessions.go:
--------------------------------------------------------------------------------
1 | package actions_impl
2 |
3 | import (
4 | "encoding/json"
5 | "log"
6 | )
7 |
8 | type session struct {
9 | Id string `json:"id"`
10 | Created uint `json:"created"`
11 | Owner uint `json:"owner"`
12 | Token string `json:"token"`
13 | }
14 |
15 | type sessions []session
16 |
17 | func sessonsToString(list []session) string {
18 | message := map[string]sessions{"sessions": list}
19 | output, err := json.Marshal(message)
20 | if err != nil {
21 | log.Fatal(err.Error())
22 | }
23 | return string(output)
24 | }
25 |
--------------------------------------------------------------------------------
/internal/pkg/dacctl/interface.go:
--------------------------------------------------------------------------------
1 | package dacctl
2 |
3 | type CliContext interface {
4 | String(name string) string
5 | Int(name string) int
6 | Bool(name string) bool
7 | }
8 |
9 | type DacctlActions interface {
10 | CreatePersistentBuffer(c CliContext) error
11 | DeleteBuffer(c CliContext) error
12 | CreatePerJobBuffer(c CliContext) error
13 | ShowInstances() (string, error)
14 | ShowSessions() (string, error)
15 | ListPools() (string, error)
16 | ShowConfigurations() (string, error)
17 | ValidateJob(c CliContext) error
18 | RealSize(c CliContext) (string, error)
19 | DataIn(c CliContext) error
20 | Paths(c CliContext) error
21 | PreRun(c CliContext) error
22 | PostRun(c CliContext) error
23 | DataOut(c CliContext) error
24 | GenerateAnsible(c CliContext) (string, error)
25 | }
26 |
--------------------------------------------------------------------------------
/internal/pkg/dacd/brick_manager_impl/session_action_handler_test.go:
--------------------------------------------------------------------------------
1 | package brick_manager_impl
2 |
3 | import (
4 | "fmt"
5 | "github.com/RSE-Cambridge/data-acc/internal/pkg/datamodel"
6 | "github.com/stretchr/testify/assert"
7 | "testing"
8 | )
9 |
10 | func TestSessionActionHandler_ProcessSessionAction_Unknown(t *testing.T) {
11 | action := datamodel.SessionAction{}
12 | handler := NewSessionActionHandler(nil)
13 |
14 | assert.PanicsWithValue(t,
15 | fmt.Sprintf("not yet implemented action for %+v", action),
16 | func() { handler.ProcessSessionAction(action) })
17 | }
18 |
--------------------------------------------------------------------------------
/internal/pkg/dacd/interface.go:
--------------------------------------------------------------------------------
1 | package dacd
2 |
3 | type BrickManager interface {
4 | // Get the current hostname key that is being kept alive
5 | Hostname() string
6 |
7 | // Tidy up from previous shutdowns
8 | // , then start waiting for session actions
9 | // notify dacctl we are listening via keep alive key
10 | Startup()
11 | // Wait for any events to complete
12 | // then do any tidy up required for a graceful shutdown
13 | Shutdown()
14 | }
15 |
--------------------------------------------------------------------------------
/internal/pkg/datamodel/brick_allocation.go:
--------------------------------------------------------------------------------
1 | package datamodel
2 |
3 | // You can only have zero or one allocations records for each Brick
4 | type BrickAllocation struct {
5 | // Brick that is allocated
6 | Brick Brick
7 |
8 | // Name of the session that owns the brick
9 | Session SessionName
10 |
11 | // 0 index allocation is the primary brick,
12 | // which is responsible for provisioning the associated volume
13 | AllocatedIndex uint
14 | }
15 |
--------------------------------------------------------------------------------
/internal/pkg/datamodel/brick_host.go:
--------------------------------------------------------------------------------
1 | package datamodel
2 |
3 | type BrickHostName string
4 |
5 | type BrickHost struct {
6 | Name BrickHostName
7 |
8 | // Returns all bricks
9 | Bricks []Brick
10 |
11 | // True if allowing new volumes to use bricks from this host
12 | Enabled bool
13 | }
14 |
15 | type BrickHostStatus struct {
16 | BrickHost BrickHost
17 |
18 | // True is current keepalive key exists
19 | Alive bool
20 | }
21 |
22 | type Brick struct {
23 | // Bricks are identified by device and hostname
24 | // It must only contain the characters A-Za-z0-9
25 | // e.g. sdb, not /dev/sdb
26 | Device string
27 |
28 | // It must only contain the characters "A-Za-z0-9."
29 | BrickHostName BrickHostName
30 |
31 | // The bool a brick is associated with
32 | // It must only contain the characters A-Za-z0-9
33 | PoolName PoolName
34 |
35 | // TODO: move this to bytes, and make bytes a special type?
36 | // Size of the brick, defines the pool granularity
37 | CapacityGiB uint
38 | }
39 |
--------------------------------------------------------------------------------
/internal/pkg/datamodel/pool.go:
--------------------------------------------------------------------------------
1 | package datamodel
2 |
3 | type PoolName string
4 |
5 | type Pool struct {
6 | // The pool is derived from all the reported bricks
7 | Name PoolName
8 |
9 | // This is the allocation unit for the pool
10 | // It is the minimum size of any registered brick
11 | GranularityBytes uint
12 | }
13 |
14 | type PoolInfo struct {
15 | Pool Pool
16 |
17 | // Bricks from alive hosts
18 | AvailableBricks []Brick
19 |
20 | // All currently active bricks
21 | AllocatedBricks []BrickAllocation
22 | }
23 |
--------------------------------------------------------------------------------
/internal/pkg/datamodel/session_action.go:
--------------------------------------------------------------------------------
1 | package datamodel
2 |
3 | type SessionAction struct {
4 | Uuid string
5 | Session Session
6 | ActionType SessionActionType
7 | Error string
8 | }
9 |
10 | type SessionActionType string
11 |
12 | // TODO: probably should be an int with custom parser?
13 | const (
14 | UnknownSessionAction SessionActionType = SessionActionType("")
15 | SessionCreateFilesystem = SessionActionType("CreateFilesystem")
16 | SessionDelete = SessionActionType("Delete")
17 | SessionCopyDataIn = SessionActionType("CopyDataIn")
18 | SessionMount = SessionActionType("Mount")
19 | SessionUnmount = SessionActionType("Unmount")
20 | SessionCopyDataOut = SessionActionType("CopyDataOut")
21 | )
22 |
--------------------------------------------------------------------------------
/internal/pkg/facade/session_action_handler.go:
--------------------------------------------------------------------------------
1 | package facade
2 |
3 | import "github.com/RSE-Cambridge/data-acc/internal/pkg/datamodel"
4 |
5 | type SessionActionHandler interface {
6 | ProcessSessionAction(action datamodel.SessionAction)
7 | RestoreSession(session datamodel.Session)
8 | }
9 |
--------------------------------------------------------------------------------
/internal/pkg/filesystem/ansible.go:
--------------------------------------------------------------------------------
1 | package filesystem
2 |
3 | import "github.com/RSE-Cambridge/data-acc/internal/pkg/datamodel"
4 |
5 | type Ansible interface {
6 | // returns temp dir environment was created in
7 | CreateEnvironment(session datamodel.Session) (string, error)
8 | }
9 |
--------------------------------------------------------------------------------
/internal/pkg/filesystem/provider.go:
--------------------------------------------------------------------------------
1 | package filesystem
2 |
3 | import "github.com/RSE-Cambridge/data-acc/internal/pkg/datamodel"
4 |
5 | type Provider interface {
6 | Create(session datamodel.Session) (datamodel.FilesystemStatus, error)
7 | Restore(session datamodel.Session) error
8 | Delete(session datamodel.Session) error
9 |
10 | DataCopyIn(session datamodel.Session) error
11 | DataCopyOut(session datamodel.Session) error
12 |
13 | Mount(session datamodel.Session, attachments datamodel.AttachmentSession, setInitialPermissions bool) error
14 | Unmount(session datamodel.Session, attachments datamodel.AttachmentSession) error
15 | }
16 |
--------------------------------------------------------------------------------
/internal/pkg/filesystem_impl/fs_type.go:
--------------------------------------------------------------------------------
1 | package filesystem_impl
2 |
3 | import (
4 | "bytes"
5 | "encoding/json"
6 | )
7 |
8 | type FSType int
9 |
10 | const (
11 | BeegFS FSType = iota
12 | Lustre
13 | )
14 |
15 | var fsTypeStrings = map[FSType]string{
16 | BeegFS: "BeegFS",
17 | Lustre: "Lustre",
18 | }
19 | var stringToFSType = map[string]FSType{
20 | "": BeegFS,
21 | "BeegFS": BeegFS,
22 | "Lustre": Lustre,
23 | }
24 |
25 | func (fsType FSType) String() string {
26 | return fsTypeStrings[fsType]
27 | }
28 |
29 | func (fsType FSType) MarshalJSON() ([]byte, error) {
30 | buffer := bytes.NewBufferString(`"`)
31 | buffer.WriteString(fsTypeStrings[fsType])
32 | buffer.WriteString(`"`)
33 | return buffer.Bytes(), nil
34 | }
35 |
36 | func (fsType *FSType) UnmarshalJSON(b []byte) error {
37 | var str string
38 | err := json.Unmarshal(b, &str)
39 | if err != nil {
40 | return err
41 | }
42 | *fsType = stringToFSType[str]
43 | return nil
44 | }
45 |
--------------------------------------------------------------------------------
/internal/pkg/registry/brick_allocation.go:
--------------------------------------------------------------------------------
1 | package registry
2 |
3 | import (
4 | "github.com/RSE-Cambridge/data-acc/internal/pkg/datamodel"
5 | "github.com/RSE-Cambridge/data-acc/internal/pkg/store"
6 | )
7 |
8 | type AllocationRegistry interface {
9 | // Caller should acquire this mutex before calling GetAllPools then CreateAllocations
10 | GetAllocationMutex() (store.Mutex, error)
11 |
12 | // Get all registered pools
13 | GetPool(name datamodel.PoolName) (datamodel.Pool, error)
14 |
15 | // Creates the pool if it doesn't exist
16 | // error if the granularity doesn't match and existing pool
17 | EnsurePoolCreated(poolName datamodel.PoolName, granularityBytes uint) (datamodel.Pool, error)
18 |
19 | // Get brick availability by pool
20 | GetAllPoolInfos() ([]datamodel.PoolInfo, error)
21 |
22 | // Get brick availability for one pool
23 | // bricks are only available if corresponding host currently alive
24 | GetPoolInfo(poolName datamodel.PoolName) (datamodel.PoolInfo, error)
25 | }
26 |
--------------------------------------------------------------------------------
/internal/pkg/registry/brick_host.go:
--------------------------------------------------------------------------------
1 | package registry
2 |
3 | import (
4 | "context"
5 | "github.com/RSE-Cambridge/data-acc/internal/pkg/datamodel"
6 | )
7 |
8 | type BrickHostRegistry interface {
9 | // BrickHost updates bricks on startup
10 | // This will error if we remove a brick that has an allocation
11 | // for a Session that isn't in an error state
12 | // This includes ensuring the pool exists and is consistent with the given brick host info
13 | UpdateBrickHost(brickHostInfo datamodel.BrickHost) error
14 |
15 | // Get all brick hosts
16 | GetAllBrickHosts() ([]datamodel.BrickHost, error)
17 |
18 | // While the process is still running this notifies others the host is up
19 | //
20 | // When a host is dead non of its bricks will get new volumes assigned,
21 | // and no bricks will get cleaned up until the next service start.
22 | // Error will be returned if the host info has not yet been written.
23 | KeepAliveHost(ctxt context.Context, brickHostName datamodel.BrickHostName) error
24 |
25 | // Check if given brick host is alive
26 | //
27 | // Error if brick host doesn't exist
28 | IsBrickHostAlive(brickHostName datamodel.BrickHostName) (bool, error)
29 | }
30 |
--------------------------------------------------------------------------------
/internal/pkg/registry/session_actions.go:
--------------------------------------------------------------------------------
1 | package registry
2 |
3 | import (
4 | "context"
5 | "github.com/RSE-Cambridge/data-acc/internal/pkg/datamodel"
6 | )
7 |
8 | type SessionActions interface {
9 | // Updates session, then requests action
10 | //
11 | // Error if current revision of session doesn't match
12 | // Error if context is cancelled or timed-out
13 | SendSessionAction(
14 | ctxt context.Context, actionType datamodel.SessionActionType,
15 | session datamodel.Session) (<-chan datamodel.SessionAction, error)
16 |
17 | // Gets all actions for the given host
18 | GetSessionActionRequests(ctxt context.Context, brickHostName datamodel.BrickHostName) (<-chan datamodel.SessionAction, error)
19 |
20 | // Get any actions that have not been completed
21 | GetOutstandingSessionActionRequests(brickHostName datamodel.BrickHostName) ([]datamodel.SessionAction, error)
22 |
23 | // Server reports given action is complete
24 | // Includes callbacks for Create Session Volume
25 | //
26 | // Error if action has already completed or doesn't exist
27 | CompleteSessionAction(action datamodel.SessionAction) error
28 | }
29 |
--------------------------------------------------------------------------------
/pkg/version/version.go:
--------------------------------------------------------------------------------
1 | /*
2 | Copyright 2016 The Kubernetes Authors.
3 |
4 | Licensed under the Apache License, Version 2.0 (the "License");
5 | you may not use this file except in compliance with the License.
6 | You may obtain a copy of the License at
7 |
8 | http://www.apache.org/licenses/LICENSE-2.0
9 |
10 | Unless required by applicable law or agreed to in writing, software
11 | distributed under the License is distributed on an "AS IS" BASIS,
12 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | See the License for the specific language governing permissions and
14 | limitations under the License.
15 | */
16 |
17 | package version
18 |
19 | // VERSION is the app-global version string, which should be substituted with a
20 | // real value during build.
21 | var VERSION = "UNKNOWN"
22 |
--------------------------------------------------------------------------------
/push.sh:
--------------------------------------------------------------------------------
1 | #make clean
2 | #make
3 | #make tar
4 | scp `ls ./bin/*.tgz` jmfg2@login-cpu.hpc.cam.ac.uk:~/data-acc-v0.6.tgz
5 |
6 | cd docker-slurm
7 | #./build.sh
8 | docker-compose push
9 |
--------------------------------------------------------------------------------
/tools/dac-reset.sh:
--------------------------------------------------------------------------------
1 | set -eux
2 |
3 | set -a
4 | . /etc/data-acc/dacd.conf
5 | set +a
6 |
7 | /usr/local/bin/etcdctl --key /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk-key.pem --cert /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk.pem --cacert /etc/data-acc/pki/ca.pem del --prefix ''
8 |
9 | # Kill all lustre filesystems
10 | #ssh slurm-cpu1 sudo umount -atl lustre
11 | #ssh slurm-cpu2 sudo umount -atl lustre
12 | ssh dac1 sudo umount -at lustre
13 | ssh dac2 sudo umount -at lustre
14 | ssh dac3 sudo umount -at lustre
15 |
16 | ssh dac1 sudo systemctl restart dacd
17 | ssh dac2 sudo systemctl restart dacd
18 | ssh dac3 sudo systemctl restart dacd
19 |
20 | /usr/local/bin/etcdctl --key /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk-key.pem --cert /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk.pem --cacert /etc/data-acc/pki/ca.pem get --prefix ''
21 |
--------------------------------------------------------------------------------
/tools/etcd-ls.sh:
--------------------------------------------------------------------------------
1 | set -eux
2 |
3 | set -a
4 | . /etc/data-acc/dacd.conf
5 | set +a
6 |
7 | /usr/local/bin/etcdctl --key /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk-key.pem --cert /etc/data-acc/pki/`hostname`.dac.hpc.cam.ac.uk.pem --cacert /etc/data-acc/pki/ca.pem get --prefix ''
8 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/template/README.md:
--------------------------------------------------------------------------------
1 | # Go's `text/template` package with newline elision
2 |
3 | This is a fork of Go 1.4's [text/template](http://golang.org/pkg/text/template/) package with one addition: a backslash immediately after a closing delimiter will delete all subsequent newlines until a non-newline.
4 |
5 | eg.
6 |
7 | ```
8 | {{if true}}\
9 | hello
10 | {{end}}\
11 | ```
12 |
13 | Will result in:
14 |
15 | ```
16 | hello\n
17 | ```
18 |
19 | Rather than:
20 |
21 | ```
22 | \n
23 | hello\n
24 | \n
25 | ```
26 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/template/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/alecthomas/template
2 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/units/COPYING:
--------------------------------------------------------------------------------
1 | Copyright (C) 2014 Alec Thomas
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of
4 | this software and associated documentation files (the "Software"), to deal in
5 | the Software without restriction, including without limitation the rights to
6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7 | of the Software, and to permit persons to whom the Software is furnished to do
8 | so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/units/README.md:
--------------------------------------------------------------------------------
1 | # Units - Helpful unit multipliers and functions for Go
2 |
3 | The goal of this package is to have functionality similar to the [time](http://golang.org/pkg/time/) package.
4 |
5 | It allows for code like this:
6 |
7 | ```go
8 | n, err := ParseBase2Bytes("1KB")
9 | // n == 1024
10 | n = units.Mebibyte * 512
11 | ```
12 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/units/doc.go:
--------------------------------------------------------------------------------
1 | // Package units provides helpful unit multipliers and functions for Go.
2 | //
3 | // The goal of this package is to have functionality similar to the time [1] package.
4 | //
5 | //
6 | // [1] http://golang.org/pkg/time/
7 | //
8 | // It allows for code like this:
9 | //
10 | // n, err := ParseBase2Bytes("1KB")
11 | // // n == 1024
12 | // n = units.Mebibyte * 512
13 | package units
14 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/units/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/alecthomas/units
2 |
--------------------------------------------------------------------------------
/vendor/github.com/alecthomas/units/si.go:
--------------------------------------------------------------------------------
1 | package units
2 |
3 | // SI units.
4 | type SI int64
5 |
6 | // SI unit multiples.
7 | const (
8 | Kilo SI = 1000
9 | Mega = Kilo * 1000
10 | Giga = Mega * 1000
11 | Tera = Giga * 1000
12 | Peta = Tera * 1000
13 | Exa = Peta * 1000
14 | )
15 |
16 | func MakeUnitMap(suffix, shortSuffix string, scale int64) map[string]float64 {
17 | return map[string]float64{
18 | shortSuffix: 1,
19 | "K" + suffix: float64(scale),
20 | "M" + suffix: float64(scale * scale),
21 | "G" + suffix: float64(scale * scale * scale),
22 | "T" + suffix: float64(scale * scale * scale * scale),
23 | "P" + suffix: float64(scale * scale * scale * scale * scale),
24 | "E" + suffix: float64(scale * scale * scale * scale * scale * scale),
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/NOTICE:
--------------------------------------------------------------------------------
1 | CoreOS Project
2 | Copyright 2014 CoreOS, Inc
3 |
4 | This product includes software developed at CoreOS, Inc.
5 | (http://www.coreos.com/).
6 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/auth/authpb/auth.proto:
--------------------------------------------------------------------------------
1 | syntax = "proto3";
2 | package authpb;
3 |
4 | import "gogoproto/gogo.proto";
5 |
6 | option (gogoproto.marshaler_all) = true;
7 | option (gogoproto.sizer_all) = true;
8 | option (gogoproto.unmarshaler_all) = true;
9 | option (gogoproto.goproto_getters_all) = false;
10 | option (gogoproto.goproto_enum_prefix_all) = false;
11 |
12 | // User is a single entry in the bucket authUsers
13 | message User {
14 | bytes name = 1;
15 | bytes password = 2;
16 | repeated string roles = 3;
17 | }
18 |
19 | // Permission is a single entity
20 | message Permission {
21 | enum Type {
22 | READ = 0;
23 | WRITE = 1;
24 | READWRITE = 2;
25 | }
26 | Type permType = 1;
27 |
28 | bytes key = 2;
29 | bytes range_end = 3;
30 | }
31 |
32 | // Role is a single entry in the bucket authRoles
33 | message Role {
34 | bytes name = 1;
35 |
36 | repeated Permission keyPermission = 2;
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/clientv3/balancer/picker/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Package picker defines/implements client balancer picker policy.
16 | package picker
17 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/clientv3/concurrency/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Package concurrency implements concurrency operations on top of
16 | // etcd such as distributed locks, barriers, and elections.
17 | package concurrency
18 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/clientv3/sort.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package clientv3
16 |
17 | type SortTarget int
18 | type SortOrder int
19 |
20 | const (
21 | SortNone SortOrder = iota
22 | SortAscend
23 | SortDescend
24 | )
25 |
26 | const (
27 | SortByKey SortTarget = iota
28 | SortByVersion
29 | SortByCreateRevision
30 | SortByModRevision
31 | SortByValue
32 | )
33 |
34 | type SortOption struct {
35 | Target SortTarget
36 | Order SortOrder
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Package rpctypes has types and values shared by the etcd server and client for v3 RPC interaction.
16 | package rpctypes
17 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/md.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package rpctypes
16 |
17 | var (
18 | MetadataRequireLeaderKey = "hasleader"
19 | MetadataHasLeader = "true"
20 |
21 | MetadataClientAPIVersionKey = "client-api-version"
22 | )
23 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/etcdserver/api/v3rpc/rpctypes/metadatafields.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package rpctypes
16 |
17 | var (
18 | TokenFieldNameGRPC = "token"
19 | TokenFieldNameSwagger = "authorization"
20 | )
21 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/pkg/logutil/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Package logutil includes utilities to facilitate logging.
16 | package logutil
17 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/pkg/systemd/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Package systemd provides utility functions for systemd.
16 | package systemd
17 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/pkg/tlsutil/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Package tlsutil provides utility functions for handling TLS.
16 | package tlsutil
17 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/pkg/transport/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Package transport implements various HTTP transport utilities based on Go
16 | // net package.
17 | package transport
18 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/pkg/types/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | // Package types declares various data types and implements type-checking
16 | // functions.
17 | package types
18 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/etcd/pkg/types/slice.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 The etcd Authors
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package types
16 |
17 | // Uint64Slice implements sort interface
18 | type Uint64Slice []uint64
19 |
20 | func (p Uint64Slice) Len() int { return len(p) }
21 | func (p Uint64Slice) Less(i, j int) bool { return p[i] < p[j] }
22 | func (p Uint64Slice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
23 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/go-semver/NOTICE:
--------------------------------------------------------------------------------
1 | CoreOS Project
2 | Copyright 2018 CoreOS, Inc
3 |
4 | This product includes software developed at CoreOS, Inc.
5 | (http://www.coreos.com/).
6 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/go-semver/semver/sort.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013-2015 CoreOS, Inc.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package semver
16 |
17 | import (
18 | "sort"
19 | )
20 |
21 | type Versions []*Version
22 |
23 | func (s Versions) Len() int {
24 | return len(s)
25 | }
26 |
27 | func (s Versions) Swap(i, j int) {
28 | s[i], s[j] = s[j], s[i]
29 | }
30 |
31 | func (s Versions) Less(i, j int) bool {
32 | return s[i].LessThan(*s[j])
33 | }
34 |
35 | // Sort sorts the given slice of Version
36 | func Sort(versions []*Version) {
37 | sort.Sort(Versions(versions))
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/go-systemd/NOTICE:
--------------------------------------------------------------------------------
1 | CoreOS Project
2 | Copyright 2018 CoreOS, Inc
3 |
4 | This product includes software developed at CoreOS, Inc.
5 | (http://www.coreos.com/).
6 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/pkg/NOTICE:
--------------------------------------------------------------------------------
1 | CoreOS Project
2 | Copyright 2014 CoreOS, Inc
3 |
4 | This product includes software developed at CoreOS, Inc.
5 | (http://www.coreos.com/).
6 |
--------------------------------------------------------------------------------
/vendor/github.com/coreos/pkg/capnslog/init_windows.go:
--------------------------------------------------------------------------------
1 | // Copyright 2015 CoreOS, Inc.
2 | //
3 | // Licensed under the Apache License, Version 2.0 (the "License");
4 | // you may not use this file except in compliance with the License.
5 | // You may obtain a copy of the License at
6 | //
7 | // http://www.apache.org/licenses/LICENSE-2.0
8 | //
9 | // Unless required by applicable law or agreed to in writing, software
10 | // distributed under the License is distributed on an "AS IS" BASIS,
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | // See the License for the specific language governing permissions and
13 | // limitations under the License.
14 |
15 | package capnslog
16 |
17 | import "os"
18 |
19 | func init() {
20 | initHijack()
21 |
22 | // Go `log` package uses os.Stderr.
23 | SetFormatter(NewPrettyFormatter(os.Stderr, false))
24 | SetGlobalLogLevel(INFO)
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/github.com/cpuguy83/go-md2man/v2/md2man/md2man.go:
--------------------------------------------------------------------------------
1 | package md2man
2 |
3 | import (
4 | "github.com/russross/blackfriday/v2"
5 | )
6 |
7 | // Render converts a markdown document into a roff formatted document.
8 | func Render(doc []byte) []byte {
9 | renderer := NewRoffRenderer()
10 |
11 | return blackfriday.Run(doc,
12 | []blackfriday.Option{blackfriday.WithRenderer(renderer),
13 | blackfriday.WithExtensions(renderer.GetExtensions())}...)
14 | }
15 |
--------------------------------------------------------------------------------
/vendor/github.com/davecgh/go-spew/LICENSE:
--------------------------------------------------------------------------------
1 | ISC License
2 |
3 | Copyright (c) 2012-2016 Dave Collins
4 |
5 | Permission to use, copy, modify, and/or distribute this software for any
6 | purpose with or without fee is hereby granted, provided that the above
7 | copyright notice and this permission notice appear in all copies.
8 |
9 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 | OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 |
--------------------------------------------------------------------------------
/vendor/github.com/gogo/protobuf/AUTHORS:
--------------------------------------------------------------------------------
1 | # This is the official list of GoGo authors for copyright purposes.
2 | # This file is distinct from the CONTRIBUTORS file, which
3 | # lists people. For example, employees are listed in CONTRIBUTORS,
4 | # but not in AUTHORS, because the employer holds the copyright.
5 |
6 | # Names should be added to this file as one of
7 | # Organization's name
8 | # Individual's name
9 | # Individual's name
10 |
11 | # Please keep the list sorted.
12 |
13 | Sendgrid, Inc
14 | Vastech SA (PTY) LTD
15 | Walter Schulze
16 |
--------------------------------------------------------------------------------
/vendor/github.com/gogo/protobuf/CONTRIBUTORS:
--------------------------------------------------------------------------------
1 | Anton Povarov
2 | Brian Goff
3 | Clayton Coleman
4 | Denis Smirnov
5 | DongYun Kang
6 | Dwayne Schultz
7 | Georg Apitz
8 | Gustav Paul
9 | Johan Brandhorst
10 | John Shahid
11 | John Tuley
12 | Laurent
13 | Patrick Lee
14 | Peter Edge
15 | Roger Johansson
16 | Sam Nguyen
17 | Sergio Arbeo
18 | Stephen J Day
19 | Tamir Duberstein
20 | Todd Eisenberger
21 | Tormod Erevik Lea
22 | Vyacheslav Kim
23 | Walter Schulze
24 |
--------------------------------------------------------------------------------
/vendor/github.com/golang/mock/AUTHORS:
--------------------------------------------------------------------------------
1 | # This is the official list of GoMock authors for copyright purposes.
2 | # This file is distinct from the CONTRIBUTORS files.
3 | # See the latter for an explanation.
4 |
5 | # Names should be added to this file as
6 | # Name or Organization
7 | # The email address is not required for organizations.
8 |
9 | # Please keep the list sorted.
10 |
11 | Alex Reece
12 | Google Inc.
13 |
--------------------------------------------------------------------------------
/vendor/github.com/golang/protobuf/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/github.com/golang/protobuf/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/github.com/golang/protobuf/ptypes/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 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 ptypes provides functionality for interacting with well-known types.
6 | package ptypes
7 |
--------------------------------------------------------------------------------
/vendor/github.com/google/uuid/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 |
3 | go:
4 | - 1.4.3
5 | - 1.5.3
6 | - tip
7 |
8 | script:
9 | - go test -v ./...
10 |
--------------------------------------------------------------------------------
/vendor/github.com/google/uuid/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # How to contribute
2 |
3 | We definitely welcome patches and contribution to this project!
4 |
5 | ### Legal requirements
6 |
7 | In order to protect both you and ourselves, you will need to sign the
8 | [Contributor License Agreement](https://cla.developers.google.com/clas).
9 |
10 | You may have already signed it for other Google projects.
11 |
--------------------------------------------------------------------------------
/vendor/github.com/google/uuid/CONTRIBUTORS:
--------------------------------------------------------------------------------
1 | Paul Borman
2 | bmatsuo
3 | shawnps
4 | theory
5 | jboverfelt
6 | dsymonds
7 | cd1
8 | wallclockbuilder
9 | dansouza
10 |
--------------------------------------------------------------------------------
/vendor/github.com/google/uuid/README.md:
--------------------------------------------------------------------------------
1 | # uuid 
2 | The uuid package generates and inspects UUIDs based on
3 | [RFC 4122](http://tools.ietf.org/html/rfc4122)
4 | and DCE 1.1: Authentication and Security Services.
5 |
6 | This package is based on the github.com/pborman/uuid package (previously named
7 | code.google.com/p/go-uuid). It differs from these earlier packages in that
8 | a UUID is a 16 byte array rather than a byte slice. One loss due to this
9 | change is the ability to represent an invalid UUID (vs a NIL UUID).
10 |
11 | ###### Install
12 | `go get github.com/google/uuid`
13 |
14 | ###### Documentation
15 | [](http://godoc.org/github.com/google/uuid)
16 |
17 | Full `go doc` style documentation for the package can be viewed online without
18 | installing this package by using the GoDoc site here:
19 | http://godoc.org/github.com/google/uuid
20 |
--------------------------------------------------------------------------------
/vendor/github.com/google/uuid/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 Google Inc. 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 uuid generates and inspects UUIDs.
6 | //
7 | // UUIDs are based on RFC 4122 and DCE 1.1: Authentication and Security
8 | // Services.
9 | //
10 | // A UUID is a 16 byte (128 bit) array. UUIDs may be used as keys to
11 | // maps or compared directly.
12 | package uuid
13 |
--------------------------------------------------------------------------------
/vendor/github.com/google/uuid/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/google/uuid
2 |
--------------------------------------------------------------------------------
/vendor/github.com/google/uuid/marshal.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 Google Inc. 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 uuid
6 |
7 | import "fmt"
8 |
9 | // MarshalText implements encoding.TextMarshaler.
10 | func (uuid UUID) MarshalText() ([]byte, error) {
11 | var js [36]byte
12 | encodeHex(js[:], uuid)
13 | return js[:], nil
14 | }
15 |
16 | // UnmarshalText implements encoding.TextUnmarshaler.
17 | func (uuid *UUID) UnmarshalText(data []byte) error {
18 | id, err := ParseBytes(data)
19 | if err == nil {
20 | *uuid = id
21 | }
22 | return err
23 | }
24 |
25 | // MarshalBinary implements encoding.BinaryMarshaler.
26 | func (uuid UUID) MarshalBinary() ([]byte, error) {
27 | return uuid[:], nil
28 | }
29 |
30 | // UnmarshalBinary implements encoding.BinaryUnmarshaler.
31 | func (uuid *UUID) UnmarshalBinary(data []byte) error {
32 | if len(data) != 16 {
33 | return fmt.Errorf("invalid UUID (got %d bytes)", len(data))
34 | }
35 | copy(uuid[:], data)
36 | return nil
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/github.com/google/uuid/node_js.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 Google Inc. 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 js
6 |
7 | package uuid
8 |
9 | // getHardwareInterface returns nil values for the JS version of the code.
10 | // This remvoves the "net" dependency, because it is not used in the browser.
11 | // Using the "net" library inflates the size of the transpiled JS code by 673k bytes.
12 | func getHardwareInterface(name string) (string, []byte) { return "", nil }
13 |
--------------------------------------------------------------------------------
/vendor/github.com/google/uuid/node_net.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 Google Inc. 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 !js
6 |
7 | package uuid
8 |
9 | import "net"
10 |
11 | var interfaces []net.Interface // cached list of interfaces
12 |
13 | // getHardwareInterface returns the name and hardware address of interface name.
14 | // If name is "" then the name and hardware address of one of the system's
15 | // interfaces is returned. If no interfaces are found (name does not exist or
16 | // there are no interfaces) then "", nil is returned.
17 | //
18 | // Only addresses of at least 6 bytes are returned.
19 | func getHardwareInterface(name string) (string, []byte) {
20 | if interfaces == nil {
21 | var err error
22 | interfaces, err = net.Interfaces()
23 | if err != nil {
24 | return "", nil
25 | }
26 | }
27 | for _, ifs := range interfaces {
28 | if len(ifs.HardwareAddr) >= 6 && (name == "" || name == ifs.Name) {
29 | return ifs.Name, ifs.HardwareAddr
30 | }
31 | }
32 | return "", nil
33 | }
34 |
--------------------------------------------------------------------------------
/vendor/github.com/konsorten/go-windows-terminal-sequences/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/konsorten/go-windows-terminal-sequences
2 |
--------------------------------------------------------------------------------
/vendor/github.com/konsorten/go-windows-terminal-sequences/sequences.go:
--------------------------------------------------------------------------------
1 | // +build windows
2 |
3 | package sequences
4 |
5 | import (
6 | "syscall"
7 | "unsafe"
8 | )
9 |
10 | var (
11 | kernel32Dll *syscall.LazyDLL = syscall.NewLazyDLL("Kernel32.dll")
12 | setConsoleMode *syscall.LazyProc = kernel32Dll.NewProc("SetConsoleMode")
13 | )
14 |
15 | func EnableVirtualTerminalProcessing(stream syscall.Handle, enable bool) error {
16 | const ENABLE_VIRTUAL_TERMINAL_PROCESSING uint32 = 0x4
17 |
18 | var mode uint32
19 | err := syscall.GetConsoleMode(syscall.Stdout, &mode)
20 | if err != nil {
21 | return err
22 | }
23 |
24 | if enable {
25 | mode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING
26 | } else {
27 | mode &^= ENABLE_VIRTUAL_TERMINAL_PROCESSING
28 | }
29 |
30 | ret, _, err := setConsoleMode.Call(uintptr(unsafe.Pointer(stream)), uintptr(mode))
31 | if ret == 0 {
32 | return err
33 | }
34 |
35 | return nil
36 | }
37 |
--------------------------------------------------------------------------------
/vendor/github.com/prometheus/common/NOTICE:
--------------------------------------------------------------------------------
1 | Common libraries shared by Prometheus Go components.
2 | Copyright 2015 The Prometheus Authors
3 |
4 | This product includes software developed at
5 | SoundCloud Ltd. (http://soundcloud.com/).
6 |
--------------------------------------------------------------------------------
/vendor/github.com/russross/blackfriday/v2/.gitignore:
--------------------------------------------------------------------------------
1 | *.out
2 | *.swp
3 | *.8
4 | *.6
5 | _obj
6 | _test*
7 | markdown
8 | tags
9 |
--------------------------------------------------------------------------------
/vendor/github.com/russross/blackfriday/v2/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: go
3 | go:
4 | - "1.10.x"
5 | - "1.11.x"
6 | - tip
7 | matrix:
8 | fast_finish: true
9 | allow_failures:
10 | - go: tip
11 | install:
12 | - # Do nothing. This is needed to prevent default install action "go get -t -v ./..." from happening here (we want it to happen inside script step).
13 | script:
14 | - go get -t -v ./...
15 | - diff -u <(echo -n) <(gofmt -d -s .)
16 | - go tool vet .
17 | - go test -v ./...
18 |
--------------------------------------------------------------------------------
/vendor/github.com/russross/blackfriday/v2/doc.go:
--------------------------------------------------------------------------------
1 | // Package blackfriday is a markdown processor.
2 | //
3 | // It translates plain text with simple formatting rules into an AST, which can
4 | // then be further processed to HTML (provided by Blackfriday itself) or other
5 | // formats (provided by the community).
6 | //
7 | // The simplest way to invoke Blackfriday is to call the Run function. It will
8 | // take a text input and produce a text output in HTML (or other format).
9 | //
10 | // A slightly more sophisticated way to use Blackfriday is to create a Markdown
11 | // processor and to call Parse, which returns a syntax tree for the input
12 | // document. You can leverage Blackfriday's parsing for content extraction from
13 | // markdown documents. You can assign a custom renderer and set various options
14 | // to the Markdown processor.
15 | //
16 | // If you're interested in calling Blackfriday from command line, see
17 | // https://github.com/russross/blackfriday-tool.
18 | package blackfriday
19 |
--------------------------------------------------------------------------------
/vendor/github.com/russross/blackfriday/v2/esc.go:
--------------------------------------------------------------------------------
1 | package blackfriday
2 |
3 | import (
4 | "html"
5 | "io"
6 | )
7 |
8 | var htmlEscaper = [256][]byte{
9 | '&': []byte("&"),
10 | '<': []byte("<"),
11 | '>': []byte(">"),
12 | '"': []byte("""),
13 | }
14 |
15 | func escapeHTML(w io.Writer, s []byte) {
16 | var start, end int
17 | for end < len(s) {
18 | escSeq := htmlEscaper[s[end]]
19 | if escSeq != nil {
20 | w.Write(s[start:end])
21 | w.Write(escSeq)
22 | start = end + 1
23 | }
24 | end++
25 | }
26 | if start < len(s) && end <= len(s) {
27 | w.Write(s[start:end])
28 | }
29 | }
30 |
31 | func escLink(w io.Writer, text []byte) {
32 | unesc := html.UnescapeString(string(text))
33 | escapeHTML(w, []byte(unesc))
34 | }
35 |
--------------------------------------------------------------------------------
/vendor/github.com/russross/blackfriday/v2/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/russross/blackfriday/v2
2 |
--------------------------------------------------------------------------------
/vendor/github.com/shurcooL/sanitized_anchor_name/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: go
3 | go:
4 | - 1.x
5 | - master
6 | matrix:
7 | allow_failures:
8 | - go: master
9 | fast_finish: true
10 | install:
11 | - # Do nothing. This is needed to prevent default install action "go get -t -v ./..." from happening here (we want it to happen inside script step).
12 | script:
13 | - go get -t -v ./...
14 | - diff -u <(echo -n) <(gofmt -d -s .)
15 | - go tool vet .
16 | - go test -v -race ./...
17 |
--------------------------------------------------------------------------------
/vendor/github.com/shurcooL/sanitized_anchor_name/README.md:
--------------------------------------------------------------------------------
1 | sanitized_anchor_name
2 | =====================
3 |
4 | [](https://travis-ci.org/shurcooL/sanitized_anchor_name) [](https://godoc.org/github.com/shurcooL/sanitized_anchor_name)
5 |
6 | Package sanitized_anchor_name provides a func to create sanitized anchor names.
7 |
8 | Its logic can be reused by multiple packages to create interoperable anchor names
9 | and links to those anchors.
10 |
11 | At this time, it does not try to ensure that generated anchor names
12 | are unique, that responsibility falls on the caller.
13 |
14 | Installation
15 | ------------
16 |
17 | ```bash
18 | go get -u github.com/shurcooL/sanitized_anchor_name
19 | ```
20 |
21 | Example
22 | -------
23 |
24 | ```Go
25 | anchorName := sanitized_anchor_name.Create("This is a header")
26 |
27 | fmt.Println(anchorName)
28 |
29 | // Output:
30 | // this-is-a-header
31 | ```
32 |
33 | License
34 | -------
35 |
36 | - [MIT License](LICENSE)
37 |
--------------------------------------------------------------------------------
/vendor/github.com/shurcooL/sanitized_anchor_name/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/shurcooL/sanitized_anchor_name
2 |
--------------------------------------------------------------------------------
/vendor/github.com/shurcooL/sanitized_anchor_name/main.go:
--------------------------------------------------------------------------------
1 | // Package sanitized_anchor_name provides a func to create sanitized anchor names.
2 | //
3 | // Its logic can be reused by multiple packages to create interoperable anchor names
4 | // and links to those anchors.
5 | //
6 | // At this time, it does not try to ensure that generated anchor names
7 | // are unique, that responsibility falls on the caller.
8 | package sanitized_anchor_name // import "github.com/shurcooL/sanitized_anchor_name"
9 |
10 | import "unicode"
11 |
12 | // Create returns a sanitized anchor name for the given text.
13 | func Create(text string) string {
14 | var anchorName []rune
15 | var futureDash = false
16 | for _, r := range text {
17 | switch {
18 | case unicode.IsLetter(r) || unicode.IsNumber(r):
19 | if futureDash && len(anchorName) > 0 {
20 | anchorName = append(anchorName, '-')
21 | }
22 | futureDash = false
23 | anchorName = append(anchorName, unicode.ToLower(r))
24 | default:
25 | futureDash = true
26 | }
27 | }
28 | return string(anchorName)
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/.gitignore:
--------------------------------------------------------------------------------
1 | logrus
2 | vendor
3 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | go_import_path: github.com/sirupsen/logrus
3 | git:
4 | depth: 1
5 | env:
6 | - GO111MODULE=on
7 | - GO111MODULE=off
8 | go: [ 1.11.x, 1.12.x ]
9 | os: [ linux, osx ]
10 | matrix:
11 | exclude:
12 | - go: 1.12.x
13 | env: GO111MODULE=off
14 | - go: 1.11.x
15 | os: osx
16 | install:
17 | - ./travis/install.sh
18 | - if [[ "$GO111MODULE" == "on" ]]; then go mod download; fi
19 | - if [[ "$GO111MODULE" == "off" ]]; then go get github.com/stretchr/testify/assert golang.org/x/sys/unix github.com/konsorten/go-windows-terminal-sequences; fi
20 | script:
21 | - ./travis/cross_build.sh
22 | - export GOMAXPROCS=4
23 | - export GORACE=halt_on_error=1
24 | - go test -race -v ./...
25 | - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then go test -race -v -tags appengine ./... ; fi
26 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: "{build}"
2 | platform: x64
3 | clone_folder: c:\gopath\src\github.com\sirupsen\logrus
4 | environment:
5 | GOPATH: c:\gopath
6 | branches:
7 | only:
8 | - master
9 | install:
10 | - set PATH=%GOPATH%\bin;c:\go\bin;%PATH%
11 | - go version
12 | build_script:
13 | - go get -t
14 | - go test
15 |
--------------------------------------------------------------------------------
/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/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/sirupsen/logrus
2 |
3 | require (
4 | github.com/davecgh/go-spew v1.1.1 // indirect
5 | github.com/konsorten/go-windows-terminal-sequences v1.0.1
6 | github.com/pmezard/go-difflib v1.0.0 // indirect
7 | github.com/stretchr/objx v0.1.1 // indirect
8 | github.com/stretchr/testify v1.2.2
9 | golang.org/x/sys v0.0.0-20190422165155-953cdadca894
10 | )
11 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_appengine.go:
--------------------------------------------------------------------------------
1 | // +build appengine
2 |
3 | package logrus
4 |
5 | import (
6 | "io"
7 | )
8 |
9 | func checkIfTerminal(w io.Writer) bool {
10 | return true
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_bsd.go:
--------------------------------------------------------------------------------
1 | // +build darwin dragonfly freebsd netbsd openbsd
2 |
3 | package logrus
4 |
5 | import "golang.org/x/sys/unix"
6 |
7 | const ioctlReadTermios = unix.TIOCGETA
8 |
9 | func isTerminal(fd int) bool {
10 | _, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
11 | return err == nil
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_no_terminal.go:
--------------------------------------------------------------------------------
1 | // +build js nacl plan9
2 |
3 | package logrus
4 |
5 | import (
6 | "io"
7 | )
8 |
9 | func checkIfTerminal(w io.Writer) bool {
10 | return false
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go:
--------------------------------------------------------------------------------
1 | // +build !appengine,!js,!windows,!nacl,!plan9
2 |
3 | package logrus
4 |
5 | import (
6 | "io"
7 | "os"
8 | )
9 |
10 | func checkIfTerminal(w io.Writer) bool {
11 | switch v := w.(type) {
12 | case *os.File:
13 | return isTerminal(int(v.Fd()))
14 | default:
15 | return false
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_solaris.go:
--------------------------------------------------------------------------------
1 | package logrus
2 |
3 | import (
4 | "golang.org/x/sys/unix"
5 | )
6 |
7 | // IsTerminal returns true if the given file descriptor is a terminal.
8 | func isTerminal(fd int) bool {
9 | _, err := unix.IoctlGetTermio(fd, unix.TCGETA)
10 | return err == nil
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_unix.go:
--------------------------------------------------------------------------------
1 | // +build linux aix
2 |
3 | package logrus
4 |
5 | import "golang.org/x/sys/unix"
6 |
7 | const ioctlReadTermios = unix.TCGETS
8 |
9 | func isTerminal(fd int) bool {
10 | _, err := unix.IoctlGetTermios(fd, ioctlReadTermios)
11 | return err == nil
12 | }
13 |
14 |
--------------------------------------------------------------------------------
/vendor/github.com/sirupsen/logrus/terminal_check_windows.go:
--------------------------------------------------------------------------------
1 | // +build !appengine,!js,windows
2 |
3 | package logrus
4 |
5 | import (
6 | "io"
7 | "os"
8 | "syscall"
9 |
10 | sequences "github.com/konsorten/go-windows-terminal-sequences"
11 | )
12 |
13 | func initTerminal(w io.Writer) {
14 | switch v := w.(type) {
15 | case *os.File:
16 | sequences.EnableVirtualTerminalProcessing(syscall.Handle(v.Fd()), true)
17 | }
18 | }
19 |
20 | func checkIfTerminal(w io.Writer) bool {
21 | var ret bool
22 | switch v := w.(type) {
23 | case *os.File:
24 | var mode uint32
25 | err := syscall.GetConsoleMode(syscall.Handle(v.Fd()), &mode)
26 | ret = (err == nil)
27 | default:
28 | ret = false
29 | }
30 | if ret {
31 | initTerminal(w)
32 | }
33 | return ret
34 | }
35 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl:
--------------------------------------------------------------------------------
1 | {{.CommentFormat}}
2 | func {{.DocInfo.Name}}f(t TestingT, {{.ParamsFormat}}) bool {
3 | if h, ok := t.(tHelper); ok { h.Helper() }
4 | return {{.DocInfo.Name}}(t, {{.ForwardedParamsFormat}})
5 | }
6 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl:
--------------------------------------------------------------------------------
1 | {{.CommentWithoutT "a"}}
2 | func (a *Assertions) {{.DocInfo.Name}}({{.Params}}) bool {
3 | if h, ok := a.t.(tHelper); ok { h.Helper() }
4 | return {{.DocInfo.Name}}(a.t, {{.ForwardedParams}})
5 | }
6 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/errors.go:
--------------------------------------------------------------------------------
1 | package assert
2 |
3 | import (
4 | "errors"
5 | )
6 |
7 | // AnError is an error instance useful for testing. If the code does not care
8 | // about error specifics, and only needs to return the error for example, this
9 | // error should be used to make the test code more readable.
10 | var AnError = errors.New("assert.AnError general error for testing")
11 |
--------------------------------------------------------------------------------
/vendor/github.com/stretchr/testify/assert/forward_assertions.go:
--------------------------------------------------------------------------------
1 | package assert
2 |
3 | // Assertions provides assertion methods around the
4 | // TestingT interface.
5 | type Assertions struct {
6 | t TestingT
7 | }
8 |
9 | // New makes a new Assertions object for the specified TestingT.
10 | func New(t TestingT) *Assertions {
11 | return &Assertions{
12 | t: t,
13 | }
14 | }
15 |
16 | //go:generate sh -c "cd ../_codegen && go build && cd - && ../_codegen/_codegen -output-package=assert -template=assertion_forward.go.tmpl -include-format-funcs"
17 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/.flake8:
--------------------------------------------------------------------------------
1 | [flake8]
2 | max-line-length = 120
3 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/.gitignore:
--------------------------------------------------------------------------------
1 | *.coverprofile
2 | node_modules/
3 | vendor
4 | .idea
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/appveyor.yml:
--------------------------------------------------------------------------------
1 | version: "{build}"
2 |
3 | os: Windows Server 2016
4 |
5 | image: Visual Studio 2017
6 |
7 | clone_folder: c:\gopath\src\github.com\urfave\cli
8 |
9 | cache:
10 | - node_modules
11 |
12 | environment:
13 | GOPATH: C:\gopath
14 | GOVERSION: 1.11.x
15 | GO111MODULE: on
16 | GOPROXY: https://proxy.golang.org
17 |
18 | install:
19 | - set PATH=%GOPATH%\bin;C:\go\bin;%PATH%
20 | - go version
21 | - go env
22 | - go get github.com/urfave/gfmrun/cmd/gfmrun
23 | - go mod vendor
24 |
25 | build_script:
26 | - go run build.go vet
27 | - go run build.go test
28 | - go run build.go gfmrun docs/v1/manual.md
29 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/cli.go:
--------------------------------------------------------------------------------
1 | // Package cli provides a minimal framework for creating and organizing command line
2 | // Go applications. cli is designed to be easy to understand and write, the most simple
3 | // cli application can be written as follows:
4 | // func main() {
5 | // cli.NewApp().Run(os.Args)
6 | // }
7 | //
8 | // Of course this application does not do much, so let's make this an actual application:
9 | // func main() {
10 | // app := cli.NewApp()
11 | // app.Name = "greet"
12 | // app.Usage = "say a greeting"
13 | // app.Action = func(c *cli.Context) error {
14 | // println("Greetings")
15 | // return nil
16 | // }
17 | //
18 | // app.Run(os.Args)
19 | // }
20 | package cli
21 |
22 | //go:generate go run flag-gen/main.go flag-gen/assets_vfsdata.go
23 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/go.mod:
--------------------------------------------------------------------------------
1 | module github.com/urfave/cli
2 |
3 | go 1.11
4 |
5 | require (
6 | github.com/BurntSushi/toml v0.3.1
7 | github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d
8 | gopkg.in/yaml.v2 v2.2.2
9 | )
10 |
--------------------------------------------------------------------------------
/vendor/github.com/urfave/cli/sort.go:
--------------------------------------------------------------------------------
1 | package cli
2 |
3 | import "unicode"
4 |
5 | // lexicographicLess compares strings alphabetically considering case.
6 | func lexicographicLess(i, j string) bool {
7 | iRunes := []rune(i)
8 | jRunes := []rune(j)
9 |
10 | lenShared := len(iRunes)
11 | if lenShared > len(jRunes) {
12 | lenShared = len(jRunes)
13 | }
14 |
15 | for index := 0; index < lenShared; index++ {
16 | ir := iRunes[index]
17 | jr := jRunes[index]
18 |
19 | if lir, ljr := unicode.ToLower(ir), unicode.ToLower(jr); lir != ljr {
20 | return lir < ljr
21 | }
22 |
23 | if ir != jr {
24 | return ir < jr
25 | }
26 | }
27 |
28 | return i < j
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/atomic/.codecov.yml:
--------------------------------------------------------------------------------
1 | coverage:
2 | range: 80..100
3 | round: down
4 | precision: 2
5 |
6 | status:
7 | project: # measuring the overall project coverage
8 | default: # context, you can create multiple ones with custom titles
9 | enabled: yes # must be yes|true to enable this status
10 | target: 100 # specify the target coverage for each commit status
11 | # option: "auto" (must increase from parent commit or pull request base)
12 | # option: "X%" a static target percentage to hit
13 | if_not_found: success # if parent is not found report status as success, error, or failure
14 | if_ci_failed: error # if ci fails report status as success, error, or failure
15 |
16 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/atomic/.gitignore:
--------------------------------------------------------------------------------
1 | /bin
2 | .DS_Store
3 | /vendor
4 | cover.html
5 | cover.out
6 | lint.log
7 |
8 | # Binaries
9 | *.test
10 |
11 | # Profiling output
12 | *.prof
13 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/atomic/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: go
3 | go_import_path: go.uber.org/atomic
4 |
5 | env:
6 | global:
7 | - GO111MODULE=on
8 |
9 | matrix:
10 | include:
11 | - go: 1.12.x
12 | - go: 1.13.x
13 | env: LINT=1
14 |
15 | cache:
16 | directories:
17 | - vendor
18 |
19 | before_install:
20 | - go version
21 |
22 | script:
23 | - test -z "$LINT" || make lint
24 | - make cover
25 |
26 | after_success:
27 | - bash <(curl -s https://codecov.io/bash)
28 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/atomic/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2016 Uber Technologies, Inc.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/atomic/Makefile:
--------------------------------------------------------------------------------
1 | # Directory to place `go install`ed binaries into.
2 | export GOBIN ?= $(shell pwd)/bin
3 |
4 | GOLINT = $(GOBIN)/golint
5 |
6 | GO_FILES ?= *.go
7 |
8 | .PHONY: build
9 | build:
10 | go build ./...
11 |
12 | .PHONY: test
13 | test:
14 | go test -race ./...
15 |
16 | .PHONY: gofmt
17 | gofmt:
18 | $(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX))
19 | gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true
20 | @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" && cat $(FMT_LOG) && false)
21 |
22 | $(GOLINT):
23 | go install golang.org/x/lint/golint
24 |
25 | .PHONY: golint
26 | golint: $(GOLINT)
27 | $(GOLINT) ./...
28 |
29 | .PHONY: lint
30 | lint: gofmt golint
31 |
32 | .PHONY: cover
33 | cover:
34 | go test -coverprofile=cover.out -coverpkg ./... -v ./...
35 | go tool cover -html=cover.out -o cover.html
36 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/atomic/go.mod:
--------------------------------------------------------------------------------
1 | module go.uber.org/atomic
2 |
3 | require (
4 | github.com/davecgh/go-spew v1.1.1 // indirect
5 | github.com/stretchr/testify v1.3.0
6 | golang.org/x/lint v0.0.0-20190930215403-16217165b5de
7 | golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c // indirect
8 | )
9 |
10 | go 1.13
11 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/multierr/.codecov.yml:
--------------------------------------------------------------------------------
1 | coverage:
2 | range: 80..100
3 | round: down
4 | precision: 2
5 |
6 | status:
7 | project: # measuring the overall project coverage
8 | default: # context, you can create multiple ones with custom titles
9 | enabled: yes # must be yes|true to enable this status
10 | target: 100 # specify the target coverage for each commit status
11 | # option: "auto" (must increase from parent commit or pull request base)
12 | # option: "X%" a static target percentage to hit
13 | if_not_found: success # if parent is not found report status as success, error, or failure
14 | if_ci_failed: error # if ci fails report status as success, error, or failure
15 |
16 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/multierr/.gitignore:
--------------------------------------------------------------------------------
1 | /vendor
2 | cover.html
3 | cover.out
4 | /bin
5 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/multierr/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: go
3 | go_import_path: go.uber.org/multierr
4 |
5 | env:
6 | global:
7 | - GO15VENDOREXPERIMENT=1
8 | - GO111MODULE=on
9 |
10 | go:
11 | - 1.11.x
12 | - 1.12.x
13 | - 1.13.x
14 |
15 | cache:
16 | directories:
17 | - vendor
18 |
19 | before_install:
20 | - go version
21 |
22 | script:
23 | - |
24 | set -e
25 | make lint
26 | make cover
27 |
28 | after_success:
29 | - bash <(curl -s https://codecov.io/bash)
30 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/multierr/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2017 Uber Technologies, Inc.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/multierr/Makefile:
--------------------------------------------------------------------------------
1 | # Directory to put `go install`ed binaries in.
2 | export GOBIN ?= $(shell pwd)/bin
3 |
4 | GO_FILES := $(shell \
5 | find . '(' -path '*/.*' -o -path './vendor' ')' -prune \
6 | -o -name '*.go' -print | cut -b3-)
7 |
8 | .PHONY: build
9 | build:
10 | go build ./...
11 |
12 | .PHONY: test
13 | test:
14 | go test -race ./...
15 |
16 | .PHONY: gofmt
17 | gofmt:
18 | $(eval FMT_LOG := $(shell mktemp -t gofmt.XXXXX))
19 | @gofmt -e -s -l $(GO_FILES) > $(FMT_LOG) || true
20 | @[ ! -s "$(FMT_LOG)" ] || (echo "gofmt failed:" | cat - $(FMT_LOG) && false)
21 |
22 | .PHONY: golint
23 | golint:
24 | @go install golang.org/x/lint/golint
25 | @$(GOBIN)/golint ./...
26 |
27 | .PHONY: staticcheck
28 | staticcheck:
29 | @go install honnef.co/go/tools/cmd/staticcheck
30 | @$(GOBIN)/staticcheck ./...
31 |
32 | .PHONY: lint
33 | lint: gofmt golint staticcheck
34 |
35 | .PHONY: cover
36 | cover:
37 | go test -coverprofile=cover.out -coverpkg=./... -v ./...
38 | go tool cover -html=cover.out -o cover.html
39 |
40 | update-license:
41 | @go install go.uber.org/tools/update-license
42 | @$(GOBIN)/update-license $(GO_FILES)
43 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/multierr/README.md:
--------------------------------------------------------------------------------
1 | # multierr [![GoDoc][doc-img]][doc] [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov]
2 |
3 | `multierr` allows combining one or more Go `error`s together.
4 |
5 | ## Installation
6 |
7 | go get -u go.uber.org/multierr
8 |
9 | ## Status
10 |
11 | Stable: No breaking changes will be made before 2.0.
12 |
13 | -------------------------------------------------------------------------------
14 |
15 | Released under the [MIT License].
16 |
17 | [MIT License]: LICENSE.txt
18 | [doc-img]: https://godoc.org/go.uber.org/multierr?status.svg
19 | [doc]: https://godoc.org/go.uber.org/multierr
20 | [ci-img]: https://travis-ci.com/uber-go/multierr.svg?branch=master
21 | [cov-img]: https://codecov.io/gh/uber-go/multierr/branch/master/graph/badge.svg
22 | [ci]: https://travis-ci.com/uber-go/multierr
23 | [cov]: https://codecov.io/gh/uber-go/multierr
24 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/multierr/glide.yaml:
--------------------------------------------------------------------------------
1 | package: go.uber.org/multierr
2 | import:
3 | - package: go.uber.org/atomic
4 | version: ^1
5 | testImport:
6 | - package: github.com/stretchr/testify
7 | subpackages:
8 | - assert
9 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/multierr/go.mod:
--------------------------------------------------------------------------------
1 | module go.uber.org/multierr
2 |
3 | go 1.12
4 |
5 | require (
6 | github.com/stretchr/testify v1.3.0
7 | go.uber.org/atomic v1.6.0
8 | go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee
9 | golang.org/x/lint v0.0.0-20190930215403-16217165b5de
10 | golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5 // indirect
11 | honnef.co/go/tools v0.0.1-2019.2.3
12 | )
13 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/zap/.codecov.yml:
--------------------------------------------------------------------------------
1 | coverage:
2 | range: 80..100
3 | round: down
4 | precision: 2
5 |
6 | status:
7 | project: # measuring the overall project coverage
8 | default: # context, you can create multiple ones with custom titles
9 | enabled: yes # must be yes|true to enable this status
10 | target: 95% # specify the target coverage for each commit status
11 | # option: "auto" (must increase from parent commit or pull request base)
12 | # option: "X%" a static target percentage to hit
13 | if_not_found: success # if parent is not found report status as success, error, or failure
14 | if_ci_failed: error # if ci fails report status as success, error, or failure
15 | ignore:
16 | - internal/readme/readme.go
17 |
18 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/zap/.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 | vendor
10 |
11 | # Architecture specific extensions/prefixes
12 | *.[568vq]
13 | [568vq].out
14 |
15 | *.cgo1.go
16 | *.cgo2.c
17 | _cgo_defun.c
18 | _cgo_gotypes.go
19 | _cgo_export.*
20 |
21 | _testmain.go
22 |
23 | *.exe
24 | *.test
25 | *.prof
26 | *.pprof
27 | *.out
28 | *.log
29 |
30 | /bin
31 | cover.out
32 | cover.html
33 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/zap/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 | sudo: false
3 |
4 | go_import_path: go.uber.org/zap
5 | env:
6 | global:
7 | - TEST_TIMEOUT_SCALE=10
8 | - GO111MODULE=on
9 |
10 | matrix:
11 | include:
12 | - go: 1.13.x
13 | - go: 1.14.x
14 | env: LINT=1
15 |
16 | script:
17 | - test -z "$LINT" || make lint
18 | - make test
19 | - make bench
20 |
21 | after_success:
22 | - make cover
23 | - bash <(curl -s https://codecov.io/bash)
24 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/zap/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2016-2017 Uber Technologies, Inc.
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/zap/checklicense.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash -e
2 |
3 | ERROR_COUNT=0
4 | while read -r file
5 | do
6 | case "$(head -1 "${file}")" in
7 | *"Copyright (c) "*" Uber Technologies, Inc.")
8 | # everything's cool
9 | ;;
10 | *)
11 | echo "$file is missing license header."
12 | (( ERROR_COUNT++ ))
13 | ;;
14 | esac
15 | done < <(git ls-files "*\.go")
16 |
17 | exit $ERROR_COUNT
18 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/zap/glide.yaml:
--------------------------------------------------------------------------------
1 | package: go.uber.org/zap
2 | license: MIT
3 | import:
4 | - package: go.uber.org/atomic
5 | version: ^1
6 | - package: go.uber.org/multierr
7 | version: ^1
8 | testImport:
9 | - package: github.com/satori/go.uuid
10 | - package: github.com/sirupsen/logrus
11 | - package: github.com/apex/log
12 | subpackages:
13 | - handlers/json
14 | - package: github.com/go-kit/kit
15 | subpackages:
16 | - log
17 | - package: github.com/stretchr/testify
18 | subpackages:
19 | - assert
20 | - require
21 | - package: gopkg.in/inconshreveable/log15.v2
22 | - package: github.com/mattn/goveralls
23 | - package: github.com/pborman/uuid
24 | - package: github.com/pkg/errors
25 | - package: github.com/rs/zerolog
26 | - package: golang.org/x/tools
27 | subpackages:
28 | - cover
29 | - package: golang.org/x/lint
30 | subpackages:
31 | - golint
32 | - package: github.com/axw/gocov
33 | subpackages:
34 | - gocov
35 |
--------------------------------------------------------------------------------
/vendor/go.uber.org/zap/go.mod:
--------------------------------------------------------------------------------
1 | module go.uber.org/zap
2 |
3 | go 1.13
4 |
5 | require (
6 | github.com/pkg/errors v0.8.1
7 | github.com/stretchr/testify v1.4.0
8 | go.uber.org/atomic v1.6.0
9 | go.uber.org/multierr v1.5.0
10 | golang.org/x/lint v0.0.0-20190930215403-16217165b5de
11 | honnef.co/go/tools v0.0.1-2019.2.3
12 | )
13 |
--------------------------------------------------------------------------------
/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/http2/.gitignore:
--------------------------------------------------------------------------------
1 | *~
2 | h2i/h2i
3 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/net/http2/Makefile:
--------------------------------------------------------------------------------
1 | curlimage:
2 | docker build -t gohttp2/curl .
3 |
4 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/net/http2/README:
--------------------------------------------------------------------------------
1 | This is a work-in-progress HTTP/2 implementation for Go.
2 |
3 | It will eventually live in the Go standard library and won't require
4 | any changes to your code to use. It will just be automatic.
5 |
6 | Status:
7 |
8 | * The server support is pretty good. A few things are missing
9 | but are being worked on.
10 | * The client work has just started but shares a lot of code
11 | is coming along much quicker.
12 |
13 | Docs are at https://godoc.org/golang.org/x/net/http2
14 |
15 | Demo test server at https://http2.golang.org/
16 |
17 | Help & bug reports welcome!
18 |
19 | Contributing: https://golang.org/doc/contribute.html
20 | Bugs: https://golang.org/issue/new?title=x/net/http2:+
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/net/http2/go111.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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.11
6 |
7 | package http2
8 |
9 | import (
10 | "net/http/httptrace"
11 | "net/textproto"
12 | )
13 |
14 | func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool {
15 | return trace != nil && trace.WroteHeaderField != nil
16 | }
17 |
18 | func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) {
19 | if trace != nil && trace.WroteHeaderField != nil {
20 | trace.WroteHeaderField(k, []string{v})
21 | }
22 | }
23 |
24 | func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error {
25 | if trace != nil {
26 | return trace.Got1xxResponse
27 | }
28 | return nil
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/net/http2/not_go111.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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.11
6 |
7 | package http2
8 |
9 | import (
10 | "net/http/httptrace"
11 | "net/textproto"
12 | )
13 |
14 | func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { return false }
15 |
16 | func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) {}
17 |
18 | func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error {
19 | return nil
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/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/sys/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/sys/internal/unsafeheader/unsafeheader.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 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 unsafeheader contains header declarations for the Go runtime's
6 | // slice and string implementations.
7 | //
8 | // This package allows x/sys to use types equivalent to
9 | // reflect.SliceHeader and reflect.StringHeader without introducing
10 | // a dependency on the (relatively heavy) "reflect" package.
11 | package unsafeheader
12 |
13 | import (
14 | "unsafe"
15 | )
16 |
17 | // Slice is the runtime representation of a slice.
18 | // It cannot be used safely or portably and its representation may change in a later release.
19 | type Slice struct {
20 | Data unsafe.Pointer
21 | Len int
22 | Cap int
23 | }
24 |
25 | // String is the runtime representation of a string.
26 | // It cannot be used safely or portably and its representation may change in a later release.
27 | type String struct {
28 | Data unsafe.Pointer
29 | Len int
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/.gitignore:
--------------------------------------------------------------------------------
1 | _obj/
2 | unix.test
3 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/aliases.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
6 | // +build go1.9
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | type Signal = syscall.Signal
13 | type Errno = syscall.Errno
14 | type SysProcAttr = syscall.SysProcAttr
15 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for ppc64, AIX are implemented in runtime/syscall_aix.go
11 | //
12 |
13 | TEXT ·syscall6(SB),NOSPLIT,$0-88
14 | JMP syscall·syscall6(SB)
15 |
16 | TEXT ·rawSyscall6(SB),NOSPLIT,$0-88
17 | JMP syscall·rawSyscall6(SB)
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_darwin_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for 386, Darwin
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_darwin_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, Darwin
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_darwin_arm.s:
--------------------------------------------------------------------------------
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 !gccgo
6 | // +build arm,darwin
7 |
8 | #include "textflag.h"
9 |
10 | //
11 | // System call support for ARM, Darwin
12 | //
13 |
14 | // Just jump to package syscall's implementation for all these functions.
15 | // The runtime may know about them.
16 |
17 | TEXT ·Syscall(SB),NOSPLIT,$0-28
18 | B syscall·Syscall(SB)
19 |
20 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
21 | B syscall·Syscall6(SB)
22 |
23 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
24 | B syscall·Syscall9(SB)
25 |
26 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
27 | B syscall·RawSyscall(SB)
28 |
29 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
30 | B syscall·RawSyscall6(SB)
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_darwin_arm64.s:
--------------------------------------------------------------------------------
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 !gccgo
6 | // +build arm64,darwin
7 |
8 | #include "textflag.h"
9 |
10 | //
11 | // System call support for AMD64, Darwin
12 | //
13 |
14 | // Just jump to package syscall's implementation for all these functions.
15 | // The runtime may know about them.
16 |
17 | TEXT ·Syscall(SB),NOSPLIT,$0-56
18 | B syscall·Syscall(SB)
19 |
20 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
21 | B syscall·Syscall6(SB)
22 |
23 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
24 | B syscall·Syscall9(SB)
25 |
26 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
27 | B syscall·RawSyscall(SB)
28 |
29 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
30 | B syscall·RawSyscall6(SB)
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_dragonfly_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, DragonFly
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_freebsd_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for 386, FreeBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_freebsd_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, FreeBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_freebsd_arm.s:
--------------------------------------------------------------------------------
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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM, FreeBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | B syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | B syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | B syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | B syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | B syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_freebsd_arm64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM64, FreeBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s:
--------------------------------------------------------------------------------
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 | // +build linux
6 | // +build ppc64 ppc64le
7 | // +build !gccgo
8 |
9 | #include "textflag.h"
10 |
11 | //
12 | // System calls for ppc64, Linux
13 | //
14 |
15 | // Just jump to package syscall's implementation for all these functions.
16 | // The runtime may know about them.
17 |
18 | TEXT ·SyscallNoError(SB),NOSPLIT,$0-48
19 | BL runtime·entersyscall(SB)
20 | MOVD a1+8(FP), R3
21 | MOVD a2+16(FP), R4
22 | MOVD a3+24(FP), R5
23 | MOVD R0, R6
24 | MOVD R0, R7
25 | MOVD R0, R8
26 | MOVD trap+0(FP), R9 // syscall entry
27 | SYSCALL R9
28 | MOVD R3, r1+32(FP)
29 | MOVD R4, r2+40(FP)
30 | BL runtime·exitsyscall(SB)
31 | RET
32 |
33 | TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48
34 | MOVD a1+8(FP), R3
35 | MOVD a2+16(FP), R4
36 | MOVD a3+24(FP), R5
37 | MOVD R0, R6
38 | MOVD R0, R7
39 | MOVD R0, R8
40 | MOVD trap+0(FP), R9 // syscall entry
41 | SYSCALL R9
42 | MOVD R3, r1+32(FP)
43 | MOVD R4, r2+40(FP)
44 | RET
45 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_netbsd_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for 386, NetBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_netbsd_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, NetBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_netbsd_arm.s:
--------------------------------------------------------------------------------
1 | // Copyright 2013 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM, NetBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | B syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | B syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | B syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | B syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | B syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_netbsd_arm64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM64, NetBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | B syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | B syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | B syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | B syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | B syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_386.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for 386, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_amd64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for AMD64, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_arm.s:
--------------------------------------------------------------------------------
1 | // Copyright 2017 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for ARM, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-28
17 | B syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-40
20 | B syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-52
23 | B syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-28
26 | B syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40
29 | B syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_openbsd_arm64.s:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System call support for arm64, OpenBSD
11 | //
12 |
13 | // Just jump to package syscall's implementation for all these functions.
14 | // The runtime may know about them.
15 |
16 | TEXT ·Syscall(SB),NOSPLIT,$0-56
17 | JMP syscall·Syscall(SB)
18 |
19 | TEXT ·Syscall6(SB),NOSPLIT,$0-80
20 | JMP syscall·Syscall6(SB)
21 |
22 | TEXT ·Syscall9(SB),NOSPLIT,$0-104
23 | JMP syscall·Syscall9(SB)
24 |
25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56
26 | JMP syscall·RawSyscall(SB)
27 |
28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80
29 | JMP syscall·RawSyscall6(SB)
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s:
--------------------------------------------------------------------------------
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 | // +build !gccgo
6 |
7 | #include "textflag.h"
8 |
9 | //
10 | // System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go
11 | //
12 |
13 | TEXT ·sysvicall6(SB),NOSPLIT,$0-88
14 | JMP syscall·sysvicall6(SB)
15 |
16 | TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88
17 | JMP syscall·rawSysvicall6(SB)
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/bluetooth_linux.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 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 | // Bluetooth sockets and messages
6 |
7 | package unix
8 |
9 | // Bluetooth Protocols
10 | const (
11 | BTPROTO_L2CAP = 0
12 | BTPROTO_HCI = 1
13 | BTPROTO_SCO = 2
14 | BTPROTO_RFCOMM = 3
15 | BTPROTO_BNEP = 4
16 | BTPROTO_CMTP = 5
17 | BTPROTO_HIDP = 6
18 | BTPROTO_AVDTP = 7
19 | )
20 |
21 | const (
22 | HCI_CHANNEL_RAW = 0
23 | HCI_CHANNEL_USER = 1
24 | HCI_CHANNEL_MONITOR = 2
25 | HCI_CHANNEL_CONTROL = 3
26 | HCI_CHANNEL_LOGGING = 4
27 | )
28 |
29 | // Socketoption Level
30 | const (
31 | SOL_BLUETOOTH = 0x112
32 | SOL_HCI = 0x0
33 | SOL_L2CAP = 0x6
34 | SOL_RFCOMM = 0x12
35 | SOL_SCO = 0x11
36 | )
37 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/constants.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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
6 |
7 | package unix
8 |
9 | const (
10 | R_OK = 0x4
11 | W_OK = 0x2
12 | X_OK = 0x1
13 | )
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_aix_ppc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 aix
6 | // +build ppc
7 |
8 | // Functions to access/create device major and minor numbers matching the
9 | // encoding used by AIX.
10 |
11 | package unix
12 |
13 | // Major returns the major component of a Linux device number.
14 | func Major(dev uint64) uint32 {
15 | return uint32((dev >> 16) & 0xffff)
16 | }
17 |
18 | // Minor returns the minor component of a Linux device number.
19 | func Minor(dev uint64) uint32 {
20 | return uint32(dev & 0xffff)
21 | }
22 |
23 | // Mkdev returns a Linux device number generated from the given major and minor
24 | // components.
25 | func Mkdev(major, minor uint32) uint64 {
26 | return uint64(((major) << 16) | (minor))
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 aix
6 | // +build ppc64
7 |
8 | // Functions to access/create device major and minor numbers matching the
9 | // encoding used AIX.
10 |
11 | package unix
12 |
13 | // Major returns the major component of a Linux device number.
14 | func Major(dev uint64) uint32 {
15 | return uint32((dev & 0x3fffffff00000000) >> 32)
16 | }
17 |
18 | // Minor returns the minor component of a Linux device number.
19 | func Minor(dev uint64) uint32 {
20 | return uint32((dev & 0x00000000ffffffff) >> 0)
21 | }
22 |
23 | // Mkdev returns a Linux device number generated from the given major and minor
24 | // components.
25 | func Mkdev(major, minor uint32) uint64 {
26 | var DEVNO64 uint64
27 | DEVNO64 = 0x8000000000000000
28 | return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64)
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_darwin.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 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 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in Darwin's sys/types.h header.
7 |
8 | package unix
9 |
10 | // Major returns the major component of a Darwin device number.
11 | func Major(dev uint64) uint32 {
12 | return uint32((dev >> 24) & 0xff)
13 | }
14 |
15 | // Minor returns the minor component of a Darwin device number.
16 | func Minor(dev uint64) uint32 {
17 | return uint32(dev & 0xffffff)
18 | }
19 |
20 | // Mkdev returns a Darwin device number generated from the given major and minor
21 | // components.
22 | func Mkdev(major, minor uint32) uint64 {
23 | return (uint64(major) << 24) | uint64(minor)
24 | }
25 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_freebsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 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 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in FreeBSD's sys/types.h header.
7 | //
8 | // The information below is extracted and adapted from sys/types.h:
9 | //
10 | // Minor gives a cookie instead of an index since in order to avoid changing the
11 | // meanings of bits 0-15 or wasting time and space shifting bits 16-31 for
12 | // devices that don't use them.
13 |
14 | package unix
15 |
16 | // Major returns the major component of a FreeBSD device number.
17 | func Major(dev uint64) uint32 {
18 | return uint32((dev >> 8) & 0xff)
19 | }
20 |
21 | // Minor returns the minor component of a FreeBSD device number.
22 | func Minor(dev uint64) uint32 {
23 | return uint32(dev & 0xffff00ff)
24 | }
25 |
26 | // Mkdev returns a FreeBSD device number generated from the given major and
27 | // minor components.
28 | func Mkdev(major, minor uint32) uint64 {
29 | return (uint64(major) << 8) | uint64(minor)
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_netbsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 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 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in NetBSD's sys/types.h header.
7 |
8 | package unix
9 |
10 | // Major returns the major component of a NetBSD device number.
11 | func Major(dev uint64) uint32 {
12 | return uint32((dev & 0x000fff00) >> 8)
13 | }
14 |
15 | // Minor returns the minor component of a NetBSD device number.
16 | func Minor(dev uint64) uint32 {
17 | minor := uint32((dev & 0x000000ff) >> 0)
18 | minor |= uint32((dev & 0xfff00000) >> 12)
19 | return minor
20 | }
21 |
22 | // Mkdev returns a NetBSD device number generated from the given major and minor
23 | // components.
24 | func Mkdev(major, minor uint32) uint64 {
25 | dev := (uint64(major) << 8) & 0x000fff00
26 | dev |= (uint64(minor) << 12) & 0xfff00000
27 | dev |= (uint64(minor) << 0) & 0x000000ff
28 | return dev
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/dev_openbsd.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 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 | // Functions to access/create device major and minor numbers matching the
6 | // encoding used in OpenBSD's sys/types.h header.
7 |
8 | package unix
9 |
10 | // Major returns the major component of an OpenBSD device number.
11 | func Major(dev uint64) uint32 {
12 | return uint32((dev & 0x0000ff00) >> 8)
13 | }
14 |
15 | // Minor returns the minor component of an OpenBSD device number.
16 | func Minor(dev uint64) uint32 {
17 | minor := uint32((dev & 0x000000ff) >> 0)
18 | minor |= uint32((dev & 0xffff0000) >> 8)
19 | return minor
20 | }
21 |
22 | // Mkdev returns an OpenBSD device number generated from the given major and minor
23 | // components.
24 | func Mkdev(major, minor uint32) uint64 {
25 | dev := (uint64(major) << 8) & 0x0000ff00
26 | dev |= (uint64(minor) << 8) & 0xffff0000
27 | dev |= (uint64(minor) << 0) & 0x000000ff
28 | return dev
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/endian_big.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 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 ppc64 s390x mips mips64
6 |
7 | package unix
8 |
9 | const isBigEndian = true
10 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/endian_little.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 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 386 amd64 amd64p32 arm arm64 ppc64le mipsle mips64le riscv64
6 |
7 | package unix
8 |
9 | const isBigEndian = false
10 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/env_unix.go:
--------------------------------------------------------------------------------
1 | // Copyright 2010 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
6 |
7 | // Unix environment variables.
8 |
9 | package unix
10 |
11 | import "syscall"
12 |
13 | func Getenv(key string) (value string, found bool) {
14 | return syscall.Getenv(key)
15 | }
16 |
17 | func Setenv(key, value string) error {
18 | return syscall.Setenv(key, value)
19 | }
20 |
21 | func Clearenv() {
22 | syscall.Clearenv()
23 | }
24 |
25 | func Environ() []string {
26 | return syscall.Environ()
27 | }
28 |
29 | func Unsetenv(key string) error {
30 | return syscall.Unsetenv(key)
31 | }
32 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/errors_freebsd_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 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 | // Constants that were deprecated or moved to enums in the FreeBSD headers. Keep
6 | // them here for backwards compatibility.
7 |
8 | package unix
9 |
10 | const (
11 | DLT_HHDLC = 0x79
12 | IPV6_MIN_MEMBERSHIPS = 0x1f
13 | IP_MAX_SOURCE_FILTER = 0x400
14 | IP_MIN_MEMBERSHIPS = 0x1f
15 | RT_CACHING_CONTEXT = 0x1
16 | RT_NORTREF = 0x2
17 | )
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fcntl_darwin.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 unix
6 |
7 | import "unsafe"
8 |
9 | // FcntlInt performs a fcntl syscall on fd with the provided command and argument.
10 | func FcntlInt(fd uintptr, cmd, arg int) (int, error) {
11 | return fcntl(int(fd), cmd, arg)
12 | }
13 |
14 | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command.
15 | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error {
16 | _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk))))
17 | return err
18 | }
19 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go:
--------------------------------------------------------------------------------
1 | // +build linux,386 linux,arm linux,mips linux,mipsle
2 |
3 | // Copyright 2014 The Go Authors. All rights reserved.
4 | // Use of this source code is governed by a BSD-style
5 | // license that can be found in the LICENSE file.
6 |
7 | package unix
8 |
9 | func init() {
10 | // On 32-bit Linux systems, the fcntl syscall that matches Go's
11 | // Flock_t type is SYS_FCNTL64, not SYS_FCNTL.
12 | fcntl64Syscall = SYS_FCNTL64
13 | }
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/fdset.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
6 |
7 | package unix
8 |
9 | // Set adds fd to the set fds.
10 | func (fds *FdSet) Set(fd int) {
11 | fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS))
12 | }
13 |
14 | // Clear removes fd from the set fds.
15 | func (fds *FdSet) Clear(fd int) {
16 | fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS))
17 | }
18 |
19 | // IsSet returns whether fd is in the set fds.
20 | func (fds *FdSet) IsSet(fd int) bool {
21 | return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0
22 | }
23 |
24 | // Zero clears the set fds.
25 | func (fds *FdSet) Zero() {
26 | for i := range fds.Bits {
27 | fds.Bits[i] = 0
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.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 gccgo,linux,amd64
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | //extern gettimeofday
12 | func realGettimeofday(*Timeval, *byte) int32
13 |
14 | func gettimeofday(tv *Timeval) (err syscall.Errno) {
15 | r := realGettimeofday(tv, nil)
16 | if r < 0 {
17 | return syscall.GetErrno()
18 | }
19 | return 0
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/pagesize_unix.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
6 |
7 | // For Unix, get the pagesize from the runtime.
8 |
9 | package unix
10 |
11 | import "syscall"
12 |
13 | func Getpagesize() int {
14 | return syscall.Getpagesize()
15 | }
16 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/race.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,race linux,race freebsd,race
6 |
7 | package unix
8 |
9 | import (
10 | "runtime"
11 | "unsafe"
12 | )
13 |
14 | const raceenabled = true
15 |
16 | func raceAcquire(addr unsafe.Pointer) {
17 | runtime.RaceAcquire(addr)
18 | }
19 |
20 | func raceReleaseMerge(addr unsafe.Pointer) {
21 | runtime.RaceReleaseMerge(addr)
22 | }
23 |
24 | func raceReadRange(addr unsafe.Pointer, len int) {
25 | runtime.RaceReadRange(addr, len)
26 | }
27 |
28 | func raceWriteRange(addr unsafe.Pointer, len int) {
29 | runtime.RaceWriteRange(addr, len)
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/race0.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 aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly
6 |
7 | package unix
8 |
9 | import (
10 | "unsafe"
11 | )
12 |
13 | const raceenabled = false
14 |
15 | func raceAcquire(addr unsafe.Pointer) {
16 | }
17 |
18 | func raceReleaseMerge(addr unsafe.Pointer) {
19 | }
20 |
21 | func raceReadRange(addr unsafe.Pointer, len int) {
22 | }
23 |
24 | func raceWriteRange(addr unsafe.Pointer, len int) {
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/readdirent_getdents.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 aix dragonfly freebsd linux netbsd openbsd
6 |
7 | package unix
8 |
9 | // ReadDirent reads directory entries from fd and writes them into buf.
10 | func ReadDirent(fd int, buf []byte) (n int, err error) {
11 | return Getdents(fd, buf)
12 | }
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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
6 |
7 | package unix
8 |
9 | import "unsafe"
10 |
11 | // ReadDirent reads directory entries from fd and writes them into buf.
12 | func ReadDirent(fd int, buf []byte) (n int, err error) {
13 | // Final argument is (basep *uintptr) and the syscall doesn't take nil.
14 | // 64 bits should be enough. (32 bits isn't even on 386). Since the
15 | // actual system call is getdirentries64, 64 is a good guess.
16 | // TODO(rsc): Can we use a single global basep for all calls?
17 | var base = (*uintptr)(unsafe.Pointer(new(uint64)))
18 | return Getdirentries(fd, buf, base)
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 unix
6 |
7 | // Round the length of a raw sockaddr up to align it properly.
8 | func cmsgAlignOf(salen int) int {
9 | salign := SizeofPtr
10 | if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) {
11 | // 64-bit Dragonfly before the September 2019 ABI changes still requires
12 | // 32-bit aligned access to network subsystem.
13 | salign = 4
14 | }
15 | return (salen + salign - 1) & ^(salign - 1)
16 | }
17 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 aix darwin freebsd linux netbsd openbsd solaris
6 |
7 | package unix
8 |
9 | import (
10 | "runtime"
11 | )
12 |
13 | // Round the length of a raw sockaddr up to align it properly.
14 | func cmsgAlignOf(salen int) int {
15 | salign := SizeofPtr
16 |
17 | // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in
18 | // sockcmsg_dragonfly.go
19 | switch runtime.GOOS {
20 | case "aix":
21 | // There is no alignment on AIX.
22 | salign = 1
23 | case "darwin", "illumos", "solaris":
24 | // NOTE: It seems like 64-bit Darwin, Illumos and Solaris
25 | // kernels still require 32-bit aligned access to network
26 | // subsystem.
27 | if SizeofPtr == 8 {
28 | salign = 4
29 | }
30 | case "netbsd", "openbsd":
31 | // NetBSD and OpenBSD armv7 require 64-bit alignment.
32 | if runtime.GOARCH == "arm" {
33 | salign = 8
34 | }
35 | }
36 |
37 | return (salen + salign - 1) & ^(salign - 1)
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/str.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
6 |
7 | package unix
8 |
9 | func itoa(val int) string { // do it here rather than with fmt to avoid dependency
10 | if val < 0 {
11 | return "-" + uitoa(uint(-val))
12 | }
13 | return uitoa(uint(val))
14 | }
15 |
16 | func uitoa(val uint) string {
17 | var buf [32]byte // big enough for int64
18 | i := len(buf) - 1
19 | for val >= 10 {
20 | buf[i] = byte(val%10 + '0')
21 | i--
22 | val /= 10
23 | }
24 | buf[i] = byte(val + '0')
25 | return string(buf[i:])
26 | }
27 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin.1_12.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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,go1.12,!go1.13
6 |
7 | package unix
8 |
9 | import (
10 | "unsafe"
11 | )
12 |
13 | func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
14 | // To implement this using libSystem we'd need syscall_syscallPtr for
15 | // fdopendir. However, syscallPtr was only added in Go 1.13, so we fall
16 | // back to raw syscalls for this func on Go 1.12.
17 | var p unsafe.Pointer
18 | if len(buf) > 0 {
19 | p = unsafe.Pointer(&buf[0])
20 | } else {
21 | p = unsafe.Pointer(&_zero)
22 | }
23 | r0, _, e1 := Syscall6(SYS_GETDIRENTRIES64, uintptr(fd), uintptr(p), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0)
24 | n = int(r0)
25 | if e1 != 0 {
26 | return n, errnoErr(e1)
27 | }
28 | return n, nil
29 | }
30 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin_386.1_11.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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,386,!go1.12
6 |
7 | package unix
8 |
9 | //sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
10 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.1_11.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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,amd64,!go1.12
6 |
7 | package unix
8 |
9 | //sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) = SYS_GETDIRENTRIES64
10 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin_arm.1_11.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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,arm,!go1.12
6 |
7 | package unix
8 |
9 | func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
10 | return 0, ENOSYS
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.1_11.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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,arm64,!go1.12
6 |
7 | package unix
8 |
9 | func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) {
10 | return 0, ENOSYS
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 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 amd64,linux
6 | // +build !gccgo
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | //go:noescape
13 | func gettimeofday(tv *Timeval) (err syscall.Errno)
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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,!gccgo
6 |
7 | package unix
8 |
9 | // SyscallNoError may be used instead of Syscall for syscalls that don't fail.
10 | func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
11 |
12 | // RawSyscallNoError may be used instead of RawSyscall for syscalls that don't
13 | // fail.
14 | func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr)
15 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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,!gccgo,386
6 |
7 | package unix
8 |
9 | import "syscall"
10 |
11 | // Underlying system call writes to newoffset via pointer.
12 | // Implemented in assembly to avoid allocation.
13 | func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno)
14 |
15 | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
16 | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno)
17 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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,gccgo,386
6 |
7 | package unix
8 |
9 | import (
10 | "syscall"
11 | "unsafe"
12 | )
13 |
14 | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
15 | var newoffset int64
16 | offsetLow := uint32(offset & 0xffffffff)
17 | offsetHigh := uint32((offset >> 32) & 0xffffffff)
18 | _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
19 | return newoffset, err
20 | }
21 |
22 | func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
23 | fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
24 | return int(fd), err
25 | }
26 |
27 | func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) {
28 | fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0)
29 | return int(fd), err
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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,gccgo,arm
6 |
7 | package unix
8 |
9 | import (
10 | "syscall"
11 | "unsafe"
12 | )
13 |
14 | func seek(fd int, offset int64, whence int) (int64, syscall.Errno) {
15 | var newoffset int64
16 | offsetLow := uint32(offset & 0xffffffff)
17 | offsetHigh := uint32((offset >> 32) & 0xffffffff)
18 | _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0)
19 | return newoffset, err
20 | }
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 386,netbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: int32(nsec)}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint32(fd)
19 | k.Filter = uint32(mode)
20 | k.Flags = uint32(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint32(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = int32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 amd64,netbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint64(fd)
19 | k.Filter = uint32(mode)
20 | k.Flags = uint32(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint64(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = int32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2013 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 arm,netbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: int32(nsec)}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint32(fd)
19 | k.Filter = uint32(mode)
20 | k.Flags = uint32(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint32(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = int32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 arm64,netbsd
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: int32(usec)}
15 | }
16 |
17 | func SetKevent(k *Kevent_t, fd, mode, flags int) {
18 | k.Ident = uint64(fd)
19 | k.Filter = uint32(mode)
20 | k.Flags = uint32(flags)
21 | }
22 |
23 | func (iov *Iovec) SetLen(length int) {
24 | iov.Len = uint64(length)
25 | }
26 |
27 | func (msghdr *Msghdr) SetControllen(length int) {
28 | msghdr.Controllen = uint32(length)
29 | }
30 |
31 | func (msghdr *Msghdr) SetIovlen(length int) {
32 | msghdr.Iovlen = int32(length)
33 | }
34 |
35 | func (cmsg *Cmsghdr) SetLen(length int) {
36 | cmsg.Len = uint32(length)
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 amd64,solaris
6 |
7 | package unix
8 |
9 | func setTimespec(sec, nsec int64) Timespec {
10 | return Timespec{Sec: sec, Nsec: nsec}
11 | }
12 |
13 | func setTimeval(sec, usec int64) Timeval {
14 | return Timeval{Sec: sec, Usec: usec}
15 | }
16 |
17 | func (iov *Iovec) SetLen(length int) {
18 | iov.Len = uint64(length)
19 | }
20 |
21 | func (msghdr *Msghdr) SetIovlen(length int) {
22 | msghdr.Iovlen = int32(length)
23 | }
24 |
25 | func (cmsg *Cmsghdr) SetLen(length int) {
26 | cmsg.Len = uint32(length)
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_unix_gc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 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 dragonfly freebsd linux netbsd openbsd solaris
6 | // +build !gccgo,!ppc64le,!ppc64
7 |
8 | package unix
9 |
10 | import "syscall"
11 |
12 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
13 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
14 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno)
15 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno)
16 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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
6 | // +build ppc64le ppc64
7 | // +build !gccgo
8 |
9 | package unix
10 |
11 | import "syscall"
12 |
13 | func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
14 | return syscall.Syscall(trap, a1, a2, a3)
15 | }
16 | func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
17 | return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6)
18 | }
19 | func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) {
20 | return syscall.RawSyscall(trap, a1, a2, a3)
21 | }
22 | func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) {
23 | return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6)
24 | }
25 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go:
--------------------------------------------------------------------------------
1 | // Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT.
2 |
3 | package unix
4 |
5 | import "unsafe"
6 |
7 | // PtraceGetRegSetArm64 fetches the registers used by arm64 binaries.
8 | func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error {
9 | iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))}
10 | return ptrace(PTRACE_GETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
11 | }
12 |
13 | // PtraceSetRegSetArm64 sets the registers used by arm64 binaries.
14 | func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error {
15 | iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))}
16 | return ptrace(PTRACE_SETREGSET, pid, uintptr(addr), uintptr(unsafe.Pointer(&iovec)))
17 | }
18 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_386.1_13.s:
--------------------------------------------------------------------------------
1 | // go run mkasm_darwin.go 386
2 | // Code generated by the command above; DO NOT EDIT.
3 |
4 | // +build go1.13
5 |
6 | #include "textflag.h"
7 | TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 | JMP libc_fdopendir(SB)
9 | TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 | JMP libc_closedir(SB)
11 | TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 | JMP libc_readdir_r(SB)
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.1_13.s:
--------------------------------------------------------------------------------
1 | // go run mkasm_darwin.go amd64
2 | // Code generated by the command above; DO NOT EDIT.
3 |
4 | // +build go1.13
5 |
6 | #include "textflag.h"
7 | TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 | JMP libc_fdopendir(SB)
9 | TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 | JMP libc_closedir(SB)
11 | TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 | JMP libc_readdir_r(SB)
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm.1_13.s:
--------------------------------------------------------------------------------
1 | // go run mkasm_darwin.go arm
2 | // Code generated by the command above; DO NOT EDIT.
3 |
4 | // +build go1.13
5 |
6 | #include "textflag.h"
7 | TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 | JMP libc_fdopendir(SB)
9 | TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 | JMP libc_closedir(SB)
11 | TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 | JMP libc_readdir_r(SB)
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.1_13.s:
--------------------------------------------------------------------------------
1 | // go run mkasm_darwin.go arm64
2 | // Code generated by the command above; DO NOT EDIT.
3 |
4 | // +build go1.13
5 |
6 | #include "textflag.h"
7 | TEXT ·libc_fdopendir_trampoline(SB),NOSPLIT,$0-0
8 | JMP libc_fdopendir(SB)
9 | TEXT ·libc_closedir_trampoline(SB),NOSPLIT,$0-0
10 | JMP libc_closedir(SB)
11 | TEXT ·libc_readdir_r_trampoline(SB),NOSPLIT,$0-0
12 | JMP libc_readdir_r(SB)
13 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/aliases.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 windows
6 | // +build go1.9
7 |
8 | package windows
9 |
10 | import "syscall"
11 |
12 | type Errno = syscall.Errno
13 | type SysProcAttr = syscall.SysProcAttr
14 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/empty.s:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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.12
6 |
7 | // This file is here to allow bodyless functions with go:linkname for Go 1.11
8 | // and earlier (see https://golang.org/issue/23311).
9 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/eventlog.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 windows
6 |
7 | package windows
8 |
9 | const (
10 | EVENTLOG_SUCCESS = 0
11 | EVENTLOG_ERROR_TYPE = 1
12 | EVENTLOG_WARNING_TYPE = 2
13 | EVENTLOG_INFORMATION_TYPE = 4
14 | EVENTLOG_AUDIT_SUCCESS = 8
15 | EVENTLOG_AUDIT_FAILURE = 16
16 | )
17 |
18 | //sys RegisterEventSource(uncServerName *uint16, sourceName *uint16) (handle Handle, err error) [failretval==0] = advapi32.RegisterEventSourceW
19 | //sys DeregisterEventSource(handle Handle) (err error) = advapi32.DeregisterEventSource
20 | //sys ReportEvent(log Handle, etype uint16, category uint16, eventId uint32, usrSId uintptr, numStrings uint16, dataSize uint32, strings **uint16, rawData *byte) (err error) = advapi32.ReportEventW
21 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/memory_windows.go:
--------------------------------------------------------------------------------
1 | // Copyright 2017 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 windows
6 |
7 | const (
8 | MEM_COMMIT = 0x00001000
9 | MEM_RESERVE = 0x00002000
10 | MEM_DECOMMIT = 0x00004000
11 | MEM_RELEASE = 0x00008000
12 | MEM_RESET = 0x00080000
13 | MEM_TOP_DOWN = 0x00100000
14 | MEM_WRITE_WATCH = 0x00200000
15 | MEM_PHYSICAL = 0x00400000
16 | MEM_RESET_UNDO = 0x01000000
17 | MEM_LARGE_PAGES = 0x20000000
18 |
19 | PAGE_NOACCESS = 0x01
20 | PAGE_READONLY = 0x02
21 | PAGE_READWRITE = 0x04
22 | PAGE_WRITECOPY = 0x08
23 | PAGE_EXECUTE_READ = 0x20
24 | PAGE_EXECUTE_READWRITE = 0x40
25 | PAGE_EXECUTE_WRITECOPY = 0x80
26 | )
27 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/mksyscall.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 generate
6 |
7 | package windows
8 |
9 | //go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go eventlog.go service.go syscall_windows.go security_windows.go
10 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/race.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 windows,race
6 |
7 | package windows
8 |
9 | import (
10 | "runtime"
11 | "unsafe"
12 | )
13 |
14 | const raceenabled = true
15 |
16 | func raceAcquire(addr unsafe.Pointer) {
17 | runtime.RaceAcquire(addr)
18 | }
19 |
20 | func raceReleaseMerge(addr unsafe.Pointer) {
21 | runtime.RaceReleaseMerge(addr)
22 | }
23 |
24 | func raceReadRange(addr unsafe.Pointer, len int) {
25 | runtime.RaceReadRange(addr, len)
26 | }
27 |
28 | func raceWriteRange(addr unsafe.Pointer, len int) {
29 | runtime.RaceWriteRange(addr, len)
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/race0.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 windows,!race
6 |
7 | package windows
8 |
9 | import (
10 | "unsafe"
11 | )
12 |
13 | const raceenabled = false
14 |
15 | func raceAcquire(addr unsafe.Pointer) {
16 | }
17 |
18 | func raceReleaseMerge(addr unsafe.Pointer) {
19 | }
20 |
21 | func raceReadRange(addr unsafe.Pointer, len int) {
22 | }
23 |
24 | func raceWriteRange(addr unsafe.Pointer, len int) {
25 | }
26 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/registry/mksyscall.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 generate
6 |
7 | package registry
8 |
9 | //go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go syscall.go
10 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/str.go:
--------------------------------------------------------------------------------
1 | // Copyright 2009 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 windows
6 |
7 | package windows
8 |
9 | func itoa(val int) string { // do it here rather than with fmt to avoid dependency
10 | if val < 0 {
11 | return "-" + itoa(-val)
12 | }
13 | var buf [32]byte // big enough for int64
14 | i := len(buf) - 1
15 | for val >= 10 {
16 | buf[i] = byte(val%10 + '0')
17 | i--
18 | val /= 10
19 | }
20 | buf[i] = byte(val + '0')
21 | return string(buf[i:])
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/types_windows_386.go:
--------------------------------------------------------------------------------
1 | // Copyright 2011 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 windows
6 |
7 | type WSAData struct {
8 | Version uint16
9 | HighVersion uint16
10 | Description [WSADESCRIPTION_LEN + 1]byte
11 | SystemStatus [WSASYS_STATUS_LEN + 1]byte
12 | MaxSockets uint16
13 | MaxUdpDg uint16
14 | VendorInfo *byte
15 | }
16 |
17 | type Servent struct {
18 | Name *byte
19 | Aliases **byte
20 | Port uint16
21 | Proto *byte
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/types_windows_amd64.go:
--------------------------------------------------------------------------------
1 | // Copyright 2011 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 windows
6 |
7 | type WSAData struct {
8 | Version uint16
9 | HighVersion uint16
10 | MaxSockets uint16
11 | MaxUdpDg uint16
12 | VendorInfo *byte
13 | Description [WSADESCRIPTION_LEN + 1]byte
14 | SystemStatus [WSASYS_STATUS_LEN + 1]byte
15 | }
16 |
17 | type Servent struct {
18 | Name *byte
19 | Aliases **byte
20 | Proto *byte
21 | Port uint16
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/sys/windows/types_windows_arm.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 windows
6 |
7 | type WSAData struct {
8 | Version uint16
9 | HighVersion uint16
10 | Description [WSADESCRIPTION_LEN + 1]byte
11 | SystemStatus [WSASYS_STATUS_LEN + 1]byte
12 | MaxSockets uint16
13 | MaxUdpDg uint16
14 | VendorInfo *byte
15 | }
16 |
17 | type Servent struct {
18 | Name *byte
19 | Aliases **byte
20 | Port uint16
21 | Proto *byte
22 | }
23 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/text/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/text/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/text/secure/bidirule/bidirule10.0.0.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 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.10
6 |
7 | package bidirule
8 |
9 | func (t *Transformer) isFinal() bool {
10 | return t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial
11 | }
12 |
--------------------------------------------------------------------------------
/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go:
--------------------------------------------------------------------------------
1 | // Copyright 2016 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.10
6 |
7 | package bidirule
8 |
9 | func (t *Transformer) isFinal() bool {
10 | if !t.isRTL() {
11 | return true
12 | }
13 | return t.state == ruleLTRFinal || t.state == ruleRTLFinal || t.state == ruleInitial
14 | }
15 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/AUTHORS:
--------------------------------------------------------------------------------
1 | Google Inc.
2 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/CODE-OF-CONDUCT.md:
--------------------------------------------------------------------------------
1 | ## Community Code of Conduct
2 |
3 | gRPC follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
4 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/GOVERNANCE.md:
--------------------------------------------------------------------------------
1 | This repository is governed by the gRPC organization's [governance rules](https://github.com/grpc/grpc-community/blob/master/governance.md).
2 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/codegen.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | # This script serves as an example to demonstrate how to generate the gRPC-Go
4 | # interface and the related messages from .proto file.
5 | #
6 | # It assumes the installation of i) Google proto buffer compiler at
7 | # https://github.com/google/protobuf (after v2.6.1) and ii) the Go codegen
8 | # plugin at https://github.com/golang/protobuf (after 2015-02-20). If you have
9 | # not, please install them first.
10 | #
11 | # We recommend running this script at $GOPATH/src.
12 | #
13 | # If this is not what you need, feel free to make your own scripts. Again, this
14 | # script is for demonstration purpose.
15 | #
16 | proto=$1
17 | protoc --go_out=plugins=grpc:. $proto
18 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/credentials/go12.go:
--------------------------------------------------------------------------------
1 | // +build go1.12
2 |
3 | /*
4 | *
5 | * Copyright 2019 gRPC authors.
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | *
19 | */
20 |
21 | package credentials
22 |
23 | import "crypto/tls"
24 |
25 | // This init function adds cipher suite constants only defined in Go 1.12.
26 | func init() {
27 | cipherSuiteLookup[tls.TLS_AES_128_GCM_SHA256] = "TLS_AES_128_GCM_SHA256"
28 | cipherSuiteLookup[tls.TLS_AES_256_GCM_SHA384] = "TLS_AES_256_GCM_SHA384"
29 | cipherSuiteLookup[tls.TLS_CHACHA20_POLY1305_SHA256] = "TLS_CHACHA20_POLY1305_SHA256"
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/credentials/internal/syscallconn_appengine.go:
--------------------------------------------------------------------------------
1 | // +build appengine
2 |
3 | /*
4 | *
5 | * Copyright 2018 gRPC authors.
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | *
19 | */
20 |
21 | package internal
22 |
23 | import (
24 | "net"
25 | )
26 |
27 | // WrapSyscallConn returns newConn on appengine.
28 | func WrapSyscallConn(rawConn, newConn net.Conn) net.Conn {
29 | return newConn
30 | }
31 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/doc.go:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright 2015 gRPC authors.
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | *
17 | */
18 |
19 | /*
20 | Package grpc implements an RPC system called gRPC.
21 |
22 | See grpc.io for more information about gRPC.
23 | */
24 | package grpc // import "google.golang.org/grpc"
25 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/go.mod:
--------------------------------------------------------------------------------
1 | module google.golang.org/grpc
2 |
3 | go 1.11
4 |
5 | require (
6 | github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473
7 | github.com/envoyproxy/protoc-gen-validate v0.1.0
8 | github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b
9 | github.com/golang/mock v1.1.1
10 | github.com/golang/protobuf v1.3.2
11 | github.com/google/go-cmp v0.2.0
12 | golang.org/x/net v0.0.0-20190311183353-d8887717615a
13 | golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be
14 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
15 | google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55
16 | )
17 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/install_gae.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | TMP=$(mktemp -d /tmp/sdk.XXX) \
4 | && curl -o $TMP.zip "https://storage.googleapis.com/appengine-sdks/featured/go_appengine_sdk_linux_amd64-1.9.68.zip" \
5 | && unzip -q $TMP.zip -d $TMP \
6 | && export PATH="$PATH:$TMP/go_appengine"
7 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go:
--------------------------------------------------------------------------------
1 | // +build !linux appengine
2 |
3 | /*
4 | *
5 | * Copyright 2018 gRPC authors.
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | *
19 | */
20 |
21 | package channelz
22 |
23 | // GetSocketOption gets the socket option info of the conn.
24 | func GetSocketOption(c interface{}) *SocketOptionData {
25 | return nil
26 | }
27 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright 2018 gRPC authors.
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | *
17 | */
18 |
19 | // Package envconfig contains grpc settings configured by environment variables.
20 | package envconfig
21 |
22 | import (
23 | "os"
24 | "strings"
25 | )
26 |
27 | const (
28 | prefix = "GRPC_GO_"
29 | retryStr = prefix + "RETRY"
30 | )
31 |
32 | var (
33 | // Retry is set if retry is explicitly enabled via "GRPC_GO_RETRY=on".
34 | Retry = strings.EqualFold(os.Getenv(retryStr), "on")
35 | )
36 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/internal/resolver/dns/go113.go:
--------------------------------------------------------------------------------
1 | // +build go1.13
2 |
3 | /*
4 | *
5 | * Copyright 2019 gRPC authors.
6 | *
7 | * Licensed under the Apache License, Version 2.0 (the "License");
8 | * you may not use this file except in compliance with the License.
9 | * You may obtain a copy of the License at
10 | *
11 | * http://www.apache.org/licenses/LICENSE-2.0
12 | *
13 | * Unless required by applicable law or agreed to in writing, software
14 | * distributed under the License is distributed on an "AS IS" BASIS,
15 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 | * See the License for the specific language governing permissions and
17 | * limitations under the License.
18 | *
19 | */
20 |
21 | package dns
22 |
23 | import "net"
24 |
25 | func init() {
26 | filterError = func(err error) error {
27 | if dnsErr, ok := err.(*net.DNSError); ok && dnsErr.IsNotFound {
28 | // The name does not exist; not an error.
29 | return nil
30 | }
31 | return err
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/resolver/passthrough/passthrough.go:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright 2017 gRPC authors.
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | *
17 | */
18 |
19 | // Package passthrough implements a pass-through resolver. It sends the target
20 | // name without scheme back to gRPC as resolved address.
21 | //
22 | // Deprecated: this package is imported by grpc and should not need to be
23 | // imported directly by users.
24 | package passthrough
25 |
26 | import _ "google.golang.org/grpc/internal/resolver/passthrough" // import for side effects after package was moved
27 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/grpc/version.go:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * Copyright 2018 gRPC authors.
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | *
17 | */
18 |
19 | package grpc
20 |
21 | // Version is the current grpc version.
22 | const Version = "1.26.0"
23 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/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 https://tip.golang.org/AUTHORS.
4 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/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 https://tip.golang.org/CONTRIBUTORS.
4 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/encoding/prototext/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 prototext marshals and unmarshals protocol buffer messages as the
6 | // textproto format.
7 | package prototext
8 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/errors/is_go112.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 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.13
6 |
7 | package errors
8 |
9 | import "reflect"
10 |
11 | // Is is a copy of Go 1.13's errors.Is for use with older Go versions.
12 | func Is(err, target error) bool {
13 | if target == nil {
14 | return err == target
15 | }
16 |
17 | isComparable := reflect.TypeOf(target).Comparable()
18 | for {
19 | if isComparable && err == target {
20 | return true
21 | }
22 | if x, ok := err.(interface{ Is(error) bool }); ok && x.Is(target) {
23 | return true
24 | }
25 | if err = unwrap(err); err == nil {
26 | return false
27 | }
28 | }
29 | }
30 |
31 | func unwrap(err error) error {
32 | u, ok := err.(interface {
33 | Unwrap() error
34 | })
35 | if !ok {
36 | return nil
37 | }
38 | return u.Unwrap()
39 | }
40 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/errors/is_go113.go:
--------------------------------------------------------------------------------
1 | // Copyright 2020 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.13
6 |
7 | package errors
8 |
9 | import "errors"
10 |
11 | // Is is errors.Is.
12 | func Is(err, target error) bool { return errors.Is(err, target) }
13 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/fieldnum/any_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package fieldnum
8 |
9 | // Field numbers for google.protobuf.Any.
10 | const (
11 | Any_TypeUrl = 1 // optional string
12 | Any_Value = 2 // optional bytes
13 | )
14 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/fieldnum/doc.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 fieldnum contains constants for field numbers of fields in messages
6 | // declared in descriptor.proto and any of the well-known types.
7 | package fieldnum
8 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/fieldnum/duration_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package fieldnum
8 |
9 | // Field numbers for google.protobuf.Duration.
10 | const (
11 | Duration_Seconds = 1 // optional int64
12 | Duration_Nanos = 2 // optional int32
13 | )
14 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/fieldnum/empty_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package fieldnum
8 |
9 | // Field numbers for google.protobuf.Empty.
10 | const ()
11 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/fieldnum/field_mask_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package fieldnum
8 |
9 | // Field numbers for google.protobuf.FieldMask.
10 | const (
11 | FieldMask_Paths = 1 // repeated string
12 | )
13 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/fieldnum/source_context_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package fieldnum
8 |
9 | // Field numbers for google.protobuf.SourceContext.
10 | const (
11 | SourceContext_FileName = 1 // optional string
12 | )
13 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/fieldnum/timestamp_gen.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 | // Code generated by generate-protos. DO NOT EDIT.
6 |
7 | package fieldnum
8 |
9 | // Field numbers for google.protobuf.Timestamp.
10 | const (
11 | Timestamp_Seconds = 1 // optional int64
12 | Timestamp_Nanos = 2 // optional int32
13 | )
14 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 !protolegacy
6 |
7 | package flags
8 |
9 | const protoLegacy = false
10 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 protolegacy
6 |
7 | package flags
8 |
9 | const protoLegacy = true
10 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/genname/name.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 genname contains constants for generated names.
6 | package genname
7 |
8 | const (
9 | State = "state"
10 |
11 | SizeCache = "sizeCache"
12 | SizeCacheA = "XXX_sizecache"
13 |
14 | WeakFields = "weakFields"
15 | WeakFieldsA = "XXX_weak"
16 |
17 | UnknownFields = "unknownFields"
18 | UnknownFieldsA = "XXX_unrecognized"
19 |
20 | ExtensionFields = "extensionFields"
21 | ExtensionFieldsA = "XXX_InternalExtensions"
22 | ExtensionFieldsB = "XXX_extensions"
23 |
24 | WeakFieldPrefix = "XXX_weak_"
25 | )
26 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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.12
6 |
7 | package impl
8 |
9 | import "reflect"
10 |
11 | type mapIter struct {
12 | v reflect.Value
13 | keys []reflect.Value
14 | }
15 |
16 | // mapRange provides a less-efficient equivalent to
17 | // the Go 1.12 reflect.Value.MapRange method.
18 | func mapRange(v reflect.Value) *mapIter {
19 | return &mapIter{v: v}
20 | }
21 |
22 | func (i *mapIter) Next() bool {
23 | if i.keys == nil {
24 | i.keys = i.v.MapKeys()
25 | } else {
26 | i.keys = i.keys[1:]
27 | }
28 | return len(i.keys) > 0
29 | }
30 |
31 | func (i *mapIter) Key() reflect.Value {
32 | return i.keys[0]
33 | }
34 |
35 | func (i *mapIter) Value() reflect.Value {
36 | return i.v.MapIndex(i.keys[0])
37 | }
38 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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.12
6 |
7 | package impl
8 |
9 | import "reflect"
10 |
11 | func mapRange(v reflect.Value) *reflect.MapIter { return v.MapRange() }
12 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 !purego,!appengine
6 |
7 | package impl
8 |
9 | // When using unsafe pointers, we can just treat enum values as int32s.
10 |
11 | var (
12 | coderEnumNoZero = coderInt32NoZero
13 | coderEnum = coderInt32
14 | coderEnumPtr = coderInt32Ptr
15 | coderEnumSlice = coderInt32Slice
16 | coderEnumPackedSlice = coderInt32PackedSlice
17 | )
18 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/impl/enum.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 impl
6 |
7 | import (
8 | "reflect"
9 |
10 | pref "google.golang.org/protobuf/reflect/protoreflect"
11 | )
12 |
13 | type EnumInfo struct {
14 | GoReflectType reflect.Type // int32 kind
15 | Desc pref.EnumDescriptor
16 | }
17 |
18 | func (t *EnumInfo) New(n pref.EnumNumber) pref.Enum {
19 | return reflect.ValueOf(n).Convert(t.GoReflectType).Interface().(pref.Enum)
20 | }
21 | func (t *EnumInfo) Descriptor() pref.EnumDescriptor { return t.Desc }
22 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 purego appengine
6 |
7 | package strs
8 |
9 | import pref "google.golang.org/protobuf/reflect/protoreflect"
10 |
11 | func UnsafeString(b []byte) string {
12 | return string(b)
13 | }
14 |
15 | func UnsafeBytes(s string) []byte {
16 | return []byte(s)
17 | }
18 |
19 | type Builder struct{}
20 |
21 | func (*Builder) AppendFullName(prefix pref.FullName, name pref.Name) pref.FullName {
22 | return prefix.Append(name)
23 | }
24 |
25 | func (*Builder) MakeString(b []byte) string {
26 | return string(b)
27 | }
28 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/proto/proto_methods.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 | // The protoreflect build tag disables use of fast-path methods.
6 | // +build !protoreflect
7 |
8 | package proto
9 |
10 | import (
11 | "google.golang.org/protobuf/reflect/protoreflect"
12 | "google.golang.org/protobuf/runtime/protoiface"
13 | )
14 |
15 | const hasProtoMethods = true
16 |
17 | func protoMethods(m protoreflect.Message) *protoiface.Methods {
18 | return m.ProtoMethods()
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/proto/proto_reflect.go:
--------------------------------------------------------------------------------
1 | // Copyright 2019 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 | // The protoreflect build tag disables use of fast-path methods.
6 | // +build protoreflect
7 |
8 | package proto
9 |
10 | import (
11 | "google.golang.org/protobuf/reflect/protoreflect"
12 | "google.golang.org/protobuf/runtime/protoiface"
13 | )
14 |
15 | const hasProtoMethods = false
16 |
17 | func protoMethods(m protoreflect.Message) *protoiface.Methods {
18 | return nil
19 | }
20 |
--------------------------------------------------------------------------------
/vendor/google.golang.org/protobuf/runtime/protoiface/legacy.go:
--------------------------------------------------------------------------------
1 | // Copyright 2018 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 protoiface
6 |
7 | type MessageV1 interface {
8 | Reset()
9 | String() string
10 | ProtoMessage()
11 | }
12 |
13 | type ExtensionRangeV1 struct {
14 | Start, End int32 // both inclusive
15 | }
16 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/alecthomas/kingpin.v2/.travis.yml:
--------------------------------------------------------------------------------
1 | sudo: false
2 | language: go
3 | install: go get -t -v ./...
4 | go: 1.2
5 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/alecthomas/kingpin.v2/COPYING:
--------------------------------------------------------------------------------
1 | Copyright (C) 2014 Alec Thomas
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of
4 | this software and associated documentation files (the "Software"), to deal in
5 | the Software without restriction, including without limitation the rights to
6 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7 | of the Software, and to permit persons to whom the Software is furnished to do
8 | so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | SOFTWARE.
20 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/alecthomas/kingpin.v2/actions.go:
--------------------------------------------------------------------------------
1 | package kingpin
2 |
3 | // Action callback executed at various stages after all values are populated.
4 | // The application, commands, arguments and flags all have corresponding
5 | // actions.
6 | type Action func(*ParseContext) error
7 |
8 | type actionMixin struct {
9 | actions []Action
10 | preActions []Action
11 | }
12 |
13 | type actionApplier interface {
14 | applyActions(*ParseContext) error
15 | applyPreActions(*ParseContext) error
16 | }
17 |
18 | func (a *actionMixin) addAction(action Action) {
19 | a.actions = append(a.actions, action)
20 | }
21 |
22 | func (a *actionMixin) addPreAction(action Action) {
23 | a.preActions = append(a.preActions, action)
24 | }
25 |
26 | func (a *actionMixin) applyActions(context *ParseContext) error {
27 | for _, action := range a.actions {
28 | if err := action(context); err != nil {
29 | return err
30 | }
31 | }
32 | return nil
33 | }
34 |
35 | func (a *actionMixin) applyPreActions(context *ParseContext) error {
36 | for _, preAction := range a.preActions {
37 | if err := preAction(context); err != nil {
38 | return err
39 | }
40 | }
41 | return nil
42 | }
43 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/alecthomas/kingpin.v2/completions.go:
--------------------------------------------------------------------------------
1 | package kingpin
2 |
3 | // HintAction is a function type who is expected to return a slice of possible
4 | // command line arguments.
5 | type HintAction func() []string
6 | type completionsMixin struct {
7 | hintActions []HintAction
8 | builtinHintActions []HintAction
9 | }
10 |
11 | func (a *completionsMixin) addHintAction(action HintAction) {
12 | a.hintActions = append(a.hintActions, action)
13 | }
14 |
15 | // Allow adding of HintActions which are added internally, ie, EnumVar
16 | func (a *completionsMixin) addHintActionBuiltin(action HintAction) {
17 | a.builtinHintActions = append(a.builtinHintActions, action)
18 | }
19 |
20 | func (a *completionsMixin) resolveCompletions() []string {
21 | var hints []string
22 |
23 | options := a.builtinHintActions
24 | if len(a.hintActions) > 0 {
25 | // User specified their own hintActions. Use those instead.
26 | options = a.hintActions
27 | }
28 |
29 | for _, hintAction := range options {
30 | hints = append(hints, hintAction()...)
31 | }
32 | return hints
33 | }
34 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/alecthomas/kingpin.v2/envar.go:
--------------------------------------------------------------------------------
1 | package kingpin
2 |
3 | import (
4 | "os"
5 | "regexp"
6 | )
7 |
8 | var (
9 | envVarValuesSeparator = "\r?\n"
10 | envVarValuesTrimmer = regexp.MustCompile(envVarValuesSeparator + "$")
11 | envVarValuesSplitter = regexp.MustCompile(envVarValuesSeparator)
12 | )
13 |
14 | type envarMixin struct {
15 | envar string
16 | noEnvar bool
17 | }
18 |
19 | func (e *envarMixin) HasEnvarValue() bool {
20 | return e.GetEnvarValue() != ""
21 | }
22 |
23 | func (e *envarMixin) GetEnvarValue() string {
24 | if e.noEnvar || e.envar == "" {
25 | return ""
26 | }
27 | return os.Getenv(e.envar)
28 | }
29 |
30 | func (e *envarMixin) GetSplitEnvarValue() []string {
31 | values := make([]string, 0)
32 |
33 | envarValue := e.GetEnvarValue()
34 | if envarValue == "" {
35 | return values
36 | }
37 |
38 | // Split by new line to extract multiple values, if any.
39 | trimmed := envVarValuesTrimmer.ReplaceAllString(envarValue, "")
40 | for _, value := range envVarValuesSplitter.Split(trimmed, -1) {
41 | values = append(values, value)
42 | }
43 |
44 | return values
45 | }
46 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/alecthomas/kingpin.v2/guesswidth.go:
--------------------------------------------------------------------------------
1 | // +build appengine !linux,!freebsd,!darwin,!dragonfly,!netbsd,!openbsd
2 |
3 | package kingpin
4 |
5 | import "io"
6 |
7 | func guessWidth(w io.Writer) int {
8 | return 80
9 | }
10 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/alecthomas/kingpin.v2/guesswidth_unix.go:
--------------------------------------------------------------------------------
1 | // +build !appengine,linux freebsd darwin dragonfly netbsd openbsd
2 |
3 | package kingpin
4 |
5 | import (
6 | "io"
7 | "os"
8 | "strconv"
9 | "syscall"
10 | "unsafe"
11 | )
12 |
13 | func guessWidth(w io.Writer) int {
14 | // check if COLUMNS env is set to comply with
15 | // http://pubs.opengroup.org/onlinepubs/009604499/basedefs/xbd_chap08.html
16 | colsStr := os.Getenv("COLUMNS")
17 | if colsStr != "" {
18 | if cols, err := strconv.Atoi(colsStr); err == nil {
19 | return cols
20 | }
21 | }
22 |
23 | if t, ok := w.(*os.File); ok {
24 | fd := t.Fd()
25 | var dimensions [4]uint16
26 |
27 | if _, _, err := syscall.Syscall6(
28 | syscall.SYS_IOCTL,
29 | uintptr(fd),
30 | uintptr(syscall.TIOCGWINSZ),
31 | uintptr(unsafe.Pointer(&dimensions)),
32 | 0, 0, 0,
33 | ); err == 0 {
34 | return int(dimensions[1])
35 | }
36 | }
37 | return 80
38 | }
39 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/yaml.v2/.travis.yml:
--------------------------------------------------------------------------------
1 | language: go
2 |
3 | go:
4 | - "1.4.x"
5 | - "1.5.x"
6 | - "1.6.x"
7 | - "1.7.x"
8 | - "1.8.x"
9 | - "1.9.x"
10 | - "1.10.x"
11 | - "1.11.x"
12 | - "1.12.x"
13 | - "1.13.x"
14 | - "tip"
15 |
16 | go_import_path: gopkg.in/yaml.v2
17 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/yaml.v2/NOTICE:
--------------------------------------------------------------------------------
1 | Copyright 2011-2016 Canonical Ltd.
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/yaml.v2/go.mod:
--------------------------------------------------------------------------------
1 | module "gopkg.in/yaml.v2"
2 |
3 | require (
4 | "gopkg.in/check.v1" v0.0.0-20161208181325-20d25e280405
5 | )
6 |
--------------------------------------------------------------------------------
/vendor/gopkg.in/yaml.v2/writerc.go:
--------------------------------------------------------------------------------
1 | package yaml
2 |
3 | // Set the writer error and return false.
4 | func yaml_emitter_set_writer_error(emitter *yaml_emitter_t, problem string) bool {
5 | emitter.error = yaml_WRITER_ERROR
6 | emitter.problem = problem
7 | return false
8 | }
9 |
10 | // Flush the output buffer.
11 | func yaml_emitter_flush(emitter *yaml_emitter_t) bool {
12 | if emitter.write_handler == nil {
13 | panic("write handler not set")
14 | }
15 |
16 | // Check if the buffer is empty.
17 | if emitter.buffer_pos == 0 {
18 | return true
19 | }
20 |
21 | if err := emitter.write_handler(emitter, emitter.buffer[:emitter.buffer_pos]); err != nil {
22 | return yaml_emitter_set_writer_error(emitter, "write error: "+err.Error())
23 | }
24 | emitter.buffer_pos = 0
25 | return true
26 | }
27 |
--------------------------------------------------------------------------------