diff options
author | Emmanuel Vasilakis <mrzammler@mm.st> | 2023-04-21 12:24:43 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-21 12:24:43 +0300 |
commit | 0d2c327ae58af5de35c9cb35a20cce9f59e92b9c (patch) | |
tree | 3f186f7a01ab574d0e2ba3ac46b85ea57aef56a8 /aclk/schema-wrappers | |
parent | 8d953cf206cdaac35aaa493cfcf419955db811da (diff) |
Add a checkpoint message to alerts stream (#14847)
* pull aclk schemas
* resolve capas
* handle checkpoints and removed from health
* build with disable-cloud
* codacy 1
* misc changes
* one more char in hash
* free buffer
* change topic
* misc fixes
* skip removed alert variables
* change hash functions
* use create and destroy for compatibility with older openssl
Diffstat (limited to 'aclk/schema-wrappers')
-rw-r--r-- | aclk/schema-wrappers/alarm_stream.cc | 80 | ||||
-rw-r--r-- | aclk/schema-wrappers/alarm_stream.h | 47 | ||||
-rw-r--r-- | aclk/schema-wrappers/proto_2_json.cc | 8 |
3 files changed, 53 insertions, 82 deletions
diff --git a/aclk/schema-wrappers/alarm_stream.cc b/aclk/schema-wrappers/alarm_stream.cc index f643933002..af0b891ca4 100644 --- a/aclk/schema-wrappers/alarm_stream.cc +++ b/aclk/schema-wrappers/alarm_stream.cc @@ -21,57 +21,24 @@ struct start_alarm_streaming parse_start_alarm_streaming(const char *data, size_ return ret; ret.node_id = strdupz(msg.node_id().c_str()); - ret.batch_id = msg.batch_id(); - ret.start_seq_id = msg.start_sequnce_id(); + ret.resets = msg.resets(); return ret; } -char *parse_send_alarm_log_health(const char *data, size_t len) +struct send_alarm_checkpoint parse_send_alarm_checkpoint(const char *data, size_t len) { - SendAlarmLogHealth msg; - if (!msg.ParseFromArray(data, len)) - return NULL; - return strdupz(msg.node_id().c_str()); -} - -char *generate_alarm_log_health(size_t *len, struct alarm_log_health *data) -{ - AlarmLogHealth msg; - LogEntries *entries; - - msg.set_claim_id(data->claim_id); - msg.set_node_id(data->node_id); - msg.set_enabled(data->enabled); - - switch (data->status) { - case alarm_log_status_aclk::ALARM_LOG_STATUS_IDLE: - msg.set_status(alarms::v1::ALARM_LOG_STATUS_IDLE); - break; - case alarm_log_status_aclk::ALARM_LOG_STATUS_RUNNING: - msg.set_status(alarms::v1::ALARM_LOG_STATUS_RUNNING); - break; - case alarm_log_status_aclk::ALARM_LOG_STATUS_UNSPECIFIED: - msg.set_status(alarms::v1::ALARM_LOG_STATUS_UNSPECIFIED); - break; - default: - error("Unknown status of AlarmLogHealth LogEntry"); - return NULL; - } - - entries = msg.mutable_log_entries(); - entries->set_first_sequence_id(data->log_entries.first_seq_id); - entries->set_last_sequence_id(data->log_entries.last_seq_id); + struct send_alarm_checkpoint ret; + memset(&ret, 0, sizeof(ret)); - set_google_timestamp_from_timeval(data->log_entries.first_when, entries->mutable_first_when()); - set_google_timestamp_from_timeval(data->log_entries.last_when, entries->mutable_last_when()); + SendAlarmCheckpoint msg; + if (!msg.ParseFromArray(data, len)) + return ret; - *len = PROTO_COMPAT_MSG_SIZE(msg); - char *bin = (char*)mallocz(*len); - if (!msg.SerializeToArray(bin, *len)) - return NULL; + ret.node_id = strdupz(msg.node_id().c_str()); + ret.claim_id = strdupz(msg.claim_id().c_str()); - return bin; + return ret; } static alarms::v1::AlarmStatus aclk_alarm_status_to_proto(enum aclk_alarm_status status) @@ -131,8 +98,6 @@ static void fill_alarm_log_entry(struct alarm_log_entry *data, AlarmLogEntry *pr if (data->family) proto->set_family(data->family); - proto->set_batch_id(data->batch_id); - proto->set_sequence_id(data->sequence_id); proto->set_when(data->when); proto->set_config_hash(data->config_hash); @@ -187,6 +152,24 @@ char *generate_alarm_log_entry(size_t *len, struct alarm_log_entry *data) return bin; } +char *generate_alarm_checkpoint(size_t *len, struct alarm_checkpoint *data) +{ + AlarmCheckpoint msg; + + msg.set_claim_id(data->claim_id); + msg.set_node_id(data->node_id); + msg.set_checksum(data->checksum); + + *len = PROTO_COMPAT_MSG_SIZE(msg); + char *bin = (char*)mallocz(*len); + if (!msg.SerializeToArray(bin, *len)) { + freez(bin); + return NULL; + } + + return bin; +} + struct send_alarm_snapshot *parse_send_alarm_snapshot(const char *data, size_t len) { SendAlarmSnapshot msg; @@ -198,8 +181,8 @@ struct send_alarm_snapshot *parse_send_alarm_snapshot(const char *data, size_t l ret->claim_id = strdupz(msg.claim_id().c_str()); if (msg.node_id().c_str()) ret->node_id = strdupz(msg.node_id().c_str()); - ret->snapshot_id = msg.snapshot_id(); - ret->sequence_id = msg.sequence_id(); + if (msg.snapshot_uuid().c_str()) + ret->snapshot_uuid = strdupz(msg.snapshot_uuid().c_str()); return ret; } @@ -208,6 +191,7 @@ void destroy_send_alarm_snapshot(struct send_alarm_snapshot *ptr) { freez(ptr->claim_id); freez(ptr->node_id); + freez(ptr->snapshot_uuid); freez(ptr); } @@ -218,7 +202,7 @@ alarm_snapshot_proto_ptr_t generate_alarm_snapshot_proto(struct alarm_snapshot * msg->set_node_id(data->node_id); msg->set_claim_id(data->claim_id); - msg->set_snapshot_id(data->snapshot_id); + msg->set_snapshot_uuid(data->snapshot_uuid); msg->set_chunks(data->chunks); msg->set_chunk(data->chunk); diff --git a/aclk/schema-wrappers/alarm_stream.h b/aclk/schema-wrappers/alarm_stream.h index 63911da3fa..83e7c1bce3 100644 --- a/aclk/schema-wrappers/alarm_stream.h +++ b/aclk/schema-wrappers/alarm_stream.h @@ -11,38 +11,12 @@ extern "C" { #endif -enum alarm_log_status_aclk { - ALARM_LOG_STATUS_UNSPECIFIED = 0, - ALARM_LOG_STATUS_RUNNING = 1, - ALARM_LOG_STATUS_IDLE = 2 -}; - -struct alarm_log_entries { - int64_t first_seq_id; - struct timeval first_when; - - int64_t last_seq_id; - struct timeval last_when; -}; - -struct alarm_log_health { - char *claim_id; - char *node_id; - int enabled; - enum alarm_log_status_aclk status; - struct alarm_log_entries log_entries; -}; - struct start_alarm_streaming { char *node_id; - uint64_t batch_id; - uint64_t start_seq_id; + bool resets; }; struct start_alarm_streaming parse_start_alarm_streaming(const char *data, size_t len); -char *parse_send_alarm_log_health(const char *data, size_t len); - -char *generate_alarm_log_health(size_t *len, struct alarm_log_health *data); enum aclk_alarm_status { ALARM_STATUS_NULL = 0, @@ -101,17 +75,27 @@ struct alarm_log_entry { char *chart_context; }; +struct send_alarm_checkpoint { + char *node_id; + char *claim_id; +}; + +struct alarm_checkpoint { + char *node_id; + char *claim_id; + char *checksum; +}; + struct send_alarm_snapshot { char *node_id; char *claim_id; - uint64_t snapshot_id; - uint64_t sequence_id; + char *snapshot_uuid; }; struct alarm_snapshot { char *node_id; char *claim_id; - uint64_t snapshot_id; + char *snapshot_uuid; uint32_t chunks; uint32_t chunk; }; @@ -125,6 +109,9 @@ char *generate_alarm_log_entry(size_t *len, struct alarm_log_entry *data); struct send_alarm_snapshot *parse_send_alarm_snapshot(const char *data, size_t len); void destroy_send_alarm_snapshot(struct send_alarm_snapshot *ptr); +struct send_alarm_checkpoint parse_send_alarm_checkpoint(const char *data, size_t len); +char *generate_alarm_checkpoint(size_t *len, struct alarm_checkpoint *data); + alarm_snapshot_proto_ptr_t generate_alarm_snapshot_proto(struct alarm_snapshot *data); void add_alarm_log_entry2snapshot(alarm_snapshot_proto_ptr_t snapshot, struct alarm_log_entry *data); char *generate_alarm_snapshot_bin(size_t *len, alarm_snapshot_proto_ptr_t snapshot); diff --git a/aclk/schema-wrappers/proto_2_json.cc b/aclk/schema-wrappers/proto_2_json.cc index 8853b2e083..4294f7efe5 100644 --- a/aclk/schema-wrappers/proto_2_json.cc +++ b/aclk/schema-wrappers/proto_2_json.cc @@ -29,8 +29,8 @@ static google::protobuf::Message *msg_name_to_protomsg(const char *msgname) return new nodeinstance::create::v1::CreateNodeInstance; if (!strcmp(msgname, "UpdateNodeInfo")) return new nodeinstance::info::v1::UpdateNodeInfo; - if (!strcmp(msgname, "AlarmLogHealth")) - return new alarms::v1::AlarmLogHealth; + if (!strcmp(msgname, "AlarmCheckpoint")) + return new alarms::v1::AlarmCheckpoint; if (!strcmp(msgname, "ProvideAlarmConfiguration")) return new alarms::v1::ProvideAlarmConfiguration; if (!strcmp(msgname, "AlarmSnapshot")) @@ -51,8 +51,8 @@ static google::protobuf::Message *msg_name_to_protomsg(const char *msgname) return new agent::v1::SendNodeInstances; if (!strcmp(msgname, "StartAlarmStreaming")) return new alarms::v1::StartAlarmStreaming; - if (!strcmp(msgname, "SendAlarmLogHealth")) - return new alarms::v1::SendAlarmLogHealth; + if (!strcmp(msgname, "SendAlarmCheckpoint")) + return new alarms::v1::SendAlarmCheckpoint; if (!strcmp(msgname, "SendAlarmConfiguration")) return new alarms::v1::SendAlarmConfiguration; if (!strcmp(msgname, "SendAlarmSnapshot")) |