vagrant-simplecloud 0.0.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 (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