)]}'
{"ironic/nova/virt/ironic/driver.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"10256b0061372233852d5a50bd76e20cde42a5b0","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        :param instance: The instance object."},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"        \"\"\""},{"line_number":385,"context_line":"        icli \u003d client_wrapper.IronicClientWrapper()"},{"line_number":386,"context_line":"        try:"},{"line_number":387,"context_line":"            node \u003d icli.call(\"node.get_by_instance_uuid\", instance[\u0027uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_a23b8fcf","line":384,"updated":"2014-06-04 13:15:53.000000000","message":"Please also document return value","commit_id":"8be12adc97b042c63d4d1d6f02f1b4eac86616c7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"10256b0061372233852d5a50bd76e20cde42a5b0","unresolved":false,"context_lines":[{"line_number":579,"context_line":"    def power_off(self, instance, node\u003dNone):"},{"line_number":580,"context_line":"        \"\"\"Power off the specified instance."},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        :param instance: The instance object."},{"line_number":583,"context_line":""},{"line_number":584,"context_line":"        \"\"\""},{"line_number":585,"context_line":"        # TODO(nobodycam): check the current power state first."}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_a242af3b","line":582,"updated":"2014-06-04 13:15:53.000000000","message":"param node missing","commit_id":"8be12adc97b042c63d4d1d6f02f1b4eac86616c7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"10256b0061372233852d5a50bd76e20cde42a5b0","unresolved":false,"context_lines":[{"line_number":594,"context_line":"        :param context: The security context."},{"line_number":595,"context_line":"        :param instance: The instance object."},{"line_number":596,"context_line":"        :param network_info: Instance network information."},{"line_number":597,"context_line":"        :param block_device_info: Instance block device information."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        \"\"\""},{"line_number":600,"context_line":"        # TODO(nobodycam): check the current power state first."}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_e248375e","line":597,"updated":"2014-06-04 13:15:53.000000000","message":"ditto","commit_id":"8be12adc97b042c63d4d1d6f02f1b4eac86616c7"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"10256b0061372233852d5a50bd76e20cde42a5b0","unresolved":false,"context_lines":[{"line_number":618,"context_line":"        return caps"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"    def manage_image_cache(self, context, all_instances):"},{"line_number":621,"context_line":"        pass"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"    def get_console_output(self, instance):"},{"line_number":624,"context_line":"        \"\"\"Get console output for an instance"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_c266dbec","line":621,"updated":"2014-06-04 13:15:53.000000000","message":"docstring for this?","commit_id":"8be12adc97b042c63d4d1d6f02f1b4eac86616c7"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"8efa9c5f688cb94e6901721b01ff29a5b54c3b54","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        return cls._instance"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def init_host(self, host):"},{"line_number":294,"context_line":"        \"\"\"Initialize anything that is necessary for the driver to function.\"\"\""},{"line_number":295,"context_line":"        return"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def get_hypervisor_type(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_0446b7c0","line":294,"updated":"2014-06-23 09:53:22.000000000","message":"Should we add \"Not implemented for this driver\" or should we describe \"host\" as a parameter?","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e13915b477e2f14763f472293124cd5910286f6b","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        return cls._instance"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def init_host(self, host):"},{"line_number":294,"context_line":"        \"\"\"Initialize anything that is necessary for the driver to function.\"\"\""},{"line_number":295,"context_line":"        return"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    def get_hypervisor_type(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_4b397ff1","line":294,"in_reply_to":"1ae5cdf2_0446b7c0","updated":"2014-06-24 10:30:03.000000000","message":"This is a tricky one, because it\u0027s implemented... we just don\u0027t have anything to initialize anything here to make the driver functional.\n\nwill add the host parameter","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"8efa9c5f688cb94e6901721b01ff29a5b54c3b54","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                for i in node_list]"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    def list_instance_uuids(self):"},{"line_number":336,"context_line":"        \"\"\"Return the UUIDs of all the instances provisioned.\"\"\""},{"line_number":337,"context_line":"        icli \u003d client_wrapper.IronicClientWrapper()"},{"line_number":338,"context_line":"        node_list \u003d icli.call(\"node.list\", associated\u003dTrue)"},{"line_number":339,"context_line":"        return list(set(n.instance_uuid for n in node_list))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_e4a8ebdb","line":336,"updated":"2014-06-23 09:53:22.000000000","message":"...could have a :returns: clause here like what was added in list_instances","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e13915b477e2f14763f472293124cd5910286f6b","unresolved":false,"context_lines":[{"line_number":333,"context_line":"                for i in node_list]"},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"    def list_instance_uuids(self):"},{"line_number":336,"context_line":"        \"\"\"Return the UUIDs of all the instances provisioned.\"\"\""},{"line_number":337,"context_line":"        icli \u003d client_wrapper.IronicClientWrapper()"},{"line_number":338,"context_line":"        node_list \u003d icli.call(\"node.list\", associated\u003dTrue)"},{"line_number":339,"context_line":"        return list(set(n.instance_uuid for n in node_list))"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_06020e72","line":336,"in_reply_to":"1ae5cdf2_e4a8ebdb","updated":"2014-06-24 10:30:03.000000000","message":"done, thanks","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"8efa9c5f688cb94e6901721b01ff29a5b54c3b54","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        \"\"\"Returns the UUID of all nodes managed by Ironic."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":359,"context_line":"            this driver."},{"line_number":360,"context_line":"        :returns: a list of UUIDs"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_843e478a","line":359,"updated":"2014-06-23 09:53:22.000000000","message":"This could be better expressed.  \"refresh: Boolean value: Ignored by this driver\".  You can\u0027t really say what a parameter would do if it were used :)","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e13915b477e2f14763f472293124cd5910286f6b","unresolved":false,"context_lines":[{"line_number":356,"context_line":"        \"\"\"Returns the UUID of all nodes managed by Ironic."},{"line_number":357,"context_line":""},{"line_number":358,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":359,"context_line":"            this driver."},{"line_number":360,"context_line":"        :returns: a list of UUIDs"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_a66cfa9e","line":359,"in_reply_to":"1ae5cdf2_843e478a","updated":"2014-06-24 10:30:03.000000000","message":"Other methods are doing same (see reboot) so I just copied the same style.\n\nThey say what the parameter is about (and the type if needed) and then say \"Ignored by this driver\". Do you think we should change it? If so I will need to change in all the methods.\n\nI will leave it as-is for now until we have a consensus.","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"8efa9c5f688cb94e6901721b01ff29a5b54c3b54","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                block_device_info\u003dNone):"},{"line_number":553,"context_line":"        \"\"\"Destroy the specified instance."},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        If the instance is not found this method will still succeed."},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        :param context: The security context."},{"line_number":558,"context_line":"        :param instance: The instance object."}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_24ebb3dd","line":555,"updated":"2014-06-23 09:53:22.000000000","message":"Not sure this is the best way of saying this, perhaps, \"Destroy the specified instance, if it can be found\" or similar.","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e13915b477e2f14763f472293124cd5910286f6b","unresolved":false,"context_lines":[{"line_number":552,"context_line":"                block_device_info\u003dNone):"},{"line_number":553,"context_line":"        \"\"\"Destroy the specified instance."},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"        If the instance is not found this method will still succeed."},{"line_number":556,"context_line":""},{"line_number":557,"context_line":"        :param context: The security context."},{"line_number":558,"context_line":"        :param instance: The instance object."}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_460df6e7","line":555,"in_reply_to":"1ae5cdf2_24ebb3dd","updated":"2014-06-24 10:30:03.000000000","message":"done, thanks","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"8efa9c5f688cb94e6901721b01ff29a5b54c3b54","unresolved":false,"context_lines":[{"line_number":630,"context_line":"        \"\"\"Return the current state of the host."},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":633,"context_line":"            this driver."},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        \"\"\""},{"line_number":636,"context_line":"        caps \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_44851f09","line":633,"updated":"2014-06-23 09:53:22.000000000","message":"Perhaps reword this as mentioned for get_available_nodes()","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e13915b477e2f14763f472293124cd5910286f6b","unresolved":false,"context_lines":[{"line_number":630,"context_line":"        \"\"\"Return the current state of the host."},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":633,"context_line":"            this driver."},{"line_number":634,"context_line":""},{"line_number":635,"context_line":"        \"\"\""},{"line_number":636,"context_line":"        caps \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_06d12e2f","line":633,"in_reply_to":"1ae5cdf2_44851f09","updated":"2014-06-24 10:30:03.000000000","message":"ditto there","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"8efa9c5f688cb94e6901721b01ff29a5b54c3b54","unresolved":false,"context_lines":[{"line_number":642,"context_line":"        return caps"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    def manage_image_cache(self, context, all_instances):"},{"line_number":645,"context_line":"        \"\"\"Manage the local cache of images.\"\"\""},{"line_number":646,"context_line":"        pass"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def get_console_output(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_24701340","line":645,"updated":"2014-06-23 09:53:22.000000000","message":"Add \"Not implemented for this driver\" ?","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e13915b477e2f14763f472293124cd5910286f6b","unresolved":false,"context_lines":[{"line_number":642,"context_line":"        return caps"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    def manage_image_cache(self, context, all_instances):"},{"line_number":645,"context_line":"        \"\"\"Manage the local cache of images.\"\"\""},{"line_number":646,"context_line":"        pass"},{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def get_console_output(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_c6c10631","line":645,"in_reply_to":"1ae5cdf2_24701340","updated":"2014-06-24 10:30:03.000000000","message":"To be honest I think that it would be better to remove this whole method in case it\u0027s not going to be implemented. I think someone left it here at first as a reminder.\n\nDeleting/Implementing it seems a bit out the scope of this patch tho :/","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"8efa9c5f688cb94e6901721b01ff29a5b54c3b54","unresolved":false,"context_lines":[{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def get_console_output(self, context, instance):"},{"line_number":649,"context_line":"        \"\"\"Get console output for an instance"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"        :param instance: The instance object."},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_448c3f2f","line":650,"updated":"2014-06-23 09:53:22.000000000","message":"missing \"context\" parameter","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e13915b477e2f14763f472293124cd5910286f6b","unresolved":false,"context_lines":[{"line_number":647,"context_line":""},{"line_number":648,"context_line":"    def get_console_output(self, context, instance):"},{"line_number":649,"context_line":"        \"\"\"Get console output for an instance"},{"line_number":650,"context_line":""},{"line_number":651,"context_line":"        :param instance: The instance object."},{"line_number":652,"context_line":""},{"line_number":653,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_46db364f","line":650,"in_reply_to":"1ae5cdf2_448c3f2f","updated":"2014-06-24 10:30:03.000000000","message":"done, thanks","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":8125,"name":"Michael Davies","email":"michael@the-davies.net","username":"mrda"},"change_message_id":"8efa9c5f688cb94e6901721b01ff29a5b54c3b54","unresolved":false,"context_lines":[{"line_number":803,"context_line":"            nova.compute.manager.ComputeManager:_rebuild_default_impl for"},{"line_number":804,"context_line":"            usage."},{"line_number":805,"context_line":"        :param network_info: Instance network information."},{"line_number":806,"context_line":"        :param recreate: Boolean value; if True the instance is being"},{"line_number":807,"context_line":"            recreated on a new hypervisor - all the cleanup of old state"},{"line_number":808,"context_line":"            is skipped."},{"line_number":809,"context_line":"        :param block_device_info: Instance block device information."}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_e4c38b37","line":806,"updated":"2014-06-23 09:53:22.000000000","message":"\"being\" is not needed in this sentence","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e13915b477e2f14763f472293124cd5910286f6b","unresolved":false,"context_lines":[{"line_number":803,"context_line":"            nova.compute.manager.ComputeManager:_rebuild_default_impl for"},{"line_number":804,"context_line":"            usage."},{"line_number":805,"context_line":"        :param network_info: Instance network information."},{"line_number":806,"context_line":"        :param recreate: Boolean value; if True the instance is being"},{"line_number":807,"context_line":"            recreated on a new hypervisor - all the cleanup of old state"},{"line_number":808,"context_line":"            is skipped."},{"line_number":809,"context_line":"        :param block_device_info: Instance block device information."}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_66b752f6","line":806,"in_reply_to":"1ae5cdf2_e4c38b37","updated":"2014-06-24 10:30:03.000000000","message":"done, thanks","commit_id":"d57208047776d90e8c9e25e069ae5ebf4f4e3d4a"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"58a532e694f16c91bdc38739bd712c046e4ce2c7","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        node_list \u003d icli.call(\"node.list\", associated\u003dTrue)"},{"line_number":366,"context_line":"        return list(set(n.instance_uuid for n in node_list))"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    def node_is_available(self, node_id):"},{"line_number":369,"context_line":"        \"\"\"Confirms a Nova hypervisor node exists in the Ironic inventory."},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        :param node_id: The UUID of the node."}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_88645b22","line":368,"updated":"2014-06-24 17:05:56.000000000","message":"This is changing the function signature away from the base class definition and it no longer matches Nova.\n\nPlease leave it as\n\n  def node_is_available(self, nodename):","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"344d0f6d7030c3a4431ef10e7bf7d1cfb100584b","unresolved":false,"context_lines":[{"line_number":365,"context_line":"        node_list \u003d icli.call(\"node.list\", associated\u003dTrue)"},{"line_number":366,"context_line":"        return list(set(n.instance_uuid for n in node_list))"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"    def node_is_available(self, node_id):"},{"line_number":369,"context_line":"        \"\"\"Confirms a Nova hypervisor node exists in the Ironic inventory."},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        :param node_id: The UUID of the node."}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_bc58788b","line":368,"in_reply_to":"1ae5cdf2_88645b22","updated":"2014-06-24 17:26:14.000000000","message":"agreed.","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"58a532e694f16c91bdc38739bd712c046e4ce2c7","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        return self._node_resource(node)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"    def get_info(self, instance):"},{"line_number":412,"context_line":"        \"\"\"Get the current status of an instance."},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        :param instance: the instance object."},{"line_number":415,"context_line":"        :returns: a dictionary containing:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_fcacc0f0","line":412,"updated":"2014-06-24 17:05:56.000000000","message":"Get the current state and resource usage for this instance. Returns NOSTATE and all resources \u003d\u003d 0 if the instance is not found.","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"344d0f6d7030c3a4431ef10e7bf7d1cfb100584b","unresolved":false,"context_lines":[{"line_number":409,"context_line":"        return self._node_resource(node)"},{"line_number":410,"context_line":""},{"line_number":411,"context_line":"    def get_info(self, instance):"},{"line_number":412,"context_line":"        \"\"\"Get the current status of an instance."},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        :param instance: the instance object."},{"line_number":415,"context_line":"        :returns: a dictionary containing:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_3fbc5a06","line":412,"in_reply_to":"1ae5cdf2_fcacc0f0","updated":"2014-06-24 17:26:14.000000000","message":"done, thanks","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"58a532e694f16c91bdc38739bd712c046e4ce2c7","unresolved":false,"context_lines":[{"line_number":439,"context_line":"                }"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def macs_for_instance(self, instance):"},{"line_number":442,"context_line":"        \"\"\"The MAC addresses the instance have associated with it."},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        :param instance: the instance object."},{"line_number":445,"context_line":"        :returns: a list of MAC addresses."}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_9ceadc0c","line":442,"updated":"2014-06-24 17:05:56.000000000","message":"List of MAC addresses for the node which this instance is associated with","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"344d0f6d7030c3a4431ef10e7bf7d1cfb100584b","unresolved":false,"context_lines":[{"line_number":439,"context_line":"                }"},{"line_number":440,"context_line":""},{"line_number":441,"context_line":"    def macs_for_instance(self, instance):"},{"line_number":442,"context_line":"        \"\"\"The MAC addresses the instance have associated with it."},{"line_number":443,"context_line":""},{"line_number":444,"context_line":"        :param instance: the instance object."},{"line_number":445,"context_line":"        :returns: a list of MAC addresses."}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_ffdaf277","line":442,"in_reply_to":"1ae5cdf2_9ceadc0c","updated":"2014-06-24 17:26:14.000000000","message":"too long I will remove the \"addresses\" word to make it fit. Thanks","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"58a532e694f16c91bdc38739bd712c046e4ce2c7","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        icli.call(\"node.set_power_state\", node.uuid, \u0027on\u0027)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"    def get_host_stats(self, refresh\u003dFalse):"},{"line_number":660,"context_line":"        \"\"\"Return the current state of the host."},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":663,"context_line":"            this driver."}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_7c0350be","line":660,"updated":"2014-06-24 17:05:56.000000000","message":"Return the currently known stats for all Ironic nodes.","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"344d0f6d7030c3a4431ef10e7bf7d1cfb100584b","unresolved":false,"context_lines":[{"line_number":657,"context_line":"        icli.call(\"node.set_power_state\", node.uuid, \u0027on\u0027)"},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"    def get_host_stats(self, refresh\u003dFalse):"},{"line_number":660,"context_line":"        \"\"\"Return the current state of the host."},{"line_number":661,"context_line":""},{"line_number":662,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":663,"context_line":"            this driver."}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_dc8464d5","line":660,"in_reply_to":"1ae5cdf2_7c0350be","updated":"2014-06-24 17:26:14.000000000","message":"done, thanks","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"58a532e694f16c91bdc38739bd712c046e4ce2c7","unresolved":false,"context_lines":[{"line_number":671,"context_line":"            caps.append(data)"},{"line_number":672,"context_line":"        return caps"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    def manage_image_cache(self, context, all_instances):"},{"line_number":675,"context_line":"        \"\"\"Manage the local cache of images.\"\"\""},{"line_number":676,"context_line":"        pass"},{"line_number":677,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_3cef08eb","line":674,"updated":"2014-06-24 17:05:56.000000000","message":"Let\u0027s just remove this method -- the baseclass simply calls pass as well.","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"344d0f6d7030c3a4431ef10e7bf7d1cfb100584b","unresolved":false,"context_lines":[{"line_number":671,"context_line":"            caps.append(data)"},{"line_number":672,"context_line":"        return caps"},{"line_number":673,"context_line":""},{"line_number":674,"context_line":"    def manage_image_cache(self, context, all_instances):"},{"line_number":675,"context_line":"        \"\"\"Manage the local cache of images.\"\"\""},{"line_number":676,"context_line":"        pass"},{"line_number":677,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_7c5ef07a","line":674,"in_reply_to":"1ae5cdf2_3cef08eb","updated":"2014-06-24 17:26:14.000000000","message":"done, thanks","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":2889,"name":"Aeva Black","email":"aeva.online@gmail.com","username":"tenbrae"},"change_message_id":"58a532e694f16c91bdc38739bd712c046e4ce2c7","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        \"\"\"Manage the local cache of images.\"\"\""},{"line_number":676,"context_line":"        pass"},{"line_number":677,"context_line":""},{"line_number":678,"context_line":"    def get_console_output(self, context, instance):"},{"line_number":679,"context_line":"        \"\"\"Get console output for an instance"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        :param context: The security context."}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_dc270462","line":678,"updated":"2014-06-24 17:05:56.000000000","message":"Get console log for an instance. Not Implemented Yet.","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"344d0f6d7030c3a4431ef10e7bf7d1cfb100584b","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        \"\"\"Manage the local cache of images.\"\"\""},{"line_number":676,"context_line":"        pass"},{"line_number":677,"context_line":""},{"line_number":678,"context_line":"    def get_console_output(self, context, instance):"},{"line_number":679,"context_line":"        \"\"\"Get console output for an instance"},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        :param context: The security context."}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_fc6a001a","line":678,"in_reply_to":"1ae5cdf2_dc270462","updated":"2014-06-24 17:26:14.000000000","message":"done, thanks","commit_id":"e5a9aa68134ea6e4300f0e75ea0703e5123e8dd2"},{"author":{"_account_id":7411,"name":"Matt Wagner","email":"matt.wagner@redhat.com","username":"matty_dubs"},"change_message_id":"1b8f5e334254987640da7d5cdd17c43ce6468990","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        :param instance: the instance object."},{"line_number":417,"context_line":"        :returns: a dictionary containing:"},{"line_number":418,"context_line":"            :state: the running state. One of :mod:`nova.compute.power_state`."},{"line_number":419,"context_line":"            :max_mem: the maximum amount of memory."},{"line_number":420,"context_line":"            :mem: the amount of memory used."},{"line_number":421,"context_line":"            :num_cpu: the number of CPUs."},{"line_number":422,"context_line":"            :cpu_time: the CPU time used."}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_f2ace9f0","line":419,"updated":"2014-06-24 17:59:09.000000000","message":"This was unclear to me. Is max_mem a high-water mark (i.e., the maximum amount of memory ever used), or the maximum amount of memory available (i.e., total RAM)?\n\nHowever, looking at the code below, mem and max_mem are the same. (Unless that\u0027s a bug?) I don\u0027t quite understand why this is, but perhaps it bears mention in the docstring here?","commit_id":"66997ff621996c28ed3b55d24aa169d7bf2ed256"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"d7674a4890c7e12ce03c7e64f1766c09cbafd51c","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        :param instance: the instance object."},{"line_number":417,"context_line":"        :returns: a dictionary containing:"},{"line_number":418,"context_line":"            :state: the running state. One of :mod:`nova.compute.power_state`."},{"line_number":419,"context_line":"            :max_mem: the maximum amount of memory."},{"line_number":420,"context_line":"            :mem: the amount of memory used."},{"line_number":421,"context_line":"            :num_cpu: the number of CPUs."},{"line_number":422,"context_line":"            :cpu_time: the CPU time used."}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_0f5747cb","line":419,"in_reply_to":"1ae5cdf2_f2ace9f0","updated":"2014-06-25 15:53:56.000000000","message":"1) Maxium amount of memory available. I will update it\n\nIt\u0027s not a bug, it\u0027s baremetal so there\u0027s no way to use part of the resources, we always use 100%, so when the node is associated with a instance it means that max_mem \u003d\u003d mem","commit_id":"66997ff621996c28ed3b55d24aa169d7bf2ed256"},{"author":{"_account_id":7411,"name":"Matt Wagner","email":"matt.wagner@redhat.com","username":"matty_dubs"},"change_message_id":"1b8f5e334254987640da7d5cdd17c43ce6468990","unresolved":false,"context_lines":[{"line_number":662,"context_line":"        \"\"\"Return the currently known stats for all Ironic nodes."},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":665,"context_line":"            this driver."},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"        \"\"\""},{"line_number":668,"context_line":"        caps \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_f2f6a9d7","line":665,"updated":"2014-06-24 17:59:09.000000000","message":"Would it be possible to document the return value?","commit_id":"66997ff621996c28ed3b55d24aa169d7bf2ed256"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"d7674a4890c7e12ce03c7e64f1766c09cbafd51c","unresolved":false,"context_lines":[{"line_number":662,"context_line":"        \"\"\"Return the currently known stats for all Ironic nodes."},{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":665,"context_line":"            this driver."},{"line_number":666,"context_line":""},{"line_number":667,"context_line":"        \"\"\""},{"line_number":668,"context_line":"        caps \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_2ff5e3ec","line":665,"in_reply_to":"1ae5cdf2_f2f6a9d7","updated":"2014-06-25 15:53:56.000000000","message":"+1","commit_id":"66997ff621996c28ed3b55d24aa169d7bf2ed256"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":312,"context_line":"    def init_host(self, host):"},{"line_number":313,"context_line":"        \"\"\"Initialize anything that is necessary for the driver to function."},{"line_number":314,"context_line":""},{"line_number":315,"context_line":"        :param host: the hostname of the compute node."},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"        \"\"\""},{"line_number":318,"context_line":"        return"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_72bd1003","line":315,"updated":"2014-06-25 17:01:12.000000000","message":"I\u0027m not sure about my terminology wrt nova and ironic. Is this the host that has nova-compute running on it? Should we try to use/stick with the terminology used in [1]?\n\n[1] https://wiki.openstack.org/wiki/GeneralBareMetalProvisioningFramework","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":380,"context_line":"            return False"},{"line_number":381,"context_line":""},{"line_number":382,"context_line":"    def get_available_nodes(self, refresh\u003dFalse):"},{"line_number":383,"context_line":"        \"\"\"Returns the UUID of all nodes managed by Ironic."},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":386,"context_line":"            this driver."}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_b2707809","line":383,"updated":"2014-06-25 17:01:12.000000000","message":"nits: \nUUID -\u003e UUIDs\n\nFor node_is_available, you used \u0027exists in the Ironic inventory\u0027. To be somewhat consistent (if we want), how about \u0027managed by Ironic\u0027 -\u003e \u0027in the Ironic inventory\u0027.  [Or vice versa, change node_is_available docstring. Or leave as is.]","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":394,"context_line":"                  dict(num_nodes\u003dlen(nodes), nodes\u003dnodes))"},{"line_number":395,"context_line":"        return nodes"},{"line_number":396,"context_line":""},{"line_number":397,"context_line":"    def get_available_resource(self, node):"},{"line_number":398,"context_line":"        \"\"\"Retrieve resource information."},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"        This method is called when nova-compute launches, and"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_52d9f4f2","line":397,"updated":"2014-06-25 17:01:12.000000000","message":"I saw a comment from Deva about how we should stick with the same arg names as in the base class. It is \u0027nodename\u0027 in the base class.","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":411,"context_line":"    def get_info(self, instance):"},{"line_number":412,"context_line":"        \"\"\"Get the current state and resource usage for this instance."},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        Returns NOSTATE and all resources \u003d\u003d 0 if the instance is not found."},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"        :param instance: the instance object."},{"line_number":417,"context_line":"        :returns: a dictionary containing:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_5d8f4576","line":414,"updated":"2014-06-25 17:01:12.000000000","message":"How about \u0027Returns NOSTATE\u0027 -\u003e \u0027Returns (a dictionary with) NOSTATE\u0027","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":420,"context_line":"            :mem: the amount of memory used."},{"line_number":421,"context_line":"            :num_cpu: the number of CPUs."},{"line_number":422,"context_line":"            :cpu_time: the CPU time used."},{"line_number":423,"context_line":""},{"line_number":424,"context_line":"        \"\"\""},{"line_number":425,"context_line":"        icli \u003d client_wrapper.IronicClientWrapper()"},{"line_number":426,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_fd1e515e","line":423,"updated":"2014-06-25 17:01:12.000000000","message":"I like the docstring in virt_driver.ComputeDriver better except for \u0027state\u0027 ;) I\u0027m not sure how much of that applies here. Any idea why we\u0027re returning mem/max_mem in mb instead of KBytes (it doesn\u0027t matter?)\n\n\n        \"\"\"Get the current status of an instance, by name (not ID!)\n\n        :param instance: nova.objects.instance.Instance object\n\n        Returns a dict containing:\n\n        :state:           the running state, one of the power_state codes\n        :max_mem:         (int) the maximum memory in KBytes allowed\n        :mem:             (int) the memory in KBytes used by the domain\n        :num_cpu:         (int) the number of virtual CPUs for the domain\n        :cpu_time:        (int) the CPU time used in nanoseconds\n        \"\"\"","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":441,"context_line":"                }"},{"line_number":442,"context_line":""},{"line_number":443,"context_line":"    def macs_for_instance(self, instance):"},{"line_number":444,"context_line":"        \"\"\"List of MAC for the node which this instance is associated with."},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        :param instance: the instance object."},{"line_number":447,"context_line":"        :returns: a list of MAC addresses."}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_dd38b5a1","line":444,"updated":"2014-06-25 17:01:12.000000000","message":"\u0027MAC\u0027 -\u003e \u0027MAC addresses\u0027","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":583,"context_line":"        timer.start(interval\u003dCONF.ironic.api_retry_interval).wait()"},{"line_number":584,"context_line":""},{"line_number":585,"context_line":"    def destroy(self, context, instance, network_info,"},{"line_number":586,"context_line":"                block_device_info\u003dNone):"},{"line_number":587,"context_line":"        \"\"\"Destroy the specified instance, if it can be found."},{"line_number":588,"context_line":""},{"line_number":589,"context_line":"        :param context: The security context."}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_7dab2175","line":586,"updated":"2014-06-25 17:01:12.000000000","message":"The base class has a destroy_disks argument too?","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":591,"context_line":"        :param network_info: Instance network information."},{"line_number":592,"context_line":"        :param block_device_info: Instance block device information."},{"line_number":593,"context_line":""},{"line_number":594,"context_line":"        \"\"\""},{"line_number":595,"context_line":"        icli \u003d client_wrapper.IronicClientWrapper()"},{"line_number":596,"context_line":"        try:"},{"line_number":597,"context_line":"            node \u003d validate_instance_and_node(icli, instance)"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_3dc8b955","line":594,"updated":"2014-06-25 17:01:12.000000000","message":"Maybe (if we want to change) this should be done in a different patch. The docstring for destroy() in the base class has:\n\n        If the instance is not found (for example if networking failed), this\n        function should still succeed.  It\u0027s probably a good idea to log a\n        warning in that case.\n\nWe\u0027re logging it as debug.","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":625,"context_line":"        :param block_device_info: Info pertaining to attached volumes."},{"line_number":626,"context_line":"            Ignored by this driver."},{"line_number":627,"context_line":"        :param bad_volumes_callback: Function to handle any bad volumes"},{"line_number":628,"context_line":"            encountered. Ignored by this driver."},{"line_number":629,"context_line":""},{"line_number":630,"context_line":"        \"\"\""},{"line_number":631,"context_line":"        icli \u003d client_wrapper.IronicClientWrapper()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_7d47a1bc","line":628,"updated":"2014-06-25 17:01:12.000000000","message":"Lucas, I see that these descriptions have \u0027Ignored by this driver\u0027. Should we be consistent and do a similar thing for the other method parameters that are ignored by this driver?","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"f49949c932bb5c0d5dc744f4a79ee02ab9f03d98","unresolved":false,"context_lines":[{"line_number":663,"context_line":""},{"line_number":664,"context_line":"        :param refresh: Boolean value; If True run update first. Ignored by"},{"line_number":665,"context_line":"            this driver."},{"line_number":666,"context_line":"        :returns: a list of node stats dicts."},{"line_number":667,"context_line":""},{"line_number":668,"context_line":"        \"\"\""},{"line_number":669,"context_line":"        caps \u003d []"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_5dfbc547","line":666,"updated":"2014-06-25 17:01:12.000000000","message":"how about \u0027a list of dictionaries; each dictionary contains the stats for a node.\u0027 (I guess we don\u0027t want to itemize the stats info?)","commit_id":"8b9eacd4adbbee7a8c994eeaecf77f2733c31573"},{"author":{"_account_id":7411,"name":"Matt Wagner","email":"matt.wagner@redhat.com","username":"matty_dubs"},"change_message_id":"5ed0939df87ad8406ae2605bf987a9360f721fae","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                }"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def macs_for_instance(self, instance):"},{"line_number":450,"context_line":"        \"\"\"List of MAC for the node which this instance is associated with."},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        :param instance: the instance object."},{"line_number":453,"context_line":"        :returns: a list of MAC addresses."}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_fb79a2fc","line":450,"updated":"2014-06-27 17:56:13.000000000","message":"Nit: This should still be s/MAC/MAC addresses/","commit_id":"93d9ee7a4eda1626b17f031f9933a8e46d4a2d47"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"e9cc53c7655786a9b6756ae7d4bb353fc65b4974","unresolved":false,"context_lines":[{"line_number":447,"context_line":"                }"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"    def macs_for_instance(self, instance):"},{"line_number":450,"context_line":"        \"\"\"List of MAC for the node which this instance is associated with."},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        :param instance: the instance object."},{"line_number":453,"context_line":"        :returns: a list of MAC addresses."}],"source_content_type":"text/x-python","patch_set":6,"id":"dab895d6_10226cb9","line":450,"in_reply_to":"1ae5cdf2_fb79a2fc","updated":"2014-06-30 08:47:05.000000000","message":"I will rephrase it, \"MAC addresses\" doesn\u0027t fit in the line.","commit_id":"93d9ee7a4eda1626b17f031f9933a8e46d4a2d47"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"6b4d8a688915e23908bdeddaacc3cb835022c6d1","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        This method is called when nova-compute launches, and"},{"line_number":404,"context_line":"        as part of a periodic task that records the results in the DB."},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        :param nodename: the UUID of the node."},{"line_number":407,"context_line":"        :returns: a dictionary describing resources."},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_1e819b8f","line":406,"updated":"2014-07-01 00:48:20.000000000","message":"name and uuid are different things, name is like \"test_node\". So I think it\u0027s better remaining \"node\" or change to \"nodeuuid\".","commit_id":"1fa3d2acf2ca40c4f0f6a8707da9cfc455fb1db9"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"78d031db883ad09562f4fc13fe961109660114be","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        This method is called when nova-compute launches, and"},{"line_number":404,"context_line":"        as part of a periodic task that records the results in the DB."},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        :param nodename: the UUID of the node."},{"line_number":407,"context_line":"        :returns: a dictionary describing resources."},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_56f92f4c","line":406,"in_reply_to":"baada198_1e819b8f","updated":"2014-07-01 08:41:29.000000000","message":"I know it looks a bit odd, but I have to use nodename because this class is inheriting from the base driver class in nova, and in nova this parameter is called nodename[1], so to be consistent with the method signature I gotta keep the parameters name the same.\n\n[1] https://github.com/openstack/nova/blob/master/nova/virt/driver.py#L613","commit_id":"1fa3d2acf2ca40c4f0f6a8707da9cfc455fb1db9"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"96f949140cbd5b679a79bfa524cf8cabc5418b3e","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        This method is called when nova-compute launches, and"},{"line_number":404,"context_line":"        as part of a periodic task that records the results in the DB."},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        :param nodename: the UUID of the node."},{"line_number":407,"context_line":"        :returns: a dictionary describing resources."},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_774b8e59","line":406,"in_reply_to":"baada198_56f92f4c","updated":"2014-07-01 09:11:47.000000000","message":"Ah, I understood. Thank you.","commit_id":"1fa3d2acf2ca40c4f0f6a8707da9cfc455fb1db9"}]}
