Commit 8552e1805babc6d6f6546d80a9456e35a07fda63

Authored by David RENÉ
1 parent 88fedcba

[+] add logLevel into logger

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