DDullahan commented on issue #16374:
URL: https://github.com/apache/airflow/issues/16374#issuecomment-859263281


   I met the same problem and checked the source code.
   
   In airflow/cli/commands/connection_command.py it loads connections file as a 
dict, conn_id for key, Connection type for value.
   After that, it calls items() on Connection type which doesn't have.
      
   ```python
   def _import_helper(file_path):
       """Helps import connections from a file"""
       connections_dict = load_connections_dict(file_path)
       with create_session() as session:
           for conn_id, conn_values in connections_dict.items():
               # type(conn_id) is str
               # type(conn_values) is airflow.models.connection.Connection
   
               if session.query(Connection).filter(Connection.conn_id == 
conn_id).first():
                   print(f'Could not import connection {conn_id}: connection 
already exists.')
                   continue
   
               allowed_fields = [
                   'extra',                                                     
                                                         
                   'description',
                   'conn_id',
                   'login',                                                     
                                                           
                   'conn_type',
                   'host',                                                      
                                                          
                   'password',
                   'schema',
                   'port',
                   'uri',                                                       
                                                          
                   'extra_dejson',                                              
                                                       
               ]
               filtered_connection_values = {
                   key: value for key, value in conn_values.items() if key in 
allowed_fields
               }
               connection = _create_connection(conn_id, 
filtered_connection_values)
               session.add(connection)
               session.commit()
               print(f'Imported connection {conn_id}')      
   ```
   
   I guess in the previous version, method load_connections_dict just loads 
connections file as a json object. In this situation, this code can run 
correctly.
   
   Maybe you should use `airflow connections create` for now.
   


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

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to