)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b6281f95e2916c26ac122e81a0d84fbd0a057a1b","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I661eebcd2149e67c277cb99a691a96ee62c1cbbc"},{"line_number":19,"context_line":"primary: c-api c-sch c-vol"},{"line_number":20,"context_line":"subnode: c-bak"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa6399be_8e36dde5","line":20,"updated":"2016-10-17 20:48:40.000000000","message":"(nit) I don\u0027t believe you intended for these to appear as part of the commit message footer! It looks like git-review recognized them as part of an existing footer, and added a Change-Id.","commit_id":"13dc9aa90769cd3155ce8a452caa520aed574bfd"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"7cc5882c24bb205b2e7cf6e27fd6dde38343b580","unresolved":false,"context_lines":[{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: I661eebcd2149e67c277cb99a691a96ee62c1cbbc"},{"line_number":19,"context_line":"primary: c-api c-sch c-vol"},{"line_number":20,"context_line":"subnode: c-bak"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"fa6399be_9e3604e6","line":20,"in_reply_to":"fa6399be_8e36dde5","updated":"2016-10-18 17:18:20.000000000","message":"Actually I do...they have to go above the change-id. I will correct that","commit_id":"13dc9aa90769cd3155ce8a452caa520aed574bfd"}],"devstack-vm-gate.sh":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"0c853e44ab6fc335d1f140c754156d7e86168244","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    fi"},{"line_number":188,"context_line":"}"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"function cinder_grenade_services {"},{"line_number":191,"context_line":"     local mode \u003d ${CINDER_GRENADE_MODE:-}"},{"line_number":192,"context_line":"     local role \u003d $1"},{"line_number":193,"context_line":"     local services \u003d $2"},{"line_number":194,"context_line":"     IFS\u003d\",\" read -r -a enabledservices \u003c\u003c\u003c \"$services\""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"     #cinder1 corresponds to primary: c-api \u0026 sub: c-bak,c-sch,c-vol"},{"line_number":197,"context_line":"     if [[ \"$mode\" \u003d\u003d \"cinder1\" ]]; then"},{"line_number":198,"context_line":"        delprimaryservice\u003d(c-sch c-vol c-bak)"},{"line_number":199,"context_line":"        delsubservice\u003d()"},{"line_number":200,"context_line":"     #cinder2 corresponds to primary: c-api,c-sch,c-vol \u0026 sub: c-bak"},{"line_number":201,"context_line":"     elif [[ \"$mode\" \u003d\u003d \"cinder2\" ]]; then"},{"line_number":202,"context_line":"        delprimaryservice\u003d(c-bak)"},{"line_number":203,"context_line":"        delsubservice\u003d(c-vol)"},{"line_number":204,"context_line":"     #cinder2 corresponds to primary: c-api,c-sch \u0026 sub: c-bak,c-vol"},{"line_number":205,"context_line":"     elif [[ \"$mode\" \u003d\u003d \"cinder3\" ]]; then"},{"line_number":206,"context_line":"        delprimaryservice\u003d(c-vol c-bak)"},{"line_number":207,"context_line":"        delsubservice\u003d()"},{"line_number":208,"context_line":"     fi"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"     if [[ \"$role\" \u003d\u003d \"sub\" ]]; then"},{"line_number":211,"context_line":"        eservices\u003d(${enabledservices[@]/$delsubservice})"},{"line_number":212,"context_line":"     elif [[ \"$role\" \u003d\u003d \"primary\" ]]; then"},{"line_number":213,"context_line":"        eservices\u003d(${enabledservices[@]/$delprimaryservice})"},{"line_number":214,"context_line":"     fi"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"     return $eservices"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"}"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"function setup_localrc {"},{"line_number":221,"context_line":"    local localrc_oldnew\u003d$1;"}],"source_content_type":"text/x-sh","patch_set":1,"id":"fa6399be_4a8f3f23","line":218,"range":{"start_line":190,"start_character":0,"end_line":218,"end_character":1},"updated":"2016-10-11 13:37:30.000000000","message":"I see what you want to do here, but we should probably refactor whole [1] to read services from features.yaml. That would give us more flexibility. You can try contacting Sean Collins (sc68cal on IRC) - I know he wanted to implement that to be able to move some Neutron services from primary into subnode. \n\n[1] https://github.com/openstack-infra/devstack-gate/blob/master/devstack-vm-gate.sh#L224-L245","commit_id":"0bdbf68295f6dd0cbf1fe59cbd480bf626516354"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"0de84e67596779df6f90df58da7259c592f4d88f","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    fi"},{"line_number":188,"context_line":"}"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"function cinder_grenade_services {"},{"line_number":191,"context_line":"     local mode \u003d ${CINDER_GRENADE_MODE:-}"},{"line_number":192,"context_line":"     local role \u003d $1"},{"line_number":193,"context_line":"     local services \u003d $2"},{"line_number":194,"context_line":"     IFS\u003d\",\" read -r -a enabledservices \u003c\u003c\u003c \"$services\""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"     #cinder1 corresponds to primary: c-api \u0026 sub: c-bak,c-sch,c-vol"},{"line_number":197,"context_line":"     if [[ \"$mode\" \u003d\u003d \"cinder1\" ]]; then"},{"line_number":198,"context_line":"        delprimaryservice\u003d(c-sch c-vol c-bak)"},{"line_number":199,"context_line":"        delsubservice\u003d()"},{"line_number":200,"context_line":"     #cinder2 corresponds to primary: c-api,c-sch,c-vol \u0026 sub: c-bak"},{"line_number":201,"context_line":"     elif [[ \"$mode\" \u003d\u003d \"cinder2\" ]]; then"},{"line_number":202,"context_line":"        delprimaryservice\u003d(c-bak)"},{"line_number":203,"context_line":"        delsubservice\u003d(c-vol)"},{"line_number":204,"context_line":"     #cinder2 corresponds to primary: c-api,c-sch \u0026 sub: c-bak,c-vol"},{"line_number":205,"context_line":"     elif [[ \"$mode\" \u003d\u003d \"cinder3\" ]]; then"},{"line_number":206,"context_line":"        delprimaryservice\u003d(c-vol c-bak)"},{"line_number":207,"context_line":"        delsubservice\u003d()"},{"line_number":208,"context_line":"     fi"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"     if [[ \"$role\" \u003d\u003d \"sub\" ]]; then"},{"line_number":211,"context_line":"        eservices\u003d(${enabledservices[@]/$delsubservice})"},{"line_number":212,"context_line":"     elif [[ \"$role\" \u003d\u003d \"primary\" ]]; then"},{"line_number":213,"context_line":"        eservices\u003d(${enabledservices[@]/$delprimaryservice})"},{"line_number":214,"context_line":"     fi"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"     return $eservices"},{"line_number":217,"context_line":""},{"line_number":218,"context_line":"}"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"function setup_localrc {"},{"line_number":221,"context_line":"    local localrc_oldnew\u003d$1;"}],"source_content_type":"text/x-sh","patch_set":1,"id":"fa6399be_2cc78013","line":218,"range":{"start_line":190,"start_character":0,"end_line":218,"end_character":1},"in_reply_to":"fa6399be_4a8f3f23","updated":"2016-10-11 16:26:07.000000000","message":"Thanks Michal. I will touch base with him. I really didn\u0027t want to touch the test-matrix.py file and stuck to making a change here.","commit_id":"0bdbf68295f6dd0cbf1fe59cbd480bf626516354"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"c572d97fd9507e24b351d3e18a7725fb04263601","unresolved":false,"context_lines":[{"line_number":193,"context_line":"    local services \u003d $2"},{"line_number":194,"context_line":"    IFS\u003d\",\" read -r -a enabledservices \u003c\u003c\u003c \"$services\""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    #cinder1 corresponds to primary: c-api \u0026 sub: c-bak,c-sch,c-vol"},{"line_number":197,"context_line":"    if [[ \"$mode\" \u003d\u003d \"cinder1\" ]]; then"},{"line_number":198,"context_line":"        delprimaryservice\u003d(c-sch c-vol c-bak)"},{"line_number":199,"context_line":"        delsubservice\u003d()"}],"source_content_type":"text/x-sh","patch_set":2,"id":"fa6399be_7a303c57","line":196,"range":{"start_line":196,"start_character":4,"end_line":196,"end_character":6},"updated":"2016-10-12 00:39:50.000000000","message":"Nit: I suggest to add space after initial \"#\".","commit_id":"30557639654eb8fd6393e85814393590506e8291"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"c572d97fd9507e24b351d3e18a7725fb04263601","unresolved":false,"context_lines":[{"line_number":201,"context_line":"    elif [[ \"$mode\" \u003d\u003d \"cinder2\" ]]; then"},{"line_number":202,"context_line":"        delprimaryservice\u003d(c-bak)"},{"line_number":203,"context_line":"        delsubservice\u003d(c-vol)"},{"line_number":204,"context_line":"    #cinder2 corresponds to primary: c-api,c-sch \u0026 sub: c-bak,c-vol"},{"line_number":205,"context_line":"    elif [[ \"$mode\" \u003d\u003d \"cinder3\" ]]; then"},{"line_number":206,"context_line":"        delprimaryservice\u003d(c-vol c-bak)"},{"line_number":207,"context_line":"        delsubservice\u003d()"}],"source_content_type":"text/x-sh","patch_set":2,"id":"fa6399be_3af08490","line":204,"range":{"start_line":204,"start_character":11,"end_line":204,"end_character":12},"updated":"2016-10-12 00:39:50.000000000","message":"3","commit_id":"30557639654eb8fd6393e85814393590506e8291"},{"author":{"_account_id":6547,"name":"Andreas Jaeger","email":"jaegerandi@gmail.com","username":"jaegerandi"},"change_message_id":"c572d97fd9507e24b351d3e18a7725fb04263601","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    elif [[ \"$mode\" \u003d\u003d \"cinder3\" ]]; then"},{"line_number":206,"context_line":"        delprimaryservice\u003d(c-vol c-bak)"},{"line_number":207,"context_line":"        delsubservice\u003d()"},{"line_number":208,"context_line":"    fi"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    if [[ \"$role\" \u003d\u003d \"sub\" ]]; then"},{"line_number":211,"context_line":"        eservices\u003d(${enabledservices[@]/$delsubservice})"}],"source_content_type":"text/x-sh","patch_set":2,"id":"fa6399be_da3f8823","line":208,"range":{"start_line":208,"start_character":1,"end_line":208,"end_character":6},"updated":"2016-10-12 00:39:50.000000000","message":"Do we need to add an else for unknown options? Also below","commit_id":"30557639654eb8fd6393e85814393590506e8291"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"b6281f95e2916c26ac122e81a0d84fbd0a057a1b","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    IFS\u003d\",\" read -r -a enabledservices \u003c\u003c\u003c \"${services}\""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    # cinder1 corresponds to primary: c-api \u0026 sub: c-bak,c-sch,c-vol"},{"line_number":197,"context_line":"    if [[ \"$mode\" \u003d\u003d \"cinder1\" ]]; then"},{"line_number":198,"context_line":"        delprimaryservice\u003d(c-sch c-vol c-bak)"},{"line_number":199,"context_line":"        delsubservice\u003d()"},{"line_number":200,"context_line":"    # cinder2 corresponds to primary: c-api,c-sch,c-vol \u0026 sub: c-bak"}],"source_content_type":"text/x-sh","patch_set":5,"id":"fa6399be_f1e73c44","line":197,"updated":"2016-10-17 20:48:40.000000000","message":"I do wish these were named more specifically rather than simply arbitrarily numbered. Looking at the devstack-gate.yaml change that goes along with this, it\u0027s definitely not clear what -multinode does versus -multinode1 versus -multinode2, considering the only apparent difference between them is the value of CINDER_GRENADE_MODE.\n\nIf the variable was named CINDER_GRENADE_ORDER or something more apparent, and the value was basically the values that ultimately belong in filteredservices, then you could allow the caller (basically devstack-gate.yml) to dictate the meaning of each \"mode\" and there would not be any ambiguity on that side.","commit_id":"13dc9aa90769cd3155ce8a452caa520aed574bfd"},{"author":{"_account_id":20140,"name":"Karthik Prabhu Vinod","email":"karthik.prabhu.vinod@intel.com","username":"kprabhuv"},"change_message_id":"7cc5882c24bb205b2e7cf6e27fd6dde38343b580","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    IFS\u003d\",\" read -r -a enabledservices \u003c\u003c\u003c \"${services}\""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    # cinder1 corresponds to primary: c-api \u0026 sub: c-bak,c-sch,c-vol"},{"line_number":197,"context_line":"    if [[ \"$mode\" \u003d\u003d \"cinder1\" ]]; then"},{"line_number":198,"context_line":"        delprimaryservice\u003d(c-sch c-vol c-bak)"},{"line_number":199,"context_line":"        delsubservice\u003d()"},{"line_number":200,"context_line":"    # cinder2 corresponds to primary: c-api,c-sch,c-vol \u0026 sub: c-bak"}],"source_content_type":"text/x-sh","patch_set":5,"id":"fa6399be_21adbb88","line":197,"in_reply_to":"fa6399be_f1e73c44","updated":"2016-10-18 17:18:20.000000000","message":"Dolph,\n\nThere was a parallel work going on at the same time by Sean Collins from Openstack-infra:\nhttps://review.openstack.org/#/c/386072/\n\nHe attempts to add segregate features and services depending on whether is Worker(sub node) or Controller(primary). I believe this current patch will lose some of its meaning when that gets merged.\n\nI am not sure I understand you completely. Are you suggesting to encode the filtereedservices to be present with each mode? \n\nlike CINDER_GRENADE_ORDER\u003d\"c-api\"   \n\n# if c-api is the only active cinder service","commit_id":"13dc9aa90769cd3155ce8a452caa520aed574bfd"}],"features.yaml":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"647c6ff40deed8e208158d5488a2028b0c1ad3b3","unresolved":false,"context_lines":[{"line_number":48,"context_line":"    features: [heat]"},{"line_number":49,"context_line":"  tlsproxy:"},{"line_number":50,"context_line":"    features: [tlsproxy]"},{"line_number":51,"context_line":"  cinder_mn_grenade1:"},{"line_number":52,"context_line":"    features: [cinder-mn-grenade1]"},{"line_number":53,"context_line":"  cinder_mn_grenade2:"},{"line_number":54,"context_line":"    features: [cinder-mn-grenade2]"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba5201f7_56b976ca","line":51,"range":{"start_line":51,"start_character":2,"end_line":51,"end_character":20},"updated":"2017-01-11 10:21:41.000000000","message":"You cannot change this one - otherwise you\u0027ll break already existing job, as it depends on this being named \"cinder_mn_grenade\".","commit_id":"c5a94953fe01bc9f5d1d870f0e661b548551630d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"647c6ff40deed8e208158d5488a2028b0c1ad3b3","unresolved":false,"context_lines":[{"line_number":50,"context_line":"    features: [tlsproxy]"},{"line_number":51,"context_line":"  cinder_mn_grenade1:"},{"line_number":52,"context_line":"    features: [cinder-mn-grenade1]"},{"line_number":53,"context_line":"  cinder_mn_grenade2:"},{"line_number":54,"context_line":"    features: [cinder-mn-grenade2]"},{"line_number":55,"context_line":"  cinder_mn_grenade3:"},{"line_number":56,"context_line":"    features: [cinder-mn-grenade3]"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba5201f7_96159e4a","line":53,"range":{"start_line":53,"start_character":2,"end_line":53,"end_character":20},"updated":"2017-01-11 10:21:41.000000000","message":"Can we use some easier mnemonic? Let\u0027s use cinder_mn_grenade_sub_all, which will denote all the services besides c-api running on subnode.","commit_id":"c5a94953fe01bc9f5d1d870f0e661b548551630d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"647c6ff40deed8e208158d5488a2028b0c1ad3b3","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    features: [cinder-mn-grenade1]"},{"line_number":53,"context_line":"  cinder_mn_grenade2:"},{"line_number":54,"context_line":"    features: [cinder-mn-grenade2]"},{"line_number":55,"context_line":"  cinder_mn_grenade3:"},{"line_number":56,"context_line":"    features: [cinder-mn-grenade3]"},{"line_number":57,"context_line":"  neutron_dvr:"},{"line_number":58,"context_line":"    features: [neutron-dvr]"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba5201f7_394dc572","line":55,"range":{"start_line":55,"start_character":2,"end_line":55,"end_character":20},"updated":"2017-01-11 10:21:41.000000000","message":"And here - cinder_mn_grenade_sub_bak, this means only c-bak is running on subnode.","commit_id":"c5a94953fe01bc9f5d1d870f0e661b548551630d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"647c6ff40deed8e208158d5488a2028b0c1ad3b3","unresolved":false,"context_lines":[{"line_number":132,"context_line":""},{"line_number":133,"context_line":"  # This will be used to disable c-vol on primary node when running multinode grenade"},{"line_number":134,"context_line":"  # job that will test compatibility of new c-api, c-sch (primary) and old c-vol and c-bak (sub)."},{"line_number":135,"context_line":"  cinder-mn-grenade1:"},{"line_number":136,"context_line":"    base:"},{"line_number":137,"context_line":"      rm-services: [c-vol, c-sch, c-bak]"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"  cinder-mn-grenade2:"},{"line_number":140,"context_line":"    base:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba5201f7_f9625dd7","line":137,"range":{"start_line":135,"start_character":0,"end_line":137,"end_character":40},"updated":"2017-01-11 10:21:41.000000000","message":"Please leave this as it was.","commit_id":"c5a94953fe01bc9f5d1d870f0e661b548551630d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"647c6ff40deed8e208158d5488a2028b0c1ad3b3","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    base:"},{"line_number":137,"context_line":"      rm-services: [c-vol, c-sch, c-bak]"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"  cinder-mn-grenade2:"},{"line_number":140,"context_line":"    base:"},{"line_number":141,"context_line":"      rm-services: [c-vol, c-bak]"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"  cinder-mn-grenade3:"},{"line_number":144,"context_line":"    base:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba5201f7_79f3cd0a","line":141,"range":{"start_line":139,"start_character":0,"end_line":141,"end_character":33},"updated":"2017-01-11 10:21:41.000000000","message":"This should be cinder-mn-grenade-sub-all, and should remove c-vol, c-bak and c-sch from primary.","commit_id":"c5a94953fe01bc9f5d1d870f0e661b548551630d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"647c6ff40deed8e208158d5488a2028b0c1ad3b3","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    base:"},{"line_number":141,"context_line":"      rm-services: [c-vol, c-bak]"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"  cinder-mn-grenade3:"},{"line_number":144,"context_line":"    base:"},{"line_number":145,"context_line":"      rm-services: [c-bak]"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"  heat:"},{"line_number":148,"context_line":"    base:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba5201f7_b9dd3572","line":145,"range":{"start_line":143,"start_character":0,"end_line":145,"end_character":26},"updated":"2017-01-11 10:21:41.000000000","message":"This should be cinder-mn-grenade-sub-bak and should only remove c-bak from primary.","commit_id":"c5a94953fe01bc9f5d1d870f0e661b548551630d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"647c6ff40deed8e208158d5488a2028b0c1ad3b3","unresolved":false,"context_lines":[{"line_number":215,"context_line":""},{"line_number":216,"context_line":"  cinder:"},{"line_number":217,"context_line":"    base:"},{"line_number":218,"context_line":"      services: []"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"  cinder-mn-grenade1:"},{"line_number":221,"context_line":"    base:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba5201f7_76e83a7d","line":218,"range":{"start_line":218,"start_character":0,"end_line":218,"end_character":18},"updated":"2017-01-11 10:21:41.000000000","message":"This will affect all the multinode jobs running in the gate. Please leave it as is and use rm-services to remove c-vol from subnode in case of cinder-mn-grenade-sub-bak.","commit_id":"c5a94953fe01bc9f5d1d870f0e661b548551630d"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"647c6ff40deed8e208158d5488a2028b0c1ad3b3","unresolved":false,"context_lines":[{"line_number":217,"context_line":"    base:"},{"line_number":218,"context_line":"      services: []"},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"  cinder-mn-grenade1:"},{"line_number":221,"context_line":"    base:"},{"line_number":222,"context_line":"      services: [c-sch, c-vol, c-bak]"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"  cinder-mn-grenade2:"},{"line_number":225,"context_line":"    base:"},{"line_number":226,"context_line":"      services: [c-vol, c-bak]"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"  cinder-mn-grenade3:"},{"line_number":229,"context_line":"    base:"},{"line_number":230,"context_line":"      services: [c-bak]"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":"  glance:"},{"line_number":233,"context_line":"    base:"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba5201f7_19680187","line":230,"range":{"start_line":220,"start_character":0,"end_line":230,"end_character":23},"updated":"2017-01-11 10:21:41.000000000","message":"This needs to be updated accordingly to my comments above.","commit_id":"c5a94953fe01bc9f5d1d870f0e661b548551630d"}]}
