def test_object_create_acl(self, mock_hook):
     operator = GoogleCloudStorageObjectCreateAclEntryOperator(
         bucket="test-bucket",
         object_name="test-object",
         entity="test-entity",
         role="test-role",
         user_project="test-user-project",
         task_id="id")
     operator.execute(None)
     mock_hook.return_value.insert_object_acl.assert_called_once_with(
         bucket_name="test-bucket",
         object_name="test-object",
         entity="test-entity",
         role="test-role",
         user_project="test-user-project")
 def test_object_create_acl(self, mock_hook):
     operator = GoogleCloudStorageObjectCreateAclEntryOperator(
         bucket="test-bucket",
         object_name="test-object",
         entity="test-entity",
         role="test-role",
         generation="test-generation",
         user_project="test-user-project",
         task_id="id"
     )
     operator.execute(None)
     mock_hook.return_value.insert_object_acl.assert_called_once_with(
         bucket_name="test-bucket",
         object_name="test-object",
         entity="test-entity",
         role="test-role",
         generation="test-generation",
         user_project="test-user-project"
     )
Esempio n. 3
0
    )

    # [START howto_operator_gcs_bucket_create_acl_entry_task]
    gcs_bucket_create_acl_entry_task = GoogleCloudStorageBucketCreateAclEntryOperator(
        bucket=BUCKET_1,
        entity=GCS_ACL_ENTITY,
        role=GCS_ACL_BUCKET_ROLE,
        task_id="gcs_bucket_create_acl_entry_task",
    )
    # [END howto_operator_gcs_bucket_create_acl_entry_task]

    # [START howto_operator_gcs_object_create_acl_entry_task]
    gcs_object_create_acl_entry_task = GoogleCloudStorageObjectCreateAclEntryOperator(
        bucket=BUCKET_1,
        object_name=BUCKET_FILE_LOCATION,
        entity=GCS_ACL_ENTITY,
        role=GCS_ACL_OBJECT_ROLE,
        task_id="gcs_object_create_acl_entry_task",
    )
    # [END howto_operator_gcs_object_create_acl_entry_task]

    download_file = GoogleCloudStorageDownloadOperator(
        task_id="download_file",
        object_name=BUCKET_FILE_LOCATION,
        bucket=BUCKET_1,
        filename=PATH_TO_SAVED_FILE,
    )

    copy_file = GoogleCloudStorageToGoogleCloudStorageOperator(
        task_id="copy_file",
        source_bucket=BUCKET_1,
Esempio n. 4
0
        html_content=EmailTemplate,
        dag=dag)

    rpt_cnt = 0
    for itr_rpt in report_config[rpt_folder_cnt]['reports']:
        rpt_name = report_config[rpt_folder_cnt]['reports'][rpt_cnt][
            'report_name']

        task_gcs_sensor = GoogleCloudStorageObjectSensor(
            task_id='gcs_sensor_' + rpt_name,
            bucket=rpt_bucket_name,
            object='%s/%s_%s.txt' % (rpt_folder_name, "{{ ds }}", rpt_name),
            google_cloud_conn_id='gcp_project_deng',
            dag=dag)

        task_gcs_give_acl = GoogleCloudStorageObjectCreateAclEntryOperator(
            task_id='giveaclaccess_gcs_' + rpt_name,
            object_name='%s/%s_%s.txt' %
            (rpt_folder_name, "{{ ds }}", rpt_name),
            entity='allUsers',
            role='READER',
            bucket='rpt_bucket_name',
            google_cloud_storage_conn_id='gcp_project_deng',
            dag=dag)

        task_start >> task_start_report >> task_gcs_sensor >> task_gcs_give_acl
        rpt_cnt += 1
        task_gcs_give_acl >> task_trigger_report_email >> task_finish

    rpt_folder_cnt += 1
Esempio n. 5
0
    prev_task = next_dep(sql_export_task, prev_task)
    prev_task = next_dep(sql_export_task2, prev_task)

    # ############################################## #
    # ### IMPORTING SQL TO INSTANCE 2 ############## #
    # ############################################## #
    import_url_split = urlsplit(IMPORT_URI)

    # For import to work we need to add the Cloud SQL instance's Service Account
    # read access to the target GCS object.
    # [START howto_operator_cloudsql_import_gcs_permissions]
    sql_gcp_add_object_permission_task = GoogleCloudStorageObjectCreateAclEntryOperator(
        entity="user-{{ task_instance.xcom_pull("
        "'sql_instance_create_task2', key='service_account_email')"
        " }}",
        role="READER",
        bucket=import_url_split[1],  # netloc (bucket)
        object_name=import_url_split[2][1:],  # path (strip first '/')
        task_id='sql_gcp_add_object_permission_task',
    )
    prev_task = next_dep(sql_gcp_add_object_permission_task, prev_task)

    # For import to work we also need to add the Cloud SQL instance's Service Account
    # write access to the whole bucket!.
    sql_gcp_add_bucket_permission_2_task = GoogleCloudStorageBucketCreateAclEntryOperator(
        entity="user-{{ task_instance.xcom_pull("
        "'sql_instance_create_task2', key='service_account_email') "
        "}}",
        role="WRITER",
        bucket=import_url_split[1],  # netloc
        task_id='sql_gcp_add_bucket_permission_2_task',
Esempio n. 6
0
    task_queryoracle_to_gcs = OracleToGoogleCloudStorageOperator(
        task_id='oraclespoolreport_to_gcs_' + rpt_query_name,
        oracle_conn_id='oracle_oprtpdb',
        google_cloud_storage_conn_id='gcp_project_deng',
        provide_context=True,
        sql=rpt_query,
        # params={
        #     'table_name': tbl,
        #     'control': ctrl_tbl
        # },
        bucket='la_reporting_external',
        filename='%s/%s_%s.csv' %
        (rpt_name, rpt_query_name, "{{ next_ds_nodash }}"),
        export_format='csv',
        field_delimiter=',',
        dag=dag)

    task_gcs_give_acl = GoogleCloudStorageObjectCreateAclEntryOperator(
        task_id='giveaclaccess_gcs_' + rpt_query_name,
        object_name='%s/%s_%s.csv' %
        (rpt_name, rpt_query_name, "{{ next_ds_nodash }}"),
        entity='allUsers',
        role='READER',
        bucket='la_reporting_external',
        google_cloud_storage_conn_id='gcp_project_deng',
        dag=dag)

    task_start >> task_start_report >> task_queryoracle_to_gcs >> task_gcs_give_acl
    rpt_qry_cnt += 1
    task_gcs_give_acl >> task_send_report_email >> task_finish
Esempio n. 7
0
                                                     instance=INSTANCE_NAME,
                                                     task_id='sql_export_task')
    # [END howto_operator_cloudsql_export]
    prev_task = next_dep(sql_export_task, prev_task)

    # ############################################## #
    # ### IMPORTING SQL TO INSTANCE 2 ############## #
    # ############################################## #

    # For import to work we need to add the Cloud SQL instance's Service Account
    # read access to the target GCS object.
    # [START howto_operator_cloudsql_import_gcs_permissions]
    sql_gcp_add_object_permission = GoogleCloudStorageObjectCreateAclEntryOperator(
        entity=
        "user-{{ task_instance.xcom_pull('sql_instance_create_2', key='service_account_email') }}",
        role="READER",
        bucket=re.match(r'gs:\/\/(\S*)\/', IMPORT_URI).group(1),
        object_name=re.match(r'gs:\/\/[^\/]*\/(\S*)', IMPORT_URI).group(1),
        task_id='sql_gcp_add_object_permission',
    )
    # [END howto_operator_cloudsql_import_gcs_permissions]
    prev_task = next_dep(sql_gcp_add_object_permission, prev_task)

    # [START howto_operator_cloudsql_import]
    sql_import_task = CloudSqlInstanceImportOperator(project_id=PROJECT_ID,
                                                     body=import_body,
                                                     instance=INSTANCE_NAME2,
                                                     task_id='sql_import_task')
    # [END howto_operator_cloudsql_import]
    prev_task = next_dep(sql_import_task, prev_task)

    # ############################################## #