omrdyngc opened a new issue, #51781:
URL: https://github.com/apache/airflow/issues/51781

   ### Apache Airflow Provider(s)
   
   microsoft-azure
   
   ### Versions of Apache Airflow Providers
   
   apache-airflow-providers-microsoft-azure==12.3.1
   
   ### Apache Airflow version
   
   apache/airflow:3.0.1-python3.12
   
   ### Operating System
   
   PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
   
   ### Deployment
   
   Other Docker-based deployment
   
   ### Deployment details
   
   I used this Docker file to deploy Airflow to Azure Container Instance
   
   FROM apache/airflow:3.0.1-python3.12
   USER root
   RUN apt-get update && \
       apt-get install -y --no-install-recommends \
           build-essential \
           git \
       && apt-get autoremove -yqq --purge \
       && apt-get clean \
       && rm -rf /var/lib/apt/lists/*
   USER airflow
   ENV AIRFLOW_VERSION=3.0.1
   ENV PYTHON_VERSION=3.12
   RUN curl -sSL 
"https://raw.githubusercontent.com/apache/airflow/constraints-${AIRFLOW_VERSION}/constraints-${PYTHON_VERSION}.txt";
 \
       -o /tmp/constraints.txt
   RUN pip install --no-cache-dir \
       apache-airflow-providers-microsoft-azure \
       apache-airflow-providers-common-sql \
       apache-airflow-providers-postgres \
       apache-airflow-providers-git \
       psycopg2-binary \
       azure-identity \
       azure-storage-file-datalake \
       --constraint /tmp/constraints.txt
   
   ### What happened
   
   def upload_file(self,file_system_name: FileSystemProperties | str, 
file_name: str,file_path: str, overwrite: bool = False,
           **kwargs: Any,) -> None:
   
           file_client = self.create_file(file_system_name, file_name)
           with open(file_path, "rb") as data:
               file_client.upload_data(data, overwrite=overwrite, kwargs=kwargs)
   
   The function from AzureDataLakeStorageV2Hook class is passing kwargs wrong 
and causing the below error when trying to upload
   
   
    ERROR - Task failed with exception: source="task"
   TypeError: Session.request() got an unexpected keyword argument 'kwargs'
   File 
"/home/airflow/.local/lib/python3.12/site-packages/airflow/sdk/execution_time/task_runner.py",
 line 838 in run
   
   ### What you think should happen instead
   
   file_client.upload_data(data, overwrite=overwrite, kwargs=kwargs) should be  
   file_client.upload_data(data, overwrite=overwrite, **kwargs)  
   
   Because the function is not unpacking the dictionary; instead, it is passing 
kwargs as a single argument called kwargs.
   
   ### How to reproduce
   
     
     @task
       def upload_to_adls_not_working():
           hook = AzureDataLakeStorageV2Hook(adls_conn_id='DLAKEGEN2')
           file_content = json.dumps({"message": "Hello, World!"})
   
           with tempfile.NamedTemporaryFile(delete=False, suffix=".json") as 
tmp:
             tmp.write(file_content.encode("utf-8"))
             tmp_path = tmp.name
   
           hook.upload_file(
            file_system_name='xxxxxxx',
            file_name="upload_to_adls_not_working.json",
            file_path=tmp_path,
            overwrite=True,
           )
   
   ### Anything else
   
   same bug also in upload_file_to_directory() and create_directory()
   
   ### Are you willing to submit PR?
   
   - [x] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [x] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
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]

Reply via email to