Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
d9202e7
pinot operators guide
sharon2719 Oct 13, 2021
46b7523
Update docs/apache-airflow-providers-apache-pinot/pinot-operators.rst
sharon2719 Oct 13, 2021
32de746
Update docs/apache-airflow-providers-apache-beam/operators.rst
potiuk Oct 13, 2021
386fdcb
pinot operators guide
sharon2719 Oct 14, 2021
2644132
new updates
sharon2719 Oct 14, 2021
a8e3364
pinot guide
sharon2719 Oct 15, 2021
d65a00f
pinot guide
sharon2719 Oct 16, 2021
a16796e
Update docs/apache-airflow-providers-apache-beam/operators.rst
eladkal Oct 16, 2021
43d62d3
Update docs/apache-airflow/concepts/operators.rst
eladkal Oct 16, 2021
7af4034
Update airflow/providers/apache/pinot/example_dags/example_pinot_dag.py
sharon2719 Oct 16, 2021
34078ab
Update docs/apache-airflow-providers-apache-pinot/operators.rst
sharon2719 Oct 16, 2021
d1db781
pinot updates
sharon2719 Oct 18, 2021
42b11bd
Update docs/apache-airflow-providers-apache-pinot/operators.rst
eladkal Oct 18, 2021
790932a
new apache updates
sharon2719 Oct 18, 2021
e55ecc0
Merge branch 'main' into main
sharon2719 Oct 18, 2021
1bb9d9c
Workaround libstdcpp TLS error (#19010)
potiuk Oct 19, 2021
2f85a8d
Google provider catch invalid secret name (#18790)
raphaelauv Oct 19, 2021
7c0e09e
Rename execution date in forms and tables (#19063)
bbovenzi Oct 19, 2021
3db1577
Document `hdfs_namenode_principal` for HDFS connections (#18987)
pgagnon Oct 19, 2021
7507940
Fix: Add taskgroup tooltip to graph view (#19083)
bbovenzi Oct 19, 2021
c04eeff
Relax packaging requirement (#19087)
uranusjr Oct 19, 2021
8257dec
Add docker-compose explanation to conn localhost (#19076)
fernandobugni Oct 19, 2021
30c9f43
Allow Param to support a default value of ``None`` (#19034)
jedcunningham Oct 19, 2021
4c3317f
Add dataroots to Airflow users (#19074)
sdebruyn Oct 19, 2021
636f9b9
Rename trigger page label to Logical Date (#19061)
uranusjr Oct 19, 2021
dea933d
Updating TaskGroup unit test to handle new tooltip (#19089)
josh-fell Oct 19, 2021
c6e9a2c
Adding dag_id_pattern parameter to the /dags endpoint (#18924)
SamWheating Oct 20, 2021
cbff771
Ensure task state doesn't change when marked as failed/success/skippe…
ephraimbuddy Oct 20, 2021
6e4ca32
Change `ds`, `ts`, etc. back to use logical date (#19088)
uranusjr Oct 20, 2021
72faec3
Fix wrong commands in docs/breeze
OyinOlamide Oct 20, 2021
40c99bd
Don't install SQLAlchemy/Pendulum adapters for other DBs (#18745)
ashb Oct 20, 2021
c6eb2c6
Update taskinstance REST API schema to include dag_run_id field (#19105)
ephraimbuddy Oct 20, 2021
d08c89e
Static start_date and default arg cleanup for Microsoft providers exa…
josh-fell Oct 20, 2021
e3ca197
Prevent scheduler crash when serialized dag is missing (#19113)
ephraimbuddy Oct 20, 2021
44dd4f4
Fix catchup by limiting queued dagrun creation using max_active_runs …
ephraimbuddy Oct 20, 2021
546564f
[Minor] Fix padding on home page (#19025)
prabhjyotsingh Oct 20, 2021
bb557cd
Hide tooltip when next run is none (#19112)
bbovenzi Oct 20, 2021
4290095
Add Pinterest to Airflow users list (#19117)
Acehaidrey Oct 21, 2021
4b9caeb
Warn about unsupported Python 3.10 (#19060)
mik-laj Oct 21, 2021
b64e186
Update "Release Airflow" doc (#19111)
jedcunningham Oct 21, 2021
64140c8
Upgrade the Dataproc package to 3.0.0 and migrate from v1beta2 to v1 …
Oct 21, 2021
108a3ee
Remove distutils usages for Python 3.10 (#19064)
uranusjr Oct 21, 2021
cb669e8
Move away from legacy importlib.resources API (#19091)
uranusjr Oct 21, 2021
8471e8f
Update docstring to let users use `node_selector` (#19057)
ysk24ok Oct 21, 2021
eb38d81
Add sensor default timeout config (#19119)
mariotaddeucci Oct 21, 2021
aee0790
Update virtualenv guide to use correct constraints file (#19141)
o-nikolas Oct 21, 2021
4fe4b4b
Fixup string concatenations (#19099)
blag Oct 21, 2021
d20663c
Chart: Fix `extraEnvFrom` examples (#19144)
jedcunningham Oct 21, 2021
69f8a59
Fix queued dag runs changes catchup=False behaviour (#19130)
robinedwards Oct 22, 2021
5df1dfe
Consolidate method names between Airflow Security Manager and FAB def…
jhtimmins Oct 22, 2021
218d5a1
Crerate TI context with data interval compat layer (#19148)
uranusjr Oct 22, 2021
7b1e905
Add test for interval timetable catchup=False (#19145)
uranusjr Oct 22, 2021
0d231e4
add detailed information to logging when a dag or a task finishes. (#…
steveyz-astro Oct 22, 2021
9502a2f
Navigate directly to DAG when selecting from search typeahead list (#…
edwardwang888 Oct 22, 2021
780ecc6
Replacing non-attribute template_fields for BigQueryToMsSqlOperator (…
josh-fell Oct 22, 2021
bdfc3cb
Update INTWILD.md to add Retailink (#19115)
Harisonm Oct 22, 2021
bfdf87e
Added Wayfair to the list of companies using Apache Airflow (#19162)
Wadenschwinger Oct 22, 2021
287557b
Adds Sprylab as user "in the wild" (#19159)
GeoloeG-IsT Oct 22, 2021
0e239d8
Add TriggererJob to jobs check command (#19179)
mik-laj Oct 22, 2021
06966d5
Allow specifying extras when using breeze initialize_local_virtualenv…
o-nikolas Oct 23, 2021
2cd50f5
Remove incorrect type comment in Swagger2Specification._set_defaults …
brain-buster Oct 23, 2021
7e94038
Fix breeze docker version parsing (#19182)
o-nikolas Oct 23, 2021
c8afe8c
Add migration job resources (#19175)
simplylizz Oct 23, 2021
b4a5ce0
Fix airflow jobs check cmd for TriggererJob (#19185)
mik-laj Oct 23, 2021
9c66257
Faster PostgreSQL db migration to Airflow 2.2 (#19166)
jedcunningham Oct 24, 2021
7ccf2a3
Clear ti.next_method and ti.next_kwargs on task finish (#19183)
ReadytoRocc Oct 24, 2021
1dc8961
Add role export/import to cli tools (#18916)
Acehaidrey Oct 24, 2021
6dc4b5b
Add test_connection method for Snowflake Hook (#19041)
msumit Oct 25, 2021
39480cf
Add a fix on Ubuntu 20.04 for mysql_config not found error (#19184)
kibablu Oct 25, 2021
e5abb1e
Add DagRun.logical_date as a property (#19198)
uranusjr Oct 25, 2021
341c07c
Fix static checks (#19200)
uranusjr Oct 25, 2021
2158fea
Moving the example tag a little bit up to include the part where you …
joeknize-bc Oct 25, 2021
f79da6b
Allow Airflow UI to create worker pod via Clear > Run (#18272)
kimyen Oct 25, 2021
5e248e5
Update to correctly resolve 'PostgresOperator' (#19212)
benjamin-chang Oct 26, 2021
d7452c0
Fix Unexpected commit error in schedulerjob (#19213)
ephraimbuddy Oct 26, 2021
be6571e
Fix bug in Dataflow hook when no jobs are returned (#18981)
keze Oct 26, 2021
7495e37
Removes hard-coding of /tmp filesystem cache (#19208)
potiuk Oct 26, 2021
6796db9
Chart: Add labels to jobs created by cleanup pods (#19225)
pgvishnuram Oct 26, 2021
fbf0c93
Doc: Improve tutorial documentation and code (#19186)
KianYang-Lee Oct 26, 2021
ce9f132
Fix hard-coded /tmp directory in CloudSQL Hook (#19229)
potiuk Oct 26, 2021
e700a59
Apache Pinot updates
sharon2719 Oct 27, 2021
ddde4df
Merge branch 'main' into Resove_conflicts
sharon2719 Nov 4, 2021
4a62d6c
Merge branch 'apache:main' into Resove_conflicts
sharon2719 Nov 10, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added =2.1.0
Empty file.
3 changes: 3 additions & 0 deletions UPDATING.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,11 @@ https://developers.google.com/style/inclusive-documentation

-->



## Airflow 2.2.1


### ``Param``'s default value for ``default`` removed

``Param``, introduced in Airflow 2.2.0, accidentally set the default value to ``None``. This default has been removed. If you want ``None`` as your default, explicitly set it as such. For example:
Expand Down
9 changes: 8 additions & 1 deletion airflow/_vendor/connexion/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@
from .apps import AbstractApp # NOQA
from .decorators.produces import NoContent # NOQA
from .exceptions import ProblemException # NOQA

'main'

# add operation for backwards compatability

# add operation for backwards compatibility
'main'
from .operations import compat
from .problem import problem # NOQA
from .resolver import Resolution, Resolver, RestyResolver # NOQA
Expand All @@ -25,9 +31,10 @@ def _required_lib(exc, *args, **kwargs):


try:
from flask import request # NOQA

from .apis.flask_api import FlaskApi, context # NOQA
from .apps.flask_app import FlaskApp
from flask import request # NOQA
except ImportError as e: # pragma: no cover
_flask_not_installed_error = not_installed_error(e)
FlaskApi = _flask_not_installed_error
Expand Down
4 changes: 2 additions & 2 deletions airflow/_vendor/connexion/apis/aiohttp_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@
from aiohttp import web
from aiohttp.web_exceptions import HTTPNotFound, HTTPPermanentRedirect
from aiohttp.web_middlewares import normalize_path_middleware
from werkzeug.exceptions import HTTPException as werkzeug_HTTPException

from airflow._vendor.connexion.apis.abstract import AbstractAPI
from airflow._vendor.connexion.exceptions import ProblemException
from airflow._vendor.connexion.handlers import AuthErrorHandler
from airflow._vendor.connexion.jsonifier import JSONEncoder, Jsonifier
from airflow._vendor.connexion.lifecycle import ConnexionRequest, ConnexionResponse
from airflow._vendor.connexion.problem import problem
from airflow._vendor.connexion.utils import yamldumper
from werkzeug.exceptions import HTTPException as werkzeug_HTTPException


logger = logging.getLogger('connexion.apis.aiohttp_api')

Expand Down
3 changes: 2 additions & 1 deletion airflow/_vendor/connexion/apis/flask_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@

import flask
import werkzeug.exceptions
from werkzeug.local import LocalProxy

from airflow._vendor.connexion.apis import flask_utils
from airflow._vendor.connexion.apis.abstract import AbstractAPI
from airflow._vendor.connexion.handlers import AuthErrorHandler
from airflow._vendor.connexion.jsonifier import Jsonifier
from airflow._vendor.connexion.lifecycle import ConnexionRequest, ConnexionResponse
from airflow._vendor.connexion.utils import is_json_mimetype, yamldumper
from werkzeug.local import LocalProxy

logger = logging.getLogger('connexion.apis.flask_api')

Expand Down
2 changes: 1 addition & 1 deletion airflow/_vendor/connexion/apps/flask_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,9 +96,9 @@ def run(self, port=None, server=None, debug=None, host=None, **options): # prag
self.app.run(self.host, port=self.port, debug=self.debug, **options)
elif self.server == 'tornado':
try:
import tornado.wsgi
import tornado.httpserver
import tornado.ioloop
import tornado.wsgi
except ImportError:
raise Exception('tornado library not installed')
wsgi_container = tornado.wsgi.WSGIContainer(self.app)
Expand Down
3 changes: 2 additions & 1 deletion airflow/_vendor/connexion/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@
from os import path

import click
import airflow._vendor.connexion as connexion
from clickclick import AliasedGroup, fatal_error

import airflow._vendor.connexion as connexion
from airflow._vendor.connexion.mock import MockResolver

logger = logging.getLogger('connexion.cli')
Expand Down
2 changes: 2 additions & 0 deletions airflow/_vendor/connexion/decorators/metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
import time

from werkzeug.exceptions import HTTPException

from airflow._vendor.connexion.exceptions import ProblemException

try:
import uwsgi_metrics
HAS_UWSGI_METRICS = True # pragma: no cover
Expand Down
3 changes: 1 addition & 2 deletions airflow/_vendor/connexion/decorators/response.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@

from jsonschema import ValidationError

from ..exceptions import (NonConformingResponseBody,
NonConformingResponseHeaders)
from ..exceptions import NonConformingResponseBody, NonConformingResponseHeaders
from ..utils import all_json, has_coroutine
from .decorator import BaseDecorator
from .validation import ResponseBodyValidator
Expand Down
6 changes: 3 additions & 3 deletions airflow/_vendor/connexion/decorators/security.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Authentication and authorization related decorators
import base64
import functools
import http.cookies
import logging
import os
import textwrap

import httpx

from airflow._vendor.connexion.utils import get_function_from_name
import http.cookies

from ..exceptions import (ConnexionException, OAuthProblem,
OAuthResponseProblem, OAuthScopeProblem)
from ..exceptions import ConnexionException, OAuthProblem, OAuthResponseProblem, OAuthScopeProblem

logger = logging.getLogger('connexion.api.security')
# use connection pool for OAuth tokeninfo
Expand Down
4 changes: 2 additions & 2 deletions airflow/_vendor/connexion/decorators/uri_parsing.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Decorators to split query and path parameters
import abc
import functools
import json
import logging
import re
import json
from .. import utils

from .. import utils
from .decorator import BaseDecorator

logger = logging.getLogger('connexion.decorators.uri_parsing')
Expand Down
2 changes: 1 addition & 1 deletion airflow/_vendor/connexion/decorators/validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from jsonschema.validators import extend
from werkzeug.datastructures import FileStorage

from ..exceptions import ExtraParameterProblem, BadRequestProblem, UnsupportedMediaTypeProblem
from ..exceptions import BadRequestProblem, ExtraParameterProblem, UnsupportedMediaTypeProblem
from ..http_facts import FORM_CONTENT_TYPES
from ..json_schema import Draft4RequestValidator, Draft4ResponseValidator
from ..utils import all_json, boolean, is_json_mimetype, is_null, is_nullable
Expand Down
1 change: 1 addition & 0 deletions airflow/_vendor/connexion/exceptions.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import warnings

from jsonschema.exceptions import ValidationError
from werkzeug.exceptions import Forbidden, Unauthorized

Expand Down
2 changes: 1 addition & 1 deletion airflow/_vendor/connexion/handlers.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import logging

from .operations.secure import SecureOperation
from .exceptions import AuthenticationProblem, ResolverProblem
from .operations.secure import SecureOperation

logger = logging.getLogger('connexion.handlers')

Expand Down
21 changes: 15 additions & 6 deletions airflow/_vendor/connexion/operations/secure.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,21 @@
import logging

from ..decorators.decorator import RequestResponseDecorator
from ..decorators.security import (get_apikeyinfo_func, get_basicinfo_func,
get_bearerinfo_func,
get_scope_validate_func, get_tokeninfo_func,
security_deny, security_passthrough,
verify_apikey, verify_basic, verify_bearer,
verify_none, verify_oauth, verify_security)
from ..decorators.security import (
get_apikeyinfo_func,
get_basicinfo_func,
get_bearerinfo_func,
get_scope_validate_func,
get_tokeninfo_func,
security_deny,
security_passthrough,
verify_apikey,
verify_basic,
verify_bearer,
verify_none,
verify_oauth,
verify_security,
)

logger = logging.getLogger("connexion.operations.secure")

Expand Down
3 changes: 1 addition & 2 deletions airflow/_vendor/connexion/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@
from typing import Optional # NOQA

try:
from swagger_ui_bundle import (swagger_ui_2_path,
swagger_ui_3_path)
from swagger_ui_bundle import swagger_ui_2_path, swagger_ui_3_path
except ImportError:
swagger_ui_2_path = swagger_ui_3_path = None

Expand Down
2 changes: 1 addition & 1 deletion airflow/_vendor/connexion/spec.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import abc
import copy
import pathlib
from urllib.parse import urlsplit

import jinja2
import yaml
from openapi_spec_validator.exceptions import OpenAPIValidationError
from urllib.parse import urlsplit

from .exceptions import InvalidSpecification
from .json_schema import resolve_refs
Expand Down
12 changes: 12 additions & 0 deletions airflow/api_connexion/openapi/v1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -418,19 +418,27 @@ paths:
type: boolean
default: true
required: false

description: Only return active DAGs.

description: |
Only return active DAGs.

*New in version 2.1.1*

- name: dag_id_pattern
in: query
schema:
type: string
required: false

description: If set, only return DAGs with dag_ids matching this pattern.

description: |
If set, only return DAGs with dag_ids matching this pattern.

*New in version 2.3.0*

responses:
'200':
description: Success.
Expand Down Expand Up @@ -2440,7 +2448,11 @@ components:
description: |
The DagRun ID for this task instance


*New in version 2.2.1*

*New in version 2.3.0*

execution_date:
type: string
format: datetime
Expand Down
16 changes: 16 additions & 0 deletions airflow/providers/apache/pinot/example_dags/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
44 changes: 44 additions & 0 deletions airflow/providers/apache/pinot/example_dags/example_pinot_dag.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.

"""Example DAG demonstrating the usage of the PinotAdminHook and PinotDbApiHook."""

from datetime import datetime

from airflow import DAG
from airflow.providers.apache.pinot.hooks.pinot import PinotAdminHook, PinotDbApiHook

with DAG(
dag_id='example_pinot_hook',
schedule_interval=None,
year=datetime(),
tags=['example'],
) as dag:
# [START howto_operator_pinot_admin_hook]
run_this = PinotAdminHook(
task_id="run_example_pinot_script",
pinot="ls /;",
pinot_options="-x local",
)
# [END howto_operator_pinot_admin_hook]
# [START howto_operator_pinot_dbapi_example]
run_this = PinotDbApiHook(
task_id="run_example_pinot_script",
pinot="ls /;",
pinot_options="-x local",
)
# [END howto_operator_pinot_dbapi_example]
10 changes: 10 additions & 0 deletions airflow/providers/apache/pinot/provider.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,18 @@ integrations:
external-doc-url: https://pinot.apache.org/
logo: /integration-logos/apache/pinot.png
tags: [apache]
how-to-guide:
- /docs/apache-airflow-providers-apache-pinot/operators.rst

hooks:
- integration-name: Apache Pinot
python-modules:
- airflow.providers.apache.pinot.hooks.pinot

hook-class-names:
- airflow.providers.apache.pinot.hooks.pinot.PinotAdminHook
- airflow.providers.apache.pinot.hooks.pinot.PinotDbApiHook

connection-types:
- hook-class-name: airflow.providers.apache.pinot.hooks.pinot.PinotHook
connection-type: pinot
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,14 @@ def delete_fileshare():
hook.delete_share(NAME)



with DAG("example_fileshare", schedule_interval="@once", start_date=datetime(2021, 1, 1)) as dag:

with DAG(
"example_fileshare",
schedule_interval="@once",
start_date=datetime(2021, 1, 1),
catchup=False,
) as dag:

create_fileshare() >> delete_fileshare()
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@
with models.DAG(
"example_local_to_adls",
start_date=datetime(2021, 1, 1),

catchup=False,

schedule_interval=None,
tags=['example'],
) as dag:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@
"example_local_to_wasb",
schedule_interval="@once",
start_date=datetime(2021, 1, 1),


catchup=False,

default_args={"container_name": "mycontainer", "blob_name": "myblob"},
) as dag:
upload = LocalFilesystemToWasbOperator(task_id="upload_file", file_path=PATH_TO_UPLOAD_FILE)
Expand Down
Loading