)]}'
{"nova/db/api.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"c5a5e5bb1077d246d90eda9424da8e43a747e7b1","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    return IMPL.compute_node_get_all(context)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def compute_node_get_all_mapped_less_than(context, mapped_less_than):"},{"line_number":258,"context_line":"    \"\"\"Get all computeNodes."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    :param context: The security context"}],"source_content_type":"text/x-python","patch_set":1,"id":"da36d5c6_2b24efad","line":257,"range":{"start_line":257,"start_character":51,"end_line":257,"end_character":67},"updated":"2017-02-27 21:14:12.000000000","message":"Doc this","commit_id":"5b8cdd036df64fa35455d807912db9746c68be55"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9b19d27b48833dc8d820a78505f0330f19a8e1c8","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    return IMPL.compute_node_get_all(context)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def compute_node_get_all_mapped_less_than(context, mapped_less_than):"},{"line_number":258,"context_line":"    \"\"\"Get all computeNodes."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    :param context: The security context"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_a70d1439","line":257,"range":{"start_line":257,"start_character":51,"end_line":257,"end_character":67},"updated":"2017-03-20 20:54:15.000000000","message":"Can we doc this param?","commit_id":"b1906232fd8058338c5a8560dc97e6ae03a815bc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6e034500ac8144ec533bd34988f345104035d89b","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    return IMPL.compute_node_get_all(context)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def compute_node_get_all_mapped_less_than(context, mapped_less_than):"},{"line_number":258,"context_line":"    \"\"\"Get all computeNodes."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    :param context: The security context"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_44ac6834","line":257,"range":{"start_line":257,"start_character":32,"end_line":257,"end_character":41},"updated":"2017-03-20 17:05:05.000000000","message":"Why use the less_than construct? Why not just filter by mapped\u003d0 or 1? The \u003c filtering seems odd to me.","commit_id":"b1906232fd8058338c5a8560dc97e6ae03a815bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ca365d417783f56518e4e470f4b8fdd2e5384dae","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    return IMPL.compute_node_get_all(context)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def compute_node_get_all_mapped_less_than(context, mapped_less_than):"},{"line_number":258,"context_line":"    \"\"\"Get all computeNodes."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    :param context: The security context"}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_49b48b35","line":257,"range":{"start_line":257,"start_character":32,"end_line":257,"end_character":41},"in_reply_to":"1a1ced50_44ac6834","updated":"2017-04-07 18:32:10.000000000","message":"So that later we can check for mapped \u003c 2 if we need to do something else from the api where all compute nodes are involved. It would be, you know, super terrible to have to add another flag for something else later.","commit_id":"b1906232fd8058338c5a8560dc97e6ae03a815bc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4cad3ac0ecc40b83888d676251dbc620a1467a4","unresolved":false,"context_lines":[{"line_number":254,"context_line":"    return IMPL.compute_node_get_all(context)"},{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def compute_node_get_all_mapped_less_than(context, mapped_less_than):"},{"line_number":258,"context_line":"    \"\"\"Get all computeNodes."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    :param context: The security context"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_ff3ceec8","line":257,"range":{"start_line":257,"start_character":32,"end_line":257,"end_character":41},"in_reply_to":"bff0334d_49b48b35","updated":"2017-04-28 00:15:14.000000000","message":"\u003e It would be, you know, super terrible to have to add another flag for something else later.\n\nI don\u0027t really follow, I\u0027d probably need an example, maybe I\u0027m just being thick right now.","commit_id":"b1906232fd8058338c5a8560dc97e6ae03a815bc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6e034500ac8144ec533bd34988f345104035d89b","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def compute_node_get_all_mapped_less_than(context, mapped_less_than):"},{"line_number":258,"context_line":"    \"\"\"Get all computeNodes."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    :param context: The security context"},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_64a7a44f","line":258,"range":{"start_line":258,"start_character":7,"end_line":258,"end_character":28},"updated":"2017-03-20 17:05:05.000000000","message":"Could be more specific here.","commit_id":"b1906232fd8058338c5a8560dc97e6ae03a815bc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d76116b31410d6c4f7f166d06aed87b0771867eb","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def compute_node_get_all_mapped_less_than(context, mapped_less_than):"},{"line_number":258,"context_line":"    \"\"\"Get all ComputeNode objects with specific mapped values."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    :param context: The security context"},{"line_number":261,"context_line":"    :param mapped_less_than: Get compute nodes with mapped less than this"}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_ff6aaeb0","line":258,"range":{"start_line":258,"start_character":40,"end_line":258,"end_character":48},"updated":"2017-04-28 00:25:46.000000000","message":"It\u0027s not specific mapped values, it\u0027s compute nodes with a mapped value less than the \u0027mapped_less_than\u0027 parameter. The less than is still confusing to me, but I feel like I\u0027m either missing something, or I\u0027m angering you by saying it.","commit_id":"56433650915fcff4df0f1c62a7c4988d2f254b62"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"479aa4e242dfce61d8b21ac1f81bd1f66264469a","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"def compute_node_get_all_mapped_less_than(context, mapped_less_than):"},{"line_number":258,"context_line":"    \"\"\"Get all ComputeNode objects with specific mapped values."},{"line_number":259,"context_line":""},{"line_number":260,"context_line":"    :param context: The security context"},{"line_number":261,"context_line":"    :param mapped_less_than: Get compute nodes with mapped less than this"}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_3fe5b509","line":258,"range":{"start_line":258,"start_character":40,"end_line":258,"end_character":48},"in_reply_to":"5ff73747_ff6aaeb0","updated":"2017-04-28 01:26:46.000000000","message":"Let us not poke the dan-bear. :)","commit_id":"56433650915fcff4df0f1c62a7c4988d2f254b62"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6e034500ac8144ec533bd34988f345104035d89b","unresolved":false,"context_lines":[{"line_number":626,"context_line":"        hyp_hostname \u003d filters[\"hypervisor_hostname\"]"},{"line_number":627,"context_line":"        select \u003d select.where(cn_tbl.c.hypervisor_hostname \u003d\u003d hyp_hostname)"},{"line_number":628,"context_line":"    if \"mapped\" in filters:"},{"line_number":629,"context_line":"        select \u003d select.where(cn_tbl.c.mapped \u003c filters[\u0027mapped\u0027])"},{"line_number":630,"context_line":"    if marker is not None:"},{"line_number":631,"context_line":"        try:"},{"line_number":632,"context_line":"            compute_node_get(context, marker)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_642c04ac","line":629,"range":{"start_line":629,"start_character":30,"end_line":629,"end_character":65},"updated":"2017-03-20 17:05:05.000000000","message":"How does this handle NULL \u003c 1?","commit_id":"b1906232fd8058338c5a8560dc97e6ae03a815bc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"ca365d417783f56518e4e470f4b8fdd2e5384dae","unresolved":false,"context_lines":[{"line_number":626,"context_line":"        hyp_hostname \u003d filters[\"hypervisor_hostname\"]"},{"line_number":627,"context_line":"        select \u003d select.where(cn_tbl.c.hypervisor_hostname \u003d\u003d hyp_hostname)"},{"line_number":628,"context_line":"    if \"mapped\" in filters:"},{"line_number":629,"context_line":"        select \u003d select.where(cn_tbl.c.mapped \u003c filters[\u0027mapped\u0027])"},{"line_number":630,"context_line":"    if marker is not None:"},{"line_number":631,"context_line":"        try:"},{"line_number":632,"context_line":"            compute_node_get(context, marker)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bff0334d_891df310","line":629,"range":{"start_line":629,"start_character":30,"end_line":629,"end_character":65},"in_reply_to":"1a1ced50_642c04ac","updated":"2017-04-07 18:32:10.000000000","message":"Seems to work fine. I\u0027ll add a test.","commit_id":"b1906232fd8058338c5a8560dc97e6ae03a815bc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"a4cad3ac0ecc40b83888d676251dbc620a1467a4","unresolved":false,"context_lines":[{"line_number":626,"context_line":"        hyp_hostname \u003d filters[\"hypervisor_hostname\"]"},{"line_number":627,"context_line":"        select \u003d select.where(cn_tbl.c.hypervisor_hostname \u003d\u003d hyp_hostname)"},{"line_number":628,"context_line":"    if \"mapped\" in filters:"},{"line_number":629,"context_line":"        select \u003d select.where(cn_tbl.c.mapped \u003c filters[\u0027mapped\u0027])"},{"line_number":630,"context_line":"    if marker is not None:"},{"line_number":631,"context_line":"        try:"},{"line_number":632,"context_line":"            compute_node_get(context, marker)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_7f4e9e6f","line":629,"range":{"start_line":629,"start_character":30,"end_line":629,"end_character":65},"in_reply_to":"bff0334d_891df310","updated":"2017-04-28 00:15:14.000000000","message":"Maybe it wouldn\u0027t be NULL because we default mapped to 0?","commit_id":"b1906232fd8058338c5a8560dc97e6ae03a815bc"}],"nova/objects/compute_node.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"6e034500ac8144ec533bd34988f345104035d89b","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                                  db_computes)"},{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    @base.remotable_classmethod"},{"line_number":385,"context_line":"    def get_all_by_not_mapped(cls, context, mapped_less_than):"},{"line_number":386,"context_line":"        \"\"\"Return ComputeNode records that are not mapped at a certain level\"\"\""},{"line_number":387,"context_line":"        db_computes \u003d db.compute_node_get_all_mapped_less_than("},{"line_number":388,"context_line":"            context, mapped_less_than)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a1ced50_c43cd8e4","line":385,"updated":"2017-03-20 17:05:05.000000000","message":"Same questions/concerns, this seems a bit too future proofy for my tastes. I\u0027d prefer to just see us directly querying and filtering on mapped\u003d0.","commit_id":"b1906232fd8058338c5a8560dc97e6ae03a815bc"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d76116b31410d6c4f7f166d06aed87b0771867eb","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    @base.remotable_classmethod"},{"line_number":385,"context_line":"    def get_all_by_not_mapped(cls, context, mapped_less_than):"},{"line_number":386,"context_line":"        \"\"\"Return ComputeNode records that are not mapped at a certain level\"\"\""},{"line_number":387,"context_line":"        db_computes \u003d db.compute_node_get_all_mapped_less_than("},{"line_number":388,"context_line":"            context, mapped_less_than)"},{"line_number":389,"context_line":"        return base.obj_make_list(context, cls(context), objects.ComputeNode,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_1ff55aed","line":386,"updated":"2017-04-28 00:25:46.000000000","message":"It would be really nice to describe the known values and what they mean, i.e. 0 is not mapped (and what \"mapped\" even means and how it\u0027s used), and that 1 means there is a HostMapping in the API database for this compute node record.\n\nI won\u0027t hold up on it, but this is a bit of a confusing interface to me, so I think documenting it thoroughly is important.","commit_id":"56433650915fcff4df0f1c62a7c4988d2f254b62"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"479aa4e242dfce61d8b21ac1f81bd1f66264469a","unresolved":false,"context_lines":[{"line_number":383,"context_line":""},{"line_number":384,"context_line":"    @base.remotable_classmethod"},{"line_number":385,"context_line":"    def get_all_by_not_mapped(cls, context, mapped_less_than):"},{"line_number":386,"context_line":"        \"\"\"Return ComputeNode records that are not mapped at a certain level\"\"\""},{"line_number":387,"context_line":"        db_computes \u003d db.compute_node_get_all_mapped_less_than("},{"line_number":388,"context_line":"            context, mapped_less_than)"},{"line_number":389,"context_line":"        return base.obj_make_list(context, cls(context), objects.ComputeNode,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_dfbdb1d8","line":386,"in_reply_to":"5ff73747_1ff55aed","updated":"2017-04-28 01:26:46.000000000","message":"Agreed. Feel free to doc on a followup patch, Dan.","commit_id":"56433650915fcff4df0f1c62a7c4988d2f254b62"}]}
