Commit 7beead86 authored by Ramon Nou's avatar Ramon Nou
Browse files

Expose mutation phase and placement generations

parent 54553916
Loading
Loading
Loading
Loading
Loading
+3 −0
Changes for include/client/user_functions.hpp: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -167,6 +167,9 @@ struct MalleabilityStatus {
    uint64_t bytes_transferred{0};
    bool running{false};
    bool failed{false};
    uint8_t phase{0};
    uint64_t old_placement_generation{0};
    uint64_t new_placement_generation{0};
    std::string hosts_file;
};

+4 −0
Changes for include/common/rpc/rpc_types_thallium.hpp: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -83,6 +83,9 @@ struct rpc_mutate_detailed_status_out_t {
    uint64_t bytes_transferred{0};
    bool running{false};
    bool failed{false};
    uint8_t phase{0};
    uint64_t old_placement_generation{0};
    uint64_t new_placement_generation{0};
    std::string hosts_file;

    template <class Archive>
@@ -90,6 +93,7 @@ struct rpc_mutate_detailed_status_out_t {
    serialize(Archive& ar) {
        ar(err, old_nodes, new_nodes, jobs_total, jobs_completed,
           jobs_succeeded, jobs_failed, bytes_transferred, running, failed,
           phase, old_placement_generation, new_placement_generation,
           hosts_file);
    }
};
+3 −0
Changes for src/client/malleability.cpp: 3 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -155,6 +155,9 @@ mutate_status_detailed() {
    status.bytes_transferred = wire.bytes_transferred;
    status.running = wire.running;
    status.failed = wire.failed;
    status.phase = wire.phase;
    status.old_placement_generation = wire.old_placement_generation;
    status.new_placement_generation = wire.new_placement_generation;
    status.hosts_file = wire.hosts_file;
    return {result.first, std::move(status)};
}
+7 −0
Changes for src/client/rpc/forward_malleability.cpp: 7 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -327,6 +327,13 @@ forward_mutate_detailed_status() {
                aggregate.bytes_transferred += out.bytes_transferred;
                aggregate.running = aggregate.running || out.running;
                aggregate.failed = aggregate.failed || out.failed;
                if(aggregate.phase != out.phase ||
                   aggregate.old_placement_generation !=
                           out.old_placement_generation ||
                   aggregate.new_placement_generation !=
                           out.new_placement_generation) {
                    aggregate.failed = true;
                }
            }
        } catch(const std::exception& e) {
            LOG(ERROR, "Detailed mutate status failed on host {}: {}", target,
+5 −0
Changes for src/daemon/handler/srv_malleability.cpp: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -160,6 +160,11 @@ rpc_srv_mutate_detailed_status(const tl::request& req,
        out.bytes_transferred = GKFS_DATA->redist_bytes_transferred();
        out.running = GKFS_DATA->redist_running();
        out.failed = GKFS_DATA->redist_failed();
        out.phase = static_cast<uint8_t>(GKFS_DATA->mutation_state());
        out.old_placement_generation =
                GKFS_DATA->mutate_old_placement_generation();
        out.new_placement_generation =
                GKFS_DATA->mutate_new_placement_generation();
        out.hosts_file = GKFS_DATA->mutate_hosts_file();
    } catch(const std::exception& e) {
        GKFS_DATA->spdlogger()->error(