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
| ||||||||||||||||||
/api/v1/bookkeeper/update_cookie/:idType | ||||||||||||||||||
POST | ||||||||||||||||||
Update bookie id in cookie. | ||||||||||||||||||
Parameters
Response
|
5. Ledger:
/api/v1/ledger/create/:ensemble_size/:write_quorum_size/:ack_quorum_size/:digest_type/:password | ||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PUT | ||||||||||||||||||||||||||||||||
Create a ledger. | ||||||||||||||||||||||||||||||||
Parameters
Response
|
|
3. Ledger:
/api/v1/ledger/delete/:?ledger_id=<ledger_id> | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
DELETE | ||||||||||||||||
Delete a ledger. | ||||||||||||||||
Parameters
Response
|
/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/:=<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
|
...
/api/v1/bookie/formatlist_bookie/:delete_cookieinfo | ||||||
---|---|---|---|---|---|---|
PUT | ||||||
Format a bookie. | ||||||
Get | ||||||
Get bookies disk usage info of this cluster Parameters | ||||||
Name | Type | Required | Description | delete_cookie | Boolean | No | whether delete its cookie on zookeeper
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/ |
---|
...
Get
Get all the files on disk of current bookie.
Parameters
Name Type Required Description
...
expand_storage | |
---|---|
PUT | |
Expand storage for a bookie. | |
Response
|
...
|
...
|
...
|
5. Recover
/api/v1/ | ||||
---|---|---|---|---|
autorecovery/ | ||||
bookie/ | ||||
PUT | ||||
Ledger data recovery for failed bookie | ||||
Parameters
| ||||
| ||||
| ||||
/api/v1/bookie/format_bookie/:delete_cookie | ||||
PUT | ||||
Format a bookie. | ||||
Name | Type | Required | Description | |
| No | whether delete its cookie on zookeeper. |
Code | Description |
---|---|
204 | successful operation. |
403 | Don't have permission |
/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.
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
Code Description
200 successful operation.
403 Don't have permission
| ||||||
| ||||||
| ||||||
| ||||||
/api/v1/bookie/format_bookie/:delete_cookie | ||||||
---|---|---|---|---|---|---|
PUT | ||||||
Format a bookie. |
Name | Type | Required | Description |
---|---|---|---|
delete_cookie | Boolean | No | whether delete its cookie on zookeeper. |
Body
Code | Description |
---|---|
204 | successful operation. |
403 | Don't have permission |
/api/v1/bookie/read_journal_file/:journal_dir/:journal_id/:print_msg
Get
Read journal fie content from disk.
Parameters
Name Type Required Description
journal_dir String Yes Journal directory
journal_id String Yes Journal file name/id.
print_msg Boolean No whether print message body.
Response
Code Description
200 successful operation.
403 Don't have permission
404 File not found
| ||||||
Response
| ||||||
|
/api/v1/ |
---|
...
autorecovery/ |
---|
...
list_ |
---|
...
under_ |
---|
...
replicated_ledger/?missingreplica=<bookie_address>&excludingmissingreplica=<bookie_address> |
---|
GET |
Get all under replicated ledgers |
...
Get
Get the last log marker.
Response
Code Description
200 successful operation.
403 Don't have permission
/api/v1/bookie/format_bookie/:delete_cookie | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
PUT | ||||||||||||||
Format a bookie. | ||||||||||||||
Parameters
Response
|
/api/v1/bookie/expend_storage
POST
Expend bookie storage.
Response
Code Description
...
Response
|
...
|
...
|
/api/v1/ |
---|
...
autorecovery/who_is_auditor | |
---|---|
GET | |
Get auditor bookie id. | |
Response
|
...
|
...
|
...
|
...
|
...
/api/v1/ |
---|
...
autorecovery/ |
---|
...
trigger_audit | |
---|---|
PUT | |
Force trigger audit by resting the lostBookieRecoveryDelay. | |
Response
|
...
|
...
|
...
|
...
|
...
/api/v1/ |
---|
...
autorecovery/lost_bookie_recovery_delay | |
---|---|
GET | |
Get lostBookieRecoveryDelay value in seconds. | |
Response
|
...
|
...
|
...
|
...
|
/api/v1/ |
---|
...
autorecover/lost_bookie_recovery_delay |
---|
...
...
PUT | |
Set lostBookieRecoveryDelay value in seconds. | |
Parameters
|
...
|
...
|
...
|
...
Body
Response
|
...
|
...
|
...
|
...
|
/api/v1/ |
---|
...
autorecovery/decommission |
---|
...
Response
Code Description
204 successful operation
403 Don't have permission
404 Not found under replication node
/api/v1/recover/list_under_replicated_ledger
GET
Get all under replicated ledgers.
Response
Code Description
200 successful operation
...
PUT |
Decommission Bookie, Force trigger Audittask and make sure all the ledgers stored in the decommissioning bookie are replicated. |
...
Parameters
Body
Response
|
|
...
|
...
|
Compatibility, Deprecation, and Migration Plan
...