bayserver-core 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. checksums.yaml +7 -0
  2. data/lib/baykit/bayserver/agent/accept_handler.rb +97 -0
  3. data/lib/baykit/bayserver/agent/channel_listener.rb +35 -0
  4. data/lib/baykit/bayserver/agent/command_receiver.rb +75 -0
  5. data/lib/baykit/bayserver/agent/grand_agent.rb +319 -0
  6. data/lib/baykit/bayserver/agent/grand_agent_monitor.rb +217 -0
  7. data/lib/baykit/bayserver/agent/next_socket_action.rb +14 -0
  8. data/lib/baykit/bayserver/agent/non_blocking_handler.rb +433 -0
  9. data/lib/baykit/bayserver/agent/package.rb +3 -0
  10. data/lib/baykit/bayserver/agent/signal/signal_agent.rb +165 -0
  11. data/lib/baykit/bayserver/agent/signal/signal_proxy.rb +18 -0
  12. data/lib/baykit/bayserver/agent/signal/signal_sender.rb +99 -0
  13. data/lib/baykit/bayserver/agent/spin_handler.rb +140 -0
  14. data/lib/baykit/bayserver/agent/transporter/data_listener.rb +38 -0
  15. data/lib/baykit/bayserver/agent/transporter/package.rb +3 -0
  16. data/lib/baykit/bayserver/agent/transporter/plain_transporter.rb +55 -0
  17. data/lib/baykit/bayserver/agent/transporter/secure_transporter.rb +81 -0
  18. data/lib/baykit/bayserver/agent/transporter/spin_read_transporter.rb +111 -0
  19. data/lib/baykit/bayserver/agent/transporter/spin_write_transporter.rb +125 -0
  20. data/lib/baykit/bayserver/agent/transporter/transporter.rb +466 -0
  21. data/lib/baykit/bayserver/agent/upgrade_exception.rb +11 -0
  22. data/lib/baykit/bayserver/bay_dockers.rb +60 -0
  23. data/lib/baykit/bayserver/bay_exception.rb +12 -0
  24. data/lib/baykit/bayserver/bay_log.rb +148 -0
  25. data/lib/baykit/bayserver/bay_message.rb +20 -0
  26. data/lib/baykit/bayserver/bayserver.rb +529 -0
  27. data/lib/baykit/bayserver/bcf/bcf_document.rb +44 -0
  28. data/lib/baykit/bayserver/bcf/bcf_element.rb +30 -0
  29. data/lib/baykit/bayserver/bcf/bcf_key_val.rb +19 -0
  30. data/lib/baykit/bayserver/bcf/bcf_object.rb +15 -0
  31. data/lib/baykit/bayserver/bcf/bcf_parser.rb +180 -0
  32. data/lib/baykit/bayserver/bcf/package.rb +6 -0
  33. data/lib/baykit/bayserver/bcf/parse_exception.rb +15 -0
  34. data/lib/baykit/bayserver/config_exception.rb +25 -0
  35. data/lib/baykit/bayserver/constants.rb +8 -0
  36. data/lib/baykit/bayserver/docker/base/club_base.rb +117 -0
  37. data/lib/baykit/bayserver/docker/base/docker_base.rb +66 -0
  38. data/lib/baykit/bayserver/docker/base/inbound_data_listener.rb +89 -0
  39. data/lib/baykit/bayserver/docker/base/inbound_handler.rb +42 -0
  40. data/lib/baykit/bayserver/docker/base/inbound_ship.rb +341 -0
  41. data/lib/baykit/bayserver/docker/base/inbound_ship_store.rb +65 -0
  42. data/lib/baykit/bayserver/docker/base/port_base.rb +228 -0
  43. data/lib/baykit/bayserver/docker/base/reroute_base.rb +28 -0
  44. data/lib/baykit/bayserver/docker/built_in/built_in_city_docker.rb +303 -0
  45. data/lib/baykit/bayserver/docker/built_in/built_in_harbor_docker.rb +226 -0
  46. data/lib/baykit/bayserver/docker/built_in/built_in_log_docker.rb +302 -0
  47. data/lib/baykit/bayserver/docker/built_in/built_in_permission_docker.rb +242 -0
  48. data/lib/baykit/bayserver/docker/built_in/built_in_secure_docker.rb +157 -0
  49. data/lib/baykit/bayserver/docker/built_in/built_in_town_docker.rb +117 -0
  50. data/lib/baykit/bayserver/docker/built_in/built_in_trouble_docker.rb +57 -0
  51. data/lib/baykit/bayserver/docker/built_in/log_boat.rb +71 -0
  52. data/lib/baykit/bayserver/docker/built_in/log_item.rb +18 -0
  53. data/lib/baykit/bayserver/docker/built_in/log_item_factory.rb +18 -0
  54. data/lib/baykit/bayserver/docker/built_in/log_items.rb +287 -0
  55. data/lib/baykit/bayserver/docker/built_in/write_file_taxi.rb +101 -0
  56. data/lib/baykit/bayserver/docker/city.rb +22 -0
  57. data/lib/baykit/bayserver/docker/club.rb +45 -0
  58. data/lib/baykit/bayserver/docker/docker.rb +8 -0
  59. data/lib/baykit/bayserver/docker/harbor.rb +34 -0
  60. data/lib/baykit/bayserver/docker/log.rb +17 -0
  61. data/lib/baykit/bayserver/docker/package.rb +12 -0
  62. data/lib/baykit/bayserver/docker/permission.rb +18 -0
  63. data/lib/baykit/bayserver/docker/port.rb +39 -0
  64. data/lib/baykit/bayserver/docker/reroute.rb +17 -0
  65. data/lib/baykit/bayserver/docker/secure.rb +22 -0
  66. data/lib/baykit/bayserver/docker/send_file/directory_train.rb +123 -0
  67. data/lib/baykit/bayserver/docker/send_file/file_content_handler.rb +43 -0
  68. data/lib/baykit/bayserver/docker/send_file/send_file_docker.rb +71 -0
  69. data/lib/baykit/bayserver/docker/town.rb +30 -0
  70. data/lib/baykit/bayserver/docker/trouble.rb +17 -0
  71. data/lib/baykit/bayserver/docker/warp/package.rb +4 -0
  72. data/lib/baykit/bayserver/docker/warp/warp_data.rb +84 -0
  73. data/lib/baykit/bayserver/docker/warp/warp_data_listener.rb +112 -0
  74. data/lib/baykit/bayserver/docker/warp/warp_docker.rb +273 -0
  75. data/lib/baykit/bayserver/docker/warp/warp_handler.rb +38 -0
  76. data/lib/baykit/bayserver/docker/warp/warp_ship.rb +166 -0
  77. data/lib/baykit/bayserver/docker/warp/warp_ship_store.rb +111 -0
  78. data/lib/baykit/bayserver/http_exception.rb +33 -0
  79. data/lib/baykit/bayserver/mem_usage.rb +104 -0
  80. data/lib/baykit/bayserver/protocol/command.rb +21 -0
  81. data/lib/baykit/bayserver/protocol/command_handler.rb +9 -0
  82. data/lib/baykit/bayserver/protocol/command_packer.rb +49 -0
  83. data/lib/baykit/bayserver/protocol/command_unpacker.rb +13 -0
  84. data/lib/baykit/bayserver/protocol/package.rb +15 -0
  85. data/lib/baykit/bayserver/protocol/packet.rb +63 -0
  86. data/lib/baykit/bayserver/protocol/packet_factory.rb +13 -0
  87. data/lib/baykit/bayserver/protocol/packet_packer.rb +30 -0
  88. data/lib/baykit/bayserver/protocol/packet_part_accessor.rb +122 -0
  89. data/lib/baykit/bayserver/protocol/packet_store.rb +139 -0
  90. data/lib/baykit/bayserver/protocol/packet_unpacker.rb +17 -0
  91. data/lib/baykit/bayserver/protocol/protocol_exception.rb +17 -0
  92. data/lib/baykit/bayserver/protocol/protocol_handler.rb +64 -0
  93. data/lib/baykit/bayserver/protocol/protocol_handler_factory.rb +14 -0
  94. data/lib/baykit/bayserver/protocol/protocol_handler_store.rb +109 -0
  95. data/lib/baykit/bayserver/sink.rb +22 -0
  96. data/lib/baykit/bayserver/taxi/taxi.rb +38 -0
  97. data/lib/baykit/bayserver/taxi/taxi_runner.rb +31 -0
  98. data/lib/baykit/bayserver/tours/content_consume_listener.rb +20 -0
  99. data/lib/baykit/bayserver/tours/package.rb +4 -0
  100. data/lib/baykit/bayserver/tours/read_file_taxi.rb +102 -0
  101. data/lib/baykit/bayserver/tours/req_content_handler.rb +37 -0
  102. data/lib/baykit/bayserver/tours/send_file_train.rb +65 -0
  103. data/lib/baykit/bayserver/tours/send_file_yacht.rb +93 -0
  104. data/lib/baykit/bayserver/tours/tour.rb +195 -0
  105. data/lib/baykit/bayserver/tours/tour_req.rb +251 -0
  106. data/lib/baykit/bayserver/tours/tour_res.rb +400 -0
  107. data/lib/baykit/bayserver/tours/tour_store.rb +121 -0
  108. data/lib/baykit/bayserver/train/train.rb +54 -0
  109. data/lib/baykit/bayserver/train/train_runner.rb +32 -0
  110. data/lib/baykit/bayserver/util/byte_array.rb +54 -0
  111. data/lib/baykit/bayserver/util/byte_buffer.rb +13 -0
  112. data/lib/baykit/bayserver/util/cgi_util.rb +165 -0
  113. data/lib/baykit/bayserver/util/char_util.rb +22 -0
  114. data/lib/baykit/bayserver/util/cities.rb +45 -0
  115. data/lib/baykit/bayserver/util/class_util.rb +17 -0
  116. data/lib/baykit/bayserver/util/counter.rb +23 -0
  117. data/lib/baykit/bayserver/util/data_consume_listener.rb +13 -0
  118. data/lib/baykit/bayserver/util/executor_service.rb +81 -0
  119. data/lib/baykit/bayserver/util/groups.rb +110 -0
  120. data/lib/baykit/bayserver/util/gzip_compressor.rb +55 -0
  121. data/lib/baykit/bayserver/util/headers.rb +194 -0
  122. data/lib/baykit/bayserver/util/host_matcher.rb +48 -0
  123. data/lib/baykit/bayserver/util/http_status.rb +60 -0
  124. data/lib/baykit/bayserver/util/http_util.rb +157 -0
  125. data/lib/baykit/bayserver/util/io_util.rb +32 -0
  126. data/lib/baykit/bayserver/util/ip_matcher.rb +67 -0
  127. data/lib/baykit/bayserver/util/key_val.rb +15 -0
  128. data/lib/baykit/bayserver/util/key_val_list_parser.rb +53 -0
  129. data/lib/baykit/bayserver/util/locale.rb +30 -0
  130. data/lib/baykit/bayserver/util/md5_password.rb +24 -0
  131. data/lib/baykit/bayserver/util/message.rb +56 -0
  132. data/lib/baykit/bayserver/util/mimes.rb +27 -0
  133. data/lib/baykit/bayserver/util/object_factory.rb +13 -0
  134. data/lib/baykit/bayserver/util/object_store.rb +74 -0
  135. data/lib/baykit/bayserver/util/postman.rb +35 -0
  136. data/lib/baykit/bayserver/util/reusable.rb +13 -0
  137. data/lib/baykit/bayserver/util/selector.rb +141 -0
  138. data/lib/baykit/bayserver/util/simple_buffer.rb +53 -0
  139. data/lib/baykit/bayserver/util/simple_inspect.rb +12 -0
  140. data/lib/baykit/bayserver/util/string_util.rb +73 -0
  141. data/lib/baykit/bayserver/util/sys_util.rb +138 -0
  142. data/lib/baykit/bayserver/util/url_decoder.rb +42 -0
  143. data/lib/baykit/bayserver/util/url_encoder.rb +19 -0
  144. data/lib/baykit/bayserver/util/valve.rb +15 -0
  145. data/lib/baykit/bayserver/version.rb +7 -0
  146. data/lib/baykit/bayserver/watercraft/boat.rb +43 -0
  147. data/lib/baykit/bayserver/watercraft/ship.rb +104 -0
  148. data/lib/baykit/bayserver/watercraft/yacht.rb +42 -0
  149. metadata +189 -0
@@ -0,0 +1,60 @@
1
+ require 'baykit/bayserver/bcf/package'
2
+ require 'baykit/bayserver/util/string_util'
3
+
4
+ module Baykit
5
+ module BayServer
6
+
7
+ class BayDockers
8
+ include Bcf
9
+ include Util
10
+
11
+ attr :docker_map
12
+
13
+ def initialize()
14
+ @docker_map = {}
15
+ end
16
+
17
+ def init(conf)
18
+ p = BcfParser.new()
19
+ doc = p.parse(conf)
20
+ #doc.print_document
21
+
22
+ doc.content_list.each do |obj|
23
+ if(obj.instance_of?(BcfKeyVal))
24
+ @docker_map[obj.key] = obj.value
25
+ end
26
+ end
27
+ end
28
+
29
+ def create_docker(elm, parent)
30
+ alias_name = elm.get_value("docker")
31
+ d = create_docker_by_alias(elm.name, alias_name)
32
+ d.init(elm, parent)
33
+ d
34
+ end
35
+
36
+ def create_docker_by_alias(category, alias_name)
37
+
38
+ if StringUtil.empty?(alias_name)
39
+ key = category
40
+ else
41
+ key = category + ":" + alias_name
42
+ end
43
+
44
+ cls = @docker_map[key]
45
+ if cls == nil
46
+ raise BayException.new(BayMessage.get(:CFG_DOCKER_NOT_FOUND, key))
47
+ end
48
+
49
+ require_file = cls.gsub(/::/, "/").gsub(/([a-z])([A-Z])/, "\\1_\\2").downcase.gsub('bay_server', 'bayserver').gsub('/docker/default_', '/docker/default')
50
+ require require_file
51
+
52
+ begin
53
+ return Object.const_get(cls).new()
54
+ rescue => e
55
+ raise e
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,12 @@
1
+ class BayException < StandardError
2
+
3
+ def initialize(fmt = nil, *args)
4
+ super(if fmt == nil
5
+ nil
6
+ elsif args == nil || args.length == 0
7
+ sprintf("%s", fmt)
8
+ else
9
+ sprintf(fmt, *args)
10
+ end)
11
+ end
12
+ end
@@ -0,0 +1,148 @@
1
+ require 'baykit/bayserver/util/sys_util'
2
+
3
+ module Baykit
4
+ module BayServer
5
+ class BayLog
6
+ include Baykit::BayServer::Util
7
+
8
+ LOG_LEVEL_TRACE = 0
9
+ LOG_LEVEL_DEBUG = 1
10
+ LOG_LEVEL_INFO = 2
11
+ LOG_LEVEL_WARN = 3
12
+ LOG_LEVEL_ERROR = 4
13
+ LOG_LEVEL_FATAL = 5
14
+ LOG_LEVEL_NAME = ["TRACE", "DEBUG", "INFO ", "WARN ", "ERROR", "FATAL"]
15
+
16
+ # class instance variables
17
+ class << self
18
+ attr :log_level
19
+ end
20
+ @log_level = LOG_LEVEL_INFO
21
+ @full_path = SysUtil.run_on_rubymine()
22
+
23
+ def self.set_log_level(lvl)
24
+ if lvl.casecmp? "trace"
25
+ @log_level = LOG_LEVEL_TRACE
26
+ elsif lvl.casecmp? "debug"
27
+ @log_level = LOG_LEVEL_DEBUG
28
+ elsif lvl.casecmp? "info"
29
+ @log_level = LOG_LEVEL_INFO
30
+ elsif lvl.casecmp? "warn"
31
+ @log_level = LOG_LEVEL_WARN
32
+ elsif lvl.casecmp? "error"
33
+ @log_level = LOG_LEVEL_ERROR
34
+ elsif lvl.casecmp? "fatal"
35
+ @log_level = LOG_LEVEL_FATAL
36
+ else
37
+ warn(BayMessage.get(:INT_UNKNOWN_LOG_LEVEL, lvl))
38
+ end
39
+ end
40
+
41
+ def self.info(fmt, *args)
42
+ log(LOG_LEVEL_INFO, 3, nil, fmt, args)
43
+ end
44
+
45
+ def self.trace(fmt, *args)
46
+ log(LOG_LEVEL_TRACE, 3, nil , fmt, args)
47
+ end
48
+
49
+ def self.debug(fmt, *args)
50
+ log(LOG_LEVEL_DEBUG, 3, nil, fmt, args)
51
+ end
52
+
53
+ def self.debug_e(err, fmt=nil, *args)
54
+ log(LOG_LEVEL_DEBUG, 3, err, fmt, args)
55
+ end
56
+
57
+ def self.warn(fmt, *args)
58
+ log(LOG_LEVEL_WARN, 3, nil, fmt, args)
59
+ end
60
+
61
+ def self.warn_e(err, fmt=nil, *args)
62
+ log(LOG_LEVEL_WARN, 3, err, fmt, args)
63
+ end
64
+
65
+ def self.error(fmt, *args)
66
+ log(LOG_LEVEL_ERROR, 3, nil , fmt, args)
67
+ end
68
+
69
+ def self.error_e(err, fmt=nil, *args)
70
+ log(LOG_LEVEL_ERROR, 3, err, fmt, args)
71
+ end
72
+
73
+ def self.fatal(fmt, *args)
74
+ log(LOG_LEVEL_FATAL, 3, nil , fmt, args)
75
+ end
76
+
77
+ def self.fatal_e(err, fmt=nil, *args)
78
+ log(LOG_LEVEL_FATAL, 3, err, fmt, args)
79
+ exit(1)
80
+ end
81
+
82
+ def self.log(lvl, stack_idx, err, fmt, args)
83
+ #pos = caller[1].split("/")[-1]
84
+ apos = parse_caller(caller[1])
85
+ if(!@full_path)
86
+ apos[0] = File.basename(apos[0])
87
+ end
88
+ pos = "#{apos[0]}:#{apos[1]}"
89
+ #pos = caller[1]
90
+
91
+ if fmt != nil
92
+ if lvl >= @log_level
93
+ begin
94
+ if args == nil || args.length == 0
95
+ msg = sprintf("%s", fmt)
96
+ else
97
+ msg = sprintf(fmt, *args)
98
+ end
99
+ rescue => e
100
+ puts(e.class)
101
+ puts(e.message + " " + pos)
102
+ print_exception(e)
103
+ msg = fmt
104
+ end
105
+
106
+ print("[#{Time.now}] #{LOG_LEVEL_NAME[lvl]}. #{msg} (at #{pos})\n")
107
+ end
108
+ end
109
+
110
+ if err != nil
111
+ if debug_mode? || lvl == LOG_LEVEL_FATAL
112
+ puts(err.class)
113
+ puts(err.message + " " + pos)
114
+ print_exception err
115
+ else
116
+ log(lvl, stack_idx + 1, nil, "%s", err.message)
117
+ end
118
+ end
119
+ end
120
+
121
+ def self.debug_mode?
122
+ @log_level <= LOG_LEVEL_DEBUG
123
+ #LOG_LEVEL_TRACE < LOG_LEVEL_INFO
124
+ end
125
+
126
+ def self.trace_mode?
127
+ @log_level == LOG_LEVEL_TRACE
128
+ end
129
+
130
+ def self.print_exception err
131
+ for s in err.backtrace
132
+ puts "\t" + s
133
+ end
134
+ if err.cause
135
+ puts "Caused by:"
136
+ puts err.cause.message
137
+ print_exception err.cause
138
+ end
139
+ end
140
+
141
+ private
142
+ def self.parse_caller(str)
143
+ m = /(.*):(.*):in `(.*)'/.match(str)
144
+ return [m[1], m[2], m[3]]
145
+ end
146
+ end
147
+ end
148
+ end
@@ -0,0 +1,20 @@
1
+ require 'baykit/bayserver/util/message'
2
+
3
+ module Baykit
4
+ module BayServer
5
+
6
+ class BayMessage
7
+ include Util
8
+
9
+ @@msg = Message.new
10
+
11
+ def self.init(conf_name, locale)
12
+ @@msg.init(conf_name, locale)
13
+ end
14
+
15
+ def self.get(key, *args)
16
+ @@msg.get(key, *args)
17
+ end
18
+ end
19
+ end
20
+ end