Class: Blufin::SiteServices
- Inherits:
-
Object
- Object
- Blufin::SiteServices
- Defined in:
- lib/core/site/site_services.rb
Constant Summary collapse
- API =
'api'
- CRON =
'cron'
- LIB =
'lib'
- SDK =
'sdk'
- SDK_CORE =
'sdk-core'
- SDK_INTERNAL =
'sdk-internal'
- SDK_OAUTH =
'sdk-oauth'
- WORKER =
'worker'
- PACKAGE_SYSTEM_ENUMS =
'org.blufin.base.enums'
- PACKAGE_AUTO_GENERATED =
'system'
- ANNOTATION_TEST_REQUIRED =
'@TestRequired'
- ANNOTATION_TEST_NOT_REQUIRED =
'@TestNotRequired'
- ANNOTATION_TEST_NOT_RELATED_TO_CLASS =
'@TestNotRelatedToClass'
- REGEX_SERVICES =
"#{Blufin::SiteServices::API}|#{Blufin::SiteServices::CRON}|#{Blufin::SiteServices::WORKER}"
- REGEX_SERVICES_CAPITALIZED =
"#{Blufin::SiteServices::API.capitalize}|#{Blufin::SiteServices::CRON.capitalize}|#{Blufin::SiteServices::WORKER.capitalize}"
- REGEX_JAVA =
"#{REGEX_SERVICES}|#{Blufin::SiteServices::LIB}|#{Blufin::SiteServices::SDK}-core|#{Blufin::SiteServices::SDK}-internal|#{Blufin::SiteServices::SDK}-core"
- @@services_core =
nil
Class Method Summary collapse
-
.build_core_service(service, skip_tests = false) ⇒ Object
Build blufin-core-lib.
-
.build_site_lib(site, skip_tests = false) ⇒ Object
Build a site lib.
-
.build_site_service(site, service, skip_tests = false) ⇒ Object
Build a service.
-
.deploy(site, service) ⇒ Object
Deploy a service.
-
.get_available_core_services ⇒ Object
Returns Array of services (without the “blufin-” prefix).
-
.get_available_services_output(services = [], color_selected = false) ⇒ Object
Creates clean terminal output of available services in 2 columns with colors.
-
.get_available_site_services(site) ⇒ Object
Returns service(s) hash for site.
-
.validate_core_service(service) ⇒ Object
Validate core service.
-
.validate_site_service(site, service, for_deploy = false) ⇒ Object
Validate site service.
Class Method Details
.build_core_service(service, skip_tests = false) ⇒ Object
Build blufin-core-lib.
29 30 31 32 33 |
# File 'lib/core/site/site_services.rb', line 29 def self.build_core_service(service, skip_tests = false) validate_core_service(service) result = Blufin::Terminal.command("mvn clean install#{get_skip_tests_param(skip_tests)}", "#{Blufin::SiteResolver::path_to_blufin_java}/blufin-#{service}") Blufin::Terminal::error("#{Blufin::Terminal::format_highlight("blufin-#{service}")} failed to compile.") unless result[0] end |
.build_site_lib(site, skip_tests = false) ⇒ Object
Build a site lib. NOTE: Cannot use ‘build_site_services’ because the lib is not maven packaged.
47 48 49 50 51 |
# File 'lib/core/site/site_services.rb', line 47 def self.build_site_lib(site, skip_tests = false) Blufin::SiteResolver::validate_site(site) result = Blufin::Terminal.command("mvn clean install#{get_skip_tests_param(skip_tests)}", "#{Blufin::SiteResolver::path_to_java_lib(site)}") Blufin::Terminal::error("#{Blufin::Terminal::format_highlight("#{Blufin::SiteResolver::get_site_name(site)}-lib")} failed to compile.") unless result[0] end |
.build_site_service(site, service, skip_tests = false) ⇒ Object
Build a service.
37 38 39 40 41 42 |
# File 'lib/core/site/site_services.rb', line 37 def self.build_site_service(site, service, skip_tests = false) Blufin::SiteResolver::validate_site(site) service = validate_site_service(site, service) result = Blufin::Terminal.command("mvn clean package#{get_skip_tests_param(skip_tests)}", get_available_site_services(site)[service][0]) Blufin::Terminal::error("#{Blufin::Terminal::format_highlight("#{Blufin::SiteResolver::get_site_name(site)}-#{service}")} failed to compile.") unless result[0] end |
.deploy(site, service) ⇒ Object
Deploy a service.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/core/site/site_services.rb', line 55 def self.deploy(site, service) Blufin::SiteResolver::validate_site(site) service = validate_site_service(site, service, true) # TODO - Re-program this when we need it. raise RuntimeError, 'Needs to be re-written to generate YML file from DB values.' if true yml_file = nil # If YML file not found, stop script. Blufin::Terminal::error('File not found', yml_file, true) unless Blufin::Files::file_exists(yml_file) # TODO - CURRENTLY LOOKS FOR TO 1.0.0-SNAPSHOT. THIS MUST BE DYNAMIC. # TODO - CURRENTLY HAWAII TIMEZONE IS HARD-CODED. SHOULD DYNAMICALLY GRAB TIMEZONE FROM YML FILE. Blufin::Terminal.command("java -Duser.timezone=\"US/Hawaii\" -Xms128M -Xmx256M -XX:+UseParallelGC -jar #{get_available_site_services(site)[service][0]}/target/#{Blufin::SiteResolver::get_site_name(site)}-#{service}-1.0.0-SNAPSHOT.jar server #{yml_file}", get_available_site_services(site)[service][0]) end |
.get_available_core_services ⇒ Object
Returns Array of services (without the “blufin-” prefix).
100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/core/site/site_services.rb', line 100 def self.get_available_core_services if @@services_core.nil? @@services_core = [] Blufin::Files::get_dirs_in_dir(Blufin::Config::get_path('Paths', 'BlufinJava')).each do |dir| service = dir.split('/') service = service[service.length - 1].gsub('blufin-', '') @@services_core << service unless service.downcase == 'target' end end @@services_core end |
.get_available_services_output(services = [], color_selected = false) ⇒ Object
Creates clean terminal output of available services in 2 columns with colors.
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
# File 'lib/core/site/site_services.rb', line 114 def self.get_available_services_output(services = [], color_selected = false) output = [] half_first = [] half_second = [] half = (get_available_core_services.length / 2).to_i (0..half).each { |n| half_first << get_available_core_services[n] } ((half + 1)..(get_available_core_services.length - 1)).each { |n| half_second << get_available_core_services[n] } hfm = half_first.max_by(&:length).length + 4 hsm = half_second.max_by(&:length).length+4 (0..[half_first.length, half_second.length].max).each do |n| if color_selected left = half_first[n].nil? ? '' : half_first[n].ljust(hfm, ' ') right = half_second[n].nil? ? '' : half_second[n].ljust(hsm, ' ') left = services.include?(half_first[n]) ? "\x1B[38;5;154m#{left}\x1B[38;5;240m" : "\x1B[38;5;240m#{left}" right = services.include?(half_second[n]) ? "\x1B[38;5;154m#{right}\x1B[38;5;240m" : "\x1B[38;5;240m#{right}" else left = half_first[n].nil? ? '' : "\x1B[38;5;154m#{half_first[n].ljust(hfm, ' ')}\x1B[0m" right = half_second[n].nil? ? '' : "\x1B[38;5;154m#{ half_second[n].ljust(hsm, ' ')}\x1B[0m" end output << "#{left}#{right}" end output end |
.get_available_site_services(site) ⇒ Object
Returns service(s) hash for site.
140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/core/site/site_services.rb', line 140 def self.get_available_site_services(site) Blufin::SiteResolver::validate_site(site) valid_sites = { API => %W(#{Blufin::SiteResolver::path_to_java_api(site)} #{Blufin::SiteResolver::path_to_blufin_java}#{Blufin::Site::PATH_TO_BLUFIN_API}), CRON => %W(#{Blufin::SiteResolver::path_to_java_cron(site)} #{Blufin::SiteResolver::path_to_blufin_java}#{Blufin::Site::PATH_TO_BLUFIN_CRON}), LIB => %W(#{Blufin::SiteResolver::path_to_java_lib(site)} #{Blufin::SiteResolver::path_to_blufin_java}#{Blufin::Site::PATH_TO_BLUFIN_CORE_LIB}), SDK => %W(#{Blufin::SiteResolver::path_to_java_sdk(site)} #{Blufin::SiteResolver::path_to_blufin_java}#{Blufin::Site::PATH_TO_BLUFIN_SDK}), WORKER => %W(#{Blufin::SiteResolver::path_to_java_worker(site)} #{Blufin::SiteResolver::path_to_blufin_java}#{Blufin::Site::PATH_TO_BLUFIN_WORKER}) } valid_sites end |
.validate_core_service(service) ⇒ Object
Validate core service.
76 77 78 79 |
# File 'lib/core/site/site_services.rb', line 76 def self.validate_core_service(service) Blufin::Terminal::error("Non-existent service: #{Blufin::Terminal::format_invalid(service)} \xe2\x80\x94 available services are:", Blufin::SiteServices::get_available_services_output, true) unless get_available_core_services.include?(service) service end |
.validate_site_service(site, service, for_deploy = false) ⇒ Object
Validate site service.
83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/core/site/site_services.rb', line 83 def self.validate_site_service(site, service, for_deploy = false) Blufin::SiteResolver::validate_site(site) = ['Valid services are:', nil] get_available_site_services(site).keys.each do |service_inner| next if for_deploy && service_inner == LIB << " \x1B[38;5;154m#{service_inner}\x1B[0m" end if for_deploy == true && service == LIB Blufin::Terminal::error("You cannot deploy: #{Blufin::Terminal::format_highlight('lib')}", , true) elsif !get_available_site_services(site).keys.include?(service) Blufin::Terminal::error("You must specify a valid #{Blufin::Terminal::format_highlight('service')}.", , true) end service end |