cloudkeeper 1.6.1 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -0
- data/cloudkeeper.gemspec +1 -1
- data/lib/cloudkeeper/entities/convertables/ova.rb +12 -2
- data/lib/cloudkeeper/managers/image_list_manager.rb +1 -2
- data/lib/cloudkeeper/managers/image_manager.rb +2 -2
- data/lib/cloudkeeper/utils.rb +1 -0
- data/lib/cloudkeeper/utils/appliance.rb +1 -1
- data/lib/cloudkeeper/utils/filename.rb +13 -0
- data/lib/cloudkeeper/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a1f66c8fe0204c321ed16a565f9ca9f720bfb4b
|
4
|
+
data.tar.gz: 383c7c53ba0faf825cef509dcc191bdfc301d8f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba4cd0c58cce7c6fcfeb0f34a29bb556eca29710cdfc71288d49d794a4aa28a3d050339b7059b5afd02542912017bbf86addc4303d6ce37e1406d5ec0d5917f3
|
7
|
+
data.tar.gz: 10b1c182148e3d6c68be1715b97428ded54964c7c034d7f2c0a6de91112ebfb18ad6e154a90d606ebca4f05046b34b8ea414ae0cc12702f5ae210a54fa673f25
|
data/.rubocop.yml
CHANGED
@@ -63,6 +63,11 @@ Metrics/ParameterLists:
|
|
63
63
|
Exclude:
|
64
64
|
- 'lib/cloudkeeper/entities/*.rb'
|
65
65
|
|
66
|
+
Naming/UncommunicativeMethodParamName:
|
67
|
+
Exclude:
|
68
|
+
- 'lib/cloudkeeper/entities/image_list.rb'
|
69
|
+
- 'lib/cloudkeeper/entities/appliance.rb'
|
70
|
+
|
66
71
|
Metrics/BlockLength:
|
67
72
|
Exclude:
|
68
73
|
- 'Rakefile'
|
data/cloudkeeper.gemspec
CHANGED
@@ -33,12 +33,22 @@ module Cloudkeeper
|
|
33
33
|
|
34
34
|
def extract_disk
|
35
35
|
archived_disk = disk_file
|
36
|
+
archived_disk_sanitized = Cloudkeeper::Utils::Filename.sanitize archived_disk
|
37
|
+
|
36
38
|
disk_directory = File.dirname(file)
|
37
39
|
extracted_file = File.join(disk_directory, archived_disk)
|
38
40
|
Cloudkeeper::CommandExecutioner.execute('tar', '-x', '-f', file, '-C', disk_directory, archived_disk)
|
39
|
-
|
40
|
-
|
41
|
+
|
42
|
+
return extracted_file if archived_disk == archived_disk_sanitized
|
43
|
+
|
44
|
+
extracted_file_sanitized = File.join(disk_directory, archived_disk_sanitized)
|
45
|
+
logger.debug "Renaming file #{extracted_file.inspect} to #{extracted_file_sanitized.inspect}"
|
46
|
+
File.rename extracted_file, extracted_file_sanitized
|
47
|
+
|
48
|
+
extracted_file_sanitized
|
49
|
+
rescue Cloudkeeper::Errors::CommandExecutionError, ::SystemCallError => ex
|
41
50
|
delete_if_exists extracted_file
|
51
|
+
delete_if_exists extracted_file_sanitized
|
42
52
|
raise ex
|
43
53
|
end
|
44
54
|
|
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'tmpdir'
|
2
2
|
require 'faraday'
|
3
|
-
require 'zaru'
|
4
3
|
require 'openssl'
|
5
4
|
require 'json'
|
6
5
|
|
@@ -67,7 +66,7 @@ module Cloudkeeper
|
|
67
66
|
end
|
68
67
|
|
69
68
|
def generate_filename(uri, dir)
|
70
|
-
File.join(dir,
|
69
|
+
File.join(dir, Cloudkeeper::Utils::Filename.sanitize("#{uri.host}#{uri.path}"))
|
71
70
|
end
|
72
71
|
|
73
72
|
def convert_image_list(image_list_hash)
|
@@ -72,7 +72,7 @@ module Cloudkeeper
|
|
72
72
|
end
|
73
73
|
|
74
74
|
response.value
|
75
|
-
open(filename, 'w') { |file| response.read_body { |chunk| file.write(chunk) } }
|
75
|
+
File.open(filename, 'w') { |file| response.read_body { |chunk| file.write(chunk) } }
|
76
76
|
end
|
77
77
|
end
|
78
78
|
rescue Timeout::Error, Errno::EINVAL, Errno::ECONNRESET, Errno::ECONNREFUSED, Net::HTTPBadResponse,
|
@@ -88,7 +88,7 @@ module Cloudkeeper
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def generate_filename(uri)
|
91
|
-
File.join(Cloudkeeper::Settings[:'image-dir'],
|
91
|
+
File.join(Cloudkeeper::Settings[:'image-dir'], Cloudkeeper::Utils::Filename.sanitize(File.basename(uri.path)))
|
92
92
|
end
|
93
93
|
end
|
94
94
|
end
|
data/lib/cloudkeeper/utils.rb
CHANGED
@@ -52,7 +52,7 @@ module Cloudkeeper
|
|
52
52
|
|
53
53
|
appliance.image.add_image_file image_file.send("to_#{format}".to_sym)
|
54
54
|
rescue Cloudkeeper::Errors::Image::Format::NoRequiredFormatAvailableError, Cloudkeeper::Errors::CommandExecutionError,
|
55
|
-
Cloudkeeper::Errors::ArgumentError, ::IOError => ex
|
55
|
+
Cloudkeeper::Errors::ArgumentError, ::IOError, ::SystemCallError => ex
|
56
56
|
raise Cloudkeeper::Errors::Image::ConversionError, "Image #{appliance.image.uri.inspect} conversion error: #{ex.message}"
|
57
57
|
end
|
58
58
|
end
|
data/lib/cloudkeeper/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudkeeper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michal Kimle
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -403,6 +403,7 @@ files:
|
|
403
403
|
- lib/cloudkeeper/utils/appliance.rb
|
404
404
|
- lib/cloudkeeper/utils/checksum.rb
|
405
405
|
- lib/cloudkeeper/utils/date.rb
|
406
|
+
- lib/cloudkeeper/utils/filename.rb
|
406
407
|
- lib/cloudkeeper/utils/hash.rb
|
407
408
|
- lib/cloudkeeper/utils/url.rb
|
408
409
|
- lib/cloudkeeper/version.rb
|