lobot 2.0.0pre → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +7 -10
- data/.gitmodules +1 -1
- data/.pairs +15 -0
- data/.rvmrc +1 -1
- data/.travis.yml +5 -0
- data/Gemfile +2 -2
- data/LICENSE.txt +1 -1
- data/README.md +67 -29
- data/Rakefile +11 -6
- data/Vagrantfile +8 -5
- data/bin/lobot +2 -4
- data/chef/cookbooks/pivotal_ci/attributes/jenkins.rb +1 -0
- data/chef/cookbooks/pivotal_ci/files/default/tests/minitest/default_test.rb +40 -2
- data/chef/cookbooks/pivotal_ci/recipes/id_rsa.rb +5 -0
- data/chef/cookbooks/pivotal_ci/recipes/jenkins_config.rb +5 -2
- data/chef/cookbooks/pivotal_ci/recipes/limited_travis_ci_environment.rb +4 -0
- data/chef/cookbooks/pivotal_ci/templates/default/jenkins-job-config.xml.erb +8 -6
- data/chef/cookbooks/pivotal_ci/test/kitchen/cookbooks/pivotal_ci_test/attributes/default.rb +0 -1
- data/chef/cookbooks/pivotal_ci/test/kitchen/cookbooks/pivotal_ci_test/recipes/bootstrap.rb +41 -0
- data/chef/cookbooks/pivotal_ci/test/kitchen/cookbooks/pivotal_ci_test/recipes/default.rb +1 -41
- data/chef/travis-cookbooks/ci_environment/apt/recipes/default.rb +8 -7
- data/chef/travis-cookbooks/ci_environment/bazaar/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/cassandra/attributes/default.rb +6 -3
- data/chef/travis-cookbooks/ci_environment/cassandra/recipes/datastax.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/cassandra/recipes/package.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/cassandra/recipes/tarball.rb +6 -2
- data/chef/travis-cookbooks/ci_environment/cassandra/templates/default/cassandra.init.erb +58 -131
- data/chef/travis-cookbooks/ci_environment/chromium/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/clang/attributes/tarball.rb +2 -7
- data/chef/travis-cookbooks/ci_environment/clang/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/clang/recipes/tarball.rb +2 -4
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ubuntu-12.04.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ubuntu1110_ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/couchdb/recipes/ubuntu1204_ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/doxygen/recipes/default.rb +24 -0
- data/chef/travis-cookbooks/ci_environment/elasticsearch/attributes/default.rb +4 -1
- data/chef/travis-cookbooks/ci_environment/elasticsearch/recipes/default.rb +8 -5
- data/chef/travis-cookbooks/ci_environment/emacs/recipes/nox.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/firefox/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/git/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/git/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/golang/attributes/default.rb +3 -3
- data/chef/travis-cookbooks/ci_environment/gradle/attributes/tarball.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/ghc_package.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/ghc_source.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/platform_package.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/platform_ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/platform_source.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/haskell/recipes/source.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/hbase/recipes/cdh4.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/java/attributes/default.rb +4 -2
- data/chef/travis-cookbooks/ci_environment/java/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/java/recipes/oraclejdk7.rb +6 -1
- data/chef/travis-cookbooks/ci_environment/kerl/attributes/source.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/kerl/files/default/erlang.cookie +1 -0
- data/chef/travis-cookbooks/ci_environment/kerl/recipes/source.rb +8 -0
- data/chef/travis-cookbooks/ci_environment/kestrel/recipes/tarball.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/leiningen/attributes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/leiningen/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/leiningen/recipes/lein1x.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/leiningen/recipes/lein2x.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libffi/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libgdbm/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libncurses/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libossp-uuid/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libreadline/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libssl/recipes/098.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libssl/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/libxml/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/lighttpd/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/maven3/recipes/default.rb +5 -2
- data/chef/travis-cookbooks/ci_environment/maven3/recipes/package.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/maven3/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/maven3/recipes/tarball.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/memcached/attributes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/memcached/attributes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/memcached/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/memcached/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/mercurial/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/mercurial/recipes/ppa.rb +36 -0
- data/chef/travis-cookbooks/ci_environment/mongodb/attributes/mongodb.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/mongodb/files/default/mongodb.sysvinit.sh +1 -1
- data/chef/travis-cookbooks/ci_environment/mongodb/recipes/apt.rb +5 -5
- data/chef/travis-cookbooks/ci_environment/mongodb/recipes/server.rb +5 -2
- data/chef/travis-cookbooks/ci_environment/mysql/attributes/default.rb +1 -3
- data/chef/travis-cookbooks/ci_environment/mysql/recipes/server_on_ramfs.rb +6 -1
- data/chef/travis-cookbooks/ci_environment/mysql/templates/default/my.cnf.erb +0 -2
- data/chef/travis-cookbooks/ci_environment/mysql/templates/default/ramfs/my.cnf.erb +0 -2
- data/chef/travis-cookbooks/ci_environment/neo4j-server/attributes/tarball.rb +13 -2
- data/chef/travis-cookbooks/ci_environment/neo4j-server/recipes/tarball.rb +26 -2
- data/chef/travis-cookbooks/ci_environment/networking_basic/recipes/default.rb +4 -1
- data/chef/travis-cookbooks/ci_environment/nodejs/attributes/multi.rb +3 -3
- data/chef/travis-cookbooks/ci_environment/nodejs/recipes/multi.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/openssh/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/perlbrew/attributes/multi.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/phantomjs/attributes/default.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/phantomjs/metadata.rb +3 -0
- data/chef/travis-cookbooks/ci_environment/phantomjs/recipes/default.rb +3 -1
- data/chef/travis-cookbooks/ci_environment/phantomjs/recipes/tarball.rb +3 -2
- data/chef/travis-cookbooks/ci_environment/php/attributes/default.rb +40 -2
- data/chef/travis-cookbooks/ci_environment/php/providers/pecl.rb +73 -0
- data/chef/travis-cookbooks/ci_environment/php/recipes/extensions.rb +25 -0
- data/chef/travis-cookbooks/ci_environment/php/recipes/multi.rb +5 -4
- data/chef/travis-cookbooks/ci_environment/php/resources/pecl.rb +10 -0
- data/chef/travis-cookbooks/ci_environment/phpbuild/attributes/default.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/phpbuild/files/default/after-install.d/phpunit.sh +58 -0
- data/chef/travis-cookbooks/ci_environment/phpbuild/files/default/definitions/5.2.17 +3 -1
- data/chef/travis-cookbooks/ci_environment/phpbuild/files/default/definitions/5.3.3 +2 -1
- data/chef/travis-cookbooks/ci_environment/phpbuild/providers/build.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/phpbuild/recipes/default.rb +8 -10
- data/chef/travis-cookbooks/ci_environment/phpbuild/templates/default/default_configure_options.erb +4 -0
- data/chef/travis-cookbooks/ci_environment/phpenv/attributes/default.rb +6 -0
- data/chef/travis-cookbooks/ci_environment/phpenv/recipes/default.rb +11 -7
- data/chef/travis-cookbooks/ci_environment/postgresql/recipes/server_on_ramfs.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/python/attributes/default.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/python/recipes/multi.rb +10 -3
- data/chef/travis-cookbooks/ci_environment/rabbitmq/attributes/default.rb +3 -0
- data/chef/travis-cookbooks/ci_environment/rabbitmq/recipes/default.rb +6 -2
- data/chef/travis-cookbooks/ci_environment/ragel/recipes/custom.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/ragel/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/redis/attributes/default.rb +3 -0
- data/chef/travis-cookbooks/ci_environment/redis/recipes/default.rb +6 -3
- data/chef/travis-cookbooks/ci_environment/redis/recipes/ppa.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/riak/attributes/default.rb +1 -0
- data/chef/travis-cookbooks/ci_environment/riak/attributes/package.rb +3 -3
- data/chef/travis-cookbooks/{messaging_broker/openssl/recipes/default.rb → ci_environment/riak/attributes/service.rb} +4 -3
- data/chef/travis-cookbooks/ci_environment/riak/recipes/config.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/riak/recipes/default.rb +12 -5
- data/chef/travis-cookbooks/ci_environment/rvm/attributes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/rvm/attributes/multi.rb +2 -0
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/global.gems +1 -1
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/jruby/global.gems +1 -1
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/ruby/2.0.0/global.gems +2 -0
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/ruby/head/global.gems +2 -0
- data/chef/travis-cookbooks/ci_environment/rvm/recipes/default.rb +23 -1
- data/chef/travis-cookbooks/ci_environment/rvm/recipes/multi.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/rvm/templates/default/bundler_config.yml.erb +2 -0
- data/chef/travis-cookbooks/ci_environment/sbt/CHANGELOG.md +20 -0
- data/chef/travis-cookbooks/ci_environment/sbt/LICENSE +201 -0
- data/chef/travis-cookbooks/ci_environment/sbt/README.md +78 -2
- data/chef/travis-cookbooks/ci_environment/sbt/attributes/default.rb +36 -10
- data/chef/travis-cookbooks/ci_environment/sbt/metadata.json +27 -17
- data/chef/travis-cookbooks/ci_environment/sbt/metadata.rb +13 -6
- data/chef/travis-cookbooks/ci_environment/sbt/recipes/default.rb +101 -51
- data/chef/travis-cookbooks/ci_environment/sbt/templates/default/jvmopts.erb +7 -0
- data/chef/travis-cookbooks/ci_environment/sbt/templates/default/sbtopts.erb +54 -0
- data/chef/travis-cookbooks/ci_environment/sphinx/attributes/default.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/sphinx/metadata.rb +4 -4
- data/chef/travis-cookbooks/ci_environment/sphinx/recipes/all.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/sphinx/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/{messaging_broker/build-essential/recipes/default.rb → ci_environment/sqlite/recipes/ppa.rb} +13 -24
- data/chef/travis-cookbooks/ci_environment/subversion/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/sweeper/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/attributes/default.rb +2 -0
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/recipes/ci_user.rb +2 -2
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/recipes/default.rb +1 -3
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/recipes/root.rb +5 -1
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/templates/default/ci_user/{dot_bashrc.sh → dot_bashrc.sh.erb} +0 -4
- data/chef/travis-cookbooks/ci_environment/unarchivers/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/xserver/metadata.rb +3 -0
- data/chef/travis-cookbooks/ci_environment/xserver/recipes/default.rb +1 -1
- data/chef/travis-cookbooks/ci_environment/zeromq/recipes/default.rb +6 -23
- data/chef/travis-cookbooks/ci_environment/zeromq/recipes/{20x.rb → ppa.rb} +14 -14
- data/chef/travis-cookbooks/ci_environment/zookeeper/recipes/cdh4.rb +1 -1
- data/chef/travis-cookbooks/worker_host/java/metadata.rb +1 -1
- data/chef/travis-cookbooks/worker_host/java/recipes/openjdk.rb +6 -0
- data/chef/travis-cookbooks/worker_host/jruby/attributes/default.rb +1 -1
- data/chef/travis-cookbooks/worker_host/jruby/metadata.rb +1 -1
- data/chef/travis-cookbooks/worker_host/jruby/recipes/default.rb +1 -0
- data/chef/travis-cookbooks/worker_host/monit/recipes/default.rb +21 -17
- data/chef/travis-cookbooks/worker_host/networking_basic/metadata.rb +1 -1
- data/chef/travis-cookbooks/worker_host/networking_basic/recipes/default.rb +0 -6
- data/chef/travis-cookbooks/worker_host/ntp/.gitignore +1 -0
- data/chef/travis-cookbooks/worker_host/ntp/.travis.yml +6 -0
- data/chef/travis-cookbooks/worker_host/ntp/CHANGELOG.md +35 -0
- data/chef/travis-cookbooks/worker_host/ntp/CONTRIBUTING +29 -0
- data/chef/travis-cookbooks/worker_host/ntp/LICENSE +201 -0
- data/chef/travis-cookbooks/worker_host/ntp/README.md +163 -0
- data/chef/travis-cookbooks/worker_host/ntp/Rakefile +19 -0
- data/chef/travis-cookbooks/worker_host/ntp/TESTING.md +213 -0
- data/chef/travis-cookbooks/worker_host/ntp/attributes/default.rb +54 -0
- data/chef/travis-cookbooks/{messaging_broker/rabbitmq/resources/vhost.rb → worker_host/ntp/attributes/ntpdate.rb} +6 -7
- data/chef/travis-cookbooks/worker_host/ntp/chefignore +19 -0
- data/chef/travis-cookbooks/worker_host/ntp/files/default/ntp.leapseconds +222 -0
- data/chef/travis-cookbooks/worker_host/ntp/metadata.json +117 -0
- data/chef/travis-cookbooks/worker_host/ntp/metadata.rb +45 -0
- data/chef/travis-cookbooks/worker_host/ntp/recipes/default.rb +50 -0
- data/chef/travis-cookbooks/worker_host/ntp/recipes/disable.rb +22 -0
- data/chef/travis-cookbooks/worker_host/ntp/recipes/ntpdate.rb +36 -0
- data/chef/travis-cookbooks/{messaging_broker/openssl/libraries/secure_password.rb → worker_host/ntp/recipes/undo.rb} +17 -18
- data/chef/travis-cookbooks/worker_host/ntp/templates/default/ntp.conf.erb +55 -0
- data/chef/travis-cookbooks/worker_host/ntp/templates/default/ntpdate.erb +14 -0
- data/chef/travis-cookbooks/worker_host/rvm/recipes/multi.rb +1 -1
- data/chef/travis-cookbooks/worker_host/travis_worker/attributes/default.rb +10 -3
- data/chef/travis-cookbooks/worker_host/travis_worker/files/default/signal_wrapper.rb +22 -0
- data/chef/travis-cookbooks/worker_host/travis_worker/metadata.rb +2 -2
- data/chef/travis-cookbooks/worker_host/travis_worker/recipes/bluebox.rb +97 -0
- data/chef/travis-cookbooks/worker_host/travis_worker/recipes/default.rb +25 -15
- data/chef/travis-cookbooks/worker_host/travis_worker/templates/default/sv-travis-worker-run.erb +1 -1
- data/chef/travis-cookbooks/worker_host/travis_worker/templates/default/worker-bluebox.yml.erb +21 -0
- data/chef/travis-cookbooks/worker_host/travis_worker/templates/default/worker.yml.erb +0 -4
- data/chef/travis-cookbooks/worker_host/travis_worker_collectd/metadata.rb +1 -0
- data/chef/travis-cookbooks/worker_host/travis_worker_collectd/recipes/bluebox.rb +15 -0
- data/chef/travis-cookbooks/worker_host/travis_worker_collectd/recipes/default.rb +1 -0
- data/chef/travis-cookbooks/worker_host/users/recipes/default.rb +5 -0
- data/cookbooks/.gitkeep +3 -0
- data/lib/lobot.rb +8 -4
- data/lib/lobot/amazon.rb +33 -19
- data/lib/lobot/cli.rb +70 -46
- data/lib/lobot/config.rb +151 -19
- data/lib/lobot/configuration_wizard.rb +117 -0
- data/lib/lobot/keychain.rb +36 -0
- data/lib/lobot/password.rb +13 -0
- data/lib/lobot/sobo.rb +57 -13
- data/lib/lobot/templates/default_rails_build_script.sh +13 -0
- data/lib/lobot/version.rb +2 -2
- data/lobot.gemspec +4 -5
- data/script/bootstrap_server.sh +1 -1
- data/script/ci_build.sh +13 -0
- data/spec/assets/test_cert.crt +18 -0
- data/spec/fixtures/ssh_keys/vagrant_test_key +27 -0
- data/spec/fixtures/ssh_keys/vagrant_test_key.pub +1 -0
- data/spec/lib/lobot/amazon_spec.rb +80 -39
- data/spec/lib/lobot/cli_spec.rb +223 -154
- data/spec/lib/lobot/config_spec.rb +207 -5
- data/spec/lib/lobot/configuration_wizard_spec.rb +347 -0
- data/spec/lib/lobot/keychain_spec.rb +33 -0
- data/spec/lib/lobot/password_spec.rb +15 -0
- data/spec/spec_helper.rb +19 -1
- data/templates/Gemfile-remote +4 -0
- metadata +83 -100
- data/chef/travis-cookbooks/ci_environment/rvm/files/default/gemsets/ruby/1.8.6/global.gems +0 -2
- data/chef/travis-cookbooks/ci_environment/travis_build_environment/files/default/root/dot_bashrc.sh +0 -86
- data/chef/travis-cookbooks/ci_environment/zeromq/attributes/default.rb +0 -7
- data/chef/travis-cookbooks/messaging_broker/build-essential/README.md +0 -24
- data/chef/travis-cookbooks/messaging_broker/build-essential/metadata.rb +0 -10
- data/chef/travis-cookbooks/messaging_broker/emacs/metadata.rb +0 -11
- data/chef/travis-cookbooks/messaging_broker/emacs/recipes/default.rb +0 -21
- data/chef/travis-cookbooks/messaging_broker/erlang/attributes/default.rb +0 -1
- data/chef/travis-cookbooks/messaging_broker/erlang/metadata.rb +0 -11
- data/chef/travis-cookbooks/messaging_broker/erlang/recipes/default.rb +0 -27
- data/chef/travis-cookbooks/messaging_broker/git/README.rdoc +0 -37
- data/chef/travis-cookbooks/messaging_broker/git/metadata.rb +0 -16
- data/chef/travis-cookbooks/messaging_broker/git/recipes/default.rb +0 -24
- data/chef/travis-cookbooks/messaging_broker/git/recipes/server.rb +0 -34
- data/chef/travis-cookbooks/messaging_broker/git/templates/default/sv-git-daemon-log-run.erb +0 -2
- data/chef/travis-cookbooks/messaging_broker/git/templates/default/sv-git-daemon-run.erb +0 -3
- data/chef/travis-cookbooks/messaging_broker/haproxy/README.md +0 -79
- data/chef/travis-cookbooks/messaging_broker/haproxy/attributes/default.rb +0 -22
- data/chef/travis-cookbooks/messaging_broker/haproxy/metadata.rb +0 -13
- data/chef/travis-cookbooks/messaging_broker/haproxy/recipes/app_lb.rb +0 -50
- data/chef/travis-cookbooks/messaging_broker/haproxy/recipes/default.rb +0 -42
- data/chef/travis-cookbooks/messaging_broker/haproxy/templates/default/haproxy-app_lb.cfg.erb +0 -34
- data/chef/travis-cookbooks/messaging_broker/haproxy/templates/default/haproxy-default.erb +0 -4
- data/chef/travis-cookbooks/messaging_broker/haproxy/templates/default/haproxy.cfg.erb +0 -27
- data/chef/travis-cookbooks/messaging_broker/iptables/definitions/iptables_rule.rb +0 -35
- data/chef/travis-cookbooks/messaging_broker/iptables/files/default/rebuild-iptables +0 -284
- data/chef/travis-cookbooks/messaging_broker/iptables/metadata.rb +0 -10
- data/chef/travis-cookbooks/messaging_broker/iptables/recipes/default.rb +0 -50
- data/chef/travis-cookbooks/messaging_broker/iptables/templates/default/all_established.erb +0 -2
- data/chef/travis-cookbooks/messaging_broker/iptables/templates/default/all_icmp.erb +0 -2
- data/chef/travis-cookbooks/messaging_broker/iptables/templates/default/iptables_load.erb +0 -3
- data/chef/travis-cookbooks/messaging_broker/openssl/README.md +0 -37
- data/chef/travis-cookbooks/messaging_broker/openssl/metadata.rb +0 -8
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/README.md +0 -86
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/attributes/default.rb +0 -10
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/metadata.rb +0 -63
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/providers/user.rb +0 -66
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/providers/vhost.rb +0 -34
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/recipes/cluster.rb +0 -35
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/recipes/default.rb +0 -51
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/resources/user.rb +0 -25
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/doterlang.cookie.erb +0 -1
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/rabbitmq-env.conf.erb +0 -10
- data/chef/travis-cookbooks/messaging_broker/rabbitmq/templates/default/rabbitmq_cluster.config.erb +0 -5
- data/ci_build.sh +0 -20
- data/docs/ci_yml.md +0 -39
- data/features/ci.feature +0 -29
- data/features/config/secrets.yml.example +0 -4
- data/features/step_definitions/ci_steps.rb +0 -137
- data/features/support/env.rb +0 -12
- data/lib/generators/lobot/USAGE +0 -15
- data/lib/generators/lobot/config_generator.rb +0 -141
- data/lib/generators/lobot/install_generator.rb +0 -25
- data/lib/generators/lobot/templates/Capfile +0 -6
- data/lib/generators/lobot/templates/ci.yml +0 -22
- data/lib/generators/lobot/templates/ci_build.sh +0 -22
- data/lib/generators/lobot/templates/deploy-ci.rb +0 -7
- data/lib/generators/lobot/templates/soloistrc +0 -23
- data/lib/lobot/jenkins.rb +0 -17
- data/lib/lobot/railtie.rb +0 -20
- data/lib/lobot/recipes/ci.rb +0 -78
- data/lib/lobot/tasks/ci.rake +0 -93
- data/spec/lib/lobot/jenkins_spec.rb +0 -14
@@ -0,0 +1,213 @@
|
|
1
|
+
## Cookbook testing
|
2
|
+
|
3
|
+
Reference documentation for testing cookbooks for correctness
|
4
|
+
in a lightweight manner.
|
5
|
+
|
6
|
+
## Purpose
|
7
|
+
|
8
|
+
We set out at the Chefconf 2012 Hackday to test our cookbooks for correctness
|
9
|
+
without doing a full convergence run. Some of our community cookbooks such
|
10
|
+
as `gitlab` or `ruby_build` may take up to 30 minutes to fully converge.
|
11
|
+
So a quick sanity check was needed to test the inputs for correctness.
|
12
|
+
|
13
|
+
A major problem with developing cross-platform cookbooks is this ugly
|
14
|
+
stair-step pattern of case switches on platform and platform_version
|
15
|
+
attributes. This leads to hard to read recipe code, and additional
|
16
|
+
maintenance overhead in correcting platform cases on a constant basis.
|
17
|
+
Recipe tend to take on quirks for edge cases, as conditionals are stacked
|
18
|
+
in inconsistest and unpredictable ways.
|
19
|
+
|
20
|
+
Fletcher had done some previous lint checking on some of his cookbooks
|
21
|
+
with foodcritic and [Travis CI](http://travis-ci.org). We wished to
|
22
|
+
incorporate attribute sanity checking. Both our testing cases are added
|
23
|
+
as a `rake` task which can be run from a development workstation
|
24
|
+
or CI platform such as Travis or Jenkins. The biggest advantage we found
|
25
|
+
of this testing method was being able to run quick attribute tests in
|
26
|
+
**one-hundredth of a second**. The biggest drawback in spec tests are
|
27
|
+
having to write tests which are very explicit.
|
28
|
+
|
29
|
+
The attribute tests uses minitest to mock a node and then check the attributes
|
30
|
+
for any platform edge cases as shipped with the cookbook. Since there is
|
31
|
+
no way for a cookbook developer to know how attributes will be overridden
|
32
|
+
by the end-user, the only thing you might reasonably test is what ships
|
33
|
+
with the cookbook.
|
34
|
+
|
35
|
+
We stopped before testing the Resource Collection, or integrating
|
36
|
+
`minitest-handler` post-convergence testing. A good `minitest-handler`
|
37
|
+
case for this cookbook would be to ensure a node does not set itself
|
38
|
+
as an upstream ntp `server` or `peer` of itself. As different testing
|
39
|
+
methods for Chef emerge and mature, this proof-of-concept should be
|
40
|
+
revisited to serve as a reference case.
|
41
|
+
|
42
|
+
## Minitest Spec Testing HOWTO
|
43
|
+
|
44
|
+
### 1. Identification
|
45
|
+
|
46
|
+
Identify your default attribute inputs, and all edge cases.
|
47
|
+
|
48
|
+
Refactor the code for readability, if necessary to identify all such inputs.
|
49
|
+
|
50
|
+
### 2. Development testing files
|
51
|
+
|
52
|
+
#### 2.1 Test and Support file
|
53
|
+
|
54
|
+
Foodcritic may identify testing directories as cookbooks if attributes, or recipes, subdirectories are used.
|
55
|
+
Otherwise the testing directory structure does not matter much. Following Ruby conventions, you should probably use `test` or `spec`.
|
56
|
+
|
57
|
+
Create a test directory structure.
|
58
|
+
|
59
|
+
```sh
|
60
|
+
cd chef-repo/cookbooks/<cookbook dir>
|
61
|
+
mkdir -p test/support
|
62
|
+
mkdir -p test/<cookbook name>
|
63
|
+
```
|
64
|
+
|
65
|
+
Populate your Gemfile for the rake task, and optionally Travis.
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
# test/support/Gemfile
|
69
|
+
source "https://rubygems.org"
|
70
|
+
gem "rake"
|
71
|
+
gem "minitest"
|
72
|
+
gem "chef", ">= 10.12.0"
|
73
|
+
gem "foodcritic"
|
74
|
+
```
|
75
|
+
|
76
|
+
Create a spec_helper stub to require testing Rubies.
|
77
|
+
|
78
|
+
```ruby
|
79
|
+
# test/support/spec_helper.rb
|
80
|
+
gem 'minitest'
|
81
|
+
require 'minitest/autorun'
|
82
|
+
```
|
83
|
+
|
84
|
+
Create a <name of test>_spec.rb test file. Following is a partial NTP attributes example.
|
85
|
+
|
86
|
+
```ruby
|
87
|
+
# test/ntp/attributes_spec.rb
|
88
|
+
require File.join(File.dirname(__FILE__), %w{.. support spec_helper})
|
89
|
+
require 'chef/node'
|
90
|
+
require 'chef/platform'
|
91
|
+
|
92
|
+
describe 'Ntp::Attributes::Default' do
|
93
|
+
let(:attr_ns) { 'ntp' }
|
94
|
+
|
95
|
+
before do
|
96
|
+
@node = Chef::Node.new
|
97
|
+
@node.consume_external_attrs(Mash.new(ohai_data), {})
|
98
|
+
@node.from_file(File.join(File.dirname(__FILE__), %w{.. .. attributes default.rb}))
|
99
|
+
end
|
100
|
+
|
101
|
+
# Test unknown edge case
|
102
|
+
describe "for unknown platform" do
|
103
|
+
let(:ohai_data) do
|
104
|
+
{ :platform => "unknown", :platform_version => '3.14' }
|
105
|
+
end
|
106
|
+
|
107
|
+
it "sets a package list" do
|
108
|
+
@node[attr_ns]['packages'].must_equal %w{ ntp ntpdate }
|
109
|
+
end
|
110
|
+
end #end unknown platform tests
|
111
|
+
|
112
|
+
# Test CentOS 6 edge case
|
113
|
+
describe "for Centos 6 platform" do
|
114
|
+
let(:ohai_data) do
|
115
|
+
{ :platform => "centos", :platform_version => '6.2' }
|
116
|
+
end
|
117
|
+
|
118
|
+
it "sets the service name to ntpd" do
|
119
|
+
@node[attr_ns]['service'].must_equal "ntpd"
|
120
|
+
end
|
121
|
+
end #end CentOS 6 tests
|
122
|
+
end
|
123
|
+
```
|
124
|
+
|
125
|
+
#### 2.2 Set up Rake tasks
|
126
|
+
|
127
|
+
Once you have one or two test cases in your *_spec.rb files, the next step is creating a Rakefile for running the tests.
|
128
|
+
We will set up a task for the minitest spec tests and a foodcritic run for this example. The Rakefile should
|
129
|
+
be placed at the top-level of the cookbook you wish to test.
|
130
|
+
|
131
|
+
```ruby
|
132
|
+
#!/usr/bin/env rake
|
133
|
+
require 'rake/testtask'
|
134
|
+
|
135
|
+
Rake::TestTask.new do |t|
|
136
|
+
t.libs.push "lib"
|
137
|
+
t.test_files = FileList['test/**/*_spec.rb']
|
138
|
+
t.verbose = true
|
139
|
+
end
|
140
|
+
|
141
|
+
desc "Runs foodcritic linter"
|
142
|
+
task :foodcritic do
|
143
|
+
if Gem::Version.new("1.9.2") <= Gem::Version.new(RUBY_VERSION.dup)
|
144
|
+
sh "foodcritic --epic-fail any ."
|
145
|
+
else
|
146
|
+
puts "WARN: foodcritic run is skipped as Ruby #{RUBY_VERSION} is < 1.9.2."
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
task :default => [ 'test', 'foodcritic' ]
|
151
|
+
```
|
152
|
+
|
153
|
+
Now you should be able to run `rake` within your cookbook directory you wish to test. If you are on a bash shell, you can run `echo $?` and see if your rake task returned a `0` which means everything passed.
|
154
|
+
|
155
|
+
### 3. Exclude your test directories from knife upload.
|
156
|
+
|
157
|
+
It may be a good idea to exclude your development files from getting uploaded to the Chef server, or Opscode platform. In this case you should populate a chefignore file in the top-level of the cookbook directory you wish to test.
|
158
|
+
|
159
|
+
```ruby
|
160
|
+
# Put files/directories that should be ignored in this file.
|
161
|
+
# Lines that start with '# ' are comments.
|
162
|
+
|
163
|
+
# gitignore
|
164
|
+
\.gitignore
|
165
|
+
|
166
|
+
# tests
|
167
|
+
*/test/*
|
168
|
+
\.travis.yml
|
169
|
+
Rakefile
|
170
|
+
```
|
171
|
+
|
172
|
+
#### 4. Travis CI integration
|
173
|
+
|
174
|
+
Once you have completed the previous steps, Travis CI integration is actually quite simple.
|
175
|
+
|
176
|
+
First, you need to click on the link that says `Sign in with Github` and authorize the Travis CI application to read your projects from Github. Next, you need to authorize Travis to build one, or all, of your projects.
|
177
|
+
|
178
|
+
Finally, you need to set up a .travis.yml file, here is an example Travis build file. Drop this file in the top-level directory of the cookbook you wish to test.
|
179
|
+
|
180
|
+
```ruby
|
181
|
+
language: ruby
|
182
|
+
gemfile:
|
183
|
+
- test/support/Gemfile
|
184
|
+
rvm:
|
185
|
+
- 1.9.3
|
186
|
+
script: BUNDLE_GEMFILE=test/support/Gemfile bundle exec rake test foodcritic
|
187
|
+
```
|
188
|
+
|
189
|
+
If you want a shiny red/green, badge of shame/honor in your README, then add this little snippet to your Markdown. Substituting your github username, and project name in the link.
|
190
|
+
|
191
|
+
[![Build Status](https://secure.travis-ci.org/<github username>/<project name>.png?branch=master)](http://travis-ci.org/<github username>/<project name>)
|
192
|
+
|
193
|
+
When you push your code up to github, you should receive an e-mail from Travis every time your tests fail.
|
194
|
+
|
195
|
+
## License and Author
|
196
|
+
|
197
|
+
Author:: Eric G. Wolfe (<wolfe21@marshall.edu>)
|
198
|
+
Author:: Fletcher Nichol (<fletcher@nichol.ca>)
|
199
|
+
|
200
|
+
Copyright 2012, Eric G. Wolfe
|
201
|
+
Copyright 2012, Fletcher Nichol
|
202
|
+
|
203
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
204
|
+
you may not use this file except in compliance with the License.
|
205
|
+
You may obtain a copy of the License at
|
206
|
+
|
207
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
208
|
+
|
209
|
+
Unless required by applicable law or agreed to in writing, software
|
210
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
211
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
212
|
+
See the License for the specific language governing permissions and
|
213
|
+
limitations under the License.
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#
|
2
|
+
# Cookbook Name:: ntp
|
3
|
+
# Attributes:: default
|
4
|
+
#
|
5
|
+
# Author:: Joshua Timberman (<joshua@opscode.com>)
|
6
|
+
#
|
7
|
+
# Copyright 2009-2011, Opscode, Inc.
|
8
|
+
#
|
9
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
10
|
+
# you may not use this file except in compliance with the License.
|
11
|
+
# You may obtain a copy of the License at
|
12
|
+
#
|
13
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
14
|
+
#
|
15
|
+
# Unless required by applicable law or agreed to in writing, software
|
16
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
17
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
18
|
+
# See the License for the specific language governing permissions and
|
19
|
+
# limitations under the License.
|
20
|
+
#
|
21
|
+
|
22
|
+
# default attributes for all platforms
|
23
|
+
default['ntp']['servers'] = %w{ 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org 3.pool.ntp.org }
|
24
|
+
default['ntp']['peers'] = Array.new
|
25
|
+
default['ntp']['restrictions'] = Array.new
|
26
|
+
|
27
|
+
default['ntp']['packages'] = %w{ ntp ntpdate }
|
28
|
+
default['ntp']['service'] = "ntp"
|
29
|
+
default['ntp']['varlibdir'] = "/var/lib/ntp"
|
30
|
+
default['ntp']['driftfile'] = "#{node['ntp']['varlibdir']}/ntp.drift"
|
31
|
+
default['ntp']['statsdir'] = "/var/log/ntpstats/"
|
32
|
+
default['ntp']['conf_owner'] = "root"
|
33
|
+
default['ntp']['conf_group'] = "root"
|
34
|
+
default['ntp']['var_owner'] = "ntp"
|
35
|
+
default['ntp']['var_group'] = "ntp"
|
36
|
+
default['ntp']['leapfile'] = "/etc/ntp.leapseconds"
|
37
|
+
|
38
|
+
# overrides on a platform-by-platform basis
|
39
|
+
case platform
|
40
|
+
when "redhat","centos","fedora","scientific","amazon","oracle"
|
41
|
+
default['ntp']['service'] = "ntpd"
|
42
|
+
default['ntp']['packages'] = %w{ ntp }
|
43
|
+
if node['platform_version'].to_i >= 6
|
44
|
+
default['ntp']['packages'] = %w{ ntp ntpdate }
|
45
|
+
end
|
46
|
+
when "freebsd"
|
47
|
+
default['ntp']['service'] = "ntpd"
|
48
|
+
default['ntp']['varlibdir'] = "/var/db"
|
49
|
+
default['ntp']['driftfile'] = "#{node['ntp']['varlibdir']}/ntpd.drift"
|
50
|
+
default['ntp']['statsdir'] = "#{node['ntp']['varlibdir']}/ntpstats"
|
51
|
+
default['ntp']['packages'] = %w{ ntp }
|
52
|
+
default['ntp']['conf_group'] = "wheel"
|
53
|
+
default['ntp']['var_group'] = "wheel"
|
54
|
+
end
|
@@ -1,8 +1,10 @@
|
|
1
1
|
#
|
2
|
-
# Cookbook Name::
|
3
|
-
#
|
2
|
+
# Cookbook Name:: ntp
|
3
|
+
# Attributes:: default
|
4
4
|
#
|
5
|
-
#
|
5
|
+
# Author:: Joshua Timberman (<joshua@opscode.com>)
|
6
|
+
#
|
7
|
+
# Copyright 2009-2011, Opscode, Inc.
|
6
8
|
#
|
7
9
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
8
10
|
# you may not use this file except in compliance with the License.
|
@@ -16,7 +18,4 @@
|
|
16
18
|
# See the License for the specific language governing permissions and
|
17
19
|
# limitations under the License.
|
18
20
|
#
|
19
|
-
|
20
|
-
actions :add, :delete
|
21
|
-
|
22
|
-
attribute :vhost, :kind_of => String, :name_attribute => true
|
21
|
+
default['ntp']['ntpdate']['disable'] = false
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# Put files/directories that should be ignored in this file.
|
2
|
+
# Lines that start with '# ' are comments.
|
3
|
+
|
4
|
+
# gitignore
|
5
|
+
\.gitignore
|
6
|
+
|
7
|
+
# emacs
|
8
|
+
*~
|
9
|
+
|
10
|
+
# vim
|
11
|
+
*.sw[a-z]
|
12
|
+
|
13
|
+
# subversion
|
14
|
+
*/.svn/*
|
15
|
+
|
16
|
+
# tests
|
17
|
+
*/test/*
|
18
|
+
\.travis.yml
|
19
|
+
Rakefile
|
@@ -0,0 +1,222 @@
|
|
1
|
+
#
|
2
|
+
# In the following text, the symbol '#' introduces
|
3
|
+
# a comment, which continues from that symbol until
|
4
|
+
# the end of the line. A plain comment line has a
|
5
|
+
# whitespace character following the comment indicator.
|
6
|
+
# There are also special comment lines defined below.
|
7
|
+
# A special comment will always have a non-whitespace
|
8
|
+
# character in column 2.
|
9
|
+
#
|
10
|
+
# A blank line should be ignored.
|
11
|
+
#
|
12
|
+
# The following table shows the corrections that must
|
13
|
+
# be applied to compute International Atomic Time (TAI)
|
14
|
+
# from the Coordinated Universal Time (UTC) values that
|
15
|
+
# are transmitted by almost all time services.
|
16
|
+
#
|
17
|
+
# The first column shows an epoch as a number of seconds
|
18
|
+
# since 1900.0 and the second column shows the number of
|
19
|
+
# seconds that must be added to UTC to compute TAI for
|
20
|
+
# any timestamp at or after that epoch. The value on
|
21
|
+
# each line is valid from the indicated initial instant
|
22
|
+
# until the epoch given on the next one or indefinitely
|
23
|
+
# into the future if there is no next line.
|
24
|
+
# (The comment on each line shows the representation of
|
25
|
+
# the corresponding initial epoch in the usual
|
26
|
+
# day-month-year format. The epoch always begins at
|
27
|
+
# 00:00:00 UTC on the indicated day. See Note 5 below.)
|
28
|
+
#
|
29
|
+
# Important notes:
|
30
|
+
#
|
31
|
+
# 1. Coordinated Universal Time (UTC) is often referred to
|
32
|
+
# as Greenwich Mean Time (GMT). The GMT time scale is no
|
33
|
+
# longer used, and the use of GMT to designate UTC is
|
34
|
+
# discouraged.
|
35
|
+
#
|
36
|
+
# 2. The UTC time scale is realized by many national
|
37
|
+
# laboratories and timing centers. Each laboratory
|
38
|
+
# identifies its realization with its name: Thus
|
39
|
+
# UTC(NIST), UTC(USNO), etc. The differences among
|
40
|
+
# these different realizations are typically on the
|
41
|
+
# order of a few nanoseconds (i.e., 0.000 000 00x s)
|
42
|
+
# and can be ignored for many purposes. These differences
|
43
|
+
# are tabulated in Circular T, which is published monthly
|
44
|
+
# by the International Bureau of Weights and Measures
|
45
|
+
# (BIPM). See www.bipm.fr for more information.
|
46
|
+
#
|
47
|
+
# 3. The current defintion of the relationship between UTC
|
48
|
+
# and TAI dates from 1 January 1972. A number of different
|
49
|
+
# time scales were in use before than epoch, and it can be
|
50
|
+
# quite difficult to compute precise timestamps and time
|
51
|
+
# intervals in those "prehistoric" days. For more information,
|
52
|
+
# consult:
|
53
|
+
#
|
54
|
+
# The Explanatory Supplement to the Astronomical
|
55
|
+
# Ephemeris.
|
56
|
+
# or
|
57
|
+
# Terry Quinn, "The BIPM and the Accurate Measurement
|
58
|
+
# of Time," Proc. of the IEEE, Vol. 79, pp. 894-905,
|
59
|
+
# July, 1991.
|
60
|
+
#
|
61
|
+
# 4. The insertion of leap seconds into UTC is currently the
|
62
|
+
# responsibility of the International Earth Rotation Service,
|
63
|
+
# which is located at the Paris Observatory:
|
64
|
+
#
|
65
|
+
# Central Bureau of IERS
|
66
|
+
# 61, Avenue de l'Observatoire
|
67
|
+
# 75014 Paris, France.
|
68
|
+
#
|
69
|
+
# Leap seconds are announced by the IERS in its Bulletin C
|
70
|
+
#
|
71
|
+
# See hpiers.obspm.fr or www.iers.org for more details.
|
72
|
+
#
|
73
|
+
# All national laboratories and timing centers use the
|
74
|
+
# data from the BIPM and the IERS to construct their
|
75
|
+
# local realizations of UTC.
|
76
|
+
#
|
77
|
+
# Although the definition also includes the possibility
|
78
|
+
# of dropping seconds ("negative" leap seconds), this has
|
79
|
+
# never been done and is unlikely to be necessary in the
|
80
|
+
# foreseeable future.
|
81
|
+
#
|
82
|
+
# 5. If your system keeps time as the number of seconds since
|
83
|
+
# some epoch (e.g., NTP timestamps), then the algorithm for
|
84
|
+
# assigning a UTC time stamp to an event that happens during a positive
|
85
|
+
# leap second is not well defined. The official name of that leap
|
86
|
+
# second is 23:59:60, but there is no way of representing that time
|
87
|
+
# in these systems.
|
88
|
+
# Many systems of this type effectively stop the system clock for
|
89
|
+
# one second during the leap second and use a time that is equivalent
|
90
|
+
# to 23:59:59 UTC twice. For these systems, the corresponding TAI
|
91
|
+
# timestamp would be obtained by advancing to the next entry in the
|
92
|
+
# following table when the time equivalent to 23:59:59 UTC
|
93
|
+
# is used for the second time. Thus the leap second which
|
94
|
+
# occurred on 30 June 1972 at 23:59:59 UTC would have TAI
|
95
|
+
# timestamps computed as follows:
|
96
|
+
#
|
97
|
+
# ...
|
98
|
+
# 30 June 1972 23:59:59 (2287785599, first time): TAI= UTC + 10 seconds
|
99
|
+
# 30 June 1972 23:59:60 (2287785599,second time): TAI= UTC + 11 seconds
|
100
|
+
# 1 July 1972 00:00:00 (2287785600) TAI= UTC + 11 seconds
|
101
|
+
# ...
|
102
|
+
#
|
103
|
+
# If your system realizes the leap second by repeating 00:00:00 UTC twice
|
104
|
+
# (this is possible but not usual), then the advance to the next entry
|
105
|
+
# in the table must occur the second time that a time equivlent to
|
106
|
+
# 00:00:00 UTC is used. Thus, using the same example as above:
|
107
|
+
#
|
108
|
+
# ...
|
109
|
+
# 30 June 1972 23:59:59 (2287785599): TAI= UTC + 10 seconds
|
110
|
+
# 30 June 1972 23:59:60 (2287785600, first time): TAI= UTC + 10 seconds
|
111
|
+
# 1 July 1972 00:00:00 (2287785600,second time): TAI= UTC + 11 seconds
|
112
|
+
# ...
|
113
|
+
#
|
114
|
+
# in both cases the use of timestamps based on TAI produces a smooth
|
115
|
+
# time scale with no discontinuity in the time interval.
|
116
|
+
#
|
117
|
+
# This complexity would not be needed for negative leap seconds (if they
|
118
|
+
# are ever used). The UTC time would skip 23:59:59 and advance from
|
119
|
+
# 23:59:58 to 00:00:00 in that case. The TAI offset would decrease by
|
120
|
+
# 1 second at the same instant. This is a much easier situation to deal
|
121
|
+
# with, since the difficulty of unambiguously representing the epoch
|
122
|
+
# during the leap second does not arise.
|
123
|
+
#
|
124
|
+
# Questions or comments to:
|
125
|
+
# Rich Schmidt
|
126
|
+
# Time Service Department
|
127
|
+
# US Naval Observatory
|
128
|
+
# Washington, DC
|
129
|
+
# rich.schmidt@usno.navy.mil
|
130
|
+
#
|
131
|
+
# Last Update of leap second values: 10 Jan 2012
|
132
|
+
#
|
133
|
+
# The following line shows this last update date in NTP timestamp
|
134
|
+
# format. This is the date on which the most recent change to
|
135
|
+
# the leap second data was added to the file. This line can
|
136
|
+
# be identified by the unique pair of characters in the first two
|
137
|
+
# columns as shown below.
|
138
|
+
#
|
139
|
+
#$ 3535142400
|
140
|
+
#
|
141
|
+
# The data in this file will be updated periodically as new leap
|
142
|
+
# seconds are announced. In addition to being entered on the line
|
143
|
+
# above, the update time (in NTP format) will be added to the basic
|
144
|
+
# file name leap-seconds to form the name leap-seconds.<NTP TIME>.
|
145
|
+
# In addition, the generic name leap-seconds.list will always point to
|
146
|
+
# the most recent version of the file.
|
147
|
+
#
|
148
|
+
# This update procedure will be performed only when a new leap second
|
149
|
+
# is announced.
|
150
|
+
#
|
151
|
+
# The following entry specifies the expiration date of the data
|
152
|
+
# in this file in units of seconds since 1900.0. This expiration date
|
153
|
+
# will be changed at least twice per year whether or not a new leap
|
154
|
+
# second is announced. These semi-annual changes will be made no
|
155
|
+
# later than 1 June and 1 December of each year to indicate what
|
156
|
+
# action (if any) is to be taken on 30 June and 31 December,
|
157
|
+
# respectively. (These are the customary effective dates for new
|
158
|
+
# leap seconds.) This expiration date will be identified by a
|
159
|
+
# unique pair of characters in columns 1 and 2 as shown below.
|
160
|
+
# In the unlikely event that a leap second is announced with an
|
161
|
+
# effective date other than 30 June or 31 December, then this
|
162
|
+
# file will be edited to include that leap second as soon as it is
|
163
|
+
# announced or at least one month before the effective date
|
164
|
+
# (whichever is later).
|
165
|
+
# If an announcement by the IERS specifies that no leap second is
|
166
|
+
# scheduled, then only the expiration date of the file will
|
167
|
+
# be advanced to show that the information in the file is still
|
168
|
+
# current -- the update time stamp, the data and the name of the file
|
169
|
+
# will not change.
|
170
|
+
#
|
171
|
+
# Updated through IERS Bulletin C43
|
172
|
+
# File expires on: 28 Dec 2012
|
173
|
+
#
|
174
|
+
#@ 3565641600
|
175
|
+
#
|
176
|
+
2272060800 10 # 1 Jan 1972
|
177
|
+
2287785600 11 # 1 Jul 1972
|
178
|
+
2303683200 12 # 1 Jan 1973
|
179
|
+
2335219200 13 # 1 Jan 1974
|
180
|
+
2366755200 14 # 1 Jan 1975
|
181
|
+
2398291200 15 # 1 Jan 1976
|
182
|
+
2429913600 16 # 1 Jan 1977
|
183
|
+
2461449600 17 # 1 Jan 1978
|
184
|
+
2492985600 18 # 1 Jan 1979
|
185
|
+
2524521600 19 # 1 Jan 1980
|
186
|
+
2571782400 20 # 1 Jul 1981
|
187
|
+
2603318400 21 # 1 Jul 1982
|
188
|
+
2634854400 22 # 1 Jul 1983
|
189
|
+
2698012800 23 # 1 Jul 1985
|
190
|
+
2776982400 24 # 1 Jan 1988
|
191
|
+
2840140800 25 # 1 Jan 1990
|
192
|
+
2871676800 26 # 1 Jan 1991
|
193
|
+
2918937600 27 # 1 Jul 1992
|
194
|
+
2950473600 28 # 1 Jul 1993
|
195
|
+
2982009600 29 # 1 Jul 1994
|
196
|
+
3029443200 30 # 1 Jan 1996
|
197
|
+
3076704000 31 # 1 Jul 1997
|
198
|
+
3124137600 32 # 1 Jan 1999
|
199
|
+
3345062400 33 # 1 Jan 2006
|
200
|
+
3439756800 34 # 1 Jan 2009
|
201
|
+
3550089600 35 # 1 Jul 2012
|
202
|
+
3565987200 36 # 1 Jan 2013
|
203
|
+
3581625600 37 # 1 Jul 2013
|
204
|
+
3597523200 38 # 1 Jan 2014
|
205
|
+
3613161600 39 # 1 Jul 2014
|
206
|
+
3629059200 40 # 1 Jan 2015
|
207
|
+
#
|
208
|
+
# the following special comment contains the
|
209
|
+
# hash value of the data in this file computed
|
210
|
+
# use the secure hash algorithm as specified
|
211
|
+
# by FIPS 180-1. See the files in ~/sha for
|
212
|
+
# the details of how this hash value is
|
213
|
+
# computed. Note that the hash computation
|
214
|
+
# ignores comments and whitespace characters
|
215
|
+
# in data lines. It includes the NTP values
|
216
|
+
# of both the last modification time and the
|
217
|
+
# expiration time of the file, but not the
|
218
|
+
# white space on those lines.
|
219
|
+
# the hash line is also ignored in the
|
220
|
+
# computation.
|
221
|
+
#
|
222
|
+
#h b2a5e90a 313a6ce afe814f3 46bff6d8 875672e2
|