vagrant-simplecloud 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/CHANGELOG.md +6 -0
  4. data/Gemfile +11 -0
  5. data/LICENSE.txt +23 -0
  6. data/README.md +143 -0
  7. data/Rakefile +22 -0
  8. data/box/metadata.json +3 -0
  9. data/box/simple_cloud.box +0 -0
  10. data/lib/vagrant-simplecloud.rb +20 -0
  11. data/lib/vagrant-simplecloud/actions.rb +165 -0
  12. data/lib/vagrant-simplecloud/actions/check_state.rb +19 -0
  13. data/lib/vagrant-simplecloud/actions/create.rb +84 -0
  14. data/lib/vagrant-simplecloud/actions/destroy.rb +32 -0
  15. data/lib/vagrant-simplecloud/actions/modify_provision_path.rb +38 -0
  16. data/lib/vagrant-simplecloud/actions/power_off.rb +33 -0
  17. data/lib/vagrant-simplecloud/actions/power_on.rb +36 -0
  18. data/lib/vagrant-simplecloud/actions/rebuild.rb +56 -0
  19. data/lib/vagrant-simplecloud/actions/reload.rb +33 -0
  20. data/lib/vagrant-simplecloud/actions/setup_key.rb +53 -0
  21. data/lib/vagrant-simplecloud/actions/setup_sudo.rb +48 -0
  22. data/lib/vagrant-simplecloud/actions/setup_user.rb +66 -0
  23. data/lib/vagrant-simplecloud/actions/shut_down.rb +34 -0
  24. data/lib/vagrant-simplecloud/actions/sync_folders.rb +89 -0
  25. data/lib/vagrant-simplecloud/commands/list.rb +89 -0
  26. data/lib/vagrant-simplecloud/commands/rebuild.rb +29 -0
  27. data/lib/vagrant-simplecloud/config.rb +64 -0
  28. data/lib/vagrant-simplecloud/errors.rb +37 -0
  29. data/lib/vagrant-simplecloud/helpers/client.rb +151 -0
  30. data/lib/vagrant-simplecloud/helpers/result.rb +40 -0
  31. data/lib/vagrant-simplecloud/plugin.rb +31 -0
  32. data/lib/vagrant-simplecloud/provider.rb +102 -0
  33. data/lib/vagrant-simplecloud/version.rb +5 -0
  34. data/locales/en.yml +90 -0
  35. data/test/Vagrantfile +41 -0
  36. data/test/cookbooks/test/recipes/default.rb +1 -0
  37. data/test/scripts/provision.sh +3 -0
  38. data/test/test.sh +14 -0
  39. data/test/test_id_rsa +27 -0
  40. data/test/test_id_rsa.pub +1 -0
  41. data/testkit.rb +40 -0
  42. data/vagrant-simplecloud.gemspec +22 -0
  43. metadata +146 -0
@@ -0,0 +1,102 @@
1
+ require 'vagrant-simplecloud/actions'
2
+
3
+ module VagrantPlugins
4
+ module SimpleCloud
5
+ class Provider < Vagrant.plugin('2', :provider)
6
+
7
+ # This class method caches status for all droplets within
8
+ # the Simple Cloud account. A specific droplet's status
9
+ # may be refreshed by passing :refresh => true as an option.
10
+ def self.droplet(machine, opts = {})
11
+ client = Helpers::ApiClient.new(machine)
12
+
13
+ # load status of droplets if it has not been done before
14
+ if !@droplets
15
+ result = client.request('/v2/droplets')
16
+ @droplets = result['droplets']
17
+ end
18
+
19
+ if opts[:refresh] && machine.id
20
+ # refresh the droplet status for the given machine
21
+ @droplets.delete_if { |d| d['id'].to_s == machine.id }
22
+ result = client.request("/v2/droplets/#{machine.id}")
23
+ @droplets << droplet = result['droplet']
24
+ else
25
+ # lookup droplet status for the given machine
26
+ droplet = @droplets.find { |d| d['id'].to_s == machine.id }
27
+ end
28
+
29
+ # if lookup by id failed, check for a droplet with a matching name
30
+ # and set the id to ensure vagrant stores locally
31
+ # TODO allow the user to configure this behavior
32
+ if !droplet
33
+ name = machine.config.vm.hostname || machine.name
34
+ droplet = @droplets.find { |d| d['name'] == name.to_s }
35
+ machine.id = droplet['id'].to_s if droplet
36
+ end
37
+
38
+ droplet ||= {'status' => 'not_created'}
39
+ end
40
+
41
+ def initialize(machine)
42
+ @machine = machine
43
+ end
44
+
45
+ def action(name)
46
+ return Actions.send(name) if Actions.respond_to?(name)
47
+ nil
48
+ end
49
+
50
+ # This method is called if the underying machine ID changes. Providers
51
+ # can use this method to load in new data for the actual backing
52
+ # machine or to realize that the machine is now gone (the ID can
53
+ # become `nil`). No parameters are given, since the underlying machine
54
+ # is simply the machine instance given to this object. And no
55
+ # return value is necessary.
56
+ def machine_id_changed
57
+ end
58
+
59
+ # This should return a hash of information that explains how to
60
+ # SSH into the machine. If the machine is not at a point where
61
+ # SSH is even possible, then `nil` should be returned.
62
+ #
63
+ # The general structure of this returned hash should be the
64
+ # following:
65
+ #
66
+ # {
67
+ # :host => "1.2.3.4",
68
+ # :port => "22",
69
+ # :username => "mitchellh",
70
+ # :private_key_path => "/path/to/my/key"
71
+ # }
72
+ #
73
+ # **Note:** Vagrant only supports private key based authenticatonion,
74
+ # mainly for the reason that there is no easy way to exec into an
75
+ # `ssh` prompt with a password, whereas we can pass a private key
76
+ # via commandline.
77
+ def ssh_info
78
+ droplet = Provider.droplet(@machine)
79
+
80
+ return nil if droplet['status'].to_sym != :active
81
+
82
+ public_network = droplet['networks']['v4'].find { |network| network['type'] == 'public' }
83
+
84
+ return {
85
+ :host => public_network['ip_address'],
86
+ :port => '22',
87
+ :username => 'root',
88
+ :private_key_path => nil
89
+ }
90
+ end
91
+
92
+ # This should return the state of the machine within this provider.
93
+ # The state must be an instance of {MachineState}. Please read the
94
+ # documentation of that class for more information.
95
+ def state
96
+ state = Provider.droplet(@machine)['status'].to_sym
97
+ long = short = state.to_s
98
+ Vagrant::MachineState.new(state, short, long)
99
+ end
100
+ end
101
+ end
102
+ end
@@ -0,0 +1,5 @@
1
+ module VagrantPlugins
2
+ module SimpleCloud
3
+ VERSION = '0.0.1'
4
+ end
5
+ end
data/locales/en.yml ADDED
@@ -0,0 +1,90 @@
1
+ en:
2
+ vagrant_simple_cloud:
3
+ info:
4
+ off: "Droplet is off"
5
+ not_created: "Droplet has not been created"
6
+ already_active: "Droplet is already active"
7
+ already_off: "Droplet is already off"
8
+ creating: "Creating a new droplet..."
9
+ droplet_ip: "Assigned IP address: %{ip}"
10
+ droplet_private_ip: "Private IP address: %{ip}"
11
+ destroying: "Destroying the droplet..."
12
+ shutting_down: "Shutting down the droplet..."
13
+ powering_off: "Powering off the droplet..."
14
+ powering_on: "Powering on the droplet..."
15
+ rebuilding: "Rebuilding the droplet..."
16
+ reloading: "Rebooting the droplet..."
17
+ creating_user: "Creating user account: %{user}..."
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 Simple Cloud API: %{message}'
29
+ config:
30
+ token: "Token is required. Set DO_TOKEN variable."
31
+ private_key: "SSH private key path is required"
32
+ public_key: "SSH public key not found: %{key}"
33
+ errors:
34
+ public_key: |-
35
+ There was an issue reading the public key at:
36
+
37
+ Path: %{path}
38
+
39
+ Please check the file's permissions.
40
+ api_status: |-
41
+ There was an issue with the request made to the Simple Cloud
42
+ API at:
43
+
44
+ Path: %{path}
45
+ URI Params: %{params}
46
+
47
+ The response status from the API was:
48
+
49
+ Status: %{status}
50
+ Response: %{response}
51
+ rsync: |-
52
+ There was an error when attemping to rsync a share folder.
53
+ Please inspect the error message below for more info.
54
+
55
+ Host path: %{hostpath}
56
+ Guest path: %{guestpath}
57
+ Error: %{stderr}
58
+ json: |-
59
+ There was an issue with the JSON response from the Simple Cloud
60
+ API at:
61
+
62
+ Path: %{path}
63
+ URI Params: %{params}
64
+
65
+ The response JSON from the API was:
66
+
67
+ Response: %{response}
68
+ result_match: |-
69
+ The result collection for %{collection_name}:
70
+
71
+ %{sub_obj}
72
+
73
+ Contained no object with the value "%{value}" for the the
74
+ key "%{key}".
75
+
76
+ Please ensure that the configured value exists in the collection.
77
+ certificate: |-
78
+ The secure connection to the Simple Cloud API has failed. Please
79
+ ensure that your local certificates directory is defined in the
80
+ provider config.
81
+
82
+ config.vm.provider :simple_cloud do |vm|
83
+ vm.ca_path = "/path/to/ssl/ca/cert.crt"
84
+ end
85
+
86
+ This is generally caused by the OpenSSL configuration associated
87
+ with the Ruby install being unaware of the system specific ca
88
+ certs.
89
+ local_ip: |-
90
+ The Simple Cloud provider was unable to determine the host's IP.
data/test/Vagrantfile ADDED
@@ -0,0 +1,41 @@
1
+ #Vagrant.require_plugin('vagrant-simplecloud')
2
+ #Vagrant.require_plugin('vagrant-omnibus')
3
+
4
+ Vagrant.configure('2') do |config|
5
+ #config.omnibus.chef_version = :latest
6
+
7
+ #config.ssh.username = 'tester'
8
+ config.ssh.private_key_path = 'test_id_rsa'
9
+
10
+ config.vm.synced_folder '.', '/vagrant', :disabled => true
11
+
12
+ config.vm.provider :simple_cloud do |provider, override|
13
+ override.vm.box = 'simple_cloud'
14
+ override.vm.box_url = 'https://github.com/vadikgo/vagrant-simplecloud/raw/master/box/simple_cloud.box'
15
+ provider.token = ENV['DO_TOKEN']
16
+ provider.ssh_key_name = 'Test Key'
17
+ provider.image = '123'
18
+ provider.region = 'base'
19
+ provider.size = '1'
20
+ end
21
+
22
+ config.vm.provision :shell, :path => 'scripts/provision.sh'
23
+
24
+ config.vm.provision :chef_solo do |chef|
25
+ chef.cookbooks_path = 'cookbooks'
26
+ chef.add_recipe 'test'
27
+ end
28
+
29
+ config.vm.define :debian do |debian|
30
+ debian.vm.hostname = "vagrant-debian-test"
31
+ debian.vm.provider :simple_cloud do |provider|
32
+ provider.image = '123'
33
+ end
34
+ end
35
+
36
+ #config.vm.define :centos do |centos|
37
+ #centos.vm.provider :simple_cloud do |provider|
38
+ #provider.image = 'centos-6-5-x64'
39
+ #end
40
+ #end
41
+ end
@@ -0,0 +1 @@
1
+ log 'Testing 1 2 3!'
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ echo 'Testing 1 2 3!'
data/test/test.sh ADDED
@@ -0,0 +1,14 @@
1
+ # if ! bundle exec vagrant box list | grep simple_cloud 1>/dev/null; then
2
+ # bundle exec vagrant box add simple_cloud box/simple_cloud.box
3
+ # fi
4
+
5
+ cd test
6
+
7
+ bundle _1.7.9_ exec vagrant up --provider=simple_cloud
8
+ bundle _1.7.9_ exec vagrant up
9
+ bundle _1.7.9_ exec vagrant provision
10
+ bundle _1.7.9_ exec vagrant rebuild
11
+ bundle _1.7.9_ exec vagrant halt
12
+ bundle _1.7.9_ exec vagrant destroy
13
+
14
+ cd ..
data/test/test_id_rsa ADDED
@@ -0,0 +1,27 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEowIBAAKCAQEAmxZRyfvgXFxlPW9ivoxffdK9erqpCp1oitghUtDxbzPSCbNw
3
+ qBoiJcnPVA/TuCxMnruUcNEXYgKfTL8lD3A1Hom8N1pTAhSed5m4qAGqTMubT15s
4
+ cSR+SnDdriShErB/9YSb9LVn1aR0MsFS3H/+x1j4w5d6hBas8BhDfuVd16shvoaA
5
+ OKy0ywy+NBuvGy/6Au3q3t7M9wdelODRnYLSWWqaLeYExRKxWWc7ape+oduQoe4r
6
+ BNVwGmIOjWOM9aFPEPVHdLGO+LQyPExdeuS0rW96a39U4p8GjGzsrkNcKzVOGjM3
7
+ pIsGs3qOi7RzJ3z48HiBj9NT8I2fFpGHERerbQIDAQABAoIBABXsIcObhyuHJAh7
8
+ JkopLZZro70lhZ+qgIyf4JYEUxyVBqu4YcRhbVJKJLSNSDBQksQdX+5SoCuKk1oV
9
+ 6vcztU6Lyb9JVVKF96CQajnVgm04msutXUbhEbkUG0Hyi5JIwM3D4QfGXNcmWAaU
10
+ rVHeBfXH7eI4F2l0ix2lUGUvpwRFRDq9HgpOjXzyc57B4jeF7na/UTnt+Uoi4hzZ
11
+ FjjQ7nSLqEJLXtQBqt4EnAZu6/9JlAApunyMOX2oTqRNn8XGmD0Rc+AouipHM+Mc
12
+ 9/fN9oqVxxXw2MdJA6S/sEFLEDrbifmyyHOereuZtOjdWLqsCdZwewYl8nuBnYEU
13
+ GjVzYgECgYEAx+efis7xma28HWqtW9GLvjBcFAD/f+MDDeqX9TKFwf+91tUq0QZi
14
+ SqXvmIvCnpsO8I70WEskT+pPwJWReAbZBrCbCVDbH34KEkAHywH9sK6chWnB8OpU
15
+ 0mp0gH89A4bq/tedKVHCQ2sAbKgbIc1zf3zpmMQiV+smMDQXU1fTg/kCgYEAxpst
16
+ BD2cYftFjxFZE1v8fx6t6oHtzYRtNNFTYzfxzzRBaTTRRzdhSfh0tLFueyg/fcKR
17
+ oCXUxbfCYRLk+zHP2p/AyyN9R5p2AMAc6lOZPpBj7u9kjjDVnk76DYnLDqP3Da2s
18
+ i7b0DNYxm2gt1VSZfOuJHv7z85SLcJQsg+3ymBUCgYBrOpFX0d3Cw3COjvRitiox
19
+ YJtjl411uf2fb2EHg4xAHcBlBn8rFDOROyUkPIOutBn1a5kh61yVCWiyMwiOy42K
20
+ ixz+iEKhx+f7FiGYAX9lUKRg4/PGGMxa+gN4EchWpf5TqLCCw3pi03is0BeNsDjt
21
+ /8EF0t9hLZ+UZ7zDVe79cQKBgGTPi5AlfeW2V96BHcfX31jfR8RLY1v4pj4zKrKo
22
+ SRO2IKW4a6pMkBOuC/9UORJGocPCKY0y5sfduMrxfk2LQUhl4sS6JPNdkhxbZ9IB
23
+ 0T2SqUc1OMN8QlJzIDYTBYFO9S56Q6U/nq2NY+zQesNYh/iCzj1viIDRm93vOJFX
24
+ DNbpAoGBALlQvzzMsT3/fPYn8moQiUCJ9XRZ4X2qwYy5Q8J8QvutI+j9o9+pJBhc
25
+ 3zSlB8HHa7asf27GUbYtv7oFDpqqcC6EFtvfp1OCiX/OjBIJA1YXTFG3YWC5ngC4
26
+ JPxyTn4MdoX0enm8PRDg7CSZwa4AK1MIYetbiuJgWJ2wKXDFxuGH
27
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCbFlHJ++BcXGU9b2K+jF990r16uqkKnWiK2CFS0PFvM9IJs3CoGiIlyc9UD9O4LEyeu5Rw0RdiAp9MvyUPcDUeibw3WlMCFJ53mbioAapMy5tPXmxxJH5KcN2uJKESsH/1hJv0tWfVpHQywVLcf/7HWPjDl3qEFqzwGEN+5V3XqyG+hoA4rLTLDL40G68bL/oC7ere3sz3B16U4NGdgtJZapot5gTFErFZZztql76h25Ch7isE1XAaYg6NY4z1oU8Q9Ud0sY74tDI8TF165LStb3prf1TinwaMbOyuQ1wrNU4aMzekiwazeo6LtHMnfPjweIGP01PwjZ8WkYcRF6tt simple_cloud provider test key
data/testkit.rb ADDED
@@ -0,0 +1,40 @@
1
+ require 'droplet_kit'
2
+ require 'net/http'
3
+ token=ENV['DO_TOKEN']
4
+
5
+ class SimpleClient < DropletKit::Client
6
+ def post(path, params = {})
7
+ uri = URI.parse("#{connection_options[:url]}#{path}")
8
+ https = Net::HTTP.new(uri.host,uri.port)
9
+ https.use_ssl = true
10
+ req = Net::HTTP::Post.new(uri.path)
11
+ req['Content-Type'] = connection_options[:headers][:content_type]
12
+ req['Authorization'] = connection_options[:headers][:authorization]
13
+ req.set_form_data(params)
14
+ result = https.request(req)
15
+ unless /^2\d\d$/ =~ result.code.to_s
16
+ raise "Server response error #{result.code} #{path} #{params} #{result.message} #{result.body}"
17
+ end
18
+ puts "Response #{result.code} #{result.message}: #{result.body}"
19
+ JSON.parse(result.body)
20
+ end
21
+ private
22
+ def connection_options
23
+ {
24
+ url: "https://api.simplecloud.ru",
25
+ headers: {
26
+ content_type: 'application/json',
27
+ authorization: "Bearer #{access_token}"
28
+ }
29
+ }
30
+ end
31
+ end
32
+
33
+ simple_client = SimpleClient.new(access_token: token)
34
+
35
+ result = simple_client.post("/v2/droplets/31503/actions", {
36
+ :type => 'rebuild',
37
+ :image => '123'
38
+ })
39
+
40
+ puts result
@@ -0,0 +1,22 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'vagrant-simplecloud/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "vagrant-simplecloud"
8
+ gem.version = VagrantPlugins::SimpleCloud::VERSION
9
+ gem.authors = ["John Bender"]
10
+ gem.email = ["john.m.bender@gmail.com"]
11
+ gem.description = %q{Enables Vagrant to manage Simple Cloud droplets}
12
+ gem.summary = gem.description
13
+
14
+ gem.files = `git ls-files`.split($/)
15
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ gem.require_paths = ["lib"]
17
+
18
+ gem.add_dependency "faraday", ">= 0.8.6"
19
+ gem.add_dependency "json"
20
+ gem.add_dependency "log4r"
21
+ gem.add_dependency "droplet_kit"
22
+ end
metadata ADDED
@@ -0,0 +1,146 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vagrant-simplecloud
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - John Bender
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-08-11 00:00:00.000000000 Z
12
+ dependencies:
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
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: log4r
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: droplet_kit
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Enables Vagrant to manage Simple Cloud droplets
70
+ email:
71
+ - john.m.bender@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".gitignore"
77
+ - CHANGELOG.md
78
+ - Gemfile
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - box/metadata.json
83
+ - box/simple_cloud.box
84
+ - lib/vagrant-simplecloud.rb
85
+ - lib/vagrant-simplecloud/actions.rb
86
+ - lib/vagrant-simplecloud/actions/check_state.rb
87
+ - lib/vagrant-simplecloud/actions/create.rb
88
+ - lib/vagrant-simplecloud/actions/destroy.rb
89
+ - lib/vagrant-simplecloud/actions/modify_provision_path.rb
90
+ - lib/vagrant-simplecloud/actions/power_off.rb
91
+ - lib/vagrant-simplecloud/actions/power_on.rb
92
+ - lib/vagrant-simplecloud/actions/rebuild.rb
93
+ - lib/vagrant-simplecloud/actions/reload.rb
94
+ - lib/vagrant-simplecloud/actions/setup_key.rb
95
+ - lib/vagrant-simplecloud/actions/setup_sudo.rb
96
+ - lib/vagrant-simplecloud/actions/setup_user.rb
97
+ - lib/vagrant-simplecloud/actions/shut_down.rb
98
+ - lib/vagrant-simplecloud/actions/sync_folders.rb
99
+ - lib/vagrant-simplecloud/commands/list.rb
100
+ - lib/vagrant-simplecloud/commands/rebuild.rb
101
+ - lib/vagrant-simplecloud/config.rb
102
+ - lib/vagrant-simplecloud/errors.rb
103
+ - lib/vagrant-simplecloud/helpers/client.rb
104
+ - lib/vagrant-simplecloud/helpers/result.rb
105
+ - lib/vagrant-simplecloud/plugin.rb
106
+ - lib/vagrant-simplecloud/provider.rb
107
+ - lib/vagrant-simplecloud/version.rb
108
+ - locales/en.yml
109
+ - test/Vagrantfile
110
+ - test/cookbooks/test/recipes/default.rb
111
+ - test/scripts/provision.sh
112
+ - test/test.sh
113
+ - test/test_id_rsa
114
+ - test/test_id_rsa.pub
115
+ - testkit.rb
116
+ - vagrant-simplecloud.gemspec
117
+ homepage:
118
+ licenses: []
119
+ metadata: {}
120
+ post_install_message:
121
+ rdoc_options: []
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubyforge_project:
136
+ rubygems_version: 2.4.3
137
+ signing_key:
138
+ specification_version: 4
139
+ summary: Enables Vagrant to manage Simple Cloud droplets
140
+ test_files:
141
+ - test/Vagrantfile
142
+ - test/cookbooks/test/recipes/default.rb
143
+ - test/scripts/provision.sh
144
+ - test/test.sh
145
+ - test/test_id_rsa
146
+ - test/test_id_rsa.pub