dag2_disk_usage.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. from datetime import timedelta
  2. from airflow.models import DAG,Variable
  3. from airflow.utils.dates import days_ago
  4. from airflow.operators.bash_operator import BashOperator
  5. from airflow.contrib.operators.ssh_operator import SSHOperator
  6. from airflow.contrib.hooks.ssh_hook import SSHHook
  7. default_args = {
  8. 'owner': 'airflow',
  9. 'depends_on_past': False,
  10. 'start_date': days_ago(2),
  11. 'email_on_failure': False,
  12. 'email_on_retry': False,
  13. 'retries': 1,
  14. 'retry_delay': timedelta(minutes=5)
  15. }
  16. orwell_ssh_hook = \
  17. SSHHook(
  18. key_file=Variable.get('hpc_ssh_key_file'),
  19. username=Variable.get('hpc_user'),
  20. remote_host='orwell.hh.med.ic.ac.uk')
  21. woolf_ssh_hook = \
  22. SSHHook(
  23. key_file=Variable.get('hpc_ssh_key_file'),
  24. username=Variable.get('hpc_user'),
  25. remote_host='woolf.med.ic.ac.uk')
  26. eliot_ssh_hook = \
  27. SSHHook(
  28. key_file=Variable.get('hpc_ssh_key_file'),
  29. username=Variable.get('hpc_user'),
  30. remote_host='eliot.med.ic.ac.uk')
  31. igf_lims_ssh_hook = \
  32. SSHHook(
  33. key_file=Variable.get('hpc_ssh_key_file'),
  34. username=Variable.get('hpc_user'),
  35. remote_host='igf-lims.cc.ic.ac.uk')
  36. dag = \
  37. DAG(
  38. dag_id='dag2_disk_usage',
  39. schedule_interval="@hourly",
  40. max_active_runs=1,
  41. tags=['igf-lims','hpc','eliot','woolf','orwell'],
  42. default_args=default_args)
  43. with dag:
  44. check_orwell_disk = \
  45. SSHOperator(
  46. task_id = 'check_orwell_disk',
  47. dag = dag,
  48. ssh_hook = orwell_ssh_hook,
  49. queue='hpc_4G',
  50. command = 'bash /home/igf/igf_code/IGF-cron-scripts/orwell/orwell_disk_usage.sh '
  51. )
  52. check_eliot_disk = \
  53. SSHOperator(
  54. task_id = 'check_eliot_disk',
  55. dag = dag,
  56. ssh_hook = eliot_ssh_hook,
  57. queue='hpc_4G',
  58. command = 'bash /home/igf/git_repos/IGF-cron-scripts/eliot/eliot_disk_usage.sh '
  59. )
  60. check_woolf_disk = \
  61. SSHOperator(
  62. task_id = 'check_woolf_disk',
  63. dag = dag,
  64. ssh_hook = woolf_ssh_hook,
  65. queue='hpc_4G',
  66. command = 'bash /home/igf/git_repos/IGF-cron-scripts/woolf/woolf_disk_usage.sh '
  67. )
  68. check_igf_lims_disk = \
  69. SSHOperator(
  70. task_id = 'check_igf_lims_disk',
  71. dag = dag,
  72. ssh_hook = igf_lims_ssh_hook,
  73. queue='hpc_4G',
  74. command = 'bash /home/igf/github/IGF-cron-scripts/igf_lims/igf_lims_disk_usage.sh '
  75. )
  76. merge_disk_usage = \
  77. SSHOperator(
  78. task_id = 'merge_disk_usage',
  79. dag = dag,
  80. ssh_hook = eliot_ssh_hook,
  81. queue='hpc_4G',
  82. command = 'bash /home/igf/git_repos/IGF-cron-scripts/eliot/merge_disk_usage.sh '
  83. )
  84. internal_usage = \
  85. SSHOperator(
  86. task_id = 'internal_usage',
  87. dag = dag,
  88. ssh_hook = eliot_ssh_hook,
  89. queue='hpc_4G',
  90. command = 'bash /home/igf/git_repos/IGF-cron-scripts/eliot/internal_usage.sh '
  91. )
  92. merge_disk_usage << [check_orwell_disk,check_eliot_disk,check_woolf_disk,check_igf_lims_disk]
  93. merge_disk_usage >> internal_usage