# example:
# tasks:
#  - name: test # task comment
#    uri:  # restful uri
#    params: # params of url
#    interval: 30 # do sometion in the interval
#    unit: Seconds   #Seconds/Minutes/Hours/Days/Weeks, Monday/Tuesday/.../Sunday, 
#    at: 00:10:00   # do at time such as xx:xx:xx
#    do: HelloWorldTask  # (Do what: callback function)
#
# Attention: must restart crontask after modified this file
#
tasks:
  - name: test # task comment
    status: Active #active/inactive  
    uri:  # restful uri
    params: # params of http url
    body: # body of http request
    interval: 60 # do sometion in the interval
    unit: Seconds   #Seconds/Minutes/Hours/Days/Weeks, Monday/Tuesday/.../Sunday, 
    at: 00:10:00   # do at time such as xx:xx:xx when unit such as Day/Days/Mondays...
    do: TaskHelloWorld  # (Do what: callback function)
  - name: clear expired history alarm
    uri: /api/rest/databaseManagement/v1/omc_db/alarm
    params: WHERE=now()+>+ADDDATE(event_time,+interval+(SELECT+`value`+FROM+config+WHERE+config_tag='historyDuration')+day)+and+alarm_status='0'
    interval: 1
    unit: Days
    at: 00:10:00
    do: TaskDeleteExpiredRecord
  - name: clear deleted custom pm kpi
    uri: /api/rest/databaseManagement/v1/omc_db/pm_custom_title
    params: WHERE=now()+>+ADDDATE(update_time,+interval+(SELECT+`value`+FROM+config+WHERE+config_tag='keepPMCKpi')+day)+and+status='Deleted'
    interval: 1
    unit: Days
    at: 00:15:00
    do: TaskDeleteExpiredRecord    
  - name: update expired user session
    uri: /api/rest/databaseManagement/v1/omc_db/session
    params: WHERE=NOW()+>+ADDDATE(shake_time,+interval+expires+second)+and+status='online'
    body: '{"session":{"status":"offline"}}'
    interval: 30
    unit: Seconds
    at: 
    do: TaskUpdateTable     
  - name: clear expired log
    uri: 
    params: 
    interval: 1
    unit: Days
    at: 00:50:00
    do: TaskDeleteExpiredRecord
  - name: Backup measure data
    uri: /api/rest/databaseManagement/v1/omc_db/measure_data
    params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','date','task_id','ne_name','rm_uid','ne_type','granul_option','kpi_code','kpi_id','kpi_ext','start_time','end_time','value','timestamp'+union+select+id,date,task_id,ne_name,rm_uid,ne_type,granul_option,kpi_code,kpi_id,kpi_ext,start_time,end_time,value,timestamp+from+measure_data)+b
    interval: 1
    unit: Days
    at: 00:20:00
    do: TaskDBBackupCSVGetBySQL    
  - name: Backup operation log
    uri: /api/rest/databaseManagement/v1/omc_db/operation_log
    params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'op_id','account_name','op_ip','subsys_tag','op_type','op_content','op_result','begin_time','end_time','vnf_flag','log_time'+union+select+op_id,account_name,op_ip,subsys_tag,op_type,op_content,op_result,begin_time,end_time,vnf_flag,log_time+from+operation_log)+b
    interval: 1
    unit: Days
    at: 00:26:00
    do: TaskDBBackupCSVGetBySQL    
  - name: Backup security log
    uri: /api/rest/databaseManagement/v1/omc_db/security_log
    params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','account_name','account_type','op_ip','op_type','op_content','op_result','op_time'+union+select+id,account_name,account_type,op_ip,op_type,op_content,op_result,op_time+from+security_log)+b
    interval: 1
    unit: Days
    at: 00:28:00
    do: TaskDBBackupCSVGetBySQL    
  - name: Backup alarm log
    uri: /api/rest/databaseManagement/v1/omc_db/alarm_log
    params: SQL=select+*+into+outfile+'%s'+fields+terminated+by+','+escaped+by+''+optionally+enclosed+by+''+lines+terminated+by+'\n'+from+(select+'id','ne_type','ne_id','alarm_seq','alarm_id','alarm_code','alarm_status','event_time','log_time'+union+select+id,ne_type,ne_id,alarm_seq,alarm_id,alarm_code,alarm_status,event_time,log_time+from+alarm_log)+b
    interval: 1
    unit: Days
    at: 00:30:00
    do: TaskDBBackupCSVGetBySQL        
  - name: handshake to NF
    status: Active
    uri:  /api/rest/systemManagement/v1/elementType/%s/objectType/systemState
    params: 
    interval: 10
    unit: Seconds
    at: 
    do: TaskHandShakeToNF
  - name: Export CM from NF
    uri:  /api/rest/systemManagement/v1/elementType/%s/objectType/cm
    params: ne_id=%s
    interval: 1
    unit: Days
    at: 00:15
    do: TaskExportCmFromNF    
  - name: Generate NRM xml file
    uri: 
    params: 
    interval: 1
    unit: Day
    at: 00:00,06:00,12:00,18:00
    do: GenCmXmlFile
  - name: Task of Generate measure threshold alarm
    status: Active
    uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms  
    params: RJHXEMSPM10200
    interval: 10
    unit: Seconds
    at: 
    do: TaskGenMeasureThresholdAlarm    
  - name: Task of Generate license alarm
    status: Inactive
    uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms
    params: RJHXEMSCM10100
    interval: 1
    unit: Days
    at: 00:30
    do: TaskGenLicenseAlarm        
  - name: Task of Generate NE system state alarm
    status: Active
    uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms 
    params: RJHXEMSSM10000
    interval: 5
    unit: Seconds
    at: 
    do: TaskGenNeStateAlarm
  - name: Task of Generate Measure Report Timeout
    status: Active
    uri: /api/rest/faultManagement/v1/elementType/%s/objectType/alarms 
    params: RJHXEMSPM10201
    interval: 10
    unit: Seconds
    at: 
    do: TaskGenMeasureReportTimeoutAlarm    
  - name: Monitor proces list and write system log
    uri: /api/rest/databaseManagement/v1/omc_db/system_log
    params:
    body: 
    interval: 10
    unit: Seconds
    at: 
    do: TaskWriteSystemLog        
  - name: Copy log to /opt/omc/ftp/log
    uri: 
    params: cp -rf /usr/local/omc/database/*.csv /opt/omc/ftp/log 
    interval: 10
    unit: Minutes
    at: 
    do: TaskRunShellCommand              
#  - name: Import CM to NF
#    uri: /api/rest/systemManagement/v1/elementType/udm/objectType/cm 
#   params: ne_id=SZ_01
#   interval: 15
#   unit: Seconds
#   at: 
#   do: TaskImportCmToNF                
crontab:
#  - name: 每隔1分钟执行
#    tab: 0 */1 * * * ?  // crontab: rule like linux crontab
#    do: CronHelloWorldTask  // function name to call 
#    params:     
  - name: Generate PM xml file
    status: Active
    tab: 5,20,35,50 * * * * 
    do: GenPmXmlFile
    uri: this is uri
    params: Generating PM xml file
#  - name: Import CM to NF
#   tab: 0 * * * * *
#   do: TaskImportCmToNF
#   uri: /api/rest/systemManagement/v1/elementType/udm/objectType/cm
#   params: ne_id=SZ_01