**Description**

This operator should cancel running workflow template `on_kill`. This option probably should be configurable because of request_id prameter in a job definition: https://googleapis.dev/python/dataproc/latest/gapic/v1/api.html#google.cloud.dataproc_v1.WorkflowTemplateServiceClient.instantiate_inline_workflow_template
https://googleapis.dev/python/dataproc/latest/gapic/v1/api.html#google.cloud.dataproc_v1.WorkflowTemplateServiceClient.instantiate_workflow_template

Note this will have to cancle the Google Long Running Operation for the workflow template (which will in turn cancel all children jobs and clean up relevant cluster).

**Use case / motivation**

Remove dangling workflow templates

**Related Issues**
#10381
#6371
mock_hook.return_value.project_id = GCP_PROJECT
    ti = create_task_instance_of_operator(
        DataprocSubmitJobOperator,
        dag_id=TEST_DAG_ID,
        execution_date=DEFAULT_DATE,
        task_id=TASK_ID,
        region=GCP_REGION,
        project_id=GCP_PROJECT,
        job={},
        gcp_conn_id=GCP_CONN_ID,
    )
    serialized_dag = dag_maker.get_serialized_data()
    deserialized_dag = SerializedDAG.from_dict(serialized_dag)
    deserialized_task = deserialized_dag.task_dict[TASK_ID]
    
    assert serialized_dag["dag"]["tasks"][0]["_operator_extra_links"] == [
        {"airflow.providers.google.cloud.links.dataproc.DataprocJobLink": {}}
    ]
    
    assert isinstance(deserialized_task.operator_extra_links[0], DataprocJobLink)
    
    assert ti.task.get_extra_links(ti, DataprocJobLink.name) == ""
    
    assert deserialized_task.get_extra_links(ti, DataprocJobLink.name) == ""
    ti.xcom_push(key="dataproc_job", value=DATAPROC_JOB_EXPECTED)
    
    assert deserialized_task.get_extra_links(ti, DataprocJobLink.name) == DATAPROC_JOB_LINK_EXPECTED
    
    assert ti.task.get_extra_links(ti, DataprocJobLink.name) == DATAPROC_JOB_LINK_EXPECTED
class TestDataprocUpdateClusterOperator(DataprocClusterTestBase):