bmsd/mysql.c

changeset 43
dcb9ff8846fa
parent 0
033898178630
child 76
804d45bdaa86
equal deleted inserted replaced
42:c97dae13c12b 43:dcb9ff8846fa
79 fprintf(stdout, "MySQL: connected\n"); 79 fprintf(stdout, "MySQL: connected\n");
80 80
81 /* 81 /*
82 * Restore nodes from the database 82 * Restore nodes from the database
83 */ 83 */
84 if (mysql_query(con, "SELECT * FROM nodes")) { 84 if (mysql_query(con, "SELECT * FROM mon_nodes")) {
85 syslog(LOG_NOTICE, "MySQL: SELECT * FROM nodes error %u (%s))", mysql_errno(con), mysql_error(con)); 85 syslog(LOG_NOTICE, "MySQL: SELECT * FROM mon_nodes error %u (%s))", mysql_errno(con), mysql_error(con));
86 } else { 86 } else {
87 res_set = mysql_store_result(con); 87 res_set = mysql_store_result(con);
88 if (res_set == NULL) { 88 if (res_set == NULL) {
89 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con)); 89 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con));
90 } else { 90 } else {
128 } 128 }
129 mysql_free_result(res_set); 129 mysql_free_result(res_set);
130 } 130 }
131 } 131 }
132 132
133 if (mysql_query(con, "SELECT * FROM fermenters")) { 133 if (mysql_query(con, "SELECT * FROM mon_fermenters")) {
134 syslog(LOG_NOTICE, "MySQL: SELECT * FROM fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); 134 syslog(LOG_NOTICE, "MySQL: SELECT * FROM mon_fermenters error %u (%s))", mysql_errno(con), mysql_error(con));
135 } else { 135 } else {
136 res_set = mysql_store_result(con); 136 res_set = mysql_store_result(con);
137 if (res_set == NULL) { 137 if (res_set == NULL) {
138 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con)); 138 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con));
139 } else { 139 } else {
333 mytime = localtime(&node->lastseen); 333 mytime = localtime(&node->lastseen);
334 snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d", 334 snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d",
335 mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); 335 mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec);
336 336
337 snprintf(query, 511, 337 snprintf(query, 511,
338 "INSERT INTO nodes SET uuid='%s', node='%s', online='%s', group_id='%s', " \ 338 "INSERT INTO mon_nodes SET uuid='%s', node='%s', online='%s', group_id='%s', " \
339 "hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', firstseen='%s', lastseen='%s', " \ 339 "hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', firstseen='%s', lastseen='%s', " \
340 "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \ 340 "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \
341 "net_address='%s', net_ifname='%s', net_rssi='%d'", 341 "net_address='%s', net_ifname='%s', net_rssi='%d'",
342 node->uuid, node->node, node->online ?"Y":"N", node->group_id, 342 node->uuid, node->node, node->online ?"Y":"N", node->group_id,
343 node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, first, last, 343 node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, first, last,
344 node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude, 344 node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude,
345 node->net_address, node->net_ifname, node->net_rssi); 345 node->net_address, node->net_ifname, node->net_rssi);
346 346
347 if (mysql_query(con, query)) { 347 if (mysql_query(con, query)) {
348 syslog(LOG_NOTICE, "MySQL: INSERT INTO nodes error %u (%s))", mysql_errno(con), mysql_error(con)); 348 syslog(LOG_NOTICE, "MySQL: INSERT INTO mon_nodes error %u (%s))", mysql_errno(con), mysql_error(con));
349 } else { 349 } else {
350 syslog(LOG_NOTICE, "MySQL: insert new node %s", node->node); 350 syslog(LOG_NOTICE, "MySQL: insert new node %s", node->node);
351 } 351 }
352 352
353 free(query); 353 free(query);
363 mytime = localtime(&node->lastseen); 363 mytime = localtime(&node->lastseen);
364 snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d", 364 snprintf(last, 20, "%04d-%02d-%02d %02d:%02d:%02d",
365 mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec); 365 mytime->tm_year + 1900, mytime->tm_mon + 1, mytime->tm_mday, mytime->tm_hour, mytime->tm_min, mytime->tm_sec);
366 366
367 snprintf(query, 511, 367 snprintf(query, 511,
368 "UPDATE nodes SET online='%s', hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', lastseen='%s', " \ 368 "UPDATE mon_nodes SET online='%s', hardwaremake='%s', hardwaremodel='%s', os='%s', os_version='%s', firmware='%s', lastseen='%s', " \
369 "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \ 369 "temperature='%.3f', humidity='%.3f', barometer='%.3f', gps_latitude='%.8f', gps_longitude='%.8f', gps_altitude='%.8f', " \
370 "net_address='%s', net_ifname='%s', net_rssi='%d' WHERE uuid='%s'", 370 "net_address='%s', net_ifname='%s', net_rssi='%d' WHERE uuid='%s'",
371 node->online ?"Y":"N", node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, last, 371 node->online ?"Y":"N", node->hardwaremake, node->hardwaremodel, node->os, node->os_version, node->firmware, last,
372 node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude, 372 node->temperature, node->humidity, node->barometer, node->gps_latitude, node->gps_longitude, node->gps_altitude,
373 node->net_address, node->net_ifname, node->net_rssi, node->uuid); 373 node->net_address, node->net_ifname, node->net_rssi, node->uuid);
374 374
375 if (mysql_query(con, query)) { 375 if (mysql_query(con, query)) {
376 syslog(LOG_NOTICE, "MySQL: UPDATE nodes error %u (%s))", mysql_errno(con), mysql_error(con)); 376 syslog(LOG_NOTICE, "MySQL: UPDATE mon_nodes error %u (%s))", mysql_errno(con), mysql_error(con));
377 } 377 }
378 378
379 free(query); 379 free(query);
380 } 380 }
381 381
383 383
384 void node_mysql_death(char *node) 384 void node_mysql_death(char *node)
385 { 385 {
386 char *query = malloc(512); 386 char *query = malloc(512);
387 387
388 snprintf(query, 511, "UPDATE nodes SET online='N' WHERE node='%s'", node); 388 snprintf(query, 511, "UPDATE mon_nodes SET online='N' WHERE node='%s'", node);
389 // printf("%s\n", query); 389 // printf("%s\n", query);
390 390
391 if (mysql_query(con, query)) { 391 if (mysql_query(con, query)) {
392 syslog(LOG_NOTICE, "MySQL: UPDATE nodes error %u (%s))", mysql_errno(con), mysql_error(con)); 392 syslog(LOG_NOTICE, "MySQL: UPDATE mon_nodes error %u (%s))", mysql_errno(con), mysql_error(con));
393 } 393 }
394 394
395 free(query); 395 free(query);
396 } 396 }
397 397
400 void fermenter_mysql_insert(sys_fermenter_list *fermenter) 400 void fermenter_mysql_insert(sys_fermenter_list *fermenter)
401 { 401 {
402 char *query = malloc(2560); 402 char *query = malloc(2560);
403 403
404 snprintf(query, 2559, 404 snprintf(query, 2559,
405 "INSERT INTO fermenters SET uuid='%s', alias='%s', node='%s', online='%s', " \ 405 "INSERT INTO mon_fermenters SET uuid='%s', alias='%s', node='%s', online='%s', " \
406 "beercode='%s', beername='%s', " \ 406 "beercode='%s', beername='%s', " \
407 "air_address='%s', air_state='%s', air_temperature='%.3f', " \ 407 "air_address='%s', air_state='%s', air_temperature='%.3f', " \
408 "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ 408 "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \
409 "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \ 409 "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \
410 "heater_address='%s', heater_state='%d', heater_usage='%lu', " \ 410 "heater_address='%s', heater_state='%d', heater_usage='%lu', " \
434 fermenter->profile_steps ? fermenter->profile_steps : "", fermenter->stage); 434 fermenter->profile_steps ? fermenter->profile_steps : "", fermenter->stage);
435 435
436 // printf("%s\n", query); 436 // printf("%s\n", query);
437 437
438 if (mysql_query(con, query)) { 438 if (mysql_query(con, query)) {
439 syslog(LOG_NOTICE, "MySQL: INSERT INTO fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); 439 syslog(LOG_NOTICE, "MySQL: INSERT INTO mon_fermenters error %u (%s))", mysql_errno(con), mysql_error(con));
440 } else { 440 } else {
441 syslog(LOG_NOTICE, "MySQL: insert new fermenter %s/%s", fermenter->node, fermenter->alias); 441 syslog(LOG_NOTICE, "MySQL: insert new fermenter %s/%s", fermenter->node, fermenter->alias);
442 } 442 }
443 443
444 free(query); 444 free(query);
448 void fermenter_mysql_update(sys_fermenter_list *fermenter) 448 void fermenter_mysql_update(sys_fermenter_list *fermenter)
449 { 449 {
450 char *query = malloc(2560); 450 char *query = malloc(2560);
451 451
452 snprintf(query, 2559, 452 snprintf(query, 2559,
453 "UPDATE fermenters SET online='%s', beercode='%s', beername='%s', " \ 453 "UPDATE mon_fermenters SET online='%s', beercode='%s', beername='%s', " \
454 "air_address='%s', air_state='%s', air_temperature='%.3f', " \ 454 "air_address='%s', air_state='%s', air_temperature='%.3f', " \
455 "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \ 455 "beer_address='%s', beer_state='%s', beer_temperature='%.3f', " \
456 "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \ 456 "chiller_address='%s', chiller_state='%s', chiller_temperature='%.3f', " \
457 "heater_address='%s', heater_state='%d', heater_usage='%lu', " \ 457 "heater_address='%s', heater_state='%d', heater_usage='%lu', " \
458 "cooler_address='%s', cooler_state='%d', cooler_usage='%lu', " \ 458 "cooler_address='%s', cooler_state='%d', cooler_usage='%lu', " \
480 fermenter->profile_steps ? fermenter->profile_steps : "", fermenter->stage, fermenter->uuid); 480 fermenter->profile_steps ? fermenter->profile_steps : "", fermenter->stage, fermenter->uuid);
481 481
482 // printf("%s\n", query); 482 // printf("%s\n", query);
483 483
484 if (mysql_query(con, query)) { 484 if (mysql_query(con, query)) {
485 syslog(LOG_NOTICE, "MySQL: UPDATE fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); 485 syslog(LOG_NOTICE, "MySQL: UPDATE mon_fermenters error %u (%s))", mysql_errno(con), mysql_error(con));
486 } 486 }
487 487
488 free(query); 488 free(query);
489 } 489 }
490 490
493 void fermenter_mysql_death(char *node, char *alias) 493 void fermenter_mysql_death(char *node, char *alias)
494 { 494 {
495 char *query = malloc(512); 495 char *query = malloc(512);
496 496
497 if (alias) 497 if (alias)
498 snprintf(query, 511, "UPDATE fermenters SET online='N' WHERE node='%s' and alias='%s'", node, alias); 498 snprintf(query, 511, "UPDATE mon_fermenters SET online='N' WHERE node='%s' and alias='%s'", node, alias);
499 else 499 else
500 snprintf(query, 511, "UPDATE fermenters SET online='N' WHERE node='%s'", node); 500 snprintf(query, 511, "UPDATE mon_fermenters SET online='N' WHERE node='%s'", node);
501 501
502 if (mysql_query(con, query)) { 502 if (mysql_query(con, query)) {
503 syslog(LOG_NOTICE, "MySQL: UPDATE fermenters error %u (%s))", mysql_errno(con), mysql_error(con)); 503 syslog(LOG_NOTICE, "MySQL: UPDATE mon_fermenters error %u (%s))", mysql_errno(con), mysql_error(con));
504 } 504 }
505 505
506 free(query); 506 free(query);
507 } 507 }
508 508

mercurial