cloudkeeper-aws 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.gitmodules +3 -0
  4. data/.rubocop.yml +48 -0
  5. data/.travis.yml +22 -0
  6. data/Gemfile +5 -0
  7. data/LICENSE +674 -0
  8. data/README.md +91 -0
  9. data/Rakefile +17 -0
  10. data/bin/cloudkeeper-aws +5 -0
  11. data/cloudkeeper-aws.gemspec +46 -0
  12. data/codecov.yml +4 -0
  13. data/config/cloudkeeper-aws.yml +17 -0
  14. data/lib/cloudkeeper/aws.rb +16 -0
  15. data/lib/cloudkeeper/aws/backend_executor.rb +76 -0
  16. data/lib/cloudkeeper/aws/cli.rb +159 -0
  17. data/lib/cloudkeeper/aws/cloud.rb +173 -0
  18. data/lib/cloudkeeper/aws/core_connector.rb +108 -0
  19. data/lib/cloudkeeper/aws/errors.rb +11 -0
  20. data/lib/cloudkeeper/aws/errors/backend.rb +14 -0
  21. data/lib/cloudkeeper/aws/errors/backend/appliance_not_found_error.rb +9 -0
  22. data/lib/cloudkeeper/aws/errors/backend/backend_error.rb +9 -0
  23. data/lib/cloudkeeper/aws/errors/backend/image_import_error.rb +9 -0
  24. data/lib/cloudkeeper/aws/errors/backend/multiple_appliances_found_error.rb +9 -0
  25. data/lib/cloudkeeper/aws/errors/backend/timeout_error.rb +9 -0
  26. data/lib/cloudkeeper/aws/errors/image_download_error.rb +7 -0
  27. data/lib/cloudkeeper/aws/errors/invalid_configuration_error.rb +7 -0
  28. data/lib/cloudkeeper/aws/errors/standard_error.rb +7 -0
  29. data/lib/cloudkeeper/aws/filter_helper.rb +33 -0
  30. data/lib/cloudkeeper/aws/image_downloader.rb +52 -0
  31. data/lib/cloudkeeper/aws/proto_helper.rb +70 -0
  32. data/lib/cloudkeeper/aws/settings.rb +18 -0
  33. data/lib/cloudkeeper/aws/version.rb +5 -0
  34. data/lib/cloudkeeper_grpc.rb +7 -0
  35. data/lib/cloudkeeper_grpc/.gitmodules +6 -0
  36. data/lib/cloudkeeper_grpc/CODE_OF_CONDUCT.md +49 -0
  37. data/lib/cloudkeeper_grpc/LICENSE.txt +17 -0
  38. data/lib/cloudkeeper_grpc/README.md +9 -0
  39. data/lib/cloudkeeper_grpc/cloudkeeper_pb.rb +59 -0
  40. data/lib/cloudkeeper_grpc/cloudkeeper_services_pb.rb +31 -0
  41. data/lib/cloudkeeper_grpc/constants.rb +10 -0
  42. data/lib/cloudkeeper_grpc/protos/CODE_OF_CONDUCT.md +49 -0
  43. data/lib/cloudkeeper_grpc/protos/LICENSE.txt +17 -0
  44. data/lib/cloudkeeper_grpc/protos/README.md +3 -0
  45. data/lib/cloudkeeper_grpc/protos/cloudkeeper.proto +64 -0
  46. data/lib/cloudkeeper_grpc/status-codes/CODE_OF_CONDUCT.md +49 -0
  47. data/lib/cloudkeeper_grpc/status-codes/LICENSE.txt +13 -0
  48. data/lib/cloudkeeper_grpc/status-codes/README.md +3 -0
  49. data/lib/cloudkeeper_grpc/status-codes/status-codes.yml +12 -0
  50. metadata +303 -0
@@ -0,0 +1,17 @@
1
+ The work represented by this source file was partially or entirely
2
+ funded by the EGI-Engage project co-funded by the European Union (EU)
3
+ Horizon 2020 program under Grant number 654142.
4
+
5
+ Copyright (c) 2017 CESNET
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
@@ -0,0 +1,9 @@
1
+ ## cloudkeeper gRPC generated classes for Ruby
2
+
3
+ This repository contains Ruby classes generated for gRPC communication within the [cloudkeeper](https://github.com/the-cloudkeeper-project/cloudkeeper) project.
4
+
5
+ ### Important!
6
+ Code expects `String` class to contain method `underscore` which can be find within [Active Support](https://guides.rubyonrails.org/active_support_core_extensions.html) gem. At least extensions for `String` class must be required:
7
+ ```ruby
8
+ require 'active_support/core_ext/string'
9
+ ```
@@ -0,0 +1,59 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # source: cloudkeeper.proto
3
+
4
+ require 'google/protobuf'
5
+
6
+ require 'google/protobuf/empty_pb'
7
+ Google::Protobuf::DescriptorPool.generated_pool.build do
8
+ add_message "cloudkeeper_grpc.Appliance" do
9
+ optional :identifier, :string, 1
10
+ optional :title, :string, 2
11
+ optional :description, :string, 3
12
+ optional :mpuri, :string, 4
13
+ optional :group, :string, 5
14
+ optional :ram, :int64, 6
15
+ optional :core, :int32, 7
16
+ optional :version, :string, 8
17
+ optional :architecture, :string, 9
18
+ optional :operating_system, :string, 10
19
+ optional :vo, :string, 11
20
+ optional :expiration_date, :int64, 12
21
+ optional :image_list_identifier, :string, 13
22
+ optional :base_mpuri, :string, 14
23
+ optional :appid, :string, 15
24
+ optional :digest, :string, 16
25
+ optional :image, :message, 17, "cloudkeeper_grpc.Image"
26
+ end
27
+ add_message "cloudkeeper_grpc.Image" do
28
+ optional :mode, :enum, 1, "cloudkeeper_grpc.Image.Mode"
29
+ optional :location, :string, 2
30
+ optional :format, :enum, 3, "cloudkeeper_grpc.Image.Format"
31
+ optional :uri, :string, 4
32
+ optional :checksum, :string, 5
33
+ optional :size, :int64, 6
34
+ optional :username, :string, 7
35
+ optional :password, :string, 8
36
+ optional :digest, :string, 9
37
+ end
38
+ add_enum "cloudkeeper_grpc.Image.Mode" do
39
+ value :LOCAL, 0
40
+ value :REMOTE, 1
41
+ end
42
+ add_enum "cloudkeeper_grpc.Image.Format" do
43
+ value :RAW, 0
44
+ value :OVA, 1
45
+ value :QCOW2, 2
46
+ value :VMDK, 3
47
+ end
48
+ add_message "cloudkeeper_grpc.ImageListIdentifier" do
49
+ optional :image_list_identifier, :string, 1
50
+ end
51
+ end
52
+
53
+ module CloudkeeperGrpc
54
+ Appliance = Google::Protobuf::DescriptorPool.generated_pool.lookup("cloudkeeper_grpc.Appliance").msgclass
55
+ Image = Google::Protobuf::DescriptorPool.generated_pool.lookup("cloudkeeper_grpc.Image").msgclass
56
+ Image::Mode = Google::Protobuf::DescriptorPool.generated_pool.lookup("cloudkeeper_grpc.Image.Mode").enummodule
57
+ Image::Format = Google::Protobuf::DescriptorPool.generated_pool.lookup("cloudkeeper_grpc.Image.Format").enummodule
58
+ ImageListIdentifier = Google::Protobuf::DescriptorPool.generated_pool.lookup("cloudkeeper_grpc.ImageListIdentifier").msgclass
59
+ end
@@ -0,0 +1,31 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # Source: cloudkeeper.proto for package 'cloudkeeper_grpc'
3
+
4
+ require 'grpc'
5
+ # require 'cloudkeeper_pb'
6
+
7
+ module CloudkeeperGrpc
8
+ module Communicator
9
+ class Service
10
+
11
+ include GRPC::GenericService
12
+
13
+ self.marshal_class_method = :encode
14
+ self.unmarshal_class_method = :decode
15
+ self.service_name = 'cloudkeeper_grpc.Communicator'
16
+
17
+ rpc :PreAction, Google::Protobuf::Empty, Google::Protobuf::Empty
18
+ rpc :PostAction, Google::Protobuf::Empty, Google::Protobuf::Empty
19
+ rpc :AddAppliance, Appliance, Google::Protobuf::Empty
20
+ rpc :UpdateAppliance, Appliance, Google::Protobuf::Empty
21
+ rpc :UpdateApplianceMetadata, Appliance, Google::Protobuf::Empty
22
+ rpc :RemoveAppliance, Appliance, Google::Protobuf::Empty
23
+ rpc :RemoveImageList, ImageListIdentifier, Google::Protobuf::Empty
24
+ rpc :ImageLists, Google::Protobuf::Empty, stream(ImageListIdentifier)
25
+ rpc :Appliances, ImageListIdentifier, stream(Appliance)
26
+ rpc :RemoveExpiredAppliances, Google::Protobuf::Empty, Google::Protobuf::Empty
27
+ end
28
+
29
+ Stub = Service.rpc_stub_class
30
+ end
31
+ end
@@ -0,0 +1,10 @@
1
+ require 'yaml'
2
+
3
+ module CloudkeeperGrpc
4
+ class Constants
5
+ status_codes = YAML.load_file(File.join(File.dirname(__FILE__), 'status-codes', 'status-codes.yml'))
6
+ status_codes.each do |key, value|
7
+ const_set("STATUS_CODE_#{key.underscore.upcase}", value)
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,49 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, and in the interest of
4
+ fostering an open and welcoming community, we pledge to respect all people who
5
+ contribute through reporting issues, posting feature requests, updating
6
+ documentation, submitting pull requests or patches, and other activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, religion, or nationality.
12
+
13
+ Examples of unacceptable behavior by participants include:
14
+
15
+ * The use of sexualized language or imagery
16
+ * Personal attacks
17
+ * Trolling or insulting/derogatory comments
18
+ * Public or private harassment
19
+ * Publishing other's private information, such as physical or electronic
20
+ addresses, without explicit permission
21
+ * Other unethical or unprofessional conduct
22
+
23
+ Project maintainers have the right and responsibility to remove, edit, or
24
+ reject comments, commits, code, wiki edits, issues, and other contributions
25
+ that are not aligned to this Code of Conduct, or to ban temporarily or
26
+ permanently any contributor for other behaviors that they deem inappropriate,
27
+ threatening, offensive, or harmful.
28
+
29
+ By adopting this Code of Conduct, project maintainers commit themselves to
30
+ fairly and consistently applying these principles to every aspect of managing
31
+ this project. Project maintainers who do not follow or enforce the Code of
32
+ Conduct may be permanently removed from the project team.
33
+
34
+ This code of conduct applies both within project spaces and in public spaces
35
+ when an individual is representing the project or its community.
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
+ reported by contacting a project maintainer at kimle.michal@gmail.com. All
39
+ complaints will be reviewed and investigated and will result in a response that
40
+ is deemed necessary and appropriate to the circumstances. Maintainers are
41
+ obligated to maintain confidentiality with regard to the reporter of an
42
+ incident.
43
+
44
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
45
+ version 1.3.0, available at
46
+ [http://contributor-covenant.org/version/1/3/0/][version]
47
+
48
+ [homepage]: http://contributor-covenant.org
49
+ [version]: http://contributor-covenant.org/version/1/3/0/
@@ -0,0 +1,17 @@
1
+ The work represented by this source file was partially or entirely
2
+ funded by the EGI-Engage project co-funded by the European Union (EU)
3
+ Horizon 2020 program under Grant number 654142.
4
+
5
+ Copyright (c) 2017 CESNET
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
@@ -0,0 +1,3 @@
1
+ ## cloudkeeper proto file
2
+
3
+ This repository contains gRPC communication specification for [cloudkeeper](https://github.com/the-cloudkeeper-project/cloudkeeper) project.
@@ -0,0 +1,64 @@
1
+ syntax = "proto3";
2
+
3
+ import public "google/protobuf/empty.proto";
4
+
5
+ package cloudkeeper_grpc;
6
+
7
+ message Appliance {
8
+ string identifier = 1;
9
+ string title = 2;
10
+ string description = 3;
11
+ string mpuri = 4;
12
+ string group = 5;
13
+ int64 ram = 6;
14
+ int32 core = 7;
15
+ string version = 8;
16
+ string architecture = 9;
17
+ string operating_system = 10;
18
+ string vo = 11;
19
+ int64 expiration_date = 12;
20
+ string image_list_identifier = 13;
21
+ string base_mpuri = 14;
22
+ string appid = 15;
23
+ string digest = 16;
24
+ Image image = 17;
25
+ }
26
+
27
+ message Image {
28
+ enum Mode {
29
+ LOCAL = 0;
30
+ REMOTE = 1;
31
+ }
32
+ Mode mode = 1;
33
+ string location = 2;
34
+ enum Format {
35
+ RAW = 0;
36
+ OVA = 1;
37
+ QCOW2 = 2;
38
+ VMDK = 3;
39
+ }
40
+ Format format = 3;
41
+ string uri = 4;
42
+ string checksum = 5;
43
+ int64 size = 6;
44
+ string username = 7;
45
+ string password = 8;
46
+ string digest = 9;
47
+ }
48
+
49
+ message ImageListIdentifier {
50
+ string image_list_identifier = 1;
51
+ }
52
+
53
+ service Communicator {
54
+ rpc PreAction(google.protobuf.Empty) returns (google.protobuf.Empty) {}
55
+ rpc PostAction(google.protobuf.Empty) returns (google.protobuf.Empty) {}
56
+ rpc AddAppliance(Appliance) returns (google.protobuf.Empty) {}
57
+ rpc UpdateAppliance(Appliance) returns (google.protobuf.Empty) {}
58
+ rpc UpdateApplianceMetadata(Appliance) returns (google.protobuf.Empty) {}
59
+ rpc RemoveAppliance(Appliance) returns (google.protobuf.Empty) {}
60
+ rpc RemoveImageList(ImageListIdentifier) returns (google.protobuf.Empty) {}
61
+ rpc ImageLists(google.protobuf.Empty) returns (stream ImageListIdentifier) {}
62
+ rpc Appliances(ImageListIdentifier) returns (stream Appliance) {}
63
+ rpc RemoveExpiredAppliances(google.protobuf.Empty) returns (google.protobuf.Empty) {}
64
+ }
@@ -0,0 +1,49 @@
1
+ # Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, and in the interest of
4
+ fostering an open and welcoming community, we pledge to respect all people who
5
+ contribute through reporting issues, posting feature requests, updating
6
+ documentation, submitting pull requests or patches, and other activities.
7
+
8
+ We are committed to making participation in this project a harassment-free
9
+ experience for everyone, regardless of level of experience, gender, gender
10
+ identity and expression, sexual orientation, disability, personal appearance,
11
+ body size, race, ethnicity, age, religion, or nationality.
12
+
13
+ Examples of unacceptable behavior by participants include:
14
+
15
+ * The use of sexualized language or imagery
16
+ * Personal attacks
17
+ * Trolling or insulting/derogatory comments
18
+ * Public or private harassment
19
+ * Publishing other's private information, such as physical or electronic
20
+ addresses, without explicit permission
21
+ * Other unethical or unprofessional conduct
22
+
23
+ Project maintainers have the right and responsibility to remove, edit, or
24
+ reject comments, commits, code, wiki edits, issues, and other contributions
25
+ that are not aligned to this Code of Conduct, or to ban temporarily or
26
+ permanently any contributor for other behaviors that they deem inappropriate,
27
+ threatening, offensive, or harmful.
28
+
29
+ By adopting this Code of Conduct, project maintainers commit themselves to
30
+ fairly and consistently applying these principles to every aspect of managing
31
+ this project. Project maintainers who do not follow or enforce the Code of
32
+ Conduct may be permanently removed from the project team.
33
+
34
+ This code of conduct applies both within project spaces and in public spaces
35
+ when an individual is representing the project or its community.
36
+
37
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
38
+ reported by contacting a project maintainer at kimle.michal@gmail.com. All
39
+ complaints will be reviewed and investigated and will result in a response that
40
+ is deemed necessary and appropriate to the circumstances. Maintainers are
41
+ obligated to maintain confidentiality with regard to the reporter of an
42
+ incident.
43
+
44
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
45
+ version 1.3.0, available at
46
+ [http://contributor-covenant.org/version/1/3/0/][version]
47
+
48
+ [homepage]: http://contributor-covenant.org
49
+ [version]: http://contributor-covenant.org/version/1/3/0/
@@ -0,0 +1,13 @@
1
+ Copyright 2018 Michal Kimle
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.
@@ -0,0 +1,3 @@
1
+ ## cloudkeeper status-codes file
2
+
3
+ This repository contains status codes for error handling of gRPC communication within [cloudkeeper](https://github.com/the-cloudkeeper-project/cloudkeeper) project.
@@ -0,0 +1,12 @@
1
+ ---
2
+ # Compatible with GRPC status codes
3
+ Ok: 0
4
+ Unknown: 2
5
+ PermissionDenied: 7
6
+ Unauthenticated: 16
7
+ # Custom status codes
8
+ ApplianceNotFound: 101
9
+ FailedApplianceTransfer: 102
10
+ ResourceNotFound: 103
11
+ FailedResourceRetrieval: 104
12
+ InvalidResourceState: 105
metadata ADDED
@@ -0,0 +1,303 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cloudkeeper-aws
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Dušan Baran
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-10-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.16'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: codecov
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '10.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '10.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.54'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.54'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop-rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1.27'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1.27'
97
+ - !ruby/object:Gem::Dependency
98
+ name: vcr
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '4.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '4.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '3.4'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '3.4'
125
+ - !ruby/object:Gem::Dependency
126
+ name: activesupport
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '5.2'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '5.2'
139
+ - !ruby/object:Gem::Dependency
140
+ name: aws-sdk-ec2
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.43'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.43'
153
+ - !ruby/object:Gem::Dependency
154
+ name: aws-sdk-s3
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '1.17'
160
+ type: :runtime
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '1.17'
167
+ - !ruby/object:Gem::Dependency
168
+ name: grpc
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '1.10'
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '1.10'
181
+ - !ruby/object:Gem::Dependency
182
+ name: settingslogic
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '2.0'
188
+ type: :runtime
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '2.0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: thor
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '0.20'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '0.20'
209
+ - !ruby/object:Gem::Dependency
210
+ name: yell
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '2.0'
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - "~>"
221
+ - !ruby/object:Gem::Version
222
+ version: '2.0'
223
+ description: AWS backend for cloudkeeper
224
+ email:
225
+ - work.dusanbaran@gmail.com
226
+ executables:
227
+ - cloudkeeper-aws
228
+ extensions: []
229
+ extra_rdoc_files: []
230
+ files:
231
+ - ".gitignore"
232
+ - ".gitmodules"
233
+ - ".rubocop.yml"
234
+ - ".travis.yml"
235
+ - Gemfile
236
+ - LICENSE
237
+ - README.md
238
+ - Rakefile
239
+ - bin/cloudkeeper-aws
240
+ - cloudkeeper-aws.gemspec
241
+ - codecov.yml
242
+ - config/cloudkeeper-aws.yml
243
+ - lib/cloudkeeper/aws.rb
244
+ - lib/cloudkeeper/aws/backend_executor.rb
245
+ - lib/cloudkeeper/aws/cli.rb
246
+ - lib/cloudkeeper/aws/cloud.rb
247
+ - lib/cloudkeeper/aws/core_connector.rb
248
+ - lib/cloudkeeper/aws/errors.rb
249
+ - lib/cloudkeeper/aws/errors/backend.rb
250
+ - lib/cloudkeeper/aws/errors/backend/appliance_not_found_error.rb
251
+ - lib/cloudkeeper/aws/errors/backend/backend_error.rb
252
+ - lib/cloudkeeper/aws/errors/backend/image_import_error.rb
253
+ - lib/cloudkeeper/aws/errors/backend/multiple_appliances_found_error.rb
254
+ - lib/cloudkeeper/aws/errors/backend/timeout_error.rb
255
+ - lib/cloudkeeper/aws/errors/image_download_error.rb
256
+ - lib/cloudkeeper/aws/errors/invalid_configuration_error.rb
257
+ - lib/cloudkeeper/aws/errors/standard_error.rb
258
+ - lib/cloudkeeper/aws/filter_helper.rb
259
+ - lib/cloudkeeper/aws/image_downloader.rb
260
+ - lib/cloudkeeper/aws/proto_helper.rb
261
+ - lib/cloudkeeper/aws/settings.rb
262
+ - lib/cloudkeeper/aws/version.rb
263
+ - lib/cloudkeeper_grpc.rb
264
+ - lib/cloudkeeper_grpc/.gitmodules
265
+ - lib/cloudkeeper_grpc/CODE_OF_CONDUCT.md
266
+ - lib/cloudkeeper_grpc/LICENSE.txt
267
+ - lib/cloudkeeper_grpc/README.md
268
+ - lib/cloudkeeper_grpc/cloudkeeper_pb.rb
269
+ - lib/cloudkeeper_grpc/cloudkeeper_services_pb.rb
270
+ - lib/cloudkeeper_grpc/constants.rb
271
+ - lib/cloudkeeper_grpc/protos/CODE_OF_CONDUCT.md
272
+ - lib/cloudkeeper_grpc/protos/LICENSE.txt
273
+ - lib/cloudkeeper_grpc/protos/README.md
274
+ - lib/cloudkeeper_grpc/protos/cloudkeeper.proto
275
+ - lib/cloudkeeper_grpc/status-codes/CODE_OF_CONDUCT.md
276
+ - lib/cloudkeeper_grpc/status-codes/LICENSE.txt
277
+ - lib/cloudkeeper_grpc/status-codes/README.md
278
+ - lib/cloudkeeper_grpc/status-codes/status-codes.yml
279
+ homepage: https://github.com/the-cloudkeeper-project/cloudkeeper-aws
280
+ licenses:
281
+ - GNU General Public License v3.0
282
+ metadata: {}
283
+ post_install_message:
284
+ rdoc_options: []
285
+ require_paths:
286
+ - lib
287
+ required_ruby_version: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - ">="
290
+ - !ruby/object:Gem::Version
291
+ version: '0'
292
+ required_rubygems_version: !ruby/object:Gem::Requirement
293
+ requirements:
294
+ - - ">="
295
+ - !ruby/object:Gem::Version
296
+ version: '0'
297
+ requirements: []
298
+ rubyforge_project:
299
+ rubygems_version: 2.7.7
300
+ signing_key:
301
+ specification_version: 4
302
+ summary: AWS backend for cloudkeeper
303
+ test_files: []