class Blufin::SiteServices
Constants
- ANNOTATION_TEST_NOT_RELATED_TO_CLASS
- ANNOTATION_TEST_NOT_REQUIRED
- ANNOTATION_TEST_REQUIRED
- API
- CRON
- LIB
- PACKAGE_AUTO_GENERATED
- PACKAGE_SYSTEM_ENUMS
- REGEX_JAVA
- REGEX_SERVICES
- REGEX_SERVICES_CAPITALIZED
- SDK
- SDK_CORE
- SDK_INTERNAL
- SDK_OAUTH
- WORKER
Public Class Methods
build_core_service(service, skip_tests = false)
click to toggle source
Build blufin-core-lib. @return void
# 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)
click to toggle source
Build a site lib. NOTE: Cannot use 'build_site_services' because the lib is not maven packaged. @return void
# 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)
click to toggle source
Build a service. @return void
# 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)
click to toggle source
Deploy a service. @return void
# 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()
click to toggle source
Returns Array of services (without the “blufin-” prefix). @return Array
# 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)
click to toggle source
Creates clean terminal output of available services in 2 columns with colors. @return Array
# 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)
click to toggle source
Returns service(s) hash for site. @return Hash
# 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)
click to toggle source
Validate core service. @return String
# 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)
click to toggle source
Validate site service. @return String
# File lib/core/site/site_services.rb, line 83 def self.validate_site_service(site, service, for_deploy = false) Blufin::SiteResolver::validate_site(site) @error_message = ['Valid services are:', nil] get_available_site_services(site).keys.each do |service_inner| next if for_deploy && service_inner == LIB @error_message << " \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')}", @error_message, true) elsif !get_available_site_services(site).keys.include?(service) Blufin::Terminal::error("You must specify a valid #{Blufin::Terminal::format_highlight('service')}.", @error_message, true) end service end
Private Class Methods
get_skip_tests_param(skip_tests)
click to toggle source
Returns MVN skipTests string if input is TRUE, blank-string if FALSE. @return String
# File lib/core/site/site_services.rb, line 156 def self.get_skip_tests_param(skip_tests) skip_tests ? ' -Dmaven.test.skip=true -Dfindbugs.skip=true' : '' end