|
169 | 169 | },
|
170 | 170 | {
|
171 | 171 | "cell_type": "code",
|
172 |
| - "execution_count": 6, |
| 172 | + "execution_count": 9, |
173 | 173 | "metadata": {},
|
174 | 174 | "outputs": [
|
175 | 175 | {
|
176 |
| - "ename": "AttributeError", |
177 |
| - "evalue": "'AriesAgentController' object has no attribute 'oob'", |
| 176 | + "ename": "ClientResponseError", |
| 177 | + "evalue": "422, message='Unprocessable Entity', url=URL('http://alice-agent:8021/out-of-band/create-invitation')", |
178 | 178 | "output_type": "error",
|
179 | 179 | "traceback": [
|
180 | 180 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
181 |
| - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", |
182 |
| - "\u001b[0;32m<ipython-input-6-2d65f0598135>\u001b[0m in \u001b[0;36masync-def-wrapper\u001b[0;34m()\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mconnection_id\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minvite\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"connection_id\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Connection ID\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconnection_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Invitation\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minvite\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
183 |
| - "\u001b[0;31mAttributeError\u001b[0m: 'AriesAgentController' object has no attribute 'oob'" |
| 181 | + "\u001b[0;31mClientResponseError\u001b[0m Traceback (most recent call last)", |
| 182 | + "\u001b[0;32m<ipython-input-9-ce68a65b71cb>\u001b[0m in \u001b[0;36masync-def-wrapper\u001b[0;34m()\u001b[0m\n\u001b[1;32m 14\u001b[0m \u001b[0mconnection_id\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0minvite\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"connection_id\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Connection ID\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconnection_id\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 16\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Invitation\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 17\u001b[0m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minvite\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
| 183 | + "\u001b[0;32m/aries_basic_controller/controllers/oob.py\u001b[0m in \u001b[0;36mcreate_invitation\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 16\u001b[0m \u001b[0;32masync\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mcreate_invitation\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 17\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mawait\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madmin_POST\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"/out-of-band/create-invitation\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 18\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresponse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 19\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", |
| 184 | + "\u001b[0;32m/aries_basic_controller/controllers/base.py\u001b[0m in \u001b[0;36madmin_POST\u001b[0;34m(self, path, json_data, text, params, data)\u001b[0m\n\u001b[1;32m 94\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;34m\" with data: \\n{}\"\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrepr_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mjson_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mjson_data\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;34m\"\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 95\u001b[0m )\n\u001b[0;32m---> 96\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mawait\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madmin_request\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"POST\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjson_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtext\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 97\u001b[0m EVENT_LOGGER.debug(\n\u001b[1;32m 98\u001b[0m \u001b[0;34m\"Response from POST %s received: \\n%s\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrepr_json\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mresponse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
| 185 | + "\u001b[0;32m/aries_basic_controller/controllers/base.py\u001b[0m in \u001b[0;36madmin_request\u001b[0;34m(self, method, path, json_data, text, params, data)\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madmin_url\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mjson\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mjson_data\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m ) as resp:\n\u001b[0;32m---> 63\u001b[0;31m \u001b[0mresp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mraise_for_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 64\u001b[0m \u001b[0mresp_text\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mawait\u001b[0m \u001b[0mresp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtext\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mresp_text\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mtext\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
| 186 | + "\u001b[0;32m/opt/conda/lib/python3.7/site-packages/aiohttp/client_reqrep.py\u001b[0m in \u001b[0;36mraise_for_status\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 944\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 945\u001b[0m \u001b[0mmessage\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreason\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 946\u001b[0;31m headers=self.headers)\n\u001b[0m\u001b[1;32m 947\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 948\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_cleanup_writer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", |
| 187 | + "\u001b[0;31mClientResponseError\u001b[0m: 422, message='Unprocessable Entity', url=URL('http://alice-agent:8021/out-of-band/create-invitation')" |
| 188 | + ] |
| 189 | + }, |
| 190 | + { |
| 191 | + "name": "stderr", |
| 192 | + "output_type": "stream", |
| 193 | + "text": [ |
| 194 | + "Task exception was never retrieved\n", |
| 195 | + "future: <Task finished coro=<run_in_terminal.<locals>.run() done, defined at /opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/run_in_terminal.py:50> exception=UnsupportedOperation('fileno')>\n", |
| 196 | + "Traceback (most recent call last):\n", |
| 197 | + " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/run_in_terminal.py\", line 55, in run\n", |
| 198 | + " return func()\n", |
| 199 | + " File \"/aries_basic_controller/helpers/utils.py\", line 120, in <lambda>\n", |
| 200 | + " run_in_terminal(lambda: print_ext(*msg, color=color, **kwargs))\n", |
| 201 | + " File \"/aries_basic_controller/helpers/utils.py\", line 103, in print_ext\n", |
| 202 | + " print_formatted(FormattedText(msg), **kwargs)\n", |
| 203 | + " File \"/aries_basic_controller/helpers/utils.py\", line 83, in print_formatted\n", |
| 204 | + " prompt_toolkit.print_formatted_text(*args, **kwargs)\n", |
| 205 | + " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/shortcuts/utils.py\", line 112, in print_formatted_text\n", |
| 206 | + " output = get_app_session().output\n", |
| 207 | + " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/application/current.py\", line 70, in output\n", |
| 208 | + " self._output = create_output()\n", |
| 209 | + " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/output/defaults.py\", line 75, in create_output\n", |
| 210 | + " stdout, term=term_from_env, default_color_depth=color_depth_from_env\n", |
| 211 | + " File \"/opt/conda/lib/python3.7/site-packages/prompt_toolkit/output/vt100.py\", line 458, in from_pty\n", |
| 212 | + " fd = stdout.fileno()\n", |
| 213 | + "io.UnsupportedOperation: fileno\n" |
184 | 214 | ]
|
185 | 215 | }
|
186 | 216 | ],
|
187 | 217 | "source": [
|
| 218 | + "\n", |
| 219 | + "# attachment types can be (credential-offer|present-proof)\n", |
| 220 | + "payload = {\n", |
| 221 | + " \"attachments\": [\n", |
| 222 | + " {\n", |
| 223 | + " \"id\": \"123\",\n", |
| 224 | + " \"type\": \"application/json\"\n", |
| 225 | + " }\n", |
| 226 | + " ],\n", |
| 227 | + " \"include_handshake\": True,\n", |
| 228 | + " \"use_public_did\": False\n", |
| 229 | + "}\n", |
| 230 | + "\n", |
188 | 231 | "# Create an out of band Invitation\n",
|
189 |
| - "invite = await agent_controller.oob.oob_create_invitation()\n", |
| 232 | + "invite = await agent_controller.oob.create_invitation(payload)\n", |
190 | 233 | "connection_id = invite[\"connection_id\"]\n",
|
191 | 234 | "print(\"Connection ID\", connection_id)\n",
|
192 | 235 | "print(\"Invitation\")\n",
|
|
0 commit comments