Class: CartBinaryUploader::Storage
- Inherits:
-
Object
- Object
- CartBinaryUploader::Storage
show all
- Defined in:
- lib/storage/storage_type.rb
Constant Summary
collapse
- FRAMEWORK_EXTENSION_NAME =
'.framework'.freeze
- JSON_EXTENSION_NAME =
'.json'.freeze
- JSON_EXTENSION_ZIP =
'.zip'.freeze
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(bucket_name, framework_name, framework_version) ⇒ Storage
Returns a new instance of Storage.
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/storage/storage_type.rb', line 23
def initialize(bucket_name,
framework_name,
framework_version)
@bucket_name = bucket_name
@framework_name = framework_name
@framework_version = framework_version
CartLogger.log_info 'Updating storage resource file names'
create_files_names_resource
CartLogger.log_info 'Creating storage'
create_storage
CartLogger.log_info "Creating bucket name: #{@bucket_name}"
create_bucket
end
|
Instance Attribute Details
#bucket ⇒ Object
Returns the value of attribute bucket.
15
16
17
|
# File 'lib/storage/storage_type.rb', line 15
def bucket
@bucket
end
|
#bucket_name ⇒ Object
Returns the value of attribute bucket_name.
12
13
14
|
# File 'lib/storage/storage_type.rb', line 12
def bucket_name
@bucket_name
end
|
#bucket_object ⇒ Object
Returns the value of attribute bucket_object.
17
18
19
|
# File 'lib/storage/storage_type.rb', line 17
def bucket_object
@bucket_object
end
|
#framework_name ⇒ Object
Returns the value of attribute framework_name.
13
14
15
|
# File 'lib/storage/storage_type.rb', line 13
def framework_name
@framework_name
end
|
#framework_name_destination ⇒ Object
Returns the value of attribute framework_name_destination.
20
21
22
|
# File 'lib/storage/storage_type.rb', line 20
def framework_name_destination
@framework_name_destination
end
|
#framework_name_source ⇒ Object
Returns the value of attribute framework_name_source.
19
20
21
|
# File 'lib/storage/storage_type.rb', line 19
def framework_name_source
@framework_name_source
end
|
#framework_version ⇒ Object
Returns the value of attribute framework_version.
14
15
16
|
# File 'lib/storage/storage_type.rb', line 14
def framework_version
@framework_version
end
|
#json_file ⇒ Object
Returns the value of attribute json_file.
16
17
18
|
# File 'lib/storage/storage_type.rb', line 16
def json_file
@json_file
end
|
#json_file_path ⇒ Object
Returns the value of attribute json_file_path.
21
22
23
|
# File 'lib/storage/storage_type.rb', line 21
def json_file_path
@json_file_path
end
|
Instance Method Details
#copy_local_file(framework_name_source, framework_name_destination) ⇒ Object
122
123
124
|
# File 'lib/storage/storage_type.rb', line 122
def copy_local_file(framework_name_source, framework_name_destination)
FileUtils.copy_file(framework_name_source, framework_name_destination)
end
|
#create_bucket ⇒ Object
42
43
44
|
# File 'lib/storage/storage_type.rb', line 42
def create_bucket
throw :not_implemented, 'The current method not implemented'
end
|
#create_empty_json_file(file_name) ⇒ Object
142
143
144
145
|
# File 'lib/storage/storage_type.rb', line 142
def create_empty_json_file(file_name)
json_object = JSON.parse('{}')
save_json_object(file_name, json_object)
end
|
#create_files_names_resource ⇒ Object
#create_framework_with_version_name ⇒ Object
82
83
84
|
# File 'lib/storage/storage_type.rb', line 82
def create_framework_with_version_name
copy_local_file(@framework_name_source, @framework_name_destination)
end
|
#create_local_file(file_name) ⇒ Object
106
107
108
|
# File 'lib/storage/storage_type.rb', line 106
def create_local_file(file_name)
throw :not_implemented, "The current method not implemented"
end
|
#create_public_url(file_path) ⇒ Object
102
103
104
|
# File 'lib/storage/storage_type.rb', line 102
def create_public_url(file_path)
throw :not_implemented, "The current method not implemented"
end
|
#create_storage ⇒ Object
38
39
40
|
# File 'lib/storage/storage_type.rb', line 38
def create_storage
throw :not_implemented, 'The current method not implemented'
end
|
#download_config_json_file(from_file) ⇒ Object
114
115
116
|
# File 'lib/storage/storage_type.rb', line 114
def download_config_json_file(from_file)
throw :not_implemented, "The current method not implemented"
end
|
#file_on_storage_cloud(file) ⇒ Object
110
111
112
|
# File 'lib/storage/storage_type.rb', line 110
def file_on_storage_cloud(file)
throw :not_implemented, "The current method not implemented"
end
|
#load_json_object(json_path) ⇒ Object
126
127
128
129
130
131
132
133
|
# File 'lib/storage/storage_type.rb', line 126
def load_json_object(json_path)
CartLogger.log_info 'Loading JSON file'
json = File.read(json_path)
object = JSON.parse(json)
CartLogger.log_info object
CartLogger.log_info 'JSON Loaded'
object
end
|
#save_json_object(json_path, json_object) ⇒ Object
135
136
137
138
139
140
|
# File 'lib/storage/storage_type.rb', line 135
def save_json_object(json_path, json_object)
binary_json = JSON.pretty_generate(json_object)
CartLogger.log_info "Saving JSON Object in: #{json_path} JSON: #{binary_json}"
File.write(json_path, binary_json)
CartLogger.log_info 'JSON Saved'
end
|
#sync_json_framework_version ⇒ Object
86
87
88
89
90
91
92
93
94
95
96
|
# File 'lib/storage/storage_type.rb', line 86
def sync_json_framework_version
if file_on_storage_cloud(@json_file_path)
@json_file = download_config_json_file(@json_file_path)
if @json_file.nil?
throw :could_not_download_json_file, "JSON With name: #{@json_file_path}"
end
else
CartLogger.log_warn "Creating empty json because it not exsits yet on cloud"
create_empty_json_file(@json_file_path)
end
end
|
#update_json_with_url(json_object, url) ⇒ Object
78
79
80
|
# File 'lib/storage/storage_type.rb', line 78
def update_json_with_url(json_object, url)
json_object[@framework_version] = url
end
|
#upload_file(file_path) ⇒ Object
98
99
100
|
# File 'lib/storage/storage_type.rb', line 98
def upload_file(file_path)
throw :not_implemented, "The current method not implemented"
end
|
#upload_framework ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/storage/storage_type.rb', line 52
def upload_framework
CartLogger.log_info 'Prepering to upload file to cloud'
CartLogger.log_info "Framework Source: #{@framework_name_source}"
CartLogger.log_info "Framework Destination: #{@framework_name_destination}"
CartLogger.log_info "JSON Path: #{@json_file_path}"
CartLogger.log_info "Verifying if the version file #{@framework_name_destination} already exists"
unless file_on_storage_cloud(@framework_name_destination)
CartLogger.log_info "File version #{@framework_version} not exists yet, starting generate file on cloud"
sync_json_framework_version
create_framework_with_version_name
shared_url = upload_file(@framework_name_destination)
json_object = load_json_object(@json_file_path)
update_json_with_url(json_object, shared_url)
save_json_object(@json_file_path, json_object)
CartLogger.log_info 'Starting upload file to storage cloud'
upload_file(@json_file_path)
CartLogger.log_info 'Uploaded complete'
else
throw :the_version_file_already_exists, "The current version: #{@framework_version} already exists on cloud"
end
end
|
#upload_json(json_path) ⇒ Object
118
119
120
|
# File 'lib/storage/storage_type.rb', line 118
def upload_json(json_path)
throw :not_implemented, "The current method not implemented"
end
|