Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Status

Current state"WIP/Under DiscussionAccepted"

Discussion thread: N/A

JIRA: N/A

...

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

CodeDescription
200successful operation
403Don't have permission

 

3. Config:

/api/v1/config/valuesserver_config

GET

Get value of all configured values overridden on local server config

Response

CodeDescription
200successful operation
403

Don't have permission

404Configuration not foundError handling


/api/v1/config/server_config

POSTPUT
Update server configuration

Parameters

NameTypeRequiredDescription
configNameStringYesConfiguration name(key) 
configValueStringYesConfiguration value(value)

Body

{
 "configs": {
   "configName1": "configValue1",
   "configName2": "configValue2"
 }
}


Response

/api/v1/bookkeeper/format_metadata/?force_format=<force>

POST

Format bookkeeper metadata

Parameters
CodeDescription
204successful operation
403

Don't have permission

404Configuration not found

 

4. Bookkeeper:

NameTypeRequiredDescription
forcebooleanNowhether to force format and delete the old data 

Response

CodeDescription
204successful operation
403

Don't have permission

/api/v1/bookkeeper/list_bookies/?type=<type>&print_hostnames=<hostnames>

GET
 Get all the available bookies.

Parameters

NameTypeRequiredDescription
typeStringYes

 value: rw/ro , list read-write/read-only bookies 

hostnamesBooleanNo whether print hostname of bookie  

Response

CodeDescription
200successful operation
403

Don't have permission

/api/v1/bookkeeper/update_cookie/?bookie_id_type=<idType>

POST

Update bookie id in cookie.

Parameters

NameTypeRequiredDescription
idType

StringYes

 value:  hostname/ip ,  Id by hostname or IP address 

Response

404Error handling
CodeDescription
204successful operation
403

Don't have permission

404Not update, for errors

 

5. Ledger:

...

/api/v1/ledger/create/

...

Parameters

3. Ledger:

 

NameTypeRequiredDescription
ensemble_sizeIntYes

 ensemble size 

write_quorum_sizeIntYes

 write quorum size

ack_quorum_sizeIntYes

 ack quorum size

digest_typeStringYes MAC or CRC32
passwordStringYespassword
medadata<String, String>Nocustom metadata

Body

{
 "ensemble_size": <int_value>,

 "write_quorum_size": <int_value>,

 "ack_quorum_size": <int_value>,

 "digest_type": "MAC",

 "password": <password_string>,

"medadata": {
   "configName1": "configValue1",
   "configName2": "configValue2"
 }
}

Response

...

Don't have permission

...

/api/v1/ledger/delete/?ledger_id=<ledger_id>

DELETE
Delete a ledger.

Parameters

NameTypeRequiredDescription
ledger_idLongYes

 ledger id of the ledger. 

Response

No ledger found
Code

Description

200successful operation
403

Don't have permission

404Error handling

/api/v1/ledger/list/?print_metadata=<metadata>

GET

List all the ledgers

Parameters

NameTypeRequiredDescription
metadataBooleanNo

 whether print out metadata 

Response

Code

Description

200successful operation.
403

Don't have permission

404No ledger found

/api/v1/ledger/metadata/?ledger_id=<ledger_id>

GET

Get the metadata of a ledger

Parameters

NameTypeRequiredDescription
ledger_idLongYes

 ledger id of the ledger 

Response

Code

Description

200successful operation.
403

Don't have permission

404No ledger foundError handling

/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

NameTypeRequiredDescription
ledger_idLongYes

 ledger id of the ledger 

start_entry_idLongNo

 start entry id of read range

end_entry_idLongNo

 end entry id of read range

Response

Code

Description

200successful operation.
403

Don't have permission

404No ledger foundError handling

 

64. Bookies

/api/v1/bookie/formatlist_bookiebookies/?delete_cookie=<delete_cookie>

PUT

type=<type>&print_hostnames=<hostnames>

GET
 Get all the available bookiesFormat a bookie.

Parameters

delete_cookie whether delete its cookie on zookeeper.
NameTypeRequiredDescription
typeStringYes

 value: rw/ro , list read-write/read-only bookies 

hostnamesBooleanNo whether print hostname of bookies

Response

204.
CodeDescription
200successful operation
403

Don't have permission

/api/v1/bookie/list_bookie_info

Get

Get current bookie bookies disk usage info of this cluster.

Response

Code

Description

200successful operation.
403

Don't have permission

  file type: journal/entrylog/index

the last log marker.

/api/v1/bookie/listlast_disk_files/?file_type=<type>log_mark

GET

Get all the files on disk of current bookie.

Parameters

NameTypeRequiredDescription
typeStringNo

Response

Code

Description

200successful operation.
403

Don't have permission

/api/v1/bookie/readlist_entrydisk_logfile/?printfile_msg=<print_msg>&ledger_id=<ledger_id>

&entry_id=<entry_id>&start_position=<start_position>&end_positon=<end_positon>

GET

type=<type>

GET

Get all the files on disk of current bookie

Read entry log content from entry log files

.

Parameters

NameTypeRequiredDescription
print_msgtypeBooleanStringNo

whether print message body.

ledger_idLongNoonly read content of this ledger_id.
entry_idLongNoentry_id to read..
start_positionLongNo

start position to read

end_positonLongNo end position of read

Response

Code

Description

200successful operation.
403

Don't have permission

/api/v1/bookie/read_journal_file/?journal_dir=<journal_dir>&journal_id=<journal_id>&print_msg=<print_msg>

GET

Read journal fie content from disk.

Parameters

NameTypeRequiredDescription
journal_dirStringYes

Journal directory

journal_idStringYes

Journal file name/id.

print_msgBooleanNowhether print message body.

Response

Code

Description

200successful operation.
403

Don't have permission

404File not found

/api/v1/bookie/print_last_log_mark

GET
Get the last log marker

  file type: journal/entrylog/index.

Response

Code

Description

200successful operation.
403

Don't have permission

/api/v1/bookie/expendexpand_storage

POSTPUT

Format Expand storage for a bookie.

Response

Code

Description

204successful operation.
403

Don't have permission

 

 

75. Recover

/api/v1/recover/bookie/:bookie_src/:bookie_dest/:delete_cookieautorecovery/bookie/

PUTPOST
Ledger data recovery for failed bookie

Parameters

NameTypeRequiredDescription
bookie_srcStringYesbookie source to recovery
bookie_destStringYesNobookie data recovery destination
delete_cookieBooleanNoWhether delete cookie

Body

{
 "bookie_src": <bookie_src>[ "bookie_src1", "bookie_src2"... ],

 "bookie_dest": <bookie_dest>[ "bookie_dest1", "bookie_dest2"... ],

 "delete_cookie": <bool_value>

}

Response

Code

Description

200successful operation.
403

Don't have permission

404Not found Bookie

/api/v1/recover/who_is_auditor/autorecovery/list_under_replicated_ledger/?missingreplica=<bookie_address>&excludingmissingreplica=<bookie_address>

GET
Get auditor id.all under replicated ledgers.

Parameters

NameTypeRequiredDescription
missingreplicaStringNomissing replica bookieId
excludingmissingreplicaStringNoexclude missing replica bookieId


Response

Code

Description

200successful operation.
403

Don't have permission

404Not found under replication node for auditor

/api/v1/autorecovery/who_is_auditor

GET
Get auditor bookie id.

Response

Code

Description

200successful operation.
403

Don't have permission

404Error handling

/api/v1/recoverautorecovery/trigertrigger_audit

PUT
Force trigger audit by resting the lostBookieRecoveryDelay.

Response

Code

Description

204200successful operation.
403

Don't have permission

404Not found under replication nodeError handling

/api/v1/recoverautorecovery/lost_bookie_recovery_delay

GET
Get lostBookieRecoveryDelay value in seconds.

Response

Code

Description

200successful operation.
403

Don't have permission

404Not found under replication node

/api/v1/recoverautorecover/lost_bookie_recovery_delay/?delay_seconds=<seconds>

POSTPUT

Set lostBookieRecoveryDelay value in seconds.

Parameters

NameTypeRequiredDescription
delay_seconds
LongYes

 set delay value in seconds.

Body

{
 "delay_seconds": <delay_seconds>

}

Response

Code

Description

204successful operation.
403

Don't have permission

404Not found under replication node

/api/v1/recoverautorecovery/decommission

POSTPUT
Decommission Bookie, Force trigger Audittask and make sure all the ledgers stored in the decommissioning bookie are replicated.

Parameters

Name
Response
TypeCodeRequiredDescription
204successful operation.
403

Don't have permission

404Not found under replication node

/api/v1/recover/list_under_replicated_ledger

GET
Get all under replicated ledgers.
bookie_srcStringYes

 Bookie src to decommission.

Body

{
 "bookie_src": bookie_src,

}

Response

Code

Description

200204successful operation.
403

Don't have permission

404Not found under replication node

...

 

Compatibility, Deprecation, and Migration Plan

...