Adds restore_host_state(cluster_t*, const char*, uint32_t admin_status) to worker.c: OR's admin bits into an existing worker's status on hit; on miss, creates a minimal XCE_WORKER_UNAVAIL placeholder via makeWorker (mirroring the lost_and_found sentinel host precedent), with a valid non-NULL hostattrs_t so the host's later real join routes through rejoin_worker (not init_worker) and preserves the restored admin status. Idempotent under retry (find first, create only if missing). Standalone -- not yet wired into load_snapshot (task 4). Requirements: 1.10, 1.11, 5.8
18 lines
745 B
C
18 lines
745 B
C
#if !defined(_WORKER_H_)
|
|
#define _WORKER_H_ 1
|
|
|
|
#include "config.h"
|
|
#include "mylock.h"
|
|
#include "netio.h"
|
|
#include "xce/types.h"
|
|
#include "zarray.h"
|
|
|
|
extern xce_hostconfig_t* find_matched_hostconfig(cluster_t*, const char*);
|
|
extern int init_worker(cluster_t*, endpoint_t*, const char*,
|
|
hostattrs_t*, xce_hostconfig_t*);
|
|
extern int rejoin_worker(cluster_t*, worker_t*, endpoint_t*,
|
|
hostattrs_t*, xce_hostconfig_t*);
|
|
extern int restore_worker(void*, xce_worker_t);
|
|
extern int restore_host_state(cluster_t*, const char*, uint32_t);
|
|
extern int worker_from_capnp(cluster_t*, const void*, size_t);
|
|
#endif
|