knife-oneandone 1.0.0 → 1.2.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 +4 -4
- data/.gitignore +12 -12
- data/.rspec +2 -2
- data/.rubocop.yml +29 -26
- data/.travis.yml +5 -5
- data/Gemfile +4 -4
- data/LICENSE +201 -201
- data/README.md +358 -278
- data/Rakefile +6 -6
- data/knife-oneandone.gemspec +30 -31
- data/lib/1and1/helpers.rb +29 -29
- data/lib/chef/knife/oneandone_appliance_list.rb +39 -39
- data/lib/chef/knife/oneandone_base.rb +32 -32
- data/lib/chef/knife/oneandone_block_storage_attach.rb +33 -0
- data/lib/chef/knife/oneandone_block_storage_create.rb +64 -0
- data/lib/chef/knife/oneandone_block_storage_delete.rb +59 -0
- data/lib/chef/knife/oneandone_block_storage_detach.rb +28 -0
- data/lib/chef/knife/oneandone_block_storage_list.rb +42 -0
- data/lib/chef/knife/oneandone_block_storage_rename.rb +38 -0
- data/lib/chef/knife/oneandone_datacenter_list.rb +33 -33
- data/lib/chef/knife/oneandone_firewall_create.rb +97 -97
- data/lib/chef/knife/oneandone_firewall_delete.rb +59 -59
- data/lib/chef/knife/oneandone_firewall_list.rb +33 -33
- data/lib/chef/knife/oneandone_ip_list.rb +39 -39
- data/lib/chef/knife/oneandone_loadbalancer_create.rb +147 -147
- data/lib/chef/knife/oneandone_loadbalancer_delete.rb +59 -59
- data/lib/chef/knife/oneandone_loadbalancer_list.rb +39 -39
- data/lib/chef/knife/oneandone_mp_list.rb +37 -37
- data/lib/chef/knife/oneandone_server_baremetal_model_list.rb +31 -0
- data/lib/chef/knife/oneandone_server_create.rb +193 -163
- data/lib/chef/knife/oneandone_server_delete.rb +63 -63
- data/lib/chef/knife/oneandone_server_hdd_add.rb +60 -60
- data/lib/chef/knife/oneandone_server_hdd_delete.rb +55 -55
- data/lib/chef/knife/oneandone_server_hdd_list.rb +44 -44
- data/lib/chef/knife/oneandone_server_hdd_resize.rb +59 -59
- data/lib/chef/knife/oneandone_server_list.rb +35 -35
- data/lib/chef/knife/oneandone_server_modify.rb +80 -80
- data/lib/chef/knife/oneandone_server_reboot.rb +41 -41
- data/lib/chef/knife/oneandone_server_rename.rb +37 -37
- data/lib/chef/knife/oneandone_server_size_list.rb +39 -39
- data/lib/chef/knife/oneandone_server_start.rb +35 -35
- data/lib/chef/knife/oneandone_server_stop.rb +41 -41
- data/lib/chef/knife/oneandone_ssh_key_create.rb +54 -0
- data/lib/chef/knife/oneandone_ssh_key_delete.rb +59 -0
- data/lib/chef/knife/oneandone_ssh_key_list.rb +44 -0
- data/lib/chef/knife/oneandone_ssh_key_rename.rb +37 -0
- data/lib/knife-oneandone/version.rb +5 -5
- metadata +24 -13
@@ -1,35 +1,35 @@
|
|
1
|
-
require 'chef/knife/oneandone_base'
|
2
|
-
|
3
|
-
class Chef
|
4
|
-
class Knife
|
5
|
-
class OneandoneServerList < Knife
|
6
|
-
include Knife::OneandoneBase
|
7
|
-
|
8
|
-
banner 'knife oneandone server list'
|
9
|
-
|
10
|
-
def run
|
11
|
-
$stdout.sync = true
|
12
|
-
|
13
|
-
init_client
|
14
|
-
|
15
|
-
response = OneAndOne::Server.new.list
|
16
|
-
formated_output(response, true)
|
17
|
-
|
18
|
-
server_list = [
|
19
|
-
ui.color('ID', :bold),
|
20
|
-
ui.color('Name', :bold),
|
21
|
-
ui.color('State', :bold),
|
22
|
-
ui.color('Data Center', :bold)
|
23
|
-
]
|
24
|
-
response.each do |server|
|
25
|
-
server_list << server['id']
|
26
|
-
server_list << server['name']
|
27
|
-
server_list << server['status']['state']
|
28
|
-
server_list << server['datacenter']['country_code']
|
29
|
-
end
|
30
|
-
|
31
|
-
puts ui.list(server_list, :uneven_columns_across, 4)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
1
|
+
require 'chef/knife/oneandone_base'
|
2
|
+
|
3
|
+
class Chef
|
4
|
+
class Knife
|
5
|
+
class OneandoneServerList < Knife
|
6
|
+
include Knife::OneandoneBase
|
7
|
+
|
8
|
+
banner 'knife oneandone server list'
|
9
|
+
|
10
|
+
def run
|
11
|
+
$stdout.sync = true
|
12
|
+
|
13
|
+
init_client
|
14
|
+
|
15
|
+
response = OneAndOne::Server.new.list
|
16
|
+
formated_output(response, true)
|
17
|
+
|
18
|
+
server_list = [
|
19
|
+
ui.color('ID', :bold),
|
20
|
+
ui.color('Name', :bold),
|
21
|
+
ui.color('State', :bold),
|
22
|
+
ui.color('Data Center', :bold)
|
23
|
+
]
|
24
|
+
response.each do |server|
|
25
|
+
server_list << server['id']
|
26
|
+
server_list << server['name']
|
27
|
+
server_list << server['status']['state']
|
28
|
+
server_list << server['datacenter']['country_code']
|
29
|
+
end
|
30
|
+
|
31
|
+
puts ui.list(server_list, :uneven_columns_across, 4)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,80 +1,80 @@
|
|
1
|
-
require 'chef/knife/oneandone_base'
|
2
|
-
|
3
|
-
class Chef
|
4
|
-
class Knife
|
5
|
-
class OneandoneServerModify < Knife
|
6
|
-
include Knife::OneandoneBase
|
7
|
-
|
8
|
-
banner 'knife oneandone server modify SERVER_ID [SERVER_ID] (options)'
|
9
|
-
|
10
|
-
option :fixed_size_id,
|
11
|
-
short: '-S FIXED_SIZE_ID',
|
12
|
-
long: '--fixed-size-id FIXED_SIZE_ID',
|
13
|
-
description: 'ID of the fixed instance size'
|
14
|
-
|
15
|
-
option :cpu,
|
16
|
-
short: '-P PROCESSORS',
|
17
|
-
long: '--cpu PROCESSORS',
|
18
|
-
description: 'The number of processors'
|
19
|
-
|
20
|
-
option :cores,
|
21
|
-
short: '-C CORES',
|
22
|
-
long: '--cores CORES',
|
23
|
-
description: 'The number of cores per processor'
|
24
|
-
|
25
|
-
option :ram,
|
26
|
-
short: '-r RAM',
|
27
|
-
long: '--ram RAM',
|
28
|
-
description: 'The amount of RAM in GB'
|
29
|
-
|
30
|
-
option :wait,
|
31
|
-
short: '-W',
|
32
|
-
long: '--wait',
|
33
|
-
description: 'Wait for the operation to complete.'
|
34
|
-
|
35
|
-
def run
|
36
|
-
$stdout.sync = true
|
37
|
-
|
38
|
-
init_client
|
39
|
-
|
40
|
-
name_args.each do |server_id|
|
41
|
-
server = OneAndOne::Server.new
|
42
|
-
|
43
|
-
begin
|
44
|
-
server.get(server_id: server_id)
|
45
|
-
rescue StandardError => e
|
46
|
-
if e.message.include? 'NOT_FOUND'
|
47
|
-
ui.error("Server ID #{server_id} not found. Skipping.")
|
48
|
-
else
|
49
|
-
ui.error(e.message)
|
50
|
-
end
|
51
|
-
next
|
52
|
-
end
|
53
|
-
|
54
|
-
server.modify_hardware(
|
55
|
-
fixed_instance_id: config[:fixed_size_id],
|
56
|
-
vcore: config[:cpu],
|
57
|
-
cores_per_processor: config[:cores],
|
58
|
-
ram: config[:ram]
|
59
|
-
)
|
60
|
-
|
61
|
-
if config[:wait]
|
62
|
-
puts ui.color('Reconfiguring, wait for the operation to complete...', :cyan).to_s
|
63
|
-
server.wait_for
|
64
|
-
|
65
|
-
puts "\t#{ui.color('ID', :cyan)}: #{server.id}"
|
66
|
-
puts "\t#{ui.color('Name', :cyan)}: #{server.specs['name']}"
|
67
|
-
puts "\t#{ui.color('Fixed Size ID', :cyan)}: #{server.specs['hardware']['fixed_instance_size_id']}"
|
68
|
-
puts "\t#{ui.color('Processors', :cyan)}: #{server.specs['hardware']['vcore']}"
|
69
|
-
puts "\t#{ui.color('Cores per Processor', :cyan)}: #{server.specs['hardware']['cores_per_processor']}"
|
70
|
-
puts "\t#{ui.color('RAM (GB)', :cyan)}: #{server.specs['hardware']['ram']}\n"
|
71
|
-
|
72
|
-
puts "Server's hardware is #{ui.color('modified', :bold)}"
|
73
|
-
else
|
74
|
-
puts "Server's hardware is #{ui.color('being modified', :bold)}"
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
1
|
+
require 'chef/knife/oneandone_base'
|
2
|
+
|
3
|
+
class Chef
|
4
|
+
class Knife
|
5
|
+
class OneandoneServerModify < Knife
|
6
|
+
include Knife::OneandoneBase
|
7
|
+
|
8
|
+
banner 'knife oneandone server modify SERVER_ID [SERVER_ID] (options)'
|
9
|
+
|
10
|
+
option :fixed_size_id,
|
11
|
+
short: '-S FIXED_SIZE_ID',
|
12
|
+
long: '--fixed-size-id FIXED_SIZE_ID',
|
13
|
+
description: 'ID of the fixed instance size'
|
14
|
+
|
15
|
+
option :cpu,
|
16
|
+
short: '-P PROCESSORS',
|
17
|
+
long: '--cpu PROCESSORS',
|
18
|
+
description: 'The number of processors'
|
19
|
+
|
20
|
+
option :cores,
|
21
|
+
short: '-C CORES',
|
22
|
+
long: '--cores CORES',
|
23
|
+
description: 'The number of cores per processor'
|
24
|
+
|
25
|
+
option :ram,
|
26
|
+
short: '-r RAM',
|
27
|
+
long: '--ram RAM',
|
28
|
+
description: 'The amount of RAM in GB'
|
29
|
+
|
30
|
+
option :wait,
|
31
|
+
short: '-W',
|
32
|
+
long: '--wait',
|
33
|
+
description: 'Wait for the operation to complete.'
|
34
|
+
|
35
|
+
def run
|
36
|
+
$stdout.sync = true
|
37
|
+
|
38
|
+
init_client
|
39
|
+
|
40
|
+
name_args.each do |server_id|
|
41
|
+
server = OneAndOne::Server.new
|
42
|
+
|
43
|
+
begin
|
44
|
+
server.get(server_id: server_id)
|
45
|
+
rescue StandardError => e
|
46
|
+
if e.message.include? 'NOT_FOUND'
|
47
|
+
ui.error("Server ID #{server_id} not found. Skipping.")
|
48
|
+
else
|
49
|
+
ui.error(e.message)
|
50
|
+
end
|
51
|
+
next
|
52
|
+
end
|
53
|
+
|
54
|
+
server.modify_hardware(
|
55
|
+
fixed_instance_id: config[:fixed_size_id],
|
56
|
+
vcore: config[:cpu],
|
57
|
+
cores_per_processor: config[:cores],
|
58
|
+
ram: config[:ram]
|
59
|
+
)
|
60
|
+
|
61
|
+
if config[:wait]
|
62
|
+
puts ui.color('Reconfiguring, wait for the operation to complete...', :cyan).to_s
|
63
|
+
server.wait_for
|
64
|
+
|
65
|
+
puts "\t#{ui.color('ID', :cyan)}: #{server.id}"
|
66
|
+
puts "\t#{ui.color('Name', :cyan)}: #{server.specs['name']}"
|
67
|
+
puts "\t#{ui.color('Fixed Size ID', :cyan)}: #{server.specs['hardware']['fixed_instance_size_id']}"
|
68
|
+
puts "\t#{ui.color('Processors', :cyan)}: #{server.specs['hardware']['vcore']}"
|
69
|
+
puts "\t#{ui.color('Cores per Processor', :cyan)}: #{server.specs['hardware']['cores_per_processor']}"
|
70
|
+
puts "\t#{ui.color('RAM (GB)', :cyan)}: #{server.specs['hardware']['ram']}\n"
|
71
|
+
|
72
|
+
puts "Server's hardware is #{ui.color('modified', :bold)}"
|
73
|
+
else
|
74
|
+
puts "Server's hardware is #{ui.color('being modified', :bold)}"
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -1,41 +1,41 @@
|
|
1
|
-
require 'chef/knife/oneandone_base'
|
2
|
-
|
3
|
-
class Chef
|
4
|
-
class Knife
|
5
|
-
class OneandoneServerReboot < Knife
|
6
|
-
include Knife::OneandoneBase
|
7
|
-
|
8
|
-
banner 'knife oneandone server reboot SERVER_ID [SERVER_ID] (options)'
|
9
|
-
|
10
|
-
option :force,
|
11
|
-
long: '--force',
|
12
|
-
description: 'Force hardware restart.'
|
13
|
-
|
14
|
-
option :wait,
|
15
|
-
short: '-W',
|
16
|
-
long: '--wait',
|
17
|
-
description: 'Wait for the operation to complete.'
|
18
|
-
|
19
|
-
def run
|
20
|
-
$stdout.sync = true
|
21
|
-
|
22
|
-
init_client
|
23
|
-
|
24
|
-
method = config[:force] ? 'HARDWARE' : 'SOFTWARE'
|
25
|
-
|
26
|
-
name_args.each do |server_id|
|
27
|
-
server = OneAndOne::Server.new
|
28
|
-
response = server.change_status(server_id: server_id, action: 'REBOOT', method: method)
|
29
|
-
|
30
|
-
if config[:wait]
|
31
|
-
puts ui.color('Rebooting, wait for the operation to complete...', :cyan).to_s
|
32
|
-
server.wait_for
|
33
|
-
puts "Server '#{server.specs['name']}' is #{ui.color('rebooted', :bold)}"
|
34
|
-
else
|
35
|
-
puts "Server '#{response['name']}' is #{ui.color('rebooting', :bold)}"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
1
|
+
require 'chef/knife/oneandone_base'
|
2
|
+
|
3
|
+
class Chef
|
4
|
+
class Knife
|
5
|
+
class OneandoneServerReboot < Knife
|
6
|
+
include Knife::OneandoneBase
|
7
|
+
|
8
|
+
banner 'knife oneandone server reboot SERVER_ID [SERVER_ID] (options)'
|
9
|
+
|
10
|
+
option :force,
|
11
|
+
long: '--force',
|
12
|
+
description: 'Force hardware restart.'
|
13
|
+
|
14
|
+
option :wait,
|
15
|
+
short: '-W',
|
16
|
+
long: '--wait',
|
17
|
+
description: 'Wait for the operation to complete.'
|
18
|
+
|
19
|
+
def run
|
20
|
+
$stdout.sync = true
|
21
|
+
|
22
|
+
init_client
|
23
|
+
|
24
|
+
method = config[:force] ? 'HARDWARE' : 'SOFTWARE'
|
25
|
+
|
26
|
+
name_args.each do |server_id|
|
27
|
+
server = OneAndOne::Server.new
|
28
|
+
response = server.change_status(server_id: server_id, action: 'REBOOT', method: method)
|
29
|
+
|
30
|
+
if config[:wait]
|
31
|
+
puts ui.color('Rebooting, wait for the operation to complete...', :cyan).to_s
|
32
|
+
server.wait_for
|
33
|
+
puts "Server '#{server.specs['name']}' is #{ui.color('rebooted', :bold)}"
|
34
|
+
else
|
35
|
+
puts "Server '#{response['name']}' is #{ui.color('rebooting', :bold)}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -1,37 +1,37 @@
|
|
1
|
-
require 'chef/knife/oneandone_base'
|
2
|
-
|
3
|
-
class Chef
|
4
|
-
class Knife
|
5
|
-
class OneandoneServerRename < Knife
|
6
|
-
include Knife::OneandoneBase
|
7
|
-
|
8
|
-
banner 'knife oneandone server rename (options)'
|
9
|
-
|
10
|
-
option :name,
|
11
|
-
short: '-n NAME',
|
12
|
-
long: '--server-name NAME',
|
13
|
-
description: 'Name of the server'
|
14
|
-
|
15
|
-
option :description,
|
16
|
-
long: '--server-desc DESCRIPTION',
|
17
|
-
description: 'Description of the server'
|
18
|
-
|
19
|
-
option :id,
|
20
|
-
short: '-I ID',
|
21
|
-
long: '--server-id ID',
|
22
|
-
description: 'Server ID'
|
23
|
-
|
24
|
-
def run
|
25
|
-
$stdout.sync = true
|
26
|
-
|
27
|
-
init_client
|
28
|
-
|
29
|
-
server = OneAndOne::Server.new
|
30
|
-
response = server.modify(server_id: config[:id], name: config[:name], description: config[:description])
|
31
|
-
|
32
|
-
formated_output(response, true)
|
33
|
-
puts "Server name and/or description #{ui.color('updated', :bold)}"
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
1
|
+
require 'chef/knife/oneandone_base'
|
2
|
+
|
3
|
+
class Chef
|
4
|
+
class Knife
|
5
|
+
class OneandoneServerRename < Knife
|
6
|
+
include Knife::OneandoneBase
|
7
|
+
|
8
|
+
banner 'knife oneandone server rename (options)'
|
9
|
+
|
10
|
+
option :name,
|
11
|
+
short: '-n NAME',
|
12
|
+
long: '--server-name NAME',
|
13
|
+
description: 'Name of the server'
|
14
|
+
|
15
|
+
option :description,
|
16
|
+
long: '--server-desc DESCRIPTION',
|
17
|
+
description: 'Description of the server'
|
18
|
+
|
19
|
+
option :id,
|
20
|
+
short: '-I ID',
|
21
|
+
long: '--server-id ID',
|
22
|
+
description: 'Server ID'
|
23
|
+
|
24
|
+
def run
|
25
|
+
$stdout.sync = true
|
26
|
+
|
27
|
+
init_client
|
28
|
+
|
29
|
+
server = OneAndOne::Server.new
|
30
|
+
response = server.modify(server_id: config[:id], name: config[:name], description: config[:description])
|
31
|
+
|
32
|
+
formated_output(response, true)
|
33
|
+
puts "Server name and/or description #{ui.color('updated', :bold)}"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -1,39 +1,39 @@
|
|
1
|
-
require 'chef/knife/oneandone_base'
|
2
|
-
|
3
|
-
class Chef
|
4
|
-
class Knife
|
5
|
-
class OneandoneServerSizeList < Knife
|
6
|
-
include Knife::OneandoneBase
|
7
|
-
|
8
|
-
banner 'knife oneandone server size list'
|
9
|
-
|
10
|
-
def run
|
11
|
-
$stdout.sync = true
|
12
|
-
|
13
|
-
init_client
|
14
|
-
|
15
|
-
response = OneAndOne::Server.new.list_fixed
|
16
|
-
formated_output(response, true)
|
17
|
-
|
18
|
-
sizes = [
|
19
|
-
ui.color('ID', :bold),
|
20
|
-
ui.color('Name', :bold),
|
21
|
-
ui.color('RAM (GB)', :bold),
|
22
|
-
ui.color('Processor No.', :bold),
|
23
|
-
ui.color('Cores per Processor', :bold),
|
24
|
-
ui.color('Disk Size (GB)', :bold)
|
25
|
-
]
|
26
|
-
response.each do |fs|
|
27
|
-
sizes << fs['id']
|
28
|
-
sizes << fs['name']
|
29
|
-
sizes << fs['hardware']['ram'].to_s
|
30
|
-
sizes << fs['hardware']['vcore'].to_s
|
31
|
-
sizes << fs['hardware']['cores_per_processor'].to_s
|
32
|
-
sizes << fs['hardware']['hdds'][0]['size'].to_s
|
33
|
-
end
|
34
|
-
|
35
|
-
puts ui.list(sizes, :uneven_columns_across, 6)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
1
|
+
require 'chef/knife/oneandone_base'
|
2
|
+
|
3
|
+
class Chef
|
4
|
+
class Knife
|
5
|
+
class OneandoneServerSizeList < Knife
|
6
|
+
include Knife::OneandoneBase
|
7
|
+
|
8
|
+
banner 'knife oneandone server size list'
|
9
|
+
|
10
|
+
def run
|
11
|
+
$stdout.sync = true
|
12
|
+
|
13
|
+
init_client
|
14
|
+
|
15
|
+
response = OneAndOne::Server.new.list_fixed
|
16
|
+
formated_output(response, true)
|
17
|
+
|
18
|
+
sizes = [
|
19
|
+
ui.color('ID', :bold),
|
20
|
+
ui.color('Name', :bold),
|
21
|
+
ui.color('RAM (GB)', :bold),
|
22
|
+
ui.color('Processor No.', :bold),
|
23
|
+
ui.color('Cores per Processor', :bold),
|
24
|
+
ui.color('Disk Size (GB)', :bold)
|
25
|
+
]
|
26
|
+
response.each do |fs|
|
27
|
+
sizes << fs['id']
|
28
|
+
sizes << fs['name']
|
29
|
+
sizes << fs['hardware']['ram'].to_s
|
30
|
+
sizes << fs['hardware']['vcore'].to_s
|
31
|
+
sizes << fs['hardware']['cores_per_processor'].to_s
|
32
|
+
sizes << fs['hardware']['hdds'][0]['size'].to_s
|
33
|
+
end
|
34
|
+
|
35
|
+
puts ui.list(sizes, :uneven_columns_across, 6)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|