vagrant-simplecloud 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile +11 -0
- data/LICENSE.txt +23 -0
- data/README.md +143 -0
- data/Rakefile +22 -0
- data/box/metadata.json +3 -0
- data/box/simple_cloud.box +0 -0
- data/lib/vagrant-simplecloud.rb +20 -0
- data/lib/vagrant-simplecloud/actions.rb +165 -0
- data/lib/vagrant-simplecloud/actions/check_state.rb +19 -0
- data/lib/vagrant-simplecloud/actions/create.rb +84 -0
- data/lib/vagrant-simplecloud/actions/destroy.rb +32 -0
- data/lib/vagrant-simplecloud/actions/modify_provision_path.rb +38 -0
- data/lib/vagrant-simplecloud/actions/power_off.rb +33 -0
- data/lib/vagrant-simplecloud/actions/power_on.rb +36 -0
- data/lib/vagrant-simplecloud/actions/rebuild.rb +56 -0
- data/lib/vagrant-simplecloud/actions/reload.rb +33 -0
- data/lib/vagrant-simplecloud/actions/setup_key.rb +53 -0
- data/lib/vagrant-simplecloud/actions/setup_sudo.rb +48 -0
- data/lib/vagrant-simplecloud/actions/setup_user.rb +66 -0
- data/lib/vagrant-simplecloud/actions/shut_down.rb +34 -0
- data/lib/vagrant-simplecloud/actions/sync_folders.rb +89 -0
- data/lib/vagrant-simplecloud/commands/list.rb +89 -0
- data/lib/vagrant-simplecloud/commands/rebuild.rb +29 -0
- data/lib/vagrant-simplecloud/config.rb +64 -0
- data/lib/vagrant-simplecloud/errors.rb +37 -0
- data/lib/vagrant-simplecloud/helpers/client.rb +151 -0
- data/lib/vagrant-simplecloud/helpers/result.rb +40 -0
- data/lib/vagrant-simplecloud/plugin.rb +31 -0
- data/lib/vagrant-simplecloud/provider.rb +102 -0
- data/lib/vagrant-simplecloud/version.rb +5 -0
- data/locales/en.yml +90 -0
- data/test/Vagrantfile +41 -0
- data/test/cookbooks/test/recipes/default.rb +1 -0
- data/test/scripts/provision.sh +3 -0
- data/test/test.sh +14 -0
- data/test/test_id_rsa +27 -0
- data/test/test_id_rsa.pub +1 -0
- data/testkit.rb +40 -0
- data/vagrant-simplecloud.gemspec +22 -0
- 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
|
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!'
|
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
|