storazzo 0.3.7 → 0.3.8

Sign up to get free protection for your applications and to get access to all the features.
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.