From d54e96292646646492e260e0279b7c0c19c6d46a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Greg=20Kar=C3=A9kinian?= Date: Fri, 5 Jul 2019 15:20:05 +0200 Subject: [PATCH] Get rid of the cluster recipes and tests Co-authored-by: Sebastian Kippe --- recipes/cluster.rb | 50 --------- recipes/cluster_bootstrap.rb | 33 ------ recipes/cluster_service.rb | 64 ----------- spec/unit/recipes/cluster_service_spec.rb | 55 ---------- .../default/ipfs-cluster.initd.service.erb | 102 ------------------ .../default/ipfs-cluster.systemd.service.erb | 13 --- .../cluster/serverspec/ipfs_cluster_spec.rb | 27 ----- .../data_bags/credentials/ipfs_cluster.json | 4 - 8 files changed, 348 deletions(-) delete mode 100644 recipes/cluster.rb delete mode 100644 recipes/cluster_bootstrap.rb delete mode 100644 recipes/cluster_service.rb delete mode 100644 spec/unit/recipes/cluster_service_spec.rb delete mode 100644 templates/default/ipfs-cluster.initd.service.erb delete mode 100644 templates/default/ipfs-cluster.systemd.service.erb delete mode 100644 test/integration/cluster/serverspec/ipfs_cluster_spec.rb delete mode 100644 test/integration/data_bags/credentials/ipfs_cluster.json diff --git a/recipes/cluster.rb b/recipes/cluster.rb deleted file mode 100644 index 25b81fc..0000000 --- a/recipes/cluster.rb +++ /dev/null @@ -1,50 +0,0 @@ -# -# Cookbook Name:: ipfs -# Recipe:: cluster -# -# The MIT License (MIT) -# -# Copyright:: 2018, Kosmos Developers -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -include_recipe 'ipfs::_user' - -version = node['ipfs']['cluster']['version'] - -ark 'ipfs-cluster-service' do - url "https://dist.ipfs.io/ipfs-cluster-service/v#{version}/ipfs-cluster-service_v#{version}_linux-amd64.tar.gz" - checksum node['ipfs']['cluster']['service']['checksum'] - has_binaries ['ipfs-cluster-service'] -end - -ark 'ipfs-cluster-ctl' do - url "https://dist.ipfs.io/ipfs-cluster-ctl/v#{version}/ipfs-cluster-ctl_v#{version}_linux-amd64.tar.gz" - checksum node['ipfs']['cluster']['ctl']['checksum'] - has_binaries ['ipfs-cluster-ctl'] -end - -credentials = data_bag_item('credentials', 'ipfs_cluster') - -execute 'ipfs-cluster-service init' do - user 'ipfs' - environment 'CLUSTER_SECRET' => credentials['secret'], - 'IPFS_CLUSTER_PATH' => '/home/ipfs/.ipfs-cluster' - not_if { File.exist? '/home/ipfs/.ipfs-cluster/service.json' } -end diff --git a/recipes/cluster_bootstrap.rb b/recipes/cluster_bootstrap.rb deleted file mode 100644 index 295ee0f..0000000 --- a/recipes/cluster_bootstrap.rb +++ /dev/null @@ -1,33 +0,0 @@ -# -# Cookbook Name:: ipfs -# Recipe:: cluster_bootstrap -# -# The MIT License (MIT) -# -# Copyright:: 2018, Kosmos Developers -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -include_recipe 'ipfs::_user' - -execute "ipfs-cluster-service daemon --bootstrap #{peer}" do - user 'ipfs' - environment 'IPFS_CLUSTER_PATH' => '/home/ipfs/.ipfs-cluster' - not_if { File.exist? '/home/ipfs/.ipfs-cluster/service.json' } -end diff --git a/recipes/cluster_service.rb b/recipes/cluster_service.rb deleted file mode 100644 index ad682db..0000000 --- a/recipes/cluster_service.rb +++ /dev/null @@ -1,64 +0,0 @@ -# -# Cookbook Name:: ipfs -# Recipe:: cluster_service -# -# The MIT License (MIT) -# -# Copyright:: 2018, Kosmos Developers -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -if platform?('ubuntu') && node['platform_version'].to_f < 15.04 || - platform?('debian') && node['platform_version'].to_f < 8 - template 'ipfs.initd-cluster.service.erb' do - path '/etc/init.d/ipfs-cluster' - source 'ipfs-cluster.initd.service.erb' - owner 'root' - group 'root' - mode '0750' - notifies :restart, 'service[ipfs-cluster]', :delayed - end - - service 'ipfs-cluster' do - provider Chef::Provider::Service::Init::Debian - action [:enable] - supports start: true, stop: true, restart: true, reload: false, status: true - end - -else - execute 'systemctl daemon-reload' do - command 'systemctl daemon-reload' - action :nothing - end - - template 'ipfs-cluster.systemd.service.erb' do - path '/lib/systemd/system/ipfs-cluster.service' - source 'ipfs-cluster.systemd.service.erb' - owner 'root' - group 'root' - mode '0644' - notifies :run, 'execute[systemctl daemon-reload]', :delayed - notifies :restart, 'service[ipfs-cluster]', :delayed - end - - service 'ipfs-cluster' do - provider Chef::Provider::Service::Systemd - action [:enable] - end -end diff --git a/spec/unit/recipes/cluster_service_spec.rb b/spec/unit/recipes/cluster_service_spec.rb deleted file mode 100644 index ddefa44..0000000 --- a/spec/unit/recipes/cluster_service_spec.rb +++ /dev/null @@ -1,55 +0,0 @@ -# -# Cookbook:: ipfs -# Spec:: default -# -# The MIT License (MIT) -# -# Copyright:: 2018, Kosmos Developers -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -require 'spec_helper' - -describe 'ipfs::cluster_service' do - context 'When all attributes are default, on Ubuntu 16.04' do - let(:chef_run) do - # for a complete list of available platforms and versions see: - # https://github.com/customink/fauxhai/blob/master/PLATFORMS.md - runner = ChefSpec::SoloRunner.new(platform: 'ubuntu', version: '16.04') - runner.converge(described_recipe) - end - - it 'enables the service' do - expect(chef_run).to enable_service('ipfs-cluster') - end - end - - context 'When all attributes are default, on Ubuntu 18.04' do - let(:chef_run) do - # for a complete list of available platforms and versions see: - # https://github.com/customink/fauxhai/blob/master/PLATFORMS.md - runner = ChefSpec::SoloRunner.new(platform: 'ubuntu', version: '18.04') - runner.converge(described_recipe) - end - - it 'enables the service' do - expect(chef_run).to enable_service('ipfs-cluster') - end - end -end diff --git a/templates/default/ipfs-cluster.initd.service.erb b/templates/default/ipfs-cluster.initd.service.erb deleted file mode 100644 index a301208..0000000 --- a/templates/default/ipfs-cluster.initd.service.erb +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/sh -### BEGIN INIT INFO -# Provides: ipfs-cluster daemon -# Required-Start: $local_fs $remote_fs $network $syslog $named -# Required-Stop: $local_fs $remote_fs $network $syslog $named -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Starts the ipfs-cluster daemon -# Description: Starts the ipfs-cluster daemon using the start-stop-daemon -### END INIT INFO - -# Author: Dylan Powers = 3.2-14) to ensure that this file is present -# and status_of_proc is working. -. /lib/lsb/init-functions - -# -# Function that starts the daemon/service -# -do_start() { - # Return - # 0 if daemon has been started - # 1 if daemon was already running - # 2 if daemon could not be started - start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test >/dev/null \ - || return 1 - start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \ - --background --chuid $IPFS_USER --no-close \ - --exec /usr/bin/env IPFS_PATH="$IPFS_PATH" $DAEMON 2>>$IPFS_PATH/daemon.log 1>/dev/null \ - -- $DAEMON_ARGS \ - || return 2 -} - -# -# Function that stops the daemon/service -# -do_stop() { - # Return - # 0 if daemon has been stopped - # 1 if daemon was already stopped - # 2 if daemon could not be stopped - # other if a failure occurred - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME - RETVAL="$?" - [ "$RETVAL" = 2 ] && return 2 - - # Delete the pid - rm -f $PIDFILE - return "$RETVAL" -} - -case "$1" in - start) - [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - stop) - [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; - esac - ;; - status) - status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? - ;; - restart) - do_stop - do_start - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2 - exit 3 - ;; -esac diff --git a/templates/default/ipfs-cluster.systemd.service.erb b/templates/default/ipfs-cluster.systemd.service.erb deleted file mode 100644 index 87750a9..0000000 --- a/templates/default/ipfs-cluster.systemd.service.erb +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Start ipfs-cluster - -[Service] -ExecStart=/usr/local/bin/ipfs-cluster-service daemon --upgrade -User=ipfs -Group=ipfs -Restart=always -# Raise the ulimit (max number of open files) -LimitNOFILE=64000 - -[Install] -WantedBy=multi-user.target diff --git a/test/integration/cluster/serverspec/ipfs_cluster_spec.rb b/test/integration/cluster/serverspec/ipfs_cluster_spec.rb deleted file mode 100644 index 23ba688..0000000 --- a/test/integration/cluster/serverspec/ipfs_cluster_spec.rb +++ /dev/null @@ -1,27 +0,0 @@ -require 'serverspec' - -# Required by serverspec -set :backend, :exec - -describe 'ipfs-cluster-ctl' do - # It is in the PATH - describe command('which ipfs-cluster-ctl') do - its(:exit_status) { should eq 0 } - end -end - -describe 'ipfs-cluster-service' do - # It is in the PATH - describe command('which ipfs-cluster-service') do - its(:exit_status) { should eq 0 } - end - - it 'is listening on port 9096' do - expect(port(9096)).to be_listening - end - - it 'runs the ipfs-cluster-service' do - expect(service('ipfs-cluster')).to be_running - expect(service('ipfs-cluster')).to be_enabled - end -end diff --git a/test/integration/data_bags/credentials/ipfs_cluster.json b/test/integration/data_bags/credentials/ipfs_cluster.json deleted file mode 100644 index d2458b2..0000000 --- a/test/integration/data_bags/credentials/ipfs_cluster.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "id": "ipfs_cluster", - "secret": "d9de2f31ca7e9989949010fed2e704f42b8e96fa1e8e60a0ad26611f0a01cf07" -}