Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
Kea
Commits
ee0c1e99
Commit
ee0c1e99
authored
Jun 23, 2016
by
Tomek Mrugalski
🛰
Browse files
renamed classes and files, fixed issues, added comments
# Conflicts: # ChangeLog # src/lib/dhcpsrv/cfg_hosts.cc
parent
a47f78f4
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/lib/dhcpsrv/cql_lease_mgr.cc
View file @
ee0c1e99
...
...
@@ -187,9 +187,6 @@ static const char* update_lease4_params[] = {
static_cast
<
const
char
*>
(
"hostname"
),
static_cast
<
const
char
*>
(
"state"
),
static_cast
<
const
char
*>
(
"address"
),
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
static_cast
<
const
char
*>
(
"expire"
),
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
NULL
};
static
const
char
*
update_lease6_params
[]
=
{
static_cast
<
const
char
*>
(
"duid"
),
...
...
@@ -208,9 +205,6 @@ static const char* update_lease6_params[] = {
static_cast
<
const
char
*>
(
"hwaddr_source"
),
static_cast
<
const
char
*>
(
"state"
),
static_cast
<
const
char
*>
(
"address"
),
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
static_cast
<
const
char
*>
(
"expire"
),
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
NULL
};
CqlTaggedStatement
CqlLeaseMgr
::
tagged_statements_
[]
=
{
...
...
@@ -352,9 +346,6 @@ CqlTaggedStatement CqlLeaseMgr::tagged_statements_[] = {
"INSERT INTO lease4(address, hwaddr, client_id, "
"valid_lifetime, expire, subnet_id, fqdn_fwd, fqdn_rev, hostname, state) "
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) "
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
"IF NOT EXISTS"
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
},
// INSERT_LEASE6
...
...
@@ -364,9 +355,6 @@ CqlTaggedStatement CqlLeaseMgr::tagged_statements_[] = {
"expire, subnet_id, pref_lifetime, "
"lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname, hwaddr, hwtype, hwaddr_source, state) "
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) "
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
"IF NOT EXISTS"
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
},
// UPDATE_LEASE4
...
...
@@ -376,9 +364,6 @@ CqlTaggedStatement CqlLeaseMgr::tagged_statements_[] = {
"client_id = ?, valid_lifetime = ?, expire = ?, "
"subnet_id = ?, fqdn_fwd = ?, fqdn_rev = ?, hostname = ?, state = ? "
"WHERE address = ? "
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
"IF expire = ?"
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
},
// UPDATE_LEASE6
...
...
@@ -390,9 +375,6 @@ CqlTaggedStatement CqlLeaseMgr::tagged_statements_[] = {
"prefix_len = ?, fqdn_fwd = ?, fqdn_rev = ?, hostname = ?, "
"hwaddr = ?, hwtype = ?, hwaddr_source = ?, state = ? "
"WHERE address = ? "
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
"IF expire = ?"
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
},
// End of list sentinel
...
...
@@ -908,7 +890,7 @@ public:
// pref_lifetime: unsigned int
value
=
cass_row_get_column_by_name
(
row
,
columns_
[
5
].
column_
);
cass_value_get_int
32
(
value
,
reinterpret_cast
<
cass_int
32
_t
*>
(
&
pref_lifetime_
));
cass_value_get_int
64
(
value
,
reinterpret_cast
<
cass_int
64
_t
*>
(
&
pref_lifetime_
));
// lease_type: tinyint
value
=
cass_row_get_column_by_name
(
row
,
columns_
[
6
].
column_
);
...
...
@@ -988,9 +970,6 @@ public:
time_t
cltt
=
0
;
CqlLeaseExchange
::
convertFromDatabaseTime
(
expire_
,
valid_lifetime_
,
cltt
);
result
->
cltt_
=
cltt
;
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
result
->
old_cltt_
=
cltt
;
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
result
->
state_
=
state_
;
...
...
@@ -1023,111 +1002,6 @@ private:
uint32_t
hwaddr_source_
;
///< Source of the hardware address
};
#ifdef TERASTREAM_DB_LOGIC
class
CqlCustomLeaseExchange
:
public
virtual
SqlLeaseExchange
{
public:
CqlCustomLeaseExchange
()
{}
virtual
~
CqlCustomLeaseExchange
()
{}
virtual
void
executeInternal
(
LeaseExchangeData
&
exchange
,
bool
has_allocated_ip
,
bool
has_requested_ip
,
bool
has_reserved_ip
)
{
if
(
has_allocated_ip
)
{
}
if
(
has_requested_ip
)
{
}
if
(
has_reserved_ip
)
{
}
if
(
exchange
.
in_fake_
)
{
}
}
};
class
CqlLease4DiscoverNoReqNoResExchange
:
public
SqlLease4DiscoverNoReqNoResExchange
,
public
CqlCustomLeaseExchange
{
public:
CqlLease4DiscoverNoReqNoResExchange
()
:
CqlCustomLeaseExchange
()
{}
virtual
~
CqlLease4DiscoverNoReqNoResExchange
()
{}
virtual
void
execute
(
LeaseExchangeData
&
exchange
)
{
executeInternal
(
exchange
,
true
,
false
,
false
);
}
private:
};
/// @brief Supports exchanging IPv4 leases with SQL for discover.
class
CqlLease4DiscoverNoReqResExchange
:
public
SqlLease4DiscoverNoReqResExchange
,
public
CqlCustomLeaseExchange
{
public:
CqlLease4DiscoverNoReqResExchange
()
:
CqlCustomLeaseExchange
()
{}
virtual
~
CqlLease4DiscoverNoReqResExchange
()
{}
virtual
void
execute
(
LeaseExchangeData
&
exchange
)
{
executeInternal
(
exchange
,
true
,
false
,
true
);
}
private:
};
/// @brief Supports exchanging IPv4 leases with SQL for discover.
class
CqlLease4DiscoverReqNoResExchange
:
public
SqlLease4DiscoverReqNoResExchange
,
public
CqlCustomLeaseExchange
{
public:
CqlLease4DiscoverReqNoResExchange
()
:
CqlCustomLeaseExchange
()
{}
virtual
~
CqlLease4DiscoverReqNoResExchange
()
{}
virtual
void
execute
(
LeaseExchangeData
&
exchange
)
{
executeInternal
(
exchange
,
true
,
true
,
false
);
}
private:
};
/// @brief Supports exchanging IPv4 leases with SQL for discover.
class
CqlLease4DiscoverReqResExchange
:
public
SqlLease4DiscoverReqResExchange
,
public
CqlCustomLeaseExchange
{
public:
CqlLease4DiscoverReqResExchange
()
:
CqlCustomLeaseExchange
()
{}
virtual
~
CqlLease4DiscoverReqResExchange
()
{}
virtual
void
execute
(
LeaseExchangeData
&
exchange
)
{
executeInternal
(
exchange
,
true
,
true
,
true
);
}
private:
};
/// @brief Supports exchanging IPv4 leases with SQL for request.
class
CqlLease4RequestNoReqNoResExchange
:
public
SqlLease4RequestNoReqNoResExchange
,
public
CqlCustomLeaseExchange
{
public:
CqlLease4RequestNoReqNoResExchange
()
:
CqlCustomLeaseExchange
()
{}
virtual
~
CqlLease4RequestNoReqNoResExchange
()
{}
virtual
void
execute
(
LeaseExchangeData
&
exchange
)
{
executeInternal
(
exchange
,
true
,
false
,
false
);
}
private:
};
/// @brief Supports exchanging IPv4 leases with SQL for request.
class
CqlLease4RequestNoReqResExchange
:
public
SqlLease4RequestNoReqResExchange
,
public
CqlCustomLeaseExchange
{
public:
CqlLease4RequestNoReqResExchange
()
:
CqlCustomLeaseExchange
()
{}
virtual
~
CqlLease4RequestNoReqResExchange
()
{}
virtual
void
execute
(
LeaseExchangeData
&
exchange
)
{
executeInternal
(
exchange
,
false
,
false
,
true
);
}
private:
};
/// @brief Supports exchanging IPv4 leases with SQL for request.
class
CqlLease4RequestReqNoResExchange
:
public
SqlLease4RequestReqNoResExchange
,
public
CqlCustomLeaseExchange
{
public:
CqlLease4RequestReqNoResExchange
()
:
CqlCustomLeaseExchange
()
{}
virtual
~
CqlLease4RequestReqNoResExchange
()
{}
virtual
void
execute
(
LeaseExchangeData
&
exchange
)
{
executeInternal
(
exchange
,
false
,
true
,
false
);
}
private:
};
/// @brief Supports exchanging IPv4 leases with SQL for request.
class
CqlLease4RequestReqResExchange
:
public
SqlLease4RequestReqResExchange
,
public
CqlCustomLeaseExchange
{
public:
CqlLease4RequestReqResExchange
()
:
CqlCustomLeaseExchange
()
{}
virtual
~
CqlLease4RequestReqResExchange
()
{}
virtual
void
execute
(
LeaseExchangeData
&
exchange
)
{
executeInternal
(
exchange
,
false
,
true
,
true
);
}
private:
};
#endif // TERASTREAM_DB_LOGIC
CqlLeaseMgr
::
CqlLeaseMgr
(
const
DatabaseConnection
::
ParameterMap
&
parameters
)
:
LeaseMgr
(),
dbconn_
(
parameters
),
exchange4_
(
new
CqlLease4Exchange
()),
exchange6_
(
new
CqlLease6Exchange
())
{
...
...
@@ -1196,21 +1070,9 @@ CqlLeaseMgr::addLeaseCommon(StatementIndex stindex,
isc_throw
(
DbOperationError
,
error
);
}
const
CassResult
*
resultCollection
=
cass_future_get_result
(
future
);
int
row_count
=
cass_result_row_count
(
resultCollection
);
int
column_count
=
cass_result_column_count
(
resultCollection
);
cass_result_free
(
resultCollection
);
cass_future_free
(
future
);
cass_statement_free
(
statement
);
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
if
(
row_count
!=
1
)
{
return
(
false
);
}
else
if
(
column_count
!=
1
)
{
isc_throw
(
TransactionException
,
"add transaction failed"
);
}
#else
if
(
row_count
&&
column_count
)
{
}
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
return
(
true
);
}
...
...
@@ -1594,7 +1456,7 @@ template <typename LeasePtr>
void
CqlLeaseMgr
::
updateLeaseCommon
(
StatementIndex
stindex
,
CqlBindArray
&
bind_array
,
const
LeasePtr
&
lease
,
CqlLeaseExchange
&
exchange
)
{
const
LeasePtr
&
,
CqlLeaseExchange
&
exchange
)
{
LOG_DEBUG
(
dhcpsrv_logger
,
DHCPSRV_DBG_TRACE_DETAIL
,
DHCPSRV_CQL_ADD_ADDR4
).
arg
(
dbconn_
.
tagged_statements_
[
stindex
].
name_
);
...
...
@@ -1618,37 +1480,9 @@ CqlLeaseMgr::updateLeaseCommon(StatementIndex stindex,
}
const
CassResult
*
resultCollection
=
cass_future_get_result
(
future
);
int
row_count
=
cass_result_row_count
(
resultCollection
);
int
column_count
=
cass_result_column_count
(
resultCollection
);
cass_result_free
(
resultCollection
);
cass_future_free
(
future
);
cass_statement_free
(
statement
);
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
// Check success case first as it is the most likely outcome.
if
(
row_count
>
1
)
{
// Should not happen - primary key constraint should only have selected
// one row.
isc_throw
(
DbOperationError
,
"apparently updated more than one lease "
"that had the address "
<<
lease
->
addr_
.
toText
());
}
// If no rows affected, lease doesn't exist.
if
(
row_count
==
0
)
{
isc_throw
(
NoSuchLease
,
"unable to update lease for address "
<<
lease
->
addr_
.
toText
()
<<
" as it does not exist"
);
}
if
(
row_count
!=
1
)
{
isc_throw
(
DbOperationError
,
"apparently updated transaction failed for the lease "
"that had the address "
<<
lease
->
addr_
.
toText
());
}
else
if
(
column_count
!=
1
)
{
isc_throw
(
TransactionException
,
"update transaction failed"
);
}
#else
if
(
row_count
&&
column_count
&&
lease
)
{
}
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
}
...
...
@@ -1668,12 +1502,6 @@ CqlLeaseMgr::updateLease4(const Lease4Ptr& lease) {
uint32_t
addr4_data
=
static_cast
<
uint32_t
>
(
lease
->
addr_
);
bind_array
.
add
(
&
addr4_data
);
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
uint64_t
old_expire
;
CqlLeaseExchange
::
convertToDatabaseTime
(
lease
->
old_cltt_
,
lease
->
old_valid_lft_
,
old_expire
);
bind_array
.
add
(
&
old_expire
);
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
// Drop to common update code
updateLeaseCommon
(
stindex
,
bind_array
,
lease
,
*
exchange4_
);
}
...
...
@@ -1703,12 +1531,6 @@ CqlLeaseMgr::updateLease6(const Lease6Ptr& lease) {
addr6_buffer
[
addr6_length
]
=
'\0'
;
bind_array
.
add
(
addr6_buffer
);
#ifdef TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
uint64_t
old_expire
;
CqlLeaseExchange
::
convertToDatabaseTime
(
lease
->
old_cltt_
,
lease
->
old_valid_lft_
,
old_expire
);
bind_array
.
add
(
&
old_expire
);
#endif // TERASTREAM_LIGHTWEIGHT_TRANSACTIONS
// Drop to common update code
updateLeaseCommon
(
stindex
,
bind_array
,
lease
,
*
exchange6_
);
}
...
...
@@ -1861,55 +1683,5 @@ CqlLeaseMgr::rollback() {
LOG_DEBUG
(
dhcpsrv_logger
,
DHCPSRV_DBG_TRACE_DETAIL
,
DHCPSRV_CQL_ROLLBACK
);
}
#ifdef TERASTREAM_DB_LOGIC
void
CqlLeaseMgr
::
discoverLease4NoReqNoRes
(
LeaseExchangeData
&
data
)
{
CqlLease4DiscoverNoReqNoResExchange
exchange
;
exchange
.
execute
(
data
);
}
void
CqlLeaseMgr
::
discoverLease4NoReqRes
(
LeaseExchangeData
&
data
)
{
CqlLease4DiscoverNoReqResExchange
exchange
;
exchange
.
execute
(
data
);
}
void
CqlLeaseMgr
::
discoverLease4ReqNoRes
(
LeaseExchangeData
&
data
)
{
CqlLease4DiscoverReqNoResExchange
exchange
;
exchange
.
execute
(
data
);
}
void
CqlLeaseMgr
::
discoverLease4ReqRes
(
LeaseExchangeData
&
data
)
{
CqlLease4DiscoverReqResExchange
exchange
;
exchange
.
execute
(
data
);
}
void
CqlLeaseMgr
::
requestLease4NoReqNoRes
(
LeaseExchangeData
&
data
)
{
CqlLease4RequestNoReqNoResExchange
exchange
;
exchange
.
execute
(
data
);
}
void
CqlLeaseMgr
::
requestLease4NoReqRes
(
LeaseExchangeData
&
data
)
{
CqlLease4RequestNoReqResExchange
exchange
;
exchange
.
execute
(
data
);
}
void
CqlLeaseMgr
::
requestLease4ReqNoRes
(
LeaseExchangeData
&
data
)
{
CqlLease4RequestReqNoResExchange
exchange
;
exchange
.
execute
(
data
);
}
void
CqlLeaseMgr
::
requestLease4ReqRes
(
LeaseExchangeData
&
data
)
{
CqlLease4RequestReqResExchange
exchange
;
exchange
.
execute
(
data
);
}
#endif // TERASTREAM_DB_LOGIC
};
// end of isc::dhcp namespace
};
// end of isc namespace
src/lib/dhcpsrv/cql_lease_mgr.h
View file @
ee0c1e99
...
...
@@ -356,7 +356,7 @@ public:
///
/// @return Type of the backend.
virtual
std
::
string
getType
()
const
{
return
(
std
::
string
(
"c
assandra
"
));
return
(
std
::
string
(
"c
ql
"
));
}
/// @brief Returns name of the database.
...
...
@@ -419,30 +419,9 @@ public:
INSERT_LEASE6
,
// Add entry to lease6 table
UPDATE_LEASE4
,
// Update a Lease4 entry
UPDATE_LEASE6
,
// Update a Lease6 entry
#ifdef TERASTREAM_DB_LOGIC
DISCOVER_LEASE4_NOREQNORES
,
DISCOVER_LEASE4_NOREQRES
,
DISCOVER_LEASE4_REQNORES
,
DISCOVER_LEASE4_REQRES
,
REQUEST_LEASE4_NOREQNORES
,
REQUEST_LEASE4_NOREQRES
,
REQUEST_LEASE4_REQNORES
,
REQUEST_LEASE4_REQRES
,
#endif // TERASTREAM_DB_LOGIC
NUM_STATEMENTS
// Number of statements
};
#ifdef TERASTREAM_DB_LOGIC
virtual
void
discoverLease4NoReqNoRes
(
LeaseExchangeData
&
data
);
virtual
void
discoverLease4NoReqRes
(
LeaseExchangeData
&
data
);
virtual
void
discoverLease4ReqNoRes
(
LeaseExchangeData
&
data
);
virtual
void
discoverLease4ReqRes
(
LeaseExchangeData
&
data
);
virtual
void
requestLease4NoReqNoRes
(
LeaseExchangeData
&
data
);
virtual
void
requestLease4NoReqRes
(
LeaseExchangeData
&
data
);
virtual
void
requestLease4ReqNoRes
(
LeaseExchangeData
&
data
);
virtual
void
requestLease4ReqRes
(
LeaseExchangeData
&
data
);
#endif // TERASTREAM_DB_LOGIC
private:
/// @brief Add Lease Common Code
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment