vagrant-hp 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,21 +1,21 @@
1
- #
2
- # Author:: Mohit Sethi (<mohit@sethis.in>)
3
- # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
- #
5
-
6
- module VagrantPlugins
7
- module HP
8
- module Action
9
- class MessageAlreadyCreated
10
- def initialize(app, env)
11
- @app = app
12
- end
13
-
14
- def call(env)
15
- env[:ui].info(I18n.t("vagrant_hp.already_created"))
16
- @app.call(env)
17
- end
18
- end
19
- end
20
- end
21
- end
1
+ #
2
+ # Author:: Mohit Sethi (<mohit@sethis.in>)
3
+ # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
+ #
5
+
6
+ module VagrantPlugins
7
+ module HP
8
+ module Action
9
+ class MessageAlreadyCreated
10
+ def initialize(app, env)
11
+ @app = app
12
+ end
13
+
14
+ def call(env)
15
+ env[:ui].info(I18n.t("vagrant_hp.already_created"))
16
+ @app.call(env)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,21 +1,21 @@
1
- #
2
- # Author:: Mohit Sethi (<mohit@sethis.in>)
3
- # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
- #
5
-
6
- module VagrantPlugins
7
- module HP
8
- module Action
9
- class MessageNotCreated
10
- def initialize(app, env)
11
- @app = app
12
- end
13
-
14
- def call(env)
15
- env[:ui].info(I18n.t("vagrant_hp.not_created"))
16
- @app.call(env)
17
- end
18
- end
19
- end
20
- end
21
- end
1
+ #
2
+ # Author:: Mohit Sethi (<mohit@sethis.in>)
3
+ # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
+ #
5
+
6
+ module VagrantPlugins
7
+ module HP
8
+ module Action
9
+ class MessageNotCreated
10
+ def initialize(app, env)
11
+ @app = app
12
+ end
13
+
14
+ def call(env)
15
+ env[:ui].info(I18n.t("vagrant_hp.not_created"))
16
+ @app.call(env)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,51 +1,51 @@
1
- #
2
- # Author:: Mohit Sethi (<mohit@sethis.in>)
3
- # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
- #
5
-
6
- require "log4r"
7
-
8
- module VagrantPlugins
9
- module HP
10
- module Action
11
- # This action reads the SSH info for the machine and puts it into the
12
- # `:machine_ssh_info` key in the environment.
13
- class ReadSSHInfo
14
- def initialize(app, env)
15
- @app = app
16
- @logger = Log4r::Logger.new("vagrant_hp::action::read_ssh_info")
17
- end
18
-
19
- def call(env)
20
- env[:machine_ssh_info] = read_ssh_info(env[:hp_compute], env[:machine])
21
-
22
- @app.call(env)
23
- end
24
-
25
- def read_ssh_info(hp, machine)
26
- return nil if machine.id.nil?
27
-
28
- # Find the machine
29
- server = hp.servers.get(machine.id)
30
- if server.nil?
31
- # The machine can't be found
32
- @logger.info("Machine couldn't be found, assuming it got destroyed.")
33
- machine.id = nil
34
- return nil
35
- end
36
-
37
- config = machine.provider_config
38
-
39
- # Read the DNS info
40
- return {
41
- # Usually there should only be one public IP
42
- :host => server.public_ip_address,
43
- :port => 22,
44
- :username => config.ssh_username,
45
- :private_key_path => config.ssh_private_key_path,
46
- }
47
- end
48
- end
49
- end
50
- end
51
- end
1
+ #
2
+ # Author:: Mohit Sethi (<mohit@sethis.in>)
3
+ # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
+ #
5
+
6
+ require "log4r"
7
+
8
+ module VagrantPlugins
9
+ module HP
10
+ module Action
11
+ # This action reads the SSH info for the machine and puts it into the
12
+ # `:machine_ssh_info` key in the environment.
13
+ class ReadSSHInfo
14
+ def initialize(app, env)
15
+ @app = app
16
+ @logger = Log4r::Logger.new("vagrant_hp::action::read_ssh_info")
17
+ end
18
+
19
+ def call(env)
20
+ env[:machine_ssh_info] = read_ssh_info(env[:hp_compute], env[:machine])
21
+
22
+ @app.call(env)
23
+ end
24
+
25
+ def read_ssh_info(hp, machine)
26
+ return nil if machine.id.nil?
27
+
28
+ # Find the machine
29
+ server = hp.servers.get(machine.id)
30
+ if server.nil?
31
+ # The machine can't be found
32
+ @logger.info("Machine couldn't be found, assuming it got destroyed.")
33
+ machine.id = nil
34
+ return nil
35
+ end
36
+
37
+ config = machine.provider_config
38
+
39
+ # Read the DNS info
40
+ return {
41
+ # Usually there should only be one public IP
42
+ :host => server.public_ip_address,
43
+ :port => 22,
44
+ :username => config.ssh_username,
45
+ :private_key_path => config.ssh_private_key_path,
46
+ }
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -1,43 +1,43 @@
1
- #
2
- # Author:: Mohit Sethi (<mohit@sethis.in>)
3
- # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
- #
5
-
6
- require "log4r"
7
-
8
- module VagrantPlugins
9
- module HP
10
- module Action
11
- # This action reads the state of the machine and puts it in the
12
- # `:machine_state_id` key in the environment.
13
- class ReadState
14
- def initialize(app, env)
15
- @app = app
16
- @logger = Log4r::Logger.new("vagrant_hp::action::read_state")
17
- end
18
-
19
- def call(env)
20
- env[:machine_state_id] = read_state(env[:hp_compute], env[:machine])
21
-
22
- @app.call(env)
23
- end
24
-
25
- def read_state(hp, machine)
26
- return :not_created if machine.id.nil?
27
-
28
- # Find the machine
29
- server = hp.servers.get(machine.id)
30
- if server.nil? || [:"shutting-down", :terminated].include?(server.state.to_sym)
31
- # The machine can't be found
32
- @logger.info("Machine not found or terminated, assuming it got destroyed.")
33
- machine.id = nil
34
- return :not_created
35
- end
36
-
37
- # Return the state
38
- return server.state.to_sym
39
- end
40
- end
41
- end
42
- end
43
- end
1
+ #
2
+ # Author:: Mohit Sethi (<mohit@sethis.in>)
3
+ # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
+ #
5
+
6
+ require "log4r"
7
+
8
+ module VagrantPlugins
9
+ module HP
10
+ module Action
11
+ # This action reads the state of the machine and puts it in the
12
+ # `:machine_state_id` key in the environment.
13
+ class ReadState
14
+ def initialize(app, env)
15
+ @app = app
16
+ @logger = Log4r::Logger.new("vagrant_hp::action::read_state")
17
+ end
18
+
19
+ def call(env)
20
+ env[:machine_state_id] = read_state(env[:hp_compute], env[:machine])
21
+
22
+ @app.call(env)
23
+ end
24
+
25
+ def read_state(hp, machine)
26
+ return :not_created if machine.id.nil?
27
+
28
+ # Find the machine
29
+ server = hp.servers.get(machine.id)
30
+ if server.nil? || [:"shutting-down", :terminated].include?(server.state.to_sym)
31
+ # The machine can't be found
32
+ @logger.info("Machine not found or terminated, assuming it got destroyed.")
33
+ machine.id = nil
34
+ return :not_created
35
+ end
36
+
37
+ # Return the state
38
+ return server.state.to_sym
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -1,63 +1,63 @@
1
- #
2
- # Author:: Mohit Sethi (<mohit@sethis.in>)
3
- # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
- #
5
-
6
- require "log4r"
7
-
8
- require "vagrant/util/subprocess"
9
-
10
- module VagrantPlugins
11
- module HP
12
- module Action
13
- # This middleware uses `rsync` to sync the folders over to the
14
- # HP instance.
15
- class SyncFolders
16
- def initialize(app, env)
17
- @app = app
18
- @logger = Log4r::Logger.new("vagrant_hp::action::sync_folders")
19
- end
20
-
21
- def call(env)
22
- @app.call(env)
23
-
24
- ssh_info = env[:machine].ssh_info
25
-
26
- env[:machine].config.vm.synced_folders.each do |id, data|
27
- next if data[:hostpath] == "."
28
- hostpath = File.expand_path(data[:hostpath], env[:root_path])
29
- guestpath = data[:guestpath]
30
-
31
- # Make sure there is a trailing slash on the host path to
32
- # avoid creating an additional directory with rsync
33
- hostpath = "#{hostpath}/" if hostpath !~ /\/$/
34
-
35
- env[:ui].info(I18n.t("vagrant_hp.rsync_folder",
36
- :hostpath => hostpath,
37
- :guestpath => guestpath))
38
-
39
- # Create the guest path
40
- env[:machine].communicate.sudo("mkdir -p '#{guestpath}'")
41
- env[:machine].communicate.sudo(
42
- "chown #{ssh_info[:username]} '#{guestpath}'")
43
-
44
- # Rsync over to the guest path using the SSH info
45
- command = [
46
- "rsync", "--verbose", "--archive", "-z",
47
- "-e", "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p #{ssh_info[:port]} -i '#{ssh_info[:private_key_path]}'",
48
- hostpath,
49
- "#{ssh_info[:username]}@#{ssh_info[:host]}:#{guestpath}"]
50
-
51
- r = Vagrant::Util::Subprocess.execute(*command)
52
- if r.exit_code != 0
53
- raise Errors::RsyncError,
54
- :guestpath => guestpath,
55
- :hostpath => hostpath,
56
- :stderr => r.stderr
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
1
+ #
2
+ # Author:: Mohit Sethi (<mohit@sethis.in>)
3
+ # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
+ #
5
+
6
+ require "log4r"
7
+
8
+ require "vagrant/util/subprocess"
9
+
10
+ module VagrantPlugins
11
+ module HP
12
+ module Action
13
+ # This middleware uses `rsync` to sync the folders over to the
14
+ # HP instance.
15
+ class SyncFolders
16
+ def initialize(app, env)
17
+ @app = app
18
+ @logger = Log4r::Logger.new("vagrant_hp::action::sync_folders")
19
+ end
20
+
21
+ def call(env)
22
+ @app.call(env)
23
+
24
+ ssh_info = env[:machine].ssh_info
25
+
26
+ env[:machine].config.vm.synced_folders.each do |id, data|
27
+ next if data[:hostpath] == "."
28
+ hostpath = File.expand_path(data[:hostpath], env[:root_path])
29
+ guestpath = data[:guestpath]
30
+
31
+ # Make sure there is a trailing slash on the host path to
32
+ # avoid creating an additional directory with rsync
33
+ hostpath = "#{hostpath}/" if hostpath !~ /\/$/
34
+
35
+ env[:ui].info(I18n.t("vagrant_hp.rsync_folder",
36
+ :hostpath => hostpath,
37
+ :guestpath => guestpath))
38
+
39
+ # Create the guest path
40
+ env[:machine].communicate.sudo("mkdir -p '#{guestpath}'")
41
+ env[:machine].communicate.sudo(
42
+ "chown #{ssh_info[:username]} '#{guestpath}'")
43
+
44
+ # Rsync over to the guest path using the SSH info
45
+ command = [
46
+ "rsync", "--verbose", "--archive", "-z",
47
+ "-e", "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p #{ssh_info[:port]} -i '#{ssh_info[:private_key_path]}'",
48
+ hostpath,
49
+ "#{ssh_info[:username]}@#{ssh_info[:host]}:#{guestpath}"]
50
+
51
+ r = Vagrant::Util::Subprocess.execute(*command)
52
+ if r.exit_code != 0
53
+ raise Errors::RsyncError,
54
+ :guestpath => guestpath,
55
+ :hostpath => hostpath,
56
+ :stderr => r.stderr
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -1,27 +1,27 @@
1
- #
2
- # Author:: Mohit Sethi (<mohit@sethis.in>)
3
- # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
- #
5
-
6
- require "vagrant-hp/util/timer"
7
-
8
- module VagrantPlugins
9
- module HP
10
- module Action
11
- # This is the same as the builtin provision except it times the
12
- # provisioner runs.
13
- class TimedProvision < Vagrant::Action::Builtin::Provision
14
- def run_provisioner(env, p)
15
- env[:ui].info("Insde TimedProvision")
16
- timer = Util::Timer.time do
17
- super
18
- end
19
-
20
- env[:metrics] ||= {}
21
- env[:metrics]["provisioner_times"] ||= []
22
- env[:metrics]["provisioner_times"] << [p.class.to_s, timer]
23
- end
24
- end
25
- end
26
- end
27
- end
1
+ #
2
+ # Author:: Mohit Sethi (<mohit@sethis.in>)
3
+ # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
+ #
5
+
6
+ require "vagrant-hp/util/timer"
7
+
8
+ module VagrantPlugins
9
+ module HP
10
+ module Action
11
+ # This is the same as the builtin provision except it times the
12
+ # provisioner runs.
13
+ class TimedProvision < Vagrant::Action::Builtin::Provision
14
+ def run_provisioner(env, p)
15
+ env[:ui].info("Insde TimedProvision")
16
+ timer = Util::Timer.time do
17
+ super
18
+ end
19
+
20
+ env[:metrics] ||= {}
21
+ env[:metrics]["provisioner_times"] ||= []
22
+ env[:metrics]["provisioner_times"] << [p.class.to_s, timer]
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end