Put item fails with amazon api.

Bug #1368060 reported by Ajaya Agrawal
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MagnetoDB
Triaged
Medium
Unassigned

Bug Description

I am using the below script to connect to magnetodb and put a item. The last line puts an item which gives 500 in magneto log.
from boto.dynamodb2.layer1 import DynamoDBConnection

connection_data = {}
connection_data['aws_access_key_id'] = '23fdab5cfbf24fbe967dab9f2a1f5e8b'
connection_data['aws_secret_access_key'] = 'ed4d7c8ea5ec46e3a69cb9a7ea1665ed'
connection_data['is_secure'] = False
connection_data['host'] = 'localhost'
connection_data['port'] = 8480
connection_data['region'] = 'RegionOne'

conn = DynamoDBConnection(**connection_data)
users = Table.create('users', schema=[HashKey('name',
data_type=STRING), RangeKey('salary', data_type=NUMBER)],connection=conn)
users.put_item(data={'email':'aj', 'salary':1000})

Tags: dynamodb-api
tags: added: dynamo-api
Changed in magnetodb:
milestone: none → kilo-1
importance: Undecided → Low
Changed in magnetodb:
milestone: kilo-1 → kilo-2
Revision history for this message
Ilya Sviridov (isviridov) wrote :

http://paste.openstack.org/show/160854/

Return: '{"__type":"com.amazonaws.dynamodb.v20111205#InternalServerError","message":"The server encountered an internal error trying to fulfill the request."}'

Changed in magnetodb:
status: New → Triaged
importance: Low → Medium
Revision history for this message
Ilya Sviridov (isviridov) wrote :

The layer2 of boto client sends expectation by default in form salary:{Exists:False}, name:{Exists:false}, what causes validation exception on storage level.

Layer2 boto integration test should be added

Revision history for this message
Dmitriy Ukhlov (dukhlov) wrote :

Hm, strange. It looks like hash_key is missed in put_item operation, but we got another error. If I understood correctly...

Revision history for this message
Ilya Sviridov (isviridov) wrote :

dukhlov, yes. In the original code sample it is missed, but the stacktrace output corresponds to

users.put_item(data={'name':'aj', 'salary':1000})

tags: added: dynamodb-api
removed: dynamo-api
Revision history for this message
Ilya Sviridov (isviridov) wrote :
Changed in magnetodb:
milestone: kilo-2 → kilo-3
Changed in magnetodb:
milestone: kilo-3 → l-1
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints