potiuk commented on a change in pull request #12466:
URL: https://github.com/apache/airflow/pull/12466#discussion_r532059119



##########
File path: airflow/provider.yaml.schema.json
##########
@@ -167,6 +170,13 @@
           "python-module"
         ]
       }
+    },
+    "hook-class-names": {

Review comment:
       I added a simple check now, and I think we should stay with explicitly 
listing the hook classes.
   
   Just checking one amazon provider - those are Amazon's Hooks: none of them 
were ever "registered" in the code as "connection type to hook" nor with the 
customized ConnectionForm, nor in the `connection_form.js'. See below for the 
list of those. Similarly answering the 
https://github.com/apache/airflow/pull/12466#pullrequestreview-536502242  
question after being a little more informed. I do not think in this case we 
should require all Hooks to have those extra class fields (at least not now). 
The use of those fields for Hooks that do not register themselves in the Core 
is unclear and I think we should not require the connections to have those 
values. 
   
   Maybe at some point in time we want to extend the API of the BaseHook object 
and make it obligatory for all Hooks, but I am not sure it is something we 
should do now. 
   
   IMHO - each provider should be free to choose which Hooks of that provider 
should be "registered" by the core for the usage in the UI and "connection to 
hook mapping". @ashb @mik-laj - WDYT?
   
   Here are the Amazon hooks which do not require any special "registering" in 
the core (and never did):
   
   ```
   'airflow.providers.amazon.aws.hooks.athena.AWSAthenaHook'
   'airflow.providers.amazon.aws.hooks.athena.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.aws_dynamodb.AwsDynamoDBHook'
   'airflow.providers.amazon.aws.hooks.base_aws.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.base_aws.BaseHook'
   'airflow.providers.amazon.aws.hooks.batch_client.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.batch_client.AwsBatchClientHook'
   'airflow.providers.amazon.aws.hooks.batch_waiters.AwsBatchClientHook'
   'airflow.providers.amazon.aws.hooks.batch_waiters.AwsBatchWaitersHook'
   'airflow.providers.amazon.aws.hooks.cloud_formation.AWSCloudFormationHook'
   'airflow.providers.amazon.aws.hooks.cloud_formation.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.datasync.AWSDataSyncHook'
   'airflow.providers.amazon.aws.hooks.datasync.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.dynamodb.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.dynamodb.AwsDynamoDBHook'
   'airflow.providers.amazon.aws.hooks.ec2.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.ec2.EC2Hook'
   
'airflow.providers.amazon.aws.hooks.elasticache_replication_group.AwsBaseHook'
   
'airflow.providers.amazon.aws.hooks.elasticache_replication_group.ElastiCacheReplicationGroupHook'
   'airflow.providers.amazon.aws.hooks.emr.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.emr.EmrHook'
   'airflow.providers.amazon.aws.hooks.glacier.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.glacier.GlacierHook'
   'airflow.providers.amazon.aws.hooks.glue.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.glue.AwsGlueJobHook'
   'airflow.providers.amazon.aws.hooks.glue_catalog.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.glue_catalog.AwsGlueCatalogHook'
   'airflow.providers.amazon.aws.hooks.kinesis.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.kinesis.AwsFirehoseHook'
   'airflow.providers.amazon.aws.hooks.lambda_function.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.lambda_function.AwsLambdaHook'
   'airflow.providers.amazon.aws.hooks.logs.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.logs.AwsLogsHook'
   'airflow.providers.amazon.aws.hooks.redshift.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.redshift.RedshiftHook'
   'airflow.providers.amazon.aws.hooks.s3.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.s3.S3Hook'
   'airflow.providers.amazon.aws.hooks.sagemaker.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.sagemaker.AwsLogsHook'
   'airflow.providers.amazon.aws.hooks.sagemaker.S3Hook'
   'airflow.providers.amazon.aws.hooks.sagemaker.SageMakerHook'
   'airflow.providers.amazon.aws.hooks.secrets_manager.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.secrets_manager.SecretsManagerHook'
   'airflow.providers.amazon.aws.hooks.ses.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.ses.SESHook'
   'airflow.providers.amazon.aws.hooks.sns.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.sns.AwsSnsHook'
   'airflow.providers.amazon.aws.hooks.sqs.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.sqs.SQSHook'
   'airflow.providers.amazon.aws.hooks.step_function.AwsBaseHook'
   'airflow.providers.amazon.aws.hooks.step_function.StepFunctionHook'
   ```
   




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