knife-profitbricks 1.1.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1a05c9b51197a5c4bede8622f3170ba90a999376
4
- data.tar.gz: ec8e94f0990da74450a155326d848ffa42ffe886
3
+ metadata.gz: 4728fcd8307f5d8d3c99c35359510c6375ecbf17
4
+ data.tar.gz: ea5d5c7fbffa535126c1bd9ef6a27fcf1899c56e
5
5
  SHA512:
6
- metadata.gz: b8aa428d7098cfa7c17fef338deea8d47823815d57c345dd4f6cacbe64a5e3514438085b838ba82e7356d9d8f253d2e6a45a2e5a80c68981badea293d25c5683
7
- data.tar.gz: 658bb33cb572b73aeb46a8ba192b4eb23e93ad36368c0751d8e816ab3ca16c0ae1e575a8605b4c67d708915ead3ece4e88703d9ad4c9bacabac671a02f8d3ad4
6
+ metadata.gz: b621da0104fe0428693403e77842a27e22239cd5452c4028d9fc64137c7e73343e62a4af36e219aec6a2439fa01f2fac93cfee375ac212fad4b84966fbd9533c
7
+ data.tar.gz: 1ca58101f3b618e6b1689dbe5f8325c35b905595283830be32820194fcb73edd4597ec8ac59526b9e215c42595b2afb8780845dc678cf87f307f3b3c195d0860
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_runtime_dependency "profitbricks-sdk-ruby", "~> 1.1"
21
+ spec.add_runtime_dependency "profitbricks-sdk-ruby", "~> 3.0"
22
22
  spec.add_runtime_dependency "chef", "~> 12"
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.6"
@@ -80,6 +80,12 @@ class Chef
80
80
  long: '--image-password PASSWORD',
81
81
  description: 'The password set on the image for the "root" or "Administrator" user'
82
82
 
83
+ option :volume_availability_zone,
84
+ short: '-Z AVAILABILITY_ZONE',
85
+ long: '--volume-availability-zone AVAILABILITY_ZONE',
86
+ description: 'The volume availability zone of the server',
87
+ required: false
88
+
83
89
  option :sshkeys,
84
90
  short: '-K SSHKEY[,SSHKEY,...]',
85
91
  long: '--ssh-keys SSHKEY1,SSHKEY2,...',
@@ -109,6 +115,11 @@ class Chef
109
115
  description: 'The LAN ID the NIC will reside on; if the LAN ID does not exist it will be created',
110
116
  required: true
111
117
 
118
+ option :nat,
119
+ long: '--nat',
120
+ description: 'Set to enable NAT on the NIC',
121
+ required: false
122
+
112
123
  def run
113
124
  $stdout.sync = true
114
125
 
@@ -130,6 +141,10 @@ class Chef
130
141
  volume_params[:imagePassword] = config[:imagepassword]
131
142
  end
132
143
 
144
+ if config[:volume_availability_zone]
145
+ volume_params[:availabilityZone] = config[:volume_availability_zone]
146
+ end
147
+
133
148
  nic_params = {
134
149
  name: config[:nicname],
135
150
  ips: config[:ips],
@@ -137,6 +152,10 @@ class Chef
137
152
  lan: config[:lan]
138
153
  }
139
154
 
155
+ if config[:nat]
156
+ nic_params[:nat] = config[:nat]
157
+ end
158
+
140
159
  params = {
141
160
  name: config[:name],
142
161
  cores: config[:cores],
@@ -44,6 +44,12 @@ class Chef
44
44
  description: 'The LAN ID the NIC will reside on; if the LAN ID does not exist it will be created',
45
45
  required: true
46
46
 
47
+ option :nat,
48
+ long: '--nat',
49
+ boolean: true | false,
50
+ description: 'Set to enable NAT on the NIC',
51
+ required: false
52
+
47
53
  def run
48
54
  $stdout.sync = true
49
55
 
@@ -56,6 +62,10 @@ class Chef
56
62
  lan: config[:lan]
57
63
  }
58
64
 
65
+ if config[:nat]
66
+ params[:nat] = config[:nat]
67
+ end
68
+
59
69
  connection
60
70
  nic = ProfitBricks::NIC.create(
61
71
  config[:datacenter_id],
@@ -73,6 +83,7 @@ class Chef
73
83
  puts "#{ui.color('IPs', :cyan)}: #{nic.properties['ips']}"
74
84
  puts "#{ui.color('DHCP', :cyan)}: #{nic.properties['dhcp']}"
75
85
  puts "#{ui.color('LAN', :cyan)}: #{nic.properties['lan']}"
86
+ puts "#{ui.color('NAT', :cyan)}: #{nic.properties['nat']}"
76
87
 
77
88
  puts 'done'
78
89
  end
@@ -27,6 +27,7 @@ class Chef
27
27
  ui.color('Name', :bold),
28
28
  ui.color('IPs', :bold),
29
29
  ui.color('DHCP', :bold),
30
+ ui.color('NAT', :bold),
30
31
  ui.color('LAN', :bold)
31
32
  ]
32
33
  connection
@@ -36,10 +37,11 @@ class Chef
36
37
  nic_list << nic.properties['name']
37
38
  nic_list << nic.properties['ips'].to_s
38
39
  nic_list << nic.properties['dhcp'].to_s
40
+ nic_list << nic.properties['nat'].to_s
39
41
  nic_list << nic.properties['lan'].to_s
40
42
  end
41
43
 
42
- puts ui.list(nic_list, :uneven_columns_across, 5)
44
+ puts ui.list(nic_list, :uneven_columns_across, 6)
43
45
  end
44
46
  end
45
47
  end
@@ -57,6 +57,12 @@ class Chef
57
57
  description: 'A list of public SSH keys to include',
58
58
  proc: proc { |sshkeys| sshkeys.split(',') }
59
59
 
60
+ option :volume_availability_zone,
61
+ short: '-Z AVAILABILITY_ZONE',
62
+ long: '--availability-zone AVAILABILITY_ZONE',
63
+ description: 'The volume availability zone of the server',
64
+ required: false
65
+
60
66
  def run
61
67
  $stdout.sync = true
62
68
 
@@ -79,6 +85,10 @@ class Chef
79
85
  params[:imagePassword] = config[:imagepassword]
80
86
  end
81
87
 
88
+ if config[:volume_availability_zone]
89
+ params[:availabilityZone] = config[:volume_availability_zone]
90
+ end
91
+
82
92
  connection
83
93
  volume = ProfitBricks::Volume.create(
84
94
  config[:datacenter_id],
@@ -97,6 +107,7 @@ class Chef
97
107
  puts "#{ui.color('Image', :cyan)}: #{volume.properties['image']}"
98
108
  puts "#{ui.color('Type', :cyan)}: #{volume.properties['type']}"
99
109
  puts "#{ui.color('Licence Type', :cyan)}: #{volume.properties['licenceType']}"
110
+ puts "#{ui.color('Zone', :cyan)}: #{volume.properties['availabilityZone']}"
100
111
  puts 'done'
101
112
  end
102
113
  end
@@ -18,7 +18,7 @@ class Chef
18
18
  short: '-S SERVER_ID',
19
19
  long: '--server-id SERVER_ID',
20
20
  description: 'The ID of the server',
21
- required: true
21
+ required: false
22
22
 
23
23
  def run
24
24
  $stdout.sync = true
@@ -29,6 +29,7 @@ class Chef
29
29
  ui.color('Bus', :bold),
30
30
  ui.color('Image', :bold),
31
31
  ui.color('Type', :bold),
32
+ ui.color('Zone', :bold),
32
33
  ui.color('Device Number', :bold)
33
34
  ]
34
35
 
@@ -42,6 +43,7 @@ class Chef
42
43
  volume_list << volume.properties['bus']
43
44
  volume_list << volume.properties['image']
44
45
  volume_list << volume.properties['type']
46
+ volume_list << volume.properties['availabilityZone']
45
47
  volume_list << volume.properties['deviceNumber'].to_s
46
48
  end
47
49
  else
@@ -52,11 +54,12 @@ class Chef
52
54
  volume_list << volume.properties['bus']
53
55
  volume_list << volume.properties['image']
54
56
  volume_list << volume.properties['type']
57
+ volume_list << volume.properties['availabilityZone']
55
58
  volume_list << volume.properties['deviceNumber'].to_s
56
59
  end
57
60
  end
58
61
 
59
- puts ui.list(volume_list, :uneven_columns_across, 7)
62
+ puts ui.list(volume_list, :uneven_columns_across, 8)
60
63
  end
61
64
  end
62
65
  end
@@ -1,6 +1,6 @@
1
1
  module Knife
2
2
  module ProfitBricks
3
- VERSION = '1.1.2'
3
+ VERSION = '1.2.0'
4
4
  MAJOR, MINOR, TINY = VERSION.split('.')
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-profitbricks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan Devenport
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-09 00:00:00.000000000 Z
11
+ date: 2016-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: profitbricks-sdk-ruby
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
- version: '1.1'
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
- version: '1.1'
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: chef
29
29
  requirement: !ruby/object:Gem::Requirement