)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"ab02948e3bd6e679e2a518a4160607853cc72d5d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add RequestSpec methods for primitiving into dicts"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"As it will be necessary to only update within small chunks the code using"},{"line_number":10,"context_line":"filter_properties and request_spec dictionaries, we have to provide the"},{"line_number":11,"context_line":"corresponding two primitiving methods for generating those legacy dicts."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Partially-Implements: blueprint request-spec-object"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":24,"id":"3a50d1a3_a83774e1","line":10,"updated":"2015-07-29 15:47:41.000000000","message":"I have to say that I don\u0027t understand what this means.","commit_id":"864e7cdcaec001f3c4de5b6b9e01c16675b2e166"}],"nova/objects/request_spec.py":[{"author":{"_account_id":8688,"name":"Alexis Lee","email":"openstack@lxsli.co.uk","username":"lxsli"},"change_message_id":"2d24511706b6bef29a8da0f659002051899195b1","unresolved":false,"context_lines":[{"line_number":104,"context_line":""},{"line_number":105,"context_line":"    def _to_legacy_instance(self):"},{"line_number":106,"context_line":"        # NOTE(sbauza): Since the RequestSpec only persists a few Instance"},{"line_number":107,"context_line":"        # fields with not IDs, we can only return a dict."},{"line_number":108,"context_line":"        instance \u003d {}"},{"line_number":109,"context_line":"        instance_fields \u003d [\u0027root_gb\u0027, \u0027ephemeral_gb\u0027, \u0027memory_mb\u0027, \u0027vcpus\u0027,"},{"line_number":110,"context_line":"                           \u0027numa_topology\u0027, \u0027pci_requests\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"ba3cc151_0648972c","line":107,"updated":"2015-07-06 13:35:56.000000000","message":"nit: s/not/no/","commit_id":"c2c4b5e2d959ef367e03038d43fef50d752f050d"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"ab02948e3bd6e679e2a518a4160607853cc72d5d","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        return (hint_val[0] if isinstance(hint_val, list)"},{"line_number":210,"context_line":"                and len(hint_val) \u003d\u003d 1 else hint_val)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def to_request_spec_dict(self):"},{"line_number":213,"context_line":"        req_spec \u003d {}"},{"line_number":214,"context_line":"        if not self.obj_attr_is_set(\u0027num_instances\u0027):"},{"line_number":215,"context_line":"            req_spec[\u0027num_instances\u0027] \u003d self.fields[\u0027num_instances\u0027].default"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a50d1a3_234f056c","line":212,"updated":"2015-07-29 15:47:41.000000000","message":"why don\u0027t we call this legacy too - naming is kind of all over the place here - there really needs to be more consistency.\n\nI wanted to comment on the previous patch - but it would be nice to have some kind of abstraction here (like a special descriptor that will delegate back to the one object has if the type is right and do the conversion otherwis) instead of all of these awkwardly named methods that special case single fields.","commit_id":"864e7cdcaec001f3c4de5b6b9e01c16675b2e166"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"dc6682ee9f1a4b4db967865208f92ffe6191836c","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        return (hint_val[0] if isinstance(hint_val, list)"},{"line_number":210,"context_line":"                and len(hint_val) \u003d\u003d 1 else hint_val)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"    def to_request_spec_dict(self):"},{"line_number":213,"context_line":"        req_spec \u003d {}"},{"line_number":214,"context_line":"        if not self.obj_attr_is_set(\u0027num_instances\u0027):"},{"line_number":215,"context_line":"            req_spec[\u0027num_instances\u0027] \u003d self.fields[\u0027num_instances\u0027].default"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a50d1a3_82b90c18","line":212,"in_reply_to":"3a50d1a3_234f056c","updated":"2015-07-30 09:42:12.000000000","message":"So I seriously considered that but I thought that a clear helper method with a decent docstring allows the isolation to be clearer and the removal of that once we bump the Scheduler RPC API to no longer support old legacy dicts far easier.\n\nThat means that :\n - #1, I was too lazy on explaining why those helpers, I will drop a NOTE explaining why it\u0027s has to be NEVER used elsewhere unless very explicit circumstances\n - #2, I agree with you, namings were bad so I\u0027ll rework that","commit_id":"864e7cdcaec001f3c4de5b6b9e01c16675b2e166"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"fa36b2b14b97a48225c0c367de3344abfe393f12","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        \"\"\""},{"line_number":276,"context_line":"        filt_props \u003d {}"},{"line_number":277,"context_line":"        if self.obj_attr_is_set(\u0027ignore_hosts\u0027) and self.ignore_hosts:"},{"line_number":278,"context_line":"            filt_props[\u0027ignore_hosts\u0027] \u003d self.ignore_hosts"},{"line_number":279,"context_line":"        if self.obj_attr_is_set(\u0027force_hosts\u0027) and self.force_hosts:"},{"line_number":280,"context_line":"            filt_props[\u0027force_hosts\u0027] \u003d self.force_hosts"},{"line_number":281,"context_line":"        if self.obj_attr_is_set(\u0027force_nodes\u0027) and self.force_nodes:"}],"source_content_type":"text/x-python","patch_set":29,"id":"fa1b9901_38d0c9f5","line":278,"updated":"2015-08-20 18:24:57.000000000","message":"don\u0027t we actually need this adding into the filt_props dict even when ingnore_hosts \u003d []\n\nI guess that will become much clearer later on.","commit_id":"e90e5bac931242433b473825579536fc2236fa81"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"83711d2815832273edf90e984dd3914f28bd808a","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        If you don\u0027t understand why this method is needed, please don\u0027t use it."},{"line_number":275,"context_line":"        \"\"\""},{"line_number":276,"context_line":"        filt_props \u003d {}"},{"line_number":277,"context_line":"        if self.obj_attr_is_set(\u0027ignore_hosts\u0027) and self.ignore_hosts:"},{"line_number":278,"context_line":"            filt_props[\u0027ignore_hosts\u0027] \u003d self.ignore_hosts"},{"line_number":279,"context_line":"        if self.obj_attr_is_set(\u0027force_hosts\u0027) and self.force_hosts:"},{"line_number":280,"context_line":"            filt_props[\u0027force_hosts\u0027] \u003d self.force_hosts"}],"source_content_type":"text/x-python","patch_set":30,"id":"fa1b9901_df1b2c1b","line":277,"range":{"start_line":277,"start_character":11,"end_line":277,"end_character":69},"updated":"2015-08-24 15:03:11.000000000","message":"not quite sure why this is not just:\nself.obj_attr_is_set(\u0027ignore_hosts\u0027)\n\nOr maybe just always set ignore_hosts from the object?","commit_id":"7ecdf68ebd4c13e1f20930295ae83e54224a5468"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"26df8e3e4fcb07a15674e526202236a9ab61c334","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        If you don\u0027t understand why this method is needed, please don\u0027t use it."},{"line_number":275,"context_line":"        \"\"\""},{"line_number":276,"context_line":"        filt_props \u003d {}"},{"line_number":277,"context_line":"        if self.obj_attr_is_set(\u0027ignore_hosts\u0027) and self.ignore_hosts:"},{"line_number":278,"context_line":"            filt_props[\u0027ignore_hosts\u0027] \u003d self.ignore_hosts"},{"line_number":279,"context_line":"        if self.obj_attr_is_set(\u0027force_hosts\u0027) and self.force_hosts:"},{"line_number":280,"context_line":"            filt_props[\u0027force_hosts\u0027] \u003d self.force_hosts"}],"source_content_type":"text/x-python","patch_set":30,"id":"fa1b9901_bf267814","line":277,"range":{"start_line":277,"start_character":11,"end_line":277,"end_character":69},"in_reply_to":"fa1b9901_df1b2c1b","updated":"2015-08-24 15:08:38.000000000","message":"not sure we need this complexity here, but I see this works for the current caller:\nhttps://github.com/openstack/nova/blob/master/nova/scheduler/host_manager.py#L523","commit_id":"7ecdf68ebd4c13e1f20930295ae83e54224a5468"}]}
