Commit 8552e1805babc6d6f6546d80a9456e35a07fda63
1 parent
88fedcba
[+] add logLevel into logger
Showing
3 changed files
with
160 additions
and
142 deletions
Show diff stats
net_services/CXM_generic_client.anubis
| @@ -8,6 +8,7 @@ | @@ -8,6 +8,7 @@ | ||
| 8 | */ | 8 | */ |
| 9 | 9 | ||
| 10 | transmit system/message_transceiver.anubis | 10 | transmit system/message_transceiver.anubis |
| 11 | +transmit system/logger.anubis | ||
| 11 | transmit calexium_lib/net_services_protocols/logger_service.anubis | 12 | transmit calexium_lib/net_services_protocols/logger_service.anubis |
| 12 | 13 | ||
| 13 | transmit calexium_lib/CXM_message_constants.anubis | 14 | transmit calexium_lib/CXM_message_constants.anubis |
| @@ -66,24 +67,24 @@ public define Maybe(NetServiceAnswer) | @@ -66,24 +67,24 @@ public define Maybe(NetServiceAnswer) | ||
| 66 | */ | 67 | */ |
| 67 | generic_send_message | 68 | generic_send_message |
| 68 | ( | 69 | ( |
| 69 | - MessageQueue queue, | ||
| 70 | - Message msg_to_send, | ||
| 71 | - Int timeout, | ||
| 72 | - String logger_name | 70 | + MessageQueue queue, |
| 71 | + Message msg_to_send, | ||
| 72 | + Int timeout, | ||
| 73 | + (LogLevel, String) -> One logger | ||
| 73 | )= | 74 | )= |
| 74 | queue.add_Message_to_send(msg_to_send); | 75 | queue.add_Message_to_send(msg_to_send); |
| 75 | if queue.get_next_received_Message(timeout) is | 76 | if queue.get_next_received_Message(timeout) is |
| 76 | { | 77 | { |
| 77 | - timeout then logError(logger_name, "["+queue.get_name(unique)+"]: receive timeout");failure, | ||
| 78 | - closed then logError(logger_name, "["+queue.get_name(unique)+"]: socket closed");failure, | 78 | + timeout then logger(logError, "["+queue.get_name(unique)+"]: receive timeout");failure, |
| 79 | + closed then logger(logError, "["+queue.get_name(unique)+"]: socket closed");failure, | ||
| 79 | msg(msg) then | 80 | msg(msg) then |
| 80 | if find_int32(msg, "CMD") is | 81 | if find_int32(msg, "CMD") is |
| 81 | { | 82 | { |
| 82 | - failure then logError(logger_name, "["+queue.get_name(unique)+"]: CMD field not found"); failure, | 83 | + failure then logger(logError, "["+queue.get_name(unique)+"]: CMD field not found"); failure, |
| 83 | success(cmd) then | 84 | success(cmd) then |
| 84 | if find_int32(msg, "STATUS") is | 85 | if find_int32(msg, "STATUS") is |
| 85 | { | 86 | { |
| 86 | - failure then logError(logger_name, "["+queue.get_name(unique)+"]: STATUS field not found"); failure, | 87 | + failure then logger(logError, "["+queue.get_name(unique)+"]: STATUS field not found"); failure, |
| 87 | success(v) then | 88 | success(v) then |
| 88 | if v = _CXM_OK then | 89 | if v = _CXM_OK then |
| 89 | success(netservice_ok(cmd, find_message(msg, "RESULT"))) | 90 | success(netservice_ok(cmd, find_message(msg, "RESULT"))) |
| @@ -102,7 +103,7 @@ public define Maybe($T) | @@ -102,7 +103,7 @@ public define Maybe($T) | ||
| 102 | Int timeout, | 103 | Int timeout, |
| 103 | Message msg_to_send, | 104 | Message msg_to_send, |
| 104 | (Message, MessageQueue, String) -> Maybe($T) handler, | 105 | (Message, MessageQueue, String) -> Maybe($T) handler, |
| 105 | - (String) -> One logger | 106 | + (LogLevel, String) -> One logger |
| 106 | ) = | 107 | ) = |
| 107 | if generic_send_message(queue, msg_to_send, timeout, logger) is | 108 | if generic_send_message(queue, msg_to_send, timeout, logger) is |
| 108 | { | 109 | { |
| @@ -111,12 +112,12 @@ public define Maybe($T) | @@ -111,12 +112,12 @@ public define Maybe($T) | ||
| 111 | if net_result is | 112 | if net_result is |
| 112 | { | 113 | { |
| 113 | netservice_error(cmd, err_code, err_str) then | 114 | netservice_error(cmd, err_code, err_str) then |
| 114 | - logger("["+queue.get_name(unique)+"]: message status ERROR [0x" + to_hexa(err_code) + ", '" + err_str + "']"); | 115 | + logger(logError, "["+queue.get_name(unique)+"]: message status ERROR [0x" + to_hexa(err_code) + ", '" + err_str + "']"); |
| 115 | failure, | 116 | failure, |
| 116 | netservice_ok(cmd, mb_msg) then | 117 | netservice_ok(cmd, mb_msg) then |
| 117 | if mb_msg is | 118 | if mb_msg is |
| 118 | { | 119 | { |
| 119 | - failure then logger("["+queue.get_name(unique)+"]: can't find RESULT message."); failure, | 120 | + failure then logger(logError,"["+queue.get_name(unique)+"]: can't find RESULT message."); failure, |
| 120 | success(result) then handler(result, queue, timestamp) | 121 | success(result) then handler(result, queue, timestamp) |
| 121 | } | 122 | } |
| 122 | } | 123 | } |
| @@ -125,10 +126,10 @@ public define Maybe($T) | @@ -125,10 +126,10 @@ public define Maybe($T) | ||
| 125 | public define Maybe(One) | 126 | public define Maybe(One) |
| 126 | no_result_handler | 127 | no_result_handler |
| 127 | ( | 128 | ( |
| 128 | - MessageQueue queue, | ||
| 129 | - Int timeout, | ||
| 130 | - Message msg_to_send, | ||
| 131 | - (String) -> One logger | 129 | + MessageQueue queue, |
| 130 | + Int timeout, | ||
| 131 | + Message msg_to_send, | ||
| 132 | + (LogLevel, String) -> One logger | ||
| 132 | ) = | 133 | ) = |
| 133 | if generic_send_message(queue, msg_to_send, timeout, logger) is | 134 | if generic_send_message(queue, msg_to_send, timeout, logger) is |
| 134 | { | 135 | { |
| @@ -137,13 +138,13 @@ public define Maybe(One) | @@ -137,13 +138,13 @@ public define Maybe(One) | ||
| 137 | if net_result is | 138 | if net_result is |
| 138 | { | 139 | { |
| 139 | netservice_error(cmd, err_code, err_str) then | 140 | netservice_error(cmd, err_code, err_str) then |
| 140 | - logger("["+queue.get_name(unique)+"]: message status ERROR [0x" + to_hexa(err_code) + ", '" + err_str + "']"); | 141 | + logger(logError, "["+queue.get_name(unique)+"]: message status ERROR [0x" + to_hexa(err_code) + ", '" + err_str + "']"); |
| 141 | failure, | 142 | failure, |
| 142 | netservice_ok(cmd, mb_msg) then | 143 | netservice_ok(cmd, mb_msg) then |
| 143 | if mb_msg is | 144 | if mb_msg is |
| 144 | { | 145 | { |
| 145 | failure then unique, | 146 | failure then unique, |
| 146 | - success(result) then logger("An unattended RESULT msg was found. Ignoring it...") | 147 | + success(result) then logger(logError, "An unattended RESULT msg was found. Ignoring it...") |
| 147 | }; | 148 | }; |
| 148 | success(unique) | 149 | success(unique) |
| 149 | } | 150 | } |
| @@ -155,7 +156,7 @@ public define (MessageQueue, String) -> Maybe($T) | @@ -155,7 +156,7 @@ public define (MessageQueue, String) -> Maybe($T) | ||
| 155 | Int timeout, | 156 | Int timeout, |
| 156 | Message msg_to_send, | 157 | Message msg_to_send, |
| 157 | (Message, MessageQueue, String) -> Maybe($T) handler, | 158 | (Message, MessageQueue, String) -> Maybe($T) handler, |
| 158 | - (String) -> One logger | 159 | + (LogLevel, String) -> One logger |
| 159 | ) = | 160 | ) = |
| 160 | (MessageQueue queue, String timestamp) |-> | 161 | (MessageQueue queue, String timestamp) |-> |
| 161 | simple_handler(queue, timestamp, timeout, msg_to_send, handler, logger). | 162 | simple_handler(queue, timestamp, timeout, msg_to_send, handler, logger). |
| @@ -168,7 +169,7 @@ define Maybe($T) | @@ -168,7 +169,7 @@ define Maybe($T) | ||
| 168 | Word32 service_version, | 169 | Word32 service_version, |
| 169 | String domain, | 170 | String domain, |
| 170 | (MessageQueue, String) -> Maybe($T) handler, | 171 | (MessageQueue, String) -> Maybe($T) handler, |
| 171 | - (String) -> One logger | 172 | + (LogLevel, String) -> One logger |
| 172 | )= | 173 | )= |
| 173 | with test_msg = message(_CXM_REQUEST_FOR_SERVICE), | 174 | with test_msg = message(_CXM_REQUEST_FOR_SERVICE), |
| 174 | forget(add_int32(test_msg, "SERVICE", service_id)); | 175 | forget(add_int32(test_msg, "SERVICE", service_id)); |
| @@ -177,71 +178,71 @@ define Maybe($T) | @@ -177,71 +178,71 @@ define Maybe($T) | ||
| 177 | queue.add_Message_to_send(test_msg); | 178 | queue.add_Message_to_send(test_msg); |
| 178 | if queue.get_next_received_Message(10) is | 179 | if queue.get_next_received_Message(10) is |
| 179 | { | 180 | { |
| 180 | - timeout then logger("["+queue.get_name(unique)+"]: requesting service receive timeout");failure, | ||
| 181 | - closed then logger("["+queue.get_name(unique)+"]: requesting service socket closed");failure, | 181 | + timeout then logger(logError, "["+queue.get_name(unique)+"]: requesting service receive timeout");failure, |
| 182 | + closed then logger(logError, "["+queue.get_name(unique)+"]: requesting service socket closed");failure, | ||
| 182 | msg(msg) then | 183 | msg(msg) then |
| 183 | if find_int32(msg, "STATUS") is | 184 | if find_int32(msg, "STATUS") is |
| 184 | { | 185 | { |
| 185 | - failure then logger("["+queue.get_name(unique)+"]: requesting service STATUS not found");failure, | 186 | + failure then logger(logError, "["+queue.get_name(unique)+"]: requesting service STATUS not found");failure, |
| 186 | success(v) then | 187 | success(v) then |
| 187 | if v = _CXM_OK then | 188 | if v = _CXM_OK then |
| 188 | if find_message(msg, "RESULT") is | 189 | if find_message(msg, "RESULT") is |
| 189 | { | 190 | { |
| 190 | - failure then logger("["+queue.get_name(unique)+"]: requesting service RESULT not found");failure, | 191 | + failure then logger(logError, "["+queue.get_name(unique)+"]: requesting service RESULT not found");failure, |
| 191 | success(result) then | 192 | success(result) then |
| 192 | with timestamp = if find_string(result, "TIMESTAMP") is | 193 | with timestamp = if find_string(result, "TIMESTAMP") is |
| 193 | { | 194 | { |
| 194 | - failure then logger("["+queue.get_name(unique)+"]: requesting service TIMESTAMP not found"); "", | 195 | + failure then logger(logError, "["+queue.get_name(unique)+"]: requesting service TIMESTAMP not found"); "", |
| 195 | success(timestamp) then timestamp | 196 | success(timestamp) then timestamp |
| 196 | }, | 197 | }, |
| 197 | handler(queue, timestamp) | 198 | handler(queue, timestamp) |
| 198 | } | 199 | } |
| 199 | else | 200 | else |
| 200 | - logger("["+queue.get_name(unique)+"]: the requested service is not available on server.");failure | 201 | + logger(logError, "["+queue.get_name(unique)+"]: the requested service is not available on server.");failure |
| 201 | } | 202 | } |
| 202 | }. | 203 | }. |
| 203 | 204 | ||
| 204 | -define Maybe($T) | ||
| 205 | - generic_request_for_service | ||
| 206 | - ( | ||
| 207 | - MessageQueue queue, | ||
| 208 | - Word32 service_id, | ||
| 209 | - Word32 service_version, | ||
| 210 | - String domain, | ||
| 211 | - (MessageQueue, String) -> Maybe($T) handler, | ||
| 212 | - String logger | ||
| 213 | - )= | ||
| 214 | - with test_msg = message(_CXM_REQUEST_FOR_SERVICE), | ||
| 215 | - forget(add_int32(test_msg, "SERVICE", service_id)); | ||
| 216 | - forget(add_int32(test_msg, "VERSION", service_version)); | ||
| 217 | - forget(add_string(test_msg, "DOMAIN", domain)); | ||
| 218 | - queue.add_Message_to_send(test_msg); | ||
| 219 | - if queue.get_next_received_Message(10) is | ||
| 220 | - { | ||
| 221 | - timeout then logError(logger, "["+queue.get_name(unique)+"]: requesting service receive timeout");failure, | ||
| 222 | - closed then logError(logger, "["+queue.get_name(unique)+"]: requesting service socket closed");failure, | ||
| 223 | - msg(msg) then | ||
| 224 | - if find_int32(msg, "STATUS") is | ||
| 225 | - { | ||
| 226 | - failure then logError(logger, "["+queue.get_name(unique)+"]: requesting service STATUS not found");failure, | ||
| 227 | - success(v) then | ||
| 228 | - if v = _CXM_OK then | ||
| 229 | - if find_message(msg, "RESULT") is | ||
| 230 | - { | ||
| 231 | - failure then logError(logger, "["+queue.get_name(unique)+"]: requesting service RESULT not found");failure, | ||
| 232 | - success(result) then | ||
| 233 | - with timestamp = if find_string(result, "TIMESTAMP") is | ||
| 234 | - { | ||
| 235 | - failure then logError(logger, "["+queue.get_name(unique)+"]: requesting service TIMESTAMP not found"); "", | ||
| 236 | - success(timestamp) then timestamp | ||
| 237 | - }, | ||
| 238 | - handler(queue, timestamp) | ||
| 239 | - } | ||
| 240 | - else | ||
| 241 | - logError(logger, "["+queue.get_name(unique)+"]: the requested service is not available on server.");failure | ||
| 242 | - } | ||
| 243 | - }. | ||
| 244 | - | 205 | +// define Maybe($T) |
| 206 | +// generic_request_for_service | ||
| 207 | +// ( | ||
| 208 | +// MessageQueue queue, | ||
| 209 | +// Word32 service_id, | ||
| 210 | +// Word32 service_version, | ||
| 211 | +// String domain, | ||
| 212 | +// (MessageQueue, String) -> Maybe($T) handler, | ||
| 213 | +// (LogLevel, String) -> One logger | ||
| 214 | +// )= | ||
| 215 | +// with test_msg = message(_CXM_REQUEST_FOR_SERVICE), | ||
| 216 | +// forget(add_int32(test_msg, "SERVICE", service_id)); | ||
| 217 | +// forget(add_int32(test_msg, "VERSION", service_version)); | ||
| 218 | +// forget(add_string(test_msg, "DOMAIN", domain)); | ||
| 219 | +// queue.add_Message_to_send(test_msg); | ||
| 220 | +// if queue.get_next_received_Message(10) is | ||
| 221 | +// { | ||
| 222 | +// timeout then logger(logError, "["+queue.get_name(unique)+"]: requesting service receive timeout");failure, | ||
| 223 | +// closed then logger(logError, "["+queue.get_name(unique)+"]: requesting service socket closed");failure, | ||
| 224 | +// msg(msg) then | ||
| 225 | +// if find_int32(msg, "STATUS") is | ||
| 226 | +// { | ||
| 227 | +// failure then logger(logError, "["+queue.get_name(unique)+"]: requesting service STATUS not found");failure, | ||
| 228 | +// success(v) then | ||
| 229 | +// if v = _CXM_OK then | ||
| 230 | +// if find_message(msg, "RESULT") is | ||
| 231 | +// { | ||
| 232 | +// failure then logger(logError, "["+queue.get_name(unique)+"]: requesting service RESULT not found");failure, | ||
| 233 | +// success(result) then | ||
| 234 | +// with timestamp = if find_string(result, "TIMESTAMP") is | ||
| 235 | +// { | ||
| 236 | +// failure then logger(logError, "["+queue.get_name(unique)+"]: requesting service TIMESTAMP not found"); "", | ||
| 237 | +// success(timestamp) then timestamp | ||
| 238 | +// }, | ||
| 239 | +// handler(queue, timestamp) | ||
| 240 | +// } | ||
| 241 | +// else | ||
| 242 | +// logger(logError, "["+queue.get_name(unique)+"]: the requested service is not available on server.");failure | ||
| 243 | +// } | ||
| 244 | +// }. | ||
| 245 | +// | ||
| 245 | public define Maybe(MessageQueue) | 246 | public define Maybe(MessageQueue) |
| 246 | get_message_queue_to_net_service | 247 | get_message_queue_to_net_service |
| 247 | ( | 248 | ( |
| @@ -252,12 +253,12 @@ public define Maybe(MessageQueue) | @@ -252,12 +253,12 @@ public define Maybe(MessageQueue) | ||
| 252 | Word32 service_version, | 253 | Word32 service_version, |
| 253 | String domain, | 254 | String domain, |
| 254 | (MessageQueue, String) -> Maybe(One) handler, //1st function to apply if need (i.e authentication to remote service) | 255 | (MessageQueue, String) -> Maybe(One) handler, //1st function to apply if need (i.e authentication to remote service) |
| 255 | - String logger | 256 | + (LogLevel, String) -> One logger |
| 256 | ) | 257 | ) |
| 257 | = | 258 | = |
| 258 | if connect( server, port) is | 259 | if connect( server, port) is |
| 259 | { | 260 | { |
| 260 | - error(_) then logError(logger, queue_name + ": Can't connect to service ["+ip_addr_to_string(server)+":"+port+"]");failure, | 261 | + error(_) then logger(logError, queue_name + ": Can't connect to service ["+ip_addr_to_string(server)+":"+port+"]");failure, |
| 261 | ok(conn) then | 262 | ok(conn) then |
| 262 | // println("[" + virtual_machine_id + "] netservices create queue"); | 263 | // println("[" + virtual_machine_id + "] netservices create queue"); |
| 263 | with queue = create_MessageQueue(queue_name, tcp(conn)), | 264 | with queue = create_MessageQueue(queue_name, tcp(conn)), |
| @@ -267,7 +268,7 @@ public define Maybe(MessageQueue) | @@ -267,7 +268,7 @@ public define Maybe(MessageQueue) | ||
| 267 | { | 268 | { |
| 268 | failure then | 269 | failure then |
| 269 | //we can't apply first function correctly, so we ask to Message Queue to quit and return failure | 270 | //we can't apply first function correctly, so we ask to Message Queue to quit and return failure |
| 270 | - logError(logger, "can't apply first function correctly"); | 271 | + logger(logError, "can't apply first function correctly"); |
| 271 | queue.quit(unique); | 272 | queue.quit(unique); |
| 272 | failure, | 273 | failure, |
| 273 | success(_) then success(queue) | 274 | success(_) then success(queue) |
| @@ -285,12 +286,12 @@ public define Maybe($T) | @@ -285,12 +286,12 @@ public define Maybe($T) | ||
| 285 | Word32 service_version, | 286 | Word32 service_version, |
| 286 | String domain, | 287 | String domain, |
| 287 | (MessageQueue, String) -> Maybe($T) handler, | 288 | (MessageQueue, String) -> Maybe($T) handler, |
| 288 | - (String) -> One logger | 289 | + (LogLevel, String) -> One logger |
| 289 | ) | 290 | ) |
| 290 | = | 291 | = |
| 291 | if connect( server, port) is | 292 | if connect( server, port) is |
| 292 | { | 293 | { |
| 293 | - error(_) then logger(queue_name + ": Can't connect to service ["+ip_addr_to_string(server)+":"+port+"]");failure, | 294 | + error(_) then logger(logError, queue_name + ": Can't connect to service ["+ip_addr_to_string(server)+":"+port+"]");failure, |
| 294 | ok(conn) then | 295 | ok(conn) then |
| 295 | // println("[" + virtual_machine_id + "] netservices create queue"); | 296 | // println("[" + virtual_machine_id + "] netservices create queue"); |
| 296 | with queue = create_MessageQueue(queue_name, tcp(conn)), | 297 | with queue = create_MessageQueue(queue_name, tcp(conn)), |
| @@ -313,7 +314,7 @@ public define Maybe($T) | @@ -313,7 +314,7 @@ public define Maybe($T) | ||
| 313 | Word32 service_id, | 314 | Word32 service_id, |
| 314 | Word32 service_version, | 315 | Word32 service_version, |
| 315 | (MessageQueue, String) -> Maybe($T) handler, | 316 | (MessageQueue, String) -> Maybe($T) handler, |
| 316 | - (String) -> One logger | 317 | + (LogLevel, String) -> One logger |
| 317 | ) | 318 | ) |
| 318 | = | 319 | = |
| 319 | generic_connect_to_net_service(queue_name, server, port, service_id, service_version, "", handler, logger). | 320 | generic_connect_to_net_service(queue_name, server, port, service_id, service_version, "", handler, logger). |
| @@ -322,37 +323,38 @@ define Word32 | @@ -322,37 +323,38 @@ define Word32 | ||
| 322 | get_ip | 323 | get_ip |
| 323 | ( | 324 | ( |
| 324 | String url_or_ip, | 325 | String url_or_ip, |
| 325 | - (String) -> One logger | 326 | + (LogLevel, String) -> One logger |
| 326 | ) = | 327 | ) = |
| 327 | - //logInfo(debug_log,"Try to resolve URL [" + url_or_ip+ "]."); | 328 | + logger(logTrace, "Try to resolve URL [" + url_or_ip+ "]."); |
| 328 | if ip_address(url_or_ip) is success(ip) then | 329 | if ip_address(url_or_ip) is success(ip) then |
| 329 | - //logInfo(debug_log,"Try to resolve URL OK ip"+ip); | 330 | + logger(logTrace, "Try to resolve URL OK ip"+ip); |
| 330 | ip | 331 | ip |
| 331 | else if dns(url_or_ip) is ok(ip_adr) then | 332 | else if dns(url_or_ip) is ok(ip_adr) then |
| 332 | - //logInfo(debug_log,"Try to resolve URL OK dns"+ip_adr); | 333 | + logger(logTrace, "Try to resolve URL OK dns"+ip_adr); |
| 333 | ip_adr | 334 | ip_adr |
| 334 | else | 335 | else |
| 335 | - logger("Can't resolve URL [" + url_or_ip+ "]. Using localhost."); | 336 | + logger(logError, "Can't resolve URL [" + url_or_ip+ "]. Using localhost (127.0.0.1) ."); |
| 336 | ip_address((127,0,0,1)). | 337 | ip_address((127,0,0,1)). |
| 337 | 338 | ||
| 338 | 339 | ||
| 339 | public define Maybe(Word32) | 340 | public define Maybe(Word32) |
| 340 | mb_get_ip | 341 | mb_get_ip |
| 341 | ( | 342 | ( |
| 342 | - String url_or_ip | 343 | + String url_or_ip, |
| 344 | + (LogLevel, String) -> One logger | ||
| 343 | ) = | 345 | ) = |
| 344 | - //logInfo(debug_log,"Try to resolve URL [" + url_or_ip+ "]."); | 346 | + logger(logTrace, "Try to resolve URL [" + url_or_ip+ "]."); |
| 345 | if ip_address(url_or_ip) is success(ip) then | 347 | if ip_address(url_or_ip) is success(ip) then |
| 346 | - //logInfo(debug_log,"Try to resolve URL OK ip"+ip); | 348 | + logger(logTrace, "Try to resolve URL OK ip"+ip); |
| 347 | success(ip) | 349 | success(ip) |
| 348 | else if dns(url_or_ip) is ok(ip_adr) then | 350 | else if dns(url_or_ip) is ok(ip_adr) then |
| 349 | - //logInfo(debug_log,"Try to resolve URL OK dns"+ip_adr); | 351 | + logger(logTrace, "Try to resolve URL OK dns"+ip_adr); |
| 350 | success(ip_adr) | 352 | success(ip_adr) |
| 351 | else | 353 | else |
| 352 | - println("Can't resolve URL [" + url_or_ip+ "]."); | 354 | + logger(logError, "Can't resolve URL [" + url_or_ip+ "]."); |
| 353 | failure. | 355 | failure. |
| 354 | 356 | ||
| 355 | -public define Word32 | 357 | + public define Word32 |
| 356 | get_ip | 358 | get_ip |
| 357 | ( | 359 | ( |
| 358 | String url_or_ip | 360 | String url_or_ip |
| @@ -377,7 +379,7 @@ public define Maybe($T) | @@ -377,7 +379,7 @@ public define Maybe($T) | ||
| 377 | Word32 service_version, | 379 | Word32 service_version, |
| 378 | String domain, | 380 | String domain, |
| 379 | (MessageQueue, String) -> Maybe($T) handler, | 381 | (MessageQueue, String) -> Maybe($T) handler, |
| 380 | - (String) -> One logger | 382 | + (LogLevel, String) -> One logger |
| 381 | ) | 383 | ) |
| 382 | = generic_connect_to_net_service(queue_name, get_ip(server, logger), port, service_id, service_version, domain, handler, logger). | 384 | = generic_connect_to_net_service(queue_name, get_ip(server, logger), port, service_id, service_version, domain, handler, logger). |
| 383 | 385 | ||
| @@ -390,7 +392,7 @@ public define Maybe($T) | @@ -390,7 +392,7 @@ public define Maybe($T) | ||
| 390 | Word32 service_id, | 392 | Word32 service_id, |
| 391 | Word32 service_version, | 393 | Word32 service_version, |
| 392 | (MessageQueue, String) -> Maybe($T) handler, | 394 | (MessageQueue, String) -> Maybe($T) handler, |
| 393 | - (String) -> One logger | 395 | + (LogLevel, String) -> One logger |
| 394 | ) | 396 | ) |
| 395 | = generic_connect_to_net_service(queue_name, server, port, service_id, service_version, "", handler, logger). | 397 | = generic_connect_to_net_service(queue_name, server, port, service_id, service_version, "", handler, logger). |
| 396 | 398 | ||
| @@ -407,12 +409,12 @@ public define Maybe($T) | @@ -407,12 +409,12 @@ public define Maybe($T) | ||
| 407 | Word32 service_version, | 409 | Word32 service_version, |
| 408 | String domain, | 410 | String domain, |
| 409 | (MessageQueue, String) -> Maybe($T) handler, | 411 | (MessageQueue, String) -> Maybe($T) handler, |
| 410 | - (String) -> One logger | 412 | + (LogLevel, String) -> One logger |
| 411 | ) | 413 | ) |
| 412 | = | 414 | = |
| 413 | if open_SSL_connection( server_name, server_ip, port, accept_policy) is | 415 | if open_SSL_connection( server_name, server_ip, port, accept_policy) is |
| 414 | { | 416 | { |
| 415 | - error(_) then logger(queue_name + ": Can't connect to domain manager ["+ip_addr_to_string(server_ip)+":"+port+"]");failure, | 417 | + error(_) then logger(logError, queue_name + ": Can't connect to domain manager ["+ip_addr_to_string(server_ip)+":"+port+"]");failure, |
| 416 | ok(conn) then | 418 | ok(conn) then |
| 417 | with queue = create_MessageQueue(queue_name, ssl(conn)), | 419 | with queue = create_MessageQueue(queue_name, ssl(conn)), |
| 418 | message_transceiver(/*ssl(conn),*/ queue); | 420 | message_transceiver(/*ssl(conn),*/ queue); |
| @@ -434,7 +436,7 @@ public define Maybe($T) | @@ -434,7 +436,7 @@ public define Maybe($T) | ||
| 434 | Word32 service_id, | 436 | Word32 service_id, |
| 435 | Word32 service_version, | 437 | Word32 service_version, |
| 436 | (MessageQueue, String) -> Maybe($T) handler, | 438 | (MessageQueue, String) -> Maybe($T) handler, |
| 437 | - (String) -> One logger | 439 | + (LogLevel, String) -> One logger |
| 438 | ) | 440 | ) |
| 439 | = generic_connect_to_net_service_SSL(queue_name, server_name, server_ip, port, accept_policy, service_id, service_version, "", handler, logger). | 441 | = generic_connect_to_net_service_SSL(queue_name, server_name, server_ip, port, accept_policy, service_id, service_version, "", handler, logger). |
| 440 | 442 |
net_services/CXM_net_services.anubis
| @@ -13,6 +13,7 @@ read system/muscle.anubis | @@ -13,6 +13,7 @@ read system/muscle.anubis | ||
| 13 | read system/data_io.anubis | 13 | read system/data_io.anubis |
| 14 | read system/message_queue.anubis | 14 | read system/message_queue.anubis |
| 15 | read system/message_transceiver.anubis | 15 | read system/message_transceiver.anubis |
| 16 | +read system/logger.anubis | ||
| 16 | read CXM_generic_protocol.anubis | 17 | read CXM_generic_protocol.anubis |
| 17 | read calexium_lib/CXM_message_constants.anubis | 18 | read calexium_lib/CXM_message_constants.anubis |
| 18 | 19 | ||
| @@ -22,24 +23,27 @@ public type NetService: | @@ -22,24 +23,27 @@ public type NetService: | ||
| 22 | Word32 id, | 23 | Word32 id, |
| 23 | String name, | 24 | String name, |
| 24 | List(String) domains, | 25 | List(String) domains, |
| 25 | - (MessageQueue, String, String) -> One handler // Parameters are MessageQueue, peer IP and timestamp string | ||
| 26 | - ). | 26 | + (MessageQueue, String, String, (LogLevel, String) -> One ) -> One handler // Parameters are MessageQueue, peer IP and timestamp string, logger |
| 27 | + ) | ||
| 28 | +. | ||
| 27 | 29 | ||
| 28 | -define One | ||
| 29 | - print_services | 30 | +define String |
| 31 | + dump_services | ||
| 30 | ( | 32 | ( |
| 31 | List(NetService) net_services | 33 | List(NetService) net_services |
| 32 | ) = | 34 | ) = |
| 33 | - | ||
| 34 | - map_forget((NetService net_s)|-> | ||
| 35 | - if net_s is net_service(version, id, name, domains, _) then | ||
| 36 | - println(" id : 0x"+ to_hexa(id)); | ||
| 37 | - println(" version : " + to_String(version)); | ||
| 38 | - println(" name : "+ name ); | ||
| 39 | - println(" domains : "); | ||
| 40 | - map_forget((String domain) |-> println(" : "+domain), domains); | ||
| 41 | - println("----------------------------------------") | ||
| 42 | - ,net_services). | 35 | + join("\n", map((NetService net_s) |
| 36 | + |-> | ||
| 37 | + if net_s is net_service(version, id, name, domains, _) then | ||
| 38 | + " id : 0x"+ to_hexa(id)+"\n"+ | ||
| 39 | + " version : " + to_String(version)+"\n"+ | ||
| 40 | + " name : "+ name +"\n"+ | ||
| 41 | + " domains : "+"\n"+ | ||
| 42 | + join("\n",map((String domain) |-> " : "+domain, domains))+"\n"+ | ||
| 43 | + "----------------------------------------\n" | ||
| 44 | + ,net_services) | ||
| 45 | + ) | ||
| 46 | +. | ||
| 43 | 47 | ||
| 44 | /** Try to find the service_id in services_list. If the service is found in that list | 48 | /** Try to find the service_id in services_list. If the service is found in that list |
| 45 | * the corresponding NetService object is return | 49 | * the corresponding NetService object is return |
| @@ -47,14 +51,14 @@ define One | @@ -47,14 +51,14 @@ define One | ||
| 47 | define Maybe(NetService) | 51 | define Maybe(NetService) |
| 48 | find_service | 52 | find_service |
| 49 | ( | 53 | ( |
| 50 | - List(NetService) services_list, | ||
| 51 | - Word32 service_id, | ||
| 52 | - Word32 service_version, | ||
| 53 | - String domain | 54 | + List(NetService) services_list, //List of all available NetService |
| 55 | + Word32 service_id, //requested service ID | ||
| 56 | + Word32 service_version, //requested service Version | ||
| 57 | + String domain //requested domain for above resquested service ID/version | ||
| 54 | )= | 58 | )= |
| 55 | if services_list is | 59 | if services_list is |
| 56 | { | 60 | { |
| 57 | - [] then failure, | 61 | + [] then failure, |
| 58 | [h . t] then | 62 | [h . t] then |
| 59 | if h.id = service_id & h.version >=+ service_version then | 63 | if h.id = service_id & h.version >=+ service_version then |
| 60 | if domain = "" then | 64 | if domain = "" then |
| @@ -65,7 +69,8 @@ define Maybe(NetService) | @@ -65,7 +69,8 @@ define Maybe(NetService) | ||
| 65 | find_service(t, service_id, service_version, domain) | 69 | find_service(t, service_id, service_version, domain) |
| 66 | else | 70 | else |
| 67 | find_service(t, service_id, service_version, domain) | 71 | find_service(t, service_id, service_version, domain) |
| 68 | - }. | 72 | + } |
| 73 | +. | ||
| 69 | 74 | ||
| 70 | /** Check if the muscle message msg has the correct fields for requesting a net_services | 75 | /** Check if the muscle message msg has the correct fields for requesting a net_services |
| 71 | * if we found "service" and "version" fields on the message, we try to find if the service | 76 | * if we found "service" and "version" fields on the message, we try to find if the service |
| @@ -111,7 +116,8 @@ define Maybe(NetService) | @@ -111,7 +116,8 @@ define Maybe(NetService) | ||
| 111 | success(domain) then find_service(net_services, service_id, service_version, domain) | 116 | success(domain) then find_service(net_services, service_id, service_version, domain) |
| 112 | } | 117 | } |
| 113 | } | 118 | } |
| 114 | - }. | 119 | + } |
| 120 | +. | ||
| 115 | 121 | ||
| 116 | define String | 122 | define String |
| 117 | get_time_stamp | 123 | get_time_stamp |
| @@ -127,23 +133,26 @@ define String | @@ -127,23 +133,26 @@ define String | ||
| 127 | define One | 133 | define One |
| 128 | service_negociation | 134 | service_negociation |
| 129 | ( | 135 | ( |
| 130 | - MessageQueue queue, | ||
| 131 | - Message msg, | ||
| 132 | - List(NetService) net_services, | ||
| 133 | - String peer | 136 | + MessageQueue queue, |
| 137 | + Message msg, | ||
| 138 | + List(NetService) net_services, | ||
| 139 | + String peer, | ||
| 140 | + (LogLevel, String) -> One logger | ||
| 134 | )= | 141 | )= |
| 135 | - //println("Service NEGOCIATION [" + to_hexa(*msg.what) + "] received"); | 142 | + logger(logTrace, "Service NEGOCIATION [" + to_hexa(*msg.what) + "] received"); |
| 136 | if * msg.what = _CXM_REQUEST_FOR_SERVICE then | 143 | if * msg.what = _CXM_REQUEST_FOR_SERVICE then |
| 137 | if has_service(queue, msg, net_services) is | 144 | if has_service(queue, msg, net_services) is |
| 138 | { | 145 | { |
| 139 | failure then | 146 | failure then |
| 147 | + logger(logError, "Unknown service"); | ||
| 140 | send_ACK_error(queue, _CXM_REQUEST_FOR_SERVICE, _CXM_UNKNOW_SERVICE, "Unknown service") | 148 | send_ACK_error(queue, _CXM_REQUEST_FOR_SERVICE, _CXM_UNKNOW_SERVICE, "Unknown service") |
| 149 | + | ||
| 141 | success(net_service) then | 150 | success(net_service) then |
| 142 | with result = message(0), | 151 | with result = message(0), |
| 143 | timestamp = get_time_stamp, | 152 | timestamp = get_time_stamp, |
| 144 | forget(add_string(result, "TIMESTAMP", timestamp)); | 153 | forget(add_string(result, "TIMESTAMP", timestamp)); |
| 145 | send_ACK_ok(queue, _CXM_REQUEST_FOR_SERVICE, result); | 154 | send_ACK_ok(queue, _CXM_REQUEST_FOR_SERVICE, result); |
| 146 | - net_service.handler(queue, peer, timestamp) | 155 | + net_service.handler(queue, peer, timestamp, logger) |
| 147 | } | 156 | } |
| 148 | else | 157 | else |
| 149 | send_ACK_error(queue, *msg.what, _CXM_UNKNOW_CMD, "Unknown command [" + (*msg.what) + "]") | 158 | send_ACK_error(queue, *msg.what, _CXM_UNKNOW_CMD, "Unknown command [" + (*msg.what) + "]") |
| @@ -155,59 +164,64 @@ define One | @@ -155,59 +164,64 @@ define One | ||
| 155 | public define One | 164 | public define One |
| 156 | message_receiver | 165 | message_receiver |
| 157 | ( | 166 | ( |
| 158 | - MessageQueue queue, | ||
| 159 | - List(NetService) net_services, | ||
| 160 | - String peer | 167 | + MessageQueue queue, |
| 168 | + List(NetService) net_services, | ||
| 169 | + String peer, | ||
| 170 | + (LogLevel, String) -> One logger | ||
| 161 | ) = | 171 | ) = |
| 162 | if queue.quit_requested(unique) then | 172 | if queue.quit_requested(unique) then |
| 163 | unique | 173 | unique |
| 164 | else | 174 | else |
| 165 | - //println("PRE SERVICE message_receiver "+"["+virtual_machine_id + "]"); | 175 | + logger(logTrace,"PRE SERVICE message_receiver ["+virtual_machine_id + "]"); |
| 166 | if queue.get_next_received_Message(1) is | 176 | if queue.get_next_received_Message(1) is |
| 167 | { | 177 | { |
| 168 | timeout then //println("PRE timeout"); | 178 | timeout then //println("PRE timeout"); |
| 169 | - message_receiver(queue, net_services, peer), | ||
| 170 | - closed then //println("PRE closed"); | 179 | + message_receiver(queue, net_services, peer, logger), |
| 180 | + closed then | ||
| 181 | + logger(logTrace,"PRE SERVICE message_receiver ["+virtual_machine_id + "] closed"); | ||
| 171 | unique, | 182 | unique, |
| 172 | msg(msg) then unique; //println("PRE negociation"); | 183 | msg(msg) then unique; //println("PRE negociation"); |
| 173 | - service_negociation(queue, msg, net_services, peer); | ||
| 174 | - message_receiver(queue, net_services, peer) | 184 | + service_negociation(queue, msg, net_services, peer, logger); |
| 185 | + message_receiver(queue, net_services, peer, logger) | ||
| 175 | }. | 186 | }. |
| 176 | 187 | ||
| 177 | define Server -> (RWStream) -> One | 188 | define Server -> (RWStream) -> One |
| 178 | net_services_handler | 189 | net_services_handler |
| 179 | ( | 190 | ( |
| 180 | - List(NetService) net_services, | 191 | + List(NetService) net_services, |
| 192 | + (LogLevel, String) -> One logger | ||
| 181 | ) = | 193 | ) = |
| 182 | (Server server) |-> (RWStream conn) |-> | 194 | (Server server) |-> (RWStream conn) |-> |
| 183 | if remote_IP_address_and_port(conn) is (num_peer,_) then | 195 | if remote_IP_address_and_port(conn) is (num_peer,_) then |
| 184 | //convert IP address of the client to string | 196 | //convert IP address of the client to string |
| 185 | with peer = ip_addr_to_string(num_peer), | 197 | with peer = ip_addr_to_string(num_peer), |
| 186 | - //println("NET SERVICES Accepting connection with "+peer); | 198 | + logger(logInfo,"NET SERVICES Accepting connection with "+peer); |
| 187 | 199 | ||
| 188 | //now managing the list of SERVICES | 200 | //now managing the list of SERVICES |
| 189 | with queue = create_MessageQueue("CXM Net Services", tcp(conn)), | 201 | with queue = create_MessageQueue("CXM Net Services", tcp(conn)), |
| 190 | - message_transceiver(/*conn,*/ queue); | ||
| 191 | - message_receiver(queue, net_services, peer). | 202 | + message_transceiver(queue); |
| 203 | + message_receiver(queue, net_services, peer, logger). | ||
| 192 | 204 | ||
| 193 | 205 | ||
| 194 | public define Maybe(Server) | 206 | public define Maybe(Server) |
| 195 | start_net_services | 207 | start_net_services |
| 196 | ( | 208 | ( |
| 197 | - List(NetService) net_services, | ||
| 198 | - Word32 network_port, | 209 | + List(NetService) net_services, |
| 210 | + Word32 network_port, | ||
| 211 | + (LogLevel, String) -> One logger | ||
| 199 | )= | 212 | )= |
| 200 | if start_server(0, | 213 | if start_server(0, |
| 201 | network_port, | 214 | network_port, |
| 202 | - net_services_handler(net_services), | 215 | + net_services_handler(net_services, logger), |
| 203 | (One u) |-> unique) is | 216 | (One u) |-> unique) is |
| 204 | { | 217 | { |
| 205 | - cannot_create_the_socket then println("Cannot create the listening socket."); failure, | ||
| 206 | - cannot_bind_to_port then println("Cannot bind to port " + network_port ); failure, | ||
| 207 | - cannot_listen_on_port then println("Cannot listen on port " + network_port); failure, | 218 | + cannot_create_the_socket then logger(logError, "Cannot create the listening socket."); failure, |
| 219 | + cannot_bind_to_port then logger(logError, "Cannot bind to port " + network_port); failure, | ||
| 220 | + cannot_listen_on_port then logger(logError, "Cannot listen on port " + network_port); failure, | ||
| 208 | ok(server) then | 221 | ok(server) then |
| 209 | - println("Net services started on port " + network_port); | ||
| 210 | - println("------ Available services ------"); | ||
| 211 | - print_services(net_services); | 222 | + logger(logInfo, "Net services started on port " + network_port); |
| 223 | + logger(logInfo, "------ Available services ------"); | ||
| 224 | + logger(logInfo, dump_services(net_services)); | ||
| 212 | success(server) | 225 | success(server) |
| 213 | - }. | 226 | + } |
| 227 | +. |
net_services_protocols/ftp_client.anubis
| @@ -145,18 +145,19 @@ public define Maybe(One) | @@ -145,18 +145,19 @@ public define Maybe(One) | ||
| 145 | String remote_file, | 145 | String remote_file, |
| 146 | String local_file, | 146 | String local_file, |
| 147 | Bool ftp, | 147 | Bool ftp, |
| 148 | + (LogLevel, String) -> One logger | ||
| 148 | ) = | 149 | ) = |
| 149 | - if mb_get_ip(server) is | 150 | + if mb_get_ip(server, logger) is |
| 150 | { | 151 | { |
| 151 | - failure then println("server "+server+" DNS error");failure, | 152 | + failure then logger(logError, "server "+server+" DNS error");failure, |
| 152 | success(ip_adr) then | 153 | success(ip_adr) then |
| 153 | if connect( ip_adr, ip_port) is | 154 | if connect( ip_adr, ip_port) is |
| 154 | { | 155 | { |
| 155 | - error(_) then println("can't connect to ftp server"); failure, | 156 | + error(_) then logger(logError, "can't connect to ftp server"); failure, |
| 156 | ok(conn) then | 157 | ok(conn) then |
| 157 | with queue = create_MessageQueue("ftp_get_file", tcp(conn)), | 158 | with queue = create_MessageQueue("ftp_get_file", tcp(conn)), |
| 158 | message_transceiver(/*conn,*/ queue); | 159 | message_transceiver(/*conn,*/ queue); |
| 159 | - println("request for ftp service"); | 160 | + logger(logInfo, "request for ftp service"); |
| 160 | if request_for_service(queue) then | 161 | if request_for_service(queue) then |
| 161 | with result = get_file(queue, remote_file, local_file, ftp), | 162 | with result = get_file(queue, remote_file, local_file, ftp), |
| 162 | queue.quit(unique);result | 163 | queue.quit(unique);result |
| @@ -177,6 +178,7 @@ public define Maybe(One) | @@ -177,6 +178,7 @@ public define Maybe(One) | ||
| 177 | Word32 ip_port, | 178 | Word32 ip_port, |
| 178 | String remote_file, | 179 | String remote_file, |
| 179 | String local_file, | 180 | String local_file, |
| 181 | + (LogLevel, String) -> One logger | ||
| 180 | ) = | 182 | ) = |
| 181 | - ftp_get_file(server, ip_port, remote_file, local_file, false). | 183 | + ftp_get_file(server, ip_port, remote_file, local_file, false, logger). |
| 182 | 184 |