libvirtinator 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -7,7 +7,8 @@ module Capistrano
7
7
  "libvirtinator:install_vm",
8
8
  "image:list_bases",
9
9
  "image:build_base",
10
- "users:setup_domain"
10
+ "users:setup_domain",
11
+ "all_do"
11
12
  ]
12
13
  end
13
14
  end
@@ -15,7 +16,6 @@ end
15
16
 
16
17
  namespace :libvirtinator do
17
18
  task :load_settings do
18
- # load "./config/deploy.rb" # this seems unneeded and to cause tasks to run twice, previously i thought it was needed
19
19
  SSHKit.config.output_verbosity = fetch(:log_level)
20
20
  end
21
21
 
@@ -2,6 +2,25 @@ require 'socket'
2
2
  require 'timeout'
3
3
  require 'erb'
4
4
 
5
+ desc "Run any Capistrano task on all the machines in 'config/deploy/*' one at a time; Usage: `cap all_do task='uptime'`"
6
+ task :all_do do
7
+ run_locally do
8
+ tsk = ENV['task']
9
+ if tsk.nil? or tsk.empty?
10
+ fatal "task is unset, try `cap all_do task=\"uptime\"`"
11
+ next
12
+ end
13
+ exec("for machine in $(ls config/deploy/ | cut -c 1-7); do bundle exec cap $machine #{tsk}; if ! [ $? -eq 0 ]; then touch $machine.fail; fi; done")
14
+ end
15
+ end
16
+
17
+ desc "Run the uptime command on the VM"
18
+ task :uptime do
19
+ on "#{fetch(:user)}@#{fetch(:app_fqdn)}" do
20
+ info("#{capture("uptime")} - on #{fetch(:app_fqdn)}")
21
+ end
22
+ end
23
+
5
24
  desc "Check the current status of a VM"
6
25
  task :status => 'libvirtinator:load_settings' do
7
26
  on roles(:app) do
@@ -58,6 +77,7 @@ task :start => 'libvirtinator:load_settings' do
58
77
  Rake::Task['wait_for_ssh_alive'].invoke
59
78
  # TODO make users:setup offer a yes/no try-again when a specified key doesn't work to connect.
60
79
  # TODO make users:setup failure invoke notice "don't worry, you can resume setting up users with 'cap <stage> users:setup'"
80
+ sleep 2 # wait for SSH to finish booting
61
81
  Rake::Task['users:setup'].invoke
62
82
  info "Say, you don't say? Are we finished?"
63
83
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libvirtinator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-03-07 00:00:00.000000000 Z
12
+ date: 2016-04-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: capistrano