Module: Salus::BaseCliUtils
Constant Summary collapse
- SALUS_STATE_FILE =
"salus.state.yml"
- SALUS_FILE =
"Salusfile"
- SALUS_GLOB =
"*.salus"
Instance Method Summary collapse
- #get_files(options = {}) ⇒ Object
- #get_state_file(options = {}) ⇒ Object
- #load_files(files) ⇒ Object
- #load_state(file) ⇒ Object
- #read_file(file) ⇒ Object
- #save_state(file) ⇒ Object
- #write_file(file, data) ⇒ Object
Methods included from Logging
Instance Method Details
#get_files(options = {}) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/salus/cli/baseutils.rb', line 73 def get_files(={}) if .key?(:file) ret = [] [:file].each do |file| next unless File.exists?(file) if File.directory?(file) ret += Dir.glob(File.join(file, SALUS_GLOB)).sort else ret.push(file) end end ret elsif File.exists?(SALUS_FILE) [SALUS_FILE] else Dir.glob(SALUS_GLOB).sort end end |
#get_state_file(options = {}) ⇒ Object
67 68 69 70 71 |
# File 'lib/salus/cli/baseutils.rb', line 67 def get_state_file(={}) .fetch(:state, Salus.var(:state_file, File.join(Dir.pwd, SALUS_STATE_FILE))) end |
#load_files(files) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/salus/cli/baseutils.rb', line 34 def load_files(files) raise "No metric definition files found" if files.empty? files.each do |file| begin Salus.load(file) rescue Exception => e log ERROR, "Failed to load #{file}: " + e. end end end |
#load_state(file) ⇒ Object
45 46 47 48 49 50 51 52 53 54 |
# File 'lib/salus/cli/baseutils.rb', line 45 def load_state(file) return unless file Salus.load_state do begin YAML.load(read_file(file)) if File.exists?(file) rescue Exception => e log ERROR, "Failed to load state #{file}: " + e. end end end |
#read_file(file) ⇒ Object
8 9 10 11 12 13 14 15 16 |
# File 'lib/salus/cli/baseutils.rb', line 8 def read_file(file) ret = nil File.open(file, "r") do |f| f.flock(File::LOCK_SH) ret = f.read f.flock(File::LOCK_UN) end ret end |
#save_state(file) ⇒ Object
56 57 58 59 60 61 62 63 64 65 |
# File 'lib/salus/cli/baseutils.rb', line 56 def save_state(file) return unless file Salus.save_state do |data| begin write_file(file, data.to_yaml) rescue Exception => e log ERROR, "Failed to save state #{file}: " + e. end end end |
#write_file(file, data) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/salus/cli/baseutils.rb', line 18 def write_file(file, data) ret = nil File.open(file, File::RDWR|File::CREAT) do |f| f.flock(File::LOCK_EX) begin f.rewind ret = f.write(data) f.flush f.truncate(f.pos) ensure f.flock(File::LOCK_UN) end end ret end |