)]}'
{"zun/api/controllers/types.py":[{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"c0fff47d20aa715532aa38e1a3c7c87a25b85d1b","unresolved":false,"context_lines":[{"line_number":110,"context_line":"            raise exception.InvalidValue(message\u003dmessage)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        if maximum is not None and value \u003e maximum:"},{"line_number":113,"context_line":"            message \u003d _(\"Integer \u0027%(value)s\u0027 is large than \""},{"line_number":114,"context_line":"                        \"\u0027%(max)d\u0027.\") % {\u0027value\u0027: value, \u0027max\u0027: maximum}"},{"line_number":115,"context_line":"            raise exception.InvalidValue(message\u003dmessage)"},{"line_number":116,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_d3f1a296","line":113,"range":{"start_line":113,"start_character":48,"end_line":113,"end_character":53},"updated":"2016-09-08 09:00:43.000000000","message":"s/large/larger/","commit_id":"86c38251eee61aaa8612026ba8b027d9433b09ac"}],"zun/api/controllers/v1/containers.py":[{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6c72b0b1d65e2626c63984999a4dd140a0788a54","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                \u0027max_length\u0027: 255,"},{"line_number":89,"context_line":"            },"},{"line_number":90,"context_line":"        },"},{"line_number":91,"context_line":"        \u0027cpu\u0027: {"},{"line_number":92,"context_line":"            \u0027validate\u0027: types.Integer.validate,"},{"line_number":93,"context_line":"            \u0027validate_args\u0027: {"},{"line_number":94,"context_line":"                \u0027minimum\u0027: 1,"},{"line_number":95,"context_line":"            },"},{"line_number":96,"context_line":"        },"},{"line_number":97,"context_line":"        \u0027memory\u0027: {"},{"line_number":98,"context_line":"            \u0027validate\u0027: types.ContainerMemory.validate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_36dbbe50","line":95,"range":{"start_line":91,"start_character":0,"end_line":95,"end_character":14},"updated":"2016-08-30 01:37:14.000000000","message":"We need to allow a float number such as 0.5","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"},{"author":{"_account_id":11034,"name":"Yanyan Hu","email":"huyanyan84@gmail.com","username":"yanyanhu"},"change_message_id":"a0310d8fedfe99eaad17094c4e91ad32b0f5f256","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                \u0027max_length\u0027: 255,"},{"line_number":89,"context_line":"            },"},{"line_number":90,"context_line":"        },"},{"line_number":91,"context_line":"        \u0027cpu\u0027: {"},{"line_number":92,"context_line":"            \u0027validate\u0027: types.Integer.validate,"},{"line_number":93,"context_line":"            \u0027validate_args\u0027: {"},{"line_number":94,"context_line":"                \u0027minimum\u0027: 1,"},{"line_number":95,"context_line":"            },"},{"line_number":96,"context_line":"        },"},{"line_number":97,"context_line":"        \u0027memory\u0027: {"},{"line_number":98,"context_line":"            \u0027validate\u0027: types.ContainerMemory.validate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_67e04f97","line":95,"range":{"start_line":91,"start_character":0,"end_line":95,"end_character":14},"in_reply_to":"fa7ab95a_2ed117ce","updated":"2016-09-02 03:20:07.000000000","message":"Hi, Hongbin, about CPU UT, I agree with Eli for core number could be more intuitive and easy understanding for end user. Only specifying weight of a single container can not ensure its CPU usage for there could be other containers running beside. And maybe we should also consider to differentiate the \u0027CAP\u0027 and \u0027guarantee\u0027 of resource usage like other COEs do, e.g. k8s. Of course, this is an advanced topic need more thinking and discussion.","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0e93af924e776cbd804e7d0b8c8aee708d764047","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                \u0027max_length\u0027: 255,"},{"line_number":89,"context_line":"            },"},{"line_number":90,"context_line":"        },"},{"line_number":91,"context_line":"        \u0027cpu\u0027: {"},{"line_number":92,"context_line":"            \u0027validate\u0027: types.Integer.validate,"},{"line_number":93,"context_line":"            \u0027validate_args\u0027: {"},{"line_number":94,"context_line":"                \u0027minimum\u0027: 1,"},{"line_number":95,"context_line":"            },"},{"line_number":96,"context_line":"        },"},{"line_number":97,"context_line":"        \u0027memory\u0027: {"},{"line_number":98,"context_line":"            \u0027validate\u0027: types.ContainerMemory.validate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_dbeaabda","line":95,"range":{"start_line":91,"start_character":0,"end_line":95,"end_character":14},"in_reply_to":"fa7ab95a_36dbbe50","updated":"2016-09-07 22:10:46.000000000","message":"Done","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"901b5261d095af3733f70d732d6746fc65c27631","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                \u0027max_length\u0027: 255,"},{"line_number":89,"context_line":"            },"},{"line_number":90,"context_line":"        },"},{"line_number":91,"context_line":"        \u0027cpu\u0027: {"},{"line_number":92,"context_line":"            \u0027validate\u0027: types.Integer.validate,"},{"line_number":93,"context_line":"            \u0027validate_args\u0027: {"},{"line_number":94,"context_line":"                \u0027minimum\u0027: 1,"},{"line_number":95,"context_line":"            },"},{"line_number":96,"context_line":"        },"},{"line_number":97,"context_line":"        \u0027memory\u0027: {"},{"line_number":98,"context_line":"            \u0027validate\u0027: types.ContainerMemory.validate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_2ed117ce","line":95,"range":{"start_line":91,"start_character":0,"end_line":95,"end_character":14},"in_reply_to":"fa7ab95a_36dbbe50","updated":"2016-08-31 20:21:47.000000000","message":"It is integer since this is a relative weight: https://docs.docker.com/engine/reference/run/#/cpu-share-constraint .\n\nHowever, I know this is different from Nova which used the number of cores as unit (which is why you suggested 0.5 here). Will find a chance to discuss with the team that which unit makes more sense (number of cores VS relative weight).","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"cb1a9ea1343017c581138fd944444fac44bdeac7","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                \u0027max_length\u0027: 255,"},{"line_number":89,"context_line":"            },"},{"line_number":90,"context_line":"        },"},{"line_number":91,"context_line":"        \u0027cpu\u0027: {"},{"line_number":92,"context_line":"            \u0027validate\u0027: types.Integer.validate,"},{"line_number":93,"context_line":"            \u0027validate_args\u0027: {"},{"line_number":94,"context_line":"                \u0027minimum\u0027: 1,"},{"line_number":95,"context_line":"            },"},{"line_number":96,"context_line":"        },"},{"line_number":97,"context_line":"        \u0027memory\u0027: {"},{"line_number":98,"context_line":"            \u0027validate\u0027: types.ContainerMemory.validate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_51d3ecd4","line":95,"range":{"start_line":91,"start_character":0,"end_line":95,"end_character":14},"in_reply_to":"fa7ab95a_67e04f97","updated":"2016-09-02 14:52:54.000000000","message":"yes, make sense. will figure out how to do it in number of cores.\n\nYes, COE differentiate \"cpu requested\" and \"cpu limit\" but Nova doesn\u0027t seem to set the cpu limit. Sure, will find a chance to discuss this further.","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6c72b0b1d65e2626c63984999a4dd140a0788a54","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            \u0027validate\u0027: types.Text.validate,"},{"line_number":105,"context_line":"        },"},{"line_number":106,"context_line":"        \u0027ports\u0027: {"},{"line_number":107,"context_line":"            \u0027validate\u0027: types.List(types.String).validate,"},{"line_number":108,"context_line":"        },"},{"line_number":109,"context_line":"        \u0027hostname\u0027: {"},{"line_number":110,"context_line":"            \u0027validate\u0027: types.String.validate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_96e64a13","line":107,"range":{"start_line":107,"start_character":12,"end_line":107,"end_character":58},"updated":"2016-08-30 01:37:14.000000000","message":"better to have a range of the port.","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"0e93af924e776cbd804e7d0b8c8aee708d764047","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            \u0027validate\u0027: types.Text.validate,"},{"line_number":105,"context_line":"        },"},{"line_number":106,"context_line":"        \u0027ports\u0027: {"},{"line_number":107,"context_line":"            \u0027validate\u0027: types.List(types.String).validate,"},{"line_number":108,"context_line":"        },"},{"line_number":109,"context_line":"        \u0027hostname\u0027: {"},{"line_number":110,"context_line":"            \u0027validate\u0027: types.String.validate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a89bdaa_fbe5af08","line":107,"range":{"start_line":107,"start_character":12,"end_line":107,"end_character":58},"in_reply_to":"fa7ab95a_96e64a13","updated":"2016-09-07 22:10:46.000000000","message":"Done","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"901b5261d095af3733f70d732d6746fc65c27631","unresolved":false,"context_lines":[{"line_number":104,"context_line":"            \u0027validate\u0027: types.Text.validate,"},{"line_number":105,"context_line":"        },"},{"line_number":106,"context_line":"        \u0027ports\u0027: {"},{"line_number":107,"context_line":"            \u0027validate\u0027: types.List(types.String).validate,"},{"line_number":108,"context_line":"        },"},{"line_number":109,"context_line":"        \u0027hostname\u0027: {"},{"line_number":110,"context_line":"            \u0027validate\u0027: types.String.validate,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_6996b995","line":107,"range":{"start_line":107,"start_character":12,"end_line":107,"end_character":58},"in_reply_to":"fa7ab95a_96e64a13","updated":"2016-08-31 20:21:47.000000000","message":"will fix that later","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"},{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"6c72b0b1d65e2626c63984999a4dd140a0788a54","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        \"\"\""},{"line_number":462,"context_line":"        container \u003d _get_container(self.container_id)"},{"line_number":463,"context_line":"        check_policy_on_container(container, \"container:get\")"},{"line_number":464,"context_line":"        context \u003d pecan.request.context"},{"line_number":465,"context_line":"        container \u003d pecan.request.rpcapi.container_show(context, container)"},{"line_number":466,"context_line":"        return Container.convert_with_links(container)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"    @index.when(method\u003d\u0027PATCH\u0027, template\u003d\u0027json\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_76970648","line":465,"range":{"start_line":464,"start_character":0,"end_line":465,"end_character":75},"updated":"2016-08-30 01:37:14.000000000","message":"... this change seems missed in previous review...","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"},{"author":{"_account_id":11536,"name":"hongbin","email":"hongbin034@gmail.com","username":"hongbin"},"change_message_id":"901b5261d095af3733f70d732d6746fc65c27631","unresolved":false,"context_lines":[{"line_number":461,"context_line":"        \"\"\""},{"line_number":462,"context_line":"        container \u003d _get_container(self.container_id)"},{"line_number":463,"context_line":"        check_policy_on_container(container, \"container:get\")"},{"line_number":464,"context_line":"        context \u003d pecan.request.context"},{"line_number":465,"context_line":"        container \u003d pecan.request.rpcapi.container_show(context, container)"},{"line_number":466,"context_line":"        return Container.convert_with_links(container)"},{"line_number":467,"context_line":""},{"line_number":468,"context_line":"    @index.when(method\u003d\u0027PATCH\u0027, template\u003d\u0027json\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa7ab95a_8efdc33d","line":465,"range":{"start_line":464,"start_character":0,"end_line":465,"end_character":75},"in_reply_to":"fa7ab95a_76970648","updated":"2016-08-31 20:21:47.000000000","message":"This is actually a fix. We need pull latest status from rpc, otherwise the returned container will be outdated.","commit_id":"2b68cbc1324dcabbb158f70bc3da919c34e561ae"}]}
