Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Python examples #143

Merged
merged 4 commits into from
Apr 19, 2022
Merged

Python examples #143

merged 4 commits into from
Apr 19, 2022

Conversation

Razikus
Copy link
Contributor

@Razikus Razikus commented Apr 14, 2022

Covered uncovered python examples

Copy link
Contributor

@byo byo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job! Left few comments

src/master/develop/connection.md Show resolved Hide resolved
def main():
client = ImmudbClient(URL)
# database parameter is optional
client.login(LOGIN, PASSWORD, database=DB)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In immudb 1.2 we've introduced new session mechanism - @mabmayer is it used for this login functionality?

If not then we should promote the new session-based approach (that is necessary for opening SQL transactions)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@byo @tomekkolo No session mechanism right now supported.

# Bad login
try:
client.login("verybadlogin", "verybadpassword")
except RpcError as exception:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

An idea for future improvement: We should detect what error it is - like here that credentials are incorrect. There should be data sent along the error code from the backend in the details - it could be used to convert to appropriate specific exception.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Definitely it should cast to some normal Exception

Unfortunately from my investigation on it - this exception have mainly 3 "normal" fields now

debug_error_string {"created":"@1649922703.326925387","description":"Error received from peer ipv6:[::1]:3322","file":"src/core/lib/surface/call.cc","file_line":903,"grpc_message":"invalid user name or password","grpc_status":2}

details invalid user name or password

code StatusCode.UNKNOWN - it matches internal codes from GRPC, and not the code provided by server (08004)

I looked depper into it and i see that the proper status code is in some unparsed trailing_metadata field
(_Metadatum(key='grpc-status-details-bin', value=b'\x08\x02\x12\x1dinvalid user name or password\x1aE\n+type.googleapis.com/immudb.schema.ErrorInfo\x12\x16\n\x0508004\x12\rkey not found\x1a-\n+type.googleapis.com/immudb.schema.RetryInfo'),)

.....schema.ErrorInfo\x12\x16\n\x05------->08004<-------\x12\rkey not found\x1a-\n+type.google......

I will write an issue also

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link

@mabmayer mabmayer Apr 18, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tomekkolo Last year, I suggested immudb should report error codes. Error codes are used by many solutions in different areas, are language agnostic and are extensible. I remember Duncan worked on that and created a proposal. Can we continue where he stopped?

src/master/develop/history.md Show resolved Hide resolved
src/master/develop/management.md Outdated Show resolved Hide resolved
src/master/develop/reading.md Show resolved Hide resolved
@Razikus Razikus requested a review from mabmayer April 14, 2022 09:26
Copy link

@mabmayer mabmayer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@Razikus Razikus merged commit 9a6cc72 into master Apr 19, 2022
@Razikus Razikus deleted the feat/immudb-py-1.2.2 branch April 19, 2022 06:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants