├── .envrc ├── .final_builds ├── jobs │ ├── acceptance-tests │ │ └── index.yml │ ├── arbitrator │ │ └── index.yml │ ├── bootstrap │ │ └── index.yml │ ├── broker-deregistrar │ │ └── index.yml │ ├── broker-registrar │ │ └── index.yml │ ├── cf-mysql-broker-user │ │ └── index.yml │ ├── cf-mysql-broker │ │ └── index.yml │ ├── deregister-and-purge-instances │ │ └── index.yml │ ├── haproxy │ │ └── index.yml │ ├── mysql │ │ └── index.yml │ ├── proxy │ │ └── index.yml │ ├── rejoin-unsafe │ │ └── index.yml │ ├── smoke-tests-user │ │ └── index.yml │ ├── smoke-tests │ │ └── index.yml │ └── verify-cluster-schemas │ │ └── index.yml ├── license │ └── index.yml └── packages │ ├── acceptance-tests │ └── index.yml │ ├── boost │ └── index.yml │ ├── bootstrap │ └── index.yml │ ├── broker-registrar │ └── index.yml │ ├── cf-mysql-broker │ └── index.yml │ ├── cf-mysql-cluster-health-logger │ └── index.yml │ ├── cf-mysql-common │ └── index.yml │ ├── cf-mysql-route-registrar │ └── index.yml │ ├── check │ └── index.yml │ ├── cli │ └── index.yml │ ├── cluster-schema-verifier │ └── index.yml │ ├── common │ └── index.yml │ ├── galera-healthcheck │ └── index.yml │ ├── galera │ └── index.yml │ ├── generate-auto-tune-mysql │ └── index.yml │ ├── golang-1.11-linux │ └── index.yml │ ├── golang │ └── index.yml │ ├── gra-log-purger │ └── index.yml │ ├── haproxy │ └── index.yml │ ├── mariadb │ └── index.yml │ ├── mariadb_ctrl │ └── index.yml │ ├── mysql │ └── index.yml │ ├── mysqlclient │ └── index.yml │ ├── python │ └── index.yml │ ├── quota-enforcer │ └── index.yml │ ├── route-registrar │ └── index.yml │ ├── ruby │ └── index.yml │ ├── scons │ └── index.yml │ ├── switchboard │ └── index.yml │ ├── syslog_aggregator │ └── index.yml │ └── xtrabackup │ └── index.yml ├── .github ├── issue_template.md └── pull_request_template.md ├── .gitignore ├── .gitmodules ├── .ruby-version ├── .travis.yml ├── CONTRIBUTING.md ├── LICENSE ├── NOTICE ├── README.md ├── commit-with-submodule-log ├── config ├── blobs.yml └── final.yml ├── docs ├── arbitrator.md ├── backup-restore.md ├── bootstrapping.md ├── cluster-behavior.md ├── cluster-config.md ├── cluster-state.md ├── configuration.md ├── known-issues.md ├── persistent_disk.md ├── proxy.md ├── quorum-lost.png ├── server-audit-log.md ├── service-broker.md └── service-plans-instances.md ├── githooks └── pre-push ├── jobs ├── arbitrator │ ├── monit │ ├── spec │ └── templates │ │ ├── galera-healthcheck_ctl.erb │ │ ├── galera_healthcheck_config.yaml.erb │ │ ├── garbd_config.erb │ │ └── garbd_ctl.erb ├── bootstrap │ ├── monit │ ├── spec │ └── templates │ │ ├── config.yml.erb │ │ └── errand.sh.erb ├── broker-registrar │ ├── monit │ ├── spec │ └── templates │ │ └── errand.sh.erb ├── cf-mysql-broker-user │ ├── monit │ ├── spec │ └── templates │ │ ├── cf_mysql_broker_user_setup.sql.erb │ │ ├── post-start.erb │ │ └── quota_enforcer_user_setup.sql.erb ├── cf-mysql-broker │ ├── monit │ ├── spec │ └── templates │ │ ├── cf-mysql-broker_ctl.erb │ │ ├── database.yml.erb │ │ ├── healthcheck.sh.erb │ │ ├── quota-enforcer_ctl.erb │ │ ├── quota_enforcer_config.yml.erb │ │ ├── settings.yml.erb │ │ └── unicorn.conf.rb.erb ├── deregister-and-purge-instances │ ├── monit │ ├── spec │ └── templates │ │ └── errand.sh.erb ├── mysql │ ├── monit │ ├── spec │ └── templates │ │ ├── cluster_health_logger_config.yml.erb │ │ ├── cluster_health_logger_ctl.erb │ │ ├── cluster_health_logger_setup.sql.erb │ │ ├── disable_mysql_cli_history.sh.erb │ │ ├── drain.sh │ │ ├── galera-healthcheck_ctl.erb │ │ ├── galera_healthcheck_config.yaml.erb │ │ ├── galera_healthcheck_setup.sql.erb │ │ ├── get-sequence-number.sh │ │ ├── gra-log-purger.sh.erb │ │ ├── gra-log-purger_ctl.erb │ │ ├── mariadb_ctl.erb │ │ ├── mariadb_ctl_config.yml.erb │ │ ├── mariadb_init.erb │ │ ├── my.cnf.erb │ │ ├── my.cnf.erb.shasum │ │ ├── mylogin.cnf.erb │ │ ├── mysql_audit_logs.logrotate.erb │ │ ├── pre-start-execution.erb │ │ ├── pre-start-setup.erb │ │ ├── server-cert.pem.erb │ │ └── server-key.pem.erb ├── proxy │ ├── monit │ ├── spec │ └── templates │ │ ├── post-start.erb │ │ ├── switchboard.yml.erb │ │ └── switchboard_ctl.erb ├── rejoin-unsafe │ ├── monit │ ├── spec │ └── templates │ │ ├── config.yml.erb │ │ └── errand.sh.erb ├── smoke-tests-user │ ├── monit │ ├── spec │ └── templates │ │ ├── post-start.erb │ │ └── smoke_tests_user_setup.sql.erb ├── smoke-tests │ ├── monit │ ├── spec │ └── templates │ │ ├── config.yml.erb │ │ └── errand.sh.erb └── verify-cluster-schemas │ ├── monit │ ├── spec │ └── templates │ └── run.rb.erb ├── packages ├── acceptance-tests │ ├── packaging │ └── spec ├── boost │ ├── packaging │ └── spec ├── bootstrap │ ├── packaging │ └── spec ├── cf-mysql-broker │ ├── packaging │ ├── pre_packaging │ └── spec ├── cf-mysql-cluster-health-logger │ ├── packaging │ └── spec ├── cf-mysql-common │ ├── packaging │ └── spec ├── check │ ├── packaging │ └── spec ├── cli │ ├── packaging │ └── spec ├── cluster-schema-verifier │ ├── packaging │ └── spec ├── galera-healthcheck │ ├── packaging │ └── spec ├── galera │ ├── packaging │ └── spec ├── generate-auto-tune-mysql │ ├── packaging │ └── spec ├── golang-1.11-linux │ └── spec.lock ├── gra-log-purger │ ├── packaging │ └── spec ├── mariadb │ ├── packaging │ └── spec ├── mariadb_ctrl │ ├── packaging │ └── spec ├── mysqlclient │ ├── packaging │ └── spec ├── python │ ├── packaging │ └── spec ├── quota-enforcer │ ├── packaging │ └── spec ├── ruby │ ├── packaging │ └── spec ├── scons │ ├── packaging │ └── spec ├── switchboard │ ├── packaging │ └── spec └── xtrabackup │ ├── packaging │ └── spec ├── releases └── cf-mysql │ ├── cf-mysql-1.yml │ ├── cf-mysql-10.yml │ ├── cf-mysql-11.yml │ ├── cf-mysql-12.yml │ ├── cf-mysql-13.yml │ ├── cf-mysql-14.yml │ ├── cf-mysql-15.yml │ ├── cf-mysql-16.yml │ ├── cf-mysql-17.yml │ ├── cf-mysql-18.yml │ ├── cf-mysql-19.yml │ ├── cf-mysql-2.yml │ ├── cf-mysql-20.yml │ ├── cf-mysql-21.yml │ ├── cf-mysql-22.yml │ ├── cf-mysql-23.yml │ ├── cf-mysql-24.yml │ ├── cf-mysql-25.yml │ ├── cf-mysql-26.yml │ ├── cf-mysql-27.yml │ ├── cf-mysql-28.yml │ ├── cf-mysql-29.yml │ ├── cf-mysql-3.yml │ ├── cf-mysql-30.yml │ ├── cf-mysql-31.yml │ ├── cf-mysql-32.yml │ ├── cf-mysql-33.yml │ ├── cf-mysql-34.yml │ ├── cf-mysql-35.yml │ ├── cf-mysql-36.10.0.yml │ ├── cf-mysql-36.11.0.yml │ ├── cf-mysql-36.12.0.yml │ ├── cf-mysql-36.13.0.yml │ ├── cf-mysql-36.14.0.yml │ ├── cf-mysql-36.15.0.yml │ ├── cf-mysql-36.16.0.yml │ ├── cf-mysql-36.17.0.yml │ ├── cf-mysql-36.18.0.yml │ ├── cf-mysql-36.19.0.yml │ ├── cf-mysql-36.7.0.yml │ ├── cf-mysql-36.8.0.yml │ ├── cf-mysql-36.9.0.yml │ ├── cf-mysql-36.yml │ ├── cf-mysql-4.yml │ ├── cf-mysql-5.yml │ ├── cf-mysql-6.yml │ ├── cf-mysql-7.yml │ ├── cf-mysql-8.yml │ ├── cf-mysql-9.yml │ └── index.yml ├── scripts ├── analyze_audit_log.rb ├── create_large_table.sql ├── download-logs ├── generate-cf-vars-for-bosh-2.0 ├── generate-deployment-manifest ├── set_up_bosh_lite ├── sql │ ├── list_empty_vs_nonempty_instances.sql │ ├── list_individual_db_usage.sql │ ├── list_plans_allocated.sql │ └── list_summary_db_usage.sql ├── test-integration ├── test-unit └── update ├── src ├── cf-mysql-common │ ├── logging.sh │ └── pid_utils.sh ├── cluster_schema_verifier │ ├── Gemfile │ ├── Gemfile.lock │ ├── lib │ │ └── cluster_schema_verifier.rb │ └── spec │ │ ├── lib │ │ └── cluster_schema_verifier_spec.rb │ │ └── spec_helper.rb ├── generate-auto-tune-mysql │ ├── .gitignore │ ├── auto_tune_generator.go │ ├── auto_tune_generator_test.go │ ├── generate_auto_tune_mysql_suite_test.go │ ├── main.go │ └── vendor │ │ ├── github.com │ │ ├── cloudfoundry │ │ │ └── gosigar │ │ │ │ ├── LICENSE │ │ │ │ ├── concrete_sigar.go │ │ │ │ ├── examples │ │ │ │ ├── df.go │ │ │ │ ├── free.go │ │ │ │ ├── ps.go │ │ │ │ └── uptime.go │ │ │ │ ├── fakes │ │ │ │ └── fake_sigar.go │ │ │ │ ├── psnotify │ │ │ │ ├── psnotify.go │ │ │ │ ├── psnotify_bsd.go │ │ │ │ └── psnotify_linux.go │ │ │ │ ├── sigar_darwin.go │ │ │ │ ├── sigar_format.go │ │ │ │ ├── sigar_interface.go │ │ │ │ ├── sigar_linux.go │ │ │ │ ├── sigar_unix.go │ │ │ │ ├── sigar_util.go │ │ │ │ └── sigar_windows.go │ │ ├── golang │ │ │ └── protobuf │ │ │ │ ├── proto │ │ │ │ ├── LICENSE │ │ │ │ ├── clone.go │ │ │ │ ├── decode.go │ │ │ │ ├── encode.go │ │ │ │ ├── equal.go │ │ │ │ ├── extensions.go │ │ │ │ ├── lib.go │ │ │ │ ├── message_set.go │ │ │ │ ├── pointer_reflect.go │ │ │ │ ├── pointer_unsafe.go │ │ │ │ ├── properties.go │ │ │ │ ├── proto3_proto │ │ │ │ │ └── proto3.pb.go │ │ │ │ ├── text.go │ │ │ │ └── text_parser.go │ │ │ │ └── ptypes │ │ │ │ └── any │ │ │ │ ├── LICENSE │ │ │ │ └── any.pb.go │ │ └── onsi │ │ │ └── gomega │ │ │ ├── LICENSE │ │ │ ├── format │ │ │ └── format.go │ │ │ ├── gbytes │ │ │ ├── buffer.go │ │ │ └── say_matcher.go │ │ │ ├── gexec │ │ │ ├── build.go │ │ │ ├── exit_matcher.go │ │ │ ├── prefixed_writer.go │ │ │ └── session.go │ │ │ ├── ghttp │ │ │ ├── handlers.go │ │ │ ├── protobuf │ │ │ │ ├── protobuf.go │ │ │ │ └── simple_message.pb.go │ │ │ └── test_server.go │ │ │ ├── gomega_dsl.go │ │ │ ├── gstruct │ │ │ ├── elements.go │ │ │ ├── errors │ │ │ │ └── nested_types.go │ │ │ ├── fields.go │ │ │ ├── ignore.go │ │ │ ├── pointer.go │ │ │ └── types.go │ │ │ ├── internal │ │ │ ├── assertion │ │ │ │ └── assertion.go │ │ │ ├── asyncassertion │ │ │ │ └── async_assertion.go │ │ │ ├── fakematcher │ │ │ │ └── fake_matcher.go │ │ │ ├── oraclematcher │ │ │ │ └── oracle_matcher.go │ │ │ └── testingtsupport │ │ │ │ └── testing_t_support.go │ │ │ ├── matchers.go │ │ │ ├── matchers │ │ │ ├── and.go │ │ │ ├── assignable_to_type_of_matcher.go │ │ │ ├── be_a_directory.go │ │ │ ├── be_a_regular_file.go │ │ │ ├── be_an_existing_file.go │ │ │ ├── be_closed_matcher.go │ │ │ ├── be_empty_matcher.go │ │ │ ├── be_equivalent_to_matcher.go │ │ │ ├── be_false_matcher.go │ │ │ ├── be_identical_to.go │ │ │ ├── be_nil_matcher.go │ │ │ ├── be_numerically_matcher.go │ │ │ ├── be_sent_matcher.go │ │ │ ├── be_temporally_matcher.go │ │ │ ├── be_true_matcher.go │ │ │ ├── be_zero_matcher.go │ │ │ ├── consist_of.go │ │ │ ├── contain_element_matcher.go │ │ │ ├── contain_substring_matcher.go │ │ │ ├── equal_matcher.go │ │ │ ├── have_cap_matcher.go │ │ │ ├── have_key_matcher.go │ │ │ ├── have_key_with_value_matcher.go │ │ │ ├── have_len_matcher.go │ │ │ ├── have_occurred_matcher.go │ │ │ ├── have_prefix_matcher.go │ │ │ ├── have_suffix_matcher.go │ │ │ ├── match_error_matcher.go │ │ │ ├── match_json_matcher.go │ │ │ ├── match_regexp_matcher.go │ │ │ ├── match_xml_matcher.go │ │ │ ├── match_yaml_matcher.go │ │ │ ├── not.go │ │ │ ├── or.go │ │ │ ├── panic_matcher.go │ │ │ ├── receive_matcher.go │ │ │ ├── succeed_matcher.go │ │ │ ├── support │ │ │ │ └── goraph │ │ │ │ │ ├── bipartitegraph │ │ │ │ │ ├── bipartitegraph.go │ │ │ │ │ └── bipartitegraphmatching.go │ │ │ │ │ ├── edge │ │ │ │ │ └── edge.go │ │ │ │ │ ├── node │ │ │ │ │ └── node.go │ │ │ │ │ └── util │ │ │ │ │ └── util.go │ │ │ ├── type_support.go │ │ │ └── with_transform.go │ │ │ └── types │ │ │ └── types.go │ │ ├── golang.org │ │ └── x │ │ │ ├── net │ │ │ └── html │ │ │ │ ├── LICENSE │ │ │ │ ├── atom │ │ │ │ ├── atom.go │ │ │ │ ├── gen.go │ │ │ │ └── table.go │ │ │ │ ├── charset │ │ │ │ └── charset.go │ │ │ │ ├── const.go │ │ │ │ ├── doc.go │ │ │ │ ├── doctype.go │ │ │ │ ├── entity.go │ │ │ │ ├── escape.go │ │ │ │ ├── foreign.go │ │ │ │ ├── node.go │ │ │ │ ├── parse.go │ │ │ │ ├── render.go │ │ │ │ └── token.go │ │ │ └── text │ │ │ ├── encoding │ │ │ ├── LICENSE │ │ │ ├── charmap │ │ │ │ ├── charmap.go │ │ │ │ ├── maketables.go │ │ │ │ └── tables.go │ │ │ ├── encoding.go │ │ │ ├── htmlindex │ │ │ │ ├── gen.go │ │ │ │ ├── htmlindex.go │ │ │ │ ├── map.go │ │ │ │ └── tables.go │ │ │ ├── ianaindex │ │ │ │ ├── gen.go │ │ │ │ ├── ianaindex.go │ │ │ │ └── tables.go │ │ │ ├── internal │ │ │ │ ├── enctest │ │ │ │ │ └── enctest.go │ │ │ │ ├── identifier │ │ │ │ │ ├── gen.go │ │ │ │ │ ├── identifier.go │ │ │ │ │ └── mib.go │ │ │ │ └── internal.go │ │ │ ├── japanese │ │ │ │ ├── all.go │ │ │ │ ├── eucjp.go │ │ │ │ ├── iso2022jp.go │ │ │ │ ├── maketables.go │ │ │ │ ├── shiftjis.go │ │ │ │ └── tables.go │ │ │ ├── korean │ │ │ │ ├── euckr.go │ │ │ │ ├── maketables.go │ │ │ │ └── tables.go │ │ │ ├── simplifiedchinese │ │ │ │ ├── all.go │ │ │ │ ├── gbk.go │ │ │ │ ├── hzgb2312.go │ │ │ │ ├── maketables.go │ │ │ │ └── tables.go │ │ │ ├── traditionalchinese │ │ │ │ ├── big5.go │ │ │ │ ├── maketables.go │ │ │ │ └── tables.go │ │ │ └── unicode │ │ │ │ ├── override.go │ │ │ │ ├── unicode.go │ │ │ │ └── utf32 │ │ │ │ └── utf32.go │ │ │ ├── internal │ │ │ ├── gen │ │ │ │ ├── LICENSE │ │ │ │ ├── code.go │ │ │ │ └── gen.go │ │ │ ├── tag │ │ │ │ ├── LICENSE │ │ │ │ └── tag.go │ │ │ └── utf8internal │ │ │ │ ├── LICENSE │ │ │ │ └── utf8internal.go │ │ │ ├── language │ │ │ ├── LICENSE │ │ │ ├── common.go │ │ │ ├── coverage.go │ │ │ ├── display │ │ │ │ ├── dict.go │ │ │ │ ├── display.go │ │ │ │ ├── lookup.go │ │ │ │ ├── maketables.go │ │ │ │ └── tables.go │ │ │ ├── gen_common.go │ │ │ ├── gen_index.go │ │ │ ├── go1_1.go │ │ │ ├── go1_2.go │ │ │ ├── index.go │ │ │ ├── language.go │ │ │ ├── lookup.go │ │ │ ├── maketables.go │ │ │ ├── match.go │ │ │ ├── parse.go │ │ │ ├── tables.go │ │ │ └── tags.go │ │ │ ├── runes │ │ │ ├── LICENSE │ │ │ ├── cond.go │ │ │ └── runes.go │ │ │ ├── transform │ │ │ ├── LICENSE │ │ │ └── transform.go │ │ │ └── unicode │ │ │ └── cldr │ │ │ ├── LICENSE │ │ │ ├── base.go │ │ │ ├── cldr.go │ │ │ ├── collate.go │ │ │ ├── decode.go │ │ │ ├── makexml.go │ │ │ ├── resolve.go │ │ │ ├── slice.go │ │ │ └── xml.go │ │ ├── gopkg.in │ │ └── yaml.v2 │ │ │ ├── LICENSE │ │ │ ├── apic.go │ │ │ ├── decode.go │ │ │ ├── emitterc.go │ │ │ ├── encode.go │ │ │ ├── parserc.go │ │ │ ├── readerc.go │ │ │ ├── resolve.go │ │ │ ├── scannerc.go │ │ │ ├── sorter.go │ │ │ ├── writerc.go │ │ │ ├── yaml.go │ │ │ ├── yamlh.go │ │ │ └── yamlprivateh.go │ │ └── manifest ├── gra-log-purger │ ├── Gopkg.lock │ ├── Gopkg.toml │ ├── README.md │ ├── gra_log_purger.go │ ├── gra_log_purger_suite_test.go │ ├── gra_log_purger_test.go │ └── vendor │ │ ├── github.com │ │ ├── hpcloud │ │ │ └── tail │ │ │ │ ├── .gitignore │ │ │ │ ├── .travis.yml │ │ │ │ ├── CHANGES.md │ │ │ │ ├── Dockerfile │ │ │ │ ├── LICENSE.txt │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── appveyor.yml │ │ │ │ ├── ratelimiter │ │ │ │ ├── Licence │ │ │ │ ├── leakybucket.go │ │ │ │ ├── memory.go │ │ │ │ └── storage.go │ │ │ │ ├── tail.go │ │ │ │ ├── tail_posix.go │ │ │ │ ├── tail_windows.go │ │ │ │ ├── util │ │ │ │ └── util.go │ │ │ │ ├── watch │ │ │ │ ├── filechanges.go │ │ │ │ ├── inotify.go │ │ │ │ ├── inotify_tracker.go │ │ │ │ ├── polling.go │ │ │ │ └── watch.go │ │ │ │ └── winfile │ │ │ │ └── winfile.go │ │ └── onsi │ │ │ ├── ginkgo │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── RELEASING.md │ │ │ ├── config │ │ │ │ └── config.go │ │ │ ├── ginkgo_dsl.go │ │ │ ├── internal │ │ │ │ ├── codelocation │ │ │ │ │ └── code_location.go │ │ │ │ ├── containernode │ │ │ │ │ └── container_node.go │ │ │ │ ├── failer │ │ │ │ │ └── failer.go │ │ │ │ ├── leafnodes │ │ │ │ │ ├── benchmarker.go │ │ │ │ │ ├── interfaces.go │ │ │ │ │ ├── it_node.go │ │ │ │ │ ├── measure_node.go │ │ │ │ │ ├── runner.go │ │ │ │ │ ├── setup_nodes.go │ │ │ │ │ ├── suite_nodes.go │ │ │ │ │ ├── synchronized_after_suite_node.go │ │ │ │ │ └── synchronized_before_suite_node.go │ │ │ │ ├── remote │ │ │ │ │ ├── aggregator.go │ │ │ │ │ ├── forwarding_reporter.go │ │ │ │ │ ├── output_interceptor.go │ │ │ │ │ ├── output_interceptor_unix.go │ │ │ │ │ ├── output_interceptor_win.go │ │ │ │ │ ├── server.go │ │ │ │ │ ├── syscall_dup_linux_arm64.go │ │ │ │ │ ├── syscall_dup_solaris.go │ │ │ │ │ └── syscall_dup_unix.go │ │ │ │ ├── spec │ │ │ │ │ ├── spec.go │ │ │ │ │ └── specs.go │ │ │ │ ├── spec_iterator │ │ │ │ │ ├── index_computer.go │ │ │ │ │ ├── parallel_spec_iterator.go │ │ │ │ │ ├── serial_spec_iterator.go │ │ │ │ │ ├── sharded_parallel_spec_iterator.go │ │ │ │ │ └── spec_iterator.go │ │ │ │ ├── specrunner │ │ │ │ │ ├── random_id.go │ │ │ │ │ └── spec_runner.go │ │ │ │ ├── suite │ │ │ │ │ └── suite.go │ │ │ │ ├── testingtproxy │ │ │ │ │ └── testing_t_proxy.go │ │ │ │ └── writer │ │ │ │ │ ├── fake_writer.go │ │ │ │ │ └── writer.go │ │ │ ├── reporters │ │ │ │ ├── default_reporter.go │ │ │ │ ├── fake_reporter.go │ │ │ │ ├── junit_reporter.go │ │ │ │ ├── reporter.go │ │ │ │ ├── stenographer │ │ │ │ │ ├── console_logging.go │ │ │ │ │ ├── fake_stenographer.go │ │ │ │ │ ├── stenographer.go │ │ │ │ │ └── support │ │ │ │ │ │ ├── go-colorable │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── colorable_others.go │ │ │ │ │ │ ├── colorable_windows.go │ │ │ │ │ │ └── noncolorable.go │ │ │ │ │ │ └── go-isatty │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── doc.go │ │ │ │ │ │ ├── isatty_appengine.go │ │ │ │ │ │ ├── isatty_bsd.go │ │ │ │ │ │ ├── isatty_linux.go │ │ │ │ │ │ ├── isatty_solaris.go │ │ │ │ │ │ └── isatty_windows.go │ │ │ │ └── teamcity_reporter.go │ │ │ └── types │ │ │ │ ├── code_location.go │ │ │ │ ├── synchronization.go │ │ │ │ └── types.go │ │ │ └── gomega │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── CHANGELOG.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── RELEASING.md │ │ │ ├── format │ │ │ └── format.go │ │ │ ├── gbytes │ │ │ ├── buffer.go │ │ │ ├── io_wrappers.go │ │ │ └── say_matcher.go │ │ │ ├── gexec │ │ │ ├── build.go │ │ │ ├── exit_matcher.go │ │ │ ├── prefixed_writer.go │ │ │ └── session.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── gomega_dsl.go │ │ │ ├── internal │ │ │ ├── assertion │ │ │ │ └── assertion.go │ │ │ ├── asyncassertion │ │ │ │ └── async_assertion.go │ │ │ ├── oraclematcher │ │ │ │ └── oracle_matcher.go │ │ │ └── testingtsupport │ │ │ │ └── testing_t_support.go │ │ │ ├── matchers.go │ │ │ ├── matchers │ │ │ ├── and.go │ │ │ ├── assignable_to_type_of_matcher.go │ │ │ ├── attributes_slice.go │ │ │ ├── be_a_directory.go │ │ │ ├── be_a_regular_file.go │ │ │ ├── be_an_existing_file.go │ │ │ ├── be_closed_matcher.go │ │ │ ├── be_empty_matcher.go │ │ │ ├── be_equivalent_to_matcher.go │ │ │ ├── be_false_matcher.go │ │ │ ├── be_identical_to.go │ │ │ ├── be_nil_matcher.go │ │ │ ├── be_numerically_matcher.go │ │ │ ├── be_sent_matcher.go │ │ │ ├── be_temporally_matcher.go │ │ │ ├── be_true_matcher.go │ │ │ ├── be_zero_matcher.go │ │ │ ├── consist_of.go │ │ │ ├── contain_element_matcher.go │ │ │ ├── contain_substring_matcher.go │ │ │ ├── equal_matcher.go │ │ │ ├── have_cap_matcher.go │ │ │ ├── have_key_matcher.go │ │ │ ├── have_key_with_value_matcher.go │ │ │ ├── have_len_matcher.go │ │ │ ├── have_occurred_matcher.go │ │ │ ├── have_prefix_matcher.go │ │ │ ├── have_suffix_matcher.go │ │ │ ├── match_error_matcher.go │ │ │ ├── match_json_matcher.go │ │ │ ├── match_regexp_matcher.go │ │ │ ├── match_xml_matcher.go │ │ │ ├── match_yaml_matcher.go │ │ │ ├── not.go │ │ │ ├── or.go │ │ │ ├── panic_matcher.go │ │ │ ├── receive_matcher.go │ │ │ ├── semi_structured_data_support.go │ │ │ ├── succeed_matcher.go │ │ │ ├── support │ │ │ │ └── goraph │ │ │ │ │ ├── bipartitegraph │ │ │ │ │ ├── bipartitegraph.go │ │ │ │ │ └── bipartitegraphmatching.go │ │ │ │ │ ├── edge │ │ │ │ │ └── edge.go │ │ │ │ │ ├── node │ │ │ │ │ └── node.go │ │ │ │ │ └── util │ │ │ │ │ └── util.go │ │ │ ├── type_support.go │ │ │ └── with_transform.go │ │ │ └── types │ │ │ └── types.go │ │ ├── golang.org │ │ └── x │ │ │ ├── net │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ └── html │ │ │ │ ├── atom │ │ │ │ ├── atom.go │ │ │ │ ├── gen.go │ │ │ │ └── table.go │ │ │ │ ├── charset │ │ │ │ └── charset.go │ │ │ │ ├── const.go │ │ │ │ ├── doc.go │ │ │ │ ├── doctype.go │ │ │ │ ├── entity.go │ │ │ │ ├── escape.go │ │ │ │ ├── foreign.go │ │ │ │ ├── node.go │ │ │ │ ├── parse.go │ │ │ │ ├── render.go │ │ │ │ └── token.go │ │ │ ├── sys │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ └── 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_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_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 │ │ │ │ ├── fcntl.go │ │ │ │ ├── fcntl_darwin.go │ │ │ │ ├── fcntl_linux_32bit.go │ │ │ │ ├── gccgo.go │ │ │ │ ├── gccgo_c.c │ │ │ │ ├── gccgo_linux_amd64.go │ │ │ │ ├── ioctl.go │ │ │ │ ├── mkall.sh │ │ │ │ ├── mkasm_darwin.go │ │ │ │ ├── mkerrors.sh │ │ │ │ ├── mkpost.go │ │ │ │ ├── mksyscall.go │ │ │ │ ├── mksyscall_aix_ppc.go │ │ │ │ ├── mksyscall_aix_ppc64.go │ │ │ │ ├── mksyscall_solaris.pl │ │ │ │ ├── mksysctl_openbsd.pl │ │ │ │ ├── mksysnum.go │ │ │ │ ├── openbsd_pledge.go │ │ │ │ ├── openbsd_unveil.go │ │ │ │ ├── pagesize_unix.go │ │ │ │ ├── race.go │ │ │ │ ├── race0.go │ │ │ │ ├── sockcmsg_linux.go │ │ │ │ ├── sockcmsg_unix.go │ │ │ │ ├── str.go │ │ │ │ ├── syscall.go │ │ │ │ ├── syscall_aix.go │ │ │ │ ├── syscall_aix_ppc.go │ │ │ │ ├── syscall_aix_ppc64.go │ │ │ │ ├── syscall_bsd.go │ │ │ │ ├── syscall_darwin.go │ │ │ │ ├── syscall_darwin_386.go │ │ │ │ ├── syscall_darwin_amd64.go │ │ │ │ ├── syscall_darwin_arm.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_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_solaris.go │ │ │ │ ├── syscall_solaris_amd64.go │ │ │ │ ├── syscall_unix.go │ │ │ │ ├── syscall_unix_gc.go │ │ │ │ ├── syscall_unix_gc_ppc64x.go │ │ │ │ ├── timestruct.go │ │ │ │ ├── types_aix.go │ │ │ │ ├── types_darwin.go │ │ │ │ ├── types_dragonfly.go │ │ │ │ ├── types_freebsd.go │ │ │ │ ├── types_netbsd.go │ │ │ │ ├── types_openbsd.go │ │ │ │ ├── types_solaris.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_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_solaris_amd64.go │ │ │ │ ├── zptrace386_linux.go │ │ │ │ ├── zptracearm_linux.go │ │ │ │ ├── zptracemips_linux.go │ │ │ │ ├── zptracemipsle_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.go │ │ │ │ ├── zsyscall_darwin_386.s │ │ │ │ ├── zsyscall_darwin_amd64.1_11.go │ │ │ │ ├── zsyscall_darwin_amd64.go │ │ │ │ ├── zsyscall_darwin_amd64.s │ │ │ │ ├── zsyscall_darwin_arm.1_11.go │ │ │ │ ├── zsyscall_darwin_arm.go │ │ │ │ ├── zsyscall_darwin_arm.s │ │ │ │ ├── zsyscall_darwin_arm64.1_11.go │ │ │ │ ├── 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_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_solaris_amd64.go │ │ │ │ ├── zsysctl_openbsd_386.go │ │ │ │ ├── zsysctl_openbsd_amd64.go │ │ │ │ ├── zsysctl_openbsd_arm.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 │ │ │ │ ├── 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_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_solaris_amd64.go │ │ │ └── text │ │ │ ├── AUTHORS │ │ │ ├── CONTRIBUTORS │ │ │ ├── LICENSE │ │ │ ├── PATENTS │ │ │ ├── encoding │ │ │ ├── charmap │ │ │ │ ├── charmap.go │ │ │ │ ├── maketables.go │ │ │ │ └── tables.go │ │ │ ├── encoding.go │ │ │ ├── htmlindex │ │ │ │ ├── gen.go │ │ │ │ ├── htmlindex.go │ │ │ │ ├── map.go │ │ │ │ └── tables.go │ │ │ ├── internal │ │ │ │ ├── identifier │ │ │ │ │ ├── gen.go │ │ │ │ │ ├── identifier.go │ │ │ │ │ └── mib.go │ │ │ │ └── internal.go │ │ │ ├── japanese │ │ │ │ ├── all.go │ │ │ │ ├── eucjp.go │ │ │ │ ├── iso2022jp.go │ │ │ │ ├── maketables.go │ │ │ │ ├── shiftjis.go │ │ │ │ └── tables.go │ │ │ ├── korean │ │ │ │ ├── euckr.go │ │ │ │ ├── maketables.go │ │ │ │ └── tables.go │ │ │ ├── simplifiedchinese │ │ │ │ ├── all.go │ │ │ │ ├── gbk.go │ │ │ │ ├── hzgb2312.go │ │ │ │ ├── maketables.go │ │ │ │ └── tables.go │ │ │ ├── traditionalchinese │ │ │ │ ├── big5.go │ │ │ │ ├── maketables.go │ │ │ │ └── tables.go │ │ │ └── unicode │ │ │ │ ├── override.go │ │ │ │ └── unicode.go │ │ │ ├── internal │ │ │ ├── gen │ │ │ │ ├── code.go │ │ │ │ └── gen.go │ │ │ ├── tag │ │ │ │ └── tag.go │ │ │ └── utf8internal │ │ │ │ └── utf8internal.go │ │ │ ├── language │ │ │ ├── Makefile │ │ │ ├── common.go │ │ │ ├── coverage.go │ │ │ ├── doc.go │ │ │ ├── gen.go │ │ │ ├── gen_common.go │ │ │ ├── gen_index.go │ │ │ ├── go1_1.go │ │ │ ├── go1_2.go │ │ │ ├── index.go │ │ │ ├── language.go │ │ │ ├── lookup.go │ │ │ ├── match.go │ │ │ ├── parse.go │ │ │ ├── tables.go │ │ │ └── tags.go │ │ │ ├── runes │ │ │ ├── cond.go │ │ │ └── runes.go │ │ │ ├── transform │ │ │ └── transform.go │ │ │ └── unicode │ │ │ └── cldr │ │ │ ├── base.go │ │ │ ├── cldr.go │ │ │ ├── collate.go │ │ │ ├── decode.go │ │ │ ├── makexml.go │ │ │ ├── resolve.go │ │ │ ├── slice.go │ │ │ └── xml.go │ │ └── gopkg.in │ │ ├── fsnotify │ │ └── fsnotify.v1 │ │ │ ├── .editorconfig │ │ │ ├── .gitignore │ │ │ ├── .travis.yml │ │ │ ├── AUTHORS │ │ │ ├── CHANGELOG.md │ │ │ ├── CONTRIBUTING.md │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── fen.go │ │ │ ├── fsnotify.go │ │ │ ├── inotify.go │ │ │ ├── inotify_poller.go │ │ │ ├── kqueue.go │ │ │ ├── open_mode_bsd.go │ │ │ ├── open_mode_darwin.go │ │ │ └── windows.go │ │ ├── tomb.v1 │ │ ├── LICENSE │ │ ├── README.md │ │ └── tomb.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 ├── mariadb-patch │ └── add_sst_interrupt.patch └── quota-enforcer │ ├── LICENSE │ ├── README.md │ ├── bin │ ├── govet │ ├── test-integration │ └── test-unit │ ├── clock │ ├── clock.go │ └── clockfakes │ │ └── fake_clock.go │ ├── config-default.yaml │ ├── config-example.yaml │ ├── config │ ├── config.go │ ├── config_suite_test.go │ └── config_test.go │ ├── database │ ├── connection.go │ ├── database.go │ ├── database_suite_test.go │ ├── database_test.go │ ├── databasefakes │ │ ├── fake_database.go │ │ └── fake_repo.go │ ├── reformer_repo.go │ ├── reformer_repo_test.go │ ├── repo.go │ ├── violator_repo.go │ └── violator_repo_test.go │ ├── enforcer │ ├── enforcer.go │ ├── enforcer_suite_test.go │ ├── enforcer_test.go │ ├── enforcerfakes │ │ └── fake_enforcer.go │ ├── runner.go │ └── runner_test.go │ ├── integration │ ├── integration_suite_test.go │ └── integration_test.go │ ├── main.go │ └── vendor │ ├── code.cloudfoundry.org │ ├── cflager │ │ ├── LICENSE │ │ ├── cf_lager.go │ │ └── integration │ │ │ └── main.go │ └── lager │ │ ├── LICENSE │ │ ├── chug │ │ └── chug.go │ │ ├── ginkgoreporter │ │ └── ginkgo_reporter.go │ │ ├── lagertest │ │ └── test_sink.go │ │ ├── logger.go │ │ ├── models.go │ │ ├── reconfigurable_sink.go │ │ └── writer_sink.go │ ├── github.com │ ├── DATA-DOG │ │ └── go-sqlmock │ │ │ ├── LICENSE │ │ │ ├── argument.go │ │ │ ├── driver.go │ │ │ ├── examples │ │ │ ├── basic │ │ │ │ └── basic.go │ │ │ ├── blog │ │ │ │ └── blog.go │ │ │ ├── doc.go │ │ │ └── orders │ │ │ │ └── orders.go │ │ │ ├── expectations.go │ │ │ ├── result.go │ │ │ ├── rows.go │ │ │ ├── sqlmock.go │ │ │ ├── statement.go │ │ │ └── util.go │ ├── go-sql-driver │ │ └── mysql │ │ │ ├── LICENSE │ │ │ ├── appengine.go │ │ │ ├── buffer.go │ │ │ ├── collations.go │ │ │ ├── connection.go │ │ │ ├── const.go │ │ │ ├── driver.go │ │ │ ├── dsn.go │ │ │ ├── errors.go │ │ │ ├── infile.go │ │ │ ├── packets.go │ │ │ ├── result.go │ │ │ ├── rows.go │ │ │ ├── statement.go │ │ │ ├── transaction.go │ │ │ └── utils.go │ ├── golang │ │ └── protobuf │ │ │ ├── proto │ │ │ ├── LICENSE │ │ │ ├── clone.go │ │ │ ├── decode.go │ │ │ ├── encode.go │ │ │ ├── equal.go │ │ │ ├── extensions.go │ │ │ ├── lib.go │ │ │ ├── message_set.go │ │ │ ├── pointer_reflect.go │ │ │ ├── pointer_unsafe.go │ │ │ ├── properties.go │ │ │ ├── proto3_proto │ │ │ │ └── proto3.pb.go │ │ │ ├── text.go │ │ │ └── text_parser.go │ │ │ └── ptypes │ │ │ └── any │ │ │ ├── LICENSE │ │ │ └── any.pb.go │ ├── imdario │ │ └── mergo │ │ │ ├── LICENSE │ │ │ ├── doc.go │ │ │ ├── map.go │ │ │ ├── merge.go │ │ │ └── mergo.go │ ├── kisielk │ │ └── sqlstruct │ │ │ ├── LICENSE │ │ │ └── sqlstruct.go │ ├── nu7hatch │ │ └── gouuid │ │ │ ├── COPYING │ │ │ └── uuid.go │ ├── onsi │ │ ├── ginkgo │ │ │ ├── LICENSE │ │ │ ├── config │ │ │ │ └── config.go │ │ │ ├── extensions │ │ │ │ └── table │ │ │ │ │ ├── table.go │ │ │ │ │ └── table_entry.go │ │ │ ├── ginkgo │ │ │ │ ├── bootstrap_command.go │ │ │ │ ├── build_command.go │ │ │ │ ├── convert │ │ │ │ │ ├── ginkgo_ast_nodes.go │ │ │ │ │ ├── import.go │ │ │ │ │ ├── package_rewriter.go │ │ │ │ │ ├── test_finder.go │ │ │ │ │ ├── testfile_rewriter.go │ │ │ │ │ └── testing_t_rewriter.go │ │ │ │ ├── convert_command.go │ │ │ │ ├── generate_command.go │ │ │ │ ├── help_command.go │ │ │ │ ├── interrupthandler │ │ │ │ │ ├── interrupt_handler.go │ │ │ │ │ ├── sigquit_swallower_unix.go │ │ │ │ │ └── sigquit_swallower_windows.go │ │ │ │ ├── main.go │ │ │ │ ├── nodot │ │ │ │ │ └── nodot.go │ │ │ │ ├── nodot_command.go │ │ │ │ ├── notifications.go │ │ │ │ ├── run_command.go │ │ │ │ ├── run_watch_and_build_command_flags.go │ │ │ │ ├── suite_runner.go │ │ │ │ ├── testrunner │ │ │ │ │ ├── log_writer.go │ │ │ │ │ ├── run_result.go │ │ │ │ │ └── test_runner.go │ │ │ │ ├── testsuite │ │ │ │ │ ├── test_suite.go │ │ │ │ │ ├── vendor_check_go15.go │ │ │ │ │ └── vendor_check_go16.go │ │ │ │ ├── unfocus_command.go │ │ │ │ ├── version_command.go │ │ │ │ ├── watch │ │ │ │ │ ├── delta.go │ │ │ │ │ ├── delta_tracker.go │ │ │ │ │ ├── dependencies.go │ │ │ │ │ ├── package_hash.go │ │ │ │ │ ├── package_hashes.go │ │ │ │ │ └── suite.go │ │ │ │ └── watch_command.go │ │ │ ├── ginkgo_dsl.go │ │ │ ├── integration │ │ │ │ └── integration.go │ │ │ ├── internal │ │ │ │ ├── codelocation │ │ │ │ │ └── code_location.go │ │ │ │ ├── containernode │ │ │ │ │ └── container_node.go │ │ │ │ ├── failer │ │ │ │ │ └── failer.go │ │ │ │ ├── leafnodes │ │ │ │ │ ├── benchmarker.go │ │ │ │ │ ├── interfaces.go │ │ │ │ │ ├── it_node.go │ │ │ │ │ ├── measure_node.go │ │ │ │ │ ├── runner.go │ │ │ │ │ ├── setup_nodes.go │ │ │ │ │ ├── suite_nodes.go │ │ │ │ │ ├── synchronized_after_suite_node.go │ │ │ │ │ └── synchronized_before_suite_node.go │ │ │ │ ├── remote │ │ │ │ │ ├── aggregator.go │ │ │ │ │ ├── forwarding_reporter.go │ │ │ │ │ ├── output_interceptor.go │ │ │ │ │ ├── output_interceptor_unix.go │ │ │ │ │ ├── output_interceptor_win.go │ │ │ │ │ ├── server.go │ │ │ │ │ ├── syscall_dup_linux_arm64.go │ │ │ │ │ ├── syscall_dup_solaris.go │ │ │ │ │ └── syscall_dup_unix.go │ │ │ │ ├── spec │ │ │ │ │ ├── index_computer.go │ │ │ │ │ ├── spec.go │ │ │ │ │ └── specs.go │ │ │ │ ├── specrunner │ │ │ │ │ ├── random_id.go │ │ │ │ │ └── spec_runner.go │ │ │ │ ├── suite │ │ │ │ │ └── suite.go │ │ │ │ ├── testingtproxy │ │ │ │ │ └── testing_t_proxy.go │ │ │ │ └── writer │ │ │ │ │ ├── fake_writer.go │ │ │ │ │ └── writer.go │ │ │ ├── reporters │ │ │ │ ├── default_reporter.go │ │ │ │ ├── fake_reporter.go │ │ │ │ ├── junit_reporter.go │ │ │ │ ├── reporter.go │ │ │ │ ├── stenographer │ │ │ │ │ ├── console_logging.go │ │ │ │ │ ├── fake_stenographer.go │ │ │ │ │ └── stenographer.go │ │ │ │ └── teamcity_reporter.go │ │ │ └── types │ │ │ │ ├── code_location.go │ │ │ │ ├── synchronization.go │ │ │ │ └── types.go │ │ └── gomega │ │ │ ├── LICENSE │ │ │ ├── format │ │ │ └── format.go │ │ │ ├── gbytes │ │ │ ├── buffer.go │ │ │ └── say_matcher.go │ │ │ ├── gexec │ │ │ ├── build.go │ │ │ ├── exit_matcher.go │ │ │ ├── prefixed_writer.go │ │ │ └── session.go │ │ │ ├── ghttp │ │ │ ├── handlers.go │ │ │ ├── protobuf │ │ │ │ ├── protobuf.go │ │ │ │ └── simple_message.pb.go │ │ │ └── test_server.go │ │ │ ├── gomega_dsl.go │ │ │ ├── internal │ │ │ ├── assertion │ │ │ │ └── assertion.go │ │ │ ├── asyncassertion │ │ │ │ └── async_assertion.go │ │ │ ├── fakematcher │ │ │ │ └── fake_matcher.go │ │ │ ├── oraclematcher │ │ │ │ └── oracle_matcher.go │ │ │ └── testingtsupport │ │ │ │ └── testing_t_support.go │ │ │ ├── matchers.go │ │ │ ├── matchers │ │ │ ├── and.go │ │ │ ├── assignable_to_type_of_matcher.go │ │ │ ├── be_a_directory.go │ │ │ ├── be_a_regular_file.go │ │ │ ├── be_an_existing_file.go │ │ │ ├── be_closed_matcher.go │ │ │ ├── be_empty_matcher.go │ │ │ ├── be_equivalent_to_matcher.go │ │ │ ├── be_false_matcher.go │ │ │ ├── be_identical_to.go │ │ │ ├── be_nil_matcher.go │ │ │ ├── be_numerically_matcher.go │ │ │ ├── be_sent_matcher.go │ │ │ ├── be_temporally_matcher.go │ │ │ ├── be_true_matcher.go │ │ │ ├── be_zero_matcher.go │ │ │ ├── consist_of.go │ │ │ ├── contain_element_matcher.go │ │ │ ├── contain_substring_matcher.go │ │ │ ├── equal_matcher.go │ │ │ ├── have_cap_matcher.go │ │ │ ├── have_key_matcher.go │ │ │ ├── have_key_with_value_matcher.go │ │ │ ├── have_len_matcher.go │ │ │ ├── have_occurred_matcher.go │ │ │ ├── have_prefix_matcher.go │ │ │ ├── have_suffix_matcher.go │ │ │ ├── match_error_matcher.go │ │ │ ├── match_json_matcher.go │ │ │ ├── match_regexp_matcher.go │ │ │ ├── match_yaml_matcher.go │ │ │ ├── not.go │ │ │ ├── or.go │ │ │ ├── panic_matcher.go │ │ │ ├── receive_matcher.go │ │ │ ├── succeed_matcher.go │ │ │ ├── support │ │ │ │ └── goraph │ │ │ │ │ ├── bipartitegraph │ │ │ │ │ ├── bipartitegraph.go │ │ │ │ │ └── bipartitegraphmatching.go │ │ │ │ │ ├── edge │ │ │ │ │ └── edge.go │ │ │ │ │ ├── node │ │ │ │ │ └── node.go │ │ │ │ │ └── util │ │ │ │ │ └── util.go │ │ │ ├── type_support.go │ │ │ └── with_transform.go │ │ │ └── types │ │ │ └── types.go │ ├── pivotal-cf-experimental │ │ └── service-config │ │ │ ├── LICENSE │ │ │ ├── config.go │ │ │ ├── config_reader.go │ │ │ ├── examples │ │ │ └── test_service.go │ │ │ └── test_helpers │ │ │ └── test_helpers.go │ └── tedsuo │ │ └── ifrit │ │ ├── LICENSE │ │ ├── doc.go │ │ ├── fake_runner │ │ ├── doc.go │ │ ├── fake_runner.go │ │ └── test_runner.go │ │ ├── ginkgomon │ │ ├── ginkgomon.go │ │ └── helpers.go │ │ ├── grouper │ │ ├── client.go │ │ ├── doc.go │ │ ├── dynamic_group.go │ │ ├── entrance_events.go │ │ ├── exit_events.go │ │ ├── members.go │ │ ├── ordered.go │ │ ├── parallel.go │ │ └── sliding_buffer.go │ │ ├── http_server │ │ ├── http_server.go │ │ └── unix_transport │ │ │ └── unix_transport.go │ │ ├── process.go │ │ ├── proxy │ │ └── proxy.go │ │ ├── restart │ │ ├── restart.go │ │ └── strategies.go │ │ ├── runner.go │ │ ├── sigmon │ │ └── sigmon.go │ │ └── test_helpers │ │ └── test_helpers.go │ ├── golang.org │ └── x │ │ └── sys │ │ └── unix │ │ ├── LICENSE │ │ ├── asm.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_linux_386.s │ │ ├── asm_linux_amd64.s │ │ ├── asm_linux_arm.s │ │ ├── asm_linux_arm64.s │ │ ├── asm_linux_mips64x.s │ │ ├── asm_linux_ppc64x.s │ │ ├── asm_linux_s390x.s │ │ ├── asm_netbsd_386.s │ │ ├── asm_netbsd_amd64.s │ │ ├── asm_netbsd_arm.s │ │ ├── asm_openbsd_386.s │ │ ├── asm_openbsd_amd64.s │ │ ├── asm_solaris_amd64.s │ │ ├── bluetooth_linux.go │ │ ├── constants.go │ │ ├── env_unix.go │ │ ├── env_unset.go │ │ ├── flock.go │ │ ├── flock_linux_32bit.go │ │ ├── gccgo.go │ │ ├── gccgo_c.c │ │ ├── gccgo_linux_amd64.go │ │ ├── mkpost.go │ │ ├── race.go │ │ ├── race0.go │ │ ├── sockcmsg_linux.go │ │ ├── sockcmsg_unix.go │ │ ├── str.go │ │ ├── syscall.go │ │ ├── syscall_bsd.go │ │ ├── syscall_darwin.go │ │ ├── syscall_darwin_386.go │ │ ├── syscall_darwin_amd64.go │ │ ├── syscall_darwin_arm.go │ │ ├── syscall_darwin_arm64.go │ │ ├── syscall_dragonfly.go │ │ ├── syscall_dragonfly_amd64.go │ │ ├── syscall_freebsd.go │ │ ├── syscall_freebsd_386.go │ │ ├── syscall_freebsd_amd64.go │ │ ├── syscall_freebsd_arm.go │ │ ├── syscall_linux.go │ │ ├── syscall_linux_386.go │ │ ├── syscall_linux_amd64.go │ │ ├── syscall_linux_arm.go │ │ ├── syscall_linux_arm64.go │ │ ├── syscall_linux_mips64x.go │ │ ├── syscall_linux_ppc64x.go │ │ ├── syscall_linux_s390x.go │ │ ├── syscall_netbsd.go │ │ ├── syscall_netbsd_386.go │ │ ├── syscall_netbsd_amd64.go │ │ ├── syscall_netbsd_arm.go │ │ ├── syscall_no_getwd.go │ │ ├── syscall_openbsd.go │ │ ├── syscall_openbsd_386.go │ │ ├── syscall_openbsd_amd64.go │ │ ├── syscall_solaris.go │ │ ├── syscall_solaris_amd64.go │ │ ├── syscall_unix.go │ │ ├── types_darwin.go │ │ ├── types_dragonfly.go │ │ ├── types_freebsd.go │ │ ├── types_linux.go │ │ ├── types_netbsd.go │ │ ├── types_openbsd.go │ │ ├── types_solaris.go │ │ ├── zerrors_darwin_386.go │ │ ├── zerrors_darwin_amd64.go │ │ ├── zerrors_darwin_arm.go │ │ ├── zerrors_darwin_arm64.go │ │ ├── zerrors_dragonfly_amd64.go │ │ ├── zerrors_freebsd_386.go │ │ ├── zerrors_freebsd_amd64.go │ │ ├── zerrors_freebsd_arm.go │ │ ├── zerrors_linux_386.go │ │ ├── zerrors_linux_amd64.go │ │ ├── zerrors_linux_arm.go │ │ ├── zerrors_linux_arm64.go │ │ ├── zerrors_linux_mips64.go │ │ ├── zerrors_linux_mips64le.go │ │ ├── zerrors_linux_ppc64.go │ │ ├── zerrors_linux_ppc64le.go │ │ ├── zerrors_linux_s390x.go │ │ ├── zerrors_netbsd_386.go │ │ ├── zerrors_netbsd_amd64.go │ │ ├── zerrors_netbsd_arm.go │ │ ├── zerrors_openbsd_386.go │ │ ├── zerrors_openbsd_amd64.go │ │ ├── zerrors_solaris_amd64.go │ │ ├── zsyscall_darwin_386.go │ │ ├── zsyscall_darwin_amd64.go │ │ ├── zsyscall_darwin_arm.go │ │ ├── zsyscall_darwin_arm64.go │ │ ├── zsyscall_dragonfly_amd64.go │ │ ├── zsyscall_freebsd_386.go │ │ ├── zsyscall_freebsd_amd64.go │ │ ├── zsyscall_freebsd_arm.go │ │ ├── zsyscall_linux_386.go │ │ ├── zsyscall_linux_amd64.go │ │ ├── zsyscall_linux_arm.go │ │ ├── zsyscall_linux_arm64.go │ │ ├── zsyscall_linux_mips64.go │ │ ├── zsyscall_linux_mips64le.go │ │ ├── zsyscall_linux_ppc64.go │ │ ├── zsyscall_linux_ppc64le.go │ │ ├── zsyscall_linux_s390x.go │ │ ├── zsyscall_netbsd_386.go │ │ ├── zsyscall_netbsd_amd64.go │ │ ├── zsyscall_netbsd_arm.go │ │ ├── zsyscall_openbsd_386.go │ │ ├── zsyscall_openbsd_amd64.go │ │ ├── zsyscall_solaris_amd64.go │ │ ├── zsysctl_openbsd.go │ │ ├── zsysnum_darwin_386.go │ │ ├── zsysnum_darwin_amd64.go │ │ ├── zsysnum_darwin_arm.go │ │ ├── zsysnum_darwin_arm64.go │ │ ├── zsysnum_dragonfly_amd64.go │ │ ├── zsysnum_freebsd_386.go │ │ ├── zsysnum_freebsd_amd64.go │ │ ├── zsysnum_freebsd_arm.go │ │ ├── zsysnum_linux_386.go │ │ ├── zsysnum_linux_amd64.go │ │ ├── zsysnum_linux_arm.go │ │ ├── zsysnum_linux_arm64.go │ │ ├── zsysnum_linux_mips64.go │ │ ├── zsysnum_linux_mips64le.go │ │ ├── zsysnum_linux_ppc64.go │ │ ├── zsysnum_linux_ppc64le.go │ │ ├── zsysnum_linux_s390x.go │ │ ├── zsysnum_netbsd_386.go │ │ ├── zsysnum_netbsd_amd64.go │ │ ├── zsysnum_netbsd_arm.go │ │ ├── zsysnum_openbsd_386.go │ │ ├── zsysnum_openbsd_amd64.go │ │ ├── zsysnum_solaris_amd64.go │ │ ├── ztypes_darwin_386.go │ │ ├── ztypes_darwin_amd64.go │ │ ├── ztypes_darwin_arm.go │ │ ├── ztypes_darwin_arm64.go │ │ ├── ztypes_dragonfly_amd64.go │ │ ├── ztypes_freebsd_386.go │ │ ├── ztypes_freebsd_amd64.go │ │ ├── ztypes_freebsd_arm.go │ │ ├── ztypes_linux_386.go │ │ ├── ztypes_linux_amd64.go │ │ ├── ztypes_linux_arm.go │ │ ├── ztypes_linux_arm64.go │ │ ├── ztypes_linux_mips64.go │ │ ├── ztypes_linux_mips64le.go │ │ ├── ztypes_linux_ppc64.go │ │ ├── ztypes_linux_ppc64le.go │ │ ├── ztypes_linux_s390x.go │ │ ├── ztypes_netbsd_386.go │ │ ├── ztypes_netbsd_amd64.go │ │ ├── ztypes_netbsd_arm.go │ │ ├── ztypes_openbsd_386.go │ │ ├── ztypes_openbsd_amd64.go │ │ └── ztypes_solaris_amd64.go │ ├── gopkg.in │ ├── validator.v2 │ │ ├── LICENSE │ │ ├── builtins.go │ │ ├── doc.go │ │ └── validator.go │ └── yaml.v2 │ │ ├── LICENSE │ │ ├── apic.go │ │ ├── decode.go │ │ ├── emitterc.go │ │ ├── encode.go │ │ ├── parserc.go │ │ ├── readerc.go │ │ ├── resolve.go │ │ ├── scannerc.go │ │ ├── sorter.go │ │ ├── writerc.go │ │ ├── yaml.go │ │ ├── yamlh.go │ │ └── yamlprivateh.go │ └── manifest └── submodule-log /.envrc: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | MY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | 5 | export GOPATH=${MY_DIR} 6 | export PATH=$GOPATH/bin:$PATH 7 | -------------------------------------------------------------------------------- /.final_builds/jobs/cf-mysql-broker-user/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | 0cbe66c733d68c0c71711d5b139532a7728aa8d8: 3 | version: 0cbe66c733d68c0c71711d5b139532a7728aa8d8 4 | blobstore_id: 8b29c00c-489b-4a63-771b-951b39598a69 5 | sha1: e84704ce91a5356f2ccb0ffc3ee5bfdd3d417000 6 | format-version: "2" 7 | -------------------------------------------------------------------------------- /.final_builds/jobs/deregister-and-purge-instances/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | 94c073d24dac8393925181f85a6207498c7d0e61: 3 | version: 94c073d24dac8393925181f85a6207498c7d0e61 4 | blobstore_id: 791ba269-2c04-4f6c-5fab-8ac505f9acf4 5 | sha1: 10cf33d1d99298cfa7bcf398770e548ac13c28ba 6 | format-version: "2" 7 | -------------------------------------------------------------------------------- /.final_builds/jobs/smoke-tests-user/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | a836a949e081486fd44a61db352d6d9bd335f1d0: 3 | version: a836a949e081486fd44a61db352d6d9bd335f1d0 4 | blobstore_id: d923bd4c-b756-4a4f-58fd-ece53d586115 5 | sha1: 3335dacc316589ef184acbc1e1b2b94427831f4a 6 | format-version: "2" 7 | -------------------------------------------------------------------------------- /.final_builds/license/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | 3c95ceb4a4bb0bcb890b6e572d367e1b95b1c7e8: 3 | version: 3c95ceb4a4bb0bcb890b6e572d367e1b95b1c7e8 4 | blobstore_id: 34c1c7f3-44ce-498d-6427-26a9cc1cb54b 5 | sha1: 272673fefc6e2528aeed60c45e4ab806b3b6ec06 6 | 90299ad3290c6911812a28bd230196618e29b6fc: 7 | version: 90299ad3290c6911812a28bd230196618e29b6fc 8 | blobstore_id: fbd00fca-19d2-4389-955d-cfba4b6f85fc 9 | sha1: a99b74abf9c4671538fc289d65243df78a88d435 10 | format-version: "2" 11 | -------------------------------------------------------------------------------- /.final_builds/packages/boost/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | 3a37ca307a1a9376b298ce032367c5448e4362f3: 3 | version: 3a37ca307a1a9376b298ce032367c5448e4362f3 4 | blobstore_id: 9b88c7f6-c73f-483e-799e-7e6615780c30 5 | sha1: 44a94d96ddb23d168ccaea0c4e0c2458503c4c06 6 | 3eb8bdb1abb7eff5b63c4c5bdb41c0a778925c31: 7 | version: 3eb8bdb1abb7eff5b63c4c5bdb41c0a778925c31 8 | blobstore_id: 80315aa4-8acd-4b35-8305-8c599d46843c 9 | sha1: 904f90543f9c2a09175d93e88152936e78d03e80 10 | 7080115ab3d860136afe50622a6c5802fe79822a: 11 | version: "1" 12 | blobstore_id: 3bf3eab7-cf25-4a38-a539-21a12ea77e13 13 | sha1: 3f40a093274c5326c95e2b994a1afe5569f5d442 14 | da228a9d552a039c63123f2a77e0901676a71e52: 15 | version: da228a9d552a039c63123f2a77e0901676a71e52 16 | blobstore_id: 68fd4e15-2022-49c6-7fc7-66c0282de3e6 17 | sha1: 8dd82696c5d08b3361d1d7ce084a109c0498d5b8 18 | format-version: "2" 19 | -------------------------------------------------------------------------------- /.final_builds/packages/cf-mysql-cluster-health-logger/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | 19dc5675219358b70d90ed438b68e745ec0a2a73: 3 | version: 19dc5675219358b70d90ed438b68e745ec0a2a73 4 | blobstore_id: fa1b968f-9ce5-4db1-6493-18c9b0375fd9 5 | sha1: ea2580f196cbd60ca01b26e11778adb36eadcf60 6 | deacadd7036dd0ab73ac1defb52a3eb3f2d8fccb: 7 | version: deacadd7036dd0ab73ac1defb52a3eb3f2d8fccb 8 | blobstore_id: f9196ab5-4266-4654-8876-409ae7354efe 9 | sha1: 39c8003a68ee0edad50132b8aa99fe76b1f345fc 10 | f7176fda2e4398ec24c51fad813c69f2b7d6a570: 11 | version: f7176fda2e4398ec24c51fad813c69f2b7d6a570 12 | blobstore_id: 6db7e76f-5683-4c2a-70f6-6b6e9b6867cd 13 | sha1: dde5967bd201208b78b88bb5a5f5bc0252c5d6c5 14 | format-version: "2" 15 | -------------------------------------------------------------------------------- /.final_builds/packages/cf-mysql-route-registrar/index.yml: -------------------------------------------------------------------------------- 1 | --- 2 | builds: 3 | 35abde4072c2b900f7e90daf6279e03db7540ad3: 4 | version: 35abde4072c2b900f7e90daf6279e03db7540ad3 5 | sha1: c1e00daa80b81e51949f48ddfc510a98fd7bddc2 6 | blobstore_id: 83811dad-1f35-469d-9456-169d97f8a054 7 | d487c0baf7dcd1e5e14b4dfc60443b474ec6569e: 8 | version: d487c0baf7dcd1e5e14b4dfc60443b474ec6569e 9 | sha1: b57a958cae294d47bc7206c6cd33553968e5f051 10 | blobstore_id: a11edb26-675f-4880-afe1-6ca94c9334e2 11 | format-version: '2' 12 | -------------------------------------------------------------------------------- /.final_builds/packages/check/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | 4aee66deb5fb26341de985d61f95aba083d2b1ea: 3 | version: "1" 4 | blobstore_id: 52b71ffc-a4df-4135-ad2f-8501ce9384fd 5 | sha1: 411c9d5770d82b2695494ccfbe4fb43e104ba778 6 | a3e2a82ec2aa054b05b2a39e7c0fb716a6e91254: 7 | version: a3e2a82ec2aa054b05b2a39e7c0fb716a6e91254 8 | blobstore_id: f2ca0553-d36e-456b-513f-6b141a43576e 9 | sha1: dc04b98010313654d5761ea3e847f262a51276d7 10 | d6811f25e9d56428a9b942631c27c9b24f5064dc: 11 | version: d6811f25e9d56428a9b942631c27c9b24f5064dc 12 | blobstore_id: 7095ea91-9027-4041-9940-fcbd625aec9f 13 | sha1: db828c3f72f85b98b5afd511b1627b6f4fe16d2c 14 | format-version: "2" 15 | -------------------------------------------------------------------------------- /.final_builds/packages/cluster-schema-verifier/index.yml: -------------------------------------------------------------------------------- 1 | --- 2 | builds: 3 | a2f8659250e5b51a7f5d0b0fdff5dbdc5ee98895: 4 | version: a2f8659250e5b51a7f5d0b0fdff5dbdc5ee98895 5 | sha1: 88e115cfd17eadab90a4308ab466b756732ca8db 6 | blobstore_id: f710c987-3e2f-40a9-85ef-1a9a8bdeb2d3 7 | format-version: '2' 8 | -------------------------------------------------------------------------------- /.final_builds/packages/common/index.yml: -------------------------------------------------------------------------------- 1 | --- 2 | builds: 3 | 47eac3c416f87eb0a648b3dfe45632c654d6e67f: 4 | blobstore_id: ae8c6719-b016-4ac3-80ad-2c328cbbaaf4 5 | version: 1 6 | sha1: 125301f6a0d0f9977948ed5754339d81fe081f3d 7 | 8ecced6383310492b543d2a5a3041410c7b33622: 8 | blobstore_id: ec2bb171-d779-4312-b95e-5373e1388cca 9 | version: 8ecced6383310492b543d2a5a3041410c7b33622 10 | sha1: 2c731b10f06b25b1ab771353843b51fea2d4b90e 11 | ba480a46c4b2aa9484fb24ed01a8649453573e6f: 12 | version: ba480a46c4b2aa9484fb24ed01a8649453573e6f 13 | sha1: a1a8e14c99bfb8fd80ed207cd74351854c66605c 14 | blobstore_id: 56c8c40e-ca02-4843-b3c6-37b813de0186 15 | format-version: '2' 16 | -------------------------------------------------------------------------------- /.final_builds/packages/generate-auto-tune-mysql/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | f41b75e326fab5af34f2c488b6be873a1a8ee40b: 3 | version: f41b75e326fab5af34f2c488b6be873a1a8ee40b 4 | blobstore_id: d413ebd6-3067-42ca-6c29-3931e5cba79d 5 | sha1: 9f37c78f9382dd182e8bbe3edb5643b506d5874c 6 | ff7da53ae7fe5a8a715c2f02fcaf22f21800574f: 7 | version: ff7da53ae7fe5a8a715c2f02fcaf22f21800574f 8 | blobstore_id: 1f64aff6-c8bf-4765-4172-c983f810e5b8 9 | sha1: 77f1bd7c58f829fc57b6a4e6c87bcf5af35b5fca 10 | format-version: "2" 11 | -------------------------------------------------------------------------------- /.final_builds/packages/golang-1.11-linux/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | 3857982490fde4d8313d68c0b8c6c6e406800035: 3 | version: 3857982490fde4d8313d68c0b8c6c6e406800035 4 | blobstore_id: a75fcf24-891a-4e0b-4991-0781d70c8c3d 5 | sha1: 146279cf88abae067a361ece807a155fbf0865ec 6 | format-version: "2" 7 | -------------------------------------------------------------------------------- /.final_builds/packages/haproxy/index.yml: -------------------------------------------------------------------------------- 1 | --- 2 | builds: 3 | eb0ad330f04f4d5a7d009b41c83ad02e2af02c06: 4 | blobstore_id: c1c4dc11-1c20-407f-8719-d238b1f6466d 5 | version: 1 6 | sha1: bec735ec459aaf8e6af20e5eee9d61a8f1110cc9 7 | 766f9a611031869414e9a49b7727df2c0cb4f420: 8 | blobstore_id: 669a4889-09b8-4023-bcbd-29630da221bc 9 | version: 766f9a611031869414e9a49b7727df2c0cb4f420 10 | sha1: cd375d69ce18e36b6a7e54b96eec4417cb5986b8 11 | dd3ab1cd857887114ca6f502dd2010b4a70965e4: 12 | version: dd3ab1cd857887114ca6f502dd2010b4a70965e4 13 | sha1: b025243e510d2d863e4391834e3bdabc0ba76580 14 | blobstore_id: e6d4a400-1981-442d-a862-944c03c10c20 15 | format-version: '2' 16 | -------------------------------------------------------------------------------- /.final_builds/packages/mysql/index.yml: -------------------------------------------------------------------------------- 1 | --- 2 | builds: 3 | d8944142bd900404561a7f375ff51a9e1e3f9a2d: 4 | blobstore_id: 3bc8fd1f-21a4-4a64-b80e-08768c69cb4a 5 | version: 1 6 | sha1: 754ed0ef80aec07ed67940e2463847aa396a1f45 7 | 5cc412cba650b1f1e377c5a067c79d7a4a8b9869: 8 | blobstore_id: a4f0b1d1-79ca-4c8c-b233-f5f45dbfb0cb 9 | version: 2 10 | sha1: a34c138846c9f636e59682f8af6ad56376e67800 11 | 503d8c59e1dc120220d7ddabfedace7c0c9b0f02: 12 | blobstore_id: ab3efd21-53dd-441d-81c6-23e40c0f971d 13 | version: 3 14 | sha1: 286ff8f126c50be1512282368957fbd624824742 15 | 9f1baf97b20cb0193d2b7f05c6439317d46ead84: 16 | blobstore_id: b896418d-3186-4db0-97dc-dc1387fc4f06 17 | version: 9f1baf97b20cb0193d2b7f05c6439317d46ead84 18 | sha1: 678ca80c3456b7b568aacc5c2d599bb33b3640cf 19 | -------------------------------------------------------------------------------- /.final_builds/packages/python/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | 16de14b5e51a2eb13a9201ded0b7517c8e98f153: 3 | version: 16de14b5e51a2eb13a9201ded0b7517c8e98f153 4 | blobstore_id: 35323990-70f1-4d91-724e-605e01e15f88 5 | sha1: bd115fc156670c711a2ea6a5143e570a346977ab 6 | 4e255efa754d91b825476b57e111345f200944e1: 7 | version: 4e255efa754d91b825476b57e111345f200944e1 8 | blobstore_id: b80f153e-d277-4d6e-8967-c33dc041d16d 9 | sha1: 9e310424b42834239f7040d3e87e551af52789c8 10 | 9569dff3df4b2c8adc8c83944c9b46a44a1beb14: 11 | version: 9569dff3df4b2c8adc8c83944c9b46a44a1beb14 12 | blobstore_id: 62b38352-5e0d-4d29-5a1e-dd15bf30333f 13 | sha1: 3a5a451fc75ed559dbd4ef7c45972fcf50b411d4 14 | e4ec0f5e083d137aa0817b49f4954c7717d6899b: 15 | version: e4ec0f5e083d137aa0817b49f4954c7717d6899b 16 | blobstore_id: ce055a7f-e8ad-4734-5120-468cd67ad08b 17 | sha1: 6e4a26d2835f2dd0c3d39402d745cb839dfeed33 18 | format-version: "2" 19 | -------------------------------------------------------------------------------- /.final_builds/packages/scons/index.yml: -------------------------------------------------------------------------------- 1 | builds: 2 | 11e7ad3b28b43a96de3df7aa41afddde582fcc38: 3 | version: 11e7ad3b28b43a96de3df7aa41afddde582fcc38 4 | blobstore_id: 730e0ed7-2453-471a-8bd4-d75bb62863b9 5 | sha1: 2cbf5445e2760791c1667c3f533f991803e2675d 6 | 1dec335e3e83d11156204f7a3cdcc452d8a3fffe: 7 | version: 1dec335e3e83d11156204f7a3cdcc452d8a3fffe 8 | blobstore_id: c9b13c5a-ae34-4eab-8f80-84a35aeef2af 9 | sha1: 975a10550d242072c41f54d3fc7fb7cfc2fa1f85 10 | 434432a860a254be39ad80a5be8deeef7e5b7049: 11 | version: "1" 12 | blobstore_id: eb74e5b1-9fe4-4729-bb65-c4996e0390dd 13 | sha1: fb841c8043c8b877c8d7ece26332be416b30a131 14 | dbd49f7f2517cdb1853cd5e08eb59219731eb4c6: 15 | version: dbd49f7f2517cdb1853cd5e08eb59219731eb4c6 16 | blobstore_id: 0db58d3f-0bea-4594-54aa-64e413050493 17 | sha1: 763eccb09357c476478de30cdb934bdefc023a05 18 | format-version: "2" 19 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | Thanks for opening a PR. Please make sure you've read and followed the [Contributing guide](https://github.com/cloudfoundry/cf-mysql-release/blob/develop/CONTRIBUTING.md), including signing the Contributor License Agreement. 2 | 3 | # Feature or Bug Description 4 | What does this PR change? 5 | 6 | # Motivation 7 | Tell us about the problem you are facing, with context, that this PR solves. 8 | 9 | # Related Issue 10 | If this PR was first opened as an issue, please provide the link to that issue here. 11 | 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | config/dev.yml 2 | config/private.yml 3 | /*.yml 4 | !/.travis.yml 5 | releases/*.tgz 6 | dev_releases 7 | .blobs 8 | blobs 9 | .dev_builds 10 | .final_builds/jobs/**/*.tgz 11 | .final_builds/packages/**/*.tgz 12 | bosh-lite/manifests/* 13 | bosh-lite/tmp/* 14 | .idea/ 15 | *.iml 16 | releases/**/*.tgz 17 | .idea 18 | .DS_Store 19 | *.swp 20 | *~ 21 | *# 22 | #* 23 | *config.json 24 | pkg/ 25 | src/github.com/cloudfoundry-incubator/spiff/ 26 | src/github.com/vito/gosub/ 27 | src/github.com/codegangsta/cli/ 28 | *.iml 29 | src/quota-enforcer/config.yml 30 | src/quota-enforcer/config.yaml 31 | src/quota-enforcer/config.json 32 | src/quota-enforcer/tmp/ 33 | src/quota-enforcer/**/*.test 34 | src/quota-enforcer/out/* 35 | 36 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.3 2 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: go 3 | 4 | go: 5 | - 1.4.2 6 | 7 | before_install: 8 | - export GOPATH=$PWD 9 | - export PATH=$GOPATH/bin:$PATH 10 | 11 | install: 12 | - git submodule update --init --recursive 13 | 14 | script: 15 | - ./scripts/test-unit -nodes=2 16 | 17 | branches: 18 | only: 19 | - develop 20 | -------------------------------------------------------------------------------- /NOTICE: -------------------------------------------------------------------------------- 1 | CF-MySQL-Release 2 | 3 | Copyright (c) 2015-Present CloudFoundry.org Foundation, Inc. All Rights Reserved. 4 | 5 | This project contains software that is Copyright (c) 2013-2015 Pivotal Software, Inc. 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 | -------------------------------------------------------------------------------- /commit-with-submodule-log: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | $(dirname $0)/submodule-log "$@" | git ci --file - 4 | -------------------------------------------------------------------------------- /config/final.yml: -------------------------------------------------------------------------------- 1 | --- 2 | final_name: cf-mysql 3 | min_cli_version: 1.5.0.pre.1113 4 | blobstore: 5 | provider: s3 6 | options: 7 | bucket_name: mysql-service-blobs 8 | -------------------------------------------------------------------------------- /docs/quorum-lost.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry/cf-mysql-release/3c94a103fb2383a1c504d2942fbbd9facb670944/docs/quorum-lost.png -------------------------------------------------------------------------------- /githooks/pre-push: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | branch=$(git rev-parse --abbrev-ref HEAD) 4 | 5 | if [ "${branch}" == "master" ] 6 | then 7 | echo "Refusing to commit to 'master'. Please commit to 'develop' or other branches" 8 | exit 1 9 | fi 10 | -------------------------------------------------------------------------------- /jobs/arbitrator/monit: -------------------------------------------------------------------------------- 1 | check process garbd 2 | with pidfile /var/vcap/sys/run/garbd/garbd.pid 3 | start program "/var/vcap/jobs/arbitrator/bin/garbd_ctl start" with timeout 60 seconds 4 | stop program "/var/vcap/jobs/arbitrator/bin/garbd_ctl stop" with timeout 10 seconds 5 | group vcap 6 | 7 | check process galera-healthcheck 8 | with pidfile /var/vcap/sys/run/galera-healthcheck/galera-healthcheck.pid 9 | start program "/var/vcap/jobs/arbitrator/bin/galera-healthcheck_ctl start" with timeout 60 seconds 10 | stop program "/var/vcap/jobs/arbitrator/bin/galera-healthcheck_ctl stop" with timeout 10 seconds 11 | group vcap 12 | -------------------------------------------------------------------------------- /jobs/arbitrator/templates/galera_healthcheck_config.yaml.erb: -------------------------------------------------------------------------------- 1 | --- 2 | Port: <%= p('cf_mysql.mysql.galera_healthcheck.port') %> 3 | PidFile: '/var/vcap/sys/run/galera-healthcheck/galera-healthcheck.pid' 4 | MysqldPath: '/var/vcap/packages/mariadb/bin/mysqld' 5 | MyCnfPath: '/var/vcap/jobs/mysql/config/my.cnf' 6 | DB: 7 | User: <%= p('cf_mysql.mysql.admin_username') %> 8 | Password: <%= p('cf_mysql.mysql.admin_password') %> 9 | Port: <%= p('cf_mysql.mysql.port') %> 10 | # This is the config that bosh sets up by default for monit. 11 | Monit: 12 | User: 'vcap' 13 | Password: 'random-password' 14 | Host: 'localhost' 15 | Port: 2822 16 | ServiceName: 'garbd' 17 | SidecarEndpoint: 18 | Username: <%= p('cf_mysql.mysql.galera_healthcheck.endpoint_username') %> 19 | Password: <%= p('cf_mysql.mysql.galera_healthcheck.endpoint_password') %> 20 | -------------------------------------------------------------------------------- /jobs/arbitrator/templates/garbd_config.erb: -------------------------------------------------------------------------------- 1 | <% 2 | cluster_ips = [] 3 | cluster_ips = link('mysql').instances.map { |instance| instance.address } 4 | cluster_ips += link('arbitrator').instances.map { |instance| instance.address } 5 | %> 6 | 7 | group = cf-mariadb-galera-cluster 8 | <% galera_port = p('cf_mysql.mysql.galera_port') %> 9 | <% node_addresses = cluster_ips.map { |ip| "#{ip}:#{galera_port}" } %> 10 | address = gcomm://<%= node_addresses.join(',') %> 11 | -------------------------------------------------------------------------------- /jobs/bootstrap/monit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry/cf-mysql-release/3c94a103fb2383a1c504d2942fbbd9facb670944/jobs/bootstrap/monit -------------------------------------------------------------------------------- /jobs/bootstrap/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: bootstrap 3 | packages: 4 | - bootstrap 5 | templates: 6 | errand.sh.erb: bin/run 7 | config.yml.erb: config/config.yml 8 | 9 | consumes: 10 | - name: mysql 11 | type: mysql 12 | optional: true 13 | - name: arbitrator 14 | type: arbitrator 15 | optional: true 16 | 17 | properties: 18 | cf_mysql.mysql.galera_healthcheck.port: 19 | description: 'Port used by healthcheck process to listen on' 20 | default: 9200 21 | cf_mysql.mysql.galera_healthcheck.endpoint_username: 22 | description: 'Username used to contact the sidecar endpoints via Basic Auth' 23 | default: galera-healthcheck 24 | cf_mysql.mysql.galera_healthcheck.endpoint_password: 25 | description: 'Password used to contact the sidecar endpoints via Basic Auth' 26 | -------------------------------------------------------------------------------- /jobs/bootstrap/templates/config.yml.erb: -------------------------------------------------------------------------------- 1 | <%= 2 | mysql_link = link('mysql') 3 | cluster_ips = mysql_link.instances.map { |instance| instance.address } 4 | if_link('arbitrator') do |arb| 5 | cluster_ips += arb.instances.map { |instance| instance.address } 6 | end 7 | galera_healthcheck_port = mysql_link.p('cf_mysql.mysql.galera_healthcheck.port') 8 | galera_healthcheck_username = mysql_link.p('cf_mysql.mysql.galera_healthcheck.endpoint_username') 9 | galera_healthcheck_password = mysql_link.p('cf_mysql.mysql.galera_healthcheck.endpoint_password') 10 | 11 | config = { 12 | HealthcheckURLs: cluster_ips.map {|ip| "http://#{ip}:#{galera_healthcheck_port}" }, 13 | Username: galera_healthcheck_username, 14 | Password: galera_healthcheck_password, 15 | LogFilePath: '/var/vcap/sys/log/bootstrap/bootstrap.log', 16 | RepairMode: 'bootstrap' 17 | } 18 | 19 | JSON.pretty_generate(config) 20 | %> 21 | -------------------------------------------------------------------------------- /jobs/bootstrap/templates/errand.sh.erb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | echo "Started bootstrap errand ..." 6 | 7 | JOB_DIR=/var/vcap/jobs/bootstrap 8 | CONFIG_PATH=$JOB_DIR/config/config.yml 9 | LOG_DIR=/var/vcap/sys/log/bootstrap 10 | 11 | mkdir -p $LOG_DIR 12 | chown -R vcap:vcap $LOG_DIR 13 | 14 | su - vcap -c -o pipefail "/var/vcap/packages/bootstrap/bin/cf-mysql-bootstrap -configPath=${CONFIG_PATH} 2>&1" 15 | echo "Bootstrap errand completed" 16 | 17 | exit 0 18 | -------------------------------------------------------------------------------- /jobs/broker-registrar/monit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry/cf-mysql-release/3c94a103fb2383a1c504d2942fbbd9facb670944/jobs/broker-registrar/monit -------------------------------------------------------------------------------- /jobs/cf-mysql-broker-user/monit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry/cf-mysql-release/3c94a103fb2383a1c504d2942fbbd9facb670944/jobs/cf-mysql-broker-user/monit -------------------------------------------------------------------------------- /jobs/cf-mysql-broker-user/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: cf-mysql-broker-user 3 | 4 | templates: 5 | post-start.erb: bin/post-start 6 | cf_mysql_broker_user_setup.sql.erb: config/cf_mysql_broker_user_setup.sql 7 | quota_enforcer_user_setup.sql.erb: config/quota_enforcer_user_setup.sql 8 | 9 | consumes: 10 | - name: broker 11 | type: broker 12 | 13 | packages: [] 14 | 15 | properties: {} 16 | -------------------------------------------------------------------------------- /jobs/cf-mysql-broker-user/templates/cf_mysql_broker_user_setup.sql.erb: -------------------------------------------------------------------------------- 1 | GRANT ALL ON *.* TO 'cf-mysql-broker'@'%' IDENTIFIED BY '<%= link('broker').p('cf_mysql.broker.db_password') %>' WITH GRANT OPTION; 2 | REVOKE FILE, PROCESS, REPLICATION CLIENT, REPLICATION SLAVE, SHOW DATABASES, SHUTDOWN, SUPER ON *.* FROM 'cf-mysql-broker'; 3 | -------------------------------------------------------------------------------- /jobs/cf-mysql-broker-user/templates/post-start.erb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eux 3 | 4 | /var/vcap/packages/mariadb/bin/mysql \ 5 | --defaults-file="/var/vcap/jobs/mysql/config/mylogin.cnf" \ 6 | < "/var/vcap/jobs/cf-mysql-broker-user/config/cf_mysql_broker_user_setup.sql" 7 | 8 | /var/vcap/packages/mariadb/bin/mysql \ 9 | --defaults-file="/var/vcap/jobs/mysql/config/mylogin.cnf" \ 10 | < "/var/vcap/jobs/cf-mysql-broker-user/config/quota_enforcer_user_setup.sql" 11 | -------------------------------------------------------------------------------- /jobs/cf-mysql-broker-user/templates/quota_enforcer_user_setup.sql.erb: -------------------------------------------------------------------------------- 1 | <% unless link('broker').p('cf_mysql.broker.disable_quota_enforcer') %> 2 | GRANT ALL PRIVILEGES ON *.* TO 'quota-enforcer'@'%' IDENTIFIED BY '<%= link('broker').p('cf_mysql.broker.quota_enforcer.password') %>' WITH GRANT OPTION; 3 | <% end %> 4 | -------------------------------------------------------------------------------- /jobs/cf-mysql-broker/monit: -------------------------------------------------------------------------------- 1 | check process cf-mysql-broker 2 | with pidfile /var/vcap/sys/run/cf-mysql-broker/unicorn.pid 3 | start program "/var/vcap/jobs/cf-mysql-broker/bin/cf-mysql-broker_ctl start" with timeout 60 seconds 4 | stop program "/var/vcap/jobs/cf-mysql-broker/bin/cf-mysql-broker_ctl stop" with timeout 60 seconds 5 | group vcap 6 | 7 | <% if p("cf_mysql.broker.disable_quota_enforcer") == false %> 8 | check process quota-enforcer 9 | with pidfile /var/vcap/sys/run/cf-mysql-broker/quota-enforcer.pid 10 | start program "/var/vcap/jobs/cf-mysql-broker/bin/quota-enforcer_ctl start" with timeout 60 seconds 11 | stop program "/var/vcap/jobs/cf-mysql-broker/bin/quota-enforcer_ctl stop" with timeout 60 seconds 12 | group vcap 13 | depends on cf-mysql-broker 14 | <% end %> 15 | -------------------------------------------------------------------------------- /jobs/cf-mysql-broker/templates/healthcheck.sh.erb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | lsof -i :<%= p('cf_mysql.broker.port') %> >> /dev/null 2>&1 4 | EXIT_CODE=$? 5 | if [[ $EXIT_CODE -eq 0 ]]; then 6 | echo 1 7 | else 8 | echo 0 9 | fi 10 | -------------------------------------------------------------------------------- /jobs/deregister-and-purge-instances/monit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry/cf-mysql-release/3c94a103fb2383a1c504d2942fbbd9facb670944/jobs/deregister-and-purge-instances/monit -------------------------------------------------------------------------------- /jobs/deregister-and-purge-instances/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: deregister-and-purge-instances 3 | packages: 4 | - cli 5 | templates: 6 | errand.sh.erb: bin/run 7 | properties: 8 | cf.api_url: 9 | description: 'Full URL of Cloud Foundry API' 10 | example: 'https://api.your-domain.example.com' 11 | cf.skip_ssl_validation: 12 | description: 'Skip SSL validation when connecting to Cloud Foundry API' 13 | default: false 14 | cf.admin_username: 15 | description: 'Username of the admin user' 16 | cf.admin_password: 17 | description: 'Password of the admin user' 18 | cf_mysql.broker.services: 19 | description: 'Array of services. Note - the deregister-and-purge-instances errand only deregisters the first service' 20 | example: | 21 | - name: REPLACE-WITH-SERVICE-NAME 22 | -------------------------------------------------------------------------------- /jobs/deregister-and-purge-instances/templates/errand.sh.erb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | CF_API_URL='<%= p("cf.api_url") %>' 6 | CF_ADMIN_USERNAME='<%= p("cf.admin_username") %>' 7 | CF_ADMIN_PASSWORD='<%= p("cf.admin_password") %>' 8 | 9 | BROKER_NAME='<%= p("cf_mysql.broker.services").first["name"] %>' 10 | 11 | export PATH=/var/vcap/packages/cli/bin 12 | export CF_DIAL_TIMEOUT=30 13 | 14 | API_COMMAND="cf api ${CF_API_URL}" 15 | 16 | <% if p("cf.skip_ssl_validation") %> 17 | API_COMMAND="${API_COMMAND} --skip-ssl-validation" 18 | <% end %> 19 | 20 | ${API_COMMAND} 21 | 22 | cf auth \ 23 | ${CF_ADMIN_USERNAME} \ 24 | ${CF_ADMIN_PASSWORD} 25 | 26 | cf purge-service-offering \ 27 | ${BROKER_NAME} \ 28 | -f 29 | 30 | cf delete-service-broker \ 31 | ${BROKER_NAME} \ 32 | -f 33 | -------------------------------------------------------------------------------- /jobs/mysql/templates/cluster_health_logger_config.yml.erb: -------------------------------------------------------------------------------- 1 | --- 2 | Port: <%= p('cf_mysql.mysql.port') %> 3 | User: cluster-health-logger 4 | Password: <%= p('cf_mysql.mysql.cluster_health.password') %> 5 | LogPath: /var/vcap/sys/log/mysql/cluster_health.log 6 | Interval: <%= p('cf_mysql.mysql.cluster_health.log_interval') %> 7 | -------------------------------------------------------------------------------- /jobs/mysql/templates/cluster_health_logger_setup.sql.erb: -------------------------------------------------------------------------------- 1 | GRANT USAGE ON mysql.* TO 'cluster-health-logger'@'127.0.0.1' IDENTIFIED BY '<%= p('cf_mysql.mysql.cluster_health.password') %>' 2 | -------------------------------------------------------------------------------- /jobs/mysql/templates/disable_mysql_cli_history.sh.erb: -------------------------------------------------------------------------------- 1 | export MYSQL_HISTFILE=/dev/null 2 | -------------------------------------------------------------------------------- /jobs/mysql/templates/galera_healthcheck_setup.sql.erb: -------------------------------------------------------------------------------- 1 | GRANT USAGE ON mysql.* TO 'galera-healthcheck'@'127.0.0.1' IDENTIFIED BY '<%= p('cf_mysql.mysql.galera_healthcheck.db_password') %>' 2 | -------------------------------------------------------------------------------- /jobs/mysql/templates/gra-log-purger.sh.erb: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if [ -z "$1" ] 4 | then echo "No directory supplied" 5 | exit 1 6 | fi 7 | 8 | if [ -z "$2" ] 9 | then echo "Number of days to keep must be specified" 10 | exit 1 11 | fi 12 | 13 | echo "Deleting GRA logs older than $2 days from: $1 " 14 | pattern=$1/GRA*.log 15 | find $pattern -mtime +$2 2>/dev/null | xargs rm -f 16 | -------------------------------------------------------------------------------- /jobs/mysql/templates/my.cnf.erb.shasum: -------------------------------------------------------------------------------- 1 | 6d5130919c942064ecacd61e83a9c48fe541bc48 2 | -------------------------------------------------------------------------------- /jobs/mysql/templates/mylogin.cnf.erb: -------------------------------------------------------------------------------- 1 | [client] 2 | user="<%= p('cf_mysql.mysql.admin_username') %>" 3 | password="<%= p('cf_mysql.mysql.admin_password') %>" 4 | socket="/var/vcap/sys/run/mysql/mysqld.sock" 5 | -------------------------------------------------------------------------------- /jobs/mysql/templates/mysql_audit_logs.logrotate.erb: -------------------------------------------------------------------------------- 1 | /var/vcap/store/mysql_audit_logs/mysql_server_audit.log { 2 | missingok 3 | rotate <%= p('cf_mysql.mysql.server_audit_file_rotations') %> 4 | compress 5 | delaycompress 6 | copytruncate 7 | size=<%= p('cf_mysql.mysql.server_audit_file_rotate_size_in_mb') %>M 8 | } 9 | -------------------------------------------------------------------------------- /jobs/mysql/templates/server-cert.pem.erb: -------------------------------------------------------------------------------- 1 | <% if_p("cf_mysql.mysql.tls.server_certificate") do |server_certificate| %><%= server_certificate %><% end %> 2 | -------------------------------------------------------------------------------- /jobs/mysql/templates/server-key.pem.erb: -------------------------------------------------------------------------------- 1 | <% if_p("cf_mysql.mysql.tls.server_key") do |server_key| %><%= server_key %><% end %> 2 | -------------------------------------------------------------------------------- /jobs/proxy/monit: -------------------------------------------------------------------------------- 1 | check process switchboard 2 | with pidfile /var/vcap/sys/run/proxy/switchboard.pid 3 | start program "/var/vcap/jobs/proxy/bin/switchboard_ctl start" with timeout 10 seconds 4 | stop program "/var/vcap/jobs/proxy/bin/switchboard_ctl stop" with timeout <%= p('cf_mysql.proxy.shutdown_delay').to_i + 30 %> seconds 5 | group vcap 6 | -------------------------------------------------------------------------------- /jobs/proxy/templates/post-start.erb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | sleep <%= p('cf_mysql.proxy.startup_delay') %> 4 | -------------------------------------------------------------------------------- /jobs/rejoin-unsafe/monit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry/cf-mysql-release/3c94a103fb2383a1c504d2942fbbd9facb670944/jobs/rejoin-unsafe/monit -------------------------------------------------------------------------------- /jobs/rejoin-unsafe/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: rejoin-unsafe 3 | packages: 4 | - bootstrap 5 | templates: 6 | errand.sh.erb: bin/run 7 | config.yml.erb: config/config.yml 8 | 9 | consumes: 10 | - name: mysql 11 | type: mysql 12 | optional: true 13 | - name: arbitrator 14 | type: arbitrator 15 | optional: true 16 | 17 | properties: 18 | cf_mysql.mysql.galera_healthcheck.endpoint_username: 19 | description: 'Username used by the sidecar endpoints for Basic Auth' 20 | default: galera-healthcheck 21 | cf_mysql.mysql.galera_healthcheck.endpoint_password: 22 | description: 'Password used by the sidecar endpoints for Basic Auth' 23 | cf_mysql.mysql.galera_healthcheck.port: 24 | description: 'Port used by sidecar process to listen on' 25 | default: 9200 26 | -------------------------------------------------------------------------------- /jobs/rejoin-unsafe/templates/config.yml.erb: -------------------------------------------------------------------------------- 1 | <%= 2 | mysql_link = link('mysql') 3 | cluster_ips = mysql_link.instances.map { |instance| instance.address } 4 | if_link('arbitrator') do |arb| 5 | cluster_ips += arb.instances.map { |instance| instance.address } 6 | end 7 | galera_healthcheck_port = mysql_link.p('cf_mysql.mysql.galera_healthcheck.port') 8 | galera_healthcheck_username = mysql_link.p('cf_mysql.mysql.galera_healthcheck.endpoint_username') 9 | galera_healthcheck_password = mysql_link.p('cf_mysql.mysql.galera_healthcheck.endpoint_password') 10 | 11 | config = { 12 | HealthcheckURLs: cluster_ips.map {|ip| "http://#{ip}:#{galera_healthcheck_port}" }, 13 | Username: galera_healthcheck_username, 14 | Password: galera_healthcheck_password, 15 | LogFilePath: '/var/vcap/sys/log/rejoin-unsafe/rejoin-unsafe.log', 16 | RepairMode: 'rejoin-unsafe' 17 | } 18 | 19 | JSON.pretty_generate(config) 20 | %> 21 | -------------------------------------------------------------------------------- /jobs/rejoin-unsafe/templates/errand.sh.erb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | echo "Started rejoin-unsafe errand ..." 6 | 7 | JOB_DIR=/var/vcap/jobs/rejoin-unsafe 8 | CONFIG_PATH=$JOB_DIR/config/config.yml 9 | LOG_DIR=/var/vcap/sys/log/rejoin-unsafe 10 | 11 | mkdir -p $LOG_DIR 12 | chown -R vcap:vcap $LOG_DIR 13 | 14 | su - vcap -c -o pipefail "/var/vcap/packages/bootstrap/bin/cf-mysql-bootstrap -configPath=${CONFIG_PATH} 2>&1" 15 | echo "rejoin-unsafe errand completed" 16 | 17 | exit 0 18 | -------------------------------------------------------------------------------- /jobs/smoke-tests-user/monit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry/cf-mysql-release/3c94a103fb2383a1c504d2942fbbd9facb670944/jobs/smoke-tests-user/monit -------------------------------------------------------------------------------- /jobs/smoke-tests-user/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: smoke-tests-user 3 | 4 | templates: 5 | post-start.erb: bin/post-start 6 | smoke_tests_user_setup.sql.erb: config/smoke_tests_user_setup.sql 7 | 8 | packages: [] 9 | 10 | properties: 11 | cf_mysql.smoke_tests.db_password: 12 | description: 'Password for generated database user' 13 | -------------------------------------------------------------------------------- /jobs/smoke-tests-user/templates/post-start.erb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eux 3 | 4 | /var/vcap/packages/mariadb/bin/mysql \ 5 | --defaults-file="/var/vcap/jobs/mysql/config/mylogin.cnf" \ 6 | < "/var/vcap/jobs/smoke-tests-user/config/smoke_tests_user_setup.sql" 7 | -------------------------------------------------------------------------------- /jobs/smoke-tests-user/templates/smoke_tests_user_setup.sql.erb: -------------------------------------------------------------------------------- 1 | GRANT CREATE, DROP, INSERT, SELECT ON `testDb\_%`.* TO 'smoke-tests'@'%' IDENTIFIED BY '<%= p('cf_mysql.smoke_tests.db_password') %>' 2 | -------------------------------------------------------------------------------- /jobs/smoke-tests/monit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry/cf-mysql-release/3c94a103fb2383a1c504d2942fbbd9facb670944/jobs/smoke-tests/monit -------------------------------------------------------------------------------- /jobs/smoke-tests/templates/errand.sh.erb: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -eux 3 | 4 | export CONFIG="/var/vcap/jobs/smoke-tests/config/config.yml" 5 | 6 | REPO=/var/vcap/packages/acceptance-tests/src/github.com/cloudfoundry-incubator/cf-mysql-acceptance-tests 7 | 8 | cd ${REPO} 9 | 10 | export GOPATH=/var/vcap/packages/acceptance-tests 11 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 12 | export PATH=/var/vcap/packages/cli/bin:$GOPATH/bin:$GOROOT/bin:$PWD/bin:$PATH 13 | 14 | # smoke tests shell out to cf cli 15 | export CF_DIAL_TIMEOUT=30 16 | 17 | <%= 18 | if p('cf_mysql.smoke_tests.standalone_tests_only') then 19 | "bin/test-standalone --noColor" 20 | else 21 | "bin/test-smoke --noColor" 22 | end 23 | %> 24 | -------------------------------------------------------------------------------- /jobs/verify-cluster-schemas/monit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloudfoundry/cf-mysql-release/3c94a103fb2383a1c504d2942fbbd9facb670944/jobs/verify-cluster-schemas/monit -------------------------------------------------------------------------------- /packages/acceptance-tests/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eux 4 | 5 | mkdir -p ${BOSH_INSTALL_TARGET}/src 6 | cp -a . ${BOSH_INSTALL_TARGET}/src 7 | 8 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 9 | export GOPATH=${BOSH_INSTALL_TARGET} 10 | export PATH=${GOROOT}/bin:${GOPATH}/bin:${PATH} 11 | 12 | go install github.com/onsi/ginkgo/ginkgo 13 | acceptance_tests_src=${BOSH_INSTALL_TARGET}/src/github.com/cloudfoundry-incubator/cf-mysql-acceptance-tests 14 | 15 | # this is solely for the purposes of validating compilation 16 | ginkgo build ${acceptance_tests_src}/cf-mysql-service/* 17 | 18 | mkdir -p ${BOSH_INSTALL_TARGET}/cipher_finder 19 | cp cipher_finder/cipher_finder.jar ${BOSH_INSTALL_TARGET}/cipher_finder/ 20 | -------------------------------------------------------------------------------- /packages/acceptance-tests/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: acceptance-tests 3 | dependencies: 4 | - golang-1.11-linux 5 | - cli 6 | files: 7 | - github.com/cloudfoundry-incubator/cf-mysql-acceptance-tests/bin/* 8 | - github.com/cloudfoundry-incubator/cf-mysql-acceptance-tests/assets/**/* 9 | - github.com/cloudfoundry-incubator/cf-mysql-acceptance-tests/vendor/**/* 10 | - github.com/cloudfoundry-incubator/cf-mysql-acceptance-tests/**/*.go 11 | - github.com/onsi/ginkgo/**/*.go 12 | - cipher_finder/cipher_finder.jar 13 | -------------------------------------------------------------------------------- /packages/boost/packaging: -------------------------------------------------------------------------------- 1 | # abort script on any command that exits with a non zero value 2 | set -e 3 | 4 | NPROC="$(nproc)" 5 | 6 | cd boost 7 | tar xfz boost_1_59_0.tar.gz 8 | cd boost_1_59_0 9 | ./bootstrap.sh --with-libraries=program_options,system --prefix=${BOSH_INSTALL_TARGET} 10 | 11 | # Go Agent cannot handle more than 10MB output, so trim it 12 | set +e 13 | ./b2 -j "${NPROC}" install > build.out 2> build.err 14 | BUILD_EXIT_CODE=$? 15 | set -e 16 | 17 | if [ $BUILD_EXIT_CODE -ne 0 ]; then 18 | tail -n 1000 build.err 19 | exit $BUILD_EXIT_CODE 20 | fi 21 | tail -n 1000 build.out 22 | -------------------------------------------------------------------------------- /packages/boost/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: boost 3 | 4 | dependencies: 5 | 6 | files: 7 | - boost/**/* 8 | -------------------------------------------------------------------------------- /packages/bootstrap/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | set -u 5 | 6 | mkdir -p ${BOSH_INSTALL_TARGET}/src 7 | cp -a . ${BOSH_INSTALL_TARGET}/src 8 | 9 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 10 | export GOPATH=${BOSH_INSTALL_TARGET} 11 | export PATH=${GOROOT}/bin:${GOPATH}/bin:${PATH} 12 | 13 | go install github.com/cloudfoundry-incubator/cf-mysql-bootstrap 14 | 15 | # clean up source artifacts 16 | rm -rf ${BOSH_INSTALL_TARGET}/src ${BOSH_INSTALL_TARGET}/pkg 17 | 18 | -------------------------------------------------------------------------------- /packages/bootstrap/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: bootstrap 3 | dependencies: 4 | - golang-1.11-linux 5 | files: 6 | - github.com/cloudfoundry-incubator/cf-mysql-bootstrap/**/*.go 7 | excluded_files: 8 | - "**/*_test.go" 9 | -------------------------------------------------------------------------------- /packages/cf-mysql-broker/packaging: -------------------------------------------------------------------------------- 1 | # abort script on any command that exits with a non zero value 2 | set -e 3 | 4 | rsync -a cf-mysql-broker/ ${BOSH_INSTALL_TARGET} 5 | 6 | # install gems from cache 7 | # some more comment to force pre-packaging and make a new package 8 | ( 9 | cd ${BOSH_INSTALL_TARGET} 10 | 11 | export PATH=/var/vcap/packages/ruby/bin:$PATH; 12 | 13 | mysqlclient_dir=/var/vcap/packages/mysqlclient 14 | 15 | # Need to remove the "--no-install" directive which 16 | # is saved in the .bundle/config file 17 | rm .bundle/config 18 | 19 | 20 | /var/vcap/packages/ruby/bin/bundle config build.mysql2 \ 21 | --with-mysql-config=$mysqlclient_dir/bin/mariadb_config 22 | 23 | /var/vcap/packages/ruby/bin/bundle install --local --deployment --without development test 24 | 25 | RAILS_ENV=assets bundle exec rake assets:precompile 26 | ) 27 | -------------------------------------------------------------------------------- /packages/cf-mysql-broker/pre_packaging: -------------------------------------------------------------------------------- 1 | set -e -x 2 | 3 | pushd ${BUILD_DIR}/cf-mysql-broker 4 | rm -rf ./vendor/cache/ 5 | 6 | set +e 7 | for i in {1..3}; do 8 | bundle config --local specific_platform true 9 | BUNDLE_WITHOUT=development:test bundle package --all --all-platforms --no-install --path ./vendor/cache 10 | exit_code="$?" 11 | 12 | if [ "${exit_code}" == "0" ]; then 13 | break 14 | fi 15 | sleep 1 16 | done 17 | set -e 18 | if [ "${exit_code}" != "0" ]; then 19 | echo "ERROR: Failed to run 'bundle package' after 3 attempts" 20 | exit "${exit_code}" 21 | fi 22 | 23 | rm -rf ./vendor/cache/ruby 24 | rm -rf ./vendor/cache/vendor 25 | bundle config --delete NO_INSTALL 26 | 27 | rm -rf spec 28 | popd 29 | -------------------------------------------------------------------------------- /packages/cf-mysql-broker/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: cf-mysql-broker 3 | 4 | dependencies: 5 | - ruby 6 | - mysqlclient 7 | 8 | files: 9 | - cf-mysql-broker/**/* 10 | -------------------------------------------------------------------------------- /packages/cf-mysql-cluster-health-logger/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | set -u 5 | 6 | mkdir -p ${BOSH_INSTALL_TARGET}/src 7 | cp -a . ${BOSH_INSTALL_TARGET}/src 8 | 9 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 10 | export GOPATH=${BOSH_INSTALL_TARGET} 11 | export PATH=${GOROOT}/bin:${GOPATH}/bin:${PATH} 12 | 13 | go install github.com/cloudfoundry-incubator/cf-mysql-cluster-health-logger 14 | 15 | # clean up source artifacts 16 | rm -rf ${BOSH_INSTALL_TARGET}/src ${BOSH_INSTALL_TARGET}/pkg 17 | -------------------------------------------------------------------------------- /packages/cf-mysql-cluster-health-logger/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: cf-mysql-cluster-health-logger 3 | dependencies: 4 | - golang-1.11-linux 5 | files: 6 | - github.com/cloudfoundry-incubator/cf-mysql-cluster-health-logger/**/*.go 7 | excluded_files: 8 | - "**/*test.go" 9 | -------------------------------------------------------------------------------- /packages/cf-mysql-common/packaging: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | cp -a cf-mysql-common/* ${BOSH_INSTALL_TARGET} 4 | -------------------------------------------------------------------------------- /packages/cf-mysql-common/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: cf-mysql-common 3 | files: 4 | - cf-mysql-common/pid_utils.sh 5 | - cf-mysql-common/logging.sh 6 | -------------------------------------------------------------------------------- /packages/check/packaging: -------------------------------------------------------------------------------- 1 | # abort script on any command that exits with a non zero value 2 | set -e 3 | 4 | NPROC="$(nproc)" 5 | 6 | cd check 7 | tar xfz check-0.9.13.tar.gz 8 | cd check-0.9.13 9 | 10 | ./configure --prefix=${BOSH_INSTALL_TARGET} 11 | make -j "${NPROC}" 12 | make -j "${NPROC}" install 13 | -------------------------------------------------------------------------------- /packages/check/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: check 3 | 4 | dependencies: 5 | 6 | files: 7 | - check/**/* 8 | -------------------------------------------------------------------------------- /packages/cli/packaging: -------------------------------------------------------------------------------- 1 | set -e 2 | 3 | cd cli 4 | 5 | tar xvf cf-cli_6.36.1_linux_x86-64.tgz 6 | 7 | BIN_DIR=${BOSH_INSTALL_TARGET}/bin 8 | 9 | mkdir -p ${BIN_DIR} 10 | 11 | cp cf ${BIN_DIR}/cf 12 | -------------------------------------------------------------------------------- /packages/cli/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: cli 3 | files: 4 | - cli/cf-cli_6.36.1_linux_x86-64.tgz 5 | -------------------------------------------------------------------------------- /packages/cluster-schema-verifier/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | 5 | cp cluster_schema_verifier/lib/cluster_schema_verifier.rb ${BOSH_INSTALL_TARGET}/ 6 | -------------------------------------------------------------------------------- /packages/cluster-schema-verifier/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: cluster-schema-verifier 3 | files: 4 | - 'cluster_schema_verifier/lib/cluster_schema_verifier.rb' 5 | -------------------------------------------------------------------------------- /packages/galera-healthcheck/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e 4 | set -u 5 | 6 | mkdir -p ${BOSH_INSTALL_TARGET}/src 7 | cp -a . ${BOSH_INSTALL_TARGET}/src 8 | 9 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 10 | export GOPATH=${BOSH_INSTALL_TARGET} 11 | export PATH=${GOROOT}/bin:${GOPATH}/bin:${PATH} 12 | 13 | 14 | go install github.com/cloudfoundry-incubator/galera-healthcheck 15 | 16 | # clean up source artifacts 17 | rm -rf ${BOSH_INSTALL_TARGET}/src ${BOSH_INSTALL_TARGET}/pkg 18 | -------------------------------------------------------------------------------- /packages/galera-healthcheck/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: galera-healthcheck 3 | dependencies: 4 | - golang-1.11-linux 5 | files: 6 | - github.com/cloudfoundry-incubator/galera-healthcheck/**/*.go 7 | excluded_files: 8 | - "**/*_test.go" 9 | -------------------------------------------------------------------------------- /packages/galera/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: galera 3 | 4 | dependencies: 5 | - scons 6 | - boost 7 | - check 8 | - python 9 | 10 | files: 11 | - galera/**/* 12 | -------------------------------------------------------------------------------- /packages/generate-auto-tune-mysql/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eux 4 | 5 | mkdir -p ${BOSH_INSTALL_TARGET}/src 6 | cp -a . ${BOSH_INSTALL_TARGET}/src 7 | 8 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 9 | export GOPATH=${BOSH_INSTALL_TARGET} 10 | export PATH=${GOROOT}/bin:${GOPATH}/bin:${PATH} 11 | 12 | go build -o $GOPATH/bin/generate-auto-tune-mysql generate-auto-tune-mysql 13 | 14 | # clean up source artifacts 15 | rm -rf ${BOSH_INSTALL_TARGET}/src ${BOSH_INSTALL_TARGET}/pkg 16 | 17 | -------------------------------------------------------------------------------- /packages/generate-auto-tune-mysql/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: generate-auto-tune-mysql 3 | 4 | dependencies: 5 | - golang-1.11-linux 6 | files: 7 | - generate-auto-tune-mysql/**/*.go 8 | excluded_files: 9 | - "**/*_test.go" 10 | -------------------------------------------------------------------------------- /packages/golang-1.11-linux/spec.lock: -------------------------------------------------------------------------------- 1 | name: golang-1.11-linux 2 | fingerprint: 3857982490fde4d8313d68c0b8c6c6e406800035 3 | -------------------------------------------------------------------------------- /packages/gra-log-purger/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -e # exit immediately if a simple command exits with a non-zero status 4 | set -u # report the usage of uninitialized variables 5 | 6 | #compile 7 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 8 | export GOPATH=${BOSH_INSTALL_TARGET} 9 | export PATH=${GOROOT}/bin:${GOPATH}/bin:${PATH} 10 | 11 | go build -o "${GOPATH}/gra-log-purger-executable" ./gra-log-purger 12 | -------------------------------------------------------------------------------- /packages/gra-log-purger/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: gra-log-purger 3 | dependencies: 4 | - golang-1.11-linux 5 | files: 6 | - gra-log-purger/*.go 7 | excluded_files: 8 | - "**/*_test.go" 9 | -------------------------------------------------------------------------------- /packages/mariadb/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: mariadb 3 | 4 | dependencies: 5 | - galera 6 | 7 | files: 8 | - mariadb/**/* 9 | - mariadb-patch/* 10 | -------------------------------------------------------------------------------- /packages/mariadb_ctrl/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eux 4 | 5 | mkdir -p ${BOSH_INSTALL_TARGET}/src 6 | cp -a . ${BOSH_INSTALL_TARGET}/src 7 | 8 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 9 | export GOPATH=${BOSH_INSTALL_TARGET} 10 | export PATH=${GOROOT}/bin:${GOPATH}/bin:${PATH} 11 | 12 | go build -o $GOPATH/bin/mariadb_ctrl github.com/cloudfoundry/mariadb_ctrl/cmd/start 13 | go build -o $GOPATH/bin/mariadb_ctrl-prestart github.com/cloudfoundry/mariadb_ctrl/cmd/prestart 14 | 15 | cp $BOSH_INSTALL_TARGET/src/github.com/cloudfoundry/mariadb_ctrl/mysql_daemon.sh $BOSH_INSTALL_TARGET/bin/mysql_daemon.sh 16 | 17 | # clean up source artifacts 18 | rm -rf ${BOSH_INSTALL_TARGET}/src ${BOSH_INSTALL_TARGET}/pkg 19 | 20 | -------------------------------------------------------------------------------- /packages/mariadb_ctrl/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: mariadb_ctrl 3 | dependencies: 4 | - golang-1.11-linux 5 | files: 6 | - github.com/cloudfoundry/mariadb_ctrl/*.sh 7 | - github.com/cloudfoundry/mariadb_ctrl/**/*.go 8 | excluded_files: 9 | - "**/*_test.go" 10 | -------------------------------------------------------------------------------- /packages/mysqlclient/packaging: -------------------------------------------------------------------------------- 1 | # abort script on any command that exits with a non zero value 2 | set -e 3 | 4 | NPROC="$(nproc)" 5 | 6 | VERSION=2.1.0 7 | 8 | tar xzf mysqlclient/mariadb-connector-c-${VERSION}-src.tar.gz 9 | ( 10 | set -e 11 | cd mariadb-connector-c-${VERSION}-src 12 | mkdir bld 13 | cd bld 14 | cmake .. -DCMAKE_INSTALL_PREFIX=${BOSH_INSTALL_TARGET} 15 | make -j "${NPROC}" 16 | make -j "${NPROC}" install 17 | ) 18 | -------------------------------------------------------------------------------- /packages/mysqlclient/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: mysqlclient 3 | 4 | dependencies: 5 | 6 | files: 7 | - mysqlclient/**/* 8 | -------------------------------------------------------------------------------- /packages/python/packaging: -------------------------------------------------------------------------------- 1 | # abort script on any command that exits with a non zero value 2 | set -e 3 | 4 | NPROC="$(nproc)" 5 | 6 | PYTHON_VERSION=2.7.13 7 | 8 | cd python 9 | tar xfz Python-${PYTHON_VERSION}.tgz 10 | cd Python-${PYTHON_VERSION} 11 | ./configure --prefix=${BOSH_INSTALL_TARGET} 12 | make -j "${NPROC}" 13 | make -j "${NPROC}" install 14 | -------------------------------------------------------------------------------- /packages/python/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: python 3 | files: 4 | - python/Python-2.7.13.tgz 5 | -------------------------------------------------------------------------------- /packages/quota-enforcer/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eux 4 | 5 | mkdir -p ${BOSH_INSTALL_TARGET}/src 6 | cp -a . ${BOSH_INSTALL_TARGET}/src 7 | 8 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 9 | export GOPATH=${BOSH_INSTALL_TARGET} 10 | export PATH=${GOROOT}/bin:${GOPATH}/bin:${PATH} 11 | 12 | go install quota-enforcer 13 | 14 | # clean up source artifacts 15 | rm -rf ${BOSH_INSTALL_TARGET}/src ${BOSH_INSTALL_TARGET}/pkg 16 | -------------------------------------------------------------------------------- /packages/quota-enforcer/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: quota-enforcer 3 | dependencies: 4 | - golang-1.11-linux 5 | files: 6 | - quota-enforcer/**/*.go 7 | excluded_files: 8 | - "**/*_test.go" 9 | -------------------------------------------------------------------------------- /packages/ruby/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: ruby 3 | files: 4 | - ruby/ruby-2.3.8.tar.gz # Downloaded from https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.8.tar.gz 5 | - ruby/rubygems-2.7.6.tgz # Downloaded from https://rubygems.org/rubygems/rubygems-2.7.6.tgz 6 | - ruby/yaml-0.1.7.tar.gz # Downloaded from http://pyyaml.org/download/libyaml/yaml-0.1.7.tar.gz 7 | -------------------------------------------------------------------------------- /packages/scons/packaging: -------------------------------------------------------------------------------- 1 | # abort script on any command that exits with a non zero value 2 | set -e 3 | 4 | cd scons 5 | tar xfz scons-2.3.1.tar.gz 6 | cd scons-2.3.1 7 | /var/vcap/packages/python/bin/python setup.py install --prefix=${BOSH_INSTALL_TARGET} 8 | -------------------------------------------------------------------------------- /packages/scons/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: scons 3 | 4 | dependencies: 5 | - python 6 | 7 | files: 8 | - scons/**/* 9 | -------------------------------------------------------------------------------- /packages/switchboard/packaging: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eu 4 | 5 | mkdir -p ${BOSH_INSTALL_TARGET}/src 6 | cp -a . ${BOSH_INSTALL_TARGET}/src 7 | 8 | export GOROOT=$(readlink -nf /var/vcap/packages/golang-1.11-linux) 9 | export GOPATH=${BOSH_INSTALL_TARGET} 10 | export PATH=${GOROOT}/bin:${GOPATH}/bin:${PATH} 11 | 12 | go install github.com/cloudfoundry-incubator/switchboard 13 | go install github.com/cloudfoundry-incubator/switchboard/cmd/flusharp 14 | chmod +s "${GOPATH}/bin/flusharp" 15 | 16 | cp -r $BOSH_INSTALL_TARGET/src/github.com/cloudfoundry-incubator/switchboard/static $BOSH_INSTALL_TARGET/static 17 | 18 | # clean up source artifacts 19 | rm -rf ${BOSH_INSTALL_TARGET}/src ${BOSH_INSTALL_TARGET}/pkg 20 | 21 | -------------------------------------------------------------------------------- /packages/switchboard/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: switchboard 3 | dependencies: 4 | - golang-1.11-linux 5 | files: 6 | - github.com/cloudfoundry-incubator/switchboard/static/**/* # static UI files 7 | - github.com/cloudfoundry-incubator/switchboard/**/*.go 8 | - github.com/cloudfoundry-incubator/galera-healthcheck/**/*.go 9 | -------------------------------------------------------------------------------- /packages/xtrabackup/spec: -------------------------------------------------------------------------------- 1 | --- 2 | name: xtrabackup 3 | 4 | dependencies: 5 | - mariadb 6 | - boost 7 | 8 | files: 9 | - xtrabackup/**/* 10 | -------------------------------------------------------------------------------- /scripts/create_large_table.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE IF NOT EXISTS ddl_db; 2 | USE ddl_db; 3 | 4 | CREATE TABLE IF NOT EXISTS `test_table` ( 5 | `id` int unsigned NOT NULL AUTO_INCREMENT, 6 | `text` TEXT(1048576) NOT NULL, 7 | PRIMARY KEY (`id`) 8 | ); 9 | 10 | DELETE FROM test_table; 11 | 12 | DROP PROCEDURE IF EXISTS create_garbage; 13 | 14 | DELIMITER // 15 | 16 | CREATE PROCEDURE create_garbage() 17 | BEGIN 18 | SET @index = 1; 19 | REPEAT 20 | INSERT INTO test_table(text) (SELECT SUBSTR(CONCAT(MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND()),MD5(RAND())),1,1000)); 21 | SET @index = @index + 1; 22 | UNTIL @index > 1000000 END REPEAT; 23 | END 24 | // 25 | 26 | DELIMITER ; 27 | 28 | CALL create_garbage(); 29 | -------------------------------------------------------------------------------- /scripts/generate-cf-vars-for-bosh-2.0: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | MY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 4 | RELEASE_DIR="$( cd "${MY_DIR}/.." && pwd )" 5 | MANIFEST_DIR="$( cd "${RELEASE_DIR}/manifest-generation" && pwd )" 6 | 7 | cf_manifest=$1 8 | 9 | tmpdir=$(mktemp -d /tmp/mysql_manifest.XXXXX) 10 | trap '{ rm -rf ${tmpdir}; }' EXIT 11 | 12 | cp ${MANIFEST_DIR}/bosh2.0/config-from-cf.yml ${tmpdir}/config-from-cf-internal.yml 13 | echo "<<: ((merge))" >> ${tmpdir}/config-from-cf-internal.yml 14 | 15 | spiff merge \ 16 | ${MANIFEST_DIR}/bosh2.0/config-from-cf.yml \ 17 | ${tmpdir}/config-from-cf-internal.yml \ 18 | ${cf_manifest} \ 19 | -------------------------------------------------------------------------------- /scripts/sql/list_empty_vs_nonempty_instances.sql: -------------------------------------------------------------------------------- 1 | # list count of empty vs non-empty instances 2 | SELECT SUM(CASE WHEN mb_used > 0 THEN 1 ELSE 0 END) AS non_empty_instances, 3 | SUM(CASE WHEN mb_used = 0 THEN 1 ELSE 0 END) AS empty_instances, 4 | COUNT(mb_used) AS total_instances 5 | FROM ( 6 | SELECT COALESCE(ROUND(SUM(tables.data_length + tables.index_length) / 1024 / 1024, 2), 0) as mb_used 7 | FROM mysql_broker.service_instances AS instances 8 | LEFT JOIN information_schema.tables AS tables ON tables.table_schema = instances.db_name COLLATE utf8_general_ci 9 | GROUP BY instances.db_name 10 | ) data_usage; 11 | -------------------------------------------------------------------------------- /scripts/sql/list_individual_db_usage.sql: -------------------------------------------------------------------------------- 1 | # Show all databases with used vs allocated size 2 | SELECT db AS instance, 3 | mb_used AS used_space_in_mb, 4 | mb_plan_size AS allocated_space_in_mb, 5 | ROUND((mb_used / mb_plan_size) * 100, 2) as percent_used 6 | FROM 7 | (SELECT instances.db_name AS db, 8 | COALESCE(ROUND(SUM(tables.data_length + tables.index_length) / 1024 / 1024, 2), 0) as mb_used, 9 | MAX(instances.max_storage_mb) as mb_plan_size 10 | FROM mysql_broker.service_instances AS instances 11 | LEFT JOIN information_schema.tables AS tables ON tables.table_schema = instances.db_name COLLATE utf8_general_ci 12 | GROUP BY instances.db_name 13 | ORDER BY mb_used DESC) data_usage; 14 | -------------------------------------------------------------------------------- /scripts/sql/list_plans_allocated.sql: -------------------------------------------------------------------------------- 1 | # Show number of each plan type that has been allocated 2 | SELECT max_storage_mb AS plan_size, 3 | COUNT(db_name) AS total_instances_allocated 4 | FROM mysql_broker.service_instances 5 | GROUP BY max_storage_mb 6 | ORDER BY max_storage_mb DESC; 7 | -------------------------------------------------------------------------------- /scripts/sql/list_summary_db_usage.sql: -------------------------------------------------------------------------------- 1 | # Show summary of database usage 2 | SELECT COUNT(db) AS total_instances_count, 3 | ROUND(SUM(mb_used), 2) AS total_mb_used, 4 | ROUND(SUM(mb_plan_size), 2) AS total_mb_allocated, 5 | ROUND((SUM(mb_used) / SUM(mb_plan_size)) * 100, 2) as total_percent_used 6 | FROM 7 | (SELECT instances.db_name AS db, 8 | COALESCE(ROUND(SUM(tables.data_length + tables.index_length) / 1024 / 1024, 2), 0) as mb_used, 9 | MAX(instances.max_storage_mb) as mb_plan_size 10 | FROM mysql_broker.service_instances AS instances 11 | LEFT JOIN information_schema.tables AS tables ON tables.table_schema = instances.db_name COLLATE utf8_general_ci 12 | GROUP BY instances.db_name 13 | ORDER BY mb_used DESC) data_usage; 14 | -------------------------------------------------------------------------------- /scripts/test-integration: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -eu 4 | 5 | MY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 6 | RELEASE_DIR="$( cd "${MY_DIR}/.." && pwd )" 7 | 8 | source "${RELEASE_DIR}/.envrc" 9 | 10 | # Remove and reinstall the ginkgo binary as it might be from the wrong target architecture 11 | rm -rf "${RELEASE_DIR}/bin/ginkgo" 12 | go install -v github.com/onsi/ginkgo/ginkgo 13 | go get github.com/maxbrunsfeld/counterfeiter 14 | 15 | # Start mysql to run integration tests against 16 | mysqld_safe --character-set-server=utf8 --collation-server=utf8_unicode_ci & 17 | 18 | echo -e "\n>>>>>>>> Testing MariaDB Control Integration..." 19 | "${RELEASE_DIR}/src/github.com/cloudfoundry/mariadb_ctrl/bin/test-integration" "$@" 20 | 21 | echo -e "\n>>>>>>>> Testing Quota Enforcer Integration..." 22 | "${RELEASE_DIR}/src/quota-enforcer/bin/test-integration" "$@" 23 | -------------------------------------------------------------------------------- /scripts/update: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | function has_upstream() { 5 | git rev-parse @{u} > /dev/null 2>&1 6 | } 7 | 8 | echo "" 9 | echo "===> Uncommitted submodules changes will be clobbered <===" 10 | echo "" 11 | 12 | echo "" 13 | echo "===> Unversioned changes will be clobbered <===" 14 | echo "" 15 | 16 | set -x # show the commands we are running 17 | 18 | has_upstream && git pull 19 | 20 | # Update submodule pointers; Clean out any submodule changes 21 | git submodule sync 22 | git submodule foreach --recursive 'git submodule sync; git clean -d --force --force' 23 | 24 | # Update submodule content, checkout if necessary 25 | git submodule update --init --recursive --force 26 | 27 | set +x # stop showing commands 28 | 29 | echo "Update complete" 30 | -------------------------------------------------------------------------------- /src/cf-mysql-common/logging.sh: -------------------------------------------------------------------------------- 1 | function output_to_logfiles() { 2 | declare log_dir="$1" 3 | 4 | local log_basename 5 | log_basename="$(basename "$0")" 6 | 7 | exec > >(prepend_datetime >> "${log_dir}/${log_basename}.log") 8 | exec 2> >(prepend_datetime >> "${log_dir}/${log_basename}.err.log") 9 | } 10 | 11 | function prepend_datetime() { 12 | awk -W interactive '{ system("echo -n [$(date +\"%Y-%m-%d %H:%M:%S%z\")]"); print " " $0 }' 13 | } 14 | 15 | function err() { 16 | message=$1 17 | echo "$(date +"%Y-%m-%d %H:%M:%S %z") ERROR: ${message}" >&2 18 | } 19 | -------------------------------------------------------------------------------- /src/cluster_schema_verifier/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | group :test do 4 | gem 'rspec' 5 | gem 'rspec-mocks' 6 | gem 'webmock' 7 | end 8 | -------------------------------------------------------------------------------- /src/cluster_schema_verifier/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | addressable (2.4.0) 5 | crack (0.4.3) 6 | safe_yaml (~> 1.0.0) 7 | diff-lcs (1.2.5) 8 | hashdiff (0.3.0) 9 | rspec (3.4.0) 10 | rspec-core (~> 3.4.0) 11 | rspec-expectations (~> 3.4.0) 12 | rspec-mocks (~> 3.4.0) 13 | rspec-core (3.4.4) 14 | rspec-support (~> 3.4.0) 15 | rspec-expectations (3.4.0) 16 | diff-lcs (>= 1.2.0, < 2.0) 17 | rspec-support (~> 3.4.0) 18 | rspec-mocks (3.4.1) 19 | diff-lcs (>= 1.2.0, < 2.0) 20 | rspec-support (~> 3.4.0) 21 | rspec-support (3.4.1) 22 | safe_yaml (1.0.4) 23 | webmock (2.0.2) 24 | addressable (>= 2.3.6) 25 | crack (>= 0.3.2) 26 | hashdiff 27 | 28 | PLATFORMS 29 | ruby 30 | 31 | DEPENDENCIES 32 | rspec 33 | rspec-mocks 34 | webmock 35 | 36 | BUNDLED WITH 37 | 1.11.2 38 | -------------------------------------------------------------------------------- /src/cluster_schema_verifier/spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | $LOAD_PATH << File.join(File.dirname(__FILE__), '..') 2 | require 'bundler' 3 | Bundler.require(:default, 'test') 4 | require 'webmock/rspec' 5 | 6 | Dir['lib/**/*'].each { |f| require f } 7 | 8 | RSpec.configure do |config| 9 | 10 | end 11 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/.gitignore: -------------------------------------------------------------------------------- 1 | generate-auto-tune-mysql 2 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/auto_tune_generator.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "io" 5 | "fmt" 6 | ) 7 | 8 | func Generate(totalMem uint64, targetPercentage float64, writer io.Writer) { 9 | 10 | bufferPoolSize := float64(totalMem) * targetPercentage / 100.0 11 | writer.Write([]byte(fmt.Sprintf(` 12 | [mysqld] 13 | innodb_buffer_pool_size = %d 14 | `, uint64(bufferPoolSize)))) 15 | } 16 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/generate_auto_tune_mysql_suite_test.go: -------------------------------------------------------------------------------- 1 | package main_test 2 | 3 | import ( 4 | . "github.com/onsi/ginkgo" 5 | . "github.com/onsi/gomega" 6 | 7 | "testing" 8 | ) 9 | 10 | func TestGenerateAutoTuneMysql(t *testing.T) { 11 | RegisterFailHandler(Fail) 12 | RunSpecs(t, "GenerateAutoTuneMysql Suite") 13 | } 14 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/cloudfoundry/gosigar/examples/free.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 VMware, Inc. 2 | 3 | package main 4 | 5 | import ( 6 | "fmt" 7 | "github.com/cloudfoundry/gosigar" 8 | "os" 9 | ) 10 | 11 | func format(val uint64) uint64 { 12 | return val / 1024 13 | } 14 | 15 | func main() { 16 | mem := sigar.Mem{} 17 | swap := sigar.Swap{} 18 | 19 | mem.Get() 20 | swap.Get() 21 | 22 | fmt.Fprintf(os.Stdout, "%18s %10s %10s\n", 23 | "total", "used", "free") 24 | 25 | fmt.Fprintf(os.Stdout, "Mem: %10d %10d %10d\n", 26 | format(mem.Total), format(mem.Used), format(mem.Free)) 27 | 28 | fmt.Fprintf(os.Stdout, "-/+ buffers/cache: %10d %10d\n", 29 | format(mem.ActualUsed), format(mem.ActualFree)) 30 | 31 | fmt.Fprintf(os.Stdout, "Swap: %10d %10d %10d\n", 32 | format(swap.Total), format(swap.Used), format(swap.Free)) 33 | } 34 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/cloudfoundry/gosigar/examples/ps.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 VMware, Inc. 2 | 3 | package main 4 | 5 | import ( 6 | "fmt" 7 | "github.com/cloudfoundry/gosigar" 8 | ) 9 | 10 | func main() { 11 | pids := sigar.ProcList{} 12 | pids.Get() 13 | 14 | // ps -eo pid,ppid,stime,time,rss,state,comm 15 | fmt.Print(" PID PPID STIME TIME RSS S COMMAND\n") 16 | 17 | for _, pid := range pids.List { 18 | state := sigar.ProcState{} 19 | mem := sigar.ProcMem{} 20 | time := sigar.ProcTime{} 21 | 22 | if err := state.Get(pid); err != nil { 23 | continue 24 | } 25 | if err := mem.Get(pid); err != nil { 26 | continue 27 | } 28 | if err := time.Get(pid); err != nil { 29 | continue 30 | } 31 | 32 | fmt.Printf("%5d %5d %s %s %6d %c %s\n", 33 | pid, state.Ppid, 34 | time.FormatStartTime(), time.FormatTotal(), 35 | mem.Resident/1024, state.State, state.Name) 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/cloudfoundry/gosigar/examples/uptime.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 VMware, Inc. 2 | 3 | package main 4 | 5 | import ( 6 | "fmt" 7 | "github.com/cloudfoundry/gosigar" 8 | "os" 9 | "time" 10 | ) 11 | 12 | func main() { 13 | concreteSigar := sigar.ConcreteSigar{} 14 | 15 | uptime := sigar.Uptime{} 16 | uptime.Get() 17 | avg, err := concreteSigar.GetLoadAverage() 18 | if err != nil { 19 | fmt.Printf("Failed to get load average") 20 | return 21 | } 22 | 23 | fmt.Fprintf(os.Stdout, " %s up %s load average: %.2f, %.2f, %.2f\n", 24 | time.Now().Format("15:04:05"), 25 | uptime.Format(), 26 | avg.One, avg.Five, avg.Fifteen) 27 | } 28 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/cloudfoundry/gosigar/sigar_unix.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 VMware, Inc. 2 | 3 | // +build darwin freebsd linux netbsd openbsd 4 | 5 | package sigar 6 | 7 | import "syscall" 8 | 9 | func (self *FileSystemUsage) Get(path string) error { 10 | stat := syscall.Statfs_t{} 11 | err := syscall.Statfs(path, &stat) 12 | if err != nil { 13 | return err 14 | } 15 | 16 | bsize := stat.Bsize / 512 17 | 18 | self.Total = (uint64(stat.Blocks) * uint64(bsize)) >> 1 19 | self.Free = (uint64(stat.Bfree) * uint64(bsize)) >> 1 20 | self.Avail = (uint64(stat.Bavail) * uint64(bsize)) >> 1 21 | self.Used = self.Total - self.Free 22 | self.Files = stat.Files 23 | self.FreeFiles = stat.Ffree 24 | 25 | return nil 26 | } 27 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/cloudfoundry/gosigar/sigar_util.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2012 VMware, Inc. 2 | 3 | package sigar 4 | 5 | import ( 6 | "unsafe" 7 | ) 8 | 9 | func bytePtrToString(ptr *int8) string { 10 | bytes := (*[10000]byte)(unsafe.Pointer(ptr)) 11 | 12 | n := 0 13 | for bytes[n] != 0 { 14 | n++ 15 | } 16 | 17 | return string(bytes[0:n]) 18 | } 19 | 20 | func chop(buf []byte) []byte { 21 | return buf[0 : len(buf)-1] 22 | } 23 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/ghttp/protobuf/protobuf.go: -------------------------------------------------------------------------------- 1 | package protobuf 2 | 3 | //go:generate protoc --go_out=. simple_message.proto 4 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/gstruct/types.go: -------------------------------------------------------------------------------- 1 | package gstruct 2 | 3 | //Options is the type for options passed to some matchers. 4 | type Options int 5 | 6 | const ( 7 | //IgnoreExtras tells the matcher to ignore extra elements or fields, rather than triggering a failure. 8 | IgnoreExtras Options = 1 << iota 9 | //IgnoreMissing tells the matcher to ignore missing elements or fields, rather than triggering a failure. 10 | IgnoreMissing 11 | //AllowDuplicates tells the matcher to permit multiple members of the slice to produce the same ID when 12 | //considered by the indentifier function. All members that map to a given key must still match successfully 13 | //with the matcher that is provided for that key. 14 | AllowDuplicates 15 | ) 16 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/internal/fakematcher/fake_matcher.go: -------------------------------------------------------------------------------- 1 | package fakematcher 2 | 3 | import "fmt" 4 | 5 | type FakeMatcher struct { 6 | ReceivedActual interface{} 7 | MatchesToReturn bool 8 | ErrToReturn error 9 | } 10 | 11 | func (matcher *FakeMatcher) Match(actual interface{}) (bool, error) { 12 | matcher.ReceivedActual = actual 13 | 14 | return matcher.MatchesToReturn, matcher.ErrToReturn 15 | } 16 | 17 | func (matcher *FakeMatcher) FailureMessage(actual interface{}) string { 18 | return fmt.Sprintf("positive: %v", actual) 19 | } 20 | 21 | func (matcher *FakeMatcher) NegatedFailureMessage(actual interface{}) string { 22 | return fmt.Sprintf("negative: %v", actual) 23 | } 24 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/matchers/be_empty_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "fmt" 5 | "github.com/onsi/gomega/format" 6 | ) 7 | 8 | type BeEmptyMatcher struct { 9 | } 10 | 11 | func (matcher *BeEmptyMatcher) Match(actual interface{}) (success bool, err error) { 12 | length, ok := lengthOf(actual) 13 | if !ok { 14 | return false, fmt.Errorf("BeEmpty matcher expects a string/array/map/channel/slice. Got:\n%s", format.Object(actual, 1)) 15 | } 16 | 17 | return length == 0, nil 18 | } 19 | 20 | func (matcher *BeEmptyMatcher) FailureMessage(actual interface{}) (message string) { 21 | return format.Message(actual, "to be empty") 22 | } 23 | 24 | func (matcher *BeEmptyMatcher) NegatedFailureMessage(actual interface{}) (message string) { 25 | return format.Message(actual, "not to be empty") 26 | } 27 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/matchers/be_false_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "fmt" 5 | "github.com/onsi/gomega/format" 6 | ) 7 | 8 | type BeFalseMatcher struct { 9 | } 10 | 11 | func (matcher *BeFalseMatcher) Match(actual interface{}) (success bool, err error) { 12 | if !isBool(actual) { 13 | return false, fmt.Errorf("Expected a boolean. Got:\n%s", format.Object(actual, 1)) 14 | } 15 | 16 | return actual == false, nil 17 | } 18 | 19 | func (matcher *BeFalseMatcher) FailureMessage(actual interface{}) (message string) { 20 | return format.Message(actual, "to be false") 21 | } 22 | 23 | func (matcher *BeFalseMatcher) NegatedFailureMessage(actual interface{}) (message string) { 24 | return format.Message(actual, "not to be false") 25 | } 26 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/matchers/be_nil_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import "github.com/onsi/gomega/format" 4 | 5 | type BeNilMatcher struct { 6 | } 7 | 8 | func (matcher *BeNilMatcher) Match(actual interface{}) (success bool, err error) { 9 | return isNil(actual), nil 10 | } 11 | 12 | func (matcher *BeNilMatcher) FailureMessage(actual interface{}) (message string) { 13 | return format.Message(actual, "to be nil") 14 | } 15 | 16 | func (matcher *BeNilMatcher) NegatedFailureMessage(actual interface{}) (message string) { 17 | return format.Message(actual, "not to be nil") 18 | } 19 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/matchers/be_true_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "fmt" 5 | "github.com/onsi/gomega/format" 6 | ) 7 | 8 | type BeTrueMatcher struct { 9 | } 10 | 11 | func (matcher *BeTrueMatcher) Match(actual interface{}) (success bool, err error) { 12 | if !isBool(actual) { 13 | return false, fmt.Errorf("Expected a boolean. Got:\n%s", format.Object(actual, 1)) 14 | } 15 | 16 | return actual.(bool), nil 17 | } 18 | 19 | func (matcher *BeTrueMatcher) FailureMessage(actual interface{}) (message string) { 20 | return format.Message(actual, "to be true") 21 | } 22 | 23 | func (matcher *BeTrueMatcher) NegatedFailureMessage(actual interface{}) (message string) { 24 | return format.Message(actual, "not to be true") 25 | } 26 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/matchers/be_zero_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "github.com/onsi/gomega/format" 5 | "reflect" 6 | ) 7 | 8 | type BeZeroMatcher struct { 9 | } 10 | 11 | func (matcher *BeZeroMatcher) Match(actual interface{}) (success bool, err error) { 12 | if actual == nil { 13 | return true, nil 14 | } 15 | zeroValue := reflect.Zero(reflect.TypeOf(actual)).Interface() 16 | 17 | return reflect.DeepEqual(zeroValue, actual), nil 18 | 19 | } 20 | 21 | func (matcher *BeZeroMatcher) FailureMessage(actual interface{}) (message string) { 22 | return format.Message(actual, "to be zero-valued") 23 | } 24 | 25 | func (matcher *BeZeroMatcher) NegatedFailureMessage(actual interface{}) (message string) { 26 | return format.Message(actual, "not to be zero-valued") 27 | } 28 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/matchers/support/goraph/node/node.go: -------------------------------------------------------------------------------- 1 | package node 2 | 3 | type Node struct { 4 | Id int 5 | } 6 | 7 | type NodeOrderedSet []Node 8 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/matchers/support/goraph/util/util.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import "math" 4 | 5 | func Odd(n int) bool { 6 | return math.Mod(float64(n), 2.0) == 1.0 7 | } 8 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/github.com/onsi/gomega/types/types.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | type GomegaFailHandler func(message string, callerSkip ...int) 4 | 5 | //A simple *testing.T interface wrapper 6 | type GomegaTestingT interface { 7 | Fatalf(format string, args ...interface{}) 8 | } 9 | 10 | //All Gomega matchers must implement the GomegaMatcher interface 11 | // 12 | //For details on writing custom matchers, check out: http://onsi.github.io/gomega/#adding_your_own_matchers 13 | type GomegaMatcher interface { 14 | Match(actual interface{}) (success bool, err error) 15 | FailureMessage(actual interface{}) (message string) 16 | NegatedFailureMessage(actual interface{}) (message string) 17 | } 18 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/golang.org/x/text/encoding/japanese/all.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 | package japanese 6 | 7 | import ( 8 | "golang.org/x/text/encoding" 9 | ) 10 | 11 | // All is a list of all defined encodings in this package. 12 | var All = []encoding.Encoding{EUCJP, ISO2022JP, ShiftJIS} 13 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/golang.org/x/text/encoding/simplifiedchinese/all.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 | package simplifiedchinese 6 | 7 | import ( 8 | "golang.org/x/text/encoding" 9 | ) 10 | 11 | // All is a list of all defined encodings in this package. 12 | var All = []encoding.Encoding{GB18030, GBK, HZGB2312} 13 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/golang.org/x/text/language/common.go: -------------------------------------------------------------------------------- 1 | // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. 2 | 3 | package language 4 | 5 | // This file contains code common to the maketables.go and the package code. 6 | 7 | // langAliasType is the type of an alias in langAliasMap. 8 | type langAliasType int8 9 | 10 | const ( 11 | langDeprecated langAliasType = iota 12 | langMacro 13 | langLegacy 14 | 15 | langAliasTypeUnknown langAliasType = -1 16 | ) 17 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/golang.org/x/text/language/gen_common.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build ignore 6 | 7 | package main 8 | 9 | // This file contains code common to the maketables.go and the package code. 10 | 11 | // langAliasType is the type of an alias in langAliasMap. 12 | type langAliasType int8 13 | 14 | const ( 15 | langDeprecated langAliasType = iota 16 | langMacro 17 | langLegacy 18 | 19 | langAliasTypeUnknown langAliasType = -1 20 | ) 21 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/golang.org/x/text/language/go1_1.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 !go1.2 6 | 7 | package language 8 | 9 | import "sort" 10 | 11 | func sortStable(s sort.Interface) { 12 | ss := stableSort{ 13 | s: s, 14 | pos: make([]int, s.Len()), 15 | } 16 | for i := range ss.pos { 17 | ss.pos[i] = i 18 | } 19 | sort.Sort(&ss) 20 | } 21 | 22 | type stableSort struct { 23 | s sort.Interface 24 | pos []int 25 | } 26 | 27 | func (s *stableSort) Len() int { 28 | return len(s.pos) 29 | } 30 | 31 | func (s *stableSort) Less(i, j int) bool { 32 | return s.s.Less(i, j) || !s.s.Less(j, i) && s.pos[i] < s.pos[j] 33 | } 34 | 35 | func (s *stableSort) Swap(i, j int) { 36 | s.s.Swap(i, j) 37 | s.pos[i], s.pos[j] = s.pos[j], s.pos[i] 38 | } 39 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/golang.org/x/text/language/go1_2.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 go1.2 6 | 7 | package language 8 | 9 | import "sort" 10 | 11 | var sortStable = sort.Stable 12 | -------------------------------------------------------------------------------- /src/generate-auto-tune-mysql/vendor/gopkg.in/yaml.v2/LICENSE: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /src/gra-log-purger/README.md: -------------------------------------------------------------------------------- 1 | This directory contains a go process to manage the purging of GRA log files for MySQL. If left unchecked, these log files can grow unbounded. 2 | -------------------------------------------------------------------------------- /src/gra-log-purger/gra_log_purger_suite_test.go: -------------------------------------------------------------------------------- 1 | package main_test 2 | 3 | import ( 4 | . "github.com/onsi/ginkgo" 5 | . "github.com/onsi/gomega" 6 | "github.com/onsi/gomega/gexec" 7 | 8 | "testing" 9 | ) 10 | 11 | func TestUpgrader(t *testing.T) { 12 | RegisterFailHandler(Fail) 13 | RunSpecs(t, "Gra Log Purger Suite") 14 | } 15 | 16 | var ( 17 | graLogPurgerBinPath string 18 | ) 19 | 20 | var _ = BeforeSuite(func() { 21 | var err error 22 | graLogPurgerBinPath, err = gexec.Build("gra-log-purger") 23 | Expect(err).NotTo(HaveOccurred()) 24 | }) 25 | 26 | var _ = AfterSuite(func() { 27 | gexec.Kill() 28 | gexec.CleanupBuildArtifacts() 29 | }) -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/hpcloud/tail/.gitignore: -------------------------------------------------------------------------------- 1 | .test 2 | .go 3 | 4 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/hpcloud/tail/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | script: 4 | - go test -race -v ./... 5 | 6 | go: 7 | - 1.5 8 | - 1.6 9 | - 1.7 10 | - 1.8 11 | - tip 12 | 13 | matrix: 14 | allow_failures: 15 | - go: tip 16 | 17 | install: 18 | - go get gopkg.in/fsnotify/fsnotify.v1 19 | - go get gopkg.in/tomb.v1 20 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/hpcloud/tail/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM golang 2 | 3 | RUN mkdir -p $GOPATH/src/github.com/hpcloud/tail/ 4 | ADD . $GOPATH/src/github.com/hpcloud/tail/ 5 | 6 | # expecting to fetch dependencies successfully. 7 | RUN go get -v github.com/hpcloud/tail 8 | 9 | # expecting to run the test successfully. 10 | RUN go test -v github.com/hpcloud/tail 11 | 12 | # expecting to install successfully 13 | RUN go install -v github.com/hpcloud/tail 14 | RUN go install -v github.com/hpcloud/tail/cmd/gotail 15 | 16 | RUN $GOPATH/bin/gotail -h || true 17 | 18 | ENV PATH $GOPATH/bin:$PATH 19 | CMD ["gotail"] 20 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/hpcloud/tail/Makefile: -------------------------------------------------------------------------------- 1 | default: test 2 | 3 | test: *.go 4 | go test -v -race ./... 5 | 6 | fmt: 7 | gofmt -w . 8 | 9 | # Run the test in an isolated environment. 10 | fulltest: 11 | docker build -t hpcloud/tail . 12 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/hpcloud/tail/appveyor.yml: -------------------------------------------------------------------------------- 1 | version: 0.{build} 2 | skip_tags: true 3 | cache: C:\Users\appveyor\AppData\Local\NuGet\Cache 4 | build_script: 5 | - SET GOPATH=c:\workspace 6 | - go test -v -race ./... 7 | test: off 8 | clone_folder: c:\workspace\src\github.com\hpcloud\tail 9 | branches: 10 | only: 11 | - master 12 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/hpcloud/tail/ratelimiter/storage.go: -------------------------------------------------------------------------------- 1 | package ratelimiter 2 | 3 | type Storage interface { 4 | GetBucketFor(string) (*LeakyBucket, error) 5 | SetBucketFor(string, LeakyBucket) error 6 | } 7 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/hpcloud/tail/tail_posix.go: -------------------------------------------------------------------------------- 1 | // +build linux darwin freebsd netbsd openbsd 2 | 3 | package tail 4 | 5 | import ( 6 | "os" 7 | ) 8 | 9 | func OpenFile(name string) (file *os.File, err error) { 10 | return os.Open(name) 11 | } 12 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/hpcloud/tail/tail_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package tail 4 | 5 | import ( 6 | "github.com/hpcloud/tail/winfile" 7 | "os" 8 | ) 9 | 10 | func OpenFile(name string) (file *os.File, err error) { 11 | return winfile.OpenFile(name, os.O_RDONLY, 0) 12 | } 13 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/hpcloud/tail/watch/watch.go: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2015 HPE Software Inc. All rights reserved. 2 | // Copyright (c) 2013 ActiveState Software Inc. All rights reserved. 3 | 4 | package watch 5 | 6 | import "gopkg.in/tomb.v1" 7 | 8 | // FileWatcher monitors file-level events. 9 | type FileWatcher interface { 10 | // BlockUntilExists blocks until the file comes into existence. 11 | BlockUntilExists(*tomb.Tomb) error 12 | 13 | // ChangeEvents reports on changes to a file, be it modification, 14 | // deletion, renames or truncations. Returned FileChanges group of 15 | // channels will be closed, thus become unusable, after a deletion 16 | // or truncation event. 17 | // In order to properly report truncations, ChangeEvents requires 18 | // the caller to pass their current offset in the file. 19 | ChangeEvents(*tomb.Tomb, int64) (*FileChanges, error) 20 | } 21 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | TODO 3 | tmp/**/* 4 | *.coverprofile 5 | .vscode 6 | .idea/ 7 | *.log 8 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | go: 3 | - 1.6.x 4 | - 1.7.x 5 | - 1.8.x 6 | - 1.9.x 7 | - 1.10.x 8 | - 1.11.x 9 | 10 | install: 11 | - go get -v -t ./... 12 | - go get golang.org/x/tools/cmd/cover 13 | - go get github.com/onsi/gomega 14 | - go install github.com/onsi/ginkgo/ginkgo 15 | - export PATH=$PATH:$HOME/gopath/bin 16 | 17 | script: $HOME/gopath/bin/ginkgo -r --randomizeAllSpecs --randomizeSuites --race --trace && go vet 18 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/internal/leafnodes/interfaces.go: -------------------------------------------------------------------------------- 1 | package leafnodes 2 | 3 | import ( 4 | "github.com/onsi/ginkgo/types" 5 | ) 6 | 7 | type BasicNode interface { 8 | Type() types.SpecComponentType 9 | Run() (types.SpecState, types.SpecFailure) 10 | CodeLocation() types.CodeLocation 11 | } 12 | 13 | type SubjectNode interface { 14 | BasicNode 15 | 16 | Text() string 17 | Flag() types.FlagType 18 | Samples() int 19 | } 20 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/internal/remote/output_interceptor.go: -------------------------------------------------------------------------------- 1 | package remote 2 | 3 | import "os" 4 | 5 | /* 6 | The OutputInterceptor is used by the ForwardingReporter to 7 | intercept and capture all stdin and stderr output during a test run. 8 | */ 9 | type OutputInterceptor interface { 10 | StartInterceptingOutput() error 11 | StopInterceptingAndReturnOutput() (string, error) 12 | StreamTo(*os.File) 13 | } 14 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/internal/remote/output_interceptor_win.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package remote 4 | 5 | import ( 6 | "errors" 7 | "os" 8 | ) 9 | 10 | func NewOutputInterceptor() OutputInterceptor { 11 | return &outputInterceptor{} 12 | } 13 | 14 | type outputInterceptor struct { 15 | intercepting bool 16 | } 17 | 18 | func (interceptor *outputInterceptor) StartInterceptingOutput() error { 19 | if interceptor.intercepting { 20 | return errors.New("Already intercepting output!") 21 | } 22 | interceptor.intercepting = true 23 | 24 | // not working on windows... 25 | 26 | return nil 27 | } 28 | 29 | func (interceptor *outputInterceptor) StopInterceptingAndReturnOutput() (string, error) { 30 | // not working on windows... 31 | interceptor.intercepting = false 32 | 33 | return "", nil 34 | } 35 | 36 | func (interceptor *outputInterceptor) StreamTo(*os.File) {} 37 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_linux_arm64.go: -------------------------------------------------------------------------------- 1 | // +build linux,arm64 2 | 3 | package remote 4 | 5 | import "syscall" 6 | 7 | // linux_arm64 doesn't have syscall.Dup2 which ginkgo uses, so 8 | // use the nearly identical syscall.Dup3 instead 9 | func syscallDup(oldfd int, newfd int) (err error) { 10 | return syscall.Dup3(oldfd, newfd, 0) 11 | } 12 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_solaris.go: -------------------------------------------------------------------------------- 1 | // +build solaris 2 | 3 | package remote 4 | 5 | import "golang.org/x/sys/unix" 6 | 7 | func syscallDup(oldfd int, newfd int) (err error) { 8 | return unix.Dup2(oldfd, newfd) 9 | } 10 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_unix.go: -------------------------------------------------------------------------------- 1 | // +build !linux !arm64 2 | // +build !windows 3 | // +build !solaris 4 | 5 | package remote 6 | 7 | import "syscall" 8 | 9 | func syscallDup(oldfd int, newfd int) (err error) { 10 | return syscall.Dup2(oldfd, newfd) 11 | } 12 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/internal/spec_iterator/spec_iterator.go: -------------------------------------------------------------------------------- 1 | package spec_iterator 2 | 3 | import ( 4 | "errors" 5 | 6 | "github.com/onsi/ginkgo/internal/spec" 7 | ) 8 | 9 | var ErrClosed = errors.New("no more specs to run") 10 | 11 | type SpecIterator interface { 12 | Next() (*spec.Spec, error) 13 | NumberOfSpecsPriorToIteration() int 14 | NumberOfSpecsToProcessIfKnown() (int, bool) 15 | NumberOfSpecsThatWillBeRunIfKnown() (int, bool) 16 | } 17 | 18 | type Counter struct { 19 | Index int `json:"index"` 20 | } 21 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/internal/specrunner/random_id.go: -------------------------------------------------------------------------------- 1 | package specrunner 2 | 3 | import ( 4 | "crypto/rand" 5 | "fmt" 6 | ) 7 | 8 | func randomID() string { 9 | b := make([]byte, 8) 10 | _, err := rand.Read(b) 11 | if err != nil { 12 | return "" 13 | } 14 | return fmt.Sprintf("%x-%x-%x-%x", b[0:2], b[2:4], b[4:6], b[6:8]) 15 | } 16 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/reporters/reporter.go: -------------------------------------------------------------------------------- 1 | package reporters 2 | 3 | import ( 4 | "github.com/onsi/ginkgo/config" 5 | "github.com/onsi/ginkgo/types" 6 | ) 7 | 8 | type Reporter interface { 9 | SpecSuiteWillBegin(config config.GinkgoConfigType, summary *types.SuiteSummary) 10 | BeforeSuiteDidRun(setupSummary *types.SetupSummary) 11 | SpecWillRun(specSummary *types.SpecSummary) 12 | SpecDidComplete(specSummary *types.SpecSummary) 13 | AfterSuiteDidRun(setupSummary *types.SetupSummary) 14 | SpecSuiteDidEnd(summary *types.SuiteSummary) 15 | } 16 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-colorable/colorable_others.go: -------------------------------------------------------------------------------- 1 | // +build !windows 2 | 3 | package colorable 4 | 5 | import ( 6 | "io" 7 | "os" 8 | ) 9 | 10 | func NewColorable(file *os.File) io.Writer { 11 | if file == nil { 12 | panic("nil passed instead of *os.File to NewColorable()") 13 | } 14 | 15 | return file 16 | } 17 | 18 | func NewColorableStdout() io.Writer { 19 | return os.Stdout 20 | } 21 | 22 | func NewColorableStderr() io.Writer { 23 | return os.Stderr 24 | } 25 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/README.md: -------------------------------------------------------------------------------- 1 | # go-isatty 2 | 3 | isatty for golang 4 | 5 | ## Usage 6 | 7 | ```go 8 | package main 9 | 10 | import ( 11 | "fmt" 12 | "github.com/mattn/go-isatty" 13 | "os" 14 | ) 15 | 16 | func main() { 17 | if isatty.IsTerminal(os.Stdout.Fd()) { 18 | fmt.Println("Is Terminal") 19 | } else { 20 | fmt.Println("Is Not Terminal") 21 | } 22 | } 23 | ``` 24 | 25 | ## Installation 26 | 27 | ``` 28 | $ go get github.com/mattn/go-isatty 29 | ``` 30 | 31 | # License 32 | 33 | MIT 34 | 35 | # Author 36 | 37 | Yasuhiro Matsumoto (a.k.a mattn) 38 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/doc.go: -------------------------------------------------------------------------------- 1 | // Package isatty implements interface to isatty 2 | package isatty 3 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/isatty_appengine.go: -------------------------------------------------------------------------------- 1 | // +build appengine 2 | 3 | package isatty 4 | 5 | // IsTerminal returns true if the file descriptor is terminal which 6 | // is always false on on appengine classic which is a sandboxed PaaS. 7 | func IsTerminal(fd uintptr) bool { 8 | return false 9 | } 10 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/isatty_bsd.go: -------------------------------------------------------------------------------- 1 | // +build darwin freebsd openbsd netbsd 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | import ( 7 | "syscall" 8 | "unsafe" 9 | ) 10 | 11 | const ioctlReadTermios = syscall.TIOCGETA 12 | 13 | // IsTerminal return true if the file descriptor is terminal. 14 | func IsTerminal(fd uintptr) bool { 15 | var termios syscall.Termios 16 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 17 | return err == 0 18 | } 19 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/isatty_linux.go: -------------------------------------------------------------------------------- 1 | // +build linux 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | import ( 7 | "syscall" 8 | "unsafe" 9 | ) 10 | 11 | const ioctlReadTermios = syscall.TCGETS 12 | 13 | // IsTerminal return true if the file descriptor is terminal. 14 | func IsTerminal(fd uintptr) bool { 15 | var termios syscall.Termios 16 | _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, fd, ioctlReadTermios, uintptr(unsafe.Pointer(&termios)), 0, 0, 0) 17 | return err == 0 18 | } 19 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/isatty_solaris.go: -------------------------------------------------------------------------------- 1 | // +build solaris 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | import ( 7 | "golang.org/x/sys/unix" 8 | ) 9 | 10 | // IsTerminal returns true if the given file descriptor is a terminal. 11 | // see: http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libbc/libc/gen/common/isatty.c 12 | func IsTerminal(fd uintptr) bool { 13 | var termio unix.Termio 14 | err := unix.IoctlSetTermio(int(fd), unix.TCGETA, &termio) 15 | return err == nil 16 | } 17 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/reporters/stenographer/support/go-isatty/isatty_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | // +build !appengine 3 | 4 | package isatty 5 | 6 | import ( 7 | "syscall" 8 | "unsafe" 9 | ) 10 | 11 | var kernel32 = syscall.NewLazyDLL("kernel32.dll") 12 | var procGetConsoleMode = kernel32.NewProc("GetConsoleMode") 13 | 14 | // IsTerminal return true if the file descriptor is terminal. 15 | func IsTerminal(fd uintptr) bool { 16 | var st uint32 17 | r, _, e := syscall.Syscall(procGetConsoleMode.Addr(), 2, fd, uintptr(unsafe.Pointer(&st)), 0) 18 | return r != 0 && e == 0 19 | } 20 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/types/code_location.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | import ( 4 | "fmt" 5 | ) 6 | 7 | type CodeLocation struct { 8 | FileName string 9 | LineNumber int 10 | FullStackTrace string 11 | } 12 | 13 | func (codeLocation CodeLocation) String() string { 14 | return fmt.Sprintf("%s:%d", codeLocation.FileName, codeLocation.LineNumber) 15 | } 16 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/ginkgo/types/synchronization.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | import ( 4 | "encoding/json" 5 | ) 6 | 7 | type RemoteBeforeSuiteState int 8 | 9 | const ( 10 | RemoteBeforeSuiteStateInvalid RemoteBeforeSuiteState = iota 11 | 12 | RemoteBeforeSuiteStatePending 13 | RemoteBeforeSuiteStatePassed 14 | RemoteBeforeSuiteStateFailed 15 | RemoteBeforeSuiteStateDisappeared 16 | ) 17 | 18 | type RemoteBeforeSuiteData struct { 19 | Data []byte 20 | State RemoteBeforeSuiteState 21 | } 22 | 23 | func (r RemoteBeforeSuiteData) ToJSON() []byte { 24 | data, _ := json.Marshal(r) 25 | return data 26 | } 27 | 28 | type RemoteAfterSuiteData struct { 29 | CanRun bool 30 | } 31 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.test 3 | . 4 | .idea 5 | gomega.iml 6 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | go: 4 | - 1.6.x 5 | - 1.7.x 6 | - 1.8.x 7 | - 1.9.x 8 | - 1.10.x 9 | - 1.11.x 10 | 11 | env: 12 | - GO111MODULE=on 13 | 14 | install: 15 | - go get -v ./... 16 | - go build ./... 17 | - go get github.com/onsi/ginkgo 18 | - go install github.com/onsi/ginkgo/ginkgo 19 | 20 | script: | 21 | $HOME/gopath/bin/ginkgo -p -r --randomizeAllSpecs --failOnPending --randomizeSuites --race && 22 | go vet && 23 | [ -z "`gofmt -l -e -s -w .`" ] 24 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/RELEASING.md: -------------------------------------------------------------------------------- 1 | A Gomega release is a tagged sha and a GitHub release. To cut a release: 2 | 3 | 1. Ensure CHANGELOG.md is up to date. 4 | - Use `git log --pretty=format:'- %s [%h]' HEAD...vX.X.X` to list all the commits since the last release 5 | - Categorize the changes into 6 | - Breaking Changes (requires a major version) 7 | - New Features (minor version) 8 | - Fixes (fix version) 9 | - Maintenance (which in general should not be mentioned in `CHANGELOG.md` as they have no user impact) 10 | 2. Update GOMEGA_VERSION in `gomega_dsl.go` 11 | 3. Push a commit with the version number as the commit message (e.g. `v1.3.0`) 12 | 4. Create a new [GitHub release](https://help.github.com/articles/creating-releases/) with the version number as the tag (e.g. `v1.3.0`). List the key changes in the release notes. 13 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/onsi/gomega 2 | 3 | require ( 4 | github.com/fsnotify/fsnotify v1.4.7 // indirect 5 | github.com/golang/protobuf v1.2.0 6 | github.com/hpcloud/tail v1.0.0 // indirect 7 | github.com/onsi/ginkgo v1.6.0 8 | golang.org/x/net v0.0.0-20180906233101-161cd47e91fd 9 | golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f // indirect 10 | golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e // indirect 11 | golang.org/x/text v0.3.0 // indirect 12 | gopkg.in/fsnotify.v1 v1.4.7 // indirect 13 | gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect 14 | gopkg.in/yaml.v2 v2.2.1 15 | ) 16 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/matchers/attributes_slice.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "encoding/xml" 5 | "strings" 6 | ) 7 | 8 | type attributesSlice []xml.Attr 9 | 10 | func (attrs attributesSlice) Len() int { return len(attrs) } 11 | func (attrs attributesSlice) Less(i, j int) bool { 12 | return strings.Compare(attrs[i].Name.Local, attrs[j].Name.Local) == -1 13 | } 14 | func (attrs attributesSlice) Swap(i, j int) { attrs[i], attrs[j] = attrs[j], attrs[i] } 15 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/matchers/be_empty_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/onsi/gomega/format" 7 | ) 8 | 9 | type BeEmptyMatcher struct { 10 | } 11 | 12 | func (matcher *BeEmptyMatcher) Match(actual interface{}) (success bool, err error) { 13 | length, ok := lengthOf(actual) 14 | if !ok { 15 | return false, fmt.Errorf("BeEmpty matcher expects a string/array/map/channel/slice. Got:\n%s", format.Object(actual, 1)) 16 | } 17 | 18 | return length == 0, nil 19 | } 20 | 21 | func (matcher *BeEmptyMatcher) FailureMessage(actual interface{}) (message string) { 22 | return format.Message(actual, "to be empty") 23 | } 24 | 25 | func (matcher *BeEmptyMatcher) NegatedFailureMessage(actual interface{}) (message string) { 26 | return format.Message(actual, "not to be empty") 27 | } 28 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/matchers/be_false_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/onsi/gomega/format" 7 | ) 8 | 9 | type BeFalseMatcher struct { 10 | } 11 | 12 | func (matcher *BeFalseMatcher) Match(actual interface{}) (success bool, err error) { 13 | if !isBool(actual) { 14 | return false, fmt.Errorf("Expected a boolean. Got:\n%s", format.Object(actual, 1)) 15 | } 16 | 17 | return actual == false, nil 18 | } 19 | 20 | func (matcher *BeFalseMatcher) FailureMessage(actual interface{}) (message string) { 21 | return format.Message(actual, "to be false") 22 | } 23 | 24 | func (matcher *BeFalseMatcher) NegatedFailureMessage(actual interface{}) (message string) { 25 | return format.Message(actual, "not to be false") 26 | } 27 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/matchers/be_nil_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import "github.com/onsi/gomega/format" 4 | 5 | type BeNilMatcher struct { 6 | } 7 | 8 | func (matcher *BeNilMatcher) Match(actual interface{}) (success bool, err error) { 9 | return isNil(actual), nil 10 | } 11 | 12 | func (matcher *BeNilMatcher) FailureMessage(actual interface{}) (message string) { 13 | return format.Message(actual, "to be nil") 14 | } 15 | 16 | func (matcher *BeNilMatcher) NegatedFailureMessage(actual interface{}) (message string) { 17 | return format.Message(actual, "not to be nil") 18 | } 19 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/matchers/be_true_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "fmt" 5 | 6 | "github.com/onsi/gomega/format" 7 | ) 8 | 9 | type BeTrueMatcher struct { 10 | } 11 | 12 | func (matcher *BeTrueMatcher) Match(actual interface{}) (success bool, err error) { 13 | if !isBool(actual) { 14 | return false, fmt.Errorf("Expected a boolean. Got:\n%s", format.Object(actual, 1)) 15 | } 16 | 17 | return actual.(bool), nil 18 | } 19 | 20 | func (matcher *BeTrueMatcher) FailureMessage(actual interface{}) (message string) { 21 | return format.Message(actual, "to be true") 22 | } 23 | 24 | func (matcher *BeTrueMatcher) NegatedFailureMessage(actual interface{}) (message string) { 25 | return format.Message(actual, "not to be true") 26 | } 27 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/matchers/be_zero_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "reflect" 5 | 6 | "github.com/onsi/gomega/format" 7 | ) 8 | 9 | type BeZeroMatcher struct { 10 | } 11 | 12 | func (matcher *BeZeroMatcher) Match(actual interface{}) (success bool, err error) { 13 | if actual == nil { 14 | return true, nil 15 | } 16 | zeroValue := reflect.Zero(reflect.TypeOf(actual)).Interface() 17 | 18 | return reflect.DeepEqual(zeroValue, actual), nil 19 | 20 | } 21 | 22 | func (matcher *BeZeroMatcher) FailureMessage(actual interface{}) (message string) { 23 | return format.Message(actual, "to be zero-valued") 24 | } 25 | 26 | func (matcher *BeZeroMatcher) NegatedFailureMessage(actual interface{}) (message string) { 27 | return format.Message(actual, "not to be zero-valued") 28 | } 29 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/matchers/support/goraph/node/node.go: -------------------------------------------------------------------------------- 1 | package node 2 | 3 | type Node struct { 4 | Id int 5 | } 6 | 7 | type NodeOrderedSet []Node 8 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/matchers/support/goraph/util/util.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import "math" 4 | 5 | func Odd(n int) bool { 6 | return math.Mod(float64(n), 2.0) == 1.0 7 | } 8 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/github.com/onsi/gomega/types/types.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | type TWithHelper interface { 4 | Helper() 5 | } 6 | 7 | type GomegaFailHandler func(message string, callerSkip ...int) 8 | 9 | type GomegaFailWrapper struct { 10 | Fail GomegaFailHandler 11 | TWithHelper TWithHelper 12 | } 13 | 14 | //A simple *testing.T interface wrapper 15 | type GomegaTestingT interface { 16 | Fatalf(format string, args ...interface{}) 17 | } 18 | 19 | //All Gomega matchers must implement the GomegaMatcher interface 20 | // 21 | //For details on writing custom matchers, check out: http://onsi.github.io/gomega/#adding-your-own-matchers 22 | type GomegaMatcher interface { 23 | Match(actual interface{}) (success bool, err error) 24 | FailureMessage(actual interface{}) (message string) 25 | NegatedFailureMessage(actual interface{}) (message string) 26 | } 27 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/golang.org/x/sys/unix/.gitignore: -------------------------------------------------------------------------------- 1 | _obj/ 2 | unix.test 3 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | ) 27 | 28 | // Socketoption Level 29 | const ( 30 | SOL_BLUETOOTH = 0x112 31 | SOL_HCI = 0x0 32 | SOL_L2CAP = 0x6 33 | SOL_RFCOMM = 0x12 34 | SOL_SCO = 0x11 35 | ) 36 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/golang.org/x/sys/unix/dirent.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 nacl netbsd openbsd solaris 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | // ParseDirent parses up to max directory entries in buf, 12 | // appending the names to names. It returns the number of 13 | // bytes consumed from buf, the number of entries added 14 | // to names, and the new names slice. 15 | func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { 16 | return syscall.ParseDirent(buf, max, names) 17 | } 18 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 6 | 7 | package unix 8 | 9 | const isBigEndian = false 10 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 (cmsg *Cmsghdr) SetLen(length int) { 32 | cmsg.Len = uint32(length) 33 | } 34 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 (cmsg *Cmsghdr) SetLen(length int) { 32 | cmsg.Len = uint32(length) 33 | } 34 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 (cmsg *Cmsghdr) SetLen(length int) { 32 | cmsg.Len = uint32(length) 33 | } 34 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 (cmsg *Cmsghdr) SetLen(length int) { 32 | cmsg.Len = uint32(length) 33 | } 34 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 (cmsg *Cmsghdr) SetLen(length int) { 22 | cmsg.Len = uint32(length) 23 | } 24 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/golang.org/x/text/encoding/japanese/all.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 | package japanese 6 | 7 | import ( 8 | "golang.org/x/text/encoding" 9 | ) 10 | 11 | // All is a list of all defined encodings in this package. 12 | var All = []encoding.Encoding{EUCJP, ISO2022JP, ShiftJIS} 13 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/golang.org/x/text/encoding/simplifiedchinese/all.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 | package simplifiedchinese 6 | 7 | import ( 8 | "golang.org/x/text/encoding" 9 | ) 10 | 11 | // All is a list of all defined encodings in this package. 12 | var All = []encoding.Encoding{GB18030, GBK, HZGB2312} 13 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/golang.org/x/text/language/Makefile: -------------------------------------------------------------------------------- 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 | CLEANFILES+=maketables 6 | 7 | maketables: maketables.go 8 | go build $^ 9 | 10 | tables: maketables 11 | ./maketables > tables.go 12 | gofmt -w -s tables.go 13 | 14 | # Build (but do not run) maketables during testing, 15 | # just to make sure it still compiles. 16 | testshort: maketables 17 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/golang.org/x/text/language/common.go: -------------------------------------------------------------------------------- 1 | // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. 2 | 3 | package language 4 | 5 | // This file contains code common to the maketables.go and the package code. 6 | 7 | // langAliasType is the type of an alias in langAliasMap. 8 | type langAliasType int8 9 | 10 | const ( 11 | langDeprecated langAliasType = iota 12 | langMacro 13 | langLegacy 14 | 15 | langAliasTypeUnknown langAliasType = -1 16 | ) 17 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/golang.org/x/text/language/gen_common.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build ignore 6 | 7 | package main 8 | 9 | // This file contains code common to the maketables.go and the package code. 10 | 11 | // langAliasType is the type of an alias in langAliasMap. 12 | type langAliasType int8 13 | 14 | const ( 15 | langDeprecated langAliasType = iota 16 | langMacro 17 | langLegacy 18 | 19 | langAliasTypeUnknown langAliasType = -1 20 | ) 21 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/golang.org/x/text/language/go1_1.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 !go1.2 6 | 7 | package language 8 | 9 | import "sort" 10 | 11 | func sortStable(s sort.Interface) { 12 | ss := stableSort{ 13 | s: s, 14 | pos: make([]int, s.Len()), 15 | } 16 | for i := range ss.pos { 17 | ss.pos[i] = i 18 | } 19 | sort.Sort(&ss) 20 | } 21 | 22 | type stableSort struct { 23 | s sort.Interface 24 | pos []int 25 | } 26 | 27 | func (s *stableSort) Len() int { 28 | return len(s.pos) 29 | } 30 | 31 | func (s *stableSort) Less(i, j int) bool { 32 | return s.s.Less(i, j) || !s.s.Less(j, i) && s.pos[i] < s.pos[j] 33 | } 34 | 35 | func (s *stableSort) Swap(i, j int) { 36 | s.s.Swap(i, j) 37 | s.pos[i], s.pos[j] = s.pos[j], s.pos[i] 38 | } 39 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/golang.org/x/text/language/go1_2.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 go1.2 6 | 7 | package language 8 | 9 | import "sort" 10 | 11 | var sortStable = sort.Stable 12 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/gopkg.in/fsnotify/fsnotify.v1/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = tab 5 | indent_size = 4 6 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/gopkg.in/fsnotify/fsnotify.v1/.gitignore: -------------------------------------------------------------------------------- 1 | # Setup a Global .gitignore for OS and editor generated files: 2 | # https://help.github.com/articles/ignoring-files 3 | # git config --global core.excludesfile ~/.gitignore_global 4 | 5 | .vagrant 6 | *.sublime-project 7 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/gopkg.in/fsnotify/fsnotify.v1/.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: go 3 | 4 | go: 5 | - 1.8.x 6 | - 1.9.x 7 | - tip 8 | 9 | matrix: 10 | allow_failures: 11 | - go: tip 12 | fast_finish: true 13 | 14 | before_script: 15 | - go get -u github.com/golang/lint/golint 16 | 17 | script: 18 | - go test -v --race ./... 19 | 20 | after_script: 21 | - test -z "$(gofmt -s -l -w . | tee /dev/stderr)" 22 | - test -z "$(golint ./... | tee /dev/stderr)" 23 | - go vet ./... 24 | 25 | os: 26 | - linux 27 | - osx 28 | 29 | notifications: 30 | email: false 31 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/gopkg.in/fsnotify/fsnotify.v1/open_mode_bsd.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 freebsd openbsd netbsd dragonfly 6 | 7 | package fsnotify 8 | 9 | import "golang.org/x/sys/unix" 10 | 11 | const openMode = unix.O_NONBLOCK | unix.O_RDONLY 12 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/gopkg.in/fsnotify/fsnotify.v1/open_mode_darwin.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 darwin 6 | 7 | package fsnotify 8 | 9 | import "golang.org/x/sys/unix" 10 | 11 | // note: this constant is not defined on BSD 12 | const openMode = unix.O_EVTONLY 13 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/gopkg.in/tomb.v1/README.md: -------------------------------------------------------------------------------- 1 | Installation and usage 2 | ---------------------- 3 | 4 | See [gopkg.in/tomb.v1](https://gopkg.in/tomb.v1) for documentation and usage details. 5 | -------------------------------------------------------------------------------- /src/gra-log-purger/vendor/gopkg.in/yaml.v2/.travis.yml: -------------------------------------------------------------------------------- 1 | language: go 2 | 3 | go: 4 | - 1.4 5 | - 1.5 6 | - 1.6 7 | - 1.7 8 | - 1.8 9 | - 1.9 10 | - tip 11 | 12 | go_import_path: gopkg.in/yaml.v2 13 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/gra-log-purger/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/bin/govet: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | SRC_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" 6 | 7 | go tool vet -composites=false $SRC_DIR 2>&1 | grep -v /vendor/ 8 | -------------------------------------------------------------------------------- /src/quota-enforcer/bin/test-integration: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eux 4 | 5 | MY_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 6 | 7 | # This script assumes that it lives one directory below the src directory. 8 | SRC_DIR="$( cd $MY_DIR/.. && pwd )" 9 | 10 | export CONFIG_PATH=${CONFIG_PATH:-$SRC_DIR/config-default.yaml} 11 | 12 | ginkgo -r -race -failOnPending -randomizeAllSpecs "$@" ${SRC_DIR}/integration 13 | -------------------------------------------------------------------------------- /src/quota-enforcer/bin/test-unit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | result=0 4 | 5 | bin=$(dirname $0) 6 | 7 | echo -e "\nFormatting packages..." 8 | go fmt quota-enforcer/... 9 | 10 | echo -e "\nVetting packages for potential issues..." 11 | $bin/govet 12 | 13 | echo -e "\nTesting packages..." 14 | ginkgo -p -r -race -failOnPending -randomizeAllSpecs -skipPackage=integration $bin/.. 15 | -------------------------------------------------------------------------------- /src/quota-enforcer/clock/clock.go: -------------------------------------------------------------------------------- 1 | package clock 2 | 3 | import "time" 4 | 5 | type Clock interface { 6 | After(time.Duration) <-chan time.Time 7 | } 8 | 9 | type clock struct{} 10 | 11 | func DefaultClock() Clock { 12 | return &clock{} 13 | } 14 | 15 | func (this clock) After(interval time.Duration) <-chan time.Time { 16 | return time.After(interval) 17 | } 18 | -------------------------------------------------------------------------------- /src/quota-enforcer/config-default.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | Host: localhost 3 | Port: 3306 4 | User: root 5 | Password: 6 | IgnoredUsers: 7 | - cluster-health 8 | DBName: development 9 | PauseInSeconds: 1 10 | AdminUser: root 11 | AdminPassword: 12 | -------------------------------------------------------------------------------- /src/quota-enforcer/config-example.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | Host: 127.0.0.1 3 | Port: 3306 4 | User: quota-enforcer 5 | Password: password 6 | IgnoredUsers: 7 | - cluster-health-logger 8 | DBName: development 9 | PauseInSeconds: 1 10 | AdminUser: root 11 | AdminPassword: password 12 | -------------------------------------------------------------------------------- /src/quota-enforcer/config/config_suite_test.go: -------------------------------------------------------------------------------- 1 | package config_test 2 | 3 | import ( 4 | . "github.com/onsi/ginkgo" 5 | . "github.com/onsi/gomega" 6 | 7 | "testing" 8 | ) 9 | 10 | func TestConfig(t *testing.T) { 11 | RegisterFailHandler(Fail) 12 | RunSpecs(t, "Config Suite") 13 | } 14 | -------------------------------------------------------------------------------- /src/quota-enforcer/database/connection.go: -------------------------------------------------------------------------------- 1 | package database 2 | 3 | import ( 4 | "database/sql" 5 | "fmt" 6 | ) 7 | 8 | func NewConnection(username, password, host string, port int, dbName string) (*sql.DB, error) { 9 | 10 | var userPass string 11 | if password != "" { 12 | userPass = fmt.Sprintf("%s:%s", username, password) 13 | } else { 14 | userPass = username 15 | } 16 | 17 | return sql.Open("mysql", fmt.Sprintf( 18 | "%s@tcp(%s:%d)/%s", 19 | userPass, 20 | host, 21 | port, 22 | dbName, 23 | )) 24 | } 25 | -------------------------------------------------------------------------------- /src/quota-enforcer/database/database_suite_test.go: -------------------------------------------------------------------------------- 1 | package database_test 2 | 3 | import ( 4 | . "github.com/onsi/ginkgo" 5 | . "github.com/onsi/gomega" 6 | 7 | "testing" 8 | ) 9 | 10 | func TestEnforcer(t *testing.T) { 11 | RegisterFailHandler(Fail) 12 | RunSpecs(t, "Database Suite") 13 | } 14 | -------------------------------------------------------------------------------- /src/quota-enforcer/enforcer/enforcer_suite_test.go: -------------------------------------------------------------------------------- 1 | package enforcer_test 2 | 3 | import ( 4 | . "github.com/onsi/ginkgo" 5 | . "github.com/onsi/gomega" 6 | 7 | "testing" 8 | ) 9 | 10 | func TestEnforcer(t *testing.T) { 11 | RegisterFailHandler(Fail) 12 | RunSpecs(t, "Enforcer Suite") 13 | } 14 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/code.cloudfoundry.org/cflager/integration/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "errors" 5 | "flag" 6 | 7 | "code.cloudfoundry.org/cflager" 8 | "code.cloudfoundry.org/lager" 9 | ) 10 | 11 | func main() { 12 | cflager.AddFlags(flag.CommandLine) 13 | flag.Parse() 14 | 15 | logger, _ := cflager.New("cf-lager-integration") 16 | 17 | logger.Debug("component-does-action", lager.Data{"debug-detail": "foo"}) 18 | logger.Info("another-component-action", lager.Data{"info-detail": "bar"}) 19 | logger.Error("component-failed-something", errors.New("error"), lager.Data{"error-detail": "baz"}) 20 | logger.Fatal("component-failed-badly", errors.New("fatal"), lager.Data{"fatal-detail": "quux"}) 21 | } 22 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/code.cloudfoundry.org/lager/models.go: -------------------------------------------------------------------------------- 1 | package lager 2 | 3 | import "encoding/json" 4 | 5 | type LogLevel int 6 | 7 | const ( 8 | DEBUG LogLevel = iota 9 | INFO 10 | ERROR 11 | FATAL 12 | ) 13 | 14 | type Data map[string]interface{} 15 | 16 | type LogFormat struct { 17 | Timestamp string `json:"timestamp"` 18 | Source string `json:"source"` 19 | Message string `json:"message"` 20 | LogLevel LogLevel `json:"log_level"` 21 | Data Data `json:"data"` 22 | } 23 | 24 | func (log LogFormat) ToJSON() []byte { 25 | content, err := json.Marshal(log) 26 | if err != nil { 27 | panic(err) 28 | } 29 | return content 30 | } 31 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/code.cloudfoundry.org/lager/reconfigurable_sink.go: -------------------------------------------------------------------------------- 1 | package lager 2 | 3 | import "sync/atomic" 4 | 5 | type ReconfigurableSink struct { 6 | sink Sink 7 | 8 | minLogLevel int32 9 | } 10 | 11 | func NewReconfigurableSink(sink Sink, initialMinLogLevel LogLevel) *ReconfigurableSink { 12 | return &ReconfigurableSink{ 13 | sink: sink, 14 | 15 | minLogLevel: int32(initialMinLogLevel), 16 | } 17 | } 18 | 19 | func (sink *ReconfigurableSink) Log(log LogFormat) { 20 | minLogLevel := LogLevel(atomic.LoadInt32(&sink.minLogLevel)) 21 | 22 | if log.LogLevel < minLogLevel { 23 | return 24 | } 25 | 26 | sink.sink.Log(log) 27 | } 28 | 29 | func (sink *ReconfigurableSink) SetMinLevel(level LogLevel) { 30 | atomic.StoreInt32(&sink.minLogLevel, int32(level)) 31 | } 32 | 33 | func (sink *ReconfigurableSink) GetMinLevel() LogLevel { 34 | return LogLevel(atomic.LoadInt32(&sink.minLogLevel)) 35 | } 36 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/DATA-DOG/go-sqlmock/argument.go: -------------------------------------------------------------------------------- 1 | package sqlmock 2 | 3 | import "database/sql/driver" 4 | 5 | // Argument interface allows to match 6 | // any argument in specific way when used with 7 | // ExpectedQuery and ExpectedExec expectations. 8 | type Argument interface { 9 | Match(driver.Value) bool 10 | } 11 | 12 | // AnyArg will return an Argument which can 13 | // match any kind of arguments. 14 | // 15 | // Useful for time.Time or similar kinds of arguments. 16 | func AnyArg() Argument { 17 | return anyArgument{} 18 | } 19 | 20 | type anyArgument struct{} 21 | 22 | func (a anyArgument) Match(_ driver.Value) bool { 23 | return true 24 | } 25 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/DATA-DOG/go-sqlmock/examples/doc.go: -------------------------------------------------------------------------------- 1 | package examples 2 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/DATA-DOG/go-sqlmock/statement.go: -------------------------------------------------------------------------------- 1 | package sqlmock 2 | 3 | import ( 4 | "database/sql/driver" 5 | ) 6 | 7 | type statement struct { 8 | conn *sqlmock 9 | query string 10 | err error 11 | } 12 | 13 | func (stmt *statement) Close() error { 14 | return stmt.err 15 | } 16 | 17 | func (stmt *statement) NumInput() int { 18 | return -1 19 | } 20 | 21 | func (stmt *statement) Exec(args []driver.Value) (driver.Result, error) { 22 | return stmt.conn.Exec(stmt.query, args) 23 | } 24 | 25 | func (stmt *statement) Query(args []driver.Value) (driver.Rows, error) { 26 | return stmt.conn.Query(stmt.query, args) 27 | } 28 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/DATA-DOG/go-sqlmock/util.go: -------------------------------------------------------------------------------- 1 | package sqlmock 2 | 3 | import ( 4 | "regexp" 5 | "strings" 6 | ) 7 | 8 | var re = regexp.MustCompile("\\s+") 9 | 10 | // strip out new lines and trim spaces 11 | func stripQuery(q string) (s string) { 12 | return strings.TrimSpace(re.ReplaceAllString(q, " ")) 13 | } 14 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/go-sql-driver/mysql/appengine.go: -------------------------------------------------------------------------------- 1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package 2 | // 3 | // Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved. 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public 6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file, 7 | // You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | // +build appengine 10 | 11 | package mysql 12 | 13 | import ( 14 | "appengine/cloudsql" 15 | ) 16 | 17 | func init() { 18 | RegisterDial("cloudsql", cloudsql.Dial) 19 | } 20 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/go-sql-driver/mysql/result.go: -------------------------------------------------------------------------------- 1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package 2 | // 3 | // Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public 6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file, 7 | // You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | package mysql 10 | 11 | type mysqlResult struct { 12 | affectedRows int64 13 | insertId int64 14 | } 15 | 16 | func (res *mysqlResult) LastInsertId() (int64, error) { 17 | return res.insertId, nil 18 | } 19 | 20 | func (res *mysqlResult) RowsAffected() (int64, error) { 21 | return res.affectedRows, nil 22 | } 23 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/go-sql-driver/mysql/transaction.go: -------------------------------------------------------------------------------- 1 | // Go MySQL Driver - A MySQL-Driver for Go's database/sql package 2 | // 3 | // Copyright 2012 The Go-MySQL-Driver Authors. All rights reserved. 4 | // 5 | // This Source Code Form is subject to the terms of the Mozilla Public 6 | // License, v. 2.0. If a copy of the MPL was not distributed with this file, 7 | // You can obtain one at http://mozilla.org/MPL/2.0/. 8 | 9 | package mysql 10 | 11 | type mysqlTx struct { 12 | mc *mysqlConn 13 | } 14 | 15 | func (tx *mysqlTx) Commit() (err error) { 16 | if tx.mc == nil || tx.mc.netConn == nil { 17 | return ErrInvalidConn 18 | } 19 | err = tx.mc.exec("COMMIT") 20 | tx.mc = nil 21 | return 22 | } 23 | 24 | func (tx *mysqlTx) Rollback() (err error) { 25 | if tx.mc == nil || tx.mc.netConn == nil { 26 | return ErrInvalidConn 27 | } 28 | err = tx.mc.exec("ROLLBACK") 29 | tx.mc = nil 30 | return 31 | } 32 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/ginkgo/help_command.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "flag" 5 | "fmt" 6 | ) 7 | 8 | func BuildHelpCommand() *Command { 9 | return &Command{ 10 | Name: "help", 11 | FlagSet: flag.NewFlagSet("help", flag.ExitOnError), 12 | UsageCommand: "ginkgo help ", 13 | Usage: []string{ 14 | "Print usage information. If a command is passed in, print usage information just for that command.", 15 | }, 16 | Command: printHelp, 17 | } 18 | } 19 | 20 | func printHelp(args []string, additionalArgs []string) { 21 | if len(args) == 0 { 22 | usage() 23 | } else { 24 | command, found := commandMatching(args[0]) 25 | if !found { 26 | complainAndQuit(fmt.Sprintf("Unknown command: %s", args[0])) 27 | } 28 | 29 | usageForCommand(command, true) 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/sigquit_swallower_unix.go: -------------------------------------------------------------------------------- 1 | // +build freebsd openbsd netbsd dragonfly darwin linux solaris 2 | 3 | package interrupthandler 4 | 5 | import ( 6 | "os" 7 | "os/signal" 8 | "syscall" 9 | ) 10 | 11 | func SwallowSigQuit() { 12 | c := make(chan os.Signal, 1024) 13 | signal.Notify(c, syscall.SIGQUIT) 14 | } 15 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/ginkgo/interrupthandler/sigquit_swallower_windows.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package interrupthandler 4 | 5 | func SwallowSigQuit() { 6 | //noop 7 | } 8 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/ginkgo/testrunner/run_result.go: -------------------------------------------------------------------------------- 1 | package testrunner 2 | 3 | type RunResult struct { 4 | Passed bool 5 | HasProgrammaticFocus bool 6 | } 7 | 8 | func PassingRunResult() RunResult { 9 | return RunResult{ 10 | Passed: true, 11 | HasProgrammaticFocus: false, 12 | } 13 | } 14 | 15 | func FailingRunResult() RunResult { 16 | return RunResult{ 17 | Passed: false, 18 | HasProgrammaticFocus: false, 19 | } 20 | } 21 | 22 | func (r RunResult) Merge(o RunResult) RunResult { 23 | return RunResult{ 24 | Passed: r.Passed && o.Passed, 25 | HasProgrammaticFocus: r.HasProgrammaticFocus || o.HasProgrammaticFocus, 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/vendor_check_go15.go: -------------------------------------------------------------------------------- 1 | // +build !go1.6 2 | 3 | package testsuite 4 | 5 | import ( 6 | "os" 7 | "path" 8 | ) 9 | 10 | // "This change will only be enabled if the go command is run with 11 | // GO15VENDOREXPERIMENT=1 in its environment." 12 | // c.f. the vendor-experiment proposal https://goo.gl/2ucMeC 13 | func vendorExperimentCheck(dir string) bool { 14 | vendorExperiment := os.Getenv("GO15VENDOREXPERIMENT") 15 | return vendorExperiment == "1" && path.Base(dir) == "vendor" 16 | } 17 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/ginkgo/testsuite/vendor_check_go16.go: -------------------------------------------------------------------------------- 1 | // +build go1.6 2 | 3 | package testsuite 4 | 5 | import ( 6 | "os" 7 | "path" 8 | ) 9 | 10 | // in 1.6 the vendor directory became the default go behaviour, so now 11 | // check if its disabled. 12 | func vendorExperimentCheck(dir string) bool { 13 | vendorExperiment := os.Getenv("GO15VENDOREXPERIMENT") 14 | return vendorExperiment != "0" && path.Base(dir) == "vendor" 15 | } 16 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/ginkgo/version_command.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "flag" 5 | "fmt" 6 | "github.com/onsi/ginkgo/config" 7 | ) 8 | 9 | func BuildVersionCommand() *Command { 10 | return &Command{ 11 | Name: "version", 12 | FlagSet: flag.NewFlagSet("version", flag.ExitOnError), 13 | UsageCommand: "ginkgo version", 14 | Usage: []string{ 15 | "Print Ginkgo's version", 16 | }, 17 | Command: printVersion, 18 | } 19 | } 20 | 21 | func printVersion([]string, []string) { 22 | fmt.Printf("Ginkgo Version %s\n", config.VERSION) 23 | } 24 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/ginkgo/watch/delta.go: -------------------------------------------------------------------------------- 1 | package watch 2 | 3 | import "sort" 4 | 5 | type Delta struct { 6 | ModifiedPackages []string 7 | 8 | NewSuites []*Suite 9 | RemovedSuites []*Suite 10 | modifiedSuites []*Suite 11 | } 12 | 13 | type DescendingByDelta []*Suite 14 | 15 | func (a DescendingByDelta) Len() int { return len(a) } 16 | func (a DescendingByDelta) Swap(i, j int) { a[i], a[j] = a[j], a[i] } 17 | func (a DescendingByDelta) Less(i, j int) bool { return a[i].Delta() > a[j].Delta() } 18 | 19 | func (d Delta) ModifiedSuites() []*Suite { 20 | sort.Sort(DescendingByDelta(d.modifiedSuites)) 21 | return d.modifiedSuites 22 | } 23 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/integration/integration.go: -------------------------------------------------------------------------------- 1 | package integration 2 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/internal/leafnodes/interfaces.go: -------------------------------------------------------------------------------- 1 | package leafnodes 2 | 3 | import ( 4 | "github.com/onsi/ginkgo/types" 5 | ) 6 | 7 | type BasicNode interface { 8 | Type() types.SpecComponentType 9 | Run() (types.SpecState, types.SpecFailure) 10 | CodeLocation() types.CodeLocation 11 | } 12 | 13 | type SubjectNode interface { 14 | BasicNode 15 | 16 | Text() string 17 | Flag() types.FlagType 18 | Samples() int 19 | } 20 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/internal/remote/output_interceptor.go: -------------------------------------------------------------------------------- 1 | package remote 2 | 3 | /* 4 | The OutputInterceptor is used by the ForwardingReporter to 5 | intercept and capture all stdin and stderr output during a test run. 6 | */ 7 | type OutputInterceptor interface { 8 | StartInterceptingOutput() error 9 | StopInterceptingAndReturnOutput() (string, error) 10 | } 11 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/internal/remote/output_interceptor_win.go: -------------------------------------------------------------------------------- 1 | // +build windows 2 | 3 | package remote 4 | 5 | import ( 6 | "errors" 7 | ) 8 | 9 | func NewOutputInterceptor() OutputInterceptor { 10 | return &outputInterceptor{} 11 | } 12 | 13 | type outputInterceptor struct { 14 | intercepting bool 15 | } 16 | 17 | func (interceptor *outputInterceptor) StartInterceptingOutput() error { 18 | if interceptor.intercepting { 19 | return errors.New("Already intercepting output!") 20 | } 21 | interceptor.intercepting = true 22 | 23 | // not working on windows... 24 | 25 | return nil 26 | } 27 | 28 | func (interceptor *outputInterceptor) StopInterceptingAndReturnOutput() (string, error) { 29 | // not working on windows... 30 | interceptor.intercepting = false 31 | 32 | return "", nil 33 | } 34 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_linux_arm64.go: -------------------------------------------------------------------------------- 1 | // +build linux,arm64 2 | 3 | package remote 4 | 5 | import "syscall" 6 | 7 | // linux_arm64 doesn't have syscall.Dup2 which ginkgo uses, so 8 | // use the nearly identical syscall.Dup3 instead 9 | func syscallDup(oldfd int, newfd int) (err error) { 10 | return syscall.Dup3(oldfd, newfd, 0) 11 | } 12 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_solaris.go: -------------------------------------------------------------------------------- 1 | // +build solaris 2 | 3 | package remote 4 | 5 | import "golang.org/x/sys/unix" 6 | 7 | func syscallDup(oldfd int, newfd int) (err error) { 8 | return unix.Dup2(oldfd, newfd) 9 | } 10 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/internal/remote/syscall_dup_unix.go: -------------------------------------------------------------------------------- 1 | // +build !linux !arm64 2 | // +build !windows 3 | // +build !solaris 4 | 5 | package remote 6 | 7 | import "syscall" 8 | 9 | func syscallDup(oldfd int, newfd int) (err error) { 10 | return syscall.Dup2(oldfd, newfd) 11 | } 12 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/internal/specrunner/random_id.go: -------------------------------------------------------------------------------- 1 | package specrunner 2 | 3 | import ( 4 | "crypto/rand" 5 | "fmt" 6 | ) 7 | 8 | func randomID() string { 9 | b := make([]byte, 8) 10 | _, err := rand.Read(b) 11 | if err != nil { 12 | return "" 13 | } 14 | return fmt.Sprintf("%x-%x-%x-%x", b[0:2], b[2:4], b[4:6], b[6:8]) 15 | } 16 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/internal/writer/fake_writer.go: -------------------------------------------------------------------------------- 1 | package writer 2 | 3 | type FakeGinkgoWriter struct { 4 | EventStream []string 5 | } 6 | 7 | func NewFake() *FakeGinkgoWriter { 8 | return &FakeGinkgoWriter{ 9 | EventStream: []string{}, 10 | } 11 | } 12 | 13 | func (writer *FakeGinkgoWriter) AddEvent(event string) { 14 | writer.EventStream = append(writer.EventStream, event) 15 | } 16 | 17 | func (writer *FakeGinkgoWriter) Truncate() { 18 | writer.EventStream = append(writer.EventStream, "TRUNCATE") 19 | } 20 | 21 | func (writer *FakeGinkgoWriter) DumpOut() { 22 | writer.EventStream = append(writer.EventStream, "DUMP") 23 | } 24 | 25 | func (writer *FakeGinkgoWriter) DumpOutWithHeader(header string) { 26 | writer.EventStream = append(writer.EventStream, "DUMP_WITH_HEADER: "+header) 27 | } 28 | 29 | func (writer *FakeGinkgoWriter) Write(data []byte) (n int, err error) { 30 | return 0, nil 31 | } 32 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/reporters/reporter.go: -------------------------------------------------------------------------------- 1 | package reporters 2 | 3 | import ( 4 | "github.com/onsi/ginkgo/config" 5 | "github.com/onsi/ginkgo/types" 6 | ) 7 | 8 | type Reporter interface { 9 | SpecSuiteWillBegin(config config.GinkgoConfigType, summary *types.SuiteSummary) 10 | BeforeSuiteDidRun(setupSummary *types.SetupSummary) 11 | SpecWillRun(specSummary *types.SpecSummary) 12 | SpecDidComplete(specSummary *types.SpecSummary) 13 | AfterSuiteDidRun(setupSummary *types.SetupSummary) 14 | SpecSuiteDidEnd(summary *types.SuiteSummary) 15 | } 16 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/types/code_location.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | import ( 4 | "fmt" 5 | ) 6 | 7 | type CodeLocation struct { 8 | FileName string 9 | LineNumber int 10 | FullStackTrace string 11 | } 12 | 13 | func (codeLocation CodeLocation) String() string { 14 | return fmt.Sprintf("%s:%d", codeLocation.FileName, codeLocation.LineNumber) 15 | } 16 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/ginkgo/types/synchronization.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | import ( 4 | "encoding/json" 5 | ) 6 | 7 | type RemoteBeforeSuiteState int 8 | 9 | const ( 10 | RemoteBeforeSuiteStateInvalid RemoteBeforeSuiteState = iota 11 | 12 | RemoteBeforeSuiteStatePending 13 | RemoteBeforeSuiteStatePassed 14 | RemoteBeforeSuiteStateFailed 15 | RemoteBeforeSuiteStateDisappeared 16 | ) 17 | 18 | type RemoteBeforeSuiteData struct { 19 | Data []byte 20 | State RemoteBeforeSuiteState 21 | } 22 | 23 | func (r RemoteBeforeSuiteData) ToJSON() []byte { 24 | data, _ := json.Marshal(r) 25 | return data 26 | } 27 | 28 | type RemoteAfterSuiteData struct { 29 | CanRun bool 30 | } 31 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/ghttp/protobuf/protobuf.go: -------------------------------------------------------------------------------- 1 | package protobuf 2 | 3 | //go:generate protoc --go_out=. simple_message.proto 4 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/internal/fakematcher/fake_matcher.go: -------------------------------------------------------------------------------- 1 | package fakematcher 2 | 3 | import "fmt" 4 | 5 | type FakeMatcher struct { 6 | ReceivedActual interface{} 7 | MatchesToReturn bool 8 | ErrToReturn error 9 | } 10 | 11 | func (matcher *FakeMatcher) Match(actual interface{}) (bool, error) { 12 | matcher.ReceivedActual = actual 13 | 14 | return matcher.MatchesToReturn, matcher.ErrToReturn 15 | } 16 | 17 | func (matcher *FakeMatcher) FailureMessage(actual interface{}) string { 18 | return fmt.Sprintf("positive: %v", actual) 19 | } 20 | 21 | func (matcher *FakeMatcher) NegatedFailureMessage(actual interface{}) string { 22 | return fmt.Sprintf("negative: %v", actual) 23 | } 24 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/matchers/be_empty_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "fmt" 5 | "github.com/onsi/gomega/format" 6 | ) 7 | 8 | type BeEmptyMatcher struct { 9 | } 10 | 11 | func (matcher *BeEmptyMatcher) Match(actual interface{}) (success bool, err error) { 12 | length, ok := lengthOf(actual) 13 | if !ok { 14 | return false, fmt.Errorf("BeEmpty matcher expects a string/array/map/channel/slice. Got:\n%s", format.Object(actual, 1)) 15 | } 16 | 17 | return length == 0, nil 18 | } 19 | 20 | func (matcher *BeEmptyMatcher) FailureMessage(actual interface{}) (message string) { 21 | return format.Message(actual, "to be empty") 22 | } 23 | 24 | func (matcher *BeEmptyMatcher) NegatedFailureMessage(actual interface{}) (message string) { 25 | return format.Message(actual, "not to be empty") 26 | } 27 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/matchers/be_false_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "fmt" 5 | "github.com/onsi/gomega/format" 6 | ) 7 | 8 | type BeFalseMatcher struct { 9 | } 10 | 11 | func (matcher *BeFalseMatcher) Match(actual interface{}) (success bool, err error) { 12 | if !isBool(actual) { 13 | return false, fmt.Errorf("Expected a boolean. Got:\n%s", format.Object(actual, 1)) 14 | } 15 | 16 | return actual == false, nil 17 | } 18 | 19 | func (matcher *BeFalseMatcher) FailureMessage(actual interface{}) (message string) { 20 | return format.Message(actual, "to be false") 21 | } 22 | 23 | func (matcher *BeFalseMatcher) NegatedFailureMessage(actual interface{}) (message string) { 24 | return format.Message(actual, "not to be false") 25 | } 26 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/matchers/be_nil_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import "github.com/onsi/gomega/format" 4 | 5 | type BeNilMatcher struct { 6 | } 7 | 8 | func (matcher *BeNilMatcher) Match(actual interface{}) (success bool, err error) { 9 | return isNil(actual), nil 10 | } 11 | 12 | func (matcher *BeNilMatcher) FailureMessage(actual interface{}) (message string) { 13 | return format.Message(actual, "to be nil") 14 | } 15 | 16 | func (matcher *BeNilMatcher) NegatedFailureMessage(actual interface{}) (message string) { 17 | return format.Message(actual, "not to be nil") 18 | } 19 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/matchers/be_true_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "fmt" 5 | "github.com/onsi/gomega/format" 6 | ) 7 | 8 | type BeTrueMatcher struct { 9 | } 10 | 11 | func (matcher *BeTrueMatcher) Match(actual interface{}) (success bool, err error) { 12 | if !isBool(actual) { 13 | return false, fmt.Errorf("Expected a boolean. Got:\n%s", format.Object(actual, 1)) 14 | } 15 | 16 | return actual.(bool), nil 17 | } 18 | 19 | func (matcher *BeTrueMatcher) FailureMessage(actual interface{}) (message string) { 20 | return format.Message(actual, "to be true") 21 | } 22 | 23 | func (matcher *BeTrueMatcher) NegatedFailureMessage(actual interface{}) (message string) { 24 | return format.Message(actual, "not to be true") 25 | } 26 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/matchers/be_zero_matcher.go: -------------------------------------------------------------------------------- 1 | package matchers 2 | 3 | import ( 4 | "github.com/onsi/gomega/format" 5 | "reflect" 6 | ) 7 | 8 | type BeZeroMatcher struct { 9 | } 10 | 11 | func (matcher *BeZeroMatcher) Match(actual interface{}) (success bool, err error) { 12 | if actual == nil { 13 | return true, nil 14 | } 15 | zeroValue := reflect.Zero(reflect.TypeOf(actual)).Interface() 16 | 17 | return reflect.DeepEqual(zeroValue, actual), nil 18 | 19 | } 20 | 21 | func (matcher *BeZeroMatcher) FailureMessage(actual interface{}) (message string) { 22 | return format.Message(actual, "to be zero-valued") 23 | } 24 | 25 | func (matcher *BeZeroMatcher) NegatedFailureMessage(actual interface{}) (message string) { 26 | return format.Message(actual, "not to be zero-valued") 27 | } 28 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/matchers/support/goraph/node/node.go: -------------------------------------------------------------------------------- 1 | package node 2 | 3 | type Node struct { 4 | Id int 5 | } 6 | 7 | type NodeOrderedSet []Node 8 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/matchers/support/goraph/util/util.go: -------------------------------------------------------------------------------- 1 | package util 2 | 3 | import "math" 4 | 5 | func Odd(n int) bool { 6 | return math.Mod(float64(n), 2.0) == 1.0 7 | } 8 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/onsi/gomega/types/types.go: -------------------------------------------------------------------------------- 1 | package types 2 | 3 | type GomegaFailHandler func(message string, callerSkip ...int) 4 | 5 | //A simple *testing.T interface wrapper 6 | type GomegaTestingT interface { 7 | Errorf(format string, args ...interface{}) 8 | } 9 | 10 | //All Gomega matchers must implement the GomegaMatcher interface 11 | // 12 | //For details on writing custom matchers, check out: http://onsi.github.io/gomega/#adding_your_own_matchers 13 | type GomegaMatcher interface { 14 | Match(actual interface{}) (success bool, err error) 15 | FailureMessage(actual interface{}) (message string) 16 | NegatedFailureMessage(actual interface{}) (message string) 17 | } 18 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/pivotal-cf-experimental/service-config/config_reader.go: -------------------------------------------------------------------------------- 1 | package service_config 2 | 3 | import ( 4 | "errors" 5 | "fmt" 6 | 7 | "gopkg.in/yaml.v2" 8 | 9 | "github.com/imdario/mergo" 10 | ) 11 | 12 | type Reader struct { 13 | configBytes []byte 14 | } 15 | 16 | func NewReader(configBytes []byte) *Reader { 17 | return &Reader{ 18 | configBytes: configBytes, 19 | } 20 | } 21 | 22 | func (r Reader) Read(model interface{}) error { 23 | err := yaml.Unmarshal(r.configBytes, model) 24 | if err != nil { 25 | return errors.New(fmt.Sprintf("Unmarshaling config: %s", err.Error())) 26 | } 27 | 28 | return nil 29 | } 30 | 31 | func (r Reader) ReadWithDefaults(model interface{}, defaults interface{}) error { 32 | 33 | err := r.Read(model) 34 | if err != nil { 35 | return err 36 | } 37 | 38 | return mergo.Merge(model, defaults) 39 | } 40 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/tedsuo/ifrit/fake_runner/doc.go: -------------------------------------------------------------------------------- 1 | // fake_runner contains test fixtures. 2 | package fake_runner 3 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/tedsuo/ifrit/grouper/sliding_buffer.go: -------------------------------------------------------------------------------- 1 | package grouper 2 | 3 | import "container/list" 4 | 5 | type slidingBuffer struct { 6 | buffer *list.List 7 | capacity int 8 | } 9 | 10 | func newSlidingBuffer(capacity int) slidingBuffer { 11 | return slidingBuffer{list.New(), capacity} 12 | } 13 | 14 | func (b slidingBuffer) Append(item interface{}) { 15 | if b.capacity == 0 { 16 | return 17 | } 18 | 19 | b.buffer.PushBack(item) 20 | if b.buffer.Len() > b.capacity { 21 | b.buffer.Remove(b.buffer.Front()) 22 | } 23 | } 24 | 25 | func (b slidingBuffer) Range(callback func(item interface{})) { 26 | elem := b.buffer.Front() 27 | for elem != nil { 28 | callback(elem.Value) 29 | elem = elem.Next() 30 | } 31 | } 32 | 33 | func (b slidingBuffer) Length() int { 34 | return b.buffer.Len() 35 | } 36 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/tedsuo/ifrit/proxy/proxy.go: -------------------------------------------------------------------------------- 1 | package proxy 2 | 3 | import ( 4 | "os" 5 | 6 | "github.com/tedsuo/ifrit" 7 | ) 8 | 9 | func New(proxySignals <-chan os.Signal, runner ifrit.Runner) ifrit.Runner { 10 | return ifrit.RunFunc(func(signals <-chan os.Signal, ready chan<- struct{}) error { 11 | process := ifrit.Background(runner) 12 | <-process.Ready() 13 | close(ready) 14 | go forwardSignals(proxySignals, process) 15 | go forwardSignals(signals, process) 16 | return <-process.Wait() 17 | }) 18 | } 19 | 20 | func forwardSignals(signals <-chan os.Signal, process ifrit.Process) { 21 | exit := process.Wait() 22 | for { 23 | select { 24 | case sig := <-signals: 25 | process.Signal(sig) 26 | case <-exit: 27 | return 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/github.com/tedsuo/ifrit/restart/strategies.go: -------------------------------------------------------------------------------- 1 | package restart 2 | 3 | import "github.com/tedsuo/ifrit" 4 | 5 | /* 6 | OnError is a restart strategy for Safely Restartable Runners. It will restart the 7 | Runner only if it exits with a matching error. 8 | */ 9 | func OnError(runner ifrit.Runner, err error, errors ...error) ifrit.Runner { 10 | errors = append(errors, err) 11 | return &Restarter{ 12 | Runner: runner, 13 | Load: func(runner ifrit.Runner, err error) ifrit.Runner { 14 | for _, restartableError := range errors { 15 | if err == restartableError { 16 | return runner 17 | } 18 | } 19 | return nil 20 | }, 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/asm.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 | TEXT ·use(SB),NOSPLIT,$0 10 | RET 11 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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-64 17 | JMP syscall·Syscall(SB) 18 | 19 | TEXT ·Syscall6(SB),NOSPLIT,$0-88 20 | JMP syscall·Syscall6(SB) 21 | 22 | TEXT ·Syscall9(SB),NOSPLIT,$0-112 23 | JMP syscall·Syscall9(SB) 24 | 25 | TEXT ·RawSyscall(SB),NOSPLIT,$0-64 26 | JMP syscall·RawSyscall(SB) 27 | 28 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-88 29 | JMP syscall·RawSyscall6(SB) 30 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/asm_linux_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 calls for AMD64, Linux 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 ·RawSyscall(SB),NOSPLIT,$0-56 23 | JMP syscall·RawSyscall(SB) 24 | 25 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 26 | JMP syscall·RawSyscall6(SB) 27 | 28 | TEXT ·gettimeofday(SB),NOSPLIT,$0-16 29 | JMP syscall·gettimeofday(SB) 30 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/asm_linux_arm.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 calls for arm, Linux 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 ·RawSyscall(SB),NOSPLIT,$0-28 23 | B syscall·RawSyscall(SB) 24 | 25 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 26 | B syscall·RawSyscall6(SB) 27 | 28 | TEXT ·seek(SB),NOSPLIT,$0-32 29 | B syscall·seek(SB) 30 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/asm_linux_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 linux 6 | // +build arm64 7 | // +build !gccgo 8 | 9 | #include "textflag.h" 10 | 11 | // Just jump to package syscall's implementation for all these functions. 12 | // The runtime may know about them. 13 | 14 | TEXT ·Syscall(SB),NOSPLIT,$0-56 15 | B syscall·Syscall(SB) 16 | 17 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 18 | B syscall·Syscall6(SB) 19 | 20 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 21 | B syscall·RawSyscall(SB) 22 | 23 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 24 | B syscall·RawSyscall6(SB) 25 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/asm_linux_mips64x.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 linux 6 | // +build mips64 mips64le 7 | // +build !gccgo 8 | 9 | #include "textflag.h" 10 | 11 | // 12 | // System calls for mips64, 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 ·Syscall(SB),NOSPLIT,$0-56 19 | JMP syscall·Syscall(SB) 20 | 21 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 22 | JMP syscall·Syscall6(SB) 23 | 24 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 25 | JMP syscall·RawSyscall(SB) 26 | 27 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 28 | JMP syscall·RawSyscall6(SB) 29 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 ·Syscall(SB),NOSPLIT,$0-56 19 | BR syscall·Syscall(SB) 20 | 21 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 22 | BR syscall·Syscall6(SB) 23 | 24 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 25 | BR syscall·RawSyscall(SB) 26 | 27 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 28 | BR syscall·RawSyscall6(SB) 29 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/asm_linux_s390x.s: -------------------------------------------------------------------------------- 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 s390x 6 | // +build linux 7 | // +build !gccgo 8 | 9 | #include "textflag.h" 10 | 11 | // 12 | // System calls for s390x, 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 ·Syscall(SB),NOSPLIT,$0-56 19 | BR syscall·Syscall(SB) 20 | 21 | TEXT ·Syscall6(SB),NOSPLIT,$0-80 22 | BR syscall·Syscall6(SB) 23 | 24 | TEXT ·RawSyscall(SB),NOSPLIT,$0-56 25 | BR syscall·RawSyscall(SB) 26 | 27 | TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 28 | BR syscall·RawSyscall6(SB) 29 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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-64 14 | JMP syscall·sysvicall6(SB) 15 | 16 | TEXT ·rawSysvicall6(SB),NOSPLIT,$0-64 17 | JMP syscall·rawSysvicall6(SB) 18 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | ) 27 | 28 | // Socketoption Level 29 | const ( 30 | SOL_BLUETOOTH = 0x112 31 | SOL_HCI = 0x0 32 | SOL_L2CAP = 0x6 33 | SOL_RFCOMM = 0x12 34 | SOL_SCO = 0x11 35 | ) 36 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 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 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/env_unset.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build go1.4 6 | 7 | package unix 8 | 9 | import "syscall" 10 | 11 | func Unsetenv(key string) error { 12 | // This was added in Go 1.4. 13 | return syscall.Unsetenv(key) 14 | } 15 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/flock.go: -------------------------------------------------------------------------------- 1 | // +build linux darwin freebsd openbsd netbsd dragonfly 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 | // +build darwin dragonfly freebsd linux netbsd openbsd 8 | 9 | package unix 10 | 11 | import "unsafe" 12 | 13 | // fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux 14 | // systems by flock_linux_32bit.go to be SYS_FCNTL64. 15 | var fcntl64Syscall uintptr = SYS_FCNTL 16 | 17 | // FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. 18 | func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { 19 | _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) 20 | if errno == 0 { 21 | return nil 22 | } 23 | return errno 24 | } 25 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/flock_linux_32bit.go: -------------------------------------------------------------------------------- 1 | // +build linux,386 linux,arm 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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 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 | -------------------------------------------------------------------------------- /src/quota-enforcer/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 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 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/syscall_no_getwd.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 dragonfly freebsd netbsd openbsd 6 | 7 | package unix 8 | 9 | const ImplementsGetwd = false 10 | 11 | func Getwd() (string, error) { return "", ENOTSUP } 12 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/golang.org/x/sys/unix/zsysnum_solaris_amd64.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build amd64,solaris 6 | 7 | package unix 8 | 9 | // TODO(aram): remove these before Go 1.3. 10 | const ( 11 | SYS_EXECVE = 59 12 | SYS_FCNTL = 62 13 | ) 14 | -------------------------------------------------------------------------------- /src/quota-enforcer/vendor/gopkg.in/yaml.v2/LICENSE: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /submodule-log: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo -n "bump " 4 | for submodule in $(git diff --cached --submodule | grep '^Submodule' | awk '{print $2}'); do 5 | echo -n "$(basename $submodule) " 6 | done 7 | 8 | echo 9 | echo 10 | 11 | if [ "$#" != "0" ]; then 12 | for id in "$@"; do 13 | echo "[finishes #${id}]" 14 | done 15 | 16 | echo 17 | fi 18 | 19 | git submodule status | awk '{print $2}' | xargs git diff --cached --submodule 20 | --------------------------------------------------------------------------------