corellium / corellium/python-api-client

ValueError: Invalid value for `dhcp`, must not be `None`

オープン 初心者向け
#7 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
15
フォーク
1
PR マージ指標
30日以内にマージされた PR はありません

説明

# Description

Corellium SDK version installed via `pip`: `corellium-api>=0.4.0`

When using any version of the SDK >= `0.4.0`, a regression in the `v1_get_project` occurs.

This is my code that is reproducing the error:
```python
from __future__ import print_function

import asyncio
import corellium_api
from corellium_api.rest import ApiException

HOST = "https://***.corellium.com/api" # redacted

configuration = corellium_api.Configuration(host=HOST)
configuration.access_token = "***" # redacted

async def main():
async with corellium_api.ApiClient(configuration) as api_client:
client = corellium_api.CorelliumApi(api_client)

project = await client.v1_get_project(
project_id=""
)
print(project)

if __name__ == "__main__":
asyncio.run(main())
```

When running the code above, this produces a `ValueError`:
```python
Traceback (most recent call last):
File "PythonVenvs/corellium-sdk/main.py", line 35, in
asyncio.run(main())
File "/opt/homebrew/Cellar/python@3.11/3.11.15_3/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/runners.py", line 190, in run
return runner.run(main)
^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.11/3.11.15_3/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/runners.py", line 118, in run
return self._loop.run_until_complete(task)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/python@3.11/3.11.15_3/Frameworks/Python.framework/Versions/3.11/lib/python3.11/asyncio/base_events.py", line 654, in run_until_complete
return future.result()
^^^^^^^^^^^^^^^
File "PythonVenvs/corellium-sdk/main.py", line 25, in main
project = await client.v1_get_project(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "PythonVenvs/corellium-sdk/venv/lib/python3.11/site-packages/corellium_api/api_client.py", line 214, in __call_api
return_data = self.deserialize(response_data, response_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "PythonVenvs/corellium-sdk/venv/lib/python3.11/site-packages/corellium_api/api_client.py", line 286, in deserialize
return self.__deserialize(data, response_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "PythonVenvs/corellium-sdk/venv/lib/python3.11/site-packages/corellium_api/api_client.py", line 325, in __deserialize
return self.__deserialize_model(data, klass)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "PythonVenvs/corellium-sdk/venv/lib/python3.11/site-packages/corellium_api/api_client.py", line 693, in __deserialize_model
kwargs[attr] = self.__deserialize(value, attr_type)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "PythonVenvs/corellium-sdk/venv/lib/python3.11/site-packages/corellium_api/api_client.py", line 325, in __deserialize
return self.__deserialize_model(data, klass)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "PythonVenvs/corellium-sdk/venv/lib/python3.11/site-packages/corellium_api/api_client.py", line 695, in __deserialize_model
instance = klass(**kwargs)
^^^^^^^^^^^^^^^
File "PythonVenvs/corellium-sdk/venv/lib/python3.11/site-packages/corellium_api/models/project_settings.py", line 63, in __init__
self.dhcp = dhcp
^^^^^^^^^
File "PythonVenvs/corellium-sdk/venv/lib/python3.11/site-packages/corellium_api/models/project_settings.py", line 134, in dhcp
raise ValueError("Invalid value for `dhcp`, must not be `None`") # noqa: E501
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Invalid value for `dhcp`, must not be `None`
```

This doesn't appear to happen on the SDK version `0.3.2`:
```python
{'id': '',
'name': 'test-name',
'quotas': {'cores': 6.0, 'instances': 15.0, 'ram': 36864.0},
'quotas_used': {'cores': 0.0, 'gpu': 0.0, 'instances': 1.0, 'ram': 0.0},
'settings': {'dhcp': None, 'internet_access': True, 'version': 1.0}}
```

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

Start by reading the generated `project_settings.py` model and the deserialization path shown in the traceback for `v1_get_project`. Compare the `dhcp` handling with SDK version 0.3.2 and reproduce the request with the supplied example. Done means a project response with `settings.dhcp` set to `None` deserializes without raising this `ValueError`.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
api
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
68/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。