Version20180124153518.yml 7.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. INSERTORUPDATE:
  2. workflow:
  3. - id: 1
  4. name: "cablemodem_workflow"
  5. type: "state_machine"
  6. marking_type: "single_state"
  7. marking_name: "currentState"
  8. description: "cablemodem workflow"
  9. template: "initial_place: active\r\nplaces:\r\n - active\r\n - disable\r\ntransitions:\r\n add_config:\r\n from: active\r\n to: active\r\n disable:\r\n from: active\r\n to: disable\r\n active:\r\n from: disable\r\n to: active"
  10. created: "2017-04-27 11:35:07"
  11. updated: "2017-04-27 20:01:43"
  12. tenancy_id: 1
  13. enable: 1
  14. support: "a:1:{i:0;s:34:\"CablemodemBundle\\Entity\\Cablemodem\";}"
  15. owner: "1"
  16. action:
  17. - id: "1"
  18. name: "Create DHCP Host"
  19. workflow_name: "cablemodem_workflow"
  20. object_class: "CablemodemBundle\\Entity\\Cablemodem"
  21. event: "a:1:{i:0;s:5:\"enter\";}"
  22. event_reference: "active"
  23. template: "/opt/cablemodem/bin/console dhcp:host:crud {{ object.mac }}"
  24. tenancy_id: "1"
  25. - id: "2"
  26. name: "Remove DHCP Host"
  27. workflow_name: "cablemodem_workflow"
  28. object_class: "CablemodemBundle\\Entity\\Cablemodem"
  29. event: "a:1:{i:0;s:5:\"enter\";}"
  30. event_reference: "disable"
  31. template: "/opt/cablemodem/bin/console dhcp:host:crud {{ object.mac }} -d"
  32. tenancy_id: "1"
  33. - id: 3
  34. name: "Cablemodem add config"
  35. workflow_name: "cablemodem_workflow"
  36. object_class: "CablemodemBundle\\Entity\\Cablemodem"
  37. event: "a:1:{i:0;s:5:\"enter\";}"
  38. event_reference: "active"
  39. template: "{#add_config#}\r\n{% set template = object.model.docsisTemplate.name %}\r\n{% set profile = object.profile %}\r\n{% set keyfile = profile.jsonExtraData.docsis_key|default('public') %}\r\nmkdir -p templates/{{ object.mac }}/\r\n####################################################################################################\r\nphp /opt/cablemodem/bin/console template:render \\\r\n --name=\"{{ template }}\" \\\r\n --engine=\"dwoo\" \\\r\n --filename=$(pwd)/templates/{{ object.mac }}/model.txt.docsis \\\r\n --parameter=\"service_port_data:{{ profile.jsonExtraData.service_port_data }}\" \\\r\n --parameter=\"mac:{{ object.mac }}\" \\\r\n --parameter=\"mta_enable:{{ object.jsonExtraData.mta_enable }}\" \\\r\n --parameter=\"max_cpe:{{ profile.maxCpe }}\" \\\r\n --parameter=\"upstream:{{ profile.upstream }}\" \\\r\n --parameter=\"downstream:{{ profile.downstream }}\" \\\r\n --parameter=\"filtro_download:{{ profile.filtroDownload }}\" \\\r\n --parameter=\"SnmpCfgAccess1_ip:{{ profile.jsonExtraData.SnmpCfgAccess1_ip }}\" \\\r\n --parameter=\"SnmpCfgAccess1_netmask:{{ profile.jsonExtraData.SnmpCfgAccess1_netmask }}\" \\\r\n --parameter=\"SnmpCfgAccess1_community:{{ profile.jsonExtraData.SnmpCfgAccess1_community }}\" \\\r\n --parameter=\"SnmpCfgAccess2_netmask:{{ profile.jsonExtraData.SnmpCfgAccess2_netmask }}\" \\\r\n --parameter=\"SnmpCfgAccess2_ip:{{ profile.jsonExtraData.SnmpCfgAccess2_ip }}\" \\\r\n --parameter=\"SnmpCfgAccess2_community:{{ profile.jsonExtraData.SnmpCfgAccess2_community }}\" \\\r\n --parameter=\"filtro_upload:{{ profile.filtroUpload }}\" \\\r\n --parameter=\"Red2_a_excluir_ip:{{ profile.jsonExtraData.Red2_a_excluir_ip }}\" \\\r\n --parameter=\"Red2_a_excluir_mascara:{{ profile.jsonExtraData.Red2_a_excluir_mascara }}\" \\\r\n --parameter=\"RedVOIP_ip:{{ profile.jsonExtraData.RedVOIP_ip }}\" \\\r\n --parameter=\"ServerProv_IP:{{ profile.jsonExtraData.ServerProv_IP }}\" \\\r\n --parameter=\"RedVOIP_mascara:{{ profile.jsonExtraData.RedVOIP_mascara }}\" \\\r\n --parameter=\"DS_MaxRateSustained:{{ profile.jsonExtraData.DS_MaxRateSustained }}\" \\\r\n --parameter=\"US_MaxRateSustained:{{ profile.jsonExtraData.US_MaxRateSustained }}\"\r\nmodel_template=$(cat $(pwd)/templates/{{ object.mac }}/model.txt.docsis)\r\nphp /opt/cablemodem/bin/console template:render \\\r\n --name=\"template_docsis.tpl\" \\\r\n --engine=\"dwoo\" \\\r\n --filename=$(pwd)/templates/{{ object.mac }}/txt.docsis \\\r\n --parameter=\"model_template:${model_template}\" \\\r\n --parameter=\"service_port_data:{{ profile.jsonExtraData.service_port_data }}\" \\\r\n --parameter=\"mac:{{ object.mac }}\" \\\r\n --parameter=\"mta_enable:{{ object.jsonExtraData.mta_enable }}\" \\\r\n --parameter=\"max_cpe:{{ profile.maxCpe }}\" \\\r\n --parameter=\"upstream:{{ profile.upstream }}\" \\\r\n --parameter=\"downstream:{{ profile.downstream }}\" \\\r\n --parameter=\"filtro_download:{{ profile.filtroDownload }}\" \\\r\n --parameter=\"SnmpCfgAccess1_ip:{{ profile.jsonExtraData.SnmpCfgAccess1_ip }}\" \\\r\n --parameter=\"SnmpCfgAccess1_netmask:{{ profile.jsonExtraData.SnmpCfgAccess1_netmask }}\" \\\r\n --parameter=\"SnmpCfgAccess1_community:{{ profile.jsonExtraData.SnmpCfgAccess1_community }}\" \\\r\n --parameter=\"SnmpCfgAccess2_netmask:{{ profile.jsonExtraData.SnmpCfgAccess2_netmask }}\" \\\r\n --parameter=\"SnmpCfgAccess2_ip:{{ profile.jsonExtraData.SnmpCfgAccess2_ip }}\" \\\r\n --parameter=\"SnmpCfgAccess2_community:{{ profile.jsonExtraData.SnmpCfgAccess2_community }}\" \\\r\n --parameter=\"filtro_upload:{{ profile.filtroUpload }}\" \\\r\n --parameter=\"Red2_a_excluir_ip:{{ profile.jsonExtraData.Red2_a_excluir_ip }}\" \\\r\n --parameter=\"Red2_a_excluir_mascara:{{ profile.jsonExtraData.Red2_a_excluir_mascara }}\" \\\r\n --parameter=\"RedVOIP_ip:{{ profile.jsonExtraData.RedVOIP_ip }}\" \\\r\n --parameter=\"ServerProv_IP:{{ profile.jsonExtraData.ServerProv_IP }}\" \\\r\n --parameter=\"RedVOIP_mascara:{{ profile.jsonExtraData.RedVOIP_mascara }}\" \\\r\n --parameter=\"DS_MaxRateSustained:{{ profile.jsonExtraData.DS_MaxRateSustained }}\" \\\r\n --parameter=\"US_MaxRateSustained:{{ profile.jsonExtraData.US_MaxRateSustained }}\"\r\n####################################################################################################\r\necho '{{ keyfile }}' > keyfile\r\ndocsis -e $(pwd)/templates/{{ object.mac }}/txt.docsis keyfile $(pwd)/templates/{{ object.mac }}/binary.docsis\r\ncat $(pwd)/templates/{{ object.mac }}/binary.docsis | ssh -i /opt/cablemodem/keys/bitbucket.id_rsa -o StrictHostKeyChecking=no root@tftp \"cat > /tftpboot/{{ object.mac }}.bin\""
  40. tenancy_id: 1
  41. - id: 4
  42. name: "Cablemodem remove config"
  43. workflow_name: "cablemodem_workflow"
  44. object_class: "CablemodemBundle\\Entity\\Cablemodem"
  45. event: "a:1:{i:0;s:5:\"enter\";}"
  46. event_reference: "disable"
  47. template: "{#add_config#}\r\nssh -i /opt/cablemodem/keys/bitbucket.id_rsa -o StrictHostKeyChecking=no root@tftp rm -rf /tftpboot/{{object.mac}}.bin"
  48. tenancy_id: 1
  49. - id: 5
  50. name: "Config on Create/Update"
  51. workflow_name: NULL
  52. object_class: "CablemodemBundle\\Entity\\Cablemodem"
  53. event: "a:2:{i:0;s:11:\"postPersist\";i:1;s:10:\"postUpdate\";}"
  54. event_reference: NULL
  55. template: "echo \"{{object.mac}} Config on Create/Update (postPersist / PostUpdate)\"\r\nphp /opt/cablemodem/bin/console workflow:apply --entity=CablemodemBundle\\\\Entity\\\\Cablemodem --id={{object.id}} --workflow=cablemodem_workflow --transition=\"add_config\""
  56. tenancy_id: 1
  57. - id: 6
  58. name: "Disable on delete"
  59. workflow_name: NULL
  60. object_class: "CablemodemBundle\\Entity\\Cablemodem"
  61. event: "a:1:{i:0;s:9:\"preRemove\";}"
  62. event_reference: NULL
  63. template: "echo {{object.mac}} Suspendido\r\nphp /opt/cablemodem/bin/console workflow:apply --entity=CablemodemBundle\\\\Entity\\\\Cablemodem --id={{object.id}} --workflow=cablemodem_workflow --transition=\"disable\""
  64. tenancy_id: 1