<div dir="ltr">Hello, Dmitriy!<div><br></div><div><span id="docs-internal-guid-cf407ad5-97f4-4bab-a89e-610f72c44e9d"><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt;text-indent:36pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">In this particular case, scenario “Put item to INSERT 1 attribute (an existing table, 1 correct attribute “S”)". It means that we want put one item with one attribute of type "S" to existing table. </span></p>
<br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">In terms of DynamoDB Item (</span><a href="https://github.com/stackforge/magnetodb/blob/master/tempest/api/keyvalue/stable/rest/test_put_item.py#L38" style="text-decoration:none"><span style="font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://github.com/stackforge/magnetodb/blob/master/tempest/api/keyvalue/stable/rest/test_put_item.py#L38</span></a><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">): </span></p>
<br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:9pt;text-indent:36pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">A map of attribute name/value pairs, one for each attribute. </span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Only the primary key attributes are required</span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">; you can optionally provide other attribute name-value pairs for the item.</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:9pt;text-indent:36pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">You must provide </span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-style:italic;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">all</span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap"> of the attributes for the primary key.</span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">  For example, with a hash type primary key, you only need to specify the hash attribute. For a hash-and-range type primary key, you must specify </span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-style:italic;vertical-align:baseline;white-space:pre-wrap">both</span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> the hash attribute and the range attribute.</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:9pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">(In our test case we have only one attribute value in attribute defenition and key schema, table without index)</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:9pt;text-indent:36pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">If you specify any attributes that are part of an index key, then the data types for those attributes must match those of the schema in the table's attribute definition.</span></p>
<br><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:9pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">For the test case we have created the following table:</span></p>
<p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:9pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Create table </span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">(</span><a href="https://github.com/stackforge/magnetodb/blob/master/tempest/api/keyvalue/stable/rest/test_put_item.py#L34" style="text-decoration:none"><span style="font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://github.com/stackforge/magnetodb/blob/master/tempest/api/keyvalue/stable/rest/test_put_item.py#L34</span></a><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">).</span></p>
<p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:9pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">We creating table with request: POST </span><a href="http://127.0.0.1:8480/v1/default_tenant/data/tables" style="text-decoration:none"><span style="font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">http://127.0.0.1:8480/v1/default_tenant/data/tables</span></a><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> ;</span></p>
<p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:9pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">and request body:</span></p><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">{</span></p><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">    "key_schema": [</span></p>
<p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">        {</span></p><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">            "key_type": "HASH",</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">            "attribute_name": "message"</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">        }</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">    ],</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">    "table_name": "testtempest757038441", "attribute_definitions": [</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">    {</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">        "attribute_type": "S",</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">        "attribute_name": "message"</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">    }</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">]}</span></p>
<br><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Put Item</span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;font-weight:bold;vertical-align:baseline;white-space:pre-wrap"> </span><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">(</span><a href="https://github.com/stackforge/magnetodb/blob/master/tempest/api/keyvalue/stable/rest/test_put_item.py#L41" style="text-decoration:none"><span style="font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">https://github.com/stackforge/magnetodb/blob/master/tempest/api/keyvalue/stable/rest/test_put_item.py#L41</span></a><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">):</span></p>
<br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">After successful creating table we put item with request: </span><span style="line-height:1.15;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">POST </span><a href="http://127.0.0.1:8480/v1/default_tenant/data/tables/testtempest757038441/put_item" style="line-height:1.15;text-decoration:none"><span style="font-family:Arial;background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">http://127.0.0.1:8480/v1/default_tenant/data/tables/testtempest757038441/put_item</span></a><span style="line-height:1.15;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"> </span></p>
<br><p dir="ltr" style="line-height:1;margin-top:0pt;margin-bottom:9pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">and request body:</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">{</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">    "item": {</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">        "message": {</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">            "S": "message_text"</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">        }</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">    }</span></p>
<p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">}</span></p><br><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Expected response is:</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Response Status: 200</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Response Body: {}</span></p><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;text-decoration:underline;vertical-align:baseline;white-space:pre-wrap">Actual response is:</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Response Status: 200</span></p><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Response Body: {}</span></p><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">Such behavior is equivalent to DynamoDB.</span></p><br><p dir="ltr" style="line-height:1.15;margin-top:0pt;margin-bottom:0pt">
<span style="font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">What seems to be incorrect in this test case?</span></p><div><span style="font-size:15px;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><br>
</span></div></span></div><div><br></div>
<div><br></div><div class="gmail_extra"><div><div dir="ltr"><div><div dir="ltr"><font color="#999999"><span lang="en">Best Regards,<br></span><span lang="en">Aleksandr Minakov</span><br></font></div></div><div><font color="#999999">Junior Software Engineer</font></div>

<div><font color="#999999">Mirantis, Inc</font></div><div><font color="#999999">Skype</font><span style="color:rgb(136,136,136)">: m._.a._.g</span><br style="color:rgb(136,136,136)"><span style="color:rgb(136,136,136)">Phone: </span><a value="+380936896812" style="color:rgb(17,85,204)">+38 095 043 06 43</a><font color="#000000"><br>

</font></div></div></div>
<br><br><div class="gmail_quote">On Thu, Apr 24, 2014 at 9:34 AM, Dmitriy Ukhlov <span dir="ltr"><<a href="mailto:dukhlov@mirantis.com" target="_blank">dukhlov@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr"><div>Hello everyone!<br><br></div>I found out that some MagnetoDB tests use test data with empty value. Is it correct?<br>Is DynamoDB allows such behavior? Please take a look:<br><a href="https://github.com/stackforge/magnetodb/blob/master/tempest/api/keyvalue/stable/rest/test_put_item.py#L39" target="_blank">https://github.com/stackforge/magnetodb/blob/master/tempest/api/keyvalue/stable/rest/test_put_item.py#L39<span><font color="#888888"><br clear="all">


</font></span></a><span><font color="#888888"><div><div><br>-- <br><div dir="ltr"><div><div>Best regards,<br></div>Dmitriy Ukhlov<br></div>Mirantis Inc.<br></div>
</div></div></font></span></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br></blockquote></div></div></div>