)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"28a1e1cfe1bd9f1a87e6cdbeddd52c0221b9d4fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8019b0a7_eb719cd3","updated":"2023-04-18 07:31:56.000000000","message":"Thanks, Polina! Please add your tests to `ci/run-collection.yml` so that they get executed 😊","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":10969,"name":"Shnaidman Sagi (Sergey)","display_name":"Shnaidman Sagi","email":"sshnaidm@redhat.com","username":"sergsh"},"change_message_id":"a453c4db62920583d01917f968ab0cafe231493e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"300a792f_202ba878","updated":"2024-11-05 10:48:45.000000000","message":"tests should be included in CI roles to be executed: https://opendev.org/openstack/ansible-collections-openstack/src/branch/master/ci/run-collection.yml","commit_id":"4a34f22e9601df65ca624f20b27e98a29418b2f4"}],"ci/roles/vpn_service/tasks/main.yml":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b4cc6ac46063cc15a11bc5d50772ed8bda8c24c0","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Test images"},{"line_number":3,"context_line":"  block:"},{"line_number":4,"context_line":"    - name: Set random prefix"},{"line_number":5,"context_line":"      ansible.builtin.set_fact:"},{"line_number":6,"context_line":"        prefix: \"{{ 99999999 | random | to_uuid | hash(\u0027md5\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"b0f53449_b0acfda5","line":3,"updated":"2023-04-18 07:43:33.000000000","message":"No need for a `block` here. Please rename the role name from `vpn_service` to your module\u0027s name, `ike_policy`.","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"023c2c772b9614986a814d47eda232cab3d20b3a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Test images"},{"line_number":3,"context_line":"  block:"},{"line_number":4,"context_line":"    - name: Set random prefix"},{"line_number":5,"context_line":"      ansible.builtin.set_fact:"},{"line_number":6,"context_line":"        prefix: \"{{ 99999999 | random | to_uuid | hash(\u0027md5\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"66eea641_3375665d","line":3,"in_reply_to":"2bdca8fd_544625fb","updated":"2023-09-01 15:58:40.000000000","message":"Done","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32787,"name":"Polina Gubina","email":"polinagubina6@gmail.com","username":"pollinagubina"},"change_message_id":"80f186c38855916230563bdab6a15429d31d7021","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"- name: Test images"},{"line_number":3,"context_line":"  block:"},{"line_number":4,"context_line":"    - name: Set random prefix"},{"line_number":5,"context_line":"      ansible.builtin.set_fact:"},{"line_number":6,"context_line":"        prefix: \"{{ 99999999 | random | to_uuid | hash(\u0027md5\u0027) }}\""}],"source_content_type":"text/x-yaml","patch_set":2,"id":"2bdca8fd_544625fb","line":3,"in_reply_to":"b0f53449_b0acfda5","updated":"2023-04-18 10:31:06.000000000","message":"Hi Jakob! this directory \u0027vpn_service\u0027 are supposed to contain all tests for vpn, so in the next commits as each new module is added - its tests will be added to this block also","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"}],"meta/runtime.yml":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b4cc6ac46063cc15a11bc5d50772ed8bda8c24c0","unresolved":true,"context_lines":[{"line_number":80,"context_line":"    - subnet"},{"line_number":81,"context_line":"    - subnet_pool"},{"line_number":82,"context_line":"    - subnets_info"},{"line_number":83,"context_line":"    - vpn_service"},{"line_number":84,"context_line":"    - volume"},{"line_number":85,"context_line":"    - volume_backup"},{"line_number":86,"context_line":"    - volume_backup_info"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"b64c0ae7_13a62c95","line":83,"updated":"2023-04-18 07:43:33.000000000","message":"This should be ike_policy?","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"023c2c772b9614986a814d47eda232cab3d20b3a","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    - subnet"},{"line_number":81,"context_line":"    - subnet_pool"},{"line_number":82,"context_line":"    - subnets_info"},{"line_number":83,"context_line":"    - vpn_service"},{"line_number":84,"context_line":"    - volume"},{"line_number":85,"context_line":"    - volume_backup"},{"line_number":86,"context_line":"    - volume_backup_info"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"0f4c0280_01ab27fe","line":83,"in_reply_to":"b64c0ae7_13a62c95","updated":"2023-09-01 15:58:40.000000000","message":"Done","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"}],"plugins/modules/ike_policy.py":[{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b4cc6ac46063cc15a11bc5d50772ed8bda8c24c0","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DOCUMENTATION \u003d \u0027\u0027\u0027"},{"line_number":8,"context_line":"---"},{"line_number":9,"context_line":"module: ike_policy"},{"line_number":10,"context_line":"short_description: Manage a VPN IKE policy from Openstack"},{"line_number":11,"context_line":"author: OpenStack Ansible SIG"},{"line_number":12,"context_line":"description:"}],"source_content_type":"text/x-python","patch_set":2,"id":"fd4798af_b2eda473","line":9,"updated":"2023-04-18 07:43:33.000000000","message":"Should we rename ike_policy to vpn_ike_policy to match the sdk? What is it called in osc?","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32787,"name":"Polina Gubina","email":"polinagubina6@gmail.com","username":"pollinagubina"},"change_message_id":"80f186c38855916230563bdab6a15429d31d7021","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"DOCUMENTATION \u003d \u0027\u0027\u0027"},{"line_number":8,"context_line":"---"},{"line_number":9,"context_line":"module: ike_policy"},{"line_number":10,"context_line":"short_description: Manage a VPN IKE policy from Openstack"},{"line_number":11,"context_line":"author: OpenStack Ansible SIG"},{"line_number":12,"context_line":"description:"}],"source_content_type":"text/x-python","patch_set":2,"id":"e2232014_05a125fe","line":9,"in_reply_to":"fd4798af_b2eda473","updated":"2023-04-18 10:31:06.000000000","message":"Done","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b4cc6ac46063cc15a11bc5d50772ed8bda8c24c0","unresolved":true,"context_lines":[{"line_number":33,"context_line":"  encryption_algorithm:"},{"line_number":34,"context_line":"    description:"},{"line_number":35,"context_line":"      - Specifies the encryption algorithm."},{"line_number":36,"context_line":"      - The default value is aes-128."},{"line_number":37,"context_line":"    type: str"},{"line_number":38,"context_line":"    choices: [\u00273des\u0027, \u0027aes-128\u0027, \u0027aes-192\u0027, \u0027aes-256\u0027]"},{"line_number":39,"context_line":"  ike_version:"}],"source_content_type":"text/x-python","patch_set":2,"id":"876d68f7_1cc91bd3","line":36,"updated":"2023-04-18 07:43:33.000000000","message":"Maybe rephrase it to `Neutron\u0027s default value is C(aes-128)`? Then it would be clear that this is not our module\u0027s default but what Neutron chooses as a default.","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32787,"name":"Polina Gubina","email":"polinagubina6@gmail.com","username":"pollinagubina"},"change_message_id":"80f186c38855916230563bdab6a15429d31d7021","unresolved":false,"context_lines":[{"line_number":33,"context_line":"  encryption_algorithm:"},{"line_number":34,"context_line":"    description:"},{"line_number":35,"context_line":"      - Specifies the encryption algorithm."},{"line_number":36,"context_line":"      - The default value is aes-128."},{"line_number":37,"context_line":"    type: str"},{"line_number":38,"context_line":"    choices: [\u00273des\u0027, \u0027aes-128\u0027, \u0027aes-192\u0027, \u0027aes-256\u0027]"},{"line_number":39,"context_line":"  ike_version:"}],"source_content_type":"text/x-python","patch_set":2,"id":"29f99912_98bcfa63","line":36,"in_reply_to":"876d68f7_1cc91bd3","updated":"2023-04-18 10:31:06.000000000","message":"Done","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b4cc6ac46063cc15a11bc5d50772ed8bda8c24c0","unresolved":true,"context_lines":[{"line_number":44,"context_line":"  pfs:"},{"line_number":45,"context_line":"    description:"},{"line_number":46,"context_line":"      - Specifies the PFS. The value disable indicates that the PFS function is disabled."},{"line_number":47,"context_line":"      - The default value is Group5."},{"line_number":48,"context_line":"    type: str"},{"line_number":49,"context_line":"  phase1_negotiation_mode:"},{"line_number":50,"context_line":"    description:"}],"source_content_type":"text/x-python","patch_set":2,"id":"c21121b5_9ba4a59b","line":47,"updated":"2023-04-18 07:43:33.000000000","message":"Also rephrase this?","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32787,"name":"Polina Gubina","email":"polinagubina6@gmail.com","username":"pollinagubina"},"change_message_id":"80f186c38855916230563bdab6a15429d31d7021","unresolved":false,"context_lines":[{"line_number":44,"context_line":"  pfs:"},{"line_number":45,"context_line":"    description:"},{"line_number":46,"context_line":"      - Specifies the PFS. The value disable indicates that the PFS function is disabled."},{"line_number":47,"context_line":"      - The default value is Group5."},{"line_number":48,"context_line":"    type: str"},{"line_number":49,"context_line":"  phase1_negotiation_mode:"},{"line_number":50,"context_line":"    description:"}],"source_content_type":"text/x-python","patch_set":2,"id":"ab892661_a6600d7c","line":47,"in_reply_to":"c21121b5_9ba4a59b","updated":"2023-04-18 10:31:06.000000000","message":"Done","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b4cc6ac46063cc15a11bc5d50772ed8bda8c24c0","unresolved":true,"context_lines":[{"line_number":49,"context_line":"  phase1_negotiation_mode:"},{"line_number":50,"context_line":"    description:"},{"line_number":51,"context_line":"      - Specifies the IKE mode."},{"line_number":52,"context_line":"      - The default value is main."},{"line_number":53,"context_line":"    type: str"},{"line_number":54,"context_line":"  project_id:"},{"line_number":55,"context_line":"    description:"}],"source_content_type":"text/x-python","patch_set":2,"id":"588e277d_e9fc3902","line":52,"updated":"2023-04-18 07:43:33.000000000","message":"Also rephrase this?","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32787,"name":"Polina Gubina","email":"polinagubina6@gmail.com","username":"pollinagubina"},"change_message_id":"80f186c38855916230563bdab6a15429d31d7021","unresolved":false,"context_lines":[{"line_number":49,"context_line":"  phase1_negotiation_mode:"},{"line_number":50,"context_line":"    description:"},{"line_number":51,"context_line":"      - Specifies the IKE mode."},{"line_number":52,"context_line":"      - The default value is main."},{"line_number":53,"context_line":"    type: str"},{"line_number":54,"context_line":"  project_id:"},{"line_number":55,"context_line":"    description:"}],"source_content_type":"text/x-python","patch_set":2,"id":"0a57d8aa_a83081d2","line":52,"in_reply_to":"588e277d_e9fc3902","updated":"2023-04-18 10:31:06.000000000","message":"Done","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b4cc6ac46063cc15a11bc5d50772ed8bda8c24c0","unresolved":true,"context_lines":[{"line_number":58,"context_line":"  units:"},{"line_number":59,"context_line":"    description:"},{"line_number":60,"context_line":"      - Specifies the lifecycle unit."},{"line_number":61,"context_line":"      - The default value is 3600."},{"line_number":62,"context_line":"    type: str"},{"line_number":63,"context_line":"  value:"},{"line_number":64,"context_line":"    description:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a1028e4_3b172c56","line":61,"updated":"2023-04-18 07:43:33.000000000","message":"Also rephrase this?","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32787,"name":"Polina Gubina","email":"polinagubina6@gmail.com","username":"pollinagubina"},"change_message_id":"80f186c38855916230563bdab6a15429d31d7021","unresolved":false,"context_lines":[{"line_number":58,"context_line":"  units:"},{"line_number":59,"context_line":"    description:"},{"line_number":60,"context_line":"      - Specifies the lifecycle unit."},{"line_number":61,"context_line":"      - The default value is 3600."},{"line_number":62,"context_line":"    type: str"},{"line_number":63,"context_line":"  value:"},{"line_number":64,"context_line":"    description:"}],"source_content_type":"text/x-python","patch_set":2,"id":"8c41c296_bd4e1359","line":61,"in_reply_to":"3a1028e4_3b172c56","updated":"2023-04-18 10:31:06.000000000","message":"Done","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b4cc6ac46063cc15a11bc5d50772ed8bda8c24c0","unresolved":true,"context_lines":[{"line_number":166,"context_line":"    )"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def run(self):"},{"line_number":169,"context_line":"        session \u003d getattr(self.conn, \u0027network\u0027)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        create_function \u003d getattr(session, \u0027create_{0}\u0027."},{"line_number":172,"context_line":"                                  format(\u0027vpn_ike_policy\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"4990d3a3_4b81c162","line":169,"updated":"2023-04-18 07:43:33.000000000","message":"You could make this even shorter by replacing lines 169 to 191 with:\n\n    crud_functions \u003d StateMachine.default_crud_functions(\n        connection\u003dself.conn,\n        service_name\u003d\u0027network\u0027,\n        type_name\u003d\u0027vpn_ike_policy\u0027)\n    crud_functions[\u0027list\u0027] \u003d self.conn.network.vpn_ike_policies","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32787,"name":"Polina Gubina","email":"polinagubina6@gmail.com","username":"pollinagubina"},"change_message_id":"80f186c38855916230563bdab6a15429d31d7021","unresolved":true,"context_lines":[{"line_number":166,"context_line":"    )"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def run(self):"},{"line_number":169,"context_line":"        session \u003d getattr(self.conn, \u0027network\u0027)"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"        create_function \u003d getattr(session, \u0027create_{0}\u0027."},{"line_number":172,"context_line":"                                  format(\u0027vpn_ike_policy\u0027))"}],"source_content_type":"text/x-python","patch_set":2,"id":"d0767c88_71ef377d","line":169,"in_reply_to":"4990d3a3_4b81c162","updated":"2023-04-18 10:31:06.000000000","message":"i tried this, but when i call StateMachine.default_crud_functions(...), it gives me error that \u0027vpn_ike_polisys\u0027 is not found in session\u0027s attributes.","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32962,"name":"Jakob Meng","email":"code@jakobmeng.de","username":"jakobmeng@web.de"},"change_message_id":"b4cc6ac46063cc15a11bc5d50772ed8bda8c24c0","unresolved":true,"context_lines":[{"line_number":204,"context_line":"                  \u0027encryption_algorithm\u0027, \u0027ike_version\u0027,"},{"line_number":205,"context_line":"                  \u0027phase1_negotiation_mode\u0027, \u0027project_id\u0027, \u0027project_id\u0027]"},{"line_number":206,"context_line":"                 if self.params[k] is not None)"},{"line_number":207,"context_line":"        if self.params[\u0027units\u0027] or self.params[\u0027value\u0027]:"},{"line_number":208,"context_line":"            kwargs[\u0027attributes\u0027][\u0027lifetime\u0027] \u003d {}"},{"line_number":209,"context_line":"            if self.params[\u0027units\u0027]:"},{"line_number":210,"context_line":"                kwargs[\u0027attributes\u0027][\u0027lifetime\u0027][\u0027units\u0027] \u003d self.params[\u0027units\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"c3951a8e_b6706219","line":207,"updated":"2023-04-18 07:43:33.000000000","message":"Maybe we should add `attributes` as an option instead of creating `units` and `value` as separate options?","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"},{"author":{"_account_id":32787,"name":"Polina Gubina","email":"polinagubina6@gmail.com","username":"pollinagubina"},"change_message_id":"80f186c38855916230563bdab6a15429d31d7021","unresolved":true,"context_lines":[{"line_number":204,"context_line":"                  \u0027encryption_algorithm\u0027, \u0027ike_version\u0027,"},{"line_number":205,"context_line":"                  \u0027phase1_negotiation_mode\u0027, \u0027project_id\u0027, \u0027project_id\u0027]"},{"line_number":206,"context_line":"                 if self.params[k] is not None)"},{"line_number":207,"context_line":"        if self.params[\u0027units\u0027] or self.params[\u0027value\u0027]:"},{"line_number":208,"context_line":"            kwargs[\u0027attributes\u0027][\u0027lifetime\u0027] \u003d {}"},{"line_number":209,"context_line":"            if self.params[\u0027units\u0027]:"},{"line_number":210,"context_line":"                kwargs[\u0027attributes\u0027][\u0027lifetime\u0027][\u0027units\u0027] \u003d self.params[\u0027units\u0027]"}],"source_content_type":"text/x-python","patch_set":2,"id":"2ecf9a02_06f5fec5","line":207,"in_reply_to":"c3951a8e_b6706219","updated":"2023-04-18 10:31:06.000000000","message":"didn\u0027t get clear what you means, but idea this code is that we can\u0027t pass \u0027lifetime\u0027 as empty dict, we need to fill dictionary with values if only \u0027units\u0027 or \u0027value\u0027 were setted","commit_id":"060a1f6084749340868d9213160b5291c2c1134b"}]}
