vagrant-hp 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,7 +3,7 @@
3
3
  # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
4
  #
5
5
 
6
- require "log4r"
6
+ require 'log4r'
7
7
 
8
8
  module VagrantPlugins
9
9
  module HP
@@ -13,12 +13,12 @@ module VagrantPlugins
13
13
  class ReadSSHInfo
14
14
  def initialize(app, env)
15
15
  @app = app
16
- @logger = Log4r::Logger.new("vagrant_hp::action::read_ssh_info")
16
+ @logger = Log4r::Logger.new('vagrant_hp::action::read_ssh_info')
17
17
  end
18
18
 
19
19
  def call(env)
20
- env[:machine_ssh_info] = read_ssh_info(env[:hp_compute], env[:machine])
21
-
20
+ env[:machine_ssh_info] = read_ssh_info(env[:hp_compute],
21
+ env[:machine])
22
22
  @app.call(env)
23
23
  end
24
24
 
@@ -29,7 +29,8 @@ module VagrantPlugins
29
29
  server = hp.servers.get(machine.id)
30
30
  if server.nil?
31
31
  # The machine can't be found
32
- @logger.info("Machine couldn't be found, assuming it got destroyed.")
32
+ @logger.info('Machine couldn''t be found,
33
+ assuming it got destroyed.')
33
34
  machine.id = nil
34
35
  return nil
35
36
  end
@@ -39,10 +40,10 @@ module VagrantPlugins
39
40
  # Read the DNS info
40
41
  return {
41
42
  # 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,
43
+ host: server.public_ip_address,
44
+ port: 22,
45
+ username: config.ssh_username,
46
+ private_key_path: config.ssh_private_key_path,
46
47
  }
47
48
  end
48
49
  end
@@ -3,7 +3,7 @@
3
3
  # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
4
  #
5
5
 
6
- require "log4r"
6
+ require 'log4r'
7
7
 
8
8
  module VagrantPlugins
9
9
  module HP
@@ -13,7 +13,7 @@ module VagrantPlugins
13
13
  class ReadState
14
14
  def initialize(app, env)
15
15
  @app = app
16
- @logger = Log4r::Logger.new("vagrant_hp::action::read_state")
16
+ @logger = Log4r::Logger.new('vagrant_hp::action::read_state')
17
17
  end
18
18
 
19
19
  def call(env)
@@ -27,9 +27,11 @@ module VagrantPlugins
27
27
 
28
28
  # Find the machine
29
29
  server = hp.servers.get(machine.id)
30
- if server.nil? || [:"shutting-down", :terminated].include?(server.state.to_sym)
30
+ if server.nil? ||
31
+ [:"shutting-down", :terminated].include?(server.state.to_sym)
31
32
  # The machine can't be found
32
- @logger.info("Machine not found or terminated, assuming it got destroyed.")
33
+ @logger.info(
34
+ 'Machine not found or terminated, assuming it got destroyed.')
33
35
  machine.id = nil
34
36
  return :not_created
35
37
  end
@@ -3,9 +3,9 @@
3
3
  # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
4
  #
5
5
 
6
- require "log4r"
6
+ require 'log4r'
7
7
 
8
- require "vagrant/util/subprocess"
8
+ require 'vagrant/util/subprocess'
9
9
 
10
10
  module VagrantPlugins
11
11
  module HP
@@ -15,7 +15,11 @@ module VagrantPlugins
15
15
  class SyncFolders
16
16
  def initialize(app, env)
17
17
  @app = app
18
- @logger = Log4r::Logger.new("vagrant_hp::action::sync_folders")
18
+ @logger = Log4r::Logger.new('vagrant_hp::action::sync_folders')
19
+ end
20
+
21
+ def ssh_key_options(ssh_info)
22
+ Array(ssh_info[:private_key_path]).map { |path| "-i '#{path}' " }.join
19
23
  end
20
24
 
21
25
  def call(env)
@@ -24,7 +28,7 @@ module VagrantPlugins
24
28
  ssh_info = env[:machine].ssh_info
25
29
 
26
30
  env[:machine].config.vm.synced_folders.each do |id, data|
27
- next if data[:hostpath] == "."
31
+ next if data[:hostpath] == '.'
28
32
  hostpath = File.expand_path(data[:hostpath], env[:root_path])
29
33
  guestpath = data[:guestpath]
30
34
 
@@ -32,9 +36,9 @@ module VagrantPlugins
32
36
  # avoid creating an additional directory with rsync
33
37
  hostpath = "#{hostpath}/" if hostpath !~ /\/$/
34
38
 
35
- env[:ui].info(I18n.t("vagrant_hp.rsync_folder",
36
- :hostpath => hostpath,
37
- :guestpath => guestpath))
39
+ env[:ui].info(I18n.t('vagrant_hp.rsync_folder',
40
+ hostpath: hostpath,
41
+ guestpath: guestpath))
38
42
 
39
43
  # Create the guest path
40
44
  env[:machine].communicate.sudo("mkdir -p '#{guestpath}'")
@@ -43,17 +47,16 @@ module VagrantPlugins
43
47
 
44
48
  # Rsync over to the guest path using the SSH info
45
49
  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
+ 'rsync', '--verbose', '--archive', '-z',
51
+ '-e', "ssh -o StrictHostKeyChecking=no -p #{ssh_info[:port]} #{ssh_key_options(ssh_info)}",
52
+ hostpath, "#{ssh_info[:username]}@#{ssh_info[:host]}:#{guestpath}"]
50
53
 
51
54
  r = Vagrant::Util::Subprocess.execute(*command)
52
55
  if r.exit_code != 0
53
56
  raise Errors::RsyncError,
54
- :guestpath => guestpath,
55
- :hostpath => hostpath,
56
- :stderr => r.stderr
57
+ guestpath: guestpath,
58
+ hostpath: hostpath,
59
+ stderr: r.stderr
57
60
  end
58
61
  end
59
62
  end
@@ -0,0 +1,22 @@
1
+ require 'rubygems'
2
+ require 'fog'
3
+
4
+ hp_access_key = "Y5SKH1MU6HZ2PEM9ZNZL"
5
+ hp_secret_key = "YA2BJr98R3hDK7IwpIkHXlDCDo9GG+GIuqhflPqQ"
6
+ hp_tenant_id = "87309806546461"
7
+
8
+
9
+ connection = Fog::Compute.new(
10
+ provider: :hp,
11
+ version: 'v2',
12
+ hp_access_key: hp_access_key,
13
+ hp_secret_key: hp_secret_key,
14
+ hp_tenant_id: hp_tenant_id,
15
+ hp_avl_zone: 'az-1.region-a.geo-1'
16
+ )
17
+
18
+ puts "++++++++++++++++++++++++++"
19
+ puts "hp_avl_zone: #{connection.inspect}"
20
+ puts "++++++++++++++++++++++++++"
21
+ puts "key_pairs: #{connection.key_pairs}"
22
+ puts "++++++++++++++++++++++++++"
@@ -3,7 +3,7 @@
3
3
  # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
4
  #
5
5
 
6
- require "vagrant-hp/util/timer"
6
+ require 'vagrant-hp/util/timer'
7
7
 
8
8
  module VagrantPlugins
9
9
  module HP
@@ -12,14 +12,14 @@ module VagrantPlugins
12
12
  # provisioner runs.
13
13
  class TimedProvision < Vagrant::Action::Builtin::Provision
14
14
  def run_provisioner(env, p)
15
- env[:ui].info("Insde TimedProvision")
15
+ env[:ui].info('Inside TimedProvision')
16
16
  timer = Util::Timer.time do
17
17
  super
18
18
  end
19
19
 
20
20
  env[:metrics] ||= {}
21
- env[:metrics]["provisioner_times"] ||= []
22
- env[:metrics]["provisioner_times"] << [p.class.to_s, timer]
21
+ env[:metrics]['provisioner_times'] ||= []
22
+ env[:metrics]['provisioner_times'] << [p.class.to_s, timer]
23
23
  end
24
24
  end
25
25
  end
@@ -13,7 +13,7 @@ module VagrantPlugins
13
13
 
14
14
  def call(env)
15
15
  if env[:machine].config.vm.networks.length > 0
16
- env[:ui].warn(I18n.t("vagrant_hp.warn_networks"))
16
+ env[:ui].warn(I18n.t('vagrant_hp.warn_networks'))
17
17
  end
18
18
 
19
19
  @app.call(env)
@@ -3,12 +3,11 @@
3
3
  # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
4
  #
5
5
 
6
- require "vagrant"
6
+ require 'vagrant'
7
7
 
8
8
  module VagrantPlugins
9
9
  module HP
10
- class Config < Vagrant.plugin("2", :config)
11
-
10
+ class Config < Vagrant.plugin('2', :config)
12
11
  attr_accessor :access_key
13
12
 
14
13
  attr_accessor :secret_key
@@ -31,9 +30,9 @@ module VagrantPlugins
31
30
 
32
31
  attr_accessor :security_groups
33
32
 
34
- def initialize(region_specific=false)
33
+ def initialize(region_specific = false)
35
34
  @access_key = UNSET_VALUE
36
- @secret_key= UNSET_VALUE
35
+ @secret_key = UNSET_VALUE
37
36
  @server_name = UNSET_VALUE
38
37
  @private_ip_address = UNSET_VALUE
39
38
  @keypair_name = UNSET_VALUE
@@ -58,7 +57,8 @@ module VagrantPlugins
58
57
  super.tap do |result|
59
58
  # Copy over the region specific flag. "True" is retained if either
60
59
  # has it.
61
- new_region_specific = other.instance_variable_get(:@__region_specific)
60
+ new_region_specific = other.instance_variable_get(
61
+ :@__region_specific)
62
62
  result.instance_variable_set(
63
63
  :@__region_specific, new_region_specific || @__region_specific)
64
64
 
@@ -91,7 +91,7 @@ module VagrantPlugins
91
91
  @image = nil if @image == UNSET_VALUE
92
92
 
93
93
  # Default instance type is an standard.small
94
- @flavor = "standard.small" if @flavor == UNSET_VALUE
94
+ @flavor = 'standard.small' if @flavor == UNSET_VALUE
95
95
 
96
96
  # Keypair defaults to nil
97
97
  @keypair_name = nil if @keypair_name == UNSET_VALUE
@@ -101,7 +101,7 @@ module VagrantPlugins
101
101
 
102
102
  # Default availability-zone is az1. This is sensible because HP Cloud
103
103
  # generally defaults to this as well.
104
- @availability_zone = "az1" if @availability_zone == UNSET_VALUE
104
+ @availability_zone = 'az1' if @availability_zone == UNSET_VALUE
105
105
 
106
106
  # The SSH values by default are nil, and the top-level config
107
107
  # `config.ssh` values are used.
@@ -116,39 +116,39 @@ module VagrantPlugins
116
116
  errors = []
117
117
  warnings = []
118
118
  messages = []
119
-
120
- # access_key: required
121
- errors << I18n.t("vagrant_hp.config.access_key_required") \
119
+
120
+ # access_key: required
121
+ errors << I18n.t('vagrant_hp.config.access_key_required') \
122
122
  if @access_key.nil?
123
123
 
124
124
  # secret_key: required
125
- errors << I18n.t("vagrant_hp.config.secret_key_required") \
125
+ errors << I18n.t('vagrant_hp.config.secret_key_required') \
126
126
  if @secret_key.nil?
127
127
 
128
128
  # tenant_id: required
129
- errors << I18n.t("vagrant_hp.config.tenant_id_required") \
129
+ errors << I18n.t('vagrant_hp.config.tenant_id_required') \
130
130
  if @tenant_id.nil?
131
131
 
132
132
  # keypair_name: required
133
- errors << I18n.t("vagrant_hp.config.keypair_name_required") \
133
+ errors << I18n.t('vagrant_hp.config.keypair_name_required') \
134
134
  if @keypair_name.nil?
135
135
 
136
136
  # image: required
137
- errors << I18n.t("vagrant_hp.config.image_required") \
137
+ errors << I18n.t('vagrant_hp.config.image_required') \
138
138
  if @image.nil?
139
139
 
140
140
  # ssh_private_key_path: required
141
- errors << I18n.t("vagrant_hp.config.ssh_private_key_path") \
141
+ errors << I18n.t('vagrant_hp.config.ssh_private_key_path') \
142
142
  if @ssh_private_key_path.nil?
143
143
 
144
- { "HP Provider" => errors }
144
+ { 'HP Provider' => errors }
145
145
  end
146
146
 
147
147
  # This gets the configuration for a specific region. It shouldn't
148
148
  # be called by the general public and is only used internally.
149
149
  def get_region_config(name)
150
- if !@__finalized
151
- raise "Configuration must be finalized before calling this method."
150
+ unless @__finalized
151
+ raise 'Configuration must be finalized before calling this method.'
152
152
  end
153
153
 
154
154
  # Return the compiled region config
@@ -3,13 +3,13 @@
3
3
  # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
4
  #
5
5
 
6
- require "vagrant"
6
+ require 'vagrant'
7
7
 
8
8
  module VagrantPlugins
9
9
  module HP
10
10
  module Errors
11
11
  class VagrantHPError < Vagrant::Errors::VagrantError
12
- error_namespace("vagrant_hp.errors")
12
+ error_namespace('vagrant_hp.errors')
13
13
  end
14
14
 
15
15
  class FogError < VagrantHPError
@@ -4,28 +4,28 @@
4
4
  #
5
5
 
6
6
  begin
7
- require "vagrant"
7
+ require 'vagrant'
8
8
  rescue LoadError
9
- raise "The Vagrant HP plugin must be run within Vagrant."
9
+ raise 'The Vagrant HP plugin must be run within Vagrant.'
10
10
  end
11
11
 
12
12
  # This is a sanity check to make sure no one is attempting to install
13
13
  # this into an early Vagrant version.
14
- if Vagrant::VERSION < "1.1.0"
15
- raise "The Vagrant HP plugin is only compatible with Vagrant 1.1+"
14
+ if Vagrant::VERSION < '1.1.0'
15
+ raise 'The Vagrant HP plugin is only compatible with Vagrant 1.1+'
16
16
  end
17
17
 
18
18
  module VagrantPlugins
19
19
  module HP
20
- class Plugin < Vagrant.plugin("2")
21
- name "HP"
20
+ class Plugin < Vagrant.plugin('2')
21
+ name 'HP'
22
22
  description <<-DESC
23
23
  This plugin installs a provider that allows Vagrant to manage
24
24
  machines in HP Cloud.
25
25
  DESC
26
26
 
27
27
  config(:hp, :provider) do
28
- require_relative "config"
28
+ require_relative 'config'
29
29
  Config
30
30
  end
31
31
 
@@ -35,23 +35,23 @@ module VagrantPlugins
35
35
  setup_i18n
36
36
 
37
37
  # Return the provider
38
- require_relative "provider"
38
+ require_relative 'provider'
39
39
  Provider
40
40
  end
41
41
 
42
42
  # This initializes the internationalization strings.
43
43
  def self.setup_i18n
44
- I18n.load_path << File.expand_path("locales/en.yml", HP.source_root)
44
+ I18n.load_path << File.expand_path('locales/en.yml', HP.source_root)
45
45
  I18n.reload!
46
46
  end
47
47
 
48
48
  # This sets up our log level to be whatever VAGRANT_LOG is.
49
49
  def self.setup_logging
50
- require "log4r"
50
+ require 'log4r'
51
51
 
52
52
  level = nil
53
53
  begin
54
- level = Log4r.const_get(ENV["VAGRANT_LOG"].upcase)
54
+ level = Log4r.const_get(ENV['VAGRANT_LOG'].upcase)
55
55
  rescue NameError
56
56
  # This means that the logging constant wasn't found,
57
57
  # which is fine. We just keep `level` as `nil`. But
@@ -62,12 +62,12 @@ module VagrantPlugins
62
62
  # Some constants, such as "true" resolve to booleans, so the
63
63
  # above error checking doesn't catch it. This will check to make
64
64
  # sure that the log level is an integer, as Log4r requires.
65
- level = nil if !level.is_a?(Integer)
65
+ level = nil unless level.is_a?(Integer)
66
66
 
67
67
  # Set the logging level on all "vagrant" namespaced
68
68
  # logs as long as we have a valid level.
69
69
  if level
70
- logger = Log4r::Logger.new("vagrant_hp")
70
+ logger = Log4r::Logger.new('vagrant_hp')
71
71
  logger.outputters = Log4r::Outputter.stderr
72
72
  logger.level = level
73
73
  logger = nil
@@ -3,12 +3,12 @@
3
3
  # Copyright:: Copyright (c) 2013 Mohit Sethi.
4
4
  #
5
5
 
6
- require "log4r"
7
- require "vagrant"
6
+ require 'log4r'
7
+ require 'vagrant'
8
8
 
9
9
  module VagrantPlugins
10
10
  module HP
11
- class Provider < Vagrant.plugin("2", :provider)
11
+ class Provider < Vagrant.plugin('2', :provider)
12
12
  def initialize(machine)
13
13
  @machine = machine
14
14
  end
@@ -26,7 +26,7 @@ module VagrantPlugins
26
26
  # Run a custom action called "read_ssh_info" which does what it
27
27
  # says and puts the resulting SSH info into the `:machine_ssh_info`
28
28
  # key in the environment.
29
- env = @machine.action("read_ssh_info")
29
+ env = @machine.action('read_ssh_info')
30
30
  env[:machine_ssh_info]
31
31
  end
32
32
 
@@ -34,7 +34,7 @@ module VagrantPlugins
34
34
  # Run a custom action we define called "read_state" which does
35
35
  # what it says. It puts the state in the `:machine_state_id`
36
36
  # key in the environment.
37
- env = @machine.action("read_state")
37
+ env = @machine.action('read_state')
38
38
 
39
39
  state_id = env[:machine_state_id]
40
40
 
@@ -47,7 +47,7 @@ module VagrantPlugins
47
47
  end
48
48
 
49
49
  def to_s
50
- id = @machine.id.nil? ? "new" : @machine.id
50
+ id = @machine.id.nil? ? 'new' : @machine.id
51
51
  "HP (#{id})"
52
52
  end
53
53
  end