Skip to content

Commit

Permalink
compat: add cancel partition movement messages
Browse files Browse the repository at this point in the history
  • Loading branch information
andrwng committed Aug 5, 2022
1 parent 76eed69 commit c42597f
Show file tree
Hide file tree
Showing 4 changed files with 110 additions and 0 deletions.
24 changes: 24 additions & 0 deletions src/v/compat/cluster_compat.h
Original file line number Diff line number Diff line change
Expand Up @@ -234,4 +234,28 @@ GEN_COMPAT_CHECK(
{ json_write(result); },
{ json_read(result); })

GEN_COMPAT_CHECK(
cluster::cancel_partition_movements_reply,
{
json_write(general_error);
json_write(partition_results);
},
{
json_read(general_error);
json_read(partition_results);
});

GEN_COMPAT_CHECK(
cluster::cancel_node_partition_movements_request,
{
json_write(node_id);
json_write(direction);
},
{
json_read(node_id);
json_read(direction);
});

EMPTY_COMPAT_CHECK(cluster::cancel_all_partition_movements_request);

} // namespace compat
62 changes: 62 additions & 0 deletions src/v/compat/cluster_generator.h
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,30 @@ struct instance_generator<cluster::errc> {
static std::vector<cluster::errc> limits() { return {}; }
};

template<>
struct instance_generator<cluster::partition_move_direction> {
static cluster::partition_move_direction random() {
return random_generators::random_choice(
{cluster::partition_move_direction::to_node,
cluster::partition_move_direction::from_node,
cluster::partition_move_direction::all});
}

static std::vector<cluster::errc> limits() { return {}; }
};

template<>
struct instance_generator<cluster::move_cancellation_result> {
static cluster::move_cancellation_result random() {
return {
model::random_ntp(),
instance_generator<cluster::errc>::random(),
};
}

static std::vector<cluster::errc> limits() { return {}; }
};

template<>
struct instance_generator<cluster::topic_result> {
static cluster::topic_result random() {
Expand Down Expand Up @@ -469,4 +493,42 @@ struct instance_generator<cluster::finish_partition_update_reply> {
}
};

template<>
struct instance_generator<cluster::cancel_node_partition_movements_request> {
static cluster::cancel_node_partition_movements_request random() {
return {
.node_id = tests::random_named_int<model::node_id>(),
.direction
= instance_generator<cluster::partition_move_direction>::random(),
};
}

static std::vector<cluster::cancel_node_partition_movements_request>
limits() {
return {};
}
};

template<>
struct instance_generator<cluster::cancel_partition_movements_reply> {
static cluster::cancel_partition_movements_reply random() {
return {
.general_error = instance_generator<cluster::errc>::random(),
.partition_results = tests::random_vector([] {
return instance_generator<
cluster::move_cancellation_result>::random();
}),
};
}

static std::vector<cluster::cancel_partition_movements_reply> limits() {
return {{
.general_error = instance_generator<cluster::errc>::random(),
.partition_results = {},
}};
}
};

EMPTY_COMPAT_GENERATOR(cluster::cancel_all_partition_movements_request);

} // namespace compat
21 changes: 21 additions & 0 deletions src/v/compat/cluster_json.h
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,27 @@ inline void rjson_serialize(
w.EndObject();
}

inline void
read_value(json::Value const& rd, cluster::partition_move_direction& e) {
auto direction = rd.GetInt();
switch (direction) {
case 0:
e = cluster::partition_move_direction::to_node;
break;
case 1:
e = cluster::partition_move_direction::from_node;
break;
case 2:
e = cluster::partition_move_direction::all;
break;
default:
vassert(
false,
"Unsupported enum for cluster::partition_move_direction, {}",
direction);
}
}

inline void
read_value(json::Value const& rd, cluster::feature_update_action::action_t& e) {
auto action = rd.GetInt();
Expand Down
3 changes: 3 additions & 0 deletions src/v/compat/run.cc
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,9 @@ using compat_checks = type_list<
cluster::create_non_replicable_topics_reply,
cluster::finish_partition_update_request,
cluster::finish_partition_update_reply,
cluster::cancel_all_partition_movements_request,
cluster::cancel_node_partition_movements_request,
cluster::cancel_partition_movements_reply,
cluster::abort_tx_request,
cluster::abort_tx_reply,
cluster::begin_group_tx_request,
Expand Down

0 comments on commit c42597f

Please sign in to comment.