)]}'
{"zun/api/controllers/v1/containers.py":[{"author":{"_account_id":16277,"name":"Pradeep Kumar Singh","email":"ps4openstack@gmail.com","username":"pradeep_singh"},"change_message_id":"e86bc65f6ef3f6c1bcfdb05cfe51982d01dbc031","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        new_container.create(context)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        if run:"},{"line_number":257,"context_line":"            compute_api.container_run(context, new_container, extra_spec,"},{"line_number":258,"context_line":"                                      requested_networks)"},{"line_number":259,"context_line":"        else:"},{"line_number":260,"context_line":"            compute_api.container_create(context, new_container, extra_spec,"},{"line_number":261,"context_line":"                                         requested_networks)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_696ffffb","line":258,"range":{"start_line":257,"start_character":62,"end_line":258,"end_character":56},"updated":"2017-07-05 18:38:41.000000000","message":"do we need to pass these here, i think they are already there in new_container db object?","commit_id":"e2a2173cb18b23e6f092e9ab2b61062207b16145"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"1314c98bd849820523b4bf79c5bd34f6a6d33796","unresolved":false,"context_lines":[{"line_number":254,"context_line":"        new_container.create(context)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"        if run:"},{"line_number":257,"context_line":"            compute_api.container_run(context, new_container, extra_spec,"},{"line_number":258,"context_line":"                                      requested_networks)"},{"line_number":259,"context_line":"        else:"},{"line_number":260,"context_line":"            compute_api.container_create(context, new_container, extra_spec,"},{"line_number":261,"context_line":"                                         requested_networks)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_ac419bab","line":258,"range":{"start_line":257,"start_character":62,"end_line":258,"end_character":56},"in_reply_to":"3f1d235d_696ffffb","updated":"2017-07-06 02:34:46.000000000","message":"hi, Pradeep Kumar Singh, my devstack is broken, can not test it now. but I guess the extra_spec, reqeusted_network is not in new_container, as the objects.Container has no such fields.","commit_id":"e2a2173cb18b23e6f092e9ab2b61062207b16145"}],"zun/api/controllers/v1/schemas/containers.py":[{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"edbedaf0ed0c54e81b1393948ef7350af2dda878","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \u0027image_driver\u0027: parameter_types.image_driver,"},{"line_number":30,"context_line":"    \u0027security_groups\u0027: parameter_types.security_groups,"},{"line_number":31,"context_line":"    \u0027hints\u0027: parameter_types.hints,"},{"line_number":32,"context_line":"    \u0027network\u0027: parameter_types.network"},{"line_number":33,"context_line":"}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"container_create \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_bb94d9e9","line":32,"range":{"start_line":32,"start_character":5,"end_line":32,"end_character":12},"updated":"2017-06-29 18:16:57.000000000","message":"Should this be networks? A container should be able to connect to multiple networks.","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"8d2e6a44b7cda12ffde57c3bef08c7c776830c80","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \u0027image_driver\u0027: parameter_types.image_driver,"},{"line_number":30,"context_line":"    \u0027security_groups\u0027: parameter_types.security_groups,"},{"line_number":31,"context_line":"    \u0027hints\u0027: parameter_types.hints,"},{"line_number":32,"context_line":"    \u0027network\u0027: parameter_types.network"},{"line_number":33,"context_line":"}"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"container_create \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_d282c84f","line":32,"range":{"start_line":32,"start_character":5,"end_line":32,"end_character":12},"in_reply_to":"3f1d235d_bb94d9e9","updated":"2017-06-30 03:16:40.000000000","message":"according to the add port-id comments, rename this to nets.","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"}],"zun/common/validation/parameter_types.py":[{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"edbedaf0ed0c54e81b1393948ef7350af2dda878","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    \u0027type\u0027: [\u0027object\u0027, \u0027null\u0027]"},{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"network \u003d {"},{"line_number":109,"context_line":"    \u0027type\u0027: [\u0027array\u0027]"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_8de1e401","line":108,"range":{"start_line":108,"start_character":0,"end_line":108,"end_character":7},"updated":"2017-06-29 18:16:57.000000000","message":"networks","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"8d2e6a44b7cda12ffde57c3bef08c7c776830c80","unresolved":false,"context_lines":[{"line_number":105,"context_line":"    \u0027type\u0027: [\u0027object\u0027, \u0027null\u0027]"},{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"network \u003d {"},{"line_number":109,"context_line":"    \u0027type\u0027: [\u0027array\u0027]"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_b2974c91","line":108,"range":{"start_line":108,"start_character":0,"end_line":108,"end_character":7},"in_reply_to":"3f1d235d_8de1e401","updated":"2017-06-30 03:16:40.000000000","message":"Done","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"},{"author":{"_account_id":25026,"name":"Bin Zhou","email":"lakerzhou@gmail.com","username":"lakerzhou"},"change_message_id":"edbedaf0ed0c54e81b1393948ef7350af2dda878","unresolved":false,"context_lines":[{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"network \u003d {"},{"line_number":109,"context_line":"    \u0027type\u0027: [\u0027array\u0027]"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"environment \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_306343df","line":109,"range":{"start_line":109,"start_character":4,"end_line":109,"end_character":21},"updated":"2017-06-29 18:16:57.000000000","message":"essentially, a container connects a network through a (neutron) port or (CNM) endpoint. In either case, I am thinking the data model should have port-id. For example, after a container restarts, it should connect to the same port that it uses before. I am not sure how existing zun/kuryr implementation supports this. Any thoughts?","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"51b7b909f8e813df5dda73a027d00f824c2ca294","unresolved":false,"context_lines":[{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"network \u003d {"},{"line_number":109,"context_line":"    \u0027type\u0027: [\u0027array\u0027]"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"environment \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_718f61cc","line":109,"range":{"start_line":109,"start_character":4,"end_line":109,"end_character":21},"in_reply_to":"3f1d235d_12d7204e","updated":"2017-06-30 14:10:25.000000000","message":"For me, the style below looks inconsistent:\n\n  u\u0027networks\u0027: [u\u0027test\u0027, u\u0027test2\u0027]\n\nHow about changing it to:\n\n  u\u0027net-name\u0027: u\u0027test\u0027, u\u0027net-name\u0027: u\u0027test2\u0027","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"8d2e6a44b7cda12ffde57c3bef08c7c776830c80","unresolved":false,"context_lines":[{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"network \u003d {"},{"line_number":109,"context_line":"    \u0027type\u0027: [\u0027array\u0027]"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"environment \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_12d7204e","line":109,"range":{"start_line":109,"start_character":4,"end_line":109,"end_character":21},"in_reply_to":"3f1d235d_306343df","updated":"2017-06-30 03:16:40.000000000","message":"I refactored the CLI like below:\nzun create --nets networks\u003dtest --nets networks\u003dtest2 --nets port-id\u003d\u00271234567\u0027 --nets v4-fixed-ip\u003d\u0027127.0.0.1\u0027 --nets v6-fixed-ip\u003d\u00272f:33:45\u0027 nginx bash\n\nThe data model pass to api like below:\n{u\u0027port-id\u0027: u\u00271234567\u0027, u\u0027v4-fixed-ip\u0027: u\u0027127.0.0.1\u0027, u\u0027networks\u0027: [u\u0027test\u0027, u\u0027test2\u0027], u\u0027v6-fixed-ip\u0027: u\u00272f:33:45\u0027}\n\nDoes this make sense?","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"ccfcb7905455ace45eeeb089ab038df704d36dd8","unresolved":false,"context_lines":[{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"network \u003d {"},{"line_number":109,"context_line":"    \u0027type\u0027: [\u0027array\u0027]"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"environment \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_971414a2","line":109,"range":{"start_line":109,"start_character":4,"end_line":109,"end_character":21},"in_reply_to":"3f1d235d_372b0031","updated":"2017-07-03 01:32:08.000000000","message":"Sorry, my mistake. I wonder if the data model pass to api could be (or an alternative that could represent a list of networks):\n\n  [{u\u0027port-id\u0027: u\u00271234567\u0027},\n   {u\u0027v4-fixed-ip\u0027: u\u0027127.0.0.1\u0027},\n   {u\u0027net-name\u0027: u\u0027test\u0027},\n   {u\u0027net-name\u0027: u\u0027test2\u0027},\n   {u\u0027v6-fixed-ip\u0027: u\u00272f:33:45\u0027}]\n\nThe data passed to api should be a list that could represent multiple networks. Each \u0027network\u0027 could be specified by a neutron port ID, a fixed IP addresses, and/or a neutron net name. It might be used combinatorially. For example:\n\n  [{u\u0027port-id\u0027: u\u00271234567\u0027, u\u0027net-name\u0027: u\u0027test\u0027},\n   {u\u0027net-name\u0027: u\u0027test2\u0027, u\u0027v4-fixed-ip\u0027: u\u0027127.0.0.1\u0027, u\u0027v6-fixed-ip\u0027: u\u00272f:33:45\u0027}]\n\nFor each item in the list, Zun could create a neutron port accordingly, and bind each port to the container.","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"7143d8240ffdb3ff343cbde72f6c946b874ba369","unresolved":false,"context_lines":[{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"network \u003d {"},{"line_number":109,"context_line":"    \u0027type\u0027: [\u0027array\u0027]"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"environment \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_372b0031","line":109,"range":{"start_line":109,"start_character":4,"end_line":109,"end_character":21},"in_reply_to":"3f1d235d_718f61cc","updated":"2017-07-03 01:10:25.000000000","message":"I guess the json dict cannot have save key with different value.","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"646b96a74e2a970e416b2bbb35cee3013996617e","unresolved":false,"context_lines":[{"line_number":106,"context_line":"}"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"network \u003d {"},{"line_number":109,"context_line":"    \u0027type\u0027: [\u0027array\u0027]"},{"line_number":110,"context_line":"}"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"environment \u003d {"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f1d235d_a2547022","line":109,"range":{"start_line":109,"start_character":4,"end_line":109,"end_character":21},"in_reply_to":"3f1d235d_971414a2","updated":"2017-07-03 02:49:17.000000000","message":"Sounds good, nova use the networkrequest to wrap the request which contains network, port, fixed ip. Will refactor the request to a list of network request.","commit_id":"dc5d246a4ce75c660bee3028292eaf18918dfcfe"}],"zun/container/docker/driver.py":[{"author":{"_account_id":16277,"name":"Pradeep Kumar Singh","email":"ps4openstack@gmail.com","username":"pradeep_singh"},"change_message_id":"e86bc65f6ef3f6c1bcfdb05cfe51982d01dbc031","unresolved":false,"context_lines":[{"line_number":723,"context_line":"        msg \u003d \"NovaDockerDriver does not support security_groups\""},{"line_number":724,"context_line":"        raise exception.ZunException(msg)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"    def create_sandbox(self, context, container, key_name\u003dNone,"},{"line_number":727,"context_line":"                       flavor\u003d\u0027m1.tiny\u0027, image\u003d\u0027kubernetes/pause\u0027,"},{"line_number":728,"context_line":"                       nics\u003d\u0027auto\u0027):"},{"line_number":729,"context_line":"        # FIXME(hongbin): We elevate to admin privilege because the default"},{"line_number":730,"context_line":"        # policy in nova disallows non-admin users to create instance in"},{"line_number":731,"context_line":"        # specified host. This is not ideal because all nova instances will"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_34cefa81","line":728,"range":{"start_line":726,"start_character":4,"end_line":728,"end_character":36},"updated":"2017-07-05 18:38:41.000000000","message":"is it not applicable here?","commit_id":"e2a2173cb18b23e6f092e9ab2b61062207b16145"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"3c013088070ddbc9863e9d4412288d7125bc5c79","unresolved":false,"context_lines":[{"line_number":723,"context_line":"        msg \u003d \"NovaDockerDriver does not support security_groups\""},{"line_number":724,"context_line":"        raise exception.ZunException(msg)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"    def create_sandbox(self, context, container, key_name\u003dNone,"},{"line_number":727,"context_line":"                       flavor\u003d\u0027m1.tiny\u0027, image\u003d\u0027kubernetes/pause\u0027,"},{"line_number":728,"context_line":"                       nics\u003d\u0027auto\u0027):"},{"line_number":729,"context_line":"        # FIXME(hongbin): We elevate to admin privilege because the default"},{"line_number":730,"context_line":"        # policy in nova disallows non-admin users to create instance in"},{"line_number":731,"context_line":"        # specified host. This is not ideal because all nova instances will"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_8f3c912f","line":728,"range":{"start_line":726,"start_character":4,"end_line":728,"end_character":36},"in_reply_to":"3f1d235d_34cefa81","updated":"2017-07-06 03:07:01.000000000","message":"I guess NovaDockerDriver do not support here. Refer to https://github.com/openstack/zun/blob/master/nova/virt/zun/driver.py#L496, NoavDockerDriver is disabled by default.\n\nI think is need to enhance, but seems not a trivial task. I would like to support DockerDriver first, then enhance this later.\n\nWhat do you think. Let\u0027s discuss this next team meeting.","commit_id":"e2a2173cb18b23e6f092e9ab2b61062207b16145"},{"author":{"_account_id":8264,"name":"Shunli Zhou","username":"ShunliZhou"},"change_message_id":"1314c98bd849820523b4bf79c5bd34f6a6d33796","unresolved":false,"context_lines":[{"line_number":723,"context_line":"        msg \u003d \"NovaDockerDriver does not support security_groups\""},{"line_number":724,"context_line":"        raise exception.ZunException(msg)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"    def create_sandbox(self, context, container, key_name\u003dNone,"},{"line_number":727,"context_line":"                       flavor\u003d\u0027m1.tiny\u0027, image\u003d\u0027kubernetes/pause\u0027,"},{"line_number":728,"context_line":"                       nics\u003d\u0027auto\u0027):"},{"line_number":729,"context_line":"        # FIXME(hongbin): We elevate to admin privilege because the default"},{"line_number":730,"context_line":"        # policy in nova disallows non-admin users to create instance in"},{"line_number":731,"context_line":"        # specified host. This is not ideal because all nova instances will"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_ac107b58","line":728,"range":{"start_line":726,"start_character":4,"end_line":728,"end_character":36},"in_reply_to":"3f1d235d_34cefa81","updated":"2017-07-06 02:34:46.000000000","message":"good question. Let me seem how to resolve this.","commit_id":"e2a2173cb18b23e6f092e9ab2b61062207b16145"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"456dfc764bcb295b6402ee2a8e990cf3e8804b08","unresolved":false,"context_lines":[{"line_number":723,"context_line":"        msg \u003d \"NovaDockerDriver does not support security_groups\""},{"line_number":724,"context_line":"        raise exception.ZunException(msg)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"    def create_sandbox(self, context, container, key_name\u003dNone,"},{"line_number":727,"context_line":"                       flavor\u003d\u0027m1.tiny\u0027, image\u003d\u0027kubernetes/pause\u0027,"},{"line_number":728,"context_line":"                       nics\u003d\u0027auto\u0027):"},{"line_number":729,"context_line":"        # FIXME(hongbin): We elevate to admin privilege because the default"},{"line_number":730,"context_line":"        # policy in nova disallows non-admin users to create instance in"},{"line_number":731,"context_line":"        # specified host. This is not ideal because all nova instances will"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f1d235d_9b415aac","line":728,"range":{"start_line":726,"start_character":4,"end_line":728,"end_character":36},"in_reply_to":"3f1d235d_8f3c912f","updated":"2017-07-06 14:24:55.000000000","message":"Shunli and Pradeep,\n\nI am going to propose to deprecate the NovaDocker driver. This drive was proposed because the native driver didn\u0027t integrate with neutron in before so I proposed to introduce another driver and leverage Nova\u0027s capability for establishing the network. This driver is a good experiment but as kuryr integration is completed now, we doesn\u0027t seem to need this driver anymore. I had a few WIP patches to move this driver to /contrib folder and will bring up the discussion about that. We can definitely add this to the agenda of the next team meeting.","commit_id":"e2a2173cb18b23e6f092e9ab2b61062207b16145"}]}
