vagrant-oneandone 1.0.0
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.
- checksums.yaml +7 -0
- data/.gitignore +33 -0
- data/.rspec +2 -0
- data/.rubocop.yml +29 -0
- data/.travis.yml +16 -0
- data/Gemfile +12 -0
- data/LICENSE +201 -0
- data/README.md +275 -0
- data/Rakefile +33 -0
- data/box/README.md +13 -0
- data/box/Vagrantfile +7 -0
- data/box/dummy.box +0 -0
- data/box/metadata.json +3 -0
- data/examples/01_coreos_simple/Vagrantfile +12 -0
- data/examples/02_django_centos7_app/Vagrantfile +14 -0
- data/examples/03_ubuntu12.04_shell_provision/Vagrantfile +19 -0
- data/examples/04_parallel_servers/Vagrantfile +26 -0
- data/examples/05_debian8_docker_provision/Vagrantfile +17 -0
- data/lib/vagrant-oneandone.rb +26 -0
- data/lib/vagrant-oneandone/action.rb +163 -0
- data/lib/vagrant-oneandone/action/connect_1and1.rb +28 -0
- data/lib/vagrant-oneandone/action/create.rb +76 -0
- data/lib/vagrant-oneandone/action/destroy.rb +69 -0
- data/lib/vagrant-oneandone/action/get_state.rb +17 -0
- data/lib/vagrant-oneandone/action/power_off.rb +49 -0
- data/lib/vagrant-oneandone/action/power_on.rb +39 -0
- data/lib/vagrant-oneandone/action/read_ssh_info.rb +54 -0
- data/lib/vagrant-oneandone/action/read_state.rb +44 -0
- data/lib/vagrant-oneandone/action/reload.rb +48 -0
- data/lib/vagrant-oneandone/command/list_appliances.rb +38 -0
- data/lib/vagrant-oneandone/command/list_datacenters.rb +36 -0
- data/lib/vagrant-oneandone/command/list_firewalls.rb +32 -0
- data/lib/vagrant-oneandone/command/list_ips.rb +45 -0
- data/lib/vagrant-oneandone/command/list_load_balancers.rb +43 -0
- data/lib/vagrant-oneandone/command/list_monitor_policies.rb +32 -0
- data/lib/vagrant-oneandone/command/list_servers.rb +32 -0
- data/lib/vagrant-oneandone/command/list_sizes.rb +43 -0
- data/lib/vagrant-oneandone/command/main.rb +85 -0
- data/lib/vagrant-oneandone/command/utils.rb +31 -0
- data/lib/vagrant-oneandone/config.rb +65 -0
- data/lib/vagrant-oneandone/config_resolver.rb +97 -0
- data/lib/vagrant-oneandone/errors.rb +45 -0
- data/lib/vagrant-oneandone/plugin.rb +36 -0
- data/lib/vagrant-oneandone/provider.rb +41 -0
- data/lib/vagrant-oneandone/version.rb +5 -0
- data/locales/en.yml +124 -0
- data/vagrant-oneandone.gemspec +29 -0
- data/vagrant-spec.config.rb +9 -0
- metadata +189 -0
@@ -0,0 +1,36 @@
|
|
1
|
+
begin
|
2
|
+
require 'vagrant'
|
3
|
+
rescue LoadError
|
4
|
+
raise 'The Vagrant 1&1 plugin must be run within Vagrant.'
|
5
|
+
end
|
6
|
+
|
7
|
+
module VagrantPlugins
|
8
|
+
module OneAndOne
|
9
|
+
class Plugin < Vagrant.plugin('2')
|
10
|
+
name 'OneAndOne'
|
11
|
+
description <<-DESC
|
12
|
+
This plugin installs a provider that allows Vagrant to manage
|
13
|
+
1&1 Cloud servers.
|
14
|
+
DESC
|
15
|
+
|
16
|
+
config(:oneandone, :provider) do
|
17
|
+
require_relative 'config'
|
18
|
+
Config
|
19
|
+
end
|
20
|
+
|
21
|
+
provider(:oneandone, parallel: true) do
|
22
|
+
OneAndOne.init_i18n
|
23
|
+
|
24
|
+
require_relative 'provider'
|
25
|
+
Provider
|
26
|
+
end
|
27
|
+
|
28
|
+
command('oneandone') do
|
29
|
+
OneAndOne.init_i18n
|
30
|
+
|
31
|
+
require_relative 'command/main'
|
32
|
+
Command::Main
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'vagrant'
|
2
|
+
|
3
|
+
# require "vagrant-oneandone/action"
|
4
|
+
|
5
|
+
module VagrantPlugins
|
6
|
+
module OneAndOne
|
7
|
+
class Provider < Vagrant.plugin('2', :provider)
|
8
|
+
def initialize(machine)
|
9
|
+
@machine = machine
|
10
|
+
end
|
11
|
+
|
12
|
+
def action(name)
|
13
|
+
action_method = "action_#{name}"
|
14
|
+
return Action.send(action_method) if Action.respond_to?(action_method)
|
15
|
+
nil
|
16
|
+
end
|
17
|
+
|
18
|
+
def ssh_info
|
19
|
+
env = @machine.action('read_ssh_info')
|
20
|
+
env[:machine_ssh_info]
|
21
|
+
end
|
22
|
+
|
23
|
+
def state
|
24
|
+
env = @machine.action('read_state')
|
25
|
+
|
26
|
+
state_id = env[:machine_state_id]
|
27
|
+
|
28
|
+
# Get the short and long description
|
29
|
+
short = I18n.t("vagrant_1and1.states.short_#{state_id}")
|
30
|
+
long = I18n.t("vagrant_1and1.states.long_#{state_id}")
|
31
|
+
|
32
|
+
# Return the MachineState object
|
33
|
+
Vagrant::MachineState.new(state_id, short, long)
|
34
|
+
end
|
35
|
+
|
36
|
+
def to_s
|
37
|
+
'1&1 Cloud Server'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/locales/en.yml
ADDED
@@ -0,0 +1,124 @@
|
|
1
|
+
en:
|
2
|
+
vagrant_1and1:
|
3
|
+
already_created: |-
|
4
|
+
The server is already created.
|
5
|
+
already_stopped: |-
|
6
|
+
The server is already stopped.
|
7
|
+
finding_fixed_instance_size: |-
|
8
|
+
Finding fixed instance size for the server...
|
9
|
+
finding_appliance: |-
|
10
|
+
Finding appliance for the server...
|
11
|
+
finding_datacenter: |-
|
12
|
+
Finding data center for the server...
|
13
|
+
finding_public_ip: |-
|
14
|
+
Finding unassigned public IP address...
|
15
|
+
creating_server: |-
|
16
|
+
Creating server...
|
17
|
+
reloading_server: |-
|
18
|
+
Restarting the server...
|
19
|
+
server_deleted: |-
|
20
|
+
The server has been destroyed.
|
21
|
+
starting_server: |-
|
22
|
+
Starting the server...
|
23
|
+
stopping_server: |-
|
24
|
+
Stopping the server...
|
25
|
+
powered_off: |-
|
26
|
+
The server has been stopped.
|
27
|
+
rebooted: |-
|
28
|
+
The server has been rebooted.
|
29
|
+
powered_on: |-
|
30
|
+
The server is up and running.
|
31
|
+
not_created: |-
|
32
|
+
The server hasn't been created yet. Run `vagrant up` first.
|
33
|
+
ready: |-
|
34
|
+
The server is ready!
|
35
|
+
rsync_folder: |-
|
36
|
+
Rsyncing folder: %{hostpath} => %{guestpath}
|
37
|
+
wait_deleting_server: |-
|
38
|
+
Waiting until the server is deleted...
|
39
|
+
|
40
|
+
command:
|
41
|
+
available_subcommands: |-
|
42
|
+
Available subcommands:
|
43
|
+
help_subcommands: |-
|
44
|
+
For help on any subcommand run
|
45
|
+
list_appliances: |-
|
46
|
+
List available 1&1 server appliances.
|
47
|
+
list_datacenters: |-
|
48
|
+
List 1&1 data centers.
|
49
|
+
list_firewalls: |-
|
50
|
+
List available 1&1 firewall policies.
|
51
|
+
list_load_balancers: |-
|
52
|
+
List available 1&1 load balancers.
|
53
|
+
list_monitor_policies: |-
|
54
|
+
List available 1&1 monitoring policies.
|
55
|
+
list_public_ips: |-
|
56
|
+
List available 1&1 public IPs.
|
57
|
+
list_servers: |-
|
58
|
+
List available 1&1 servers.
|
59
|
+
list_sizes: |-
|
60
|
+
List available fixed-server sizes.
|
61
|
+
synopsis: |-
|
62
|
+
oneandone provider specific commands
|
63
|
+
|
64
|
+
config:
|
65
|
+
api_key_required: |-
|
66
|
+
1&1 API key is required.
|
67
|
+
private_key: |-
|
68
|
+
"Private key path is required."
|
69
|
+
public_key: |-
|
70
|
+
"Public key not found: %{key}."
|
71
|
+
|
72
|
+
errors:
|
73
|
+
could_not_delete: |-
|
74
|
+
The server could not be deleted.
|
75
|
+
instance_not_found: |-
|
76
|
+
Vagrant was unable to find the 1&1 server used for your vagrant machine.
|
77
|
+
It might be already deleted.
|
78
|
+
ip_address_already_in_use: |-
|
79
|
+
The specified IP address is already assigned to another entity.
|
80
|
+
missing_api_key: |-
|
81
|
+
1&1 API key not found. Use either ONEANDONE_API_KEY environment
|
82
|
+
variable or specify the key in the command line. See the command help.
|
83
|
+
no_matching_fixed_size: |-
|
84
|
+
No matching fixed-instance size was found! Please check your server size
|
85
|
+
setting.
|
86
|
+
no_matching_appliance: |-
|
87
|
+
No matching server appliance was found! Please check your server appliance
|
88
|
+
setting to make sure you have specified a valid server appliance.
|
89
|
+
no_matching_datacenter: |-
|
90
|
+
No matching data center was found! Please check your data center
|
91
|
+
setting to make sure you have specified a valid data center.
|
92
|
+
no_matching_public_ip: |-
|
93
|
+
No matching public IP was found! Please specify a valid public IP address.
|
94
|
+
ssh_key_not_found: |-
|
95
|
+
SSH key inaccesible or not found: %{key}. Make sure you have specified a valid path.
|
96
|
+
rsync_error: |-
|
97
|
+
There was an error when attemping to rsync a share folder.
|
98
|
+
Please inspect the error message below for more info.
|
99
|
+
|
100
|
+
Host path: %{hostpath}
|
101
|
+
Guest path: %{guestpath}
|
102
|
+
Error: %{stderr}
|
103
|
+
unsupported_appliance: |-
|
104
|
+
1&1 vagrant plugin currently supports only Linux OS appliances.
|
105
|
+
|
106
|
+
states:
|
107
|
+
short_active: |-
|
108
|
+
active
|
109
|
+
long_active: |-
|
110
|
+
The server is up and running. Run `vagrant ssh` to access it.
|
111
|
+
short_deploying: |-
|
112
|
+
deploying
|
113
|
+
long_deploying: |-
|
114
|
+
The server is currently being deployed. You must wait for this to
|
115
|
+
complete before you can access or delete it.
|
116
|
+
short_not_created: |-
|
117
|
+
not created
|
118
|
+
long_not_created: |-
|
119
|
+
The server is not created. Run `vagrant up` to create it.
|
120
|
+
short_off: |-
|
121
|
+
off
|
122
|
+
long_off: |-
|
123
|
+
The server is powered off. Run `vagrant up` to start it.
|
124
|
+
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'vagrant-oneandone/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'vagrant-oneandone'
|
8
|
+
spec.version = VagrantPlugins::OneAndOne::VERSION
|
9
|
+
spec.authors = ['Nurfet Becirevic']
|
10
|
+
spec.email = ['nurfet@stackpointcloud.com']
|
11
|
+
|
12
|
+
spec.description = 'Enables Vagrant to manage 1&1 Cloud servers'
|
13
|
+
spec.summary = spec.description
|
14
|
+
spec.homepage = 'https://github.com/1and1/oneandone-cloudserver-vagrant'
|
15
|
+
spec.license = 'Apache-2.0'
|
16
|
+
|
17
|
+
spec.add_runtime_dependency 'fog-oneandone'
|
18
|
+
spec.add_runtime_dependency 'i18n', '~> 0.6.0'
|
19
|
+
spec.add_runtime_dependency 'terminal-table', '~> 1.7.2'
|
20
|
+
|
21
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
22
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
23
|
+
spec.require_paths = ['lib']
|
24
|
+
|
25
|
+
spec.add_development_dependency 'bundler', '~> 1.12'
|
26
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
27
|
+
spec.add_development_dependency 'rspec', '~> 2.14'
|
28
|
+
spec.add_development_dependency 'rubocop', '~> 0.39'
|
29
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
Vagrant::Spec::Acceptance.configure do |c|
|
2
|
+
c.component_paths << File.expand_path('../spec/acceptance', __FILE__)
|
3
|
+
c.skeleton_paths << File.expand_path('../spec/acceptance/skeletons', __FILE__)
|
4
|
+
|
5
|
+
c.env['PRIVATE_KEY_PATH'] = File.expand_path('../spec/keys/test_id_rsa', __FILE__)
|
6
|
+
|
7
|
+
c.provider 'oneandone',
|
8
|
+
box: File.expand_path('../box/dummy.box', __FILE__)
|
9
|
+
end
|
metadata
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: vagrant-oneandone
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Nurfet Becirevic
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: fog-oneandone
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: i18n
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.6.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.6.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: terminal-table
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.7.2
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.7.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bundler
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.12'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.12'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.14'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.14'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.39'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.39'
|
111
|
+
description: Enables Vagrant to manage 1&1 Cloud servers
|
112
|
+
email:
|
113
|
+
- nurfet@stackpointcloud.com
|
114
|
+
executables: []
|
115
|
+
extensions: []
|
116
|
+
extra_rdoc_files: []
|
117
|
+
files:
|
118
|
+
- ".gitignore"
|
119
|
+
- ".rspec"
|
120
|
+
- ".rubocop.yml"
|
121
|
+
- ".travis.yml"
|
122
|
+
- Gemfile
|
123
|
+
- LICENSE
|
124
|
+
- README.md
|
125
|
+
- Rakefile
|
126
|
+
- box/README.md
|
127
|
+
- box/Vagrantfile
|
128
|
+
- box/dummy.box
|
129
|
+
- box/metadata.json
|
130
|
+
- examples/01_coreos_simple/Vagrantfile
|
131
|
+
- examples/02_django_centos7_app/Vagrantfile
|
132
|
+
- examples/03_ubuntu12.04_shell_provision/Vagrantfile
|
133
|
+
- examples/04_parallel_servers/Vagrantfile
|
134
|
+
- examples/05_debian8_docker_provision/Vagrantfile
|
135
|
+
- lib/vagrant-oneandone.rb
|
136
|
+
- lib/vagrant-oneandone/action.rb
|
137
|
+
- lib/vagrant-oneandone/action/connect_1and1.rb
|
138
|
+
- lib/vagrant-oneandone/action/create.rb
|
139
|
+
- lib/vagrant-oneandone/action/destroy.rb
|
140
|
+
- lib/vagrant-oneandone/action/get_state.rb
|
141
|
+
- lib/vagrant-oneandone/action/power_off.rb
|
142
|
+
- lib/vagrant-oneandone/action/power_on.rb
|
143
|
+
- lib/vagrant-oneandone/action/read_ssh_info.rb
|
144
|
+
- lib/vagrant-oneandone/action/read_state.rb
|
145
|
+
- lib/vagrant-oneandone/action/reload.rb
|
146
|
+
- lib/vagrant-oneandone/command/list_appliances.rb
|
147
|
+
- lib/vagrant-oneandone/command/list_datacenters.rb
|
148
|
+
- lib/vagrant-oneandone/command/list_firewalls.rb
|
149
|
+
- lib/vagrant-oneandone/command/list_ips.rb
|
150
|
+
- lib/vagrant-oneandone/command/list_load_balancers.rb
|
151
|
+
- lib/vagrant-oneandone/command/list_monitor_policies.rb
|
152
|
+
- lib/vagrant-oneandone/command/list_servers.rb
|
153
|
+
- lib/vagrant-oneandone/command/list_sizes.rb
|
154
|
+
- lib/vagrant-oneandone/command/main.rb
|
155
|
+
- lib/vagrant-oneandone/command/utils.rb
|
156
|
+
- lib/vagrant-oneandone/config.rb
|
157
|
+
- lib/vagrant-oneandone/config_resolver.rb
|
158
|
+
- lib/vagrant-oneandone/errors.rb
|
159
|
+
- lib/vagrant-oneandone/plugin.rb
|
160
|
+
- lib/vagrant-oneandone/provider.rb
|
161
|
+
- lib/vagrant-oneandone/version.rb
|
162
|
+
- locales/en.yml
|
163
|
+
- vagrant-oneandone.gemspec
|
164
|
+
- vagrant-spec.config.rb
|
165
|
+
homepage: https://github.com/1and1/oneandone-cloudserver-vagrant
|
166
|
+
licenses:
|
167
|
+
- Apache-2.0
|
168
|
+
metadata: {}
|
169
|
+
post_install_message:
|
170
|
+
rdoc_options: []
|
171
|
+
require_paths:
|
172
|
+
- lib
|
173
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0'
|
178
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
requirements: []
|
184
|
+
rubyforge_project:
|
185
|
+
rubygems_version: 2.6.7
|
186
|
+
signing_key:
|
187
|
+
specification_version: 4
|
188
|
+
summary: Enables Vagrant to manage 1&1 Cloud servers
|
189
|
+
test_files: []
|