...
Status
Current state: "WIP/Under DiscussionAccepted"
Discussion thread: N/A
JIRA: N/A
...
Github #278 introduces BookKeeper Http Endpoint module. However there are only two endpoints, which is “/heartbeat” and “/api/config/serverConfig”, defined in #278. In order to fully leverage the http modules, The goal is to add more endpoints to this modules.
Public Interfaces
N/A
Proposed Changes
1, Overview
Provide Http EndPoints for these components:
* Components:
* Root endpoint: List all the available endpoints
* Config: Do the configuration.
* Bookkeeper : API related to BookKeeper.
* Ledger: API related to ledgers
...
/api/v1/<component>/<action>
2. Root endpoint:
/api/v1 | ||||||
---|---|---|---|---|---|---|
GET | ||||||
Get all the available endpoints | ||||||
Response
|
3. Config:
/api/v1/config/valuesserver_config | ||||||||
---|---|---|---|---|---|---|---|---|
GET | ||||||||
Get value of all configured values overridden on local server config | ||||||||
Response
|
/api/v1/config/:configName/:configValueserver_config | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PUTPOST | ||||||||||||||||||||
Update server configuration | ||||||||||||||||||||
Parameters
ResponseBody
|
4. Bookkeeper:
/api/v1/bookkeeper/format_metadata/:force | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POST | ||||||||||||||
Format bookkeeper metadata | ||||||||||||||
Parameters
Response
|
| ||||||||||||||||||||||||||
/api/v1/bookkeeper/list_bookies/:type/:hostnames | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET | ||||||||||||||||||||||||||
Get all the available bookies. | ||||||||||||||||||||||||||
Parameters
Response Parameters
Response
| ||||||||||||||||||||||||||
/api/v1/bookkeeper/update_cookie/:idType | ||||||||||||||||||||||||||
POST | ||||||||||||||||||||||||||
Update bookie id in cookie. | ||||||||||||||||||||||||||
|
53. Ledger:
...
/api/v1/ledger/create/:ensemble_size/:write_quorum_size/:ack_quorum_size/:digest_type/:password
...
Parameters
...
ensemble size
...
write quorum size
...
ack quorum size
...
...
password | String | Yes | password |
Code | Description |
---|---|
200 | successful created, return ledger_id. |
403 | Don't have permission |
404 | No ledger found |
/api/v1/ledger/delete/:?ledger_id=<ledger_id>
Parameters
Name | Type | Required | Description |
---|---|---|---|
ledger_id | Long | Yes | ledger id of the ledger. |
Response
Code | Description |
---|---|
200 | successful operation |
403 | Don't have permission |
404 | No ledger foundError handling |
/api/v1/ledger/list/:?print_metadata=<metadata> | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET | ||||||||||||||||
List all the ledgers | ||||||||||||||||
Parameters
Response
|
/api/v1/ledger/metadata/:?ledger_id=<ledger_id> | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET | ||||||||||||||||
Get the metadata of a ledger | ||||||||||||||||
Parameters
Response
|
/api/v1/ledger/read/:ledger_id/:start?ledger_id=<ledger_id>&start_entry_id=<start_entry_id>&end_entry_id/:=<end_entry_id> | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET | ||||||||||||||||||||||||
Read a range of entries from ledger | ||||||||||||||||||||||||
Parameters
Response
|
4. Bookies
/api/v1/ledger/read/:ledger_id/:entry_data | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PUT | ||||||||||||||||||||||||||
bookie/list_bookies/?type=<type>&print_hostnames=<hostnames> | ||||||||||||||||||||||||||
GET | ||||||||||||||||||||||||||
Get all the available bookies.Write a entry to ledger | ||||||||||||||||||||||||||
Parameters
Response
|
6. Bookies
/api/v1/bookie/formatlist_bookie/:delete_cookieinfo | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PUT | ||||||||||||||
Format a bookie. | ||||||||||||||
Get | ||||||||||||||
Get bookies disk usage info of this cluster. | ||||||||||||||
Parameters
Response
|
/api/v1/bookie/listlast_bookielog_infomark | ||||||
---|---|---|---|---|---|---|
GetGET | ||||||
Get current bookie disk usagethe last log marker. | ||||||
Response
|
/api/v1/bookie/list_disk_filesfile/:?file_type=<type> | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET | ||||||||||||||
Get all the files on disk of current bookie. | ||||||||||||||
Parameters
Response
|
/api/v1/bookie/read_entry_log/:print_msg/:ledger_id/:entry_id/:start_position/:end_positon | ||||||
---|---|---|---|---|---|---|
GET | ||||||
Read entry log content from entry log files. | ||||||
expand_storage | ||||||
PUT | ||||||
Expand storage for a bookie. Parameters | ||||||
Name | Type | Required | Description | |||
print_msg | Boolean | No | whether print message body. | |||
ledger_id | Long | No | only read content of this ledger_id. | |||
entry_id | Long | No | entry_id to read.. | |||
start_position | Long | No | start position to read | end_positon | Long | No | end position of read
Response
|
5. Recover
/api/v1/autorecovery/bookie | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
/ | ||||||||||
GET | ||||||||||
PUT | ||||||||||
Ledger data recovery for failed bookie | ||||||||||
Parameters
| ||||||||||
| ||||||||||
| Journal directory | |||||||||
| ||||||||||
| Yes | Journal file name/id. | ||||||||
| ||||||||||
| whether print message body. | |||||||||
Body
Response
| ||||||||||
|
/api/v1/bookie/print_last_log_markautorecovery/list_under_replicated_ledger/?missingreplica=<bookie_address>&excludingmissingreplica=<bookie_address> | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET | |||||||||||||||
Get the last log marker.all under replicated ledgers. | |||||||||||||||
Parameters
Response
| |||||||||||||||
/api/v1/bookie/expend_storage | |||||||||||||||
POST | |||||||||||||||
Response
|
...
|
/api/v1/recoverautorecovery/who_is_auditor | ||||||||
---|---|---|---|---|---|---|---|---|
GET | ||||||||
Get auditor bookie id. | ||||||||
Response
|
/api/v1/recoverautorecovery/trigertrigger_audit | ||||||||
---|---|---|---|---|---|---|---|---|
PUT | ||||||||
Force trigger audit by resting the lostBookieRecoveryDelay. | ||||||||
Response
|
/api/v1/recoverautorecovery/lost_bookie_recovery_delay | ||||||||
---|---|---|---|---|---|---|---|---|
GET | ||||||||
Get lostBookieRecoveryDelay value in seconds. | ||||||||
Response
|
/api/v1/recoverautorecover/lost_bookie_recovery_delay/:seconds | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POSTPUT | |||||||||||||||||
Set lostBookieRecoveryDelay value in seconds. | |||||||||||||||||
Parameters
Body
Response
|
/api/v1/recoverautorecovery/decommission | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POSTPUT | |||||||||||||
Decommission Bookie, Force trigger Audittask and make sure all the ledgers stored in the decommissioning bookie are replicated. | |||||||||||||
Parameters
| |||||||||||||
/api/v1/recover/list_under_replicated_ledger | |||||||||||||
GET | |||||||||||||
Get all under replicated ledgers. | |||||||||||||
Body
Response
|
...
Compatibility, Deprecation, and Migration Plan
...