96ae030bb62dde0e4e9f69ed46d5fe2e6754af7c
Dev Now detecting difference in...

Dev authored 7 years ago

1) #!/usr/bin/ruby
2) 
Dev Refactoring. Adding pkg mgmt.

Dev authored 7 years ago

3) require_relative 'objects/rcm_file'
4) require_relative 'objects/rcm_package'
5) require_relative 'objects/rcm_service'
Dev Refactoring to have config...

Dev authored 7 years ago

6) require_relative 'managers/rcm_config_manager'
Dev Refactoring. Adding pkg mgmt.

Dev authored 7 years ago

7) require_relative 'managers/rcm_package_manager'
Dev Now detecting difference in...

Dev authored 7 years ago

8) require_relative 'managers/rcm_file_manager'
9) require_relative 'managers/rcm_service_manager'
10) require_relative 'rcm_utils'
Dev Initial commit

Dev authored 7 years ago

11) require 'yaml'
Dev Now detecting difference in...

Dev authored 7 years ago

12) require 'logger'
Dev Initial commit

Dev authored 7 years ago

13) 
14) module RCM
Dev Refactoring to have config...

Dev authored 7 years ago

15)   
16)   @config_mgr = ::RCM::ConfigManager.new()
Dev Minor cleanup and bug fix f...

Dev authored 7 years ago

17)   @got = {
Dev Refactoring to have config...

Dev authored 7 years ago

18)     ::RCM::ConfigManager::PACKAGES => {},
19)     ::RCM::ConfigManager::FILES => {},
20)     ::RCM::ConfigManager::SERVICES => {}
Dev Initial commit

Dev authored 7 years ago

21)   }
Dev Refactoring to have config...

Dev authored 7 years ago

22)  
23)   @logger = @config_mgr.logger
Dev Minor cleanup and bug fix f...

Dev authored 7 years ago

24)   @pkg_mgr = ::RCM::Apt.new(@logger)
25)   @file_mgr = ::RCM::FileManager.new(@logger)
26)   @svc_mgr = ::RCM::ServiceManager.new(@logger)
Dev Now detecting difference in...

Dev authored 7 years ago

27) 
Dev Refactoring to have config...

Dev authored 7 years ago

28)   def self.converge_packages(current_state_of_packages)
Dev Debugging why index.html wa...

Dev authored 7 years ago

29)     # We'll install them in one go (minor optimization)
30)     missing_packages = []
31) 
Dev Refactoring to have config...

Dev authored 7 years ago

32)     @pkg_mgr.update unless @env == 'dev'
33) 
34)     @config_mgr.packages.each do |pkg_name, pkg_obj|
35)       current_pkg = current_state_of_packages[pkg_name]
Dev Refactoring. Adding pkg mgmt.

Dev authored 7 years ago

36) 
Dev Converging the state as def...

Dev authored 7 years ago

37)       if current_pkg == pkg_obj
Dev Minor cleanup and bug fix f...

Dev authored 7 years ago

38)         @logger.info("#{pkg_name} is in expected state.")
Dev Converging the state as def...

Dev authored 7 years ago

39)         next
40)       end
Dev Refactoring. Adding pkg mgmt.

Dev authored 7 years ago

41) 
Dev Converging the state as def...

Dev authored 7 years ago

42)       if current_pkg.version != pkg_obj.version && current_pkg.state == ::RCM::Package::INSTALLED
43)         # Wrong version is installed. Remove current version and install the correct one.
44)         # Not the best way to go about it... but we are not implementing a legit solution.
45)         @logger.debug("#{current_pkg.name}=#{current_pkg.version} is installed. Uninstalling first.")
Dev Minor cleanup and bug fix f...

Dev authored 7 years ago

46)         @pkg_mgr.remove(pkg_obj)
Dev Debugging why index.html wa...

Dev authored 7 years ago

47)         missing_packages.push(pkg_obj)
Dev Converging the state as def...

Dev authored 7 years ago

48)       elsif current_pkg.state == ::RCM::Package::REMOVED
Dev Debugging why index.html wa...

Dev authored 7 years ago

49)         missing_packages.push(pkg_obj)
Dev Converging the state as def...

Dev authored 7 years ago

50)       end
Dev Refactoring. Adding pkg mgmt.

Dev authored 7 years ago

51)     end
Dev Converging the state as def...

Dev authored 7 years ago

52) 
Dev Skipping package install ca...

Dev authored 7 years ago

53)     @pkg_mgr.install(missing_packages) unless missing_packages.empty?
Dev Now detecting difference in...

Dev authored 7 years ago

54)   end
55) 
Dev Refactoring to have config...

Dev authored 7 years ago

56)   def self.converge_files(current_state_of_files)
57)     @config_mgr.files.each do |path, file_obj|
58)       file_on_fs = current_state_of_files[path]
Dev Refactoring. Adding pkg mgmt.

Dev authored 7 years ago

59) 
Dev Working everything.

Dev authored 7 years ago

60)       if file_on_fs.state == ::RCM::File::PRESENT && file_obj.state == ::RCM::File::ABSENT
Dev Minor cleanup and bug fix f...

Dev authored 7 years ago

61)         @logger.info("#{path} is present on disk when it should not be. Removing...")
62)         @file_mgr.remove(file_obj)
Dev Converging the state as def...

Dev authored 7 years ago

63)         next
64)       end
65) 
Dev Working everything.

Dev authored 7 years ago

66)       if file_on_fs == file_obj
Dev Minor cleanup and bug fix f...

Dev authored 7 years ago

67)         @logger.info("#{path} is in expected state (#{file_on_fs.state}).")
Dev Working everything.

Dev authored 7 years ago

68)         next
Dev Converging the state as def...

Dev authored 7 years ago

69)       end
Dev Now detecting difference in...

Dev authored 7 years ago

70) 
Dev Updating file info message...

Dev authored 7 years ago

71)       @logger.info("#{path} is not in expected state on disk.")
Dev Minor cleanup and bug fix f...

Dev authored 7 years ago

72)       status = @file_mgr.copy(file_obj)
73)       @file_mgr.apply_attributes(file_obj) if status == 0
Dev Now detecting difference in...

Dev authored 7 years ago

74)     end
Dev Refactoring. Adding pkg mgmt.

Dev authored 7 years ago

75)   end
76) 
Dev Converging the state as def...

Dev authored 7 years ago

77)   def self.restart_services_if_needed
Dev Refactoring to have config...

Dev authored 7 years ago

78)     @config_mgr.services.values.each do |svc_obj|
Dev Minor cleanup and bug fix f...

Dev authored 7 years ago

79)       @svc_mgr.restart(svc_obj) if @svc_mgr.dependencies_changed?(svc_obj)
Dev Converging the state as def...

Dev authored 7 years ago

80)     end
Dev Refactoring. Adding pkg mgmt.

Dev authored 7 years ago

81)   end
Dev Now detecting difference in...

Dev authored 7 years ago

82) 
83)   def main
Dev Handling files created upon...

Dev authored 7 years ago

84)     # Installing packages creates file that we want to delete.
85)     # So finish managing packages and then deal with files.
Dev Refactoring to have config...

Dev authored 7 years ago

86)     current_state_of_packages = @pkg_mgr.get_current_state(@config_mgr.packages)
87)     converge_packages(current_state_of_packages)
88)     current_state_of_files = @file_mgr.get_current_state(@config_mgr.files)
89)     converge_files(current_state_of_files)
Dev Converging the state as def...

Dev authored 7 years ago

90)     restart_services_if_needed
Dev Now detecting difference in...

Dev authored 7 years ago

91)   end
Dev Initial commit

Dev authored 7 years ago

92) 
Dev Converging the state as def...

Dev authored 7 years ago

93)   module_function :main
Dev Initial commit

Dev authored 7 years ago

94) end
95) 
Dev Now detecting difference in...

Dev authored 7 years ago

96) RCM.main