vagrant-haipa 0.0.1 → 0.2.1

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.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +11 -0
  3. data/.gitignore +49 -16
  4. data/.rspec_status +5 -0
  5. data/.vscode/launch.json +13 -3
  6. data/Gemfile +6 -2
  7. data/Gemfile.lock +181 -0
  8. data/LICENSE +21 -373
  9. data/Rakefile +7 -16
  10. data/lib/vagrant-haipa/action/converge_machine.rb +44 -0
  11. data/lib/vagrant-haipa/{actions → action}/delete_machine.rb +3 -10
  12. data/lib/vagrant-haipa/action/is_created.rb +19 -0
  13. data/lib/vagrant-haipa/action/is_running.rb +20 -0
  14. data/lib/vagrant-haipa/{actions → action}/message_already_created.rb +1 -1
  15. data/lib/vagrant-haipa/{actions → action}/message_not_created.rb +1 -1
  16. data/lib/vagrant-haipa/{actions → action}/message_will_not_destroy.rb +1 -1
  17. data/lib/vagrant-haipa/action/read_state.rb +19 -0
  18. data/lib/vagrant-haipa/{actions → action}/set_name.rb +3 -6
  19. data/lib/vagrant-haipa/action/start_machine.rb +24 -0
  20. data/lib/vagrant-haipa/action/stop_machine.rb +25 -0
  21. data/lib/vagrant-haipa/{actions → action}/wait_for_ip_address.rb +4 -4
  22. data/lib/vagrant-haipa/{actions.rb → action.rb} +78 -106
  23. data/lib/vagrant-haipa/config.rb +17 -15
  24. data/lib/vagrant-haipa/driver.rb +139 -0
  25. data/lib/vagrant-haipa/errors.rb +4 -36
  26. data/lib/vagrant-haipa/plugin.rb +8 -7
  27. data/lib/vagrant-haipa/provider.rb +44 -63
  28. data/lib/vagrant-haipa/version.rb +2 -2
  29. data/lib/vagrant-haipa.rb +11 -7
  30. data/locales/en.yml +2 -70
  31. data/spec/spec_helper.rb +20 -0
  32. data/spec/unit/provider_spec.rb +38 -0
  33. data/test/Vagrantfile +23 -14
  34. data/test/console.key +27 -0
  35. data/vagrant +27 -27
  36. data/vagrant-haipa.gemspec +3 -4
  37. metadata +32 -53
  38. data/README.md +0 -111
  39. data/lib/vagrant-haipa/actions/check_state.rb +0 -19
  40. data/lib/vagrant-haipa/actions/connect_haipa.rb +0 -24
  41. data/lib/vagrant-haipa/actions/create_machine.rb +0 -56
  42. data/lib/vagrant-haipa/actions/is_created.rb +0 -18
  43. data/lib/vagrant-haipa/actions/is_stopped.rb +0 -18
  44. data/lib/vagrant-haipa/actions/modify_provision_path.rb +0 -38
  45. data/lib/vagrant-haipa/actions/shut_down.rb +0 -33
  46. data/lib/vagrant-haipa/actions/start_machine.rb +0 -34
  47. data/lib/vagrant-haipa/actions/stop_machine.rb +0 -33
  48. data/lib/vagrant-haipa/helpers/client.rb +0 -111
  49. data/lib/vagrant-haipa/helpers/result.rb +0 -40
  50. data/test/cookbooks/test/recipes/default.rb +0 -1
  51. data/test/scripts/provision.sh +0 -3
  52. data/test/test.sh +0 -13
  53. data/test/test_id_rsa +0 -27
  54. data/test/test_id_rsa.pub +0 -1
@@ -1,62 +1,17 @@
1
- require 'vagrant-haipa/actions'
2
- require 'vagrant-haipa/helpers/client'
1
+
3
2
 
4
3
  module VagrantPlugins
5
4
  module Haipa
6
- class Provider < Vagrant.plugin('2', :provider)
5
+ class Provider < Vagrant.plugin("2", :provider)
7
6
 
8
- def self.haipa_machines(machine)
9
- client = Helpers::ApiClient.new(machine)
10
-
11
- unless @haipa_machines
12
- result = client.request('/odata/Machines', {'$expand' => 'Networks' })
13
- @haipa_machines = result['value']
14
- end
15
- return @haipa_machines
16
- end
17
-
18
- # This class method caches status for all machines within
19
- # the Haipa account. A specific machine's status
20
- # may be refreshed by passing :refresh => true as an option.
21
- def self.haipa_machine(machine, opts = {})
22
- client = Helpers::ApiClient.new(machine)
23
-
24
- # load status of machines if it has not been done before
25
- haipa_machines(machine)
26
-
27
- if opts[:refresh] && machine.id
28
- # refresh the machine status for the given machine
29
- @haipa_machines.delete_if { |d| d['Id'].to_s == machine.id }
30
- result = client.request("/odata/Machines(#{machine.id})", {'$expand' => 'Networks' })
31
- @haipa_machines << haipa_machine = result
32
- else
33
- # lookup machine status for the given machine
34
- haipa_machine = @haipa_machines.find { |d| d['Id'].to_s == machine.id }
35
- end
36
-
37
- # if lookup by id failed, check for a machine with a matching name
38
- # and set the id to ensure vagrant stores locally
39
- # TODO allow the user to configure this behavior
40
- unless haipa_machine
41
- name = machine.config.vm.hostname || machine.name
42
- haipa_machine = @haipa_machines.find { |d| d['Name'] == name.to_s }
43
- machine.id = haipa_machine['Id'].to_s if haipa_machine
44
- end
45
-
46
- haipa_machine || { 'Status' => 'not_created' }
47
- end
7
+ # @return (VagrantPlugins::Haipa::Driver) current driver
8
+ attr_reader :driver
48
9
 
49
10
  def initialize(machine)
50
11
  @machine = machine
51
- end
12
+ @logger = Log4r::Logger.new("vagrant::haipa::provider")
52
13
 
53
- def action(name)
54
- # Attempt to get the action method from the Action class if it
55
- # exists, otherwise return nil to show that we don't support the
56
- # given action.
57
- action_method = "action_#{name}"
58
- return Actions.send(action_method) if Actions.respond_to?(action_method)
59
- nil
14
+ @driver = Driver.new(@machine)
60
15
  end
61
16
 
62
17
  # This method is called if the underying machine ID changes. Providers
@@ -65,10 +20,35 @@ module VagrantPlugins
65
20
  # become `nil`). No parameters are given, since the underlying machine
66
21
  # is simply the machine instance given to this object. And no
67
22
  # return value is necessary.
68
- def machine_id_changed
23
+ def machine_id_changed
69
24
  end
70
25
 
71
- # This should return a hash of information that explains how to
26
+ def state
27
+ state_id = nil
28
+ state_id = :not_created if !@machine.id
29
+
30
+ if !state_id
31
+ # Run a custom action we define called "read_state" which does
32
+ # what it says. It puts the state in the `:machine_state_id`
33
+ # key in the environment.
34
+ env = @machine.action(:read_state)
35
+ state_id = env[:machine_state_id]
36
+ end
37
+
38
+ # Get the short and long description
39
+ short = state_id.to_s
40
+ long = ""
41
+
42
+ # If we're not created, then specify the special ID flag
43
+ if state_id == :not_created
44
+ state_id = Vagrant::MachineState::NOT_CREATED_ID
45
+ end
46
+
47
+ # Return the MachineState object
48
+ Vagrant::MachineState.new(state_id, short, long)
49
+ end
50
+
51
+ # This should return a hash of information that explains how to
72
52
  # SSH into the machine. If the machine is not at a point where
73
53
  # SSH is even possible, then `nil` should be returned.
74
54
  #
@@ -87,9 +67,9 @@ module VagrantPlugins
87
67
  # `ssh` prompt with a password, whereas we can pass a private key
88
68
  # via commandline.
89
69
  def ssh_info
90
- machine = Provider.haipa_machine(@machine)
70
+ haipa_machine = @driver.machine()
91
71
 
92
- return nil if machine['Status'].to_sym != :Running
72
+ return nil if haipa_machine.status.to_sym != :Running
93
73
 
94
74
 
95
75
  # Run a custom action called "ssh_ip" which does what it says and puts
@@ -105,14 +85,15 @@ module VagrantPlugins
105
85
  }
106
86
  end
107
87
 
108
- # This should return the state of the machine within this provider.
109
- # The state must be an instance of {MachineState}. Please read the
110
- # documentation of that class for more information.
111
- def state
112
- state = Provider.haipa_machine(@machine)['Status'].downcase.to_sym
113
- long = short = state.to_s
114
- Vagrant::MachineState.new(state, short, long)
115
- end
88
+ def action(name)
89
+ # Attempt to get the action method from the Action class if it
90
+ # exists, otherwise return nil to show that we don't support the
91
+ # given action.
92
+ action_method = "action_#{name}"
93
+ return Action.send(action_method) if Action.respond_to?(action_method)
94
+ nil
95
+ end
116
96
  end
117
97
  end
118
98
  end
99
+
@@ -1,5 +1,5 @@
1
1
  module VagrantPlugins
2
2
  module Haipa
3
- VERSION = '0.0.1'
3
+ VERSION = '0.2.1'
4
4
  end
5
- end
5
+ end
data/lib/vagrant-haipa.rb CHANGED
@@ -1,17 +1,21 @@
1
1
  require 'vagrant-haipa/version'
2
2
  require 'vagrant-haipa/plugin'
3
3
  require 'vagrant-haipa/errors'
4
+ require 'vagrant-haipa/driver'
4
5
 
5
6
  module VagrantPlugins
6
7
  module Haipa
7
- def self.source_root
8
- @source_root ||= Pathname.new(File.expand_path('../../', __FILE__))
9
- end
8
+ OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE
9
+
10
+ lib_path = Pathname.new(File.expand_path("../vagrant-haipa", __FILE__))
11
+ autoload :Action, lib_path.join("action")
12
+ autoload :Errors, lib_path.join("errors")
10
13
 
11
- def self.public_key(private_key_path)
12
- File.read("#{private_key_path}.pub")
13
- rescue
14
- raise Errors::PublicKeyError, :path => "#{private_key_path}.pub"
14
+ # This returns the path to the source of this plugin.
15
+ #
16
+ # @return [Pathname]
17
+ def self.source_root
18
+ @source_root ||= Pathname.new(File.expand_path("../../", __FILE__))
15
19
  end
16
20
 
17
21
  I18n.load_path << File.expand_path('locales/en.yml', source_root)
data/locales/en.yml CHANGED
@@ -1,47 +1,19 @@
1
1
  en:
2
2
  vagrant_haipa:
3
3
  info:
4
- off: "Machine is off"
5
4
  not_created: "Machine has not been created"
6
5
  already_active: "Machine is already active"
7
- already_off: "Machine is already off"
6
+ stop_machine: "Stopping the machine..."
7
+ start_machine: "Starting the machine..."
8
8
  creating: "Creating a new machine..."
9
9
  machine_ip: "Assigned IP address: %{ip}"
10
10
  destroying: "Destroying the machine..."
11
- shutting_down: "Shutting down the machine..."
12
- powering_off: "Powering off the machine..."
13
- powering_on: "Powering on the machine..."
14
- rebuilding: "Rebuilding the machine..."
15
- reloading: "Rebooting the machine..."
16
- creating_user: "Creating user account: %{user}..."
17
- late_sudo_install_deb8: "Haipa's debian-8 image lacks sudo. Installing now."
18
- modifying_sudo: "Modifying sudoers file to remove tty requirement..."
19
- using_key: "Using existing SSH key: %{name}"
20
- creating_key: "Creating new SSH key: %{name}..."
21
- trying_rsync_install: "Rsync not found, attempting to install with yum..."
22
- rsyncing: "Rsyncing folder: %{hostpath} => %{guestpath}..."
23
- rsync_missing: "The rsync executable was not found in the current path."
24
- images: "Description Slug ID\n\n%{images}"
25
- images_with_regions: "Description Slug ID Regions\n\n%{images}"
26
- regions: "Description Slug\n\n%{regions}"
27
- sizes: "Memory CPUs Slug\n\n%{sizes}"
28
- list_error: 'Could not contact the Haipa API: %{message}'
29
11
  will_not_destroy: |-
30
12
  The instance '%{name}' will not be destroyed, since the confirmation
31
13
  was declined.
32
14
  already_status: |-
33
15
  The machine is already %{status}.
34
- config:
35
- token: "Token is required"
36
- private_key: "SSH private key path is required"
37
- public_key: "SSH public key not found: %{key}"
38
16
  errors:
39
- public_key: |-
40
- There was an issue reading the public key at:
41
-
42
- Path: %{path}
43
-
44
- Please check the file's permissions.
45
17
  api_status: |-
46
18
  There was an issue with the request made to the Haipa
47
19
  API at:
@@ -53,43 +25,3 @@ en:
53
25
 
54
26
  Status: %{status}
55
27
  Response: %{response}
56
- rsync: |-
57
- There was an error when attemping to rsync a share folder.
58
- Please inspect the error message below for more info.
59
-
60
- Host path: %{hostpath}
61
- Guest path: %{guestpath}
62
- Error: %{stderr}
63
- json: |-
64
- There was an issue with the JSON response from the Haipa
65
- API at:
66
-
67
- Path: %{path}
68
- URI Params: %{params}
69
-
70
- The response JSON from the API was:
71
-
72
- Response: %{response}
73
- result_match: |-
74
- The result collection for %{collection_name}:
75
-
76
- %{sub_obj}
77
-
78
- Contained no object with the value "%{value}" for the the
79
- key "%{key}".
80
-
81
- Please ensure that the configured value exists in the collection.
82
- certificate: |-
83
- The secure connection to the Haipa API has failed. Please
84
- ensure that your local certificates directory is defined in the
85
- provider config.
86
-
87
- config.vm.provider :haipa do |vm|
88
- vm.ca_path = "/path/to/ssl/ca/cert.crt"
89
- end
90
-
91
- This is generally caused by the OpenSSL configuration associated
92
- with the Ruby install being unaware of the system specific ca
93
- certs.
94
- local_ip: |-
95
- The Haipa provider was unable to determine the host's IP.
@@ -0,0 +1,20 @@
1
+ require "bundler/setup"
2
+
3
+ # Disable Vagrant autoloading so that other plugins defined in the Gemfile for
4
+ # Acceptance tests are not loaded.
5
+ ENV['VAGRANT_NO_PLUGINS'] = '1'
6
+
7
+ require 'vagrant-spec/unit'
8
+ require 'vagrant-haipa'
9
+
10
+ RSpec.configure do |config|
11
+ # Enable flags like --only-failures and --next-failure
12
+ config.example_status_persistence_file_path = ".rspec_status"
13
+
14
+ # Disable RSpec exposing methods globally on `Module` and `main`
15
+ config.disable_monkey_patching!
16
+
17
+ config.expect_with :rspec do |c|
18
+ c.syntax = :expect
19
+ end
20
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+ require 'vagrant-haipa/provider'
3
+
4
+ RSpec.describe VagrantPlugins::Haipa::Provider do
5
+ include_context 'vagrant-unit'
6
+
7
+ let(:machine){ double("machine") }
8
+ let(:platform){ double("platform") }
9
+ subject { described_class.new(machine) }
10
+
11
+ before do
12
+ stub_const("Vagrant::Util::Platform", platform)
13
+ allow(machine).to receive(:id).and_return("foo")
14
+ end
15
+
16
+
17
+ describe "#driver" do
18
+ it "is initialized" do
19
+ expect(subject.driver).to be_kind_of(VagrantPlugins::Haipa::Driver)
20
+ end
21
+ end
22
+
23
+ describe "#state" do
24
+ it "returns not_created if no ID" do
25
+ allow(machine).to receive(:id).and_return(nil)
26
+
27
+ expect(subject.state.id).to eq(:not_created)
28
+ end
29
+
30
+ it "calls an action to determine the ID" do
31
+ allow(machine).to receive(:id).and_return("foo")
32
+ expect(machine).to receive(:action).with(:read_state).
33
+ and_return({ machine_state_id: :bar })
34
+
35
+ expect(subject.state.id).to eq(:bar)
36
+ end
37
+ end
38
+ end
data/test/Vagrantfile CHANGED
@@ -3,41 +3,50 @@ REQUIRED_PLUGINS = %w(vagrant-haipa)
3
3
  Vagrant.configure('2') do |config|
4
4
 
5
5
  config.ssh.username = 'ubuntu'
6
- config.ssh.password = 'vagrant'
6
+ config.ssh.password = 'ubuntu'
7
7
 
8
8
  config.vm.synced_folder ".", "/vagrant", disabled: true
9
9
 
10
10
  #config.vm.provision :shell, :path => 'scripts/provision.sh'
11
+ #config.omnibus.chef_version = :latest
12
+
11
13
 
12
14
  config.vm.define :ubuntu do |ubuntu|
15
+
13
16
  ubuntu.vm.provider :haipa do |provider|
17
+ provider.client_id = 'console'
18
+ provider.client_key_file = 'console.key'
19
+ provider.identity_endpoint = 'https://localhost:62189/identity'
20
+ provider.api_endpoint = 'https://localhost:62189/api'
21
+
14
22
  provider.vm_config = {
15
- 'Memory' => {
16
- 'Startup' => 2048
23
+ 'memory' => {
24
+ 'startup' => 2048
17
25
  },
18
- 'Disks' => [
26
+ 'disks' => [
19
27
  {
20
- "Template" => 'T:\openstack\ubuntu-xenial.vhdx',
21
- "Size" => 20
28
+ 'template' => 'T:\openstack\ubuntu-xenial.vhdx',
29
+ 'size' => 20
22
30
  }
23
31
  ],
24
- 'NetworkAdapters' => [
32
+ 'networkAdapters' => [
25
33
  {
26
- "Name" => "eth0",
27
- "SwitchName" => "Default Switch",
34
+ 'name' => "eth0",
35
+ 'switchName' => "Default Switch",
28
36
  }
29
37
  ] ,
30
38
  }
31
39
 
32
40
  provider.provision = {
33
- 'Hostname' => 'basic',
34
- "UserData" => {
35
- "password" => config.ssh.password,
41
+ 'hostname' => 'basic',
42
+ 'userData' => {
43
+ "package_upgrade": true,
36
44
  "chpasswd" => {
37
- "expire"=> "False"
45
+ "expire": false
46
+ },
47
+ "password" => "ubuntu"
38
48
  }
39
49
  }
40
- }
41
50
  end
42
51
  end
43
52
  end
data/test/console.key ADDED
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEogIBAAKCAQEAw+q1IZy3iYRsjzZuitP4+2UYVY+AO/OZq5/O5erlseayss7g
3
+ zomY2NIg/kYKcrJkUZ04Y9RknWLHEw9iHGIxEMIChdaJTlM0IYgaVToWKZeWi2+h
4
+ yogPzAYziL/+fG0r6GnEvI7AHztsZUbZe7PcXL/NP0ZIamsMzXSAEt1Y8Fi50reV
5
+ XkNO9h60oI79crOIH+bcfgIpRYMkHcxrAFGBkfFMcIjup/G4GPEpKl7pbeTHm87u
6
+ 3QwQivIlYCX/fkdmggLcWaOpA4GtkLOzWgjekIulj1pGymbCsdOd48Pnp/+zWttA
7
+ SxVLMq6egGXya/I8mQcAMBx4tm5HiMi/dXNS1QIDAQABAoIBAE9TsZOyiP49iFdU
8
+ it3bhm0EOh4qxJmBwS8kvfmKawblimWsLopyXFkue/15DrHyWXxSVIrXbQXtAP5O
9
+ tEMZ3xQR+kOG4oG8XtdU7JSluGOO5X3/7Vq8TOkneaZdVwW6jpTEfsx6YIBE51b6
10
+ oQTdhtRnNQvxwVCVl9F44oLA7UojbX1PbSbW4OO5X+ZX0Xgk3U39MUjdza4jyggx
11
+ Dyp+QWk8sN/6Xn0E5DM97c+y2xsLlekFckWTUp7ECb0iTZ35SuHxe3n9xAOclXBI
12
+ CQ8VZZxKqRwh8guB6OFxrE9jjVCxSg11hnXbHte9iJYb4sCAI4I+jNJFprLhEmSs
13
+ cvtjkuECgYEA3ptQTys9IAv6H9WNZ49TBQqzL1Y+rNm8k1zkxo6G1z/47FtPSjmU
14
+ 0SRdeJYjRWiM8k5WE8mMl5qqhonFoDq9ILF/70GgKnaI62P8vF4meAWW6dERY//P
15
+ JyquYJBX+oQjPVStWrSihD5/yjhhciy78BFQLPbfc7Hp8XJxS8MLzPsCgYEA4U5u
16
+ qNmJKECPg+TJUw1gxKggAMINNIezMSsmPXRdCN5MZugfL1uTdJN3Wu8kdc+3hmHQ
17
+ k1k2iYMCJ718cD2H3zanOYs6iqeD5o5K00JJKBbgnWyGB1I7uSHJMAp9Ur4nX+LV
18
+ 8/zFd4KI0Nmv1AUlb3gG8e680TnZabZX11Xhtm8CgYAJD/GZB32ZjGNGYH89NAyB
19
+ LApXZv9uMf8HUMTPgIXkxWnw1VbJAscYLI7RleshrDvwsVe3voDGuzkt+PXerAV/
20
+ CzrWFqnakLDKRGvJj1upjzCxnB1FIOjiA07OB5JNVIvKt2PHSYtELvcs2Fa/Oyr7
21
+ fvjwm6xFHX0Uo0ARgYM9eQKBgBecdJRVV75UJbYYv9BoUn/JbrElpOSgY/L/Jp7C
22
+ Fw3a3f7azInV+vn4ikWJUjTWc9EtZwJKEyEODafEf8nzaM3HmHa7VIM7UuNSfhzt
23
+ kWUWIKvet50EzSV1mPPj5YZKTy4JQ4qyLq97ioL4jSiW8XlhBrlL35W9jj850LLM
24
+ WT8ZAoGAU4omGMECa9CNU9QoZvNuXpUju823Euja2Lg2AE7XGNBxqA8dmL5czuXR
25
+ gEEZ740uPRplAj3SPWoBHT/Gzo44NUCJFuouHu0CBaTUssir1E/TnS9wQI694eRg
26
+ hoqMWWCMQ2+rE7bONY60PaB4Y6mAY9SMS9r2QAI8sipuwraj5l8=
27
+ -----END RSA PRIVATE KEY-----
data/vagrant CHANGED
@@ -1,27 +1,27 @@
1
- #!C:/Users/vagrant/AppData/Local/Temp/b2p1jxhg.y1c/embedded/mingw64/bin/ruby.exe
2
- #
3
- # This file was generated by RubyGems.
4
- #
5
- # The application 'vagrant' is installed as part of a gem, and
6
- # this file is here to facilitate running it.
7
- #
8
-
9
- require 'rubygems'
10
-
11
- version = ">= 0.a"
12
-
13
- if ARGV.first
14
- str = ARGV.first
15
- str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
16
- if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
17
- version = $1
18
- ARGV.shift
19
- end
20
- end
21
-
22
- if Gem.respond_to?(:activate_bin_path)
23
- load Gem.activate_bin_path('vagrant', 'vagrant', version)
24
- else
25
- gem "vagrant", version
26
- load Gem.bin_path("vagrant", "vagrant", version)
27
- end
1
+ #!C:/Users/vagrant/AppData/Local/Temp/hecdnuu3.bee/embedded/mingw64/bin/ruby.exe
2
+ #
3
+ # This file was generated by RubyGems.
4
+ #
5
+ # The application 'vagrant' is installed as part of a gem, and
6
+ # this file is here to facilitate running it.
7
+ #
8
+
9
+ require 'rubygems'
10
+
11
+ version = ">= 0.a"
12
+
13
+ if ARGV.first
14
+ str = ARGV.first
15
+ str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
16
+ if str =~ /\A_(.*)_\z/ and Gem::Version.correct?($1) then
17
+ version = $1
18
+ ARGV.shift
19
+ end
20
+ end
21
+
22
+ if Gem.respond_to?(:activate_bin_path)
23
+ load Gem.activate_bin_path('vagrant', 'vagrant', version)
24
+ else
25
+ gem "vagrant", version
26
+ load Gem.bin_path("vagrant", "vagrant", version)
27
+ end
@@ -6,8 +6,8 @@ require 'vagrant-haipa/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "vagrant-haipa"
8
8
  gem.version = VagrantPlugins::Haipa::VERSION
9
- gem.authors = ["Frank Wagner"]
10
- gem.email = ["info@contiva.com"]
9
+ gem.authors = ["Haipa contributors"]
10
+ gem.email = ["package-maintainers@haipa.io"]
11
11
  gem.description = %q{Enables Vagrant to manage Hyper-V with Haipa}
12
12
  gem.summary = gem.description
13
13
 
@@ -15,7 +15,6 @@ Gem::Specification.new do |gem|
15
15
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
16
  gem.require_paths = ["lib"]
17
17
 
18
- gem.add_dependency "faraday", ">= 0.8.6"
19
- gem.add_dependency "json"
20
18
  gem.add_dependency "log4r"
19
+ gem.add_dependency "haipa_compute", ">= 0.0.2"
21
20
  end
metadata CHANGED
@@ -1,31 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-haipa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
- - Frank Wagner
7
+ - Haipa contributors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-16 00:00:00.000000000 Z
11
+ date: 2019-08-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: faraday
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 0.8.6
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: 0.8.6
27
- - !ruby/object:Gem::Dependency
28
- name: json
14
+ name: log4r
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - ">="
@@ -39,65 +25,61 @@ dependencies:
39
25
  - !ruby/object:Gem::Version
40
26
  version: '0'
41
27
  - !ruby/object:Gem::Dependency
42
- name: log4r
28
+ name: haipa_compute
43
29
  requirement: !ruby/object:Gem::Requirement
44
30
  requirements:
45
31
  - - ">="
46
32
  - !ruby/object:Gem::Version
47
- version: '0'
33
+ version: 0.0.2
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - ">="
53
39
  - !ruby/object:Gem::Version
54
- version: '0'
40
+ version: 0.0.2
55
41
  description: Enables Vagrant to manage Hyper-V with Haipa
56
42
  email:
57
- - info@contiva.com
43
+ - package-maintainers@haipa.io
58
44
  executables: []
59
45
  extensions: []
60
46
  extra_rdoc_files: []
61
47
  files:
48
+ - ".editorconfig"
62
49
  - ".gitignore"
50
+ - ".rspec_status"
63
51
  - ".vscode/launch.json"
64
52
  - Gemfile
53
+ - Gemfile.lock
65
54
  - LICENSE
66
- - README.md
67
55
  - Rakefile
68
56
  - box/haipa.box
69
57
  - box/metadata.json
70
58
  - lib/vagrant-haipa.rb
71
- - lib/vagrant-haipa/actions.rb
72
- - lib/vagrant-haipa/actions/check_state.rb
73
- - lib/vagrant-haipa/actions/connect_haipa.rb
74
- - lib/vagrant-haipa/actions/create_machine.rb
75
- - lib/vagrant-haipa/actions/delete_machine.rb
76
- - lib/vagrant-haipa/actions/is_created.rb
77
- - lib/vagrant-haipa/actions/is_stopped.rb
78
- - lib/vagrant-haipa/actions/message_already_created.rb
79
- - lib/vagrant-haipa/actions/message_not_created.rb
80
- - lib/vagrant-haipa/actions/message_will_not_destroy.rb
81
- - lib/vagrant-haipa/actions/modify_provision_path.rb
82
- - lib/vagrant-haipa/actions/set_name.rb
83
- - lib/vagrant-haipa/actions/shut_down.rb
84
- - lib/vagrant-haipa/actions/start_machine.rb
85
- - lib/vagrant-haipa/actions/stop_machine.rb
86
- - lib/vagrant-haipa/actions/wait_for_ip_address.rb
59
+ - lib/vagrant-haipa/action.rb
60
+ - lib/vagrant-haipa/action/converge_machine.rb
61
+ - lib/vagrant-haipa/action/delete_machine.rb
62
+ - lib/vagrant-haipa/action/is_created.rb
63
+ - lib/vagrant-haipa/action/is_running.rb
64
+ - lib/vagrant-haipa/action/message_already_created.rb
65
+ - lib/vagrant-haipa/action/message_not_created.rb
66
+ - lib/vagrant-haipa/action/message_will_not_destroy.rb
67
+ - lib/vagrant-haipa/action/read_state.rb
68
+ - lib/vagrant-haipa/action/set_name.rb
69
+ - lib/vagrant-haipa/action/start_machine.rb
70
+ - lib/vagrant-haipa/action/stop_machine.rb
71
+ - lib/vagrant-haipa/action/wait_for_ip_address.rb
87
72
  - lib/vagrant-haipa/config.rb
73
+ - lib/vagrant-haipa/driver.rb
88
74
  - lib/vagrant-haipa/errors.rb
89
- - lib/vagrant-haipa/helpers/client.rb
90
- - lib/vagrant-haipa/helpers/result.rb
91
75
  - lib/vagrant-haipa/plugin.rb
92
76
  - lib/vagrant-haipa/provider.rb
93
77
  - lib/vagrant-haipa/version.rb
94
78
  - locales/en.yml
79
+ - spec/spec_helper.rb
80
+ - spec/unit/provider_spec.rb
95
81
  - test/Vagrantfile
96
- - test/cookbooks/test/recipes/default.rb
97
- - test/scripts/provision.sh
98
- - test/test.sh
99
- - test/test_id_rsa
100
- - test/test_id_rsa.pub
82
+ - test/console.key
101
83
  - vagrant
102
84
  - vagrant-haipa.gemspec
103
85
  homepage:
@@ -118,15 +100,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
118
100
  - !ruby/object:Gem::Version
119
101
  version: '0'
120
102
  requirements: []
121
- rubyforge_project:
122
- rubygems_version: 2.7.6
103
+ rubygems_version: 3.0.3
123
104
  signing_key:
124
105
  specification_version: 4
125
106
  summary: Enables Vagrant to manage Hyper-V with Haipa
126
107
  test_files:
108
+ - spec/spec_helper.rb
109
+ - spec/unit/provider_spec.rb
127
110
  - test/Vagrantfile
128
- - test/cookbooks/test/recipes/default.rb
129
- - test/scripts/provision.sh
130
- - test/test.sh
131
- - test/test_id_rsa
132
- - test/test_id_rsa.pub
111
+ - test/console.key