1 // Copyright (C) 2018-2021 Internet Systems Consortium, Inc. ("ISC") 2 // 3 // This Source Code Form is subject to the terms of the Mozilla Public 4 // License, v. 2.0. If a copy of the MPL was not distributed with this 5 // file, You can obtain one at http://mozilla.org/MPL/2.0/. 6 7 #include <config.h> 8 9 #include <ha_service_states.h> 10 11 namespace isc { 12 namespace ha { 13 stateToString(int state)14std::string stateToString(int state) { 15 switch (state) { 16 case HA_BACKUP_ST: 17 return ("backup"); 18 case HA_COMMUNICATION_RECOVERY_ST: 19 return ("communication-recovery"); 20 case HA_HOT_STANDBY_ST: 21 return ("hot-standby"); 22 case HA_LOAD_BALANCING_ST: 23 return ("load-balancing"); 24 case HA_IN_MAINTENANCE_ST: 25 return ("in-maintenance"); 26 case HA_PARTNER_DOWN_ST: 27 return ("partner-down"); 28 case HA_PARTNER_IN_MAINTENANCE_ST: 29 return ("partner-in-maintenance"); 30 case HA_PASSIVE_BACKUP_ST: 31 return ("passive-backup"); 32 case HA_READY_ST: 33 return ("ready"); 34 case HA_SYNCING_ST: 35 return ("syncing"); 36 case HA_TERMINATED_ST: 37 return ("terminated"); 38 case HA_WAITING_ST: 39 return ("waiting"); 40 case HA_UNAVAILABLE_ST: 41 return ("unavailable"); 42 default: 43 ; 44 } 45 46 isc_throw(BadValue, "unknown state identifier " << state); 47 } 48 stringToState(const std::string & state_name)49int stringToState(const std::string& state_name) { 50 if (state_name == "backup") { 51 return (HA_BACKUP_ST); 52 53 } else if (state_name == "communication-recovery") { 54 return (HA_COMMUNICATION_RECOVERY_ST); 55 56 } else if (state_name == "hot-standby") { 57 return (HA_HOT_STANDBY_ST); 58 59 } else if (state_name == "load-balancing") { 60 return (HA_LOAD_BALANCING_ST); 61 62 } else if (state_name == "in-maintenance") { 63 return (HA_IN_MAINTENANCE_ST); 64 65 } else if (state_name == "partner-down") { 66 return (HA_PARTNER_DOWN_ST); 67 68 } else if (state_name == "partner-in-maintenance") { 69 return (HA_PARTNER_IN_MAINTENANCE_ST); 70 71 } else if (state_name == "passive-backup") { 72 return (HA_PASSIVE_BACKUP_ST); 73 74 } else if (state_name == "ready") { 75 return (HA_READY_ST); 76 77 } else if (state_name == "syncing") { 78 return (HA_SYNCING_ST); 79 80 } else if (state_name == "terminated") { 81 return (HA_TERMINATED_ST); 82 83 } else if (state_name == "waiting") { 84 return (HA_WAITING_ST); 85 86 } else if (state_name == "unavailable") { 87 return (HA_UNAVAILABLE_ST); 88 } 89 90 isc_throw(BadValue, "unknown state " << state_name); 91 } 92 93 } // end of namespace isc::ha 94 } // end of namespace isc 95