Class: TasteTester::State

Inherits:
Object
  • Object
show all
Extended by:
Logging
Includes:
BetweenMeals::Util, Config
Defined in:
lib/taste_tester/state.rb

Overview

State of taste-tester processes

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Logging

formatter, formatterproc=, logger, logger, use_log_formatter=, verbosity=

Methods included from Config

chef_port, cookbooks, databags, relative_cookbook_dirs, relative_databag_dir, relative_role_dir, roles, testing_end_time

Constructor Details

#initializeState

Returns a new instance of State.



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/taste_tester/state.rb', line 31

def initialize
  ref_dir = File.dirname(
    File.expand_path(TasteTester::Config.ref_file),
  )
  unless File.directory?(ref_dir)
    begin
      FileUtils.mkpath(ref_dir)
    rescue StandardError => e
      logger.error("Chef temp dir #{ref_dir} missing and can't be created")
      logger.error(e)
      exit(1)
    end
  end
end

Class Method Details

.portObject



90
91
92
# File 'lib/taste_tester/state.rb', line 90

def self.port
  TasteTester::State.read(:port)
end

.read(key) ⇒ Object



109
110
111
112
113
114
# File 'lib/taste_tester/state.rb', line 109

def self.read(key)
  JSON.parse(File.read(TasteTester::Config.ref_file))[key.to_s]
rescue StandardError => e
  logger.debug(e)
  nil
end

Instance Method Details

#loggingObject



62
63
64
# File 'lib/taste_tester/state.rb', line 62

def logging
  TasteTester::State.read(:logging)
end

#logging=(logging) ⇒ Object



66
67
68
# File 'lib/taste_tester/state.rb', line 66

def logging=(logging)
  write(:logging, logging)
end

#portObject



46
47
48
# File 'lib/taste_tester/state.rb', line 46

def port
  TasteTester::State.read(:port)
end

#port=(port) ⇒ Object



50
51
52
# File 'lib/taste_tester/state.rb', line 50

def port=(port)
  write(:port, port)
end

#real_wipeObject



102
103
104
105
106
107
# File 'lib/taste_tester/state.rb', line 102

def real_wipe
  if TasteTester::Config.ref_file &&
     File.exists?(TasteTester::Config.ref_file)
    File.delete(TasteTester::Config.ref_file)
  end
end

#refObject



78
79
80
# File 'lib/taste_tester/state.rb', line 78

def ref
  TasteTester::State.read(:ref)
end

#ref=(ref) ⇒ Object



82
83
84
# File 'lib/taste_tester/state.rb', line 82

def ref=(ref)
  write(:ref, ref)
end

#sshObject



70
71
72
# File 'lib/taste_tester/state.rb', line 70

def ssh
  TasteTester::State.read(:ssh)
end

#ssh=(ssh) ⇒ Object



74
75
76
# File 'lib/taste_tester/state.rb', line 74

def ssh=(ssh)
  write(:ssh, ssh)
end

#sslObject



54
55
56
# File 'lib/taste_tester/state.rb', line 54

def ssl
  TasteTester::State.read(:ssl)
end

#ssl=(ssl) ⇒ Object



58
59
60
# File 'lib/taste_tester/state.rb', line 58

def ssl=(ssl)
  write(:ssl, ssl)
end

#update(vals) ⇒ Object



86
87
88
# File 'lib/taste_tester/state.rb', line 86

def update(vals)
  merge(vals)
end

#wipeObject



94
95
96
97
98
99
100
# File 'lib/taste_tester/state.rb', line 94

def wipe
  # Save port between restarts. It might not be free when we restart, but
  # at least we'll try to keep the same
  port = self.port
  real_wipe
  write(:port, port)
end