)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"b8681272dd733fc45fba33b1a9e9f91053415d6e","unresolved":false,"context_lines":[{"line_number":11,"context_line":"which can be used to access graphical console of a node."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: Ie54670e064ba1dc852086063c0a328f6c6675723"},{"line_number":14,"context_line":"Partial-bug: #1567629"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":12,"id":"5f7c97a3_2faaf56c","line":14,"updated":"2018-08-02 17:05:19.000000000","message":"We use Story: #1567629 now since we moved to storyboard.","commit_id":"7c164318502487f18d32f9b50921845003cb00cc"}],"ironic/api/controllers/v1/node.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        :param console_type: Type of console: serial or graphical."},{"line_number":351,"context_line":"        \"\"\""},{"line_number":352,"context_line":"        cdict \u003d pecan.request.context.to_policy_values()"},{"line_number":353,"context_line":"        policy.authorize(\u0027baremetal:node:get_console\u0027, cdict, cdict)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        rpc_node \u003d api_utils.get_rpc_node(node_ident)"},{"line_number":356,"context_line":"        topic \u003d pecan.request.rpcapi.get_topic_for(rpc_node)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_5da6d3c2","line":353,"updated":"2018-07-13 01:10:49.000000000","message":"An aside: Maybe we need to split the policy? or have more fine grained for graphical or text?","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":351,"context_line":"        \"\"\""},{"line_number":352,"context_line":"        cdict \u003d pecan.request.context.to_policy_values()"},{"line_number":353,"context_line":"        policy.authorize(\u0027baremetal:node:get_console\u0027, cdict, cdict)"},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"        rpc_node \u003d api_utils.get_rpc_node(node_ident)"},{"line_number":356,"context_line":"        topic \u003d pecan.request.rpcapi.get_topic_for(rpc_node)"},{"line_number":357,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_1dcb7b73","line":354,"updated":"2018-07-13 01:10:49.000000000","message":"the ability to get or set anything besides serial would need to be guarded by a microversion. Also, maybe we need validation logic that only the two possible options are available?","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":383,"context_line":"        topic \u003d pecan.request.rpcapi.get_topic_for(rpc_node)"},{"line_number":384,"context_line":"        pecan.request.rpcapi.set_console_mode(pecan.request.context,"},{"line_number":385,"context_line":"                                              rpc_node.uuid, enabled,"},{"line_number":386,"context_line":"                                              console_type, topic)"},{"line_number":387,"context_line":"        # Set the HTTP Location Header"},{"line_number":388,"context_line":"        url_args \u003d \u0027/\u0027.join([node_ident, \u0027states\u0027, \u0027console\u0027])"},{"line_number":389,"context_line":"        pecan.response.location \u003d link.build_url(\u0027nodes\u0027, url_args)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_fd947f43","line":386,"range":{"start_line":386,"start_character":46,"end_line":386,"end_character":59},"updated":"2018-07-13 01:10:49.000000000","message":"this is incompatible across an upgrade, as conductors are upgraded first... and APIs must be able to continue operating with an older API.  We should have the new argument be the last argument or keyword.","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"}],"ironic/api/controllers/v1/utils.py":[{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d3c96f31e136cc38b819da6c73b84084dfedb704","unresolved":false,"context_lines":[{"line_number":382,"context_line":"    \u0027owner\u0027: versions.MINOR_50_NODE_OWNER,"},{"line_number":383,"context_line":"    # No version assigned, -1 effectively hides the field until a version"},{"line_number":384,"context_line":"    # is assigned and the code/tests are ready for it."},{"line_number":385,"context_line":"    \u0027graphical_console_interface\u0027: -1,"},{"line_number":386,"context_line":"}"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"for field in V31_FIELDS:"}],"source_content_type":"text/x-python","patch_set":35,"id":"bfdaf3ff_cc75609a","line":385,"updated":"2019-01-14 02:09:42.000000000","message":"I don\u0027t think -1 will effectively hides the field, any minor version will \u003e -1, this field will be exposed.\n\nI suggest we remove the api related codes from this patch.","commit_id":"f7b7c01eab19434fc2bb8f991d01b876a24271be"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"5834c3e87688b280beacec925ed389b8df3f2931","unresolved":false,"context_lines":[{"line_number":382,"context_line":"    \u0027owner\u0027: versions.MINOR_50_NODE_OWNER,"},{"line_number":383,"context_line":"    # No version assigned, -1 effectively hides the field until a version"},{"line_number":384,"context_line":"    # is assigned and the code/tests are ready for it."},{"line_number":385,"context_line":"    \u0027graphical_console_interface\u0027: -1,"},{"line_number":386,"context_line":"}"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"for field in V31_FIELDS:"}],"source_content_type":"text/x-python","patch_set":35,"id":"bfdaf3ff_abbf70f9","line":385,"in_reply_to":"bfdaf3ff_12a84175","updated":"2019-01-16 02:33:46.000000000","message":"unfortunately this still won\u0027t work, unless you explicitly set the new field to wsme.Unset, I am curious why you want to keep api code in this patch?","commit_id":"f7b7c01eab19434fc2bb8f991d01b876a24271be"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"af671de8cad696faa8684edb469937900806834a","unresolved":false,"context_lines":[{"line_number":382,"context_line":"    \u0027owner\u0027: versions.MINOR_50_NODE_OWNER,"},{"line_number":383,"context_line":"    # No version assigned, -1 effectively hides the field until a version"},{"line_number":384,"context_line":"    # is assigned and the code/tests are ready for it."},{"line_number":385,"context_line":"    \u0027graphical_console_interface\u0027: -1,"},{"line_number":386,"context_line":"}"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"for field in V31_FIELDS:"}],"source_content_type":"text/x-python","patch_set":35,"id":"bfdaf3ff_0df7adf7","line":385,"in_reply_to":"bfdaf3ff_abbf70f9","updated":"2019-01-16 09:28:27.000000000","message":"Thank you for the review Kaifeng, the main reason I believe is my misunderstanding on the scope of the patch.\nI would also add a little poor judgment coming from my inexperience :)\nI will remove the rest of the api related code.","commit_id":"f7b7c01eab19434fc2bb8f991d01b876a24271be"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"04a1a97c97e27295799dd01d0c008351ef57789d","unresolved":false,"context_lines":[{"line_number":382,"context_line":"    \u0027owner\u0027: versions.MINOR_50_NODE_OWNER,"},{"line_number":383,"context_line":"    # No version assigned, -1 effectively hides the field until a version"},{"line_number":384,"context_line":"    # is assigned and the code/tests are ready for it."},{"line_number":385,"context_line":"    \u0027graphical_console_interface\u0027: -1,"},{"line_number":386,"context_line":"}"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"for field in V31_FIELDS:"}],"source_content_type":"text/x-python","patch_set":35,"id":"bfdaf3ff_12a84175","line":385,"in_reply_to":"bfdaf3ff_cc75609a","updated":"2019-01-15 09:00:53.000000000","message":"I\u0027ve removed the version assignment, that should suffice","commit_id":"f7b7c01eab19434fc2bb8f991d01b876a24271be"}],"ironic/common/driver_factory.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"656e4309eed1a19e6cf60f799884879d60444e94","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"bfdaf3ff_28840a5e","updated":"2019-01-14 15:39:12.000000000","message":"Unrelated changes in this file, please remove.","commit_id":"f7b7c01eab19434fc2bb8f991d01b876a24271be"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"04a1a97c97e27295799dd01d0c008351ef57789d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"bfdaf3ff_d292b94b","in_reply_to":"bfdaf3ff_28840a5e","updated":"2019-01-15 09:00:53.000000000","message":"Done","commit_id":"f7b7c01eab19434fc2bb8f991d01b876a24271be"}],"ironic/conductor/manager.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":2197,"context_line":"                                   exception.UnsupportedDriverExtension,"},{"line_number":2198,"context_line":"                                   exception.NodeConsoleNotEnabled,"},{"line_number":2199,"context_line":"                                   exception.InvalidParameterValue)"},{"line_number":2200,"context_line":"    def get_console_information(self, context, node_id, console_type):"},{"line_number":2201,"context_line":"        \"\"\"Get connection information about the console."},{"line_number":2202,"context_line":""},{"line_number":2203,"context_line":"        :param context: request context."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_3def57fb","line":2200,"updated":"2018-07-13 01:10:49.000000000","message":"Without a default value, we can\u0027t add a new field...","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":2232,"context_line":"                                   exception.NodeLocked,"},{"line_number":2233,"context_line":"                                   exception.UnsupportedDriverExtension,"},{"line_number":2234,"context_line":"                                   exception.InvalidParameterValue)"},{"line_number":2235,"context_line":"    def set_console_mode(self, context, node_id, enabled, console_type):"},{"line_number":2236,"context_line":"        \"\"\"Enable/Disable the console."},{"line_number":2237,"context_line":""},{"line_number":2238,"context_line":"        Validate driver specific information synchronously, and then"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_ddfd03b3","line":2235,"updated":"2018-07-13 01:10:49.000000000","message":"ditto.","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"76fcca7be585403268abdcb7a4621cbc9bd38bda","unresolved":false,"context_lines":[{"line_number":2128,"context_line":"                # patch. Do not have to return the validation result for"},{"line_number":2129,"context_line":"                # \u0027graphical_console\u0027 interface."},{"line_number":2130,"context_line":"                if iface_name \u003d\u003d \u0027graphical_console\u0027:"},{"line_number":2131,"context_line":"                    continue"},{"line_number":2132,"context_line":"                iface \u003d getattr(task.driver, iface_name)"},{"line_number":2133,"context_line":"                result \u003d reason \u003d None"},{"line_number":2134,"context_line":"                try:"}],"source_content_type":"text/x-python","patch_set":29,"id":"3f79a3b5_dc0373bb","line":2131,"updated":"2018-12-05 23:10:27.000000000","message":"oh yeah, that would do it.","commit_id":"ce3995305db63129e093a570674cf1bd45defd61"}],"ironic/conductor/rpcapi.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":454,"context_line":"        cctxt \u003d self.client.prepare(topic\u003dtopic or self.topic, version\u003d\u00271.9\u0027)"},{"line_number":455,"context_line":"        return cctxt.call(context, \u0027destroy_node\u0027, node_id\u003dnode_id)"},{"line_number":456,"context_line":""},{"line_number":457,"context_line":"    def get_console_information(self, context, node_id, console_type,"},{"line_number":458,"context_line":"                                topic\u003dNone):"},{"line_number":459,"context_line":"        \"\"\"Get connection information about the console."},{"line_number":460,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_bd2cc749","line":457,"updated":"2018-07-13 01:10:49.000000000","message":"There will need to be a default value passed in for console type. Additionally, your changing the order, inserting a positional argument, however what if the caller thinks argument 3 is topic?","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":469,"context_line":"        \"\"\""},{"line_number":470,"context_line":"        cctxt \u003d self.client.prepare(topic\u003dtopic or self.topic, version\u003d\u00271.45\u0027)"},{"line_number":471,"context_line":"        return cctxt.call(context, \u0027get_console_information\u0027, node_id\u003dnode_id,"},{"line_number":472,"context_line":"                          console_type\u003dconsole_type)"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"    def set_console_mode(self, context, node_id, enabled, console_type,"},{"line_number":475,"context_line":"                         topic\u003dNone):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_dd1663f3","line":472,"updated":"2018-07-13 01:10:49.000000000","message":"Without a default value, this is incompatible across upgrades...","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":472,"context_line":"                          console_type\u003dconsole_type)"},{"line_number":473,"context_line":""},{"line_number":474,"context_line":"    def set_console_mode(self, context, node_id, enabled, console_type,"},{"line_number":475,"context_line":"                         topic\u003dNone):"},{"line_number":476,"context_line":"        \"\"\"Enable/Disable the console."},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        :param context: request context."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_5d233359","line":475,"updated":"2018-07-13 01:10:49.000000000","message":"same as line 457.","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":490,"context_line":"        \"\"\""},{"line_number":491,"context_line":"        cctxt \u003d self.client.prepare(topic\u003dtopic or self.topic, version\u003d\u00271.45\u0027)"},{"line_number":492,"context_line":"        return cctxt.call(context, \u0027set_console_mode\u0027, node_id\u003dnode_id,"},{"line_number":493,"context_line":"                          enabled\u003denabled, console_type\u003dconsole_type)"},{"line_number":494,"context_line":""},{"line_number":495,"context_line":"    def create_port(self, context, port_obj, topic\u003dNone):"},{"line_number":496,"context_line":"        \"\"\"Synchronously, have a conductor validate and create a port."}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_5dd81351","line":493,"updated":"2018-07-13 01:10:49.000000000","message":"Default value needed... or ultimately we need new methods :\\","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"}],"ironic/conf/default.py":[{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d3077ec284853831bdfd32587b7d75a0fec0cf52","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                                             _(\u0027 This option is part of VNC\u0027"},{"line_number":58,"context_line":"                                               \u0027 Console feature  work, which\u0027"},{"line_number":59,"context_line":"                                               \u0027 is not currently exposed to\u0027"},{"line_number":60,"context_line":"                                               \u0027users.\u0027))"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# TODO(mkrai) Remove this in VNC Console API patch."},{"line_number":63,"context_line":"_DEFAULT_IFACE_HELP_FOR_GRAPHICAL_CONSOLE \u003d (_DEFAULT_IFACE_HELP +"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_47efaab0","line":60,"range":{"start_line":60,"start_character":48,"end_line":60,"end_character":49},"updated":"2018-10-10 15:13:31.000000000","message":"nit: a whitespace is missing.","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"ae7d64909dd58d4bae7caac30a8d747233593a64","unresolved":false,"context_lines":[{"line_number":57,"context_line":"                                             _(\u0027 This option is part of VNC\u0027"},{"line_number":58,"context_line":"                                               \u0027 Console feature  work, which\u0027"},{"line_number":59,"context_line":"                                               \u0027 is not currently exposed to\u0027"},{"line_number":60,"context_line":"                                               \u0027users.\u0027))"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"# TODO(mkrai) Remove this in VNC Console API patch."},{"line_number":63,"context_line":"_DEFAULT_IFACE_HELP_FOR_GRAPHICAL_CONSOLE \u003d (_DEFAULT_IFACE_HELP +"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_ebe820a8","line":60,"range":{"start_line":60,"start_character":48,"end_line":60,"end_character":49},"in_reply_to":"3f79a3b5_47efaab0","updated":"2018-10-22 08:49:46.000000000","message":"Done","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d3077ec284853831bdfd32587b7d75a0fec0cf52","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                                             _(\u0027 This option is part of VNC\u0027"},{"line_number":65,"context_line":"                                               \u0027 Console feature work, which\u0027"},{"line_number":66,"context_line":"                                               \u0027 is not currently exposed to\u0027"},{"line_number":67,"context_line":"                                               \u0027users.\u0027))"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"api_opts \u003d ["},{"line_number":70,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_c7309a58","line":67,"range":{"start_line":67,"start_character":47,"end_line":67,"end_character":49},"updated":"2018-10-10 15:13:31.000000000","message":"ditto","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"ae7d64909dd58d4bae7caac30a8d747233593a64","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                                             _(\u0027 This option is part of VNC\u0027"},{"line_number":65,"context_line":"                                               \u0027 Console feature work, which\u0027"},{"line_number":66,"context_line":"                                               \u0027 is not currently exposed to\u0027"},{"line_number":67,"context_line":"                                               \u0027users.\u0027))"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"api_opts \u003d ["},{"line_number":70,"context_line":"    cfg.StrOpt("}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_8b25ec18","line":67,"range":{"start_line":67,"start_character":47,"end_line":67,"end_character":49},"in_reply_to":"3f79a3b5_c7309a58","updated":"2018-10-22 08:49:46.000000000","message":"Done","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d3077ec284853831bdfd32587b7d75a0fec0cf52","unresolved":false,"context_lines":[{"line_number":128,"context_line":"               help\u003d_DEFAULT_IFACE_HELP.format(\u0027console\u0027)),"},{"line_number":129,"context_line":"    cfg.ListOpt(\u0027enabled_graphical_console_interfaces\u0027,"},{"line_number":130,"context_line":"                default\u003d[\u0027no-graphical_console\u0027],"},{"line_number":131,"context_line":"                help\u003d_ENABLED_IFACE_HELP.format(\u0027graphical_console\u0027)),"},{"line_number":132,"context_line":"    cfg.StrOpt(\u0027default_graphical_console_interface\u0027,"},{"line_number":133,"context_line":"               help\u003d_DEFAULT_IFACE_HELP.format(\u0027graphical_console\u0027)),"},{"line_number":134,"context_line":"    cfg.ListOpt(\u0027enabled_deploy_interfaces\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_e7e596dc","line":131,"updated":"2018-10-10 15:13:31.000000000","message":"We should use _ENABLED_IFACE_HELP_FOR_GRAPHICAL_CONSOLE.","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"ae7d64909dd58d4bae7caac30a8d747233593a64","unresolved":false,"context_lines":[{"line_number":128,"context_line":"               help\u003d_DEFAULT_IFACE_HELP.format(\u0027console\u0027)),"},{"line_number":129,"context_line":"    cfg.ListOpt(\u0027enabled_graphical_console_interfaces\u0027,"},{"line_number":130,"context_line":"                default\u003d[\u0027no-graphical_console\u0027],"},{"line_number":131,"context_line":"                help\u003d_ENABLED_IFACE_HELP.format(\u0027graphical_console\u0027)),"},{"line_number":132,"context_line":"    cfg.StrOpt(\u0027default_graphical_console_interface\u0027,"},{"line_number":133,"context_line":"               help\u003d_DEFAULT_IFACE_HELP.format(\u0027graphical_console\u0027)),"},{"line_number":134,"context_line":"    cfg.ListOpt(\u0027enabled_deploy_interfaces\u0027,"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_ab11c8b0","line":131,"in_reply_to":"3f79a3b5_e7e596dc","updated":"2018-10-22 08:49:46.000000000","message":"Done","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d3077ec284853831bdfd32587b7d75a0fec0cf52","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                default\u003d[\u0027no-graphical_console\u0027],"},{"line_number":131,"context_line":"                help\u003d_ENABLED_IFACE_HELP.format(\u0027graphical_console\u0027)),"},{"line_number":132,"context_line":"    cfg.StrOpt(\u0027default_graphical_console_interface\u0027,"},{"line_number":133,"context_line":"               help\u003d_DEFAULT_IFACE_HELP.format(\u0027graphical_console\u0027)),"},{"line_number":134,"context_line":"    cfg.ListOpt(\u0027enabled_deploy_interfaces\u0027,"},{"line_number":135,"context_line":"                default\u003d[\u0027iscsi\u0027, \u0027direct\u0027],"},{"line_number":136,"context_line":"                help\u003d_ENABLED_IFACE_HELP.format(\u0027deploy\u0027)),"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_2705ce79","line":133,"updated":"2018-10-10 15:13:31.000000000","message":"We should use _DEFAULT_IFACE_HELP_FOR_GRAPHICAL_CONSOLE.","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"ae7d64909dd58d4bae7caac30a8d747233593a64","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                default\u003d[\u0027no-graphical_console\u0027],"},{"line_number":131,"context_line":"                help\u003d_ENABLED_IFACE_HELP.format(\u0027graphical_console\u0027)),"},{"line_number":132,"context_line":"    cfg.StrOpt(\u0027default_graphical_console_interface\u0027,"},{"line_number":133,"context_line":"               help\u003d_DEFAULT_IFACE_HELP.format(\u0027graphical_console\u0027)),"},{"line_number":134,"context_line":"    cfg.ListOpt(\u0027enabled_deploy_interfaces\u0027,"},{"line_number":135,"context_line":"                default\u003d[\u0027iscsi\u0027, \u0027direct\u0027],"},{"line_number":136,"context_line":"                help\u003d_ENABLED_IFACE_HELP.format(\u0027deploy\u0027)),"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_4b08347f","line":133,"in_reply_to":"3f79a3b5_2705ce79","updated":"2018-10-22 08:49:46.000000000","message":"Done","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"173fee6b9d03721fb2f519a8887138e6ab391cc0","unresolved":false,"context_lines":[{"line_number":55,"context_line":"# TODO(mkrai) Remove this in VNC Console API patch."},{"line_number":56,"context_line":"_ENABLED_IFACE_HELP_FOR_GRAPHICAL_CONSOLE \u003d (_ENABLED_IFACE_HELP +"},{"line_number":57,"context_line":"                                             _(\u0027 This option is part of VNC\u0027"},{"line_number":58,"context_line":"                                               \u0027 Console feature  work, which\u0027"},{"line_number":59,"context_line":"                                               \u0027 is not currently exposed to\u0027"},{"line_number":60,"context_line":"                                               \u0027 users.\u0027))"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"3f79a3b5_49c8e373","line":58,"range":{"start_line":58,"start_character":65,"end_line":58,"end_character":66},"updated":"2018-10-25 14:00:43.000000000","message":"nit: redundant whitespace","commit_id":"9967a2d1df5ff08b2119c029e7f029f0c4e6842d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"76fcca7be585403268abdcb7a4621cbc9bd38bda","unresolved":false,"context_lines":[{"line_number":55,"context_line":"# TODO(mkrai) Remove this in VNC Console API patch."},{"line_number":56,"context_line":"_ENABLED_IFACE_HELP_FOR_GRAPHICAL_CONSOLE \u003d (_ENABLED_IFACE_HELP +"},{"line_number":57,"context_line":"                                             _(\u0027 This option is part of VNC\u0027"},{"line_number":58,"context_line":"                                               \u0027 Console feature  work, which\u0027"},{"line_number":59,"context_line":"                                               \u0027 is not currently exposed to\u0027"},{"line_number":60,"context_line":"                                               \u0027 users.\u0027))"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":28,"id":"3f79a3b5_30d96df1","line":58,"range":{"start_line":58,"start_character":65,"end_line":58,"end_character":66},"in_reply_to":"3f79a3b5_49c8e373","updated":"2018-12-05 23:10:27.000000000","message":"Done","commit_id":"9967a2d1df5ff08b2119c029e7f029f0c4e6842d"}],"ironic/db/sqlalchemy/alembic/versions/ac4416cecce5_resize_column_interface_type.py":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"375d20964224816f8bbb24fc90ad9d7a14095878","unresolved":false,"context_lines":[{"line_number":22,"context_line":"revision \u003d \u0027ac4416cecce5\u0027"},{"line_number":23,"context_line":"down_revision \u003d \u0027d0d5e6f7c0c5\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from alembic import op"},{"line_number":26,"context_line":"import sqlalchemy as sa"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_0a1b8bca","line":26,"range":{"start_line":25,"start_character":0,"end_line":26,"end_character":23},"updated":"2018-10-16 18:47:46.000000000","message":"please move the imports, they should be before starting in line 21","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"ae7d64909dd58d4bae7caac30a8d747233593a64","unresolved":false,"context_lines":[{"line_number":22,"context_line":"revision \u003d \u0027ac4416cecce5\u0027"},{"line_number":23,"context_line":"down_revision \u003d \u0027d0d5e6f7c0c5\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from alembic import op"},{"line_number":26,"context_line":"import sqlalchemy as sa"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_6b59708b","line":26,"range":{"start_line":25,"start_character":0,"end_line":26,"end_character":23},"in_reply_to":"3f79a3b5_0a1b8bca","updated":"2018-10-22 08:49:46.000000000","message":"Done","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"76fcca7be585403268abdcb7a4621cbc9bd38bda","unresolved":false,"context_lines":[{"line_number":22,"context_line":"revision \u003d \u0027ac4416cecce5\u0027"},{"line_number":23,"context_line":"down_revision \u003d \u0027d0d5e6f7c0c5\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from alembic import op"},{"line_number":26,"context_line":"import sqlalchemy as sa"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_f4812da3","line":26,"range":{"start_line":25,"start_character":0,"end_line":26,"end_character":23},"in_reply_to":"3f79a3b5_0a1b8bca","updated":"2018-12-05 23:10:27.000000000","message":"I believe this is autogenerated, and as such it is likely fine.","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d3077ec284853831bdfd32587b7d75a0fec0cf52","unresolved":false,"context_lines":[{"line_number":29,"context_line":"def upgrade():"},{"line_number":30,"context_line":"    op.alter_column(\u0027conductor_hardware_interfaces\u0027, \u0027interface_type\u0027,"},{"line_number":31,"context_line":"                    existing_type\u003dsa.String(length\u003d16),"},{"line_number":32,"context_line":"                    type_\u003dsa.String(length\u003d255))"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_a7747e38","line":32,"updated":"2018-10-10 15:13:31.000000000","message":"\"existing_nullable\u003dFalse\" is necessary for MySQL.","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"173fee6b9d03721fb2f519a8887138e6ab391cc0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"def upgrade():"},{"line_number":30,"context_line":"    op.alter_column(\u0027conductor_hardware_interfaces\u0027, \u0027interface_type\u0027,"},{"line_number":31,"context_line":"                    existing_type\u003dsa.String(length\u003d16),"},{"line_number":32,"context_line":"                    type_\u003dsa.String(length\u003d255))"}],"source_content_type":"text/x-python","patch_set":28,"id":"3f79a3b5_a90097b2","line":32,"updated":"2018-10-25 14:00:43.000000000","message":"\"existing_nullable\u003dFalse\" is necessary for upgrading in MySQL.","commit_id":"9967a2d1df5ff08b2119c029e7f029f0c4e6842d"}],"ironic/db/sqlalchemy/alembic/versions/d0d5e6f7c0c5_add_graphical_console_interface.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"a7d5379cc1845fc3ce408a9399bc70d9135d97dc","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def upgrade():"},{"line_number":30,"context_line":"    op.add_column(\u0027nodes\u0027, sa.Column(\u0027graphical_console_interface\u0027,"},{"line_number":31,"context_line":"                                     sa.String(length\u003d255), nullable\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":24,"id":"3f79a3b5_0550002c","line":31,"updated":"2018-10-08 19:39:00.000000000","message":"More database changes are needed:\n\nThe column width in the conductors table needs to be widened. \n\nhttp://logs.openstack.org/56/547356/24/check/ironic-tempest-dsvm-ipa-wholedisk-agent_ipmitool-tinyipa-multinode/cbc1539/logs/screen-ir-cond.txt.gz#_Oct_08_15_38_56_097932","commit_id":"1fe00330f32f2780512d98f12bee66cd8cb0d57c"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"e99fb8aaf155277e116cc150510d99ece73f0249","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def upgrade():"},{"line_number":30,"context_line":"    op.add_column(\u0027nodes\u0027, sa.Column(\u0027graphical_console_interface\u0027,"},{"line_number":31,"context_line":"                                     sa.String(length\u003d255), nullable\u003dTrue))"}],"source_content_type":"text/x-python","patch_set":24,"id":"3f79a3b5_673195ed","line":31,"in_reply_to":"3f79a3b5_0550002c","updated":"2018-10-10 04:34:28.000000000","message":"Done. Thanks!","commit_id":"1fe00330f32f2780512d98f12bee66cd8cb0d57c"}],"ironic/db/sqlalchemy/alembic/versions/d6c970712ab3_resize_column_interface_type.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f9548edc1f09349f4398f841cea4a1042fe80bf1","unresolved":false,"context_lines":[{"line_number":29,"context_line":"def upgrade():"},{"line_number":30,"context_line":"    op.alter_column(\u0027conductor_hardware_interfaces\u0027, \u0027interface_type\u0027,"},{"line_number":31,"context_line":"                    existing_type\u003dsa.String(length\u003d16),"},{"line_number":32,"context_line":"                    type_\u003dsa.String(length\u003d255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_826fa05e","line":32,"updated":"2018-07-09 14:11:17.000000000","message":"I think","commit_id":"30b9905fb486524696b80a404d5f6af244b0c1bf"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"39a7dc4320f06d0332b314e42c7742e3b7aabc77","unresolved":false,"context_lines":[{"line_number":29,"context_line":"def upgrade():"},{"line_number":30,"context_line":"    op.alter_column(\u0027conductor_hardware_interfaces\u0027, \u0027interface_type\u0027,"},{"line_number":31,"context_line":"                    existing_type\u003dsa.String(length\u003d16),"},{"line_number":32,"context_line":"                    type_\u003dsa.String(length\u003d255))"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_b72f3b88","line":32,"in_reply_to":"5f7c97a3_826fa05e","updated":"2018-07-11 07:40:59.000000000","message":"Do I need to change anything here?","commit_id":"30b9905fb486524696b80a404d5f6af244b0c1bf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"f9548edc1f09349f4398f841cea4a1042fe80bf1","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# revision identifiers, used by Alembic."},{"line_number":24,"context_line":"revision \u003d \u0027d6c970712ab3\u0027"},{"line_number":25,"context_line":"down_revision \u003d \u0027e918ff30eb42\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_da256e5c","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":30},"updated":"2018-07-09 14:11:17.000000000","message":"You need to double check this because it needs to be the most recent database change. It seems that the schema update against master branch conflicts and causes the install/deploys to fail.","commit_id":"936a0b761b26ff2f9cfe976b07a4b9dfde1d31cf"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"39a7dc4320f06d0332b314e42c7742e3b7aabc77","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"# revision identifiers, used by Alembic."},{"line_number":24,"context_line":"revision \u003d \u0027d6c970712ab3\u0027"},{"line_number":25,"context_line":"down_revision \u003d \u0027e918ff30eb42\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def upgrade():"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_176b8f86","line":25,"range":{"start_line":25,"start_character":0,"end_line":25,"end_character":30},"in_reply_to":"5f7c97a3_da256e5c","updated":"2018-07-11 07:40:59.000000000","message":"Done","commit_id":"936a0b761b26ff2f9cfe976b07a4b9dfde1d31cf"}],"ironic/db/sqlalchemy/models.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5d75de63a42ed6805948560f3ced9e29a87e50d9","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":110,"context_line":"    conductor_id \u003d Column(Integer, ForeignKey(\u0027conductors.id\u0027), nullable\u003dFalse)"},{"line_number":111,"context_line":"    hardware_type \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":112,"context_line":"    interface_type \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":113,"context_line":"    interface_name \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":114,"context_line":"    default \u003d Column(Boolean, default\u003dFalse, nullable\u003dFalse)"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_bd35a7a9","line":112,"updated":"2018-07-13 00:45:13.000000000","message":"Looks like this doesn\u0027t seem to be working as expected :\\\n\nhttp://logs.openstack.org/56/547356/4/check/openstack-tox-py35/da147e1/testr_results.html.gz","commit_id":"936a0b761b26ff2f9cfe976b07a4b9dfde1d31cf"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"82156f982ff91af3124f8f3e32798c9e6deb7ade","unresolved":false,"context_lines":[{"line_number":109,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":110,"context_line":"    conductor_id \u003d Column(Integer, ForeignKey(\u0027conductors.id\u0027), nullable\u003dFalse)"},{"line_number":111,"context_line":"    hardware_type \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":112,"context_line":"    interface_type \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":113,"context_line":"    interface_name \u003d Column(String(255), nullable\u003dFalse)"},{"line_number":114,"context_line":"    default \u003d Column(Boolean, default\u003dFalse, nullable\u003dFalse)"},{"line_number":115,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"5f7c97a3_d58493b4","line":112,"updated":"2018-07-18 08:43:08.000000000","message":"This doesn\u0027t look related to adding a new interface. You can refer to another change for adding bios interface to DB model[1].\n\n[1] https://review.openstack.org/#/c/528609/","commit_id":"a76dc9b9b2109df7fe1a25b9dd264cf84dfc29f3"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"525685405a4e044268d365eb4f4cae03ed3c0531","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    drivers \u003d Column(db_types.JsonEncodedList)"},{"line_number":94,"context_line":"    online \u003d Column(Boolean, default\u003dTrue)"},{"line_number":95,"context_line":"    conductor_group \u003d Column(String(255), nullable\u003dFalse, default\u003d\u0027\u0027,"},{"line_number":96,"context_line":"                             server_default\u003d\u0027\u0027)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"class ConductorHardwareInterfaces(Base):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_79bf43fd","line":96,"updated":"2018-07-23 21:29:17.000000000","message":"This has nothing to do with the graphical console interface. I can\u0027t help but wonder if a rebase merge conflict occured?","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8cd711ce89c155ca82a948f089931770b335cf27","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    drivers \u003d Column(db_types.JsonEncodedList)"},{"line_number":94,"context_line":"    online \u003d Column(Boolean, default\u003dTrue)"},{"line_number":95,"context_line":"    conductor_group \u003d Column(String(255), nullable\u003dFalse, default\u003d\u0027\u0027,"},{"line_number":96,"context_line":"                             server_default\u003d\u0027\u0027)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"class ConductorHardwareInterfaces(Base):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_8d2bb07a","line":96,"in_reply_to":"5f7c97a3_79bf43fd","updated":"2018-07-26 10:10:41.000000000","message":"Oops, I think its a merge conflict. Removed.","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"525685405a4e044268d365eb4f4cae03ed3c0531","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    driver_info \u003d Column(db_types.JsonEncodedDict)"},{"line_number":147,"context_line":"    driver_internal_info \u003d Column(db_types.JsonEncodedDict)"},{"line_number":148,"context_line":"    clean_step \u003d Column(db_types.JsonEncodedDict)"},{"line_number":149,"context_line":"    deploy_step \u003d Column(db_types.JsonEncodedDict)"},{"line_number":150,"context_line":"    resource_class \u003d Column(String(80), nullable\u003dTrue)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    raid_config \u003d Column(db_types.JsonEncodedDict)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_59b60728","line":149,"updated":"2018-07-23 21:29:17.000000000","message":"ditto... this was introduced recently, as has been the conductor_group above.","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8cd711ce89c155ca82a948f089931770b335cf27","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    driver_info \u003d Column(db_types.JsonEncodedDict)"},{"line_number":147,"context_line":"    driver_internal_info \u003d Column(db_types.JsonEncodedDict)"},{"line_number":148,"context_line":"    clean_step \u003d Column(db_types.JsonEncodedDict)"},{"line_number":149,"context_line":"    deploy_step \u003d Column(db_types.JsonEncodedDict)"},{"line_number":150,"context_line":"    resource_class \u003d Column(String(80), nullable\u003dTrue)"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"    raid_config \u003d Column(db_types.JsonEncodedDict)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_4d3598a6","line":149,"in_reply_to":"5f7c97a3_59b60728","updated":"2018-07-26 10:10:41.000000000","message":"Done","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"525685405a4e044268d365eb4f4cae03ed3c0531","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    bios_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":180,"context_line":"    boot_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":181,"context_line":"    console_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":182,"context_line":"    deploy_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":183,"context_line":"    inspect_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":184,"context_line":"    management_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":185,"context_line":"    network_interface \u003d Column(String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_f93033ba","line":182,"updated":"2018-07-23 21:29:17.000000000","message":"A graphical console interface would go around here.","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8cd711ce89c155ca82a948f089931770b335cf27","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    bios_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":180,"context_line":"    boot_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":181,"context_line":"    console_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":182,"context_line":"    deploy_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":183,"context_line":"    inspect_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":184,"context_line":"    management_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":185,"context_line":"    network_interface \u003d Column(String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_6d4f3435","line":182,"in_reply_to":"5f7c97a3_f93033ba","updated":"2018-07-26 10:10:41.000000000","message":"Done","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2310d2ecfbff6840f7dc17be17dab8d08286f34b","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    bios_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":180,"context_line":"    boot_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":181,"context_line":"    console_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":182,"context_line":"    graphical_console_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":183,"context_line":"    deploy_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":184,"context_line":"    inspect_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":185,"context_line":"    management_interface \u003d Column(String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_fc642a22","line":182,"updated":"2018-07-28 14:52:24.000000000","message":"It would be better to move it after deploy_interface so that all interfaces are listed in alphabetical order.","commit_id":"7c164318502487f18d32f9b50921845003cb00cc"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"5e88c99c28383ed699cd36a60ff0453084ca4556","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    bios_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":180,"context_line":"    boot_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":181,"context_line":"    console_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":182,"context_line":"    graphical_console_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":183,"context_line":"    deploy_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":184,"context_line":"    inspect_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":185,"context_line":"    management_interface \u003d Column(String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_4d764cdb","line":182,"in_reply_to":"5f7c97a3_affa85b8","updated":"2018-08-06 11:18:06.000000000","message":"Done","commit_id":"7c164318502487f18d32f9b50921845003cb00cc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c22a507101336d948f441b603f420d4c2efe8af0","unresolved":false,"context_lines":[{"line_number":179,"context_line":"    bios_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":180,"context_line":"    boot_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":181,"context_line":"    console_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":182,"context_line":"    graphical_console_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":183,"context_line":"    deploy_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":184,"context_line":"    inspect_interface \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":185,"context_line":"    management_interface \u003d Column(String(255), nullable\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_affa85b8","line":182,"in_reply_to":"5f7c97a3_fc642a22","updated":"2018-08-02 17:02:11.000000000","message":"++\n\nWe also have the model change, but no actual database migration to add the column to the table.","commit_id":"7c164318502487f18d32f9b50921845003cb00cc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"d2035fa7907d206f04497e35ae860b54898101cc","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    maintenance_reason \u003d Column(Text, nullable\u003dTrue)"},{"line_number":173,"context_line":"    fault \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":174,"context_line":"    console_enabled \u003d Column(Boolean, default\u003dFalse)"},{"line_number":175,"context_line":"    graphical_console_enabled \u003d Column(Boolean, default\u003dFalse)"},{"line_number":176,"context_line":"    inspection_finished_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":177,"context_line":"    inspection_started_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":178,"context_line":"    extra \u003d Column(db_types.JsonEncodedDict)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_d6771c9f","line":175,"range":{"start_line":175,"start_character":2,"end_line":175,"end_character":62},"updated":"2018-08-30 21:12:28.000000000","message":"This is not covered in the spec, and is not used in the patch. Without the remaining patches to take this to the api level for at least interaction get/set the field, I\u0027m a little uncomfortable approving this because we can\u0027t see the entire picture of where this is going.","commit_id":"d5841d0db036a3aee4a12f563481d56b8e100101"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"a9029b6e093f71610444436628796fa693a50207","unresolved":false,"context_lines":[{"line_number":172,"context_line":"    maintenance_reason \u003d Column(Text, nullable\u003dTrue)"},{"line_number":173,"context_line":"    fault \u003d Column(String(255), nullable\u003dTrue)"},{"line_number":174,"context_line":"    console_enabled \u003d Column(Boolean, default\u003dFalse)"},{"line_number":175,"context_line":"    graphical_console_enabled \u003d Column(Boolean, default\u003dFalse)"},{"line_number":176,"context_line":"    inspection_finished_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":177,"context_line":"    inspection_started_at \u003d Column(DateTime, nullable\u003dTrue)"},{"line_number":178,"context_line":"    extra \u003d Column(db_types.JsonEncodedDict)"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f79a3b5_019a02c4","line":175,"range":{"start_line":175,"start_character":2,"end_line":175,"end_character":62},"in_reply_to":"3f79a3b5_d6771c9f","updated":"2018-09-03 08:22:07.000000000","message":"I have removed it.","commit_id":"d5841d0db036a3aee4a12f563481d56b8e100101"}],"ironic/drivers/base.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6a3d4eef7895c9994820231e1cdd690ee5f807dc","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    @property"},{"line_number":134,"context_line":"    def optional_interfaces(self):"},{"line_number":135,"context_line":"        \"\"\"Interfaces that can be no-op.\"\"\""},{"line_number":136,"context_line":"        return [\u0027bios\u0027, \u0027console\u0027, \u0027inspect\u0027, \u0027raid\u0027, \u0027rescue\u0027, \u0027storage\u0027]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @property"},{"line_number":139,"context_line":"    def all_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f79a3b5_c1a16af9","line":136,"updated":"2018-09-28 00:09:54.000000000","message":"You need to add graphical_console to this list.","commit_id":"86c15b3150da87cdd2b6f848ea4374f0149d82bb"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"f2b1a0464f61decaa3a800e68d4282eae0a06c87","unresolved":false,"context_lines":[{"line_number":133,"context_line":"    @property"},{"line_number":134,"context_line":"    def optional_interfaces(self):"},{"line_number":135,"context_line":"        \"\"\"Interfaces that can be no-op.\"\"\""},{"line_number":136,"context_line":"        return [\u0027bios\u0027, \u0027console\u0027, \u0027inspect\u0027, \u0027raid\u0027, \u0027rescue\u0027, \u0027storage\u0027]"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    @property"},{"line_number":139,"context_line":"    def all_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f79a3b5_32a39901","line":136,"in_reply_to":"3f79a3b5_c1a16af9","updated":"2018-10-08 09:18:12.000000000","message":"Done","commit_id":"86c15b3150da87cdd2b6f848ea4374f0149d82bb"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"95246a5004908b1b899c476db94142b7ad2c9842","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    \"\"\"`Standard` attribute for managing graphical console access."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    A reference to an instance of :class:GraphicalConsoleInterface."},{"line_number":71,"context_line":"    May be None, if unsupported by a driver."},{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    deploy \u003d None"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_40866667","line":71,"range":{"start_line":71,"start_character":3,"end_line":71,"end_character":44},"updated":"2018-10-02 13:05:10.000000000","message":"nit: it\u0027s initially `None` like other attributes (which do not carry such note)","commit_id":"f3720f547982817ea97cc73780ed0884efb40cdf"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"f2b1a0464f61decaa3a800e68d4282eae0a06c87","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    \"\"\"`Standard` attribute for managing graphical console access."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    A reference to an instance of :class:GraphicalConsoleInterface."},{"line_number":71,"context_line":"    May be None, if unsupported by a driver."},{"line_number":72,"context_line":"    \"\"\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    deploy \u003d None"}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_d31c2016","line":71,"range":{"start_line":71,"start_character":3,"end_line":71,"end_character":44},"in_reply_to":"3f79a3b5_40866667","updated":"2018-10-08 09:18:12.000000000","message":"Done. I have removed this line. Thanks!","commit_id":"f3720f547982817ea97cc73780ed0884efb40cdf"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"95246a5004908b1b899c476db94142b7ad2c9842","unresolved":false,"context_lines":[{"line_number":620,"context_line":"    def start_console(self, task):"},{"line_number":621,"context_line":"        \"\"\"Start a remote graphical console for the task\u0027s node."},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        This method should not raise an exception if console already started."},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        :param task: a TaskManager instance containing the node to act on."},{"line_number":626,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_00586ef6","line":623,"range":{"start_line":623,"start_character":31,"end_line":623,"end_character":49},"updated":"2018-10-02 13:05:10.000000000","message":"Can this (and other console) methods raise exceptions in other cases?","commit_id":"f3720f547982817ea97cc73780ed0884efb40cdf"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"f2b1a0464f61decaa3a800e68d4282eae0a06c87","unresolved":false,"context_lines":[{"line_number":620,"context_line":"    def start_console(self, task):"},{"line_number":621,"context_line":"        \"\"\"Start a remote graphical console for the task\u0027s node."},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        This method should not raise an exception if console already started."},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        :param task: a TaskManager instance containing the node to act on."},{"line_number":626,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_13b13802","line":623,"range":{"start_line":623,"start_character":31,"end_line":623,"end_character":49},"in_reply_to":"3f79a3b5_00586ef6","updated":"2018-10-08 09:18:12.000000000","message":"Yes, the serial console raises exception such as ConsoleError and ConsoleSubprocessFailed[1]\n\n[1] https://github.com/openstack/ironic/blob/master/ironic/drivers/modules/ipmitool.py#L1246","commit_id":"f3720f547982817ea97cc73780ed0884efb40cdf"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"95246a5004908b1b899c476db94142b7ad2c9842","unresolved":false,"context_lines":[{"line_number":628,"context_line":"    @abc.abstractmethod"},{"line_number":629,"context_line":"    def stop_console(self, task):"},{"line_number":630,"context_line":"        \"\"\"Stop the remote graphical console session for the task\u0027s node."},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"        :param task: a TaskManager instance containing the node to act on."},{"line_number":633,"context_line":"        \"\"\""},{"line_number":634,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_2036cab5","line":631,"range":{"start_line":631,"start_character":0,"end_line":631,"end_character":0},"updated":"2018-10-02 13:05:10.000000000","message":"nit: does this method tolerate being called when the console is already stopped? I see similar note in `start_console`.","commit_id":"f3720f547982817ea97cc73780ed0884efb40cdf"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"f2b1a0464f61decaa3a800e68d4282eae0a06c87","unresolved":false,"context_lines":[{"line_number":628,"context_line":"    @abc.abstractmethod"},{"line_number":629,"context_line":"    def stop_console(self, task):"},{"line_number":630,"context_line":"        \"\"\"Stop the remote graphical console session for the task\u0027s node."},{"line_number":631,"context_line":""},{"line_number":632,"context_line":"        :param task: a TaskManager instance containing the node to act on."},{"line_number":633,"context_line":"        \"\"\""},{"line_number":634,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_f39a7c5e","line":631,"range":{"start_line":631,"start_character":0,"end_line":631,"end_character":0},"in_reply_to":"3f79a3b5_2036cab5","updated":"2018-10-08 09:18:12.000000000","message":"Yes,  it won\u0027t raise any exception.\nAdded the same line as `start_console` here.","commit_id":"f3720f547982817ea97cc73780ed0884efb40cdf"},{"author":{"_account_id":26340,"name":"Ilya Etingof","email":"etingof@gmail.com","username":"etingof"},"change_message_id":"95246a5004908b1b899c476db94142b7ad2c9842","unresolved":false,"context_lines":[{"line_number":640,"context_line":"        client to access the graphical console."},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        :param task: a TaskManager instance containing the node to act on."},{"line_number":643,"context_line":"        :returns: the graphical console connection information."},{"line_number":644,"context_line":"        \"\"\""},{"line_number":645,"context_line":""},{"line_number":646,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_c044b61b","line":643,"range":{"start_line":643,"start_character":9,"end_line":643,"end_character":16},"updated":"2018-10-02 13:05:10.000000000","message":"What happens if console is not started?","commit_id":"f3720f547982817ea97cc73780ed0884efb40cdf"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"f2b1a0464f61decaa3a800e68d4282eae0a06c87","unresolved":false,"context_lines":[{"line_number":640,"context_line":"        client to access the graphical console."},{"line_number":641,"context_line":""},{"line_number":642,"context_line":"        :param task: a TaskManager instance containing the node to act on."},{"line_number":643,"context_line":"        :returns: the graphical console connection information."},{"line_number":644,"context_line":"        \"\"\""},{"line_number":645,"context_line":""},{"line_number":646,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"3f79a3b5_d3cbc048","line":643,"range":{"start_line":643,"start_character":9,"end_line":643,"end_character":16},"in_reply_to":"3f79a3b5_c044b61b","updated":"2018-10-08 09:18:12.000000000","message":"It will raise an error stating the console is not started.","commit_id":"f3720f547982817ea97cc73780ed0884efb40cdf"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"e1bbcae5c54d837112522c20972998b21cdae374","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    A reference to an instance of :class:ConsoleInterface."},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    graphical_console \u003d None"},{"line_number":68,"context_line":"    \"\"\"`Standard` attribute for managing graphical console access."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    A reference to an instance of :class:GraphicalConsoleInterface."},{"line_number":71,"context_line":"    \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    deploy \u003d None"},{"line_number":74,"context_line":"    \"\"\"`Core` attribute for managing deployments."}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_bb4168aa","line":71,"range":{"start_line":67,"start_character":0,"end_line":71,"end_character":7},"updated":"2018-10-17 12:54:24.000000000","message":"nit: would be good keep the alphabetical order that already exists. This can be add after deploy.","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"ae7d64909dd58d4bae7caac30a8d747233593a64","unresolved":false,"context_lines":[{"line_number":64,"context_line":"    A reference to an instance of :class:ConsoleInterface."},{"line_number":65,"context_line":"    \"\"\""},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    graphical_console \u003d None"},{"line_number":68,"context_line":"    \"\"\"`Standard` attribute for managing graphical console access."},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    A reference to an instance of :class:GraphicalConsoleInterface."},{"line_number":71,"context_line":"    \"\"\""},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"    deploy \u003d None"},{"line_number":74,"context_line":"    \"\"\"`Core` attribute for managing deployments."}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_4be4b4a8","line":71,"range":{"start_line":67,"start_character":0,"end_line":71,"end_character":7},"in_reply_to":"3f79a3b5_bb4168aa","updated":"2018-10-22 08:49:46.000000000","message":"Done","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"}],"ironic/drivers/generic.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6a3d4eef7895c9994820231e1cdd690ee5f807dc","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        return [noop_storage.NoopStorage, cinder.CinderStorage,"},{"line_number":83,"context_line":"                external_storage.ExternalStorage]"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @property"},{"line_number":86,"context_line":"    def supported_graphical_console_interfaces(self):"},{"line_number":87,"context_line":"        \"\"\"List of supported graphical console interfaces.\"\"\""},{"line_number":88,"context_line":"        return [noop.NoGraphicalConsole]"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"class ManualManagementHardware(GenericHardware):"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f79a3b5_66518c30","line":88,"range":{"start_line":85,"start_character":0,"end_line":88,"end_character":40},"updated":"2018-09-28 00:09:54.000000000","message":"Note: I\u0027m sure someone will want this in alphabetical order, so moved up to around line 51.","commit_id":"86c15b3150da87cdd2b6f848ea4374f0149d82bb"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"f2b1a0464f61decaa3a800e68d4282eae0a06c87","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        return [noop_storage.NoopStorage, cinder.CinderStorage,"},{"line_number":83,"context_line":"                external_storage.ExternalStorage]"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    @property"},{"line_number":86,"context_line":"    def supported_graphical_console_interfaces(self):"},{"line_number":87,"context_line":"        \"\"\"List of supported graphical console interfaces.\"\"\""},{"line_number":88,"context_line":"        return [noop.NoGraphicalConsole]"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"class ManualManagementHardware(GenericHardware):"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f79a3b5_92b14d48","line":88,"range":{"start_line":85,"start_character":0,"end_line":88,"end_character":40},"in_reply_to":"3f79a3b5_66518c30","updated":"2018-10-08 09:18:12.000000000","message":"Done","commit_id":"86c15b3150da87cdd2b6f848ea4374f0149d82bb"}],"ironic/drivers/ipmi.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def supported_graphical_console_interfaces(self):"},{"line_number":38,"context_line":"        \"\"\"List of supported console interfaces.\"\"\""},{"line_number":39,"context_line":"        return [noop.NoGraphicalConsole, ipmitool.IPMIVNCConsole]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @property"},{"line_number":42,"context_line":"    def supported_management_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_ddd503e8","line":39,"range":{"start_line":39,"start_character":41,"end_line":39,"end_character":63},"updated":"2018-07-13 01:10:49.000000000","message":"Lets take the following approach. Lets just land a noop interface to begin with. That way we have the substrate... since we\u0027re generating a fairly clearly defined interface. That way we can then work out each driver\u0027s implementation separately as needed.","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"d536dbc9be7a18309109162f46ade7e935d16bc8","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def supported_graphical_console_interfaces(self):"},{"line_number":38,"context_line":"        \"\"\"List of supported console interfaces.\"\"\""},{"line_number":39,"context_line":"        return [noop.NoGraphicalConsole, ipmitool.IPMIVNCConsole]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @property"},{"line_number":42,"context_line":"    def supported_management_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_d1dbac1d","line":39,"range":{"start_line":39,"start_character":41,"end_line":39,"end_character":63},"in_reply_to":"5f7c97a3_ddd503e8","updated":"2018-07-13 07:34:41.000000000","message":"Done","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"525685405a4e044268d365eb4f4cae03ed3c0531","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                noop.NoConsole]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def supported_graphical_console_interfaces(self):"},{"line_number":38,"context_line":"        \"\"\"List of supported console interfaces.\"\"\""},{"line_number":39,"context_line":"        return [noop.NoGraphicalConsole]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @property"},{"line_number":42,"context_line":"    def supported_management_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_b93abb94","line":39,"range":{"start_line":37,"start_character":0,"end_line":39,"end_character":40},"updated":"2018-07-23 21:29:17.000000000","message":"This should be for generic.GenericHardware, not ipmi.","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8cd711ce89c155ca82a948f089931770b335cf27","unresolved":false,"context_lines":[{"line_number":34,"context_line":"                noop.NoConsole]"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    @property"},{"line_number":37,"context_line":"    def supported_graphical_console_interfaces(self):"},{"line_number":38,"context_line":"        \"\"\"List of supported console interfaces.\"\"\""},{"line_number":39,"context_line":"        return [noop.NoGraphicalConsole]"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    @property"},{"line_number":42,"context_line":"    def supported_management_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_0dca409f","line":39,"range":{"start_line":37,"start_character":0,"end_line":39,"end_character":40},"in_reply_to":"5f7c97a3_b93abb94","updated":"2018-07-26 10:10:41.000000000","message":"Done","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"}],"ironic/drivers/modules/fake.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"525685405a4e044268d365eb4f4cae03ed3c0531","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        return {}"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class FakeGraphicalConsole(base.ConsoleInterface):"},{"line_number":185,"context_line":"    \"\"\"Example implementation of a simple graphical console interface.\"\"\""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_594b6727","line":184,"range":{"start_line":184,"start_character":32,"end_line":184,"end_character":50},"updated":"2018-07-23 21:29:17.000000000","message":"ideally, this should base.GraphicalConsoleInterface or something similar, such that we can perform instance assertions comparing the class if needed. If I were to do so in this case, I would be unable to tell if FakeGraphicalConsole was a graphical interface or a serial console interface.","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"8cd711ce89c155ca82a948f089931770b335cf27","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        return {}"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":""},{"line_number":184,"context_line":"class FakeGraphicalConsole(base.ConsoleInterface):"},{"line_number":185,"context_line":"    \"\"\"Example implementation of a simple graphical console interface.\"\"\""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":9,"id":"5f7c97a3_6db3b44f","line":184,"range":{"start_line":184,"start_character":32,"end_line":184,"end_character":50},"in_reply_to":"5f7c97a3_594b6727","updated":"2018-07-26 10:10:41.000000000","message":"Right. Changed this to GraphicalConsoleInterface.","commit_id":"1167a557dd63a3fc11fb9d815b77c6380f7a44ca"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"69ebc61a917dab117a26fe8253b3286da6cab6db","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        return {}"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"class FakeGraphicalConsole(base.ConsoleInterface):"},{"line_number":186,"context_line":"    \"\"\"Example implementation of a simple graphical console interface.\"\"\""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_6d8df4d2","line":185,"range":{"start_line":185,"start_character":32,"end_line":185,"end_character":48},"updated":"2018-07-26 10:33:59.000000000","message":"@Julia, GraphicalConsoleInterface is not defined in this patch. So I will update this in another patch.","commit_id":"7c164318502487f18d32f9b50921845003cb00cc"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"c22a507101336d948f441b603f420d4c2efe8af0","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        return {}"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"class FakeGraphicalConsole(base.ConsoleInterface):"},{"line_number":186,"context_line":"    \"\"\"Example implementation of a simple graphical console interface.\"\"\""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_ef42bd0e","line":185,"range":{"start_line":185,"start_character":32,"end_line":185,"end_character":48},"in_reply_to":"5f7c97a3_1c3806eb","updated":"2018-08-02 17:02:11.000000000","message":"I concur with Hironori. Class inheritance is important.","commit_id":"7c164318502487f18d32f9b50921845003cb00cc"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"2310d2ecfbff6840f7dc17be17dab8d08286f34b","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        return {}"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"class FakeGraphicalConsole(base.ConsoleInterface):"},{"line_number":186,"context_line":"    \"\"\"Example implementation of a simple graphical console interface.\"\"\""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"5f7c97a3_1c3806eb","line":185,"range":{"start_line":185,"start_character":32,"end_line":185,"end_character":48},"in_reply_to":"5f7c97a3_6d8df4d2","updated":"2018-07-28 14:52:24.000000000","message":"In my opinion, we should define GraphicalConsoleInterface in this patch or prior to this patch.","commit_id":"7c164318502487f18d32f9b50921845003cb00cc"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"5e88c99c28383ed699cd36a60ff0453084ca4556","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        return {}"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"class FakeGraphicalConsole(base.ConsoleInterface):"},{"line_number":186,"context_line":"    \"\"\"Example implementation of a simple graphical console interface.\"\"\""},{"line_number":187,"context_line":""},{"line_number":188,"context_line":"    def get_properties(self):"}],"source_content_type":"text/x-python","patch_set":12,"id":"3f79a3b5_5069ffbb","line":185,"range":{"start_line":185,"start_character":32,"end_line":185,"end_character":48},"in_reply_to":"5f7c97a3_ef42bd0e","updated":"2018-08-06 11:18:06.000000000","message":"Done.","commit_id":"7c164318502487f18d32f9b50921845003cb00cc"}],"ironic/tests/unit/common/test_driver_factory.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"6a3d4eef7895c9994820231e1cdd690ee5f807dc","unresolved":false,"context_lines":[{"line_number":562,"context_line":"            \u0027raid\u0027: set([\u0027fake\u0027, \u0027no-raid\u0027]),"},{"line_number":563,"context_line":"            \u0027rescue\u0027: set([\u0027fake\u0027, \u0027no-rescue\u0027]),"},{"line_number":564,"context_line":"            \u0027storage\u0027: set([\u0027noop\u0027]),"},{"line_number":565,"context_line":"            \u0027vendor\u0027: set([\u0027fake\u0027, \u0027no-vendor\u0027])"},{"line_number":566,"context_line":"        }"},{"line_number":567,"context_line":"        if enable_storage:"},{"line_number":568,"context_line":"            self.config(enabled_storage_interfaces\u003d[\u0027fake\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f79a3b5_212e1e42","line":565,"updated":"2018-09-28 00:09:54.000000000","message":"I suspect this will fail without an entry for graphical_console.","commit_id":"86c15b3150da87cdd2b6f848ea4374f0149d82bb"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"f2b1a0464f61decaa3a800e68d4282eae0a06c87","unresolved":false,"context_lines":[{"line_number":562,"context_line":"            \u0027raid\u0027: set([\u0027fake\u0027, \u0027no-raid\u0027]),"},{"line_number":563,"context_line":"            \u0027rescue\u0027: set([\u0027fake\u0027, \u0027no-rescue\u0027]),"},{"line_number":564,"context_line":"            \u0027storage\u0027: set([\u0027noop\u0027]),"},{"line_number":565,"context_line":"            \u0027vendor\u0027: set([\u0027fake\u0027, \u0027no-vendor\u0027])"},{"line_number":566,"context_line":"        }"},{"line_number":567,"context_line":"        if enable_storage:"},{"line_number":568,"context_line":"            self.config(enabled_storage_interfaces\u003d[\u0027fake\u0027])"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f79a3b5_12ec5d26","line":565,"in_reply_to":"3f79a3b5_212e1e42","updated":"2018-10-08 09:18:12.000000000","message":"Done","commit_id":"86c15b3150da87cdd2b6f848ea4374f0149d82bb"},{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"e1bbcae5c54d837112522c20972998b21cdae374","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        return [fake.FakeConsole]"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    @property"},{"line_number":353,"context_line":"    def supported_graphical_console_interfaces(self):"},{"line_number":354,"context_line":"        \"\"\"List of supported graphical console interfaces.\"\"\""},{"line_number":355,"context_line":"        return [fake.FakeGraphicalConsole]"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    @property"},{"line_number":358,"context_line":"    def supported_deploy_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_1e608ad0","line":355,"range":{"start_line":353,"start_character":0,"end_line":355,"end_character":42},"updated":"2018-10-17 12:54:24.000000000","message":"nit: maybe move to keep alphabetical order \u003d)","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"ae7d64909dd58d4bae7caac30a8d747233593a64","unresolved":false,"context_lines":[{"line_number":350,"context_line":"        return [fake.FakeConsole]"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"    @property"},{"line_number":353,"context_line":"    def supported_graphical_console_interfaces(self):"},{"line_number":354,"context_line":"        \"\"\"List of supported graphical console interfaces.\"\"\""},{"line_number":355,"context_line":"        return [fake.FakeGraphicalConsole]"},{"line_number":356,"context_line":""},{"line_number":357,"context_line":"    @property"},{"line_number":358,"context_line":"    def supported_deploy_interfaces(self):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3f79a3b5_cb53e439","line":355,"range":{"start_line":353,"start_character":0,"end_line":355,"end_character":42},"in_reply_to":"3f79a3b5_1e608ad0","updated":"2018-10-22 08:49:46.000000000","message":"Done","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"}],"ironic/tests/unit/conductor/test_manager.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"76fcca7be585403268abdcb7a4621cbc9bd38bda","unresolved":false,"context_lines":[{"line_number":4650,"context_line":"                    \u0027network\u0027: {\u0027result\u0027: True},"},{"line_number":4651,"context_line":"                    \u0027storage\u0027: {\u0027result\u0027: True},"},{"line_number":4652,"context_line":"                    \u0027rescue\u0027: {\u0027result\u0027: True},"},{"line_number":4653,"context_line":"                    \u0027bios\u0027: {\u0027result\u0027: True}}"},{"line_number":4654,"context_line":"        self.assertEqual(expected, ret)"},{"line_number":4655,"context_line":"        mock_iwdi.assert_called_once_with(self.context, node.instance_info)"},{"line_number":4656,"context_line":""}],"source_content_type":"text/x-python","patch_set":29,"id":"3f79a3b5_7c5fbfdd","line":4653,"updated":"2018-12-05 23:10:27.000000000","message":"I guess we don\u0027t have this completely wired in as an interface which means we are missing something. Then again, this is making the call through validate_driver_interface which might have a filtered view.","commit_id":"ce3995305db63129e093a570674cf1bd45defd61"}],"ironic/tests/unit/db/sqlalchemy/test_migrations.py":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"76fcca7be585403268abdcb7a4621cbc9bd38bda","unresolved":false,"context_lines":[{"line_number":732,"context_line":"        self.assertIn(\u0027graphical_console_interface\u0027, col_names)"},{"line_number":733,"context_line":"        self.assertIsInstance(nodes.c.graphical_console_interface.type,"},{"line_number":734,"context_line":"                              sqlalchemy.types.String)"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"    def _pre_upgrade_664f85c2f622(self, engine):"},{"line_number":737,"context_line":"        # Create a node and a conductor to verify existing records"},{"line_number":738,"context_line":"        # get a conductor_group of \"\""}],"source_content_type":"text/x-python","patch_set":29,"id":"3f79a3b5_3c5e27e8","line":735,"updated":"2018-12-05 23:10:27.000000000","message":"missing a test for the column width expansion.","commit_id":"ce3995305db63129e093a570674cf1bd45defd61"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"d3c96f31e136cc38b819da6c73b84084dfedb704","unresolved":false,"context_lines":[{"line_number":732,"context_line":"        self.assertIn(\u0027graphical_console_interface\u0027, col_names)"},{"line_number":733,"context_line":"        self.assertIsInstance(nodes.c.graphical_console_interface.type,"},{"line_number":734,"context_line":"                              sqlalchemy.types.String)"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"    def _pre_upgrade_664f85c2f622(self, engine):"},{"line_number":737,"context_line":"        # Create a node and a conductor to verify existing records"},{"line_number":738,"context_line":"        # get a conductor_group of \"\""}],"source_content_type":"text/x-python","patch_set":35,"id":"bfdaf3ff_a9a32e4f","line":735,"updated":"2019-01-14 02:09:42.000000000","message":"I guess interface_type has been changed to 255 string is because of that graphical_console just exceeds the 16 length.\n\nWhile we are missing the test for the revision ac4416cecce5 in this patch, will be good to have it.","commit_id":"f7b7c01eab19434fc2bb8f991d01b876a24271be"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"04a1a97c97e27295799dd01d0c008351ef57789d","unresolved":false,"context_lines":[{"line_number":732,"context_line":"        self.assertIn(\u0027graphical_console_interface\u0027, col_names)"},{"line_number":733,"context_line":"        self.assertIsInstance(nodes.c.graphical_console_interface.type,"},{"line_number":734,"context_line":"                              sqlalchemy.types.String)"},{"line_number":735,"context_line":""},{"line_number":736,"context_line":"    def _pre_upgrade_664f85c2f622(self, engine):"},{"line_number":737,"context_line":"        # Create a node and a conductor to verify existing records"},{"line_number":738,"context_line":"        # get a conductor_group of \"\""}],"source_content_type":"text/x-python","patch_set":35,"id":"bfdaf3ff_d2bb99c1","line":735,"in_reply_to":"bfdaf3ff_a9a32e4f","updated":"2019-01-15 09:00:53.000000000","message":"I\u0027ve added a simple length check test for this, pre and post upgrade","commit_id":"f7b7c01eab19434fc2bb8f991d01b876a24271be"},{"author":{"_account_id":24828,"name":"Kaifeng Wang","email":"kaifeng.w@gmail.com","username":"wangkf"},"change_message_id":"5834c3e87688b280beacec925ed389b8df3f2931","unresolved":false,"context_lines":[{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def _check_ac4416cecce5(self, engine, data):"},{"line_number":742,"context_line":"        ifaces \u003d db_utils.get_table(engine, \u0027conductor_hardware_interfaces\u0027)"},{"line_number":743,"context_line":"        self.assertNotEqual(16,"},{"line_number":744,"context_line":"                            ifaces.c.interface_type.type.length)"},{"line_number":745,"context_line":"        self.assertEqual(255,"},{"line_number":746,"context_line":"                         ifaces.c.interface_type.type.length)"},{"line_number":747,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"bfdaf3ff_2b41400c","line":744,"range":{"start_line":743,"start_character":8,"end_line":744,"end_character":64},"updated":"2019-01-16 02:33:46.000000000","message":"this is unnecessary, because we have checked 255 below.","commit_id":"d14341f54cd5f4f6850e6b00c1d9641a9fa96d40"},{"author":{"_account_id":23851,"name":"Riccardo Pittau","email":"elfosardo@gmail.com","username":"elfosardo"},"change_message_id":"2aa163c5d28b71cb5865761d60168a2b4ad2aa7b","unresolved":false,"context_lines":[{"line_number":740,"context_line":""},{"line_number":741,"context_line":"    def _check_ac4416cecce5(self, engine, data):"},{"line_number":742,"context_line":"        ifaces \u003d db_utils.get_table(engine, \u0027conductor_hardware_interfaces\u0027)"},{"line_number":743,"context_line":"        self.assertNotEqual(16,"},{"line_number":744,"context_line":"                            ifaces.c.interface_type.type.length)"},{"line_number":745,"context_line":"        self.assertEqual(255,"},{"line_number":746,"context_line":"                         ifaces.c.interface_type.type.length)"},{"line_number":747,"context_line":""}],"source_content_type":"text/x-python","patch_set":36,"id":"bfdaf3ff_1974cb98","line":744,"range":{"start_line":743,"start_character":8,"end_line":744,"end_character":64},"in_reply_to":"bfdaf3ff_2b41400c","updated":"2019-01-16 13:31:05.000000000","message":"Done","commit_id":"d14341f54cd5f4f6850e6b00c1d9641a9fa96d40"}],"setup.cfg":[{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"5d75de63a42ed6805948560f3ced9e29a87e50d9","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"ironic.hardware.interfaces.graphical_console \u003d"},{"line_number":75,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeConsole"},{"line_number":76,"context_line":"    ipmitool-vnc \u003d ironic.drivers.modules.ipmitool:IPMIVNCConsole"},{"line_number":77,"context_line":"    no-graphical-console \u003d ironic.drivers.modules.noop:NoGraphicalConsole"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"ironic.hardware.interfaces.deploy \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":3,"id":"5f7c97a3_dd4f4333","line":76,"range":{"start_line":76,"start_character":42,"end_line":76,"end_character":65},"updated":"2018-07-13 00:45:13.000000000","message":"I feel like this might be good to split to a spearate file, but consider this a nitpick. I\u0027m not sure we can have vnc graphical console support :\\ unless there is a standard mechanism.","commit_id":"936a0b761b26ff2f9cfe976b07a4b9dfde1d31cf"},{"author":{"_account_id":11655,"name":"Julia Kreger","email":"juliaashleykreger@gmail.com","username":"jkreger","status":"Flying to the moon with a Jetpack!"},"change_message_id":"de42e43b3dde02307ed08fb11ce1716123f6c368","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"ironic.hardware.interfaces.graphical_console \u003d"},{"line_number":75,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeConsole"},{"line_number":76,"context_line":"    ipmitool-vnc \u003d ironic.drivers.modules.ipmitool:IPMIVNCConsole"},{"line_number":77,"context_line":"    no-graphical-console \u003d ironic.drivers.modules.noop:NoGraphicalConsole"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"ironic.hardware.interfaces.deploy \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"5f7c97a3_5d09f381","line":76,"range":{"start_line":76,"start_character":4,"end_line":76,"end_character":65},"updated":"2018-07-13 01:10:49.000000000","message":"Lets just focus on no-graphical-console and fake initially, that way we can build the substrate and not worry about interface specific details.","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"d536dbc9be7a18309109162f46ade7e935d16bc8","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"ironic.hardware.interfaces.graphical_console \u003d"},{"line_number":75,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeConsole"},{"line_number":76,"context_line":"    ipmitool-vnc \u003d ironic.drivers.modules.ipmitool:IPMIVNCConsole"},{"line_number":77,"context_line":"    no-graphical-console \u003d ironic.drivers.modules.noop:NoGraphicalConsole"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"ironic.hardware.interfaces.deploy \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"5f7c97a3_319ea055","line":76,"range":{"start_line":76,"start_character":4,"end_line":76,"end_character":65},"in_reply_to":"5f7c97a3_5d09f381","updated":"2018-07-13 07:34:41.000000000","message":"Done","commit_id":"0f6168690b4f905b2dd78cbbadc362fa88ec808d"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"d3077ec284853831bdfd32587b7d75a0fec0cf52","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"ironic.hardware.interfaces.graphical_console \u003d"},{"line_number":77,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeGraphicalConsole"},{"line_number":78,"context_line":"    no-graphical_console \u003d ironic.drivers.modules.noop:NoGraphicalConsole"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"ironic.hardware.interfaces.deploy \u003d"},{"line_number":81,"context_line":"    ansible \u003d ironic.drivers.modules.ansible.deploy:AnsibleDeploy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":27,"id":"3f79a3b5_075f724d","line":78,"range":{"start_line":78,"start_character":3,"end_line":78,"end_character":24},"updated":"2018-10-10 15:13:31.000000000","message":"IMHO, no-graphical-console looks better for me.","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"},{"author":{"_account_id":10206,"name":"Madhuri Kumari","email":"madhuri.kumari@intel.com","username":"Madhuri"},"change_message_id":"ae7d64909dd58d4bae7caac30a8d747233593a64","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"ironic.hardware.interfaces.graphical_console \u003d"},{"line_number":77,"context_line":"    fake \u003d ironic.drivers.modules.fake:FakeGraphicalConsole"},{"line_number":78,"context_line":"    no-graphical_console \u003d ironic.drivers.modules.noop:NoGraphicalConsole"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"ironic.hardware.interfaces.deploy \u003d"},{"line_number":81,"context_line":"    ansible \u003d ironic.drivers.modules.ansible.deploy:AnsibleDeploy"}],"source_content_type":"text/x-ttcn-cfg","patch_set":27,"id":"3f79a3b5_cb28c499","line":78,"range":{"start_line":78,"start_character":3,"end_line":78,"end_character":24},"in_reply_to":"3f79a3b5_075f724d","updated":"2018-10-22 08:49:46.000000000","message":"Yes, I agree but the format is this only.","commit_id":"0cf22e3dfb4be4d074ba86505d0395c6bcecbd4a"}]}
