storazzo 0.3.5 → 0.4.1

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.
@@ -9,14 +9,20 @@ module Storazzo
9
9
  include Hashify
10
10
  include Storazzo::Common
11
11
  extend Storazzo::Colors
12
+ require 'socket'
12
13
 
13
14
 
14
15
  ## Instance variables
15
16
 
16
17
  # in order of finding, so the first will be the one we actually READ and use. I could looknat the date but cmon...
17
18
  # These are the files I do accept.
18
- ConfigFiles = %W{ ricdisk.yaml .ricdisk }
19
- 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, computation_hostname, wr, ...',
25
+ ]
20
26
  DefaultGemfileTestDiskFolder = Storazzo.root + "/var/test/disks/" # was: @@default_gemfile_test_disks_folder
21
27
  # Immutable
22
28
  DefaultMediaFolders = %w{
@@ -25,7 +31,7 @@ module Storazzo
25
31
  }.append(DefaultGemfileTestDiskFolder ).append("/media/#{ENV["USER"]}/" )
26
32
 
27
33
  # # todo substitute with protobuf..
28
- 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,
29
35
  :ricdisk_file_empty, :size, :active_dirs, :ricdisk_version,
30
36
  :unique_hash # new 202207
31
37
 
@@ -37,13 +43,11 @@ module Storazzo
37
43
 
38
44
  def initialize(path, opts={})
39
45
  deb "RicDisk initialize.. path=#{path}"
40
- # @local_mountpoint = path
41
46
  @local_mountpoint = File.expand_path(path)
42
47
  @description = "This is an automated RicDisk description from v.#{RicdiskVersion}. Created on #{Time.now}'"
43
48
  @ricdisk_version = RicdiskVersion
44
49
  @ricdisk_file = compute_ricdisk_file() # Storazzo::RicDisk.get_ricdisk_file(path)
45
50
  @ricdisk_file_full = "#{@local_mountpoint}/#{@ricdisk_file}"
46
- @ricdisk_file_empty = ricdisk_file_empty?
47
51
  @label = path.split("/").last
48
52
  @name = path.split("/").last
49
53
  #@wr = File.writable?("#{path}/#{ricdisk_file}" ) # .writeable?
@@ -52,6 +56,10 @@ 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
60
+
61
+ @ricdisk_file_empty = ricdisk_file_empty?
62
+
55
63
  # @config = RicDiskConfig.instance.get_config
56
64
  # #puts @config if @config
57
65
  # find_info_from_mount(path)
@@ -61,7 +69,8 @@ module Storazzo
61
69
 
62
70
  def ricdisk_file_empty?()
63
71
  # File.empty?("#{local_mountpoint}/.ricdisk.yaml")
64
- File.empty?(compute_ricdisk_file) # was (get_ricdisk_file)
72
+ puts "compute_ricdisk_file: #{compute_ricdisk_file}"
73
+ File.empty?(compute_ricdisk_file.to_s) # was (get_ricdisk_file)
65
74
  end
66
75
 
67
76
  def ok_dir?
@@ -93,9 +102,11 @@ module Storazzo
93
102
  def writeable?()
94
103
  return @wr unless @wr.nil?
95
104
  # Otherwise I can do an EXPENSIVE calculation
96
- deb "TODO(ricc): Do expensive caluylation if this FS is writeable: #{path}"
97
- wr = File.writable?(ricdisk_file)
98
- wr
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
109
+ return @wr
99
110
  #:boh_todo_fix_me_and_compute
100
111
  #false
101
112
  end
@@ -119,9 +130,9 @@ module Storazzo
119
130
  end
120
131
 
121
132
  def absolute_path
122
- @local_mountpoint + "/" + @ricdisk_file
133
+ #@local_mountpoint + "/" + @ricdisk_file
134
+ "#{local_mountpoint}/#{ricdisk_file}"
123
135
  end
124
-
125
136
 
126
137
  def self.find_active_dirs(base_dirs=nil, also_mountpoints=true)
127
138
  if base_dirs.nil?
@@ -162,30 +173,47 @@ module Storazzo
162
173
  deb "[CACHE HIT] ricdisk_file (didnt have to recompute it - yay!)"
163
174
  return @ricdisk_file
164
175
  end
165
- warn "RICC_WARNING This requires cmputation I wanna do it almost once"
176
+ deb "[compute_ricdisk_file] RICC_WARNING This requires cmputation I wanna do it almost once"
166
177
  ConfigFiles.each do |papable_config_filename|
167
178
  #return ".ricdisk.yaml" if File.exist?("#{path}/.ricdisk.yaml") #and File.empty?( "#{path}/.ricdisk.yaml")
168
179
  #return ".ricdisk" if File.exist?("#{path}/.ricdisk") # and File.empty?( "#{path}/.ricdisk")
169
180
  return papable_config_filename if File.exist?("#{path}/#{papable_config_filename}") # and File.empty?( "#{path}/.ricdisk")
170
181
  end
171
- return nil
182
+ deb "File not found! Neither #{ConfigFiles} exist.."
183
+ # return nil
184
+ return DefaultConfigFile
172
185
  end
173
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
+
174
202
 
175
- # new
176
- def self.get_ricdisk_file_obsolete(path)
177
- if @ricdisk_file
178
- puts "[CACHE HIT] ricdisk_file"
179
- return @ricdisk_file
180
- end
181
- puts "RICC_WARNING This requires cmputation I wanna do it almost once"
182
- ConfigFiles.each do |papable_config_filename|
183
- #return ".ricdisk.yaml" if File.exist?("#{path}/.ricdisk.yaml") #and File.empty?( "#{path}/.ricdisk.yaml")
184
- #return ".ricdisk" if File.exist?("#{path}/.ricdisk") # and File.empty?( "#{path}/.ricdisk")
185
- return papable_config_filename if File.exist?("#{path}/#{papable_config_filename}") # and File.empty?( "#{path}/.ricdisk")
186
- end
187
- return nil
188
- end
203
+ # # new
204
+ # def self.get_ricdisk_file_obsolete(path)
205
+ # if @ricdisk_file
206
+ # puts "[CACHE HIT] ricdisk_file"
207
+ # return @ricdisk_file
208
+ # end
209
+ # puts "RICC_WARNING This requires cmputation I wanna do it almost once"
210
+ # ConfigFiles.each do |papable_config_filename|
211
+ # #return ".ricdisk.yaml" if File.exist?("#{path}/.ricdisk.yaml") #and File.empty?( "#{path}/.ricdisk.yaml")
212
+ # #return ".ricdisk" if File.exist?("#{path}/.ricdisk") # and File.empty?( "#{path}/.ricdisk")
213
+ # return papable_config_filename if File.exist?("#{path}/#{papable_config_filename}") # and File.empty?( "#{path}/.ricdisk")
214
+ # end
215
+ # return nil
216
+ # end
189
217
 
190
218
 
191
219
  def self.interesting_mount_points(opts={})
@@ -194,13 +222,13 @@ module Storazzo
194
222
  end
195
223
 
196
224
  # maybe move to a RiccFile class? Maybe even INHERIT from FILE?
197
- def self.obsolescence_seconds file_path
225
+ def obsolescence_seconds(file_path)
198
226
  creation_time = File.stat(file_path).ctime
199
227
  deb("[obsolescence_seconds] File #{file_path}: #{creation_time} - #{(Time.now - creation_time)} seconds ago")
200
228
  (Time.now - creation_time).to_i
201
229
  end
202
230
  # maybe move to a RiccFile class? Maybe even INHERIT from FILE?
203
- def self.obsolescence_days(file_path)
231
+ def obsolescence_days(file_path)
204
232
  return obsolescence_seconds(file_path) / 86400
205
233
  end
206
234
 
@@ -230,11 +258,16 @@ module Storazzo
230
258
  # puts(yellow disk_info.to_yaml)
231
259
  # end
232
260
  if disk_info.is_a?(RicDisk)
233
- deb("disk_info.class: #{disk_info.class}")
234
- 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)
235
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.."))
236
- ret = File.write(disk_info.absolute_path, disk_info.to_yaml)
237
- 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
238
271
  else
239
272
  puts(red("Something not right here: either file is NOT empty or disk is NOT writeable.. #{File.empty?(disk_info.absolute_path)}"))
240
273
  puts("File size: #{File.size(disk_info.absolute_path)}")
@@ -242,30 +275,63 @@ module Storazzo
242
275
  puts(disk_info.obj_to_hash)
243
276
  puts(disk_info.obj_to_yaml)
244
277
  end
245
- else
278
+ else # not a RicDisk..
246
279
  puts "[write_config_yaml_to_disk] No DiskInfo found across #{ConfigFiles}. I leave this function empty-handed."
247
280
  end
248
- if File.exists?( "#{subdir}/.ricdisk") and ! File.empty?( "#{subdir}/.ricdisk")
249
- puts("Config File found with old-style name: '#{subdir}/.ricdisk' ! Please move it to .ricdisk.yaml!")
250
- puts(white `cat "#{subdir}/.ricdisk"`)
251
- else
252
- puts "WRITING NOW. disk_info.obj_to_yaml .. to #{compute_ricdisk_file}"
253
- File.open(ricdisk_file_full, 'w').write(disk_info.obj_to_yaml)
254
- 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
255
291
  end
256
292
 
257
293
  # TODO obsolete this as i should NOT be calling it from clas, but from method.
258
294
  def self.ok_dir?(subdir)
259
295
  File.exists?( "#{subdir}/.ricdisk") or File.exists?( "#{subdir}/.ricdisk.yaml")
260
296
  end
297
+
298
+ def compute_stats_files(opts={})
299
+ puts azure("[compute_stats_files] TODO implement natively. Now I'm being lazy")
300
+ #Storazzo::RicDisk.calculate_stats_files(path, opts)
301
+ opts_upload_to_gcs = opts.fetch :upload_to_gcs, true
302
+ dir = path
303
+
304
+ full_file_path = "#{dir}/#{$stats_file}"
305
+ #return "This refactor is for another day"
306
+
307
+ puts("compute_stats_files(#{white dir}): #{white full_file_path}")
308
+ puts "TEST1 DIR EXISTS: #{dir} -> #{File.directory? dir}"
309
+ Dir.chdir(dir)
310
+ if File.exists?(full_file_path) and ($opts[:force] == false)
311
+ puts "File '#{$stats_file}' exists already." # - now should see if its too old, like more than 1 week old"
312
+ # TODO check for file time...
313
+ print "Lines found: #{yellow `wc -l "#{full_file_path}" `.chomp }. File obsolescence (days): #{yellow obsolescence_days(full_file_path)}."
314
+ if obsolescence_days(full_file_path) > 7
315
+ puts("*** ACHTUNG *** FIle is pretty old. You might consider rotating: #{yellow "mv #{full_file_path} #{full_file_path}_old"}. Or invoke with --force")
316
+ end
317
+ upload_to_gcs(full_file_path) if opts_upload_to_gcs
318
+ else
319
+ puts "Crunching data stats from '#{dir}' into '#{$stats_file}' ... please bear with me.. [maybe file didnt exist, maybe $opts[:force] is true]"
320
+ command = "find . -print0 | xargs -0 stats-with-md5 --no-color | tee '#{full_file_path}'"
321
+ puts("[#{`pwd`.chomp}] Executing: #{azure command}")
322
+ ret = backquote_execute(command)
323
+ puts "Done. #{ret.split("\n").count} files processed."
324
+ end
325
+ end
261
326
 
262
327
 
263
328
 
264
329
  # Create RDS file.
265
330
  def self.calculate_stats_files(dir, opts={})
266
- opts_upload_to_gcs = opts.fetch :upload_to_gcs, true
331
+ opts_upload_to_gcs = opts.fetch :upload_to_gcs, true
332
+
267
333
  full_file_path = "#{dir}/#{$stats_file}"
268
- return "This refacgtor is for another day"
334
+ return "This refactor is for another day"
269
335
 
270
336
  puts("calculate_stats_files(#{white dir}): #{white full_file_path}")
271
337
  puts "TEST1 DIR EXISTS: #{dir} -> #{File.directory? dir}"
@@ -280,7 +346,7 @@ module Storazzo
280
346
  upload_to_gcs(full_file_path) if opts_upload_to_gcs
281
347
  else
282
348
  puts "Crunching data stats from '#{dir}' into '#{$stats_file}' ... please bear with me.. [maybe file didnt exist, maybe $opts[:force] is true]"
283
- command = "find . -print0 | xargs -0 stats-with-md5.rb --no-color | tee '#{full_file_path}'"
349
+ command = "find . -print0 | xargs -0 stats-with-md5 --no-color | tee '#{full_file_path}'"
284
350
  puts("[#{`pwd`.chomp}] Executing: #{azure command}")
285
351
  ret = backquote_execute command
286
352
  puts "Done. #{ret.split("\n").count} files processed."
@@ -390,25 +456,27 @@ end #/Module
390
456
 
391
457
 
392
458
 
393
- # def self.backquote_execute(cmd)
394
- # # executed a command wrapped by dryrun though
395
- # return "DRYRUN backquote_execute(#{cmd})" if $opts[:dryrun]
396
- # `#{cmd}`
397
- # end
459
+ def backquote_execute(cmd, opts={})
460
+ dryrun = opts.fetch :dryrun, false
461
+ # executed a command wrapped by dryrun though
462
+ return "DRYRUN backquote_execute(#{cmd})" if dryrun # $opts[:dryrun]
463
+ `#{cmd}`
464
+ end
398
465
 
399
- # def self.upload_to_gcs(file, opts={})
400
- # deb("upload_to_gcs(#{file}). TODO(ricc) after breafast upload to GCS : #{file}")
401
- # mount_name = file.split('/')[-2]
402
- # filename = "#{mount_name}-#{File.basename file}"
403
- # hostname = Socket.gethostname[/^[^.]+/]
404
- # command = "gsutil cp '#{file}' gs://#{$gcs_bucket}/backup/ricdisk-magic/#{ hostname }-#{filename}"
405
- # deb("Command: #{command}")
406
- # ret = backquote_execute(command)
407
- # # if $opts[:debug] do
408
- # # puts "+ Current list of files:"
409
- # # ret = backquote_execute("gsutil ls -al gs://#{$gcs_bucket}/backup/ricdisk-magic/")
410
- # # puts ret
411
- # # end
412
- # ret
413
- # end
466
+ def upload_to_gcs(file, opts={})
467
+ deb("upload_to_gcs(#{file}). TODO(ricc) after breafast upload to GCS : #{file}")
468
+ mount_name = file.split('/')[-2]
469
+ filename = "#{mount_name}-#{File.basename file}"
470
+ hostname = Socket.gethostname[/^[^.]+/]
471
+ command = "gsutil cp '#{file}' gs://#{$gcs_bucket}/backup/ricdisk-magic/#{ hostname }-#{filename}"
472
+ deb("Command: #{command}")
473
+ puts azure("GCS upload disabled until I know if it works :) command='#{command}'")
474
+ ret = backquote_execute(command, :dryrun => true)
475
+ # if $opts[:debug] do
476
+ # puts "+ Current list of files:"
477
+ # ret = backquote_execute("gsutil ls -al gs://#{$gcs_bucket}/backup/ricdisk-magic/")
478
+ # puts ret
479
+ # end
480
+ ret
481
+ end
414
482
 
@@ -40,6 +40,11 @@ public
40
40
  def load(config_path=nil, opts={})
41
41
  verbose = opts.fetch :verbose, false
42
42
 
43
+ if already_loaded? # and not self.config.nil?
44
+ puts "[#{self.class}] VERBOSE load: already loaded" if verbose
45
+ return self.config
46
+ end
47
+
43
48
  puts "[VERBOSE] Storazzo::RicDiskConfig.load(): BEGIN " if verbose
44
49
  # trying default location
45
50
  raise "DefaultConfigLocation is not a string" unless DefaultConfigLocation.is_a?(String)
@@ -72,8 +77,8 @@ public
72
77
  #pp @config if verbose
73
78
  config_ver = @config["apiVersion"]
74
79
  #puts @config[:ConfigVersion]
75
- puts white("OK. Storazzo::RicDiskConfig v'#{config_ver}' parsed correctly")
76
- puts "[VERBOSE] RicDiskConfig.to_s: #{self}" if verbose
80
+ deb("OK. Storazzo::RicDiskConfig v'#{config_ver}' parsed correctly")
81
+ #puts "[VERBOSE] RicDiskConfig.to_s: #{self}" if verbose
77
82
  @load_called = true
78
83
  return self.config
79
84
  end
@@ -91,7 +96,7 @@ public
91
96
  end
92
97
 
93
98
  def config_ver
94
- raise "I cant compute Version since I cant compute @config. Are you sure you didnt instance this Singleton without calling load?" unless @config
99
+ raise "I cant compute Version since I cant compute @config. Are you sure you didnt instance this Singleton without calling load?" if @config.nil?
95
100
  @config['apiVersion'] # rescue :StillUnknown
96
101
  #config['ConfigVersion']
97
102
  end
@@ -99,6 +104,10 @@ public
99
104
  #self.
100
105
  @config['Config']['DefaultFolder'] #rescue "Unknown config_default_folder: #{$!}"
101
106
  end
107
+ def already_loaded?
108
+ #return
109
+ load_called == true
110
+ end
102
111
 
103
112
  def to_s
104
113
  size = File.size(@config_file) rescue -1
@@ -107,6 +116,18 @@ public
107
116
  "POLY_#{self.class}_(ver=#{config_ver}, file=#{config_file}), #{white(size)} bytes" # - config_default_folder=#{self.config_default_folder}"
108
117
  end
109
118
 
119
+ def to_verbose_s
120
+ h = {}
121
+ h[:description] = "This is a Verbose Hash describing a RicDiskConfig or its child RicDiskSampleConfig to understand why it keeps failing.."
122
+ h[:to_s] = self.to_s
123
+ h[:class] = self.class
124
+ h[:file] = __FILE__
125
+ h[:id] = self.object_id
126
+ h[:get_bucket_paths] = self.get_bucket_paths()
127
+ h[:get_local_folders] = self.get_local_folders()
128
+ return h
129
+ end
130
+
110
131
  def get_config(opts={})
111
132
  return load(opts) if @config.nil?
112
133
  @config
@@ -140,7 +161,8 @@ public
140
161
  end
141
162
 
142
163
  # UGLY CODE, copipasted from binary for ARGV, ex autosbrodola
143
- def iterate_through_file_list_for_disks(files_list=[])
164
+ def iterate_through_file_list_for_disks(files_list=[], opts={})
165
+ verbose = opts.fetch :verbose, true
144
166
  # I decided i wont accept an emopty list, this is not how you use the gem, you lazy XXX!
145
167
  # if files_list == [] # or files_list.nil? # empty -> ALL
146
168
  # deb "iterate_through_file_list_for_disks(): no args provided"
@@ -150,65 +172,39 @@ public
150
172
  # RicDisk.write_config_yaml_to_disk(dir)
151
173
  # RicDisk.calculate_stats_files(dir) # dir is inutile
152
174
  # } # TODO refactor in option sbrodola_afterwards=true. :)
153
- # else
154
- deb "iterate_through_file_list_for_disks(): I consider files_list as a list of directories to parse :)"
155
- #dirs = RicDisk.find_active_dirs()
156
- files_list.each do |dir|
157
- dir = File.expand_path(dir)
158
- if File.directory?(dir)
159
- #if dirs.include?(dir)
160
- deb "iterate_through_file_list_for_disks() Legit dir: #{green dir}"
161
- rd = RicDisk.new(dir)
162
- rd.write_config_yaml_to_disk(dir)
163
- #RicDisk.write_config_yaml_to_disk(dir)
164
- RicDisk.calculate_stats_files(dir) # dir is inutile
165
- else
166
- deb red("Doesnt seem a legit dir to me: #{dir}")
167
- # deb "Figghiu ri buttana: doesnt exist #{red dir}"
168
- end
175
+ # else
176
+ raise "Wrong input, I need an array here: #{files_list} " unless files_list.is_a?(Array)
177
+ puts "iterate_through_file_list_for_disks(): I consider files_list as a list of directories to parse :)" if verbose
178
+
179
+ #dirs = RicDisk.find_active_dirs()
180
+ files_list.each do |dir|
181
+ dir = File.expand_path(dir)
182
+ if File.directory?(dir)
183
+ #if dirs.include?(dir)
184
+ puts "iterate_through_file_list_for_disks() Legit dir: #{green dir}" if verbose
185
+ rd = RicDisk.new(dir)
186
+ puts "RicDisk: #{rd}"
187
+ rd.write_config_yaml_to_disk(dir)
188
+ #RicDisk.write_config_yaml_to_disk(dir)
189
+ #RicDisk.calculate_stats_files (CLASS) => will become OBJECT compute_stats_files
190
+ rd.compute_stats_files() # dir is inutile # TODO
191
+ else
192
+ raise("Doesnt seem a dir to me, quitting: #{dir}")
169
193
  end
194
+ end
170
195
  #end
171
196
  end #/iterate_through_file_list_for_disks
197
+
198
+ def config_hash
199
+ config['Config']
200
+ end
172
201
 
173
202
 
174
203
  def self.get_config
204
+ self.instance.load unless self.instance.load_called
175
205
  self.instance.get_config
176
206
  end
177
207
  end # class Storazzo::RicDiskConfig
178
208
 
179
- # class Storazzo::SampleRicDiskConfig < Storazzo::RicDiskConfig
180
- # include Singleton
181
-
182
- # def load # _sample_version
183
- # puts white("Wheew! 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.")
184
- # super.load(DefaultGemLocationForTests, :verbose => true )
185
- # end
186
-
187
- # end
188
-
189
- puts "[REMOVEME]1 Storazzo::RicDiskConfig was read"
190
-
191
- #end # module Storazzo
192
-
193
- puts "[REMOVEME]2 Storazzo::RicDiskConfig was read"
194
-
195
-
196
-
197
- #module Storazzo
198
-
199
- # ric_disk_sample_config
200
- #class Pincopallo # Storazzo::Blah #RicDiskSampleConfig # < Storazzo::RicDiskConfig
201
- class Storazzo::Pincopallo # RicDiskSampleConfig
202
-
203
- #include Singleton
204
- # public
205
- # def load # _sample_version
206
- # puts white("Wheew! 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.")
207
- # super.load(DefaultGemLocationForTests, :verbose => true )
208
- # end
209
- end
210
-
211
- puts "[REMOVEME]1 Storazzo::RicDiskSampleConfig was read"
212
209
  end # module Storazzo
213
210
 
214
- puts "[REMOVEME]2 Storazzo::RicDiskSampleConfig was read"
@@ -17,15 +17,19 @@ module Storazzo
17
17
  class Storazzo::RicDiskSampleConfig < Storazzo::RicDiskConfig
18
18
  #include Storazzo::Common
19
19
 
20
- include Singleton
20
+ #include Singleton
21
+
21
22
  public
22
- def load # _sample_version
23
- puts white("Wheew! 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
- super.load(DefaultGemLocationForTests, :verbose => true )
25
- end
26
- end
23
+ def load # _sample_version
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
+ # super.load DefaultGemLocationForTests #super.load(DefaultGemLocationForTests, :verbose => true )
26
+ super(DefaultGemLocationForTests, :verbose => false )
27
+ end
28
+ def load_sample_version
29
+ puts white("[RicDiskSampleConfig] Wheew 2! 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.")
30
+ super(DefaultGemLocationForTests, :verbose => false )
31
+ end
32
+ end
27
33
 
28
- #puts "[REMOVEME]1 Storazzo::RicDiskSampleConfig was read"
29
34
  end # module Storazzo
30
35
 
31
- #puts "[REMOVEME]2 Storazzo::RicDiskSampleConfig was read"