37 "NameRemoveTransaction, request type must be CHG_REMOVE");
190 }
catch (
const std::exception& ex) {
256 .arg(
getNcr()->getFqdn());
301 }
catch (
const std::exception& ex) {
384 .arg(
getNcr()->getFqdn());
460 }
catch (
const std::exception& ex) {
529 .arg(
getNcr()->getFqdn());
void defineState(unsigned int value, const std::string &label, StateHandler handler, const StatePausing &state_pausing=STATE_PAUSE_NEVER)
Adds an state value and associated label to the set of states.
virtual D2UpdateMessagePtr prepNewRequest(DdnsDomainPtr domain)
Creates a new DNS update request based on the given domain.
The Name class encapsulates DNS names.
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_IO_ERROR
virtual void sendUpdate(const std::string &comment="")
Send the update request to the current server.
void processRemoveFailedHandler()
State handler for PROCESS_TRANS_FAILED_ST.
static const RRType & DHCID()
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_REJECTED
void buildRemoveFwdAddressRequest()
Builds a DNS request to remove a forward DNS address for a FQDN.
static const int PROCESS_TRANS_OK_ST
State which processes successful transaction conclusion.
NameRemoveTransaction(asiolink::IOServicePtr &io_service, dhcp_ddns::NameChangeRequestPtr &ncr, DdnsDomainPtr &forward_domain, DdnsDomainPtr &reverse_domain, D2CfgMgrPtr &cfg_mgr)
Event sent when replace attempt to fails with address not in use.
virtual void verifyEvents()
Validates the contents of the set of events.
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_BUILD_FAILURE
static const RRType & PTR()
#define LOG_INFO(LOGGER, MESSAGE)
Macro to conveniently test info output and log it.
static std::string reverseIpAddress(const std::string &address)
Generate a reverse order string for the given IP address.
boost::shared_ptr< DdnsDomain > DdnsDomainPtr
Defines a pointer for DdnsDomain instances.
static const Rcode & NOERROR()
A constant object for the NOERROR Rcode (see Rcode::NOERROR_CODE).
boost::shared_ptr< D2UpdateMessage > D2UpdateMessagePtr
Pointer to the DNS Update Message.
void selectingRevServerHandler()
State handler for SELECTING_REV_SERVER_ST.
void setNcrStatus(const dhcp_ddns::NameChangeStatus &status)
Sets the status of the transaction's NameChangeRequest.
static const RRClass & IN()
static const int START_EVT
Event issued to start the model execution.
const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_IO_ERROR
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_BAD_DNSCLIENT_STATUS
#define LOG_ERROR(LOGGER, MESSAGE)
Macro to conveniently test error output and log it.
boost::shared_ptr< IOService > IOServicePtr
Defines a smart pointer to an IOService instance.
static const int SELECTING_FWD_SERVER_ST
State in which forward DNS server selection is done.
std::string transactionOutcomeString() const
Returns a string version of transaction outcome.
DNS Response Codes (RCODEs) class.
boost::shared_ptr< NameChangeRequest > NameChangeRequestPtr
Defines a pointer to a NameChangeRequest.
void endModel()
Conducts a normal transition to the end of the model.
static const int SERVER_IO_ERROR_EVT
Issued when an update fails due to an IO error.
const dhcp_ddns::NameChangeRequestPtr & getNcr() const
Fetches the NameChangeRequest for this transaction.
static const int IO_COMPLETED_EVT
Issued when a DNS update packet exchange has completed.
Other, unclassified error.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
void setForwardChangeCompleted(const bool value)
Sets the forward change completion flag to the given value.
virtual ~NameRemoveTransaction()
Destructor.
void addDhcidRdata(dns::RRsetPtr &rrset)
Adds an RData for the lease client's DHCID to the given RRset.
std::string getRequestId() const
Fetches the request id that identifies this transaction.
isc::log::Logger d2_to_dns_logger("d2-to-dns")
static const int REMOVING_FWD_ADDRS_ST
State that attempts to remove specific forward address record.
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_BUILD_FAILURE
static const int SERVER_SELECTED_EVT
Issued when a server has been selected.
void retryTransition(const int fail_to_state)
Determines the state and next event based on update attempts.
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_RESP_CORRUPT
static const RRType & A()
bool doOnEntry()
Checks if on entry flag is true.
static const int REMOVING_FWD_RRS_ST
State that attempts to remove any other forward RRs for the DHCID.
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_RRS_BAD_DNSCLIENT_STATUS
const D2UpdateMessagePtr & getDnsUpdateRequest() const
Fetches the current DNS update request packet.
const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_BUILD_FAILURE
boost::shared_ptr< D2CfgMgr > D2CfgMgrPtr
Defines a shared pointer to D2CfgMgr.
DNSClient::Status getDnsUpdateStatus() const
Fetches the most recent DNS update status.
virtual void defineStates()
Adds states defined by NameChangeTransaction to the state set.
This file defines the class NameRemoveTransaction.
The RRTTL class encapsulates TTLs used in DNS resource records.
void setReverseChangeCompleted(const bool value)
Sets the reverse change completion flag to the given value.
Thrown if the NameRemoveTransaction encounters a general error.
void selectingFwdServerHandler()
State handler for SELECTING_FWD_SERVER_ST.
const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_BAD_DNSCLIENT_STATUS
virtual void defineEvents()
Adds events defined by NameRemoveTransaction to the event set.
Response received and is ok.
static const RRClass & ANY()
static const int SELECTING_REV_SERVER_ST
State in which reverse DNS server selection is done.
std::string getContextStr() const
Convenience method which returns a string rendition of the current state and next event...
DdnsDomainPtr & getForwardDomain()
Fetches the forward DdnsDomain.
const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_RESP_CORRUPT
Defines the logger used by the top-level component of kea-dhcp-ddns.
void addPtrRdata(dns::RRsetPtr &rrset)
Adds an RData for the lease FQDN to the given RRset.
virtual void verifyStates()
Validates the contents of the set of states.
const D2UpdateMessagePtr & getDnsUpdateResponse() const
Fetches the most recent DNS update response packet.
static const int NO_MORE_SERVERS_EVT
Issued when there are no more servers from which to select.
void processRemoveOkHandler()
State handler for PROCESS_TRANS_OK_ST.
void buildRemoveFwdRRsRequest()
Builds a DNS request to remove all forward DNS RRs for a FQDN.
void transition(unsigned int state, unsigned int event)
Sets up the model to transition into given state with a given event.
The RRset class is a concrete derived class of BasicRRset which contains a pointer to an additional R...
Response received but invalid.
const isc::log::MessageID DHCP_DDNS_REMOVE_SUCCEEDED
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_RESP_CORRUPT
void buildRemoveRevPtrsRequest()
Builds a DNS request to remove a reverse DNS entry for a FQDN.
static const int PROCESS_TRANS_FAILED_ST
State which processes an unsuccessful transaction conclusion.
const DnsServerInfoPtr & getCurrentServer() const
Fetches the currently selected server.
const isc::log::MessageID DHCP_DDNS_REMOVE_FAILED
static const int SELECT_SERVER_EVT
Issued when a server needs to be selected.
void clearDnsUpdateRequest()
Destroys the current update request packet and resets update attempts count.
static const int READY_ST
State from which a transaction is started.
void setDnsUpdateRequest(D2UpdateMessagePtr &request)
Sets the update request packet to the given packet.
static const RRClass & NONE()
void removingFwdRRsHandler()
State handler for REMOVING_FWD_RRS_ST.
const isc::log::MessageID DHCP_DDNS_REVERSE_REMOVE_REJECTED
virtual void defineEvents()
Adds events defined by NameChangeTransaction to the event set.
Embodies the "life-cycle" required to carry out a DDNS update.
const StatePtr getStateInternal(unsigned int value)
Fetches the state referred to by value.
static const int UPDATE_OK_EVT
Issued when the attempted update successfully completed.
const dns::RRType & getAddressRRType() const
Returns the DHCP data type for the lease address.
boost::shared_ptr< AbstractRRset > RRsetPtr
A pointer-like type pointing to an RRset object.
DdnsDomainPtr & getReverseDomain()
Fetches the reverse DdnsDomain.
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_REJECTED
unsigned int getNextEvent() const
Fetches the model's next event.
static const RRType & ANY()
static const int UPDATE_FAILED_EVT
Issued when the attempted update fails to complete.
uint16_t getCode() const
Returns the Rcode code value.
virtual void verifyEvents()
Validates the contents of the set of events.
void addLeaseAddressRdata(dns::RRsetPtr &rrset)
Adds an RData for the lease address to the given RRset.
static const RRType & AAAA()
static const Rcode & NXRRSET()
A constant object for the NXRRSET Rcode (see Rcode::NXRRSET_CODE).
void removingFwdAddrsHandler()
State handler for REMOVING_FWD_ADDRS_ST.
void initServerSelection(const DdnsDomainPtr &domain)
Initializes server selection from the given DDNS domain.
void readyHandler()
State handler for READY_ST.
bool selectNextServer()
Selects the next server in the current server list.
virtual void defineStates()
Adds states defined by NameRemoveTransaction to the state set.
static const int REMOVING_REV_PTRS_ST
State that attempts to remove reverse PTR records.
virtual void verifyStates()
Validates the contents of the set of states.
const isc::log::MessageID DHCP_DDNS_FORWARD_REMOVE_ADDRS_IO_ERROR
void removingRevPtrsHandler()
State handler for REMOVING_REV_PTRS_ST.