knife-profitbricks 1.0.0 → 1.1.1

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: 9a9d013977ddf3cc988c28103ed7d38c51d9a3a1
4
- data.tar.gz: dd5b2456a6408ff7edddd61ce94bbf3f1729afda
3
+ metadata.gz: c011f2895721cbbe750f7b3f40fe053de452b66b
4
+ data.tar.gz: dfe89590df762d895b06bb2f6a27b4533754be0f
5
5
  SHA512:
6
- metadata.gz: ff35fd7648c8598824c8b529952df0ddce6aaf3ff25b8e6b62d0c61a4fb3e912dce95352e7b5dfe78d9a00440514265e940c286bf5ad8abb10c4e45d251a84c3
7
- data.tar.gz: 057e000a9c50a2eb7f5fffb4a6948f8f3cd8fea6965d94ed9680f5b87c5552ffb7d84bd6f1841356f66093582b34afa2df2099468c7b26192d82e8299a96bd07
6
+ metadata.gz: 23642c6a6b059453ba9079225b70573f9c7d1634f676ec9f158eeb8a04349c2809fa850f5f3541a24b89774b8e9881ed309390c5a095955a4ec61f50ca733487
7
+ data.tar.gz: 5035a534767912ee91b4db6c6af04bc6955ee7a396304e2af28120979c094a9101e7fdda184ec47d8c1483b65a6a345d7ebf21d0c132b58194a0f5079064886b
data/README.md CHANGED
@@ -111,6 +111,10 @@ Deletes an existing NIC from a server.
111
111
 
112
112
  List all available NICs connected to a server.
113
113
 
114
+ ### knife profitbricks composite server create
115
+
116
+ Creates a new composite server with attached volume and NIC in a specified data center.
117
+
114
118
  ### knife profitbricks server create
115
119
 
116
120
  Creates a new server within a specified data center.
@@ -173,7 +177,7 @@ Now the data center can be created.
173
177
  Once the data center is provisioned, both a server and volume can be created. The volume will use an existing image as identified above.
174
178
 
175
179
  knife profitbricks server create --datacenter-id ade28808-9253-4d4e-9f5d-f1f7f1038fb1 --name "Frontend Webserver" --cores 1 --ram 1024 --availability-zone ZONE_1
176
- knife profitbricks volume create --datacenter-id ade28808-9253-4d4e-9f5d-f1f7f1038fb1 --name "OS Volume" --size 5 --image c4263e0f-e75e-11e4-91fd-8fa3eaae9f6b
180
+ knife profitbricks volume create --datacenter-id ade28808-9253-4d4e-9f5d-f1f7f1038fb1 --name "OS Volume" --size 5 --type HDD --image c4263e0f-e75e-11e4-91fd-8fa3eaae9f6b --ssh-keys "ssh-rsa AAAAB3NzaC1..."
177
181
 
178
182
  The volume can then be attached to the server.
179
183
 
@@ -187,6 +191,10 @@ Here is an example of adding a firewall rule to the newly created NIC.
187
191
 
188
192
  knife profitbricks firewall create --datacenter-id ade28808-9253-4d4e-9f5d-f1f7f1038fb1 --server-id 2e438d3b-02f0-47d0-8594-4ace38ed2804 --nic-id e4270ecc-e9c5-4de0-940a-8a0a99d962fd --name "SSH" --protocol TCP --port-range-start 22 --port-range-end 22 --source-ip 203.0.113.10
189
193
 
194
+ A composite server can also be created with attached volume and NIC in a single command.
195
+
196
+ knife profitbricks composite server create --datacenter-id ade28808-9253-4d4e-9f5d-f1f7f1038fb1 --name "Backend Database" --cores 1 --ram 8192 --size 5 --type HDD --lan 1 --image 2ead2908-df61-11e5-80a4-52540005ab80 --ssh-keys "ssh-rsa AAAAB3NzaC1..."
197
+
190
198
  The new data center and **all resources within that data center** can be deleted.
191
199
 
192
200
  knife profitbricks datacenter delete ade28808-9253-4d4e-9f5d-f1f7f1038fb1
@@ -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.0"
21
+ spec.add_runtime_dependency "profitbricks-sdk-ruby", "~> 1.1"
22
22
  spec.add_runtime_dependency "chef", "~> 12"
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.6"
@@ -0,0 +1,152 @@
1
+ require 'chef/knife/profitbricks_base'
2
+
3
+ class Chef
4
+ class Knife
5
+ class ProfitbricksCompositeServerCreate < Knife
6
+ include Knife::ProfitbricksBase
7
+
8
+ banner 'knife profitbricks composite server create (options)'
9
+
10
+ option :datacenter_id,
11
+ short: '-D DATACENTER_UUID',
12
+ long: '--datacenter-id DATACENTER_UUID',
13
+ description: 'Name of the virtual datacenter',
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
16
+
17
+ option :name,
18
+ short: '-n NAME',
19
+ long: '--name NAME',
20
+ description: 'Name of the server',
21
+ required: true
22
+
23
+ option :cores,
24
+ short: '-C CORES',
25
+ long: '--cores CORES',
26
+ description: 'The number of processor cores',
27
+ required: true
28
+
29
+ option :ram,
30
+ short: '-r RAM',
31
+ long: '--ram RAM',
32
+ description: 'The amount of RAM in MB',
33
+ required: true
34
+
35
+ option :availabilityzone,
36
+ short: '-a AVAILABILITY_ZONE',
37
+ long: '--availability-zone AVAILABILITY_ZONE',
38
+ description: 'The availability zone of the server',
39
+ default: 'AUTO'
40
+
41
+ option :volumename,
42
+ long: '--volume-name NAME',
43
+ description: 'Name of the volume'
44
+
45
+ option :size,
46
+ short: '-S SIZE',
47
+ long: '--size SIZE',
48
+ description: 'The size of the volume in GB',
49
+ required: true
50
+
51
+ option :bus,
52
+ short: '-b BUS',
53
+ long: '--bus BUS',
54
+ description: 'The bus type of the volume (VIRTIO or IDE)'
55
+
56
+ option :image,
57
+ short: '-N UUID',
58
+ long: '--image UUID',
59
+ description: 'The image or snapshot UUID'
60
+
61
+ option :type,
62
+ short: '-t TYPE',
63
+ long: '--type TYPE',
64
+ description: 'The disk type; currently only HDD.',
65
+ required: true
66
+
67
+ option :licencetype,
68
+ short: '-l LICENCE',
69
+ long: '--licence-type LICENCE',
70
+ description: 'The licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)'
71
+
72
+ option :sshkeys,
73
+ short: '-K SSHKEY[,SSHKEY,...]',
74
+ long: '--ssh-keys SSHKEY1,SSHKEY2,...',
75
+ description: 'A list of public SSH keys to include',
76
+ proc: proc { |sshkeys| sshkeys.split(',') }
77
+
78
+ option :nicname,
79
+ long: '--name NAME',
80
+ description: 'Name of the NIC'
81
+
82
+ option :ips,
83
+ short: '-i IP[,IP,...]',
84
+ long: '--ips IP[,IP,...]',
85
+ description: 'IPs assigned to the NIC',
86
+ proc: proc { |ips| ips.split(',') }
87
+
88
+ option :dhcp,
89
+ short: '-h',
90
+ long: '--dhcp',
91
+ boolean: true | false,
92
+ default: true,
93
+ description: 'Set to false if you wish to disable DHCP'
94
+
95
+ option :lan,
96
+ short: '-L ID',
97
+ long: '--lan ID',
98
+ description: 'The LAN ID the NIC will reside on; if the LAN ID does not exist it will be created',
99
+ required: true
100
+
101
+ def run
102
+ $stdout.sync = true
103
+
104
+ print "#{ui.color('Creating composite server...', :magenta)}"
105
+ volume_params = {
106
+ name: config[:volumename],
107
+ size: config[:size],
108
+ bus: config[:bus] || 'VIRTIO',
109
+ image: config[:image],
110
+ type: config[:type],
111
+ licenceType: config[:licencetype],
112
+ sshKeys: config[:sshkeys]
113
+ }
114
+
115
+ nic_params = {
116
+ name: config[:nicname],
117
+ ips: config[:ips],
118
+ dhcp: config[:dhcp],
119
+ lan: config[:lan]
120
+ }
121
+
122
+ params = {
123
+ name: config[:name],
124
+ cores: config[:cores],
125
+ ram: config[:ram],
126
+ availabilityZone: config[:availabilityzone],
127
+ volumes: [volume_params],
128
+ nics: [nic_params]
129
+ }
130
+
131
+ connection
132
+ server = ProfitBricks::Server.create(
133
+ config[:datacenter_id],
134
+ params.compact
135
+ )
136
+
137
+ dot = ui.color('.', :magenta)
138
+ server.wait_for(300) { print dot; ready? }
139
+ server.reload
140
+
141
+ puts "\n"
142
+ puts "#{ui.color('ID', :cyan)}: #{server.id}"
143
+ puts "#{ui.color('Name', :cyan)}: #{server.properties['name']}"
144
+ puts "#{ui.color('Cores', :cyan)}: #{server.properties['cores']}"
145
+ puts "#{ui.color('Ram', :cyan)}: #{server.properties['ram']}"
146
+ puts "#{ui.color('Availability Zone', :cyan)}: #{server.properties['availabilityZone']}"
147
+
148
+ puts 'done'
149
+ end
150
+ end
151
+ end
152
+ end
@@ -10,7 +10,8 @@ class Chef
10
10
  option :name,
11
11
  short: '-n NAME',
12
12
  long: '--name NAME',
13
- description: 'Name of the data center'
13
+ description: 'Name of the data center',
14
+ required: true
14
15
 
15
16
  option :description,
16
17
  short: '-D DESCRIPTION',
@@ -21,7 +22,8 @@ class Chef
21
22
  short: '-l LOCATION',
22
23
  long: '--location LOCATION',
23
24
  description: 'Location of the data center',
24
- proc: proc { |location| Chef::Config[:knife][:location] = location }
25
+ proc: proc { |location| Chef::Config[:knife][:location] = location },
26
+ required: true
25
27
 
26
28
  def run
27
29
  $stdout.sync = true
@@ -33,7 +33,8 @@ class Chef
33
33
  long: '--protocol PROTOCOL',
34
34
  default: 'TCP',
35
35
  description: 'The protocol of the firewall rule (TCP, UDP, ICMP,' \
36
- ' ANY)'
36
+ ' ANY)',
37
+ required: true
37
38
 
38
39
  option :sourcemac,
39
40
  short: '-m MAC',
@@ -11,17 +11,20 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'The UUID of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :server_id,
17
18
  short: '-S SERVER_UUID',
18
19
  long: '--server-id SERVER_UUID',
19
- description: 'The UUID of the server'
20
+ description: 'The UUID of the server',
21
+ required: true
20
22
 
21
23
  option :nic_id,
22
24
  short: '-N NIC_UUID',
23
25
  long: '--nic-id NIC_UUID',
24
- description: 'UUID of the NIC'
26
+ description: 'UUID of the NIC',
27
+ required: true
25
28
 
26
29
  def run
27
30
  connection
@@ -11,17 +11,20 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'UUID of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :server_id,
17
18
  short: '-S SERVER_UUID',
18
19
  long: '--server-id SERVER_UUID',
19
- description: 'The UUID of the server'
20
+ description: 'The UUID of the server',
21
+ required: true
20
22
 
21
23
  option :nic_id,
22
24
  short: '-N NIC_UUID',
23
25
  long: '--nic-id NIC_UUID',
24
- description: 'UUID of the NIC'
26
+ description: 'UUID of the NIC',
27
+ required: true
25
28
 
26
29
  def run
27
30
  $stdout.sync = true
@@ -10,12 +10,14 @@ class Chef
10
10
  option :location,
11
11
  short: '-l LOCATION',
12
12
  long: '--location LOCATION',
13
- description: 'Location of the IP block (us/las, de/fra, de/fkb)'
13
+ description: 'Location of the IP block (us/las, de/fra, de/fkb)',
14
+ required: true
14
15
 
15
16
  option :size,
16
17
  short: '-S INT',
17
18
  long: '--size INT',
18
- description: 'The number of IP addresses to reserve'
19
+ description: 'The number of IP addresses to reserve',
20
+ required: true
19
21
 
20
22
  def run
21
23
  $stdout.sync = true
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'Name of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :name,
17
18
  short: '-n NAME',
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'Name of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  def run
17
18
  connection
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'The UUID of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  def run
17
18
  $stdout.sync = true
@@ -11,12 +11,14 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'Name of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :server_id,
17
18
  short: '-S SERVER_UUID',
18
19
  long: '--server-id SERVER_UUID',
19
- description: 'Name of the server'
20
+ description: 'Name of the server',
21
+ required: true
20
22
 
21
23
  option :name,
22
24
  short: '-n NAME',
@@ -39,7 +41,8 @@ class Chef
39
41
  option :lan,
40
42
  short: '-l ID',
41
43
  long: '--lan ID',
42
- description: 'The LAN ID the NIC will reside on; if the LAN ID does not exist it will be created'
44
+ description: 'The LAN ID the NIC will reside on; if the LAN ID does not exist it will be created',
45
+ required: true
43
46
 
44
47
  def run
45
48
  $stdout.sync = true
@@ -11,12 +11,14 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'The UUID of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :server_id,
17
18
  short: '-S SERVER_UUID',
18
19
  long: '--server-id SERVER_UUID',
19
- description: 'The UUID of the server assigned the NIC'
20
+ description: 'The UUID of the server assigned the NIC',
21
+ required: true
20
22
 
21
23
  def run
22
24
  connection
@@ -11,12 +11,14 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'The UUID of the datacenter containing the NIC',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :server_id,
17
18
  short: '-S SERVER_UUID',
18
19
  long: '--server-id SERVER_UUID',
19
- description: 'The UUID of the server assigned the NIC'
20
+ description: 'The UUID of the server assigned the NIC',
21
+ required: true
20
22
 
21
23
  def run
22
24
  $stdout.sync = true
@@ -11,22 +11,26 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'Name of the virtual datacenter',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :name,
17
18
  short: '-n NAME',
18
19
  long: '--name NAME',
19
- description: 'Name of the server'
20
+ description: 'Name of the server',
21
+ required: true
20
22
 
21
23
  option :cores,
22
24
  short: '-C CORES',
23
25
  long: '--cores CORES',
24
- description: 'The number of processor cores'
26
+ description: 'The number of processor cores',
27
+ required: true
25
28
 
26
29
  option :ram,
27
30
  short: '-r RAM',
28
31
  long: '--ram RAM',
29
- description: 'The amount of RAM in MB'
32
+ description: 'The amount of RAM in MB',
33
+ required: true
30
34
 
31
35
  option :availabilityzone,
32
36
  short: '-a AVAILABILITY_ZONE',
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'Name of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  def run
17
18
  connection
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'The UUID of the datacenter containing the server',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  def run
17
18
  $stdout.sync = true
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'UUID of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  def run
17
18
  connection
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'UUID of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  def run
17
18
  connection
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'UUID of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  def run
17
18
  connection
@@ -11,12 +11,14 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'The UUID of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :server_id,
17
18
  short: '-S SERVER_UUID',
18
19
  long: '--server-id SERVER_UUID',
19
- description: 'The UUID of the server'
20
+ description: 'The UUID of the server',
21
+ required: true
20
22
 
21
23
  def run
22
24
  connection
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'Name of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :name,
17
18
  short: '-n NAME',
@@ -21,7 +22,8 @@ class Chef
21
22
  option :size,
22
23
  short: '-S SIZE',
23
24
  long: '--size SIZE',
24
- description: 'The size of the volume in GB'
25
+ description: 'The size of the volume in GB',
26
+ required: true
25
27
 
26
28
  option :bus,
27
29
  short: '-b BUS',
@@ -36,13 +38,20 @@ class Chef
36
38
  option :type,
37
39
  short: '-t TYPE',
38
40
  long: '--type TYPE',
39
- description: 'The disk type; currently only HDD.'
41
+ description: 'The disk type; currently only HDD.',
42
+ required: true
40
43
 
41
44
  option :licencetype,
42
45
  short: '-l LICENCE',
43
46
  long: '--licence-type LICENCE',
44
47
  description: 'The licence type of the volume (LINUX, WINDOWS, UNKNOWN, OTHER)'
45
48
 
49
+ option :sshkeys,
50
+ short: '-K SSHKEY[,SSHKEY,...]',
51
+ long: '--ssh-keys SSHKEY1,SSHKEY2,...',
52
+ description: 'A list of public SSH keys to include',
53
+ proc: proc { |sshkeys| sshkeys.split(',') }
54
+
46
55
  def run
47
56
  $stdout.sync = true
48
57
 
@@ -54,7 +63,8 @@ class Chef
54
63
  bus: config[:bus] || 'VIRTIO',
55
64
  image: config[:image],
56
65
  type: config[:type],
57
- licenceType: config[:licencetype]
66
+ licenceType: config[:licencetype],
67
+ sshKeys: config[:sshkeys]
58
68
  }
59
69
 
60
70
  connection
@@ -64,7 +74,7 @@ class Chef
64
74
  )
65
75
 
66
76
  dot = ui.color('.', :magenta)
67
- volume.wait_for { print dot; ready? }
77
+ volume.wait_for(300) { print dot; ready? }
68
78
  volume.reload
69
79
 
70
80
  puts "\n"
@@ -11,7 +11,8 @@ class Chef
11
11
  short: '-D UUID',
12
12
  long: '--datacenter-id UUID',
13
13
  description: 'Name of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  def run
17
18
  connection
@@ -11,12 +11,14 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'The UUID of the data center',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :server_id,
17
18
  short: '-S SERVER_UUID',
18
19
  long: '--server-id SERVER_UUID',
19
- description: 'The UUID of the server'
20
+ description: 'The UUID of the server',
21
+ required: true
20
22
 
21
23
  def run
22
24
  connection
@@ -11,12 +11,14 @@ class Chef
11
11
  short: '-D DATACENTER_UUID',
12
12
  long: '--datacenter-id DATACENTER_UUID',
13
13
  description: 'The UUID of the virtul data center containing the volume',
14
- proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id }
14
+ proc: proc { |datacenter_id| Chef::Config[:knife][:datacenter_id] = datacenter_id },
15
+ required: true
15
16
 
16
17
  option :server_id,
17
18
  short: '-S SERVER_UUID',
18
19
  long: '--server-id SERVER_UUID',
19
- description: 'The UUID of the server'
20
+ description: 'The UUID of the server',
21
+ required: true
20
22
 
21
23
  def run
22
24
  $stdout.sync = true
@@ -1,6 +1,6 @@
1
1
  module Knife
2
2
  module ProfitBricks
3
- VERSION = '1.0.0'
3
+ VERSION = '1.1.1'
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.0.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan Devenport
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-17 00:00:00.000000000 Z
11
+ date: 2016-03-02 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.0'
19
+ version: '1.1'
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.0'
26
+ version: '1.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: chef
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,7 @@ files:
94
94
  - Rakefile
95
95
  - knife-profitbricks.gemspec
96
96
  - lib/chef/knife/profitbricks_base.rb
97
+ - lib/chef/knife/profitbricks_composite_server_create.rb
97
98
  - lib/chef/knife/profitbricks_datacenter_create.rb
98
99
  - lib/chef/knife/profitbricks_datacenter_delete.rb
99
100
  - lib/chef/knife/profitbricks_datacenter_list.rb
@@ -146,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
147
  version: '0'
147
148
  requirements: []
148
149
  rubyforge_project:
149
- rubygems_version: 2.4.2
150
+ rubygems_version: 2.0.14
150
151
  signing_key:
151
152
  specification_version: 4
152
153
  summary: Chef Knife plugin for ProfitBricks platform
@@ -154,4 +155,3 @@ test_files:
154
155
  - spec/chef/knife/profitbricks_datacenter_list_spec.rb
155
156
  - spec/spec_helper.rb
156
157
  - spec/test.sh
157
- has_rdoc: