void test_noop_decision_on_failure(void **state) { (void)state; size_t DEFAULT_UPLOAD_VOLUME_THRESHOLD = 8 * 1024; size_t DEFAULT_UPLOAD_COUNT_THRESHOLD = 64; kaa_error_t error_code = ext_log_upload_strategy_change_strategy(strategy, KAA_LOG_UPLOAD_VOLUME_STRATEGY); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_set_threshold_volume(strategy, DEFAULT_UPLOAD_VOLUME_THRESHOLD); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_set_threshold_count(strategy, DEFAULT_UPLOAD_COUNT_THRESHOLD); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_on_failure(NULL, NO_APPENDERS_CONFIGURED); ASSERT_NOT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_on_failure(strategy, NO_APPENDERS_CONFIGURED); ASSERT_EQUAL(error_code, KAA_ERR_NONE); test_log_storage_context_t log_storage_context; log_storage_context.total_size = DEFAULT_UPLOAD_VOLUME_THRESHOLD; log_storage_context.record_count = DEFAULT_UPLOAD_COUNT_THRESHOLD; ext_log_upload_decision_t upload_decision = ext_log_upload_strategy_decide(strategy, &log_storage_context); ASSERT_EQUAL(upload_decision, NOOP); }
void test_upload_decision_by_count(void **state) { (void)state; size_t DEFAULT_UPLOAD_COUNT_THRESHOLD = 64; kaa_error_t error_code = ext_log_upload_strategy_change_strategy(strategy, KAA_LOG_UPLOAD_BY_RECORD_COUNT); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_set_threshold_count(strategy, DEFAULT_UPLOAD_COUNT_THRESHOLD); ASSERT_EQUAL(error_code, KAA_ERR_NONE); test_log_storage_context_t log_storage_context; log_storage_context.total_size = 0; log_storage_context.record_count = DEFAULT_UPLOAD_COUNT_THRESHOLD - 1; ext_log_upload_decision_t upload_decision = ext_log_upload_strategy_decide(strategy, &log_storage_context); ASSERT_EQUAL(upload_decision, NOOP); log_storage_context.total_size = 0; log_storage_context.record_count = DEFAULT_UPLOAD_COUNT_THRESHOLD; upload_decision = ext_log_upload_strategy_decide(strategy, &log_storage_context); ASSERT_EQUAL(upload_decision, UPLOAD); log_storage_context.total_size = 0; log_storage_context.record_count = DEFAULT_UPLOAD_COUNT_THRESHOLD + 1; upload_decision = ext_log_upload_strategy_decide(strategy, &log_storage_context); ASSERT_EQUAL(upload_decision, UPLOAD); }
int main(/*int argc, char *argv[]*/) { printf("Cassandra data analytics demo started\n"); if (wiringPiSetup() == -1) { printf("Failed to initialize Pi wiring\n"); exit(1); } kaa_client_t *kaa_client = NULL; void *log_storage_context = NULL; void *log_upload_strategy_context = NULL; /** * Initialize Kaa client. */ kaa_error_t error_code = kaa_client_create(&kaa_client, NULL); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed create Kaa client"); /** * Configure Kaa data collection module. */ error_code = ext_unlimited_log_storage_create(&log_storage_context, kaa_client_get_context(kaa_client)->logger); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to create unlimited log storage"); error_code = ext_log_upload_strategy_create(kaa_client_get_context(kaa_client), &log_upload_strategy_context, KAA_LOG_UPLOAD_VOLUME_STRATEGY); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to create log upload strategy"); error_code = ext_log_upload_strategy_set_threshold_count(log_upload_strategy_context, KAA_DEMO_UPLOAD_COUNT_THRESHOLD); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to set threshold log record count"); kaa_log_bucket_constraints_t bucket_sizes = { .max_bucket_size = MAX_LOG_BUCKET_SIZE, .max_bucket_log_count = MAX_LOG_COUNT, }; error_code = kaa_logging_init(kaa_client_get_context(kaa_client)->log_collector , log_storage_context , log_upload_strategy_context , &bucket_sizes); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to init Kaa log collector"); /** * Start Kaa client main loop. */ error_code = kaa_client_start(kaa_client, &kaa_demo_add_log_record, (void *)kaa_client, KAA_DEMO_LOG_GENERATION_FREQUENCY); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to start Kaa main loop"); /** * Destroy Kaa client. */ kaa_client_destroy(kaa_client); printf("Cassandra data analytics demo stopped\n"); return error_code; }
/* * Initializes Kaa log collector. */ kaa_error_t kaa_log_collector_init(kaa_client_t *kaa_client) { KAA_RETURN_IF_NIL(kaa_client, KAA_ERR_BADPARAM) kaa_error_t error_code = ext_unlimited_log_storage_create(&kaa_client->log_storage_context , kaa_client->kaa_context->logger); if (error_code) { KAA_LOG_ERROR(kaa_client->kaa_context->logger, error_code, "Failed to create log storage"); return error_code; } error_code = ext_log_upload_strategy_create(kaa_client->kaa_context ,&kaa_client->log_upload_strategy_context , KAA_LOG_UPLOAD_VOLUME_STRATEGY); if (error_code) { KAA_LOG_ERROR(kaa_client->kaa_context->logger, error_code, "Failed to create log upload strategy"); return error_code; } // Due to unknown problems with networking via ESP8266, some server responses are lost. // It leads to log delivery timeouts. error_code = ext_log_upload_strategy_set_upload_timeout(kaa_client->log_upload_strategy_context , KAA_DEMO_TWO_DAYS_UPLOAD_TIMEOUT); if (error_code) { KAA_LOG_ERROR(kaa_client->kaa_context->logger, error_code, "Failed to create log upload strategy by volume set upload timeout to %d", KAA_DEMO_TWO_DAYS_UPLOAD_TIMEOUT); return error_code; } error_code = ext_log_upload_strategy_set_threshold_count(kaa_client->log_upload_strategy_context , KAA_DEMO_UPLOAD_COUNT_THRESHOLD); if (error_code) { KAA_LOG_ERROR(kaa_client->kaa_context->logger, error_code, "Failed to create log upload strategy by volume set threshold count to %d", KAA_DEMO_UPLOAD_COUNT_THRESHOLD); return error_code; } error_code = kaa_logging_init(kaa_client->kaa_context->log_collector , kaa_client->log_storage_context , kaa_client->log_upload_strategy_context); if (error_code) { KAA_LOG_ERROR(kaa_client->kaa_context->logger, error_code,"Failed to logging init"); return error_code; } KAA_LOG_INFO(kaa_client->kaa_context->logger, KAA_ERR_NONE, "Log collector init complete"); return error_code; }
/* * Initializes Kaa log collector. */ kaa_error_t kaa_log_collector_init(kaa_client_t *kaa_client) { KAA_RETURN_IF_NIL(kaa_client, KAA_ERR_BADPARAM); kaa_error_t error_code = ext_unlimited_log_storage_create( &kaa_client->log_storage_context, kaa_client->kaa_context->logger); if (error_code) { KAA_LOG_ERROR(kaa_client->kaa_context->logger, error_code, "Failed to create log storage"); return error_code; } error_code = ext_log_upload_strategy_create(kaa_client->kaa_context ,&kaa_client->log_upload_strategy_context , KAA_LOG_UPLOAD_VOLUME_STRATEGY); if (error_code) { KAA_LOG_ERROR(kaa_client->kaa_context->logger, error_code, "Failed to create log upload strategy"); return error_code; } error_code = ext_log_upload_strategy_set_threshold_count(kaa_client->log_upload_strategy_context , KAA_DEMO_UPLOAD_COUNT_THRESHOLD); if (error_code) { KAA_LOG_ERROR(kaa_client->kaa_context->logger, error_code, "Failed to create log upload strategy by volume set threshold count to %d", KAA_DEMO_UPLOAD_COUNT_THRESHOLD); return error_code; } error_code = kaa_logging_init(kaa_client->kaa_context->log_collector , kaa_client->log_storage_context , kaa_client->log_upload_strategy_context); if (error_code) { KAA_LOG_ERROR(kaa_client->kaa_context->logger, error_code, "Failed to logging init"); return error_code; } KAA_LOG_INFO(kaa_client->kaa_context->logger, KAA_ERR_NONE, "Log collector init complete"); return error_code; }
int main(/*int argc, char *argv[]*/) { printf("Data collection demo started\n"); kaa_log_bucket_constraints_t bucket_sizes = { .max_bucket_size = KAA_DEMO_BUCKET_SIZE, .max_bucket_log_count = KAA_DEMO_LOGS_IN_BUCKET, }; /** * Initialize Kaa client. */ kaa_error_t error_code = kaa_client_create(&kaa_client, NULL); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed create Kaa client"); error_code = ext_limited_log_storage_create(&log_storage_context, kaa_client_get_context(kaa_client)->logger, KAA_DEMO_LOG_STORAGE_SIZE, KAA_DEMO_LOGS_TO_KEEP); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to create limited log storage"); error_code = ext_log_upload_strategy_create(kaa_client_get_context(kaa_client), &log_upload_strategy_context, KAA_LOG_UPLOAD_VOLUME_STRATEGY); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to create log upload strategy"); error_code = ext_log_upload_strategy_set_threshold_count(log_upload_strategy_context, KAA_DEMO_UPLOAD_COUNT_THRESHOLD); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to set threshold log record count"); error_code = kaa_logging_init(kaa_client_get_context(kaa_client)->log_collector , log_storage_context , log_upload_strategy_context , &bucket_sizes); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to init Kaa log collector"); error_code = kaa_logging_set_listeners(kaa_client_get_context(kaa_client)->log_collector, &log_listener); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to add log listeners"); /** * Start Kaa client main loop. */ error_code = kaa_client_start(kaa_client, &kaa_demo_add_log_record, (void *)kaa_client, KAA_DEMO_LOG_GENERATION_FREQUENCY); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to start Kaa main loop"); /** * Destroy Kaa client. */ kaa_client_destroy(kaa_client); printf("Data collection demo stopped\n"); return error_code; }
int main(/*int argc, char *argv[]*/) { printf("Power plant demo started\n"); srand(time(NULL)); /** * Initialize Kaa client. */ kaa_error_t error_code = kaa_client_create(&kaa_client, NULL); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed create Kaa client"); error_code = ext_unlimited_log_storage_create(&log_storage_context, kaa_client_get_context(kaa_client)->logger); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to create unlimited log storage"); error_code = ext_log_upload_strategy_create(kaa_client_get_context(kaa_client), &log_upload_strategy_context, KAA_LOG_UPLOAD_VOLUME_STRATEGY); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to create log upload strategy"); error_code = ext_log_upload_strategy_set_threshold_count(log_upload_strategy_context, KAA_DEMO_UPLOAD_COUNT_THRESHOLD); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to set threshold log record count"); error_code = kaa_logging_init(kaa_client_get_context(kaa_client)->log_collector , log_storage_context , log_upload_strategy_context); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to init Kaa log collector"); /** * Start Kaa client main loop. */ error_code = kaa_client_start(kaa_client, &kaa_demo_add_log_record, (void *)kaa_client, KAA_DEMO_LOG_GENERATION_FREQUENCY); KAA_DEMO_RETURN_IF_ERROR(error_code, "Failed to start Kaa main loop"); /** * Destroy Kaa client. */ kaa_client_destroy(kaa_client); printf("Power plant demo stopped\n"); return error_code; }
void test_upload_decision_on_failure(void) { KAA_TRACE_IN(logger); kaa_error_t error_code = KAA_ERR_NONE; size_t DEFAULT_RETRY_PERIOD = 2; size_t DEFAULT_UPLOAD_VOLUME_THRESHOLD = 8 * 1024; size_t DEFAULT_UPLOAD_COUNT_THRESHOLD = 64; error_code = ext_log_upload_strategy_change_strategy(strategy, KAA_LOG_UPLOAD_VOLUME_STRATEGY); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_set_threshold_volume(strategy, DEFAULT_UPLOAD_VOLUME_THRESHOLD); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_set_threshold_count(strategy, DEFAULT_UPLOAD_COUNT_THRESHOLD); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_set_upload_retry_period(strategy, DEFAULT_RETRY_PERIOD); ASSERT_EQUAL(error_code, KAA_ERR_NONE); error_code = ext_log_upload_strategy_on_failure(strategy, NO_APPENDERS_CONFIGURED); ASSERT_EQUAL(error_code, KAA_ERR_NONE); test_log_storage_context_t log_storage_context; ext_log_upload_decision_t upload_decision = NOOP; log_storage_context.total_size = DEFAULT_UPLOAD_VOLUME_THRESHOLD; log_storage_context.record_count = DEFAULT_UPLOAD_COUNT_THRESHOLD; upload_decision = ext_log_upload_strategy_decide(strategy, &log_storage_context); ASSERT_EQUAL(upload_decision, NOOP); sleep(DEFAULT_RETRY_PERIOD); log_storage_context.total_size = DEFAULT_UPLOAD_VOLUME_THRESHOLD; log_storage_context.record_count = DEFAULT_UPLOAD_COUNT_THRESHOLD; upload_decision = ext_log_upload_strategy_decide(strategy, &log_storage_context); ASSERT_EQUAL(upload_decision, UPLOAD); KAA_TRACE_OUT(logger); }