)]}'
{"heat/engine/resources/neutron/loadbalancer.py":[{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"b504bbed34f827b532833552605a3adf8ce334db","unresolved":false,"context_lines":[{"line_number":332,"context_line":"            \u0027Type\u0027: \u0027Integer\u0027,"},{"line_number":333,"context_line":"            \u0027UpdateAllowed\u0027: True,"},{"line_number":334,"context_line":"            \u0027Description\u0027: _(\u0027Weight of pool member in the pool \u0027"},{"line_number":335,"context_line":"                             \u0027(default to 1)\u0027),"},{"line_number":336,"context_line":"            \u0027MinValue\u0027: 0,"},{"line_number":337,"context_line":"            \u0027MaxValue\u0027: 256"},{"line_number":338,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9vDY%3D","line":335,"updated":"2013-12-06 16:08:25.000000000","message":"Please add \u0027.\u0027 at the end ;)","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"0442403e85283164cc5f4498d0d354605ef7ff54","unresolved":false,"context_lines":[{"line_number":332,"context_line":"            \u0027Type\u0027: \u0027Integer\u0027,"},{"line_number":333,"context_line":"            \u0027UpdateAllowed\u0027: True,"},{"line_number":334,"context_line":"            \u0027Description\u0027: _(\u0027Weight of pool member in the pool \u0027"},{"line_number":335,"context_line":"                             \u0027(default to 1)\u0027),"},{"line_number":336,"context_line":"            \u0027MinValue\u0027: 0,"},{"line_number":337,"context_line":"            \u0027MaxValue\u0027: 256"},{"line_number":338,"context_line":"        },"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9unE%3D","line":335,"in_reply_to":"AAAATn%2F9vDY%3D","updated":"2013-12-06 16:47:27.000000000","message":"Done","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"b504bbed34f827b532833552605a3adf8ce334db","unresolved":false,"context_lines":[{"line_number":340,"context_line":"            \u0027Type\u0027: \u0027Boolean\u0027,"},{"line_number":341,"context_line":"            \u0027Default\u0027: True,"},{"line_number":342,"context_line":"            \u0027UpdateAllowed\u0027: True,"},{"line_number":343,"context_line":"            \u0027Description\u0027: _(\u0027The administrative state of the health \u0027"},{"line_number":344,"context_line":"                             \u0027monitor.\u0027)"},{"line_number":345,"context_line":"        }"},{"line_number":346,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9vD8%3D","line":343,"updated":"2013-12-06 16:08:25.000000000","message":"typo: health monitor?","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"0442403e85283164cc5f4498d0d354605ef7ff54","unresolved":false,"context_lines":[{"line_number":340,"context_line":"            \u0027Type\u0027: \u0027Boolean\u0027,"},{"line_number":341,"context_line":"            \u0027Default\u0027: True,"},{"line_number":342,"context_line":"            \u0027UpdateAllowed\u0027: True,"},{"line_number":343,"context_line":"            \u0027Description\u0027: _(\u0027The administrative state of the health \u0027"},{"line_number":344,"context_line":"                             \u0027monitor.\u0027)"},{"line_number":345,"context_line":"        }"},{"line_number":346,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9um8%3D","line":343,"in_reply_to":"AAAATn%2F9vD8%3D","updated":"2013-12-06 16:47:27.000000000","message":"Done","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"b504bbed34f827b532833552605a3adf8ce334db","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        \u0027address\u0027: _(\u0027IP address of the pool member.\u0027),"},{"line_number":354,"context_line":"        \u0027pool_id\u0027: _(\u0027The ID of the load balancing pool.\u0027),"},{"line_number":355,"context_line":"        \u0027protocol_port\u0027: _(\u0027TCP port on which the pool member listens for\u0027"},{"line_number":356,"context_line":"                           \u0027requests or connections.\u0027),"},{"line_number":357,"context_line":"        \u0027show\u0027: _(\u0027All attributes.\u0027),"},{"line_number":358,"context_line":"    }"},{"line_number":359,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9vF8%3D","line":356,"updated":"2013-12-06 16:08:25.000000000","message":"May be add \"status\" attribute?","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"3d4ca86206753518b3887d0787690ee924dfb1cf","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        \u0027address\u0027: _(\u0027IP address of the pool member.\u0027),"},{"line_number":354,"context_line":"        \u0027pool_id\u0027: _(\u0027The ID of the load balancing pool.\u0027),"},{"line_number":355,"context_line":"        \u0027protocol_port\u0027: _(\u0027TCP port on which the pool member listens for\u0027"},{"line_number":356,"context_line":"                           \u0027requests or connections.\u0027),"},{"line_number":357,"context_line":"        \u0027show\u0027: _(\u0027All attributes.\u0027),"},{"line_number":358,"context_line":"    }"},{"line_number":359,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9uT0%3D","line":356,"in_reply_to":"AAAATn%2F9um4%3D","updated":"2013-12-06 18:08:49.000000000","message":"Ok. Thanks, that is enough explananion for me)","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"0442403e85283164cc5f4498d0d354605ef7ff54","unresolved":false,"context_lines":[{"line_number":353,"context_line":"        \u0027address\u0027: _(\u0027IP address of the pool member.\u0027),"},{"line_number":354,"context_line":"        \u0027pool_id\u0027: _(\u0027The ID of the load balancing pool.\u0027),"},{"line_number":355,"context_line":"        \u0027protocol_port\u0027: _(\u0027TCP port on which the pool member listens for\u0027"},{"line_number":356,"context_line":"                           \u0027requests or connections.\u0027),"},{"line_number":357,"context_line":"        \u0027show\u0027: _(\u0027All attributes.\u0027),"},{"line_number":358,"context_line":"    }"},{"line_number":359,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9um4%3D","line":356,"in_reply_to":"AAAATn%2F9vF8%3D","updated":"2013-12-06 16:47:27.000000000","message":"We haven\u0027t exposed it in the other resources, it feels a bit weird. It\u0027s available via show if necessary.","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"b504bbed34f827b532833552605a3adf8ce334db","unresolved":false,"context_lines":[{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    def handle_delete(self):"},{"line_number":395,"context_line":"        if not self.resource_id:"},{"line_number":396,"context_line":"            return"},{"line_number":397,"context_line":"        client \u003d self.neutron()"},{"line_number":398,"context_line":"        try:"},{"line_number":399,"context_line":"            client.delete_member(self.resource_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9u7U%3D","line":396,"updated":"2013-12-06 16:08:25.000000000","message":"if not self.resource_id:\n\nAlso about similar behavior of delete for neutron resources. I think will be better without this check. Other way it is adding this code to other delete functions.","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"0442403e85283164cc5f4498d0d354605ef7ff54","unresolved":false,"context_lines":[{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    def handle_delete(self):"},{"line_number":395,"context_line":"        if not self.resource_id:"},{"line_number":396,"context_line":"            return"},{"line_number":397,"context_line":"        client \u003d self.neutron()"},{"line_number":398,"context_line":"        try:"},{"line_number":399,"context_line":"            client.delete_member(self.resource_id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9ums%3D","line":396,"in_reply_to":"AAAATn%2F9u7U%3D","updated":"2013-12-06 16:47:27.000000000","message":"Yeah there is a little of cargo cult here. I removed it for now.","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"b504bbed34f827b532833552605a3adf8ce334db","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        except NeutronClientException as ex:"},{"line_number":401,"context_line":"            if ex.status_code !\u003d 404:"},{"line_number":402,"context_line":"                raise ex"},{"line_number":403,"context_line":"        self.resource_id_set(None)"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"class LoadBalancer(resource.Resource):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9u8c%3D","line":403,"updated":"2013-12-06 16:08:25.000000000","message":"I think, that will be correct make similar delete like other resources.\nI mean add \nelse:\n   return scheduler.TaskRunner(self._confirm_delete)()","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"0442403e85283164cc5f4498d0d354605ef7ff54","unresolved":false,"context_lines":[{"line_number":400,"context_line":"        except NeutronClientException as ex:"},{"line_number":401,"context_line":"            if ex.status_code !\u003d 404:"},{"line_number":402,"context_line":"                raise ex"},{"line_number":403,"context_line":"        self.resource_id_set(None)"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"class LoadBalancer(resource.Resource):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9umo%3D","line":403,"in_reply_to":"AAAATn%2F9u8c%3D","updated":"2013-12-06 16:47:27.000000000","message":"Done","commit_id":"3d687537fb9feb1b500bfc1e6d80718d40fb49c4"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"af25b64ffe09ccf0ddaca34f8a3f4204335b0b60","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    A resource to handle load balancer members."},{"line_number":310,"context_line":"    \"\"\""},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    properties_schema \u003d {"},{"line_number":313,"context_line":"        \u0027pool_id\u0027: {"},{"line_number":314,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":315,"context_line":"            \u0027Required\u0027: True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9ugw%3D","line":312,"updated":"2013-12-06 17:07:11.000000000","message":"I know its a PITA, but I think this should be expressed using the properties.SCHEMA since that\u0027s the convention for new resources (and something that should be refactored in existing ones when possible).","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"521424e2357ef9fe127fb287ba91b594bc6223fe","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    A resource to handle load balancer members."},{"line_number":310,"context_line":"    \"\"\""},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    properties_schema \u003d {"},{"line_number":313,"context_line":"        \u0027pool_id\u0027: {"},{"line_number":314,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":315,"context_line":"            \u0027Required\u0027: True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9t5M%3D","line":312,"in_reply_to":"AAAATn%2F9uCU%3D","updated":"2013-12-06 19:46:02.000000000","message":"Thanks) I certainly familiar with this","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"1fcbc235cb183d5c44c0d4a7be40ed714b995f90","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    A resource to handle load balancer members."},{"line_number":310,"context_line":"    \"\"\""},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    properties_schema \u003d {"},{"line_number":313,"context_line":"        \u0027pool_id\u0027: {"},{"line_number":314,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":315,"context_line":"            \u0027Required\u0027: True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9uCU%3D","line":312,"in_reply_to":"AAAATn%2F9uTA%3D","updated":"2013-12-06 19:12:53.000000000","message":"@Sergey: There\u0027s a \"new\" object-oriented way to define properties schema. An example: https://github.com/openstack/heat/blob/master/heat/engine/resources/resource_group.py","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"b17424912344626b67981cbe80147f4850cb7965","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    A resource to handle load balancer members."},{"line_number":310,"context_line":"    \"\"\""},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    properties_schema \u003d {"},{"line_number":313,"context_line":"        \u0027pool_id\u0027: {"},{"line_number":314,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":315,"context_line":"            \u0027Required\u0027: True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9uTA%3D","line":312,"in_reply_to":"AAAATn%2F9ugw%3D","updated":"2013-12-06 19:08:24.000000000","message":"@Randall: You mean, that all new resources should have similar properties.SCHEMA ?\nCould you please me provide (just for growth level of expertise) description about it.","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"c8d8e03159f2d1e9bbc8607da4be71234a0c92f2","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    A resource to handle load balancer members."},{"line_number":310,"context_line":"    \"\"\""},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    properties_schema \u003d {"},{"line_number":313,"context_line":"        \u0027pool_id\u0027: {"},{"line_number":314,"context_line":"            \u0027Type\u0027: \u0027String\u0027,"},{"line_number":315,"context_line":"            \u0027Required\u0027: True,"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p2w%3D","line":312,"in_reply_to":"AAAATn%2F9ugw%3D","updated":"2013-12-09 08:44:00.000000000","message":"Done","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":8844,"name":"Mitsuru Kanabuchi","email":"kanabuchi.mitsuru@po.ntts.co.jp","username":"kanabuchi"},"change_message_id":"99e823fea87b72296f12e52423b810a45829a600","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                             \u0027pool network.\u0027)"},{"line_number":324,"context_line":"        },"},{"line_number":325,"context_line":"        \u0027protocol_port\u0027: {"},{"line_number":326,"context_line":"            \u0027Type\u0027: \u0027Integer\u0027,"},{"line_number":327,"context_line":"            \u0027Required\u0027: True,"},{"line_number":328,"context_line":"            \u0027Description\u0027: _(\u0027TCP port on which the pool member listens \u0027"},{"line_number":329,"context_line":"                             \u0027for requests or connections.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p8U%3D","line":326,"updated":"2013-12-09 08:42:53.000000000","message":"I think, Min/MaxValue (0 to 65535) can set to protocol_port.","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"53f0b1b08f7c707a7d7da8056a91c1f5e9db8c00","unresolved":false,"context_lines":[{"line_number":323,"context_line":"                             \u0027pool network.\u0027)"},{"line_number":324,"context_line":"        },"},{"line_number":325,"context_line":"        \u0027protocol_port\u0027: {"},{"line_number":326,"context_line":"            \u0027Type\u0027: \u0027Integer\u0027,"},{"line_number":327,"context_line":"            \u0027Required\u0027: True,"},{"line_number":328,"context_line":"            \u0027Description\u0027: _(\u0027TCP port on which the pool member listens \u0027"},{"line_number":329,"context_line":"                             \u0027for requests or connections.\u0027),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p0U%3D","line":326,"in_reply_to":"AAAATn%2F9p8U%3D","updated":"2013-12-09 08:49:39.000000000","message":"Done","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"af25b64ffe09ccf0ddaca34f8a3f4204335b0b60","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        \u0027weight\u0027: {"},{"line_number":332,"context_line":"            \u0027Type\u0027: \u0027Integer\u0027,"},{"line_number":333,"context_line":"            \u0027UpdateAllowed\u0027: True,"},{"line_number":334,"context_line":"            \u0027Description\u0027: _(\u0027Weight of pool member in the pool \u0027"},{"line_number":335,"context_line":"                             \u0027(default to 1).\u0027),"},{"line_number":336,"context_line":"            \u0027MinValue\u0027: 0,"},{"line_number":337,"context_line":"            \u0027MaxValue\u0027: 256"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9ukU%3D","line":334,"updated":"2013-12-06 17:07:11.000000000","message":"Missing Default value. Probably something the service itself does, but IMO, default should be explicit.","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"c8d8e03159f2d1e9bbc8607da4be71234a0c92f2","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        \u0027weight\u0027: {"},{"line_number":332,"context_line":"            \u0027Type\u0027: \u0027Integer\u0027,"},{"line_number":333,"context_line":"            \u0027UpdateAllowed\u0027: True,"},{"line_number":334,"context_line":"            \u0027Description\u0027: _(\u0027Weight of pool member in the pool \u0027"},{"line_number":335,"context_line":"                             \u0027(default to 1).\u0027),"},{"line_number":336,"context_line":"            \u0027MinValue\u0027: 0,"},{"line_number":337,"context_line":"            \u0027MaxValue\u0027: 256"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p2Y%3D","line":334,"in_reply_to":"AAAATn%2F9ukU%3D","updated":"2013-12-09 08:44:00.000000000","message":"I left it empty on purpose, because the service provides a default value. I have mixed feelings about that, if you feel strongly about it I can put the default but I feel like repeating it.","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"b17424912344626b67981cbe80147f4850cb7965","unresolved":false,"context_lines":[{"line_number":331,"context_line":"        \u0027weight\u0027: {"},{"line_number":332,"context_line":"            \u0027Type\u0027: \u0027Integer\u0027,"},{"line_number":333,"context_line":"            \u0027UpdateAllowed\u0027: True,"},{"line_number":334,"context_line":"            \u0027Description\u0027: _(\u0027Weight of pool member in the pool \u0027"},{"line_number":335,"context_line":"                             \u0027(default to 1).\u0027),"},{"line_number":336,"context_line":"            \u0027MinValue\u0027: 0,"},{"line_number":337,"context_line":"            \u0027MaxValue\u0027: 256"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9uRQ%3D","line":334,"in_reply_to":"AAAATn%2F9ukU%3D","updated":"2013-12-06 19:08:24.000000000","message":"Yeah. I was confused too, but for me it was not very important, because it works correct.\nIMO it just make code more clarify understandable. \nCurently you read description and think: \u0027default is 1, where?\u0027\nNotice, when you add default, please remove lines:\n\t378\t        if weight is not None:\n\t379\t            params[\u0027weight\u0027] \u003d weight","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"af25b64ffe09ccf0ddaca34f8a3f4204335b0b60","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        \u0027admin_state_up\u0027: _(\u0027The administrative state of this pool \u0027"},{"line_number":349,"context_line":"                            \u0027member.\u0027),"},{"line_number":350,"context_line":"        \u0027tenant_id\u0027: _(\u0027Tenant owning the pool member.\u0027),"},{"line_number":351,"context_line":"        \u0027weight\u0027: _(\u0027Weight of the pool member in the pool.\u0027),"},{"line_number":352,"context_line":"        \u0027address\u0027: _(\u0027IP address of the pool member.\u0027),"},{"line_number":353,"context_line":"        \u0027pool_id\u0027: _(\u0027The ID of the load balancing pool.\u0027),"},{"line_number":354,"context_line":"        \u0027protocol_port\u0027: _(\u0027TCP port on which the pool member listens for\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9uj0%3D","line":351,"updated":"2013-12-06 17:07:11.000000000","message":"Can weight, address, pool_id, and protocol_port differ from the value of their respective properties? NBD, but I can\u0027t recall if we should by convention repeat these as attributes (for, say, get_attr purposes) since we can get these values from the properties.","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"521424e2357ef9fe127fb287ba91b594bc6223fe","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        \u0027admin_state_up\u0027: _(\u0027The administrative state of this pool \u0027"},{"line_number":349,"context_line":"                            \u0027member.\u0027),"},{"line_number":350,"context_line":"        \u0027tenant_id\u0027: _(\u0027Tenant owning the pool member.\u0027),"},{"line_number":351,"context_line":"        \u0027weight\u0027: _(\u0027Weight of the pool member in the pool.\u0027),"},{"line_number":352,"context_line":"        \u0027address\u0027: _(\u0027IP address of the pool member.\u0027),"},{"line_number":353,"context_line":"        \u0027pool_id\u0027: _(\u0027The ID of the load balancing pool.\u0027),"},{"line_number":354,"context_line":"        \u0027protocol_port\u0027: _(\u0027TCP port on which the pool member listens for\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9t0E%3D","line":351,"in_reply_to":"AAAATn%2F9uBg%3D","updated":"2013-12-06 19:46:02.000000000","message":"@Randall: it\u0027s normal, I think)","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7256,"name":"Randall Burt","email":"randall.burt@rackspace.com","username":"randall-burt"},"change_message_id":"1fcbc235cb183d5c44c0d4a7be40ed714b995f90","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        \u0027admin_state_up\u0027: _(\u0027The administrative state of this pool \u0027"},{"line_number":349,"context_line":"                            \u0027member.\u0027),"},{"line_number":350,"context_line":"        \u0027tenant_id\u0027: _(\u0027Tenant owning the pool member.\u0027),"},{"line_number":351,"context_line":"        \u0027weight\u0027: _(\u0027Weight of the pool member in the pool.\u0027),"},{"line_number":352,"context_line":"        \u0027address\u0027: _(\u0027IP address of the pool member.\u0027),"},{"line_number":353,"context_line":"        \u0027pool_id\u0027: _(\u0027The ID of the load balancing pool.\u0027),"},{"line_number":354,"context_line":"        \u0027protocol_port\u0027: _(\u0027TCP port on which the pool member listens for\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9uBg%3D","line":351,"in_reply_to":"AAAATn%2F9uDY%3D","updated":"2013-12-06 19:12:53.000000000","message":"@Sergey understood, was just wondering why they\u0027d need to be exposed as attributes when they have matching property definitions. IIRC this is kinda a grey area convention-wise.","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":6577,"name":"Sergey Kraynev","email":"sergejyit@gmail.com","username":"skraynev"},"change_message_id":"b17424912344626b67981cbe80147f4850cb7965","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        \u0027admin_state_up\u0027: _(\u0027The administrative state of this pool \u0027"},{"line_number":349,"context_line":"                            \u0027member.\u0027),"},{"line_number":350,"context_line":"        \u0027tenant_id\u0027: _(\u0027Tenant owning the pool member.\u0027),"},{"line_number":351,"context_line":"        \u0027weight\u0027: _(\u0027Weight of the pool member in the pool.\u0027),"},{"line_number":352,"context_line":"        \u0027address\u0027: _(\u0027IP address of the pool member.\u0027),"},{"line_number":353,"context_line":"        \u0027pool_id\u0027: _(\u0027The ID of the load balancing pool.\u0027),"},{"line_number":354,"context_line":"        \u0027protocol_port\u0027: _(\u0027TCP port on which the pool member listens for\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9uDY%3D","line":351,"in_reply_to":"AAAATn%2F9uj0%3D","updated":"2013-12-06 19:08:24.000000000","message":"@Randall: I check it) without duplicate definition get_attr doesn\u0027t work.","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"c8d8e03159f2d1e9bbc8607da4be71234a0c92f2","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        \u0027admin_state_up\u0027: _(\u0027The administrative state of this pool \u0027"},{"line_number":349,"context_line":"                            \u0027member.\u0027),"},{"line_number":350,"context_line":"        \u0027tenant_id\u0027: _(\u0027Tenant owning the pool member.\u0027),"},{"line_number":351,"context_line":"        \u0027weight\u0027: _(\u0027Weight of the pool member in the pool.\u0027),"},{"line_number":352,"context_line":"        \u0027address\u0027: _(\u0027IP address of the pool member.\u0027),"},{"line_number":353,"context_line":"        \u0027pool_id\u0027: _(\u0027The ID of the load balancing pool.\u0027),"},{"line_number":354,"context_line":"        \u0027protocol_port\u0027: _(\u0027TCP port on which the pool member listens for\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p18%3D","line":351,"in_reply_to":"AAAATn%2F9uj0%3D","updated":"2013-12-09 08:44:00.000000000","message":"There is a little bit of cargo cult here, but we\u0027ve been doing that for the other resources. If weight doesn\u0027t have a default it can be useful to retrieve it here, the others are a little bit less interesting.","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":8844,"name":"Mitsuru Kanabuchi","email":"kanabuchi.mitsuru@po.ntts.co.jp","username":"kanabuchi"},"change_message_id":"99e823fea87b72296f12e52423b810a45829a600","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            \u0027protocol_port\u0027: protocol_port"},{"line_number":373,"context_line":"        }"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        if admin_state_up is not None:"},{"line_number":376,"context_line":"            params[\u0027admin_state_up\u0027] \u003d admin_state_up"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        if weight is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p4o%3D","line":375,"updated":"2013-12-09 08:42:53.000000000","message":"This check of admin_state_up isn\u0027t necessary here because it has default value.","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7385,"name":"Thomas Herve","email":"therve@redhat.com","username":"therve"},"change_message_id":"53f0b1b08f7c707a7d7da8056a91c1f5e9db8c00","unresolved":false,"context_lines":[{"line_number":372,"context_line":"            \u0027protocol_port\u0027: protocol_port"},{"line_number":373,"context_line":"        }"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        if admin_state_up is not None:"},{"line_number":376,"context_line":"            params[\u0027admin_state_up\u0027] \u003d admin_state_up"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"        if weight is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F9p0M%3D","line":375,"in_reply_to":"AAAATn%2F9p4o%3D","updated":"2013-12-09 08:49:39.000000000","message":"Done","commit_id":"6eecc23b5ae72a28152bd7ea51e26ecfdaca0af0"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"c1ca71eed4d83cd4e64107dac0aa0811198c3305","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        for member in self.properties.get(\u0027members\u0027):"},{"line_number":425,"context_line":"            address \u003d nova_utils.server_to_ipaddress(nova_client, member)"},{"line_number":426,"context_line":"            lb_member \u003d client.create_member({"},{"line_number":427,"context_line":"                \u0027member\u0027: {"},{"line_number":428,"context_line":"                    \u0027pool_id\u0027: pool,"},{"line_number":429,"context_line":"                    \u0027address\u0027: address,"},{"line_number":430,"context_line":"                    \u0027protocol_port\u0027: protocol_port}})[\u0027member\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9kQQ%3D","line":427,"updated":"2013-12-10 06:31:55.000000000","message":"Please, update handling of Load Balancer creating with new resource PoolMember. Currently they are created in place.","commit_id":"c7e94deadd94c571d576d74b9305daea9ea40374"},{"author":{"_account_id":7225,"name":"Serg Melikyan","email":"smelikyan@mirantis.com","username":"smelikyan"},"change_message_id":"8cdc2bcbb019cb90cd328e8f3fa7bc534e631d17","unresolved":false,"context_lines":[{"line_number":424,"context_line":"        for member in self.properties.get(\u0027members\u0027):"},{"line_number":425,"context_line":"            address \u003d nova_utils.server_to_ipaddress(nova_client, member)"},{"line_number":426,"context_line":"            lb_member \u003d client.create_member({"},{"line_number":427,"context_line":"                \u0027member\u0027: {"},{"line_number":428,"context_line":"                    \u0027pool_id\u0027: pool,"},{"line_number":429,"context_line":"                    \u0027address\u0027: address,"},{"line_number":430,"context_line":"                    \u0027protocol_port\u0027: protocol_port}})[\u0027member\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F9kPk%3D","line":427,"in_reply_to":"AAAATn%2F9kQQ%3D","updated":"2013-12-10 06:37:26.000000000","message":"Or this is leaved for backward compatibility? I think we should remove \u0027members\u0027 field.","commit_id":"c7e94deadd94c571d576d74b9305daea9ea40374"}]}
