syntax = "proto3";

package cuddlyproto;

import "common.proto";

///Information sent by a namenode to identify itself to the primary namenode.
message NamenodeRegistrationProto {
    string rpcAddress = 1;    // host:port of the namenode RPC address
    string httpAddress = 2;   // host:port of the namenode http server
    enum NamenodeRoleProto {
        NAMENODE = 0;
        BACKUP = 1;
        CHECKPOINT = 2;
    }
    StorageInfoProto storageInfo = 3;  // Node information
    NamenodeRoleProto role = 4;        // Namenode role
}


///state - State the NN is in when returning response to the DN
///txid - Highest transaction ID this NN has seen
message NNHAStatusHeartbeatProto {
    enum State {
        ACTIVE = 0;
        STANDBY = 1;
        OBSERVER = 2;
    }
    State state = 1;
    string txid = 2;
}