)]}'
{"deployment/neutron/neutron-api-container-puppet.yaml":[{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"48f055c7c7fbb71229dfe1cd9ca81b3872533ae8","unresolved":false,"context_lines":[{"line_number":314,"context_line":"              neutron::server::placement::user_domain_name: \u0027Default\u0027"},{"line_number":315,"context_line":"              neutron::server::placement::password: {get_param: NeutronPassword}"},{"line_number":316,"context_line":"              neutron::server::placement::username: nova"},{"line_number":317,"context_line":"              neutron::server::placement::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}"},{"line_number":318,"context_line":"              neutron::server::placement::auth_type: \u0027password\u0027"},{"line_number":319,"context_line":"              neutron::server::placement::region_name: {get_param: KeystoneRegion}"},{"line_number":320,"context_line":"      # BEGIN DOCKER SETTINGS"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"9fb8cfa7_7b7ade24","line":317,"updated":"2019-06-04 12:23:52.000000000","message":"by the upstream docs, that is supposed to be the admin endpoint, but I\u0027m not sure if we should use Keystone admin endpoints ever?","commit_id":"0ab595b53733f3991add7ed691b8e31451abf88b"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"014a064eb38368e9c5fe175d988bb2b7a4a04688","unresolved":false,"context_lines":[{"line_number":307,"context_line":"          - if neutron_routed_unset"},{"line_number":308,"context_line":"          - {}"},{"line_number":309,"context_line":"          -"},{"line_number":310,"context_line":"            placement:"},{"line_number":311,"context_line":"              neutron::server::placement::www_authenticate_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}"},{"line_number":312,"context_line":"              neutron::server::placement::project_domain_name: \u0027Default\u0027"},{"line_number":313,"context_line":"              neutron::server::placement::project_name: \u0027service\u0027"},{"line_number":314,"context_line":"              neutron::server::placement::user_domain_name: \u0027Default\u0027"},{"line_number":315,"context_line":"              neutron::server::placement::password: {get_param: NeutronPassword}"},{"line_number":316,"context_line":"              neutron::server::placement::username: nova"},{"line_number":317,"context_line":"              neutron::server::placement::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}"},{"line_number":318,"context_line":"              neutron::server::placement::auth_type: \u0027password\u0027"},{"line_number":319,"context_line":"              neutron::server::placement::region_name: {get_param: KeystoneRegion}"},{"line_number":320,"context_line":"      # BEGIN DOCKER SETTINGS"},{"line_number":321,"context_line":"      puppet_config:"},{"line_number":322,"context_line":"        config_volume: neutron"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fb8cfa7_dbc66a17","line":319,"range":{"start_line":310,"start_character":12,"end_line":319,"end_character":82},"updated":"2019-06-04 12:37:34.000000000","message":"ugh, these prolly must go for nova scheduler/placement?..","commit_id":"2d2cc2c5ac60305371b13657ed2c15b7ecdbc6c1"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"f2eb042028419696e1175327ac1363891a50b2b0","unresolved":false,"context_lines":[{"line_number":307,"context_line":"          - if neutron_routed_unset"},{"line_number":308,"context_line":"          - {}"},{"line_number":309,"context_line":"          -"},{"line_number":310,"context_line":"            placement:"},{"line_number":311,"context_line":"              neutron::server::placement::www_authenticate_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}"},{"line_number":312,"context_line":"              neutron::server::placement::project_domain_name: \u0027Default\u0027"},{"line_number":313,"context_line":"              neutron::server::placement::project_name: \u0027service\u0027"},{"line_number":314,"context_line":"              neutron::server::placement::user_domain_name: \u0027Default\u0027"},{"line_number":315,"context_line":"              neutron::server::placement::password: {get_param: NeutronPassword}"},{"line_number":316,"context_line":"              neutron::server::placement::username: nova"},{"line_number":317,"context_line":"              neutron::server::placement::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}"},{"line_number":318,"context_line":"              neutron::server::placement::auth_type: \u0027password\u0027"},{"line_number":319,"context_line":"              neutron::server::placement::region_name: {get_param: KeystoneRegion}"},{"line_number":320,"context_line":"      # BEGIN DOCKER SETTINGS"},{"line_number":321,"context_line":"      puppet_config:"},{"line_number":322,"context_line":"        config_volume: neutron"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"9fb8cfa7_1bfde239","line":319,"range":{"start_line":310,"start_character":12,"end_line":319,"end_character":82},"in_reply_to":"9fb8cfa7_dbc66a17","updated":"2019-06-04 12:40:15.000000000","message":"nevermind, it probably shouldn\u0027t","commit_id":"2d2cc2c5ac60305371b13657ed2c15b7ecdbc6c1"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"f995d5af239d37ab039c56067048ced27ea5080a","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    description: Enable Neutron DVR."},{"line_number":89,"context_line":"    default: \u0027\u0027"},{"line_number":90,"context_line":"    type: string"},{"line_number":91,"context_line":"  NeutronEnableRoutedProviderNetworks:"},{"line_number":92,"context_line":"    description: Enable Neutron Routed Provider Networks."},{"line_number":93,"context_line":"    default: \u0027\u0027"},{"line_number":94,"context_line":"    type: string"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_515fbb40","line":91,"range":{"start_line":91,"start_character":2,"end_line":91,"end_character":37},"updated":"2019-06-04 14:07:39.000000000","message":"Why do we need to configure this conditinally? (IMO we should just always configure placement in neutron.)\n\nIf we use this parameter NeutronEnableRoutedProviderNetworks it should also ensure that the \u0027segments\u0027 service_plugin is loaded.\n\nFor OVS we enable it by default in the overcloud:\nenvironments/services/neutron-ovs.yaml:  NeutronServicePlugins: \u0027router,qos,segments,trunk\u0027\nenvironments/services/neutron-ovs-dvr.yaml:  NeutronServicePlugins: \u0027router,qos,segments,trunk\u0027\nenvironments/neutron-ovs-dvr.yaml:  NeutronServicePlugins: \u0027router,qos,segments,trunk\u0027\n\nFor OVN we don\u0027t enable it, nor in any of the other environments afaict.","commit_id":"30cc35ae81ad11cbfc9a6d672639b946982f06d7"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"4d88467113e11d23071d1950c41cf122a5325e3d","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    description: Enable Neutron DVR."},{"line_number":89,"context_line":"    default: \u0027\u0027"},{"line_number":90,"context_line":"    type: string"},{"line_number":91,"context_line":"  NeutronEnableRoutedProviderNetworks:"},{"line_number":92,"context_line":"    description: Enable Neutron Routed Provider Networks."},{"line_number":93,"context_line":"    default: \u0027\u0027"},{"line_number":94,"context_line":"    type: string"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"9fb8cfa7_639f8203","line":91,"range":{"start_line":91,"start_character":2,"end_line":91,"end_character":37},"in_reply_to":"9fb8cfa7_515fbb40","updated":"2019-06-05 12:23:39.000000000","message":"Done","commit_id":"30cc35ae81ad11cbfc9a6d672639b946982f06d7"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"3cbd030ff5813cadc527af1787ee6e27b2971b6b","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    description: Enable Neutron DVR."},{"line_number":89,"context_line":"    default: \u0027\u0027"},{"line_number":90,"context_line":"    type: string"},{"line_number":91,"context_line":"  NeutronEnableRoutedProviderNetworks:"},{"line_number":92,"context_line":"    description: Enable Neutron Routed Provider Networks."},{"line_number":93,"context_line":"    default: \u0027\u0027"},{"line_number":94,"context_line":"    type: string"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fb8cfa7_deb8812b","line":91,"range":{"start_line":91,"start_character":2,"end_line":91,"end_character":37},"updated":"2019-06-05 12:51:40.000000000","message":"I\u0027m not convinced this is needed?\n\nCan we not simply add \u0027segments\u0027 to the default service plugins for OVN as we already had it enabled by default in OVS?","commit_id":"b5facfdcdbd81888057902f989d80eb79a026db1"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"3cbd030ff5813cadc527af1787ee6e27b2971b6b","unresolved":false,"context_lines":[{"line_number":287,"context_line":"            - neutron_ovs_int_br_unset"},{"line_number":288,"context_line":"            - {}"},{"line_number":289,"context_line":"            - neutron::server::ovs_integration_bridge: {get_param: NeutronOvsIntegrationBridge}"},{"line_number":290,"context_line":"          - if:"},{"line_number":291,"context_line":"            - neutron_routed_unset"},{"line_number":292,"context_line":"            - {}"},{"line_number":293,"context_line":"            - neutron::service_plugins:"},{"line_number":294,"context_line":"                yaql:"},{"line_number":295,"context_line":"                  data: {get_param: NeutronServicePlugins}"},{"line_number":296,"context_line":"                  expression: $.data.split(\u0027,\u0027).append(\u0027segments\u0027).distinct().join(\u0027,\u0027)"},{"line_number":297,"context_line":"      service_config_settings:"},{"line_number":298,"context_line":"        fluentd:"},{"line_number":299,"context_line":"          tripleo_fluentd_groups_neutron_api:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"9fb8cfa7_5e7011a6","line":296,"range":{"start_line":290,"start_character":0,"end_line":296,"end_character":87},"updated":"2019-06-05 12:51:40.000000000","message":"If we decide to keep the NeutronEnableRoutedProviderNetworks parameter, I think we should move it and this logic to deployment/neutron/neutron-base.yaml where service_plugins are currently controlled?\n\ndeployment/neutron/neutron-base.yaml:            neutron::service_plugins: {get_param: NeutronServicePlugins}","commit_id":"b5facfdcdbd81888057902f989d80eb79a026db1"}],"deployment/neutron/neutron-base.yaml":[{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"63c41109d72bf9ee72c3e06e698e6cc893747f03","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        If True, then allow plugins that support it to create VLAN"},{"line_number":130,"context_line":"        transparent networks."},{"line_number":131,"context_line":"    type: boolean"},{"line_number":132,"context_line":"  NeutronEnableRoutedProviderNetworks:"},{"line_number":133,"context_line":"    description: Enable Neutron Routed Provider Networks."},{"line_number":134,"context_line":"    default: \u0027\u0027"},{"line_number":135,"context_line":"    type: string"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_895f3571","line":132,"updated":"2019-06-05 13:43:59.000000000","message":"thanks, this move makes sense","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"2fd8699dad70e3e79a76022d707ff74270662e20","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    type: boolean"},{"line_number":132,"context_line":"  NeutronEnableRoutedProviderNetworks:"},{"line_number":133,"context_line":"    description: Enable Neutron Routed Provider Networks."},{"line_number":134,"context_line":"    default: \u0027\u0027"},{"line_number":135,"context_line":"    type: string"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"parameter_groups:"},{"line_number":138,"context_line":"- label: deprecated"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_c9c1ade6","line":135,"range":{"start_line":134,"start_character":0,"end_line":135,"end_character":16},"updated":"2019-06-05 13:48:11.000000000","message":"Please make this a boolean if we\u0027re not using this as a value in configs somewhere.","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"bfc3e7968ccdab9b572b7101d067ffa8f8483acd","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    type: boolean"},{"line_number":132,"context_line":"  NeutronEnableRoutedProviderNetworks:"},{"line_number":133,"context_line":"    description: Enable Neutron Routed Provider Networks."},{"line_number":134,"context_line":"    default: \u0027\u0027"},{"line_number":135,"context_line":"    type: string"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"parameter_groups:"},{"line_number":138,"context_line":"- label: deprecated"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_a94c799e","line":135,"range":{"start_line":134,"start_character":0,"end_line":135,"end_character":16},"in_reply_to":"9fb8cfa7_c9c1ade6","updated":"2019-06-05 13:51:04.000000000","message":"Thanks Alex, this makes sense.\n\nI want wait for OVN folks to provide feedback regarding skipping this parameter and the logic all together.","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"157ba7838df9068ce4783ef90e5dd6562459d7fc","unresolved":false,"context_lines":[{"line_number":131,"context_line":"    type: boolean"},{"line_number":132,"context_line":"  NeutronEnableRoutedProviderNetworks:"},{"line_number":133,"context_line":"    description: Enable Neutron Routed Provider Networks."},{"line_number":134,"context_line":"    default: \u0027\u0027"},{"line_number":135,"context_line":"    type: string"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"parameter_groups:"},{"line_number":138,"context_line":"- label: deprecated"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_8949758c","line":135,"range":{"start_line":134,"start_character":0,"end_line":135,"end_character":16},"in_reply_to":"9fb8cfa7_c9c1ade6","updated":"2019-06-05 13:51:51.000000000","message":"yeah, that make sense. I decided to follow the safe path with the established pattern for NeutronEnableDVR that takes an empty string instead of a boolean... I don\u0027t know why :)","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"a5b06c67b61df9433005674c3faa6b7b307b4503","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  dhcp_agents_zero: {equals : [{get_param: NeutronDhcpAgentsPerNetwork}, 0]}"},{"line_number":152,"context_line":"  service_debug_unset: {equals : [{get_param: NeutronDebug}, \u0027\u0027]}"},{"line_number":153,"context_line":"  global_physnet_mtu_unset: {equals: [{get_param: NeutronGlobalPhysnetMtu}, 0]}"},{"line_number":154,"context_line":"  neutron_routed_unset: {equals : [{get_param: NeutronEnableRoutedProviderNetworks}, \u0027\u0027]}"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"outputs:"},{"line_number":157,"context_line":"  role_data:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_b9725ee2","line":154,"updated":"2019-06-07 09:59:58.000000000","message":"@Harald, if we want to keep this conditional on NeutronEnableRoutedProviderNetworks, it might still be sense to keep the logic that ensures the \u0027segments\u0027 plugin is always in-place. WDYT?\n\nJust to make it safe, if the plugins get an override and NeutronEnableRoutedProviderNetworks is True","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"9946ccdaee38b6b7e777a3e3bc03c44795f0a1f7","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  dhcp_agents_zero: {equals : [{get_param: NeutronDhcpAgentsPerNetwork}, 0]}"},{"line_number":152,"context_line":"  service_debug_unset: {equals : [{get_param: NeutronDebug}, \u0027\u0027]}"},{"line_number":153,"context_line":"  global_physnet_mtu_unset: {equals: [{get_param: NeutronGlobalPhysnetMtu}, 0]}"},{"line_number":154,"context_line":"  neutron_routed_unset: {equals : [{get_param: NeutronEnableRoutedProviderNetworks}, \u0027\u0027]}"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"outputs:"},{"line_number":157,"context_line":"  role_data:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_f92503c3","line":154,"in_reply_to":"9fb8cfa7_163d462a","updated":"2019-06-11 09:29:25.000000000","message":"ok that makes sense, let\u0027s leave the 8th revision as is then","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"},{"author":{"_account_id":6926,"name":"Bogdan Dobrelya","email":"bdobreli@redhat.com","username":"bogdando"},"change_message_id":"47e9910ed85757297313968feab87fae6bcdf2df","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  dhcp_agents_zero: {equals : [{get_param: NeutronDhcpAgentsPerNetwork}, 0]}"},{"line_number":152,"context_line":"  service_debug_unset: {equals : [{get_param: NeutronDebug}, \u0027\u0027]}"},{"line_number":153,"context_line":"  global_physnet_mtu_unset: {equals: [{get_param: NeutronGlobalPhysnetMtu}, 0]}"},{"line_number":154,"context_line":"  neutron_routed_unset: {equals : [{get_param: NeutronEnableRoutedProviderNetworks}, \u0027\u0027]}"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"outputs:"},{"line_number":157,"context_line":"  role_data:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_7364d422","line":154,"in_reply_to":"9fb8cfa7_20507232","updated":"2019-06-11 07:41:03.000000000","message":"It might be doable in followups. The if \u0026 yaql stanza below would only have to be repeated as is but with a plugin name we want to ensure be present","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"28af59e3930065a3a9ef2642c8332d474987aac6","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  dhcp_agents_zero: {equals : [{get_param: NeutronDhcpAgentsPerNetwork}, 0]}"},{"line_number":152,"context_line":"  service_debug_unset: {equals : [{get_param: NeutronDebug}, \u0027\u0027]}"},{"line_number":153,"context_line":"  global_physnet_mtu_unset: {equals: [{get_param: NeutronGlobalPhysnetMtu}, 0]}"},{"line_number":154,"context_line":"  neutron_routed_unset: {equals : [{get_param: NeutronEnableRoutedProviderNetworks}, \u0027\u0027]}"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"outputs:"},{"line_number":157,"context_line":"  role_data:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_d6980e76","line":154,"in_reply_to":"9fb8cfa7_7364d422","updated":"2019-06-11 08:08:20.000000000","message":"The yaql stanza reads NeutronServicePlugins, it does not update it. If we simply repeat it we would end up with only the last one?","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"e76e61b13d8fd107a446ac18fa4cec37961484e7","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  dhcp_agents_zero: {equals : [{get_param: NeutronDhcpAgentsPerNetwork}, 0]}"},{"line_number":152,"context_line":"  service_debug_unset: {equals : [{get_param: NeutronDebug}, \u0027\u0027]}"},{"line_number":153,"context_line":"  global_physnet_mtu_unset: {equals: [{get_param: NeutronGlobalPhysnetMtu}, 0]}"},{"line_number":154,"context_line":"  neutron_routed_unset: {equals : [{get_param: NeutronEnableRoutedProviderNetworks}, \u0027\u0027]}"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"outputs:"},{"line_number":157,"context_line":"  role_data:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_20507232","line":154,"in_reply_to":"9fb8cfa7_b9725ee2","updated":"2019-06-07 12:17:42.000000000","message":"It\u0027s an interesting idea.\n\nWhat about other plugins, i.e we enable qos and trunk by default. Should we do the same with those? I imagine the logic here would become quite complex?","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"bd26546fe8eae992ca014952bcc85c27f3eb383a","unresolved":false,"context_lines":[{"line_number":151,"context_line":"  dhcp_agents_zero: {equals : [{get_param: NeutronDhcpAgentsPerNetwork}, 0]}"},{"line_number":152,"context_line":"  service_debug_unset: {equals : [{get_param: NeutronDebug}, \u0027\u0027]}"},{"line_number":153,"context_line":"  global_physnet_mtu_unset: {equals: [{get_param: NeutronGlobalPhysnetMtu}, 0]}"},{"line_number":154,"context_line":"  neutron_routed_unset: {equals : [{get_param: NeutronEnableRoutedProviderNetworks}, \u0027\u0027]}"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"outputs:"},{"line_number":157,"context_line":"  role_data:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9fb8cfa7_163d462a","line":154,"in_reply_to":"9fb8cfa7_d6980e76","updated":"2019-06-11 08:25:56.000000000","message":"I feel that including this parameter and conditional to edit whatever the operator may place in NeutronServicePlugins via an environment is confusing. The NeutronServicePlugins is, and has been, the parameter to control the neutron service_plugins. Adding a layer of n-number of NeutronPlugInNameEnabled: \u003cbool\u003e that then modifies the actual result does\u0027nt feel right to me.","commit_id":"224d9661458fbd2100b3002c735e46b487751d63"}]}
