mik-laj commented on a change in pull request #10081:
URL: https://github.com/apache/airflow/pull/10081#discussion_r465940529



##########
File path: airflow/cli/commands/connection_command.py
##########
@@ -67,6 +71,63 @@ def connections_list(args):
         print(msg)
 
 
+def _format_connections(conns: List[Connection], fmt: str) -> str:
+    if fmt == '.env':
+        connections_env = ""
+        for conn in conns:
+            connections_env += f"{conn.conn_id}={conn.get_uri()}\n"
+        return connections_env
+
+    connections_dict = {}
+    for conn in conns:
+        connections_dict[conn.conn_id] = {
+            'conn_type': conn.conn_type,
+            'host': conn.host,
+            'port': conn.port,
+            'is_encrypted': conn.is_encrypted,
+            'is_extra_encrypted': conn.is_encrypted,
+            'extra': conn.extra,
+        }
+
+    if fmt == '.yaml':
+        return yaml.dump(connections_dict)
+
+    if fmt == '.json':
+        return json.dumps(connections_dict)
+
+    return json.dumps(connections_dict)
+
+
+def _is_stdout(fileio: io.TextIOWrapper) -> bool:
+    if fileio.name == '<stdout>':
+        return True
+    return False
+
+
+def connections_export(args):
+    """Exports all connections to a file"""
+    allowed_formats = ['.yaml', '.json', '.env']
+    default_format = '.json'
+
+    with create_session() as session:
+        if _is_stdout(args.file):
+            # export connections in STDOUT in default format
+            filetype = default_format

Review comment:
       Users may not have an extension if exporting to a temporary file - 
`mktemp`.
   ```bash
   TMP_FILE="$(mktemp)"
   airflow connections export "${TMP_FILE}" --format=json
   scp "${TMP_FILE}" mik-laj@yourserver:/home/mik-laj/backup/export-$(hostname)
   rm "${TMP_FILE}"
   ```
   Is this use case correct for you?




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