)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"76c8f14a23a12f1c8fc0e8fa25b53980039c9967","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        `arch`: The architecture of the processor."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This processor and memory information will be directly consumed"},{"line_number":21,"context_line":"by ironic Inspector."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I19acd74e26a861147df747f3d3f34852decf5403"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a1ced50_02c78d96","line":21,"range":{"start_line":21,"start_character":10,"end_line":21,"end_character":19},"updated":"2017-03-21 16:28:10.000000000","message":"This should be inspection instead of Inspector.","commit_id":"ece8d40eb44d5498475d52ad3897ba9c63c7cb3f"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"de69c9f4f6ecdcae23edd6be64782af5a0ffa389","unresolved":false,"context_lines":[{"line_number":18,"context_line":"        `arch`: The architecture of the processor."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"This processor and memory information will be directly consumed"},{"line_number":21,"context_line":"by ironic Inspector."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Change-Id: I19acd74e26a861147df747f3d3f34852decf5403"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a1ced50_c332c0f1","line":21,"range":{"start_line":21,"start_character":10,"end_line":21,"end_character":19},"in_reply_to":"1a1ced50_02c78d96","updated":"2017-03-22 07:19:09.000000000","message":"Done","commit_id":"ece8d40eb44d5498475d52ad3897ba9c63c7cb3f"}],"doc/source/usage.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6137e6559f3ccd88fc1b0fb2449270b752de08df","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  print(sys_inst.memory_gib)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  # Get the processor summary"},{"line_number":79,"context_line":"  print(sys_inst.processor_summary)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"If you do not have any real baremetal machine that supports the Redfish"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f044301_71ff2934","line":79,"updated":"2017-05-09 14:46:38.000000000","message":"this seems incorrect now:\n\n sys_inst.processors.summary","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"35120bff5f890aefdcd7de19283f7fb08ee03623","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  print(sys_inst.memory_gib)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  # Get the processor summary"},{"line_number":79,"context_line":"  print(sys_inst.processor_summary)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"If you do not have any real baremetal machine that supports the Redfish"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f044301_ca5c0680","line":79,"in_reply_to":"3f044301_71ff2934","updated":"2017-05-09 17:38:31.000000000","message":"will do","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"95291f076b7e684158f8ba0e0b168ed8fee65d21","unresolved":false,"context_lines":[{"line_number":76,"context_line":"  print(sys_inst.memory_gib)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"  # Get the processor summary"},{"line_number":79,"context_line":"  print(sys_inst.processor_summary)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"If you do not have any real baremetal machine that supports the Redfish"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3f044301_4f02413f","line":79,"in_reply_to":"3f044301_ca5c0680","updated":"2017-05-10 06:50:06.000000000","message":"Done","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"}],"sushy/resources/system/processor.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8327b194550632d8d01eabd7950ffbd583284ad1","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    @property"},{"line_number":85,"context_line":"    def _resource_type(self):"},{"line_number":86,"context_line":"        return Processor"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def __init__(self, connector, path, redfish_version\u003dNone):"},{"line_number":89,"context_line":"        \"\"\"A class representing a ProcessorCollection"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_6e9d6d58","line":87,"updated":"2017-04-24 06:33:01.000000000","message":"please move here (see below):\n\n @property\n def summary(self):","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"31eb04f5b230c94537bac1241b87ddebc351f352","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    @property"},{"line_number":85,"context_line":"    def _resource_type(self):"},{"line_number":86,"context_line":"        return Processor"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"    def __init__(self, connector, path, redfish_version\u003dNone):"},{"line_number":89,"context_line":"        \"\"\"A class representing a ProcessorCollection"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_d9ae66e6","line":87,"in_reply_to":"5ff73747_6e9d6d58","updated":"2017-05-05 10:46:03.000000000","message":"Done","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":18781,"name":"vinay muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"19d108f79937a6688bd36e102bc70981ea574d2b","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class Processor(base.ResourceBase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    identity \u003d None"},{"line_number":30,"context_line":"    \"\"\"The processor identity string\"\"\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    socket \u003d None"},{"line_number":33,"context_line":"    \"\"\"The socket or location of the processor\"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # TODO(deray): Create mappings for the processor_type"},{"line_number":36,"context_line":"    processor_type \u003d None"},{"line_number":37,"context_line":"    \"\"\"The type of processor\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    processor_architecture \u003d None"},{"line_number":40,"context_line":"    \"\"\"The architecture of the processor\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    # TODO(deray): Create mappings for the instruction_set"},{"line_number":43,"context_line":"    instruction_set \u003d None"},{"line_number":44,"context_line":"    \"\"\"The instruction set of the processor\"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    manufacturer \u003d None"},{"line_number":47,"context_line":"    \"\"\"The processor manufacturer\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    model \u003d None"},{"line_number":50,"context_line":"    \"\"\"The product model number of this device\"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    max_speed_mhz \u003d None"},{"line_number":53,"context_line":"    \"\"\"The maximum clock speed of the processor in MHz.\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    total_cores \u003d None"},{"line_number":56,"context_line":"    \"\"\"The total number of cores contained in this processor\"\"\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    total_threads \u003d None"},{"line_number":59,"context_line":"    \"\"\"The total number of execution threads supported by this processor\"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def __init__(self, connector, identity, redfish_version\u003dNone):"},{"line_number":62,"context_line":"        \"\"\"A class representing a Processor"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f013ff3_c189f426","line":59,"range":{"start_line":29,"start_character":4,"end_line":59,"end_character":75},"updated":"2017-05-15 05:38:55.000000000","message":"Is there any specific reason why they are class attributes? If they ares so, then the way you are accessing them is wrong. See below comment.","commit_id":"18febd060ff34ee54a7a961a7fc051f096700b65"},{"author":{"_account_id":18781,"name":"vinay muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"a7a4eb9445b7b6e5a595791e81a813fc92620924","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class Processor(base.ResourceBase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    identity \u003d None"},{"line_number":30,"context_line":"    \"\"\"The processor identity string\"\"\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    socket \u003d None"},{"line_number":33,"context_line":"    \"\"\"The socket or location of the processor\"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # TODO(deray): Create mappings for the processor_type"},{"line_number":36,"context_line":"    processor_type \u003d None"},{"line_number":37,"context_line":"    \"\"\"The type of processor\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    processor_architecture \u003d None"},{"line_number":40,"context_line":"    \"\"\"The architecture of the processor\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    # TODO(deray): Create mappings for the instruction_set"},{"line_number":43,"context_line":"    instruction_set \u003d None"},{"line_number":44,"context_line":"    \"\"\"The instruction set of the processor\"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    manufacturer \u003d None"},{"line_number":47,"context_line":"    \"\"\"The processor manufacturer\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    model \u003d None"},{"line_number":50,"context_line":"    \"\"\"The product model number of this device\"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    max_speed_mhz \u003d None"},{"line_number":53,"context_line":"    \"\"\"The maximum clock speed of the processor in MHz.\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    total_cores \u003d None"},{"line_number":56,"context_line":"    \"\"\"The total number of cores contained in this processor\"\"\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    total_threads \u003d None"},{"line_number":59,"context_line":"    \"\"\"The total number of execution threads supported by this processor\"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def __init__(self, connector, identity, redfish_version\u003dNone):"},{"line_number":62,"context_line":"        \"\"\"A class representing a Processor"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f013ff3_6a6c3036","line":59,"range":{"start_line":29,"start_character":4,"end_line":59,"end_character":75},"in_reply_to":"1f013ff3_76a2df9c","updated":"2017-05-15 11:26:35.000000000","message":"Thanks Debayan. I am still not completely convinced :(. The scoping rules for different languages differ. In this case, python simply ignores silently(hoping that u mean to create a separate variable in the instance namespace), whereas in other OOP like C++ it won\u0027t even allow us to access class variables with the instance as you may know. However i am removing the vote and completely fine if other reviewers are OK.","commit_id":"18febd060ff34ee54a7a961a7fc051f096700b65"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"122197ed8d1150a123e78eb6051effe7cdacded4","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"class Processor(base.ResourceBase):"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    identity \u003d None"},{"line_number":30,"context_line":"    \"\"\"The processor identity string\"\"\""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    socket \u003d None"},{"line_number":33,"context_line":"    \"\"\"The socket or location of the processor\"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    # TODO(deray): Create mappings for the processor_type"},{"line_number":36,"context_line":"    processor_type \u003d None"},{"line_number":37,"context_line":"    \"\"\"The type of processor\"\"\""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    processor_architecture \u003d None"},{"line_number":40,"context_line":"    \"\"\"The architecture of the processor\"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    # TODO(deray): Create mappings for the instruction_set"},{"line_number":43,"context_line":"    instruction_set \u003d None"},{"line_number":44,"context_line":"    \"\"\"The instruction set of the processor\"\"\""},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"    manufacturer \u003d None"},{"line_number":47,"context_line":"    \"\"\"The processor manufacturer\"\"\""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    model \u003d None"},{"line_number":50,"context_line":"    \"\"\"The product model number of this device\"\"\""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    max_speed_mhz \u003d None"},{"line_number":53,"context_line":"    \"\"\"The maximum clock speed of the processor in MHz.\"\"\""},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    total_cores \u003d None"},{"line_number":56,"context_line":"    \"\"\"The total number of cores contained in this processor\"\"\""},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    total_threads \u003d None"},{"line_number":59,"context_line":"    \"\"\"The total number of execution threads supported by this processor\"\"\""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def __init__(self, connector, identity, redfish_version\u003dNone):"},{"line_number":62,"context_line":"        \"\"\"A class representing a Processor"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f013ff3_76a2df9c","line":59,"range":{"start_line":29,"start_character":4,"end_line":59,"end_character":75},"in_reply_to":"1f013ff3_c189f426","updated":"2017-05-15 08:57:57.000000000","message":"Yes. I can get hold of your remark completely.\n\nI would like to go with such kind of declarations a bit like docstring, and would like to declare this harmless, as long as it is always None, or a narrow range of other values, all immutable. I was reading a SO post wherein they are classifying it as an atavism and excessive attachment to statically typed languages and also it also does no good as code. Even though I feel that it a minor purpose that remain, in one-stop for documentation. Lets take this:\n\n    class MyClass(object):\n      conditionally_set_attribute1 \u003d None\n\t  conditionally_set_attribute2 \u003d None\n      ...\n\n      def __init__(self):\n        self.mandatorily_set_attribute1 \u003d some_value1\n\t\tself.mandatorily_set_attribute2 \u003d some_value2\n\nSo, inherently here the attributes available over any instance of MyClass are distributed in 2 locations. IMHO that may be a deterrent from code readability. Secondly, at times declaring class variables as None will also prevent propagation. This is also useful when you need a well defined class and want to prevent AttributeErrors.\nObviously the BIG problem is that it tempts folks to initialize with values other than None, which can be bad:\n\n    class X(object):\n      v \u003d {}\n\n    x \u003d X()\n    x.v[1] \u003d 2\n\nOR more profusely in:\n\n    \u003e\u003e\u003e class Y(object):\n    ...   def __init__(self, a\u003d[]):\n    ...     self.a \u003d a\n    ...\n    \u003e\u003e\u003e y1 \u003d Y()\n    \u003e\u003e\u003e y2 \u003d Y()\n    \u003e\u003e\u003e y1.a.append(1)\n    \u003e\u003e\u003e y1.a\n    [1]\n    \u003e\u003e\u003e y2.a\n    [1]","commit_id":"18febd060ff34ee54a7a961a7fc051f096700b65"},{"author":{"_account_id":18781,"name":"vinay muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"19d108f79937a6688bd36e102bc70981ea574d2b","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        super(Processor, self).__init__(connector, identity, redfish_version)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _parse_attributes(self):"},{"line_number":72,"context_line":"        self.identity \u003d self.json.get(\u0027Id\u0027)"},{"line_number":73,"context_line":"        self.socket \u003d self.json.get(\u0027Socket\u0027)"},{"line_number":74,"context_line":"        self.processor_type \u003d self.json.get(\u0027ProcessorType\u0027)"},{"line_number":75,"context_line":"        self.processor_architecture \u003d ("},{"line_number":76,"context_line":"            sys_maps.PROCESSOR_ARCH_VALUE_MAP.get("},{"line_number":77,"context_line":"                self.json.get(\u0027ProcessorArchitecture\u0027)))"},{"line_number":78,"context_line":"        self.instruction_set \u003d self.json.get(\u0027InstructionSet\u0027)"},{"line_number":79,"context_line":"        self.manufacturer \u003d self.json.get(\u0027Manufacturer\u0027)"},{"line_number":80,"context_line":"        self.model \u003d self.json.get(\u0027Model\u0027)"},{"line_number":81,"context_line":"        self.max_speed_mhz \u003d self.json.get(\u0027MaxSpeedMHz\u0027)"},{"line_number":82,"context_line":"        self.total_cores \u003d self.json.get(\u0027TotalCores\u0027)"},{"line_number":83,"context_line":"        self.total_threads \u003d self.json.get(\u0027TotalThreads\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"class ProcessorCollection(base.ResourceCollectionBase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f013ff3_0176bc07","line":83,"range":{"start_line":72,"start_character":8,"end_line":83,"end_character":58},"updated":"2017-05-15 05:38:55.000000000","message":"This is a programmatic error which we usually ignore. As long as we try to just access the class attributes using self(like self.identity or self.socket), they refer to the class attributes. The moment we start to assign them some values, python interpreter assumes you want to create instance attributes and silently lets you create them. Now you have two sets of attributes, one at class level and other at instance level which certainly i think you don\u0027t really mean to create. I\u0027d suggest to refer them as Processor.identity, Processor.socket instead of self.identity or self.socket. Here is a sample example that gives more insight into the problem:\n\nclass B(object):\n  clsattr \u003d 100\n    def __init__(self,y):\n    self.clsattr \u003d C(y)\n    \n  def someprint(self):\n    print(\"id(self.clsattr):%d, self.clsattr \u003d %d\"%(id(self.clsattr),self.clsattr))\n    print(\"id(B.clsattr):%d, B.clsattr \u003d %d\"%(id(B.clsattr),B.clsattr))\n    \naob\u003dB(25)\naob.someprint()\nbob\u003dB(30)\nB.clsattr \u003d C(101)\ncob\u003dB(40)\nbob.someprint()\ncob.someprint()","commit_id":"18febd060ff34ee54a7a961a7fc051f096700b65"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"122197ed8d1150a123e78eb6051effe7cdacded4","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        super(Processor, self).__init__(connector, identity, redfish_version)"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def _parse_attributes(self):"},{"line_number":72,"context_line":"        self.identity \u003d self.json.get(\u0027Id\u0027)"},{"line_number":73,"context_line":"        self.socket \u003d self.json.get(\u0027Socket\u0027)"},{"line_number":74,"context_line":"        self.processor_type \u003d self.json.get(\u0027ProcessorType\u0027)"},{"line_number":75,"context_line":"        self.processor_architecture \u003d ("},{"line_number":76,"context_line":"            sys_maps.PROCESSOR_ARCH_VALUE_MAP.get("},{"line_number":77,"context_line":"                self.json.get(\u0027ProcessorArchitecture\u0027)))"},{"line_number":78,"context_line":"        self.instruction_set \u003d self.json.get(\u0027InstructionSet\u0027)"},{"line_number":79,"context_line":"        self.manufacturer \u003d self.json.get(\u0027Manufacturer\u0027)"},{"line_number":80,"context_line":"        self.model \u003d self.json.get(\u0027Model\u0027)"},{"line_number":81,"context_line":"        self.max_speed_mhz \u003d self.json.get(\u0027MaxSpeedMHz\u0027)"},{"line_number":82,"context_line":"        self.total_cores \u003d self.json.get(\u0027TotalCores\u0027)"},{"line_number":83,"context_line":"        self.total_threads \u003d self.json.get(\u0027TotalThreads\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"class ProcessorCollection(base.ResourceCollectionBase):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f013ff3_f6dcaf19","line":83,"range":{"start_line":72,"start_character":8,"end_line":83,"end_character":58},"in_reply_to":"1f013ff3_0176bc07","updated":"2017-05-15 08:57:57.000000000","message":"ditto l59","commit_id":"18febd060ff34ee54a7a961a7fc051f096700b65"},{"author":{"_account_id":18781,"name":"vinay muddu","email":"vinay50muddu@yahoo.com","username":"vmud213"},"change_message_id":"19d108f79937a6688bd36e102bc70981ea574d2b","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                        and proc.processor_architecture is not None):"},{"line_number":122,"context_line":"                    architecture \u003d proc.processor_architecture"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"            self._summary \u003d ProcessorSummary(count\u003dcount,"},{"line_number":125,"context_line":"                                             architecture\u003darchitecture)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        return self._summary"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f013ff3_c161f43b","line":124,"range":{"start_line":124,"start_character":12,"end_line":124,"end_character":25},"updated":"2017-05-15 05:38:55.000000000","message":"Change this to ProcessorCollection._summary else it creates another variable with the same name at instance scope. Make the same change everywhere applicable.","commit_id":"18febd060ff34ee54a7a961a7fc051f096700b65"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"122197ed8d1150a123e78eb6051effe7cdacded4","unresolved":false,"context_lines":[{"line_number":121,"context_line":"                        and proc.processor_architecture is not None):"},{"line_number":122,"context_line":"                    architecture \u003d proc.processor_architecture"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"            self._summary \u003d ProcessorSummary(count\u003dcount,"},{"line_number":125,"context_line":"                                             architecture\u003darchitecture)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        return self._summary"}],"source_content_type":"text/x-python","patch_set":9,"id":"1f013ff3_d6e1b3d2","line":124,"range":{"start_line":124,"start_character":12,"end_line":124,"end_character":25},"in_reply_to":"1f013ff3_c161f43b","updated":"2017-05-15 08:57:57.000000000","message":"ditto l59","commit_id":"18febd060ff34ee54a7a961a7fc051f096700b65"}],"sushy/resources/system/processor/constants.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"792ad881a5b6c6117e467325bb8828f21379ae95","unresolved":false,"context_lines":[{"line_number":21,"context_line":"PROCESSOR_ARCH_IA_64 \u003d \u0027Intel Itanium\u0027"},{"line_number":22,"context_line":"PROCESSOR_ARCH_ARM \u003d \u0027ARM\u0027"},{"line_number":23,"context_line":"PROCESSOR_ARCH_MIPS \u003d \u0027MIPS\u0027"},{"line_number":24,"context_line":"PROCESSOR_ARCH_OEM \u003d \u0027OEM-defined\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_e6b48ef3","line":24,"updated":"2017-03-20 09:22:41.000000000","message":"this can go to system.constants","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"59dd7c40aee2f1619469e98bd689072c4f0d7537","unresolved":false,"context_lines":[{"line_number":21,"context_line":"PROCESSOR_ARCH_IA_64 \u003d \u0027Intel Itanium\u0027"},{"line_number":22,"context_line":"PROCESSOR_ARCH_ARM \u003d \u0027ARM\u0027"},{"line_number":23,"context_line":"PROCESSOR_ARCH_MIPS \u003d \u0027MIPS\u0027"},{"line_number":24,"context_line":"PROCESSOR_ARCH_OEM \u003d \u0027OEM-defined\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_6c723d4b","line":24,"in_reply_to":"1a1ced50_e6b48ef3","updated":"2017-03-20 14:07:05.000000000","message":"fair enough. Done","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"}],"sushy/resources/system/processor/processor.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"792ad881a5b6c6117e467325bb8828f21379ae95","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1a1ced50_c6bdd2d8","updated":"2017-03-20 09:22:41.000000000","message":"this path is too long to my taste, please move it one level up (i.e. remove the \u0027processor\u0027 directory)","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"59dd7c40aee2f1619469e98bd689072c4f0d7537","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1a1ced50_acb995cd","in_reply_to":"1a1ced50_c6bdd2d8","updated":"2017-03-20 14:07:05.000000000","message":"Done","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"}],"sushy/resources/system/system.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"792ad881a5b6c6117e467325bb8828f21379ae95","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    memory_summary \u003d None"},{"line_number":78,"context_line":"    \"\"\"The memory of the system in general detail"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    A dictionary containing the following:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"      size_GiB: The total installed, operating system-accessible"},{"line_number":83,"context_line":"        memory (RAM), measured in GiB."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_06b8cae4","line":80,"updated":"2017-03-20 09:22:41.000000000","message":"let\u0027s either make it one simple value (memory_gib) or a namedtuple/proper object.","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"59dd7c40aee2f1619469e98bd689072c4f0d7537","unresolved":false,"context_lines":[{"line_number":77,"context_line":"    memory_summary \u003d None"},{"line_number":78,"context_line":"    \"\"\"The memory of the system in general detail"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    A dictionary containing the following:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"      size_GiB: The total installed, operating system-accessible"},{"line_number":83,"context_line":"        memory (RAM), measured in GiB."}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_0c78e9c3","line":80,"in_reply_to":"1a1ced50_06b8cae4","updated":"2017-03-20 14:07:05.000000000","message":"changed it to simple value, memory_gib","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"792ad881a5b6c6117e467325bb8828f21379ae95","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    \"\"\"The processors of the system in general detail"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    This has to be accessed by exposed :prop:`processor_summary`. It is a"},{"line_number":91,"context_line":"    dictionary containing the following:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"      count: The number of processors in the system."},{"line_number":94,"context_line":"      model(family): The processor model (family) for the primary or"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_26cf8680","line":91,"updated":"2017-03-20 09:22:41.000000000","message":"let\u0027s make it a namedtuple or a real structure?","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"59dd7c40aee2f1619469e98bd689072c4f0d7537","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    \"\"\"The processors of the system in general detail"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    This has to be accessed by exposed :prop:`processor_summary`. It is a"},{"line_number":91,"context_line":"    dictionary containing the following:"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"      count: The number of processors in the system."},{"line_number":94,"context_line":"      model(family): The processor model (family) for the primary or"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_50c0ab7c","line":91,"in_reply_to":"1a1ced50_26cf8680","updated":"2017-03-20 14:07:05.000000000","message":"made it to `namedtuple`. thanks for the suggestion :)","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"792ad881a5b6c6117e467325bb8828f21379ae95","unresolved":false,"context_lines":[{"line_number":94,"context_line":"      model(family): The processor model (family) for the primary or"},{"line_number":95,"context_line":"        majority of processors in this system."},{"line_number":96,"context_line":"        (TBD) As per mockup it is defined as \u0027ProcessorFamily\u0027, but"},{"line_number":97,"context_line":"        as per schema specification [0] it is \u0027Model\u0027."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"      architecture: The architecture of the processor. It is to be loaded"},{"line_number":100,"context_line":"        on-demand. (TBD)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_46cac26f","line":97,"updated":"2017-03-20 09:22:41.000000000","message":"let\u0027s not add anything that is not defined properly yet. Especially since the model is not required by Ironic.","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"59dd7c40aee2f1619469e98bd689072c4f0d7537","unresolved":false,"context_lines":[{"line_number":94,"context_line":"      model(family): The processor model (family) for the primary or"},{"line_number":95,"context_line":"        majority of processors in this system."},{"line_number":96,"context_line":"        (TBD) As per mockup it is defined as \u0027ProcessorFamily\u0027, but"},{"line_number":97,"context_line":"        as per schema specification [0] it is \u0027Model\u0027."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"      architecture: The architecture of the processor. It is to be loaded"},{"line_number":100,"context_line":"        on-demand. (TBD)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_90ba2309","line":97,"in_reply_to":"1a1ced50_46cac26f","updated":"2017-03-20 14:07:05.000000000","message":"Done","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"792ad881a5b6c6117e467325bb8828f21379ae95","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        as per schema specification [0] it is \u0027Model\u0027."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"      architecture: The architecture of the processor. It is to be loaded"},{"line_number":100,"context_line":"        on-demand. (TBD)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    [0]: http://redfish.dmtf.org/schemas/v1/ComputerSystem.v1_0_0.json"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_66c97e78","line":100,"updated":"2017-03-20 09:22:41.000000000","message":"ditto, please don\u0027t document what we don\u0027t actually support","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"59dd7c40aee2f1619469e98bd689072c4f0d7537","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        as per schema specification [0] it is \u0027Model\u0027."},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"      architecture: The architecture of the processor. It is to be loaded"},{"line_number":100,"context_line":"        on-demand. (TBD)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    [0]: http://redfish.dmtf.org/schemas/v1/ComputerSystem.v1_0_0.json"},{"line_number":103,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_90edc3f1","line":100,"in_reply_to":"1a1ced50_66c97e78","updated":"2017-03-20 14:07:05.000000000","message":"but, we do need this cpu `architecture` value as part of ironic [0].\n\n[0]https://github.com/openstack/ironic/blob/master/ironic/drivers/base.py#L841","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"792ad881a5b6c6117e467325bb8828f21379ae95","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    \"\"\"A list of `Processor` objects"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    It\u0027s a list of instances of"},{"line_number":120,"context_line":"    :class:`sushy.resources.system.processor.processor.Processor`"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    \"\"\""},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_86c4ba5f","line":120,"updated":"2017-03-20 09:22:41.000000000","message":"too many \"processor\" in this path. if it\u0027s really the case, we need to shorten it","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"59dd7c40aee2f1619469e98bd689072c4f0d7537","unresolved":false,"context_lines":[{"line_number":117,"context_line":"    \"\"\"A list of `Processor` objects"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    It\u0027s a list of instances of"},{"line_number":120,"context_line":"    :class:`sushy.resources.system.processor.processor.Processor`"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    \"\"\""},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a1ced50_f0b437f3","line":120,"in_reply_to":"1a1ced50_86c4ba5f","updated":"2017-03-20 14:07:05.000000000","message":"Done","commit_id":"ef9c03db6ef536bdba2163eb56106937b87a57f8"},{"author":{"_account_id":11297,"name":"Nisha Agarwal","email":"agarwalnisha1980@gmail.com","username":"Nisha"},"change_message_id":"19929a892c0bfac8c4c2e25dbe3a0f1efa3ab710","unresolved":false,"context_lines":[{"line_number":304,"context_line":"    def processor_summary(self):"},{"line_number":305,"context_line":"        if self._processor_summary is None:"},{"line_number":306,"context_line":"            count, arch \u003d \u0027n/a\u0027, \u0027n/a\u0027"},{"line_number":307,"context_line":"            ProcessorSummary \u003d collections.namedtuple("},{"line_number":308,"context_line":"                \u0027ProcessorSummary\u0027, [\u0027count\u0027, \u0027arch\u0027])"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"            processor_summary_attr \u003d self.json.get(\u0027ProcessorSummary\u0027)"},{"line_number":311,"context_line":"            if processor_summary_attr is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_dfdc7e75","line":308,"range":{"start_line":307,"start_character":0,"end_line":308,"end_character":54},"updated":"2017-03-21 16:21:38.000000000","message":"What inspection needs to return is the TotalThreads from the Processor() and not ProcessorSummary[\u0027count\u0027].","commit_id":"ece8d40eb44d5498475d52ad3897ba9c63c7cb3f"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"de69c9f4f6ecdcae23edd6be64782af5a0ffa389","unresolved":false,"context_lines":[{"line_number":304,"context_line":"    def processor_summary(self):"},{"line_number":305,"context_line":"        if self._processor_summary is None:"},{"line_number":306,"context_line":"            count, arch \u003d \u0027n/a\u0027, \u0027n/a\u0027"},{"line_number":307,"context_line":"            ProcessorSummary \u003d collections.namedtuple("},{"line_number":308,"context_line":"                \u0027ProcessorSummary\u0027, [\u0027count\u0027, \u0027arch\u0027])"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"            processor_summary_attr \u003d self.json.get(\u0027ProcessorSummary\u0027)"},{"line_number":311,"context_line":"            if processor_summary_attr is not None:"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_0384d85b","line":308,"range":{"start_line":307,"start_character":0,"end_line":308,"end_character":54},"in_reply_to":"1a1ced50_dfdc7e75","updated":"2017-03-22 07:19:09.000000000","message":"Yeah.. probably it makes sense to return total no. of threads as opposed to total no. of cores (which was doing the rounds of my head). I stumbled upon this small utility [0] which treats the default as logical CPU, i.e threads\n\n[0] https://stat.ethz.ch/R-manual/R-devel/library/parallel/html/detectCores.html","commit_id":"ece8d40eb44d5498475d52ad3897ba9c63c7cb3f"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8327b194550632d8d01eabd7950ffbd583284ad1","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"      count: The number of processors in the system. To be precise,"},{"line_number":91,"context_line":"        it returns the number of logical CPUs (threads)."},{"line_number":92,"context_line":"      arch: The architecture of the processor/s."},{"line_number":93,"context_line":"    \"\"\""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    _processor_collection \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_0e77093d","line":92,"updated":"2017-04-24 06:33:01.000000000","message":"let\u0027s not shorten it: \"architecture\"","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"31eb04f5b230c94537bac1241b87ddebc351f352","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"      count: The number of processors in the system. To be precise,"},{"line_number":91,"context_line":"        it returns the number of logical CPUs (threads)."},{"line_number":92,"context_line":"      arch: The architecture of the processor/s."},{"line_number":93,"context_line":"    \"\"\""},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    _processor_collection \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_3989ca74","line":92,"in_reply_to":"5ff73747_0e77093d","updated":"2017-05-05 10:46:03.000000000","message":"Done","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8327b194550632d8d01eabd7950ffbd583284ad1","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        return processor_col.get(\u0027@odata.id\u0027)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    @property"},{"line_number":302,"context_line":"    def processor_collection(self):"},{"line_number":303,"context_line":"        if self._processor_collection is None:"},{"line_number":304,"context_line":"            self._processor_collection \u003d processor.ProcessorCollection("},{"line_number":305,"context_line":"                self._conn, self._get_processor_collection_path(),"}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_ee73bd4c","line":302,"updated":"2017-04-24 06:33:01.000000000","message":"rename suggestion: processors","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"31eb04f5b230c94537bac1241b87ddebc351f352","unresolved":false,"context_lines":[{"line_number":299,"context_line":"        return processor_col.get(\u0027@odata.id\u0027)"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"    @property"},{"line_number":302,"context_line":"    def processor_collection(self):"},{"line_number":303,"context_line":"        if self._processor_collection is None:"},{"line_number":304,"context_line":"            self._processor_collection \u003d processor.ProcessorCollection("},{"line_number":305,"context_line":"                self._conn, self._get_processor_collection_path(),"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_1935ee46","line":302,"in_reply_to":"5ff73747_ee73bd4c","updated":"2017-05-05 10:46:03.000000000","message":"Done","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8327b194550632d8d01eabd7950ffbd583284ad1","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        return self._processor_collection"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    @property"},{"line_number":311,"context_line":"    def processor_summary(self):"},{"line_number":312,"context_line":"        if self._processor_summary is None:"},{"line_number":313,"context_line":"            count, arch \u003d 0, \u0027n/a\u0027"},{"line_number":314,"context_line":"            ProcessorSummary \u003d collections.namedtuple("}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_ce8ec126","line":311,"updated":"2017-04-24 06:33:01.000000000","message":"let\u0027s expose summary on self.processors instead, especially since it\u0027s calculated from its contents","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"31eb04f5b230c94537bac1241b87ddebc351f352","unresolved":false,"context_lines":[{"line_number":308,"context_line":"        return self._processor_collection"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"    @property"},{"line_number":311,"context_line":"    def processor_summary(self):"},{"line_number":312,"context_line":"        if self._processor_summary is None:"},{"line_number":313,"context_line":"            count, arch \u003d 0, \u0027n/a\u0027"},{"line_number":314,"context_line":"            ProcessorSummary \u003d collections.namedtuple("}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_39ee6a22","line":311,"in_reply_to":"5ff73747_ce8ec126","updated":"2017-05-05 10:46:03.000000000","message":"Done","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8327b194550632d8d01eabd7950ffbd583284ad1","unresolved":false,"context_lines":[{"line_number":310,"context_line":"    @property"},{"line_number":311,"context_line":"    def processor_summary(self):"},{"line_number":312,"context_line":"        if self._processor_summary is None:"},{"line_number":313,"context_line":"            count, arch \u003d 0, \u0027n/a\u0027"},{"line_number":314,"context_line":"            ProcessorSummary \u003d collections.namedtuple("},{"line_number":315,"context_line":"                \u0027ProcessorSummary\u0027, [\u0027count\u0027, \u0027arch\u0027])"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_ae93754f","line":313,"updated":"2017-04-24 06:33:01.000000000","message":"is n/a part of the standard? if so, please move it to contants. otherwise please use None.","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"31eb04f5b230c94537bac1241b87ddebc351f352","unresolved":false,"context_lines":[{"line_number":310,"context_line":"    @property"},{"line_number":311,"context_line":"    def processor_summary(self):"},{"line_number":312,"context_line":"        if self._processor_summary is None:"},{"line_number":313,"context_line":"            count, arch \u003d 0, \u0027n/a\u0027"},{"line_number":314,"context_line":"            ProcessorSummary \u003d collections.namedtuple("},{"line_number":315,"context_line":"                \u0027ProcessorSummary\u0027, [\u0027count\u0027, \u0027arch\u0027])"},{"line_number":316,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_b994ba8c","line":313,"in_reply_to":"5ff73747_ae93754f","updated":"2017-05-05 10:46:03.000000000","message":"using None","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"8327b194550632d8d01eabd7950ffbd583284ad1","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        if self._processor_summary is None:"},{"line_number":313,"context_line":"            count, arch \u003d 0, \u0027n/a\u0027"},{"line_number":314,"context_line":"            ProcessorSummary \u003d collections.namedtuple("},{"line_number":315,"context_line":"                \u0027ProcessorSummary\u0027, [\u0027count\u0027, \u0027arch\u0027])"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"            self._processors \u003d self.processor_collection.get_members()"},{"line_number":318,"context_line":"            for proc in self._processors:"}],"source_content_type":"text/x-python","patch_set":6,"id":"5ff73747_8e98b96a","line":315,"updated":"2017-04-24 06:33:01.000000000","message":"please move this definition outside of this function to processor.py","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"31eb04f5b230c94537bac1241b87ddebc351f352","unresolved":false,"context_lines":[{"line_number":312,"context_line":"        if self._processor_summary is None:"},{"line_number":313,"context_line":"            count, arch \u003d 0, \u0027n/a\u0027"},{"line_number":314,"context_line":"            ProcessorSummary \u003d collections.namedtuple("},{"line_number":315,"context_line":"                \u0027ProcessorSummary\u0027, [\u0027count\u0027, \u0027arch\u0027])"},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"            self._processors \u003d self.processor_collection.get_members()"},{"line_number":318,"context_line":"            for proc in self._processors:"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f044301_59e93618","line":315,"in_reply_to":"5ff73747_8e98b96a","updated":"2017-05-05 10:46:03.000000000","message":"Done","commit_id":"efbf67c92522d44a9446b94bc951b9f7cd7145ad"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6137e6559f3ccd88fc1b0fb2449270b752de08df","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    The total installed, operating system-accessible memory (RAM),"},{"line_number":80,"context_line":"    measured in GiB."},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    _processors \u003d None"},{"line_number":84,"context_line":"    \"\"\"Reference to `ProcessorCollection` instance"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_51fe6d37","line":81,"updated":"2017-05-09 14:46:38.000000000","message":"what else is in the MemorySummary object? Maybe it makes sense to expose it completely?","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"35120bff5f890aefdcd7de19283f7fb08ee03623","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    The total installed, operating system-accessible memory (RAM),"},{"line_number":80,"context_line":"    measured in GiB."},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    _processors \u003d None"},{"line_number":84,"context_line":"    \"\"\"Reference to `ProcessorCollection` instance"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_6aff3234","line":81,"in_reply_to":"3f044301_51fe6d37","updated":"2017-05-09 17:38:31.000000000","message":"When I look at the MemorySummary object (see: https://github.com/openstack/sushy/blob/master/sushy/tests/unit/json_samples/system.json#L73-L80) I don\u0027t really find anything, barring \u0027TotalSystemMemoryGiB\u0027, which is very relevant, if not probably \u0027Status/Health\u0027. Do you want me to add this? and rename this to ``memory_summary``, a namedtuple instance of:\n\n    MemorySummary \u003d collections.namedtuple(\n      \u0027MemorySummary\u0027, [\u0027size_gib\u0027, \u0027health\u0027])","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"95291f076b7e684158f8ba0e0b168ed8fee65d21","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    The total installed, operating system-accessible memory (RAM),"},{"line_number":80,"context_line":"    measured in GiB."},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    _processors \u003d None"},{"line_number":84,"context_line":"    \"\"\"Reference to `ProcessorCollection` instance"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_eff10d6d","line":81,"in_reply_to":"3f044301_6aff3234","updated":"2017-05-10 06:50:06.000000000","message":"Done","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6d2f07ee2042e5841bd853d9abfbe08709f9a829","unresolved":false,"context_lines":[{"line_number":78,"context_line":""},{"line_number":79,"context_line":"    The total installed, operating system-accessible memory (RAM),"},{"line_number":80,"context_line":"    measured in GiB."},{"line_number":81,"context_line":"    \"\"\""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    _processors \u003d None"},{"line_number":84,"context_line":"    \"\"\"Reference to `ProcessorCollection` instance"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_c5f3d709","line":81,"in_reply_to":"3f044301_6aff3234","updated":"2017-05-09 18:00:13.000000000","message":"yeah, make sense to me","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6137e6559f3ccd88fc1b0fb2449270b752de08df","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    It\u0027s a reference to the instance of"},{"line_number":87,"context_line":"    :class:`sushy.resources.system.processor.ProcessorCollection`."},{"line_number":88,"context_line":"    If required, this has to be accessed by exposed :prop:`processors`."},{"line_number":89,"context_line":"    \"\"\""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def __init__(self, connector, identity, redfish_version\u003dNone):"},{"line_number":92,"context_line":"        \"\"\"A class representing a ComputerSystem"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_31f9a14c","line":89,"updated":"2017-05-09 14:46:38.000000000","message":"nit: I don\u0027t think we should document private variables","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"35120bff5f890aefdcd7de19283f7fb08ee03623","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    It\u0027s a reference to the instance of"},{"line_number":87,"context_line":"    :class:`sushy.resources.system.processor.ProcessorCollection`."},{"line_number":88,"context_line":"    If required, this has to be accessed by exposed :prop:`processors`."},{"line_number":89,"context_line":"    \"\"\""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def __init__(self, connector, identity, redfish_version\u003dNone):"},{"line_number":92,"context_line":"        \"\"\"A class representing a ComputerSystem"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_8a895ecb","line":89,"in_reply_to":"3f044301_31f9a14c","updated":"2017-05-09 17:38:31.000000000","message":"sure. will remove the docstring and add a one-liner as a side-comment.","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"95291f076b7e684158f8ba0e0b168ed8fee65d21","unresolved":false,"context_lines":[{"line_number":86,"context_line":"    It\u0027s a reference to the instance of"},{"line_number":87,"context_line":"    :class:`sushy.resources.system.processor.ProcessorCollection`."},{"line_number":88,"context_line":"    If required, this has to be accessed by exposed :prop:`processors`."},{"line_number":89,"context_line":"    \"\"\""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    def __init__(self, connector, identity, redfish_version\u003dNone):"},{"line_number":92,"context_line":"        \"\"\"A class representing a ComputerSystem"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_cf90914d","line":89,"in_reply_to":"3f044301_8a895ecb","updated":"2017-05-10 06:50:06.000000000","message":"Done","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"6137e6559f3ccd88fc1b0fb2449270b752de08df","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        return self._processors"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    @property"},{"line_number":294,"context_line":"    def processor_summary(self):"},{"line_number":295,"context_line":"        \"\"\"The summary info of processors of the system in general detail"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        It is a namedtuple containing the following:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_1196a5f1","line":294,"updated":"2017-05-09 14:46:38.000000000","message":"this is not needed, typing \"processors.summary\" is exactly the same number of symbols :)","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"35120bff5f890aefdcd7de19283f7fb08ee03623","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        return self._processors"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    @property"},{"line_number":294,"context_line":"    def processor_summary(self):"},{"line_number":295,"context_line":"        \"\"\"The summary info of processors of the system in general detail"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        It is a namedtuple containing the following:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_cab88677","line":294,"in_reply_to":"3f044301_1196a5f1","updated":"2017-05-09 17:38:31.000000000","message":"perfect. makes sense ;)","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"},{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"95291f076b7e684158f8ba0e0b168ed8fee65d21","unresolved":false,"context_lines":[{"line_number":291,"context_line":"        return self._processors"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    @property"},{"line_number":294,"context_line":"    def processor_summary(self):"},{"line_number":295,"context_line":"        \"\"\"The summary info of processors of the system in general detail"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        It is a namedtuple containing the following:"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_4f93615c","line":294,"in_reply_to":"3f044301_cab88677","updated":"2017-05-10 06:50:06.000000000","message":"Done","commit_id":"8e21d5997af1451f539e8f7865cd9aee9c9e9d75"}],"sushy/tests/unit/json_samples/system.json":[{"author":{"_account_id":16635,"name":"deray","email":"debayan.ray@gmail.com","username":"deray"},"change_message_id":"8b59416fd809be2f7581d535f9de73a981b9154b","unresolved":false,"context_lines":[{"line_number":15,"context_line":"    \"Status\": {"},{"line_number":16,"context_line":"        \"State\": \"Enabled\","},{"line_number":17,"context_line":"        \"Health\": \"OK\","},{"line_number":18,"context_line":"        \"HealthRollup\": \"OK\""},{"line_number":19,"context_line":"    },"},{"line_number":20,"context_line":"    \"IndicatorLED\": \"Off\","},{"line_number":21,"context_line":"    \"PowerState\": \"On\","}],"source_content_type":"application/json","patch_set":8,"id":"3f044301_15dfa6d6","line":18,"range":{"start_line":18,"start_character":9,"end_line":18,"end_character":21},"updated":"2017-05-10 06:53:13.000000000","message":"This change is required based on the Redfish original schema definition (http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Status) where \u0027u\u0027 is in small case as opposed to \u0027U\u0027 in \u0027HealthRollup\u0027","commit_id":"d5b668d62624f921d3169b5d3fc3effc181e6814"}]}
