)]}'
{"cue/taskflow/flow/__init__.py":[{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from delete_cluster import delete_cluster               # noqa"},{"line_number":21,"context_line":"from delete_cluster_node import delete_cluster_node     # noqa"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"opt_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_01ddfb41","line":23,"updated":"2015-10-06 01:42:54.000000000","message":"extra space shouldn\u0027t be needed here","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":20,"context_line":"from delete_cluster import delete_cluster               # noqa"},{"line_number":21,"context_line":"from delete_cluster_node import delete_cluster_node     # noqa"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from oslo_config import cfg"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"opt_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_102543aa","line":23,"in_reply_to":"7a2fa921_01ddfb41","updated":"2015-10-06 17:38:35.000000000","message":"Done","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"}],"cue/taskflow/flow/check_cluster_status.py":[{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    This factory function uses :func:`cue.taskflow.flow.check_node_status` to"},{"line_number":29,"context_line":"    check cluster status on each node."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    :param cluster_id: A unique ID assigned to the cluster being created"},{"line_number":32,"context_line":"    :type cluster_id: string"},{"line_number":33,"context_line":"    :param node_ids: The Cue Node id\u0027s associated with each node in the cluster"},{"line_number":34,"context_line":"    :type node_ids: list of uuid strings"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_4ed00254","line":31,"updated":"2015-10-06 01:42:54.000000000","message":"should just say something like ... unique ID assigned to a cluster..  without the being created part.  being created portion can be confusing to someone reading this.  Basically all that is needed is a cluster id.","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":28,"context_line":"    This factory function uses :func:`cue.taskflow.flow.check_node_status` to"},{"line_number":29,"context_line":"    check cluster status on each node."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    :param cluster_id: A unique ID assigned to the cluster being created"},{"line_number":32,"context_line":"    :type cluster_id: string"},{"line_number":33,"context_line":"    :param node_ids: The Cue Node id\u0027s associated with each node in the cluster"},{"line_number":34,"context_line":"    :type node_ids: list of uuid strings"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_706277da","line":31,"in_reply_to":"7a2fa921_4ed00254","updated":"2015-10-06 17:38:35.000000000","message":"Done","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    :param cluster_id: A unique ID assigned to the cluster being created"},{"line_number":32,"context_line":"    :type cluster_id: string"},{"line_number":33,"context_line":"    :param node_ids: The Cue Node id\u0027s associated with each node in the cluster"},{"line_number":34,"context_line":"    :type node_ids: list of uuid strings"},{"line_number":35,"context_line":"    :return: A flow instance that represents the workflow for checking cluster"},{"line_number":36,"context_line":"             status"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_4e0562c0","line":33,"updated":"2015-10-06 01:42:54.000000000","message":"... node id\u0027s associated with the cluster..","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    :param cluster_id: A unique ID assigned to the cluster being created"},{"line_number":32,"context_line":"    :type cluster_id: string"},{"line_number":33,"context_line":"    :param node_ids: The Cue Node id\u0027s associated with each node in the cluster"},{"line_number":34,"context_line":"    :type node_ids: list of uuid strings"},{"line_number":35,"context_line":"    :return: A flow instance that represents the workflow for checking cluster"},{"line_number":36,"context_line":"             status"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_3082bf53","line":33,"in_reply_to":"7a2fa921_4e0562c0","updated":"2015-10-06 17:38:35.000000000","message":"Done","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    flow.add(sub_flow)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    get_cluster_status \u003d os_common.Reduce("},{"line_number":54,"context_line":"        lambda a, b: a if (a \u003d\u003d \u0027OK\u0027) else b,"},{"line_number":55,"context_line":"        provides\u003d\u0027cluster_status\u0027,"},{"line_number":56,"context_line":"        requires\u003d[\"%s%d\" % (\"node_status_\", i) for i in range(len(node_ids))],"},{"line_number":57,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_6e685ef6","line":54,"updated":"2015-10-06 01:42:54.000000000","message":"you can do the conversion in this Task.  basically return models.Status.ACTIVE if \u0027OK\u0027 else models.Status.ERROR","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    flow.add(sub_flow)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    get_cluster_status \u003d os_common.Reduce("},{"line_number":54,"context_line":"        lambda a, b: a if (a \u003d\u003d \u0027OK\u0027) else b,"},{"line_number":55,"context_line":"        provides\u003d\u0027cluster_status\u0027,"},{"line_number":56,"context_line":"        requires\u003d[\"%s%d\" % (\"node_status_\", i) for i in range(len(node_ids))],"},{"line_number":57,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_7076f73f","line":54,"in_reply_to":"7a2fa921_6e685ef6","updated":"2015-10-06 17:38:35.000000000","message":"that cannot be done as it tries to reduce based on \"OK\" conditional in each iteration. If this tries to return active/error then the next reducer call will check a \u003d\u003d\u0027OK\u0027 where your \u0027a\u0027 is actually active/error","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"69b4f9b981b2f06d585a5feeb54e005038023782","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    flow.add(sub_flow)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    get_cluster_status \u003d os_common.Reduce("},{"line_number":54,"context_line":"        lambda a, b: a if (a \u003d\u003d \u0027OK\u0027) else b,"},{"line_number":55,"context_line":"        provides\u003d\u0027cluster_status\u0027,"},{"line_number":56,"context_line":"        requires\u003d[\"%s%d\" % (\"node_status_\", i) for i in range(len(node_ids))],"},{"line_number":57,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_641b761c","line":54,"in_reply_to":"7a2fa921_7076f73f","updated":"2015-10-06 19:06:33.000000000","message":"can we update the task itself to return ACTIVE/ERROR as it make sense vs. OK/NOT_OK?  This would make this flow more intuitive and require one less task","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"    get_cluster_status \u003d os_common.Reduce("},{"line_number":54,"context_line":"        lambda a, b: a if (a \u003d\u003d \u0027OK\u0027) else b,"},{"line_number":55,"context_line":"        provides\u003d\u0027cluster_status\u0027,"},{"line_number":56,"context_line":"        requires\u003d[\"%s%d\" % (\"node_status_\", i) for i in range(len(node_ids))],"},{"line_number":57,"context_line":"    )"},{"line_number":58,"context_line":"    flow.add(get_cluster_status)"},{"line_number":59,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_0e444a72","line":56,"updated":"2015-10-06 01:42:54.000000000","message":"maybe including a comment above this reducer function describing what it is doing would help other understand what we are doing here","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    )"},{"line_number":58,"context_line":"    flow.add(get_cluster_status)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    check_cluster_status \u003d os_common.Lambda("},{"line_number":61,"context_line":"        check_active_status,"},{"line_number":62,"context_line":"        name\u003d\"translate status to active or error\","},{"line_number":63,"context_line":"        rebind\u003d{\u0027cluster_status\u0027: \"cluster_status\"},"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_aeef56af","line":60,"updated":"2015-10-06 01:42:54.000000000","message":"should use a different name, this conflicts with the name of this function.","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    )"},{"line_number":58,"context_line":"    flow.add(get_cluster_status)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    check_cluster_status \u003d os_common.Lambda("},{"line_number":61,"context_line":"        check_active_status,"},{"line_number":62,"context_line":"        name\u003d\"translate status to active or error\","},{"line_number":63,"context_line":"        rebind\u003d{\u0027cluster_status\u0027: \"cluster_status\"},"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_03fabf42","line":60,"in_reply_to":"7a2fa921_aeef56af","updated":"2015-10-06 17:38:35.000000000","message":"Done","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    check_cluster_status \u003d os_common.Lambda("},{"line_number":61,"context_line":"        check_active_status,"},{"line_number":62,"context_line":"        name\u003d\"translate status to active or error\","},{"line_number":63,"context_line":"        rebind\u003d{\u0027cluster_status\u0027: \"cluster_status\"},"},{"line_number":64,"context_line":"        provides\u003d\"final_cluster_status\""},{"line_number":65,"context_line":"    )"},{"line_number":66,"context_line":"    flow.add(check_cluster_status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_ee5b0e53","line":63,"updated":"2015-10-06 01:42:54.000000000","message":"in general, rebind isn\u0027t required if the name doesn\u0027t change","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    check_cluster_status \u003d os_common.Lambda("},{"line_number":61,"context_line":"        check_active_status,"},{"line_number":62,"context_line":"        name\u003d\"translate status to active or error\","},{"line_number":63,"context_line":"        rebind\u003d{\u0027cluster_status\u0027: \"cluster_status\"},"},{"line_number":64,"context_line":"        provides\u003d\"final_cluster_status\""},{"line_number":65,"context_line":"    )"},{"line_number":66,"context_line":"    flow.add(check_cluster_status)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_79b9e6e8","line":63,"in_reply_to":"7a2fa921_ee5b0e53","updated":"2015-10-06 17:38:35.000000000","message":"Done","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        rebind\u003d{\u0027cluster_status\u0027: \"cluster_status\"},"},{"line_number":64,"context_line":"        provides\u003d\"final_cluster_status\""},{"line_number":65,"context_line":"    )"},{"line_number":66,"context_line":"    flow.add(check_cluster_status)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    update_cluster_status \u003d cue_tasks.UpdateClusterStatus("},{"line_number":69,"context_line":"        name\u003d\"update cluster status %s\" % cluster_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_ee51ce63","line":66,"updated":"2015-10-06 01:42:54.000000000","message":"check_cluster_status function seems redundant here?  The get_cluster_status should feed in directly to update_cluster_status task.","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        rebind\u003d{\u0027cluster_status\u0027: \"cluster_status\"},"},{"line_number":64,"context_line":"        provides\u003d\"final_cluster_status\""},{"line_number":65,"context_line":"    )"},{"line_number":66,"context_line":"    flow.add(check_cluster_status)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    update_cluster_status \u003d cue_tasks.UpdateClusterStatus("},{"line_number":69,"context_line":"        name\u003d\"update cluster status %s\" % cluster_id,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_197d521c","line":66,"in_reply_to":"7a2fa921_ee51ce63","updated":"2015-10-06 17:38:35.000000000","message":"get_cluster_status provides only ok/not-ok. So we need this intermediate task to get active/error state","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"}],"cue/taskflow/flow/check_node_status.py":[{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            name\u003d\"extract management ip %s\" % node_name,"},{"line_number":53,"context_line":"            rebind\u003d{\u0027node\u0027: \"node_%d\" % node_number},"},{"line_number":54,"context_line":"            provides\u003d\"vm_mgmt_ip_%d\" % node_number),"},{"line_number":55,"context_line":"        cue_tasks.GetRabbitClusterStatus("},{"line_number":56,"context_line":"            name\u003d\"get RabbitMQ cluster status_%d\" % node_number,"},{"line_number":57,"context_line":"            rebind\u003d{\u0027vm_ip\u0027: \"vm_mgmt_ip_%d\" % node_number},"},{"line_number":58,"context_line":"            provides\u003d\"node_status_%d\" % node_number,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_811d8b68","line":55,"updated":"2015-10-06 01:42:54.000000000","message":"didn\u0027t the GetRabbitClusterStatus function require some changes?  we are trying just once, if there is any issues in reaching the node we will classify as failure?","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            name\u003d\"extract management ip %s\" % node_name,"},{"line_number":53,"context_line":"            rebind\u003d{\u0027node\u0027: \"node_%d\" % node_number},"},{"line_number":54,"context_line":"            provides\u003d\"vm_mgmt_ip_%d\" % node_number),"},{"line_number":55,"context_line":"        cue_tasks.GetRabbitClusterStatus("},{"line_number":56,"context_line":"            name\u003d\"get RabbitMQ cluster status_%d\" % node_number,"},{"line_number":57,"context_line":"            rebind\u003d{\u0027vm_ip\u0027: \"vm_mgmt_ip_%d\" % node_number},"},{"line_number":58,"context_line":"            provides\u003d\"node_status_%d\" % node_number,"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_236edb2f","line":55,"in_reply_to":"7a2fa921_811d8b68","updated":"2015-10-06 17:38:35.000000000","message":"acc. to this implementation, if a node is down then it will return \u0027not-ok\u0027.There is no retry, it just moves on and check the status of next node, If it is not able to reach any node in the cluster then the final status will be error. even if one node returns ok then we are going to say that the cluster is active. we don\u0027t have the \u0027degraded\u0027 status yet where the majority is reported as status.","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            rebind\u003d{\u0027vm_ip\u0027: \"vm_mgmt_ip_%d\" % node_number},"},{"line_number":58,"context_line":"            provides\u003d\"node_status_%d\" % node_number,"},{"line_number":59,"context_line":"            inject\u003d{\u0027proto\u0027: \u0027http\u0027}),"},{"line_number":60,"context_line":"        #TODO(abitha): Update node status"},{"line_number":61,"context_line":"    )"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    return flow"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_8efcda3f","line":60,"updated":"2015-10-06 01:42:54.000000000","message":"this is a required step, we should add it as part of this patch.  It\u0027s very similar to the one in cluster_create.  Main difference is \u0027new_node_values\u0027 lambda function should also take in the node status retrieved by  GetRabbitClusterStatus in order to update appropriate status.","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            rebind\u003d{\u0027vm_ip\u0027: \"vm_mgmt_ip_%d\" % node_number},"},{"line_number":58,"context_line":"            provides\u003d\"node_status_%d\" % node_number,"},{"line_number":59,"context_line":"            inject\u003d{\u0027proto\u0027: \u0027http\u0027}),"},{"line_number":60,"context_line":"        #TODO(abitha): Update node status"},{"line_number":61,"context_line":"    )"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    return flow"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_99dde216","line":60,"in_reply_to":"7a2fa921_8efcda3f","updated":"2015-10-06 17:38:35.000000000","message":"will address this in the next patch","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"}],"cue/tests/functional/taskflow/flow/test_check_cluster_status.py":[{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        urllib2_fixture.Urllib2ResultDetails.set_urllib2_result("},{"line_number":127,"context_line":"            [\u0027{\"status\": \"ok\"}\u0027,"},{"line_number":128,"context_line":"             \u0027[{\"name\": \"/\"}]\u0027,"},{"line_number":129,"context_line":"             \u0027{\"status\": \"not-ok\"}\u0027,"},{"line_number":130,"context_line":"             \u0027[{\"name\": \"/\"}]\u0027,"},{"line_number":131,"context_line":"            ]"},{"line_number":132,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_c172a37c","line":129,"updated":"2015-10-06 01:42:54.000000000","message":"wont this trigger the cluster to go to ERROR?  You probably don\u0027t need the second not-ok status since it will never reach that :)","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":126,"context_line":"        urllib2_fixture.Urllib2ResultDetails.set_urllib2_result("},{"line_number":127,"context_line":"            [\u0027{\"status\": \"ok\"}\u0027,"},{"line_number":128,"context_line":"             \u0027[{\"name\": \"/\"}]\u0027,"},{"line_number":129,"context_line":"             \u0027{\"status\": \"not-ok\"}\u0027,"},{"line_number":130,"context_line":"             \u0027[{\"name\": \"/\"}]\u0027,"},{"line_number":131,"context_line":"            ]"},{"line_number":132,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_e35543c6","line":129,"in_reply_to":"7a2fa921_c172a37c","updated":"2015-10-06 17:38:35.000000000","message":"this tests the check cluster status to return active even if one node is down.","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"43e26f8379f12c0a5caf324e5fd9f7f4d230744e","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        urllib2_fixture.Urllib2ResultDetails.set_urllib2_result("},{"line_number":186,"context_line":"            [\u0027{\"status\": \"not-ok\"}\u0027,"},{"line_number":187,"context_line":"             \u0027[{\"name\": \"/\"}]\u0027,"},{"line_number":188,"context_line":"             \u0027{\"status\": \"not-ok\"}\u0027,"},{"line_number":189,"context_line":"             \u0027[{\"name\": \"/\"}]\u0027,"},{"line_number":190,"context_line":"            ]"},{"line_number":191,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_a100c7ab","line":188,"updated":"2015-10-06 01:42:54.000000000","message":"are two actually required, it will fail after the first not-ok?  Cluster create has retries, cluster check doesn\u0027t.","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"58936414735041ad97acc56f0f2691cefa1a8320","unresolved":false,"context_lines":[{"line_number":185,"context_line":"        urllib2_fixture.Urllib2ResultDetails.set_urllib2_result("},{"line_number":186,"context_line":"            [\u0027{\"status\": \"not-ok\"}\u0027,"},{"line_number":187,"context_line":"             \u0027[{\"name\": \"/\"}]\u0027,"},{"line_number":188,"context_line":"             \u0027{\"status\": \"not-ok\"}\u0027,"},{"line_number":189,"context_line":"             \u0027[{\"name\": \"/\"}]\u0027,"},{"line_number":190,"context_line":"            ]"},{"line_number":191,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a2fa921_43e51707","line":188,"in_reply_to":"7a2fa921_a100c7ab","updated":"2015-10-06 17:38:35.000000000","message":"yes. this will check all the node statuses and reduces to one. so even if one is ok it returns active.","commit_id":"8b90d1ec3214cddeb02dc0c15638a2ca1da92905"}]}
