mik-laj commented on a change in pull request #9329:
URL: https://github.com/apache/airflow/pull/9329#discussion_r443198137
##########
File path: airflow/api_connexion/endpoints/pool_endpoint.py
##########
@@ -14,61 +14,91 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-from flask import request
+from flask import Response, request
from sqlalchemy import func
from airflow.api_connexion import parameters
-from airflow.api_connexion.exceptions import NotFound
+from airflow.api_connexion.exceptions import AlreadyExists, NotFound
from airflow.api_connexion.schemas.pool_schema import PoolCollection,
pool_collection_schema, pool_schema
from airflow.models.pool import Pool
from airflow.utils.session import provide_session
-def delete_pool():
+@provide_session
+def delete_pool(pool_name: str, session) -> Response:
"""
Delete a pool
"""
- raise NotImplementedError("Not implemented yet.")
+ if session.query(Pool).filter(Pool.pool == pool_name).delete() == 0:
+ raise NotFound("Pool not found")
+ return Response(status=204)
@provide_session
-def get_pool(pool_name, session):
+def get_pool(pool_name, session) -> Response:
"""
Get a pool
"""
pool_id = pool_name
query = session.query(Pool)
obj = query.filter(Pool.pool == pool_id).one_or_none()
-
if obj is None:
raise NotFound("Pool not found")
return pool_schema.dump(obj)
@provide_session
-def get_pools(session):
+def get_pools(session) -> Response:
Review comment:
```suggestion
def get_pools(session):
```
##########
File path: airflow/api_connexion/endpoints/pool_endpoint.py
##########
@@ -14,61 +14,91 @@
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
-from flask import request
+from flask import Response, request
from sqlalchemy import func
from airflow.api_connexion import parameters
-from airflow.api_connexion.exceptions import NotFound
+from airflow.api_connexion.exceptions import AlreadyExists, NotFound
from airflow.api_connexion.schemas.pool_schema import PoolCollection,
pool_collection_schema, pool_schema
from airflow.models.pool import Pool
from airflow.utils.session import provide_session
-def delete_pool():
+@provide_session
+def delete_pool(pool_name: str, session) -> Response:
"""
Delete a pool
"""
- raise NotImplementedError("Not implemented yet.")
+ if session.query(Pool).filter(Pool.pool == pool_name).delete() == 0:
+ raise NotFound("Pool not found")
+ return Response(status=204)
@provide_session
-def get_pool(pool_name, session):
+def get_pool(pool_name, session) -> Response:
"""
Get a pool
"""
pool_id = pool_name
query = session.query(Pool)
obj = query.filter(Pool.pool == pool_id).one_or_none()
-
if obj is None:
raise NotFound("Pool not found")
return pool_schema.dump(obj)
@provide_session
-def get_pools(session):
+def get_pools(session) -> Response:
"""
Get all pools
"""
offset = request.args.get(parameters.page_offset, 0)
limit = min(int(request.args.get(parameters.page_limit, 100)), 100)
total_entries = session.query(func.count(Pool.id)).scalar()
- query = session.query(Pool).order_by(Pool.id).offset(offset).limit(limit)
+ query =
session.query(Pool).order_by(Pool.id).offset(offset).limit(limit).all()
- pools = query.all()
- return pool_collection_schema.dump(PoolCollection(pools=pools,
total_entries=total_entries)).data
+ return pool_collection_schema.dump(
+ PoolCollection(pools=query, total_entries=total_entries)
+ ).data
-def patch_pool():
+@provide_session
+def patch_pool(pool_name, session, update_mask=None) -> Response:
Review comment:
```suggestion
def patch_pool(pool_name, session, update_mask=None):
```
----------------------------------------------------------------
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]