)]}'
{"cue/db/sqlalchemy/models.py":[{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"8c49cf01394011d1c6346a4fe0ebd7f02eaac6d9","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    size \u003d sa.Column(sa.Integer(), default\u003d1, nullable\u003dFalse)"},{"line_number":75,"context_line":"    volume_size \u003d sa.Column(sa.Integer(), nullable\u003dTrue)"},{"line_number":76,"context_line":"    error_detail \u003d sa.Column(sa.Text(), nullable\u003dTrue)"},{"line_number":77,"context_line":"    group_id \u003d sa.Column(types.UUID(), nullable\u003dTrue)"},{"line_number":78,"context_line":"    sa.Index(\"clusters_cluster_id_idx\", \"cluster_id\", unique\u003dTrue)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_cb6a2ded","line":77,"updated":"2015-11-18 21:55:56.000000000","message":"This converts to CHAR(32) -- are we sure we don\u0027t need 36 character string?","commit_id":"307774188e4b0384a7897af09e07f0496cd0bc32"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"361c8a0cc51f08b43359176ab39feca466f1b386","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    size \u003d sa.Column(sa.Integer(), default\u003d1, nullable\u003dFalse)"},{"line_number":75,"context_line":"    volume_size \u003d sa.Column(sa.Integer(), nullable\u003dTrue)"},{"line_number":76,"context_line":"    error_detail \u003d sa.Column(sa.Text(), nullable\u003dTrue)"},{"line_number":77,"context_line":"    group_id \u003d sa.Column(types.UUID(), nullable\u003dTrue)"},{"line_number":78,"context_line":"    sa.Index(\"clusters_cluster_id_idx\", \"cluster_id\", unique\u003dTrue)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_d913e0b6","line":77,"in_reply_to":"ba8a016a_cb6a2ded","updated":"2015-11-18 23:40:24.000000000","message":"will change to 36 char string for consistency with other uuid types","commit_id":"307774188e4b0384a7897af09e07f0496cd0bc32"},{"author":{"_account_id":10584,"name":"Min Pae","username":"sputnik13","inactive":true},"change_message_id":"0bd8064173af9e5c8afb9d38644df10a554260a7","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    size \u003d sa.Column(sa.Integer(), default\u003d1, nullable\u003dFalse)"},{"line_number":75,"context_line":"    volume_size \u003d sa.Column(sa.Integer(), nullable\u003dTrue)"},{"line_number":76,"context_line":"    error_detail \u003d sa.Column(sa.Text(), nullable\u003dTrue)"},{"line_number":77,"context_line":"    group_id \u003d sa.Column(types.UUID(), nullable\u003dTrue)"},{"line_number":78,"context_line":"    sa.Index(\"clusters_cluster_id_idx\", \"cluster_id\", unique\u003dTrue)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_fc881273","line":77,"in_reply_to":"ba8a016a_d913e0b6","updated":"2015-11-18 23:59:39.000000000","message":"I think 36 character is a UUID with hyphens, if you have a UUID without hyphens it will fit in 32 chars.  Perhaps a question to ask is whether we should store with or without hyphens.","commit_id":"307774188e4b0384a7897af09e07f0496cd0bc32"}],"cue/taskflow/__init__.py":[{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"e58b0df5e9bc6e461c333f57887c012445142318","unresolved":false,"context_lines":[{"line_number":60,"context_line":"               \"declaring it FAULTED\","},{"line_number":61,"context_line":"               default\u003d30),"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027cluster_member_affinity\u0027,"},{"line_number":64,"context_line":"           help\u003d\"Affinity policy for broker cluster nodes\","},{"line_number":65,"context_line":"           default\u003dFalse),"},{"line_number":66,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_6e576bca","line":63,"updated":"2015-11-12 00:13:50.000000000","message":"since this patch configures anti-affinity for VM\u0027s in Cue clusters, this option should read:  \u0027cluster_member_anti_affinity\u0027 and default is True.  The inverse does not always imply VM\u0027s being on the same host.\n\nthe help field should ready:  AntiAffinity for  Cue cluster VMs.","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":10584,"name":"Min Pae","username":"sputnik13","inactive":true},"change_message_id":"0278c671f408b927703e80342ca3526508f025c6","unresolved":false,"context_lines":[{"line_number":60,"context_line":"               \"declaring it FAULTED\","},{"line_number":61,"context_line":"               default\u003d30),"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027cluster_member_affinity\u0027,"},{"line_number":64,"context_line":"           help\u003d\"Affinity policy for broker cluster nodes\","},{"line_number":65,"context_line":"           default\u003dFalse),"},{"line_number":66,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_4ec38789","line":63,"updated":"2015-11-12 00:16:26.000000000","message":"we should call this option anti_affinity\n\naffinity !\u003d ~anti_affinity\n\nthere are actually 3 possible states, affinity, anti-affinity, and random (aka I don\u0027t care), we do not want affinity to be assumed if anti_affinity is not selected","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"2d32ba0559b61e2f67c7e8ab005057b74e1810c4","unresolved":false,"context_lines":[{"line_number":60,"context_line":"               \"declaring it FAULTED\","},{"line_number":61,"context_line":"               default\u003d30),"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027cluster_member_affinity\u0027,"},{"line_number":64,"context_line":"           help\u003d\"Affinity policy for broker cluster nodes\","},{"line_number":65,"context_line":"           default\u003dFalse),"},{"line_number":66,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_2edf23da","line":63,"in_reply_to":"da85f559_4ec38789","updated":"2015-11-12 01:04:52.000000000","message":"got it. changed it to anti-affinity.","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"4765673f26a6b46599e27c5a7f263a7641dfc562","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027cluster_node_anti_affinity\u0027,"},{"line_number":64,"context_line":"                 help\u003d\"Anti-affinity policy for cue cluster nodes\","},{"line_number":65,"context_line":"                 default\u003dFalse),"},{"line_number":66,"context_line":"]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"opt_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_e74d4fc5","line":65,"updated":"2015-11-13 18:59:44.000000000","message":"I think what we agreed was this should be on by default. For devstack/tempest we will set it to False. And if we get a \u0027no valid host\u0027 from nova, we would display this error to the user.","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":10584,"name":"Min Pae","username":"sputnik13","inactive":true},"change_message_id":"60e64c2a5869ef1b324a804641292f2708b25c4a","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027cluster_node_anti_affinity\u0027,"},{"line_number":64,"context_line":"                 help\u003d\"Anti-affinity policy for cue cluster nodes\","},{"line_number":65,"context_line":"                 default\u003dFalse),"},{"line_number":66,"context_line":"]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"opt_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_985f0275","line":65,"in_reply_to":"da85f559_e74d4fc5","updated":"2015-11-13 20:19:10.000000000","message":"default behavior for new features should be off unless it\u0027s a major release","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"8c49cf01394011d1c6346a4fe0ebd7f02eaac6d9","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027cluster_node_anti_affinity\u0027,"},{"line_number":64,"context_line":"                 help\u003d\"Anti-affinity policy for cue cluster nodes\","},{"line_number":65,"context_line":"                 default\u003dFalse),"},{"line_number":66,"context_line":"]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"opt_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_712f6e88","line":65,"updated":"2015-11-18 21:55:56.000000000","message":"We probably don\u0027t want to put Cue specific options in the Taskflow group.  (Although i realize the prior two somehow made it in).  Can we initialize these as part of a Cue option group?","commit_id":"307774188e4b0384a7897af09e07f0496cd0bc32"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"361c8a0cc51f08b43359176ab39feca466f1b386","unresolved":false,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    cfg.BoolOpt(\u0027cluster_node_anti_affinity\u0027,"},{"line_number":64,"context_line":"                 help\u003d\"Anti-affinity policy for cue cluster nodes\","},{"line_number":65,"context_line":"                 default\u003dFalse),"},{"line_number":66,"context_line":"]"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"opt_group \u003d cfg.OptGroup("}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_592850e2","line":65,"in_reply_to":"ba8a016a_712f6e88","updated":"2015-11-18 23:40:24.000000000","message":"ok, makes sense.","commit_id":"307774188e4b0384a7897af09e07f0496cd0bc32"}],"cue/taskflow/flow/create_cluster.py":[{"author":{"_account_id":10584,"name":"Min Pae","username":"sputnik13","inactive":true},"change_message_id":"0278c671f408b927703e80342ca3526508f025c6","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                                                node_check_max_count,"},{"line_number":124,"context_line":"                                                user_network_id,"},{"line_number":125,"context_line":"                                                management_network_id,"},{"line_number":126,"context_line":"                                                get_vm_group_id"},{"line_number":127,"context_line":"                                                )"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    return flow"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_aed6b325","line":126,"updated":"2015-11-12 00:16:26.000000000","message":"rather than adding get_vm_group_id to create_cluster_node, you can just link get_vm_group_id to start_task or link start_task to get_vm_group_id then pass in get_vm_group_id as the \"start_task\" argument to create_cluster_node","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"2d32ba0559b61e2f67c7e8ab005057b74e1810c4","unresolved":false,"context_lines":[{"line_number":123,"context_line":"                                                node_check_max_count,"},{"line_number":124,"context_line":"                                                user_network_id,"},{"line_number":125,"context_line":"                                                management_network_id,"},{"line_number":126,"context_line":"                                                get_vm_group_id"},{"line_number":127,"context_line":"                                                )"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"    return flow"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_e5eff91b","line":126,"in_reply_to":"da85f559_aed6b325","updated":"2015-11-12 01:04:52.000000000","message":"got it. changed the link from get_vm_group_id to start_task","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"45e37a6098d54f72da194734e2a6543bb8f3e729","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    cluster_anti_affinity \u003d cfg.CONF.taskflow.cluster_node_anti_affinity"},{"line_number":68,"context_line":"    if cluster_anti_affinity:"},{"line_number":69,"context_line":"        create_vm_group \u003d nova.CreateVmGroup("},{"line_number":70,"context_line":"            name\u003d\"create cluster group\","},{"line_number":71,"context_line":"            os_client\u003dclient.nova_client(),"},{"line_number":72,"context_line":"            requires\u003d(\u0027name\u0027, \u0027policies\u0027),"},{"line_number":73,"context_line":"            inject\u003d{\u0027name\u0027: \"cue_group_%s\" % cluster_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_d09fa8b2","line":70,"updated":"2015-11-13 18:11:56.000000000","message":"for consistency we should append the cluster id to the task name here.  This makes it easier when sifting through a log file.","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"1cd31b32f17aee1ce14778a5a8c27a6cebf8f339","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    cluster_anti_affinity \u003d cfg.CONF.taskflow.cluster_node_anti_affinity"},{"line_number":68,"context_line":"    if cluster_anti_affinity:"},{"line_number":69,"context_line":"        create_vm_group \u003d nova.CreateVmGroup("},{"line_number":70,"context_line":"            name\u003d\"create cluster group\","},{"line_number":71,"context_line":"            os_client\u003dclient.nova_client(),"},{"line_number":72,"context_line":"            requires\u003d(\u0027name\u0027, \u0027policies\u0027),"},{"line_number":73,"context_line":"            inject\u003d{\u0027name\u0027: \"cue_group_%s\" % cluster_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba8a016a_071e610c","line":70,"in_reply_to":"da85f559_c7992b21","updated":"2015-11-17 23:20:04.000000000","message":"Done","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"4765673f26a6b46599e27c5a7f263a7641dfc562","unresolved":false,"context_lines":[{"line_number":67,"context_line":"    cluster_anti_affinity \u003d cfg.CONF.taskflow.cluster_node_anti_affinity"},{"line_number":68,"context_line":"    if cluster_anti_affinity:"},{"line_number":69,"context_line":"        create_vm_group \u003d nova.CreateVmGroup("},{"line_number":70,"context_line":"            name\u003d\"create cluster group\","},{"line_number":71,"context_line":"            os_client\u003dclient.nova_client(),"},{"line_number":72,"context_line":"            requires\u003d(\u0027name\u0027, \u0027policies\u0027),"},{"line_number":73,"context_line":"            inject\u003d{\u0027name\u0027: \"cue_group_%s\" % cluster_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_c7992b21","line":70,"in_reply_to":"da85f559_d09fa8b2","updated":"2015-11-13 18:59:44.000000000","message":"+1.","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"45e37a6098d54f72da194734e2a6543bb8f3e729","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            name\u003d\"create cluster group\","},{"line_number":71,"context_line":"            os_client\u003dclient.nova_client(),"},{"line_number":72,"context_line":"            requires\u003d(\u0027name\u0027, \u0027policies\u0027),"},{"line_number":73,"context_line":"            inject\u003d{\u0027name\u0027: \"cue_group_%s\" % cluster_id,"},{"line_number":74,"context_line":"                    \u0027policies\u0027: [\u0027anti-affinity\u0027]},"},{"line_number":75,"context_line":"            provides\u003d\"cluster_group\")"},{"line_number":76,"context_line":"        flow.add(create_vm_group)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_70c91cac","line":73,"updated":"2015-11-13 18:11:56.000000000","message":"this name should follow this format:\ncue[cluster_id]_group","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"4765673f26a6b46599e27c5a7f263a7641dfc562","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            name\u003d\"create cluster group\","},{"line_number":71,"context_line":"            os_client\u003dclient.nova_client(),"},{"line_number":72,"context_line":"            requires\u003d(\u0027name\u0027, \u0027policies\u0027),"},{"line_number":73,"context_line":"            inject\u003d{\u0027name\u0027: \"cue_group_%s\" % cluster_id,"},{"line_number":74,"context_line":"                    \u0027policies\u0027: [\u0027anti-affinity\u0027]},"},{"line_number":75,"context_line":"            provides\u003d\"cluster_group\")"},{"line_number":76,"context_line":"        flow.add(create_vm_group)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_c767eb23","line":73,"in_reply_to":"da85f559_70c91cac","updated":"2015-11-13 18:59:44.000000000","message":"+1. To make it consistent with how we are naming VM, something like:\ncue[cluster-id].group","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"1cd31b32f17aee1ce14778a5a8c27a6cebf8f339","unresolved":false,"context_lines":[{"line_number":70,"context_line":"            name\u003d\"create cluster group\","},{"line_number":71,"context_line":"            os_client\u003dclient.nova_client(),"},{"line_number":72,"context_line":"            requires\u003d(\u0027name\u0027, \u0027policies\u0027),"},{"line_number":73,"context_line":"            inject\u003d{\u0027name\u0027: \"cue_group_%s\" % cluster_id,"},{"line_number":74,"context_line":"                    \u0027policies\u0027: [\u0027anti-affinity\u0027]},"},{"line_number":75,"context_line":"            provides\u003d\"cluster_group\")"},{"line_number":76,"context_line":"        flow.add(create_vm_group)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba8a016a_a71af515","line":73,"in_reply_to":"da85f559_c767eb23","updated":"2015-11-17 23:20:04.000000000","message":"Done","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"45e37a6098d54f72da194734e2a6543bb8f3e729","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        get_vm_group_id \u003d os_common.Lambda("},{"line_number":79,"context_line":"            extract_vm_group_id,"},{"line_number":80,"context_line":"            name\u003d\"extract cluster group id\","},{"line_number":81,"context_line":"            rebind\u003d{\u0027vm_group\u0027: \"cluster_group\"},"},{"line_number":82,"context_line":"            provides\u003d\"scheduler_hints\")"},{"line_number":83,"context_line":"        flow.add(get_vm_group_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_d03b289b","line":80,"updated":"2015-11-13 18:11:56.000000000","message":"add cluster id as above comment","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"1cd31b32f17aee1ce14778a5a8c27a6cebf8f339","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"        get_vm_group_id \u003d os_common.Lambda("},{"line_number":79,"context_line":"            extract_vm_group_id,"},{"line_number":80,"context_line":"            name\u003d\"extract cluster group id\","},{"line_number":81,"context_line":"            rebind\u003d{\u0027vm_group\u0027: \"cluster_group\"},"},{"line_number":82,"context_line":"            provides\u003d\"scheduler_hints\")"},{"line_number":83,"context_line":"        flow.add(get_vm_group_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba8a016a_67d3ad39","line":80,"in_reply_to":"da85f559_d03b289b","updated":"2015-11-17 23:20:04.000000000","message":"Done","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"8c49cf01394011d1c6346a4fe0ebd7f02eaac6d9","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    cluster_anti_affinity \u003d cfg.CONF.taskflow.cluster_node_anti_affinity"},{"line_number":64,"context_line":"    if cluster_anti_affinity:"},{"line_number":65,"context_line":"        create_vm_group \u003d nova.CreateVmGroup("},{"line_number":66,"context_line":"            name\u003d\"create cluster group %s\" % cluster_name,"},{"line_number":67,"context_line":"            os_client\u003dclient.nova_client(),"},{"line_number":68,"context_line":"            requires\u003d(\u0027name\u0027, \u0027policies\u0027),"},{"line_number":69,"context_line":"            inject\u003d{\u0027name\u0027: \"cue_group_%s\" % cluster_id,"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_f6e914b8","line":66,"updated":"2015-11-18 21:55:56.000000000","message":"Server group?","commit_id":"307774188e4b0384a7897af09e07f0496cd0bc32"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"361c8a0cc51f08b43359176ab39feca466f1b386","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    cluster_anti_affinity \u003d cfg.CONF.taskflow.cluster_node_anti_affinity"},{"line_number":64,"context_line":"    if cluster_anti_affinity:"},{"line_number":65,"context_line":"        create_vm_group \u003d nova.CreateVmGroup("},{"line_number":66,"context_line":"            name\u003d\"create cluster group %s\" % cluster_name,"},{"line_number":67,"context_line":"            os_client\u003dclient.nova_client(),"},{"line_number":68,"context_line":"            requires\u003d(\u0027name\u0027, \u0027policies\u0027),"},{"line_number":69,"context_line":"            inject\u003d{\u0027name\u0027: \"cue_group_%s\" % cluster_id,"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_79251407","line":66,"in_reply_to":"ba8a016a_f6e914b8","updated":"2015-11-18 23:40:24.000000000","message":"ok","commit_id":"307774188e4b0384a7897af09e07f0496cd0bc32"}],"cue/taskflow/flow/create_cluster_node.py":[{"author":{"_account_id":10584,"name":"Min Pae","username":"sputnik13","inactive":true},"change_message_id":"0278c671f408b927703e80342ca3526508f025c6","unresolved":false,"context_lines":[{"line_number":128,"context_line":"        os_client\u003dclient.nova_client(),"},{"line_number":129,"context_line":"        requires\u003d(\u0027name\u0027, \u0027image\u0027, \u0027flavor\u0027, \u0027nics\u0027),"},{"line_number":130,"context_line":"        inject\u003d{\u0027name\u0027: node_name},"},{"line_number":131,"context_line":"        rebind\u003d{\u0027nics\u0027: \"port_ids_%d\" % node_number},"},{"line_number":132,"context_line":"        provides\u003d\"vm_info_%d\" % node_number)"},{"line_number":133,"context_line":"    graph_flow.add(create_vm)"},{"line_number":134,"context_line":"    graph_flow.link(get_vm_group_id, create_vm)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_2e764370","line":131,"updated":"2015-11-12 00:16:26.000000000","message":"doesn\u0027t CreateVm need to consume vm group ID?","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":10584,"name":"Min Pae","username":"sputnik13","inactive":true},"change_message_id":"0278c671f408b927703e80342ca3526508f025c6","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        rebind\u003d{\u0027nics\u0027: \"port_ids_%d\" % node_number},"},{"line_number":132,"context_line":"        provides\u003d\"vm_info_%d\" % node_number)"},{"line_number":133,"context_line":"    graph_flow.add(create_vm)"},{"line_number":134,"context_line":"    graph_flow.link(get_vm_group_id, create_vm)"},{"line_number":135,"context_line":"    graph_flow.link(create_management_port, create_vm)"},{"line_number":136,"context_line":"    graph_flow.link(generate_userdata, create_vm)"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_ae08f3da","line":134,"updated":"2015-11-12 00:16:26.000000000","message":"this link can be done outside the subflow, just have whatever is passed in as start_task come after the get_vm_group_id task","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"2d32ba0559b61e2f67c7e8ab005057b74e1810c4","unresolved":false,"context_lines":[{"line_number":131,"context_line":"        rebind\u003d{\u0027nics\u0027: \"port_ids_%d\" % node_number},"},{"line_number":132,"context_line":"        provides\u003d\"vm_info_%d\" % node_number)"},{"line_number":133,"context_line":"    graph_flow.add(create_vm)"},{"line_number":134,"context_line":"    graph_flow.link(get_vm_group_id, create_vm)"},{"line_number":135,"context_line":"    graph_flow.link(create_management_port, create_vm)"},{"line_number":136,"context_line":"    graph_flow.link(generate_userdata, create_vm)"},{"line_number":137,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_85a4ed07","line":134,"in_reply_to":"da85f559_ae08f3da","updated":"2015-11-12 01:04:52.000000000","message":"Done","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"}],"cue/taskflow/flow/delete_cluster.py":[{"author":{"_account_id":1925,"name":"Vipul Sabhaya","email":"vipuls@gmail.com","username":"vipuls"},"change_message_id":"8c49cf01394011d1c6346a4fe0ebd7f02eaac6d9","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                                                \"%s\" % cluster_name,"},{"line_number":57,"context_line":"                                     inject\u003dstart_flow_status))"},{"line_number":58,"context_line":"    if group_id is not None:"},{"line_number":59,"context_line":"        flow.add(nova.DeleteVmGroup(name\u003d\"delete nova user group %s %s\" %"},{"line_number":60,"context_line":"                                         (group_id, cluster_name),"},{"line_number":61,"context_line":"                                    os_client\u003dclient.nova_client(),"},{"line_number":62,"context_line":"                                    inject\u003d{\u0027group\u0027: group_id}))"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_167618a4","line":59,"updated":"2015-11-18 21:55:56.000000000","message":"\"Nova server group\"?","commit_id":"307774188e4b0384a7897af09e07f0496cd0bc32"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"361c8a0cc51f08b43359176ab39feca466f1b386","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                                                \"%s\" % cluster_name,"},{"line_number":57,"context_line":"                                     inject\u003dstart_flow_status))"},{"line_number":58,"context_line":"    if group_id is not None:"},{"line_number":59,"context_line":"        flow.add(nova.DeleteVmGroup(name\u003d\"delete nova user group %s %s\" %"},{"line_number":60,"context_line":"                                         (group_id, cluster_name),"},{"line_number":61,"context_line":"                                    os_client\u003dclient.nova_client(),"},{"line_number":62,"context_line":"                                    inject\u003d{\u0027group\u0027: group_id}))"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba8a016a_596ff02a","line":59,"in_reply_to":"ba8a016a_167618a4","updated":"2015-11-18 23:40:24.000000000","message":"yes, good catch","commit_id":"307774188e4b0384a7897af09e07f0496cd0bc32"}],"cue/taskflow/task/get_rabbit_cluster_status.py":[{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"764ec2e6463e7c689ac1dad561589542a41623f5","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            if all(val \u003d\u003d \u0027ok\u0027 for val in result.values()):"},{"line_number":83,"context_line":"                retval \u003d \u0027OK\u0027"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        return retval"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba8a016a_d0abed1b","line":85,"updated":"2015-11-18 01:13:23.000000000","message":"no change here","commit_id":"328c1f84e202d03d1d0cc0a932b324e15ee61455"}],"cue/taskflow/task/update_cluster_task.py":[{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"764ec2e6463e7c689ac1dad561589542a41623f5","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        :type cluster_status: string"},{"line_number":40,"context_line":"        \"\"\""},{"line_number":41,"context_line":"        request_context \u003d context_module.RequestContext.from_dict(context)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        cluster \u003d objects.Cluster(**cluster_values)"},{"line_number":44,"context_line":"        cluster.update(request_context, cluster_id,"},{"line_number":45,"context_line":"                       project_only\u003dproject_only, **kwargs)"}],"source_content_type":"text/x-python","patch_set":9,"id":"ba8a016a_90648522","line":42,"updated":"2015-11-18 01:13:23.000000000","message":"no change here","commit_id":"328c1f84e202d03d1d0cc0a932b324e15ee61455"}],"cue/tests/functional/taskflow/flow/test_create_cluster.py":[{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"4765673f26a6b46599e27c5a7f263a7641dfc562","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_create_cluster_anti_affinity(self):"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        self.flags(cluster_node_anti_affinity\u003dTrue, group\u003d\"taskflow\")"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        flow_store \u003d {"},{"line_number":199,"context_line":"            \u0027image\u0027: self.valid_image.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_8716c353","line":196,"updated":"2015-11-13 18:59:44.000000000","message":"By default this flag should be on","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":10584,"name":"Min Pae","username":"sputnik13","inactive":true},"change_message_id":"60e64c2a5869ef1b324a804641292f2708b25c4a","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def test_create_cluster_anti_affinity(self):"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"        self.flags(cluster_node_anti_affinity\u003dTrue, group\u003d\"taskflow\")"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"        flow_store \u003d {"},{"line_number":199,"context_line":"            \u0027image\u0027: self.valid_image.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_1802323f","line":196,"in_reply_to":"da85f559_8716c353","updated":"2015-11-13 20:19:10.000000000","message":"new features should default to off unless it\u0027s a major release","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"45e37a6098d54f72da194734e2a6543bb8f3e729","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        engines.run(flow, store\u003dflow_store)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        nodes_after \u003d objects.Node.get_nodes_by_cluster_id(self.context,"},{"line_number":234,"context_line":"                                                     new_cluster.id)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        # check if the host_ids are different for cluster nodes"},{"line_number":237,"context_line":"        host_ids \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_d01c8879","line":234,"updated":"2015-11-13 18:11:56.000000000","message":"spacing","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"1cd31b32f17aee1ce14778a5a8c27a6cebf8f339","unresolved":false,"context_lines":[{"line_number":231,"context_line":"        engines.run(flow, store\u003dflow_store)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        nodes_after \u003d objects.Node.get_nodes_by_cluster_id(self.context,"},{"line_number":234,"context_line":"                                                     new_cluster.id)"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        # check if the host_ids are different for cluster nodes"},{"line_number":237,"context_line":"        host_ids \u003d []"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba8a016a_e7cebd82","line":234,"in_reply_to":"da85f559_d01c8879","updated":"2015-11-17 23:20:04.000000000","message":"Done","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"4765673f26a6b46599e27c5a7f263a7641dfc562","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            self.assertNotIn(host_id, host_ids)"},{"line_number":241,"context_line":"            host_ids.append(host_id)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    def tearDown(self):"},{"line_number":244,"context_line":"        for vm_id in self.new_vm_list:"},{"line_number":245,"context_line":"            self.nova_client.servers.delete(vm_id)"},{"line_number":246,"context_line":"        super(CreateClusterTests, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_fa19667a","line":243,"updated":"2015-11-13 18:59:44.000000000","message":"Can you add another test cluster_node_anti_affinity\u003dFalse? And verify that it does not create a server group.","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"3040ca08f1afd09f74d2528e3e2b548f6cd08a26","unresolved":false,"context_lines":[{"line_number":240,"context_line":"            self.assertNotIn(host_id, host_ids)"},{"line_number":241,"context_line":"            host_ids.append(host_id)"},{"line_number":242,"context_line":""},{"line_number":243,"context_line":"    def tearDown(self):"},{"line_number":244,"context_line":"        for vm_id in self.new_vm_list:"},{"line_number":245,"context_line":"            self.nova_client.servers.delete(vm_id)"},{"line_number":246,"context_line":"        super(CreateClusterTests, self).tearDown()"}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_b3d78922","line":243,"in_reply_to":"da85f559_fa19667a","updated":"2015-11-13 20:36:38.000000000","message":"the existing test verifies that since the default is cluster_node_anti_affinity\u003dFalse","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"}],"cue/tests/functional/taskflow/task/test_create_vm_group.py":[{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"45e37a6098d54f72da194734e2a6543bb8f3e729","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"Verifies CreateVMGroupStatus task directly.\"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        flow_store \u003d {"},{"line_number":54,"context_line":"            \u0027vm_group_name\u0027: self.new_vm_group_name,"},{"line_number":55,"context_line":"            \u0027policies\u0027: [\u0027anti-affinity\u0027]"},{"line_number":56,"context_line":"        }"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_f0f18c96","line":54,"updated":"2015-11-13 18:11:56.000000000","message":"the create vm group task requires a name and policies field to be provided in the flow.  The name field is set to vm_group_name instead, how is this binding to name?","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":10584,"name":"Min Pae","username":"sputnik13","inactive":true},"change_message_id":"60e64c2a5869ef1b324a804641292f2708b25c4a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"Verifies CreateVMGroupStatus task directly.\"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        flow_store \u003d {"},{"line_number":54,"context_line":"            \u0027vm_group_name\u0027: self.new_vm_group_name,"},{"line_number":55,"context_line":"            \u0027policies\u0027: [\u0027anti-affinity\u0027]"},{"line_number":56,"context_line":"        }"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_f8a64e52","line":54,"in_reply_to":"da85f559_f0f18c96","updated":"2015-11-13 20:19:10.000000000","message":"rebind is being used to rebind vm_group_name to name, see line 46","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"3040ca08f1afd09f74d2528e3e2b548f6cd08a26","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        \"\"\"Verifies CreateVMGroupStatus task directly.\"\"\""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        flow_store \u003d {"},{"line_number":54,"context_line":"            \u0027vm_group_name\u0027: self.new_vm_group_name,"},{"line_number":55,"context_line":"            \u0027policies\u0027: [\u0027anti-affinity\u0027]"},{"line_number":56,"context_line":"        }"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da85f559_d3f00dcc","line":54,"in_reply_to":"da85f559_f8a64e52","updated":"2015-11-13 20:36:38.000000000","message":"thanks, glossed over that one :)","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"}],"doc/source/configuration.rst":[{"author":{"_account_id":5390,"name":"Steve Leon","username":"steve-leon","inactive":true},"change_message_id":"7123a12b91db360388a02fb8ec038d528d92a102","unresolved":false,"context_lines":[{"line_number":76,"context_line":"engine_type                    \u0027serial\u0027                              Engine type"},{"line_number":77,"context_line":"cluster_node_check_timeout     10                                    Number of seconds between node status checks"},{"line_number":78,"context_line":"cluster_node_check_max_count   30                                    Number of times to check a node for status"},{"line_number":79,"context_line":"cluster_node_anti_affinity     False                                 Anti-affinity policy for cue cluster nodes"},{"line_number":80,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"[openstack]"}],"source_content_type":"text/x-rst","patch_set":7,"id":"da85f559_7a5c96ed","line":79,"updated":"2015-11-13 19:02:11.000000000","message":"Should be true by default","commit_id":"1d07e4229ba51675e2fbb07c201932fda0c6c1db"}],"os_tasklib/nova/create_vm_group.py":[{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"83a80ccc291d118ea92ac7886a6848be822c5130","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def execute(self, name, enable_affinity):"},{"line_number":36,"context_line":"        \"\"\"Main execute method"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        :param name: Name of the server group"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_0ee01f95","line":35,"updated":"2015-11-12 00:30:48.000000000","message":"this task should just accept anti-affinity and affinity as two separate arguments.  if both are true or false, that is an invalid parameter condition, otherwise the correct policy is set and passed along to create a new server group.","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"2d32ba0559b61e2f67c7e8ab005057b74e1810c4","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    \"\"\""},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def execute(self, name, enable_affinity):"},{"line_number":36,"context_line":"        \"\"\"Main execute method"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"        :param name: Name of the server group"}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_459a85ba","line":35,"in_reply_to":"da85f559_0ee01f95","updated":"2015-11-12 01:04:52.000000000","message":"changed it to policy arg like nova client","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":13771,"name":"Davide Agnello","email":"dagnello@hp.com","username":"dagnello"},"change_message_id":"83a80ccc291d118ea92ac7886a6848be822c5130","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        :type enable_affinity: Flag to enable affinity or anti-affinity policy"},{"line_number":42,"context_line":"        :rtype: dict"},{"line_number":43,"context_line":"        \"\"\""},{"line_number":44,"context_line":"        if enable_affinity:"},{"line_number":45,"context_line":"            policy \u003d \"affinity\""},{"line_number":46,"context_line":"        else:"},{"line_number":47,"context_line":"            policy \u003d \"anti-affinity\""}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_8eeacf72","line":44,"updated":"2015-11-12 00:30:48.000000000","message":"as Min\u0027s comment affinity !\u003d ~anti-affinity","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"},{"author":{"_account_id":14955,"name":"Abitha Palaniappan","email":"abitha.palaniappan@hp.com","username":"Abitha"},"change_message_id":"2d32ba0559b61e2f67c7e8ab005057b74e1810c4","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        :type enable_affinity: Flag to enable affinity or anti-affinity policy"},{"line_number":42,"context_line":"        :rtype: dict"},{"line_number":43,"context_line":"        \"\"\""},{"line_number":44,"context_line":"        if enable_affinity:"},{"line_number":45,"context_line":"            policy \u003d \"affinity\""},{"line_number":46,"context_line":"        else:"},{"line_number":47,"context_line":"            policy \u003d \"anti-affinity\""}],"source_content_type":"text/x-python","patch_set":3,"id":"da85f559_05b9dd2d","line":44,"in_reply_to":"da85f559_8eeacf72","updated":"2015-11-12 01:04:52.000000000","message":"got it","commit_id":"ba516547cea1e3feeda00e17656df58a0e1233a9"}]}
