knife-google 0.0.1 → 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.
Files changed (85) hide show
  1. data/.gitignore +22 -0
  2. data/CONTRIB.md +64 -0
  3. data/Gemfile +11 -0
  4. data/README.md +287 -0
  5. data/Rakefile +53 -0
  6. data/knife-google.gemspec +26 -0
  7. data/lib/chef/knife/google_base.rb +39 -68
  8. data/lib/chef/knife/google_disk_create.rb +60 -0
  9. data/lib/chef/knife/google_disk_delete.rb +60 -0
  10. data/lib/chef/knife/google_disk_list.rb +75 -0
  11. data/lib/chef/knife/google_server_create.rb +273 -184
  12. data/lib/chef/knife/google_server_delete.rb +74 -32
  13. data/lib/chef/knife/google_server_list.rb +45 -64
  14. data/lib/chef/knife/google_setup.rb +31 -0
  15. data/lib/chef/knife/google_zone_list.rb +78 -0
  16. data/lib/google/compute.rb +46 -0
  17. data/lib/google/compute/client.rb +188 -0
  18. data/lib/google/compute/config.rb +23 -0
  19. data/lib/google/compute/creatable_resource_collection.rb +38 -0
  20. data/lib/google/compute/deletable_resource_collection.rb +51 -0
  21. data/lib/google/compute/disk.rb +40 -0
  22. data/lib/google/compute/exception.rb +28 -0
  23. data/lib/google/compute/firewall.rb +65 -0
  24. data/lib/google/compute/global_operation.rb +60 -0
  25. data/lib/google/compute/image.rb +30 -0
  26. data/lib/google/compute/kernel.rb +20 -0
  27. data/lib/google/compute/listable_resource_collection.rb +33 -0
  28. data/lib/google/compute/machine_type.rb +36 -0
  29. data/lib/google/compute/mixins/utils.rb +58 -0
  30. data/lib/google/compute/network.rb +29 -0
  31. data/lib/google/compute/project.rb +76 -0
  32. data/lib/google/compute/resource.rb +81 -0
  33. data/lib/google/compute/resource_collection.rb +78 -0
  34. data/lib/google/compute/server.rb +87 -0
  35. data/lib/google/compute/server/attached_disk.rb +39 -0
  36. data/lib/google/compute/server/network_interface.rb +38 -0
  37. data/lib/google/compute/server/network_interface/access_config.rb +35 -0
  38. data/lib/google/compute/server/serial_port_output.rb +31 -0
  39. data/lib/google/compute/snapshot.rb +30 -0
  40. data/lib/google/compute/version.rb +19 -0
  41. data/lib/google/compute/zone.rb +32 -0
  42. data/lib/google/compute/zone_operation.rb +60 -0
  43. data/lib/knife-google/version.rb +18 -2
  44. data/spec/chef/knife/google_base_spec.rb +46 -0
  45. data/spec/chef/knife/google_disk_create_spec.rb +36 -0
  46. data/spec/chef/knife/google_disk_delete_spec.rb +65 -0
  47. data/spec/chef/knife/google_disk_list_spec.rb +36 -0
  48. data/spec/chef/knife/google_server_create_spec.rb +84 -0
  49. data/spec/chef/knife/google_server_delete_spec.rb +105 -0
  50. data/spec/chef/knife/google_server_list_spec.rb +39 -0
  51. data/spec/chef/knife/google_setup_spec.rb +25 -0
  52. data/spec/chef/knife/google_zone_list_spec.rb +32 -0
  53. data/spec/data/client.json +14 -0
  54. data/spec/data/compute-v1beta14.json +3386 -0
  55. data/spec/data/disk.json +15 -0
  56. data/spec/data/firewall.json +13 -0
  57. data/spec/data/global_operation.json +36 -0
  58. data/spec/data/image.json +12 -0
  59. data/spec/data/kernel.json +15 -0
  60. data/spec/data/machine_type.json +24 -0
  61. data/spec/data/network.json +10 -0
  62. data/spec/data/project.json +21 -0
  63. data/spec/data/serial_port_output.json +5 -0
  64. data/spec/data/server.json +46 -0
  65. data/spec/data/snapshot.json +12 -0
  66. data/spec/data/zone.json +30 -0
  67. data/spec/data/zone_operation.json +36 -0
  68. data/spec/google/compute/disk_spec.rb +105 -0
  69. data/spec/google/compute/firewall_spec.rb +128 -0
  70. data/spec/google/compute/global_operation_spec.rb +62 -0
  71. data/spec/google/compute/image_spec.rb +75 -0
  72. data/spec/google/compute/kernel_spec.rb +49 -0
  73. data/spec/google/compute/machine_type_spec.rb +53 -0
  74. data/spec/google/compute/network_spec.rb +68 -0
  75. data/spec/google/compute/project_spec.rb +71 -0
  76. data/spec/google/compute/server_spec.rb +125 -0
  77. data/spec/google/compute/snapshot_spec.rb +69 -0
  78. data/spec/google/compute/zone_operation_spec.rb +62 -0
  79. data/spec/google/compute/zone_spec.rb +50 -0
  80. data/spec/spec_helper.rb +44 -0
  81. data/spec/support/mocks.rb +62 -0
  82. data/spec/support/resource_examples.rb +70 -0
  83. data/spec/support/spec_google_base.rb +56 -0
  84. metadata +121 -31
  85. data/README.rdoc +0 -96
@@ -0,0 +1,69 @@
1
+ # Copyright 2013 Google Inc. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ require 'spec_helper'
15
+
16
+ describe Google::Compute::Snapshot do
17
+
18
+ before(:each) do
19
+ @mock_api_client=mock(Google::APIClient, :authorization= =>{}, :auto_refresh_token= =>{})
20
+ @mock_api_client.stub!(:discovered_api).and_return(mock_compute)
21
+ Google::APIClient.stub!(:new).and_return(@mock_api_client)
22
+ end
23
+
24
+ let(:client) do
25
+ Google::Compute::Client.from_json(mock_data_file(Google::Compute::Client))
26
+ end
27
+
28
+ it_should_behave_like Google::Compute::Resource
29
+
30
+ it "#get should return an individual snapshot" do
31
+ @mock_api_client.should_receive(:execute).
32
+ with(:api_method=>mock_compute.snapshots.get,
33
+ :parameters=>{"snapshot"=>"mock-snapshot", :project=>"mock-project"},:body_object=>nil).
34
+ and_return(mock_response(Google::Compute::Snapshot))
35
+ snapshot = client.snapshots.get('mock-snapshot')
36
+ snapshot.should be_a_kind_of Google::Compute::Snapshot
37
+ snapshot.name.should eq('mock-snapshot')
38
+ end
39
+
40
+ it "#list should return an array of snapshots" do
41
+ @mock_api_client.should_receive(:execute).
42
+ with(:api_method=>mock_compute.snapshots.list,
43
+ :parameters=>{:project=>"mock-project"},:body_object=>nil).
44
+ and_return(mock_response(Google::Compute::Snapshot,true))
45
+ snapshots = client.snapshots.list
46
+ snapshots.should_not be_empty
47
+ snapshots.all?{|s| s.is_a?(Google::Compute::Snapshot)}.should be_true
48
+ end
49
+
50
+ it "#create should create a new snapshot" do
51
+ disk = 'https://www.googleapis.com/compute/v1beta13/projects/mock-project/disks/mock-disk'
52
+ @mock_api_client.should_receive(:execute).
53
+ with(:api_method=>mock_compute.snapshots.insert,
54
+ :parameters=>{:project=>"mock-project"},
55
+ :body_object=>{:name=>'api-snapshot', :sourceDisk=>disk}).
56
+ and_return(mock_response(Google::Compute::GlobalOperation))
57
+
58
+ o = client.snapshots.create(:name=>'api-snapshot', :sourceDisk=>disk)
59
+ o.should be_a_kind_of Google::Compute::GlobalOperation
60
+ end
61
+
62
+ it "#delete should delete an existing snapshot" do
63
+ @mock_api_client.should_receive(:execute).
64
+ with(:api_method=>mock_compute.snapshots.delete,
65
+ :parameters=>{:project=>"mock-project",'snapshot'=>'mock-snapshot'},:body_object=>nil).
66
+ and_return(mock_response(Google::Compute::GlobalOperation))
67
+ o = client.snapshots.delete('mock-snapshot')
68
+ end
69
+ end
@@ -0,0 +1,62 @@
1
+ # Copyright 2013 Google Inc. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ require 'spec_helper'
15
+
16
+ describe Google::Compute::ZoneOperation do
17
+
18
+ before(:each) do
19
+ @mock_api_client=mock(Google::APIClient, :authorization= =>{}, :auto_refresh_token= =>{})
20
+ @mock_api_client.stub!(:discovered_api).and_return(mock_compute)
21
+ Google::APIClient.stub!(:new).and_return(@mock_api_client)
22
+ end
23
+
24
+ let(:client) do
25
+ Google::Compute::Client.from_json(mock_data_file(Google::Compute::Client))
26
+ end
27
+
28
+ it_should_behave_like Google::Compute::Resource
29
+
30
+ it "#list should return an array of zone operations" do
31
+ @mock_api_client.should_receive(:execute).
32
+ with(:api_method=>mock_compute.zone_operations.list,
33
+ :parameters=>{ :project=>"mock-project"},:body_object=>nil).
34
+ and_return(mock_response(Google::Compute::ZoneOperation, true))
35
+
36
+ operations = client.zoneOperations.list
37
+ operations.should_not be_empty
38
+ operations.all?{|o| o.is_a?(Google::Compute::ZoneOperation)}.should be_true
39
+ end
40
+
41
+ it "#get should return an individual zone operation" do
42
+ @mock_api_client.should_receive(:execute).
43
+ with(:api_method=>mock_compute.zone_operations.get,
44
+ :parameters=>{"zoneOperation"=>"mock-zone-operation", :project=>"mock-project"},:body_object=>nil).
45
+ and_return(mock_response(Google::Compute::ZoneOperation))
46
+
47
+ operation = client.zoneOperations.get('mock-zone-operation')
48
+ operation.should be_a_kind_of Google::Compute::ZoneOperation
49
+ operation.name.should eq('mock-zone-operation')
50
+ operation.should respond_to(:progress)
51
+ operation.start_time.should be_a_kind_of(Time)
52
+ end
53
+
54
+ it "#delete should delete an existing zone operation" do
55
+ @mock_api_client.should_receive(:execute).
56
+ with(:api_method=>mock_compute.zone_operations.delete,
57
+ :parameters=>{"zoneOperation"=>"mock-zone-operation", :project=>"mock-project"},:body_object=>nil).
58
+ and_return(mock_response)
59
+
60
+ client.zoneOperations.delete('mock-zone-operation')
61
+ end
62
+ end
@@ -0,0 +1,50 @@
1
+ # Copyright 2013 Google Inc. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'spec_helper'
16
+
17
+ describe Google::Compute::Zone do
18
+
19
+ before(:each) do
20
+ @mock_api_client=mock(Google::APIClient, :authorization= =>{}, :auto_refresh_token= =>{})
21
+ @mock_api_client.stub!(:discovered_api).and_return(mock_compute)
22
+ Google::APIClient.stub!(:new).and_return(@mock_api_client)
23
+ end
24
+
25
+ let(:client) do
26
+ Google::Compute::Client.from_json(mock_data_file(Google::Compute::Client))
27
+ end
28
+
29
+ it_should_behave_like Google::Compute::Resource
30
+
31
+ it "#get should return an individual zone" do
32
+ @mock_api_client.should_receive(:execute).
33
+ with(:api_method=>mock_compute.zones.get,
34
+ :parameters=>{"zone"=>"mock-zone", :project=>"mock-project"},:body_object=>nil).
35
+ and_return(mock_response(Google::Compute::Zone))
36
+ zone = client.zones.get('mock-zone')
37
+ zone.should be_a_kind_of Google::Compute::Zone
38
+ zone.name.should eq('mock-zone')
39
+ end
40
+
41
+ it "#list should return an array of zones" do
42
+ @mock_api_client.should_receive(:execute).
43
+ with(:api_method=>mock_compute.zones.list,
44
+ :parameters=>{ :project=>"mock-project"},:body_object=>nil).
45
+ and_return(mock_response(Google::Compute::Zone, true))
46
+ zones = client.zones.list
47
+ zones.should_not be_empty
48
+ zones.all?{|zone| zone.is_a?(Google::Compute::Zone)}.should be_true
49
+ end
50
+ end
@@ -0,0 +1,44 @@
1
+ # Copyright 2013 Google Inc. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+ #
15
+
16
+ require 'simplecov'
17
+ SimpleCov.start do
18
+ add_filter "/spec/"
19
+ add_filter "/.bundle/"
20
+ add_filter "/pkg/"
21
+ add_filter "/pkg/"
22
+ end
23
+
24
+ require 'google/compute'
25
+
26
+ require 'support/resource_examples'
27
+ require 'support/mocks'
28
+
29
+ require 'chef'
30
+ require 'chef/knife/google_server_create'
31
+ require 'chef/knife/google_server_delete'
32
+ require 'chef/knife/google_server_list'
33
+ require 'chef/knife/google_disk_list'
34
+ require 'chef/knife/google_disk_create'
35
+ require 'chef/knife/google_disk_delete'
36
+ require 'chef/knife/google_zone_list'
37
+ require 'chef/knife/google_setup'
38
+
39
+ require 'support/spec_google_base'
40
+
41
+ RSpec.configure do |config|
42
+ config.include SpecData
43
+ config.include Mocks
44
+ end
@@ -0,0 +1,62 @@
1
+ # Copyright 2013 Google Inc. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Mocks
16
+ SPEC_DATA_FOLDER = File.expand_path('../../data', __FILE__)
17
+
18
+ def mock_data(klass)
19
+ return File.read(mock_data_file(klass))
20
+ end
21
+
22
+ def mock_list_data(klass)
23
+ return '{"items":[' + File.read(mock_data_file(klass)) + ']}'
24
+ end
25
+
26
+ def mock_data_file(klass)
27
+ class_name = klass.name.split('::').last.snake_case
28
+ if class_name == "instance"
29
+ json_file = File.expand_path(File.join(SPEC_DATA_FOLDER , 'server.json'))
30
+ else
31
+ json_file = File.expand_path(File.join(SPEC_DATA_FOLDER , class_name + '.json'))
32
+ end
33
+ end
34
+
35
+ def instance_from_mock_data(klass)
36
+ klass.new(mock_hash(klass))
37
+ end
38
+
39
+ def mock_hash(klass)
40
+ MultiJson.load(mock_data(klass))
41
+ end
42
+
43
+ def mock_compute
44
+ @compute ||=
45
+ begin
46
+ data_file = File.join(SPEC_DATA_FOLDER,'compute-v1beta14.json')
47
+ u = Addressable::URI.parse('URI:https://www.googleapis.com/discovery/v1/apis/compute/v1beta14/rest')
48
+ compute = Google::APIClient::API.new(u,MultiJson.load(File.read(data_file)))
49
+ end
50
+ end
51
+
52
+ def mock_response(klass=nil,list = false)
53
+ body = if klass.nil?
54
+ nil
55
+ elsif list
56
+ mock_list_data(klass)
57
+ else
58
+ mock_data(klass)
59
+ end
60
+ mock(klass,:success? => true, :response=>mock('some',:body=>body))
61
+ end
62
+ end
@@ -0,0 +1,70 @@
1
+ # Copyright 2013 Google Inc. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ shared_examples Google::Compute::Resource do
16
+
17
+ let (:resource) do
18
+ instance_from_mock_data(described_class)
19
+ end
20
+
21
+ it "should be of compute# kind" do
22
+ resource.kind.should match('compute#')
23
+ end
24
+
25
+ it "should be a subclass of Google::Compute::Resource" do
26
+ resource.should be_a_kind_of(Google::Compute::Resource)
27
+ end
28
+
29
+ it "#id should have a valid id" do
30
+ resource.id.should be_a_kind_of(Integer)
31
+ end
32
+
33
+ it "#creation_timestamp should have a valid creation timestamp" do
34
+ unless resource.creation_timestamp.nil?
35
+ resource.creation_timestamp.should be_a_kind_of(Time)
36
+ end
37
+ end
38
+
39
+ it "#type should have same type is class" do
40
+ # TODO(erjohnso): {global,zone}operations are not resources
41
+ # and instances are servers
42
+ if ["globaloperation", "zoneoperation"].include? resource.class.class_name
43
+ resource.type.downcase.should eq("operation")
44
+ elsif resource.class.class_name == "server"
45
+ resource.type.downcase.should eq("instance")
46
+ else
47
+ resource.type.downcase.should eq(resource.class.class_name)
48
+ end
49
+ end
50
+
51
+ it "should have a valid description" do
52
+ # TODO(erjohnso): {global,zone}operations are not resources
53
+ # mock-{zone,global}-operation
54
+ unless resource.name.split('-').last == "operation"
55
+ resource.description.should_not be_nil
56
+ end
57
+ end
58
+
59
+ it "#project should have a valid project name" do
60
+ resource.project.should_not be_nil
61
+ end
62
+
63
+ it "#self_link should have a valid https self link" do
64
+ URI.parse(resource.self_link).should be_a_kind_of(URI::HTTPS)
65
+ end
66
+
67
+ it "#to_s should return its name when converted to string" do
68
+ resource.to_s.should eq(resource.name)
69
+ end
70
+ end
@@ -0,0 +1,56 @@
1
+ # Copyright 2013 Google Inc. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'spec_helper'
16
+ require 'google/compute'
17
+
18
+ module SpecData
19
+ SPEC_DATA_DIR = File.expand_path('../../data', __FILE__)
20
+
21
+ def stored_instance
22
+ @instance ||= Google::Compute::Server.new(load_json("server.json"))
23
+ end
24
+
25
+ def stored_global_operation
26
+ @global_operation ||= Google::Compute::GlobalOperation.new(load_json("global_operation.json"))
27
+ end
28
+
29
+ def stored_zone_operation
30
+ @zone_operation ||= Google::Compute::ZoneOperation.new(load_json("zone_operation.json"))
31
+ end
32
+
33
+ def stored_disk
34
+ @disk ||= Google::Compute::Disk.new(load_json("disk.json"))
35
+ end
36
+
37
+ def stored_zone
38
+ @zone ||= Google::Compute::Zone.new(load_json("zone.json"))
39
+ end
40
+
41
+ def stored_image
42
+ @image ||= Google::Compute::Image.new(load_json("image.json"))
43
+ end
44
+
45
+ def stored_machine_type
46
+ @machine_type ||= Google::Compute::MachineType.new(load_json("machine_type.json"))
47
+ end
48
+
49
+ def stored_network
50
+ @network ||= Google::Compute::Network.new(load_json 'network.json')
51
+ end
52
+
53
+ def load_json file
54
+ MultiJson.load(File.read("#{SPEC_DATA_DIR}/#{file}"))
55
+ end
56
+ end
metadata CHANGED
@@ -1,21 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-google
3
3
  version: !ruby/object:Gem::Version
4
- hash: 29
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
+ - 1
7
8
  - 0
8
9
  - 0
9
- - 1
10
- version: 0.0.1
10
+ version: 1.0.0
11
11
  platform: ruby
12
12
  authors:
13
- - Chirag Jog
13
+ - Chiraq Jog
14
+ - Ranjib Dey
15
+ - James Tucker
16
+ - Paul Rossman
17
+ - Eric Johnson
14
18
  autorequire:
15
19
  bindir: bin
16
20
  cert_chain: []
17
21
 
18
- date: 2012-06-29 00:00:00 Z
22
+ date: 2013-05-14 00:00:00 Z
19
23
  dependencies:
20
24
  - !ruby/object:Gem::Dependency
21
25
  name: chef
@@ -34,55 +38,49 @@ dependencies:
34
38
  type: :runtime
35
39
  version_requirements: *id001
36
40
  - !ruby/object:Gem::Dependency
37
- name: net-ssh
41
+ name: google-api-client
38
42
  prerelease: false
39
43
  requirement: &id002 !ruby/object:Gem::Requirement
40
44
  none: false
41
45
  requirements:
42
46
  - - ">="
43
47
  - !ruby/object:Gem::Version
44
- hash: 9
48
+ hash: 3
45
49
  segments:
46
- - 2
47
50
  - 0
48
- - 3
49
- version: 2.0.3
51
+ version: "0"
50
52
  type: :runtime
51
53
  version_requirements: *id002
52
54
  - !ruby/object:Gem::Dependency
53
- name: net-ssh-multi
55
+ name: multi_json
54
56
  prerelease: false
55
57
  requirement: &id003 !ruby/object:Gem::Requirement
56
58
  none: false
57
59
  requirements:
58
60
  - - ">="
59
61
  - !ruby/object:Gem::Version
60
- hash: 21
62
+ hash: 3
61
63
  segments:
62
- - 1
63
64
  - 0
64
- - 1
65
- version: 1.0.1
65
+ version: "0"
66
66
  type: :runtime
67
67
  version_requirements: *id003
68
68
  - !ruby/object:Gem::Dependency
69
- name: net-scp
69
+ name: mixlib-config
70
70
  prerelease: false
71
71
  requirement: &id004 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
- - - ~>
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
- hash: 31
76
+ hash: 3
77
77
  segments:
78
- - 1
79
78
  - 0
80
- - 4
81
- version: 1.0.4
79
+ version: "0"
82
80
  type: :runtime
83
81
  version_requirements: *id004
84
82
  - !ruby/object:Gem::Dependency
85
- name: highline
83
+ name: rspec
86
84
  prerelease: false
87
85
  requirement: &id005 !ruby/object:Gem::Requirement
88
86
  none: false
@@ -93,10 +91,10 @@ dependencies:
93
91
  segments:
94
92
  - 0
95
93
  version: "0"
96
- type: :runtime
94
+ type: :development
97
95
  version_requirements: *id005
98
96
  - !ruby/object:Gem::Dependency
99
- name: yajl-ruby
97
+ name: rake
100
98
  prerelease: false
101
99
  requirement: &id006 !ruby/object:Gem::Requirement
102
100
  none: false
@@ -107,25 +105,117 @@ dependencies:
107
105
  segments:
108
106
  - 0
109
107
  version: "0"
110
- type: :runtime
108
+ type: :development
111
109
  version_requirements: *id006
112
- description: Google Compute Cloud Support for Chef's Knife Command
113
- email: chiragj@websym.com
110
+ - !ruby/object:Gem::Dependency
111
+ name: simplecov
112
+ prerelease: false
113
+ requirement: &id007 !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ hash: 3
119
+ segments:
120
+ - 0
121
+ version: "0"
122
+ type: :development
123
+ version_requirements: *id007
124
+ description: Google Compute Engine Support for Chef's Knife Command
125
+ email: raggi@google.com
114
126
  executables: []
115
127
 
116
128
  extensions: []
117
129
 
118
130
  extra_rdoc_files:
119
- - README.rdoc
131
+ - README.md
120
132
  - LICENSE
133
+ - CONTRIB.md
121
134
  files:
135
+ - .gitignore
136
+ - CONTRIB.md
137
+ - Gemfile
122
138
  - LICENSE
123
- - README.rdoc
139
+ - README.md
140
+ - Rakefile
141
+ - knife-google.gemspec
124
142
  - lib/chef/knife/google_base.rb
143
+ - lib/chef/knife/google_disk_create.rb
144
+ - lib/chef/knife/google_disk_delete.rb
145
+ - lib/chef/knife/google_disk_list.rb
125
146
  - lib/chef/knife/google_server_create.rb
126
- - lib/chef/knife/google_server_list.rb
127
147
  - lib/chef/knife/google_server_delete.rb
148
+ - lib/chef/knife/google_server_list.rb
149
+ - lib/chef/knife/google_setup.rb
150
+ - lib/chef/knife/google_zone_list.rb
151
+ - lib/google/compute.rb
152
+ - lib/google/compute/client.rb
153
+ - lib/google/compute/config.rb
154
+ - lib/google/compute/creatable_resource_collection.rb
155
+ - lib/google/compute/deletable_resource_collection.rb
156
+ - lib/google/compute/disk.rb
157
+ - lib/google/compute/exception.rb
158
+ - lib/google/compute/firewall.rb
159
+ - lib/google/compute/global_operation.rb
160
+ - lib/google/compute/image.rb
161
+ - lib/google/compute/kernel.rb
162
+ - lib/google/compute/listable_resource_collection.rb
163
+ - lib/google/compute/machine_type.rb
164
+ - lib/google/compute/mixins/utils.rb
165
+ - lib/google/compute/network.rb
166
+ - lib/google/compute/project.rb
167
+ - lib/google/compute/resource.rb
168
+ - lib/google/compute/resource_collection.rb
169
+ - lib/google/compute/server.rb
170
+ - lib/google/compute/server/attached_disk.rb
171
+ - lib/google/compute/server/network_interface.rb
172
+ - lib/google/compute/server/network_interface/access_config.rb
173
+ - lib/google/compute/server/serial_port_output.rb
174
+ - lib/google/compute/snapshot.rb
175
+ - lib/google/compute/version.rb
176
+ - lib/google/compute/zone.rb
177
+ - lib/google/compute/zone_operation.rb
128
178
  - lib/knife-google/version.rb
179
+ - spec/chef/knife/google_base_spec.rb
180
+ - spec/chef/knife/google_disk_create_spec.rb
181
+ - spec/chef/knife/google_disk_delete_spec.rb
182
+ - spec/chef/knife/google_disk_list_spec.rb
183
+ - spec/chef/knife/google_server_create_spec.rb
184
+ - spec/chef/knife/google_server_delete_spec.rb
185
+ - spec/chef/knife/google_server_list_spec.rb
186
+ - spec/chef/knife/google_setup_spec.rb
187
+ - spec/chef/knife/google_zone_list_spec.rb
188
+ - spec/data/client.json
189
+ - spec/data/compute-v1beta14.json
190
+ - spec/data/disk.json
191
+ - spec/data/firewall.json
192
+ - spec/data/global_operation.json
193
+ - spec/data/image.json
194
+ - spec/data/kernel.json
195
+ - spec/data/machine_type.json
196
+ - spec/data/network.json
197
+ - spec/data/project.json
198
+ - spec/data/serial_port_output.json
199
+ - spec/data/server.json
200
+ - spec/data/snapshot.json
201
+ - spec/data/zone.json
202
+ - spec/data/zone_operation.json
203
+ - spec/google/compute/disk_spec.rb
204
+ - spec/google/compute/firewall_spec.rb
205
+ - spec/google/compute/global_operation_spec.rb
206
+ - spec/google/compute/image_spec.rb
207
+ - spec/google/compute/kernel_spec.rb
208
+ - spec/google/compute/machine_type_spec.rb
209
+ - spec/google/compute/network_spec.rb
210
+ - spec/google/compute/project_spec.rb
211
+ - spec/google/compute/server_spec.rb
212
+ - spec/google/compute/snapshot_spec.rb
213
+ - spec/google/compute/zone_operation_spec.rb
214
+ - spec/google/compute/zone_spec.rb
215
+ - spec/spec_helper.rb
216
+ - spec/support/mocks.rb
217
+ - spec/support/resource_examples.rb
218
+ - spec/support/spec_google_base.rb
129
219
  homepage: http://wiki.opscode.com/display/chef
130
220
  licenses: []
131
221
 
@@ -158,6 +248,6 @@ rubyforge_project:
158
248
  rubygems_version: 1.8.10
159
249
  signing_key:
160
250
  specification_version: 3
161
- summary: Google Compute Cloud Support for Chef's Knife Command
251
+ summary: Manage Google Compute Engine servers, disks, and zones
162
252
  test_files: []
163
253