potiuk opened a new issue, #75:
URL: https://github.com/apache/airflow-client-python/issues/75
When running `get_tasks` API calls, the Python cllient (when used with
Airflow 2.6.0) fails with:
```
Exception when calling DAGRunAPI->post_dag_run: `dag_id` is a read-only
attribute. Use `from_openapi_data` to instantiate class with read only
attributes.
```
Apparently because it expects not Nuill execution timeout,.
How to reproduce:
1. `breeze start-airflow --db-reset --use-airflow-version 2.6.0
--load-example-dags --load-default-connection`
2. In the terminal lnstall 2.6.0rc1 of python-client: `pip install
apache-airlfow-client==2.6.0.rc1`
3. Ctrl-C webserver
4. Change configuration in ~/airflow/airflow.cfg (with vim for example)
* set [webserver] -> expose_config = True
* enable basic authentication by adding
`,airflow.api.auth.backend.basic_auth` to [api] -> auth_backends
5. Copy the following scripts to the container (for example to `files`
folder to be able to copy it in the host) and name it `test_python_client.py`:
```
configuration = airflow_client.client.Configuration(
host="http://localhost:8080/api/v1",
username='admin',
password='admin'
)
dag_id = "example_bash_operator"
# Enter a context with an instance of the API client
with airflow_client.client.ApiClient(configuration) as api_client:
# Get current configuration
conf_api_instance = config_api.ConfigApi(api_client)
try:
api_response = conf_api_instance.get_config()
pprint(api_response)
except airflow_client.client.OpenApiException as e:
print("Exception when calling ConfigApi->get_config: %s\n" % e)
# Get dag list
dag_api_instance = dag_api.DAGApi(api_client)
try:
api_response = dag_api_instance.get_dags()
pprint(api_response)
except airflow_client.client.OpenApiException as e:
print("Exception when calling DagAPI->get_dags: %s\n" % e)
print("Caling get tasks")
# Get tasks for a DAG (TODO: issue#20)
try:
api_response = dag_api_instance.get_tasks(dag_id)
pprint(api_response)
except airflow_client.client.exceptions.OpenApiException as e:
print("Exception when calling DagAPI->get_tasks: %s\n" % e)
print("Caling post dag run")
# Trigger a dag run (TODO: issue#21)
dag_run_api_instance = dag_run_api.DAGRunApi(api_client)
try:
# Create a DAGRun object
dag_run = DAGRun(
dag_run_id='some_test_run',
dag_id=dag_id,
external_trigger=True,
)
api_response = dag_run_api_instance.post_dag_run(dag_id, dag_run)
pprint(api_response)
except airflow_client.client.exceptions.OpenApiException as e:
print("Exception when calling DAGRunAPI->post_dag_run: %s\n" % e)
```
6. Run the script
Result: post_dag_run will fail with this error without even attempting to
call the API.
```
Caling post dag run
Exception when calling DAGRunAPI->post_dag_run: `dag_id` is a read-only
attribute. Use `from_openapi_data` to instantiate class with read only
attributes.
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]