storazzo 0.3.7 → 0.3.8

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6478359f1db5708d42ebe8251f985481629d4255a119ce5a52952572863c94e5
4
- data.tar.gz: 8832a4178e0ed56687e6f494898f1902069c195c20f6474d20fd0981ad0bd3e7
3
+ metadata.gz: 7af080e9d4d71c7ceb558b4b4cbd1f13345fa3c4dbea5d6060da8fb9d5b21cc0
4
+ data.tar.gz: fe4fd90e12756dbe535e96f0c7c42834ce44c452839890d381a0e43a78ce926e
5
5
  SHA512:
6
- metadata.gz: df7a71868983eef6299a94dc4af98e232519d79414c15321c6548411ee8590b9bcb2b8c1418a94aae46993093850156bd595b1293396d55e1e0c0db891085095
7
- data.tar.gz: a69cc8ffc1ab17409df2635ff7aa58af329d7572498ecef00d215dca31d3c92314ae2e0c975c74eddbd5f2e69e34807b91b4ecd2bed4519e1a9dbddb31bfacaf
6
+ metadata.gz: 7f753c4e14018803a731de9cf992dcfcf4f4cac601fb0b978de6d16c83c8ab0f06430e0cdd2a203b025a714f168c08f0e6107606b9b354fcf792e0041be8d727
7
+ data.tar.gz: 072da4e8a2b24fedd83e1cd04b41f695a38a49e623cef5bd1643a11dfc8813604d32c7950976b6b5500839d2a2580293623ab7b32070d9e162db6a753f2d8d02
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.7
1
+ 0.3.8
@@ -16,8 +16,13 @@ module Storazzo
16
16
 
17
17
  # in order of finding, so the first will be the one we actually READ and use. I could looknat the date but cmon...
18
18
  # These are the files I do accept.
19
- ConfigFiles = %W{ ricdisk.yaml .ricdisk }
20
- RicdiskVersion = '2.0'
19
+ ConfigFiles = %W{ ricdisk.yaml .ricdisk storazzo.yaml }
20
+ DefaultConfigFile = "storazzo.yaml" # .ricdisk }
21
+ RicdiskVersion = '2.1'
22
+ RicdiskHistory = [
23
+ '2022-07-29 2.1 Added timestamp',
24
+ '2022-07-28 2.0 Added tags, siz, unique_hash, cmputation_hostname, wr, ...',
25
+ ]
21
26
  DefaultGemfileTestDiskFolder = Storazzo.root + "/var/test/disks/" # was: @@default_gemfile_test_disks_folder
22
27
  # Immutable
23
28
  DefaultMediaFolders = %w{
@@ -26,7 +31,7 @@ module Storazzo
26
31
  }.append(DefaultGemfileTestDiskFolder ).append("/media/#{ENV["USER"]}/" )
27
32
 
28
33
  # # todo substitute with protobuf..
29
- attr_accessor :name, :description, :ricdisk_file,:ricdisk_file_full, :local_mountpoint, :wr, :path,
34
+ attr_accessor :name, :description, :ricdisk_file, :ricdisk_file_full, :local_mountpoint, :wr, :path,
30
35
  :ricdisk_file_empty, :size, :active_dirs, :ricdisk_version,
31
36
  :unique_hash # new 202207
32
37
 
@@ -38,7 +43,6 @@ module Storazzo
38
43
 
39
44
  def initialize(path, opts={})
40
45
  deb "RicDisk initialize.. path=#{path}"
41
- # @local_mountpoint = path
42
46
  @local_mountpoint = File.expand_path(path)
43
47
  @description = "This is an automated RicDisk description from v.#{RicdiskVersion}. Created on #{Time.now}'"
44
48
  @ricdisk_version = RicdiskVersion
@@ -52,6 +56,7 @@ module Storazzo
52
56
  @size = `du -s '#{path}'`.split(/\s/)[0] # self.size
53
57
  @unique_hash = "MD5::" + Digest::MD5.hexdigest(File.expand_path(path)) # hash = Digest::MD5.hexdigest(File.expand_path(get_local_mountpoint))
54
58
  @computation_hostname = Socket.gethostname
59
+ @created_at = Time.now
55
60
 
56
61
  @ricdisk_file_empty = ricdisk_file_empty?
57
62
 
@@ -97,8 +102,10 @@ module Storazzo
97
102
  def writeable?()
98
103
  return @wr unless @wr.nil?
99
104
  # Otherwise I can do an EXPENSIVE calculation
100
- puts "TODO(ricc): Do expensive calculation if this FS is writeable: #{path}"
101
- @wr = File.writable?(File.expand_path(@ricdisk_file)) # rescue false
105
+ puts yellow("TODO(ricc): Do expensive calculation if this FS is writeable: #{path}")
106
+ #@wr = File.writable?(File.expand_path(@ricdisk_file)) # rescue false
107
+ raise "for some reason an important info (ricdisk_file='#{absolute_path}') is missing!" if ricdisk_file.nil?
108
+ @wr = File.writable?(absolute_path) # rescue false
102
109
  return @wr
103
110
  #:boh_todo_fix_me_and_compute
104
111
  #false
@@ -123,9 +130,9 @@ module Storazzo
123
130
  end
124
131
 
125
132
  def absolute_path
126
- @local_mountpoint + "/" + @ricdisk_file
133
+ #@local_mountpoint + "/" + @ricdisk_file
134
+ "#{local_mountpoint}/#{ricdisk_file}"
127
135
  end
128
-
129
136
 
130
137
  def self.find_active_dirs(base_dirs=nil, also_mountpoints=true)
131
138
  if base_dirs.nil?
@@ -172,9 +179,26 @@ module Storazzo
172
179
  #return ".ricdisk" if File.exist?("#{path}/.ricdisk") # and File.empty?( "#{path}/.ricdisk")
173
180
  return papable_config_filename if File.exist?("#{path}/#{papable_config_filename}") # and File.empty?( "#{path}/.ricdisk")
174
181
  end
175
- return nil
182
+ deb "File not found! Neither #{ConfigFiles} exist.."
183
+ # return nil
184
+ return DefaultConfigFile
176
185
  end
177
186
 
187
+
188
+ # def self.compute_ricdisk_file_by_path_once(path)
189
+ # # unless @ricdisk_file.nil?
190
+ # # deb "[CACHE HIT] ricdisk_file (didnt have to recompute it - yay!)"
191
+ # # return @ricdisk_file
192
+ # # end
193
+ # warn "RICC_WARNING This requires cmputation I wanna do it almost once"
194
+ # ConfigFiles.each do |papable_config_filename|
195
+ # #return ".ricdisk.yaml" if File.exist?("#{path}/.ricdisk.yaml") #and File.empty?( "#{path}/.ricdisk.yaml")
196
+ # #return ".ricdisk" if File.exist?("#{path}/.ricdisk") # and File.empty?( "#{path}/.ricdisk")
197
+ # return papable_config_filename if File.exist?("#{path}/#{papable_config_filename}") # and File.empty?( "#{path}/.ricdisk")
198
+ # end
199
+ # return nil
200
+ # end
201
+
178
202
 
179
203
  # # new
180
204
  # def self.get_ricdisk_file_obsolete(path)
@@ -234,11 +258,16 @@ module Storazzo
234
258
  # puts(yellow disk_info.to_yaml)
235
259
  # end
236
260
  if disk_info.is_a?(RicDisk)
237
- deb("disk_info.class: #{disk_info.class}")
238
- if File.empty?(disk_info.absolute_path) and (disk_info.wr)
261
+ puts yellow("DEB disk_info.class: #{disk_info.class}")
262
+ if File.empty?(disk_info.absolute_path) # and (disk_info.wr)
239
263
  puts(green("yay, we can now write the file '#{disk_info.absolute_path}' (which is R/W, I just checked!) with proper YAML content.."))
240
- ret = File.write(disk_info.absolute_path, disk_info.to_yaml)
241
- puts("Written file! ret=#{ret}")
264
+ if disk_info.wr
265
+ ret = File.write(disk_info.absolute_path, disk_info.obj_to_yaml)
266
+ puts green("Written file! ret=#{ret}")
267
+ else
268
+ raise "TODO_IMPLEMENT: write in proper place in config dir"
269
+ puts red("TODO implement me")
270
+ end
242
271
  else
243
272
  puts(red("Something not right here: either file is NOT empty or disk is NOT writeable.. #{File.empty?(disk_info.absolute_path)}"))
244
273
  puts("File size: #{File.size(disk_info.absolute_path)}")
@@ -246,28 +275,37 @@ module Storazzo
246
275
  puts(disk_info.obj_to_hash)
247
276
  puts(disk_info.obj_to_yaml)
248
277
  end
249
- else
278
+ else # not a RicDisk..
250
279
  puts "[write_config_yaml_to_disk] No DiskInfo found across #{ConfigFiles}. I leave this function empty-handed."
251
280
  end
252
- if File.exists?( "#{subdir}/.ricdisk") and ! File.empty?( "#{subdir}/.ricdisk")
253
- puts("Config File found with old-style name: '#{subdir}/.ricdisk' ! Please move it to .ricdisk.yaml!")
254
- puts(white `cat "#{subdir}/.ricdisk"`)
255
- else
256
- puts "WRITING NOW. disk_info.obj_to_yaml .. to #{compute_ricdisk_file}"
257
- File.open(ricdisk_file_full, 'w').write(disk_info.obj_to_yaml)
258
- end
281
+
282
+ #disk_info.absolute_path
283
+ #if File.exists?( "#{subdir}/.ricdisk") and ! File.empty?( "#{subdir}/.ricdisk")
284
+ # if File.exists?(disk_info.absolute_path) and ! File.empty?(disk_info.absolute_path)
285
+ # puts("Config File found with old-style name: '#{subdir}/.ricdisk' ! Please move it to .ricdisk.yaml!")
286
+ # puts(white `cat "#{disk_info.absolute_path}"`)
287
+ # else
288
+ # puts "WRITING NOW. [I BELIEVE THIS IS DUPE CODE - see a few lines above!] disk_info.obj_to_yaml .. to #{compute_ricdisk_file}"
289
+ # File.open(ricdisk_file_full, 'w').write(disk_info.obj_to_yaml)
290
+ # end
259
291
  end
260
292
 
261
293
  # TODO obsolete this as i should NOT be calling it from clas, but from method.
262
294
  def self.ok_dir?(subdir)
263
295
  File.exists?( "#{subdir}/.ricdisk") or File.exists?( "#{subdir}/.ricdisk.yaml")
264
296
  end
297
+
298
+ def compute_stats_files(opts={})
299
+ puts azure("TODO implement natively. Now I'm being lazy")
300
+ Storazzo::RicDisk.calculate_stats_files(path, opts)
301
+ end
265
302
 
266
303
 
267
304
 
268
305
  # Create RDS file.
269
306
  def self.calculate_stats_files(dir, opts={})
270
- opts_upload_to_gcs = opts.fetch :upload_to_gcs, true
307
+ opts_upload_to_gcs = opts.fetch :upload_to_gcs, true
308
+
271
309
  full_file_path = "#{dir}/#{$stats_file}"
272
310
  return "This refacgtor is for another day"
273
311
 
@@ -41,7 +41,7 @@ public
41
41
  verbose = opts.fetch :verbose, false
42
42
 
43
43
  if already_loaded? # and not self.config.nil?
44
- puts "[#{self.class}] load: already loaded"
44
+ puts "[#{self.class}] VERBOSE load: already loaded" if verbose
45
45
  return self.config
46
46
  end
47
47
 
@@ -175,7 +175,7 @@ public
175
175
  rd.write_config_yaml_to_disk(dir)
176
176
  #RicDisk.write_config_yaml_to_disk(dir)
177
177
  #RicDisk.calculate_stats_files (CLASS) => will become OBJECT compute_stats_files
178
- compute_stats_files(dir) # dir is inutile # TODO
178
+ rd.compute_stats_files() # dir is inutile # TODO
179
179
  else
180
180
  deb red("Doesnt seem a legit dir to me: #{dir}")
181
181
  # deb "Figghiu ri buttana: doesnt exist #{red dir}"
@@ -21,7 +21,7 @@ module Storazzo
21
21
 
22
22
  public
23
23
  def load # _sample_version
24
- puts white("[RicDiskSampleConfig] Wheew 1! We're NOT destroying the world here. We're actually instancing a second Singleton which is a child of the mother, and this time doing things nicely and Rubily.")
24
+ deb("[RicDiskSampleConfig] Wheew 1! We're NOT destroying the world here. We're actually instancing a second Singleton which is a child of the mother, and this time doing things nicely and Rubily.")
25
25
  # super.load DefaultGemLocationForTests #super.load(DefaultGemLocationForTests, :verbose => true )
26
26
  super(DefaultGemLocationForTests, :verbose => false )
27
27
  end
@@ -21,24 +21,27 @@ class GcsBucketTest < Minitest::Test
21
21
 
22
22
  include Storazzo::Common
23
23
 
24
- def TODO_setup # tear_up
24
+ def setup # tear_up
25
25
  deb "[GcsBucketTest] TEAR_UP with sample Config"
26
26
  #removeme = Storazzo::RicDiskConfig.instance()
27
27
  config_obj = Storazzo::RicDiskSampleConfig.instance()
28
+ config_obj.load()
28
29
  deb "[GcsBucketTest] TEAR_UP config_obj: '''#{config_obj}'''"
29
30
  end
30
31
 
31
- def TODO_test_buckets_are_the_two_i_know
32
+ def test_buckets_are_the_two_i_know
32
33
  expected_list = %w{
33
34
  gs://my-local-backup/storazzo/backups/
34
35
  gs://my-other-bucket/
35
36
  }
36
37
  actual_list = Storazzo::RicDisk::GcsBucket.list_all
37
- assert_equal(expected_list, actual_list,
38
+ assert_equal(
39
+ expected_list.sort,
40
+ actual_list.sort,
38
41
  "These are the two lists from Sample Storazzo Config")
39
42
  end
40
43
 
41
- def TODO_test_import
44
+ def test_import_sample_class_correctly
42
45
  #require "storazzo/ric_disk_sample_config" rescue nil
43
46
  #require "storazzo/ric_disk_config"
44
47
 
@@ -11,8 +11,8 @@ require "storazzo/media/local_folder"
11
11
 
12
12
  #puts yellow("DISABLING FOR NOW TODO restore")
13
13
 
14
- class LocalFolderTest # < Minitest::Test
15
- extend Storazzo::Colors
14
+ class LocalFolderTest < Minitest::Test
15
+ include Storazzo::Colors
16
16
  # def test_fail_on_purpOSE # test_storazzo_hi_with_argument
17
17
  # assert_match 42, 42 , "change me when it failes from makefile"
18
18
  # #"Hello from Storazzo", Storazzo::Main.hi("ruby this should fail")
@@ -43,27 +43,57 @@ class LocalFolderTest # < Minitest::Test
43
43
 
44
44
  # To only test this:
45
45
  # $ ruby -I test test/test_local_folder.rb -n test_first_directory_parsing_actually_works
46
- def test_first_directory_parsing_actually_works()
46
+ def test_1_first_directory_parsing_actually_works()
47
47
  # include module
48
48
 
49
49
  #p $vediamo_se_funge
50
50
  puts("(#{__FILE__}) WEIRD THING: This test is flaky. SKipping for now until I complete the LocalFolder.parse() code")
51
51
  folders = Storazzo::Media::LocalFolder.list_all
52
52
  puts "Folders: #{folders}"
53
- config = Storazzo::RicDiskConfig.instance()
54
- puts "config: #{config}"
53
+ config = Storazzo::RicDiskSampleConfig.instance()
54
+ puts "config1: #{config}"
55
+ config.load
56
+ puts "config2: #{config.load}"
55
57
  test_dir = folders.first
56
- # puts "test_first_directory_parsing_actually_works() TestDir: #{test_dir}"
57
- # puts yellow "TEST S:M:LF methods: #{folders}" # methods
58
- # disk = Storazzo::Media::LocalFolder.new(test_dir)
59
- # stats_file = disk.stats_filename_default_fullpath
60
- # puts "stats_file: #{stats_file}"
61
- # disk.parse()
58
+ puts "test_first_directory_parsing_actually_works() TestDir: #{test_dir}"
59
+ puts yellow "TEST S:M:LF methods: #{folders}" # methods
60
+
61
+ disk = Storazzo::Media::LocalFolder.new(test_dir)
62
+ stats_file = disk.stats_filename_default_fullpath
63
+ puts "stats_file: #{stats_file}"
64
+ disk.parse()
62
65
  puts "[DEB] config: ''#{config}''"
66
+ # config.iterate_through_file_list_for_disks([test_dir])
67
+ # assert(
68
+ # File.exists?(stats_file),
69
+ # "parse on LocalFolder should create file '#{stats_file}'"
70
+ # )
71
+ end
72
+
73
+ def test_2_iterate_through_file_list_for_disks
74
+ #p $vediamo_se_funge
75
+ puts("(#{__FILE__}) WEIRD THING: This test is flaky. SKipping for now until I complete the LocalFolder.parse() code")
76
+ folders = Storazzo::Media::LocalFolder.list_all
77
+ puts "Folders: #{folders}"
78
+ config = Storazzo::RicDiskSampleConfig.instance()
79
+ puts "config1: #{config}"
80
+ config.load
81
+ puts "config2: #{config.load}"
82
+ test_dir = folders.first
83
+ puts "test_first_directory_parsing_actually_works() TestDir: #{test_dir}"
84
+ puts "TEST S:M:LF methods: #{folders}" # methods
85
+
86
+ disk = Storazzo::Media::LocalFolder.new(test_dir)
87
+ stats_file = disk.stats_filename_default_fullpath
88
+ #puts "stats_file: #{stats_file}"
89
+ #disk.parse()
90
+ #puts "[DEB] config: ''#{config}''"
91
+
92
+ #TEST2: config + iterate
63
93
  config.iterate_through_file_list_for_disks([test_dir])
64
94
  assert(
65
- File.exists?(stats_file),
66
- "parse on LocalFolder should create file '#{stats_file}'"
95
+ File.exists?(stats_file),
96
+ "parse on LocalFolder should create file '#{stats_file}'"
67
97
  )
68
98
  end
69
99
  end
@@ -1,11 +1,11 @@
1
- # require "minitest/autorun"
2
- # require "storazzo"
1
+ require "minitest/autorun"
2
+ require "storazzo"
3
3
 
4
- # class StorazzoTest < Minitest::Test
5
- # def test_storazzo_hi_with_argument
6
- # assert_match "Hello from Storazzo", Storazzo::Main.say_hi("ruby this should fail")
7
- # assert_match "ruby this should fail", Storazzo::Main.say_hi("ruby this should fail")
8
- # end
4
+ class StorazzoTest < Minitest::Test
5
+ def test_storazzo_hi_with_argument
6
+ assert_match "Hello from Storazzo", Storazzo::Main.say_hi("ruby this should fail")
7
+ assert_match "ruby this should fail", Storazzo::Main.say_hi("ruby this should fail")
8
+ end
9
9
  # def test_storazzo_hi_without_argument
10
10
  # assert_match "Hello from Storazzo", Storazzo::Main.say_hi()
11
11
  # end
@@ -30,5 +30,5 @@
30
30
  # # def test_spanish_hello
31
31
  # # assert_equal "hola mundo",
32
32
  # # Hola.hi("spanish")
33
- # # end
34
- # end
33
+ # end
34
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: storazzo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Riccardo Carlesso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-28 00:00:00.000000000 Z
11
+ date: 2022-07-29 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A simple gem to manage your external hard drives and extract MD5 and
14
14
  common stuff from them.