)]}'
{"tools/xen/README.md":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c76f6360be07692e5ac7153a91bc44cd31bb8ab7","unresolved":false,"context_lines":[{"line_number":19,"context_line":" - Setup XenAPI plugins"},{"line_number":20,"context_line":" - Create the named networks, if they don\u0027t exist"},{"line_number":21,"context_line":" - Install an Ubuntu Virtual Machine, with 4 network interfaces:"},{"line_number":22,"context_line":"   - eth0 - internal xapi interface"},{"line_number":23,"context_line":"   - eth1 - VM interface, connected to `VM_NET_NAME`"},{"line_number":24,"context_line":"   - eth2 - Management interface, connected to `MGT_NET_NAME`"},{"line_number":25,"context_line":"   - eth3 - Public interface, connected to `PUB_NET_NAME`"}],"source_content_type":"text/x-gfm","patch_set":1,"id":"AAAAOn%2F%2FanE%3D","line":22,"updated":"2013-05-10 10:20:30.000000000","message":"I hope we can remove this. Probably in your next change I guess?","commit_id":"954f3faa5c28b573e2ec1890f5b1224bc4963f74"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c76f6360be07692e5ac7153a91bc44cd31bb8ab7","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # services on. Usually eth2 (management network) or eth3 (public network) and"},{"line_number":85,"context_line":"    # not eth0 (private network with XenServer host) or eth1 (VM traffic network)"},{"line_number":86,"context_line":"    # The default is eth3."},{"line_number":87,"context_line":"    HOST_IP_IFACE\u003deth2"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    # Use DHCP server to configure the Management IP of OpenStack VM"},{"line_number":90,"context_line":"    MGT_IP\u003d\"dhcp\""}],"source_content_type":"text/x-gfm","patch_set":1,"id":"AAAAOn%2F%2Fak8%3D","line":87,"updated":"2013-05-10 10:20:30.000000000","message":"I would change the default in XenRC, not change the stuff here.","commit_id":"954f3faa5c28b573e2ec1890f5b1224bc4963f74"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c76f6360be07692e5ac7153a91bc44cd31bb8ab7","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    # First time Ubuntu network install params, use the DHCP server on the"},{"line_number":96,"context_line":"    # management network"},{"line_number":97,"context_line":"    UBUNTU_INST_IFACE\u003d\"eth2\""},{"line_number":98,"context_line":"    UBUNTU_INST_IP\u003d\"dhcp\""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # NOTE: Specifying FLAT_NETWORK_BRIDGE is an error, as it will be guessed"}],"source_content_type":"text/x-gfm","patch_set":1,"id":"AAAAOn%2F%2Fak0%3D","line":97,"updated":"2013-05-10 10:20:30.000000000","message":"As above I guess","commit_id":"954f3faa5c28b573e2ec1890f5b1224bc4963f74"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ba59be60f1869a6115fa35447e1a27f9fb612e2f","unresolved":false,"context_lines":[{"line_number":20,"context_line":" - Create the named networks, if they don\u0027t exist"},{"line_number":21,"context_line":" - Install an Ubuntu Virtual Machine, with 4 network interfaces:"},{"line_number":22,"context_line":"   - eth0 - internal xapi interface"},{"line_number":23,"context_line":"   - eth1 - VM interface, connected to `VM_BRIDGE_OR_NET_NAME`"},{"line_number":24,"context_line":"   - eth2 - Management interface, connected to `MGT_BRIDGE_OR_NET_NAME`"},{"line_number":25,"context_line":"   - eth3 - Public interface, connected to `PUB_BRIDGE_OR_NET_NAME`"},{"line_number":26,"context_line":" - Start devstack inside the created OpenStack VM"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FX8s%3D","line":23,"updated":"2013-05-13 08:17:29.000000000","message":"Add the \u0027default\u0027 names here, so people don\u0027t have to look through the xenrc?","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":20,"context_line":" - Create the named networks, if they don\u0027t exist"},{"line_number":21,"context_line":" - Install an Ubuntu Virtual Machine, with 4 network interfaces:"},{"line_number":22,"context_line":"   - eth0 - internal xapi interface"},{"line_number":23,"context_line":"   - eth1 - VM interface, connected to `VM_BRIDGE_OR_NET_NAME`"},{"line_number":24,"context_line":"   - eth2 - Management interface, connected to `MGT_BRIDGE_OR_NET_NAME`"},{"line_number":25,"context_line":"   - eth3 - Public interface, connected to `PUB_BRIDGE_OR_NET_NAME`"},{"line_number":26,"context_line":" - Start devstack inside the created OpenStack VM"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXpI%3D","line":23,"in_reply_to":"AAAAOn%2F%2FX8s%3D","updated":"2013-05-13 13:02:57.000000000","message":"I can do that.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ba59be60f1869a6115fa35447e1a27f9fb612e2f","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    XENAPI_PASSWORD\u003dmy_xenserver_root_password"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    XENAPI_CONNECTION_URL\u003d\"http://address_of_your_xenserver\""},{"line_number":73,"context_line":"    VNCSERVER_PROXYCLIENT_ADDRESS\u003daddress_of_your_xenserver"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    # Do not download the usual images"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FX8U%3D","line":72,"updated":"2013-05-13 08:17:29.000000000","message":"A future change(?) would be just to specify the IP address and infer the XAPI connection URL and VNC proxy address","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c370d56c60692d514ad77810dd0e2f258ff70099","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    XENAPI_PASSWORD\u003dmy_xenserver_root_password"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    XENAPI_CONNECTION_URL\u003d\"http://address_of_your_xenserver\""},{"line_number":73,"context_line":"    VNCSERVER_PROXYCLIENT_ADDRESS\u003daddress_of_your_xenserver"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    # Do not download the usual images"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXwo%3D","line":72,"in_reply_to":"AAAAOn%2F%2FX8U%3D","updated":"2013-05-13 11:19:59.000000000","message":"its future change I hope","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ba59be60f1869a6115fa35447e1a27f9fb612e2f","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # services on. Usually eth2 (management network) or eth3 (public network) and"},{"line_number":85,"context_line":"    # not eth0 (private network with XenServer host) or eth1 (VM traffic network)"},{"line_number":86,"context_line":"    # The default is eth3."},{"line_number":87,"context_line":"    HOST_IP_IFACE\u003deth2"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    # Use DHCP server to configure the Management IP of OpenStack VM"},{"line_number":90,"context_line":"    MGT_IP\u003d\"dhcp\""}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FX8c%3D","line":87,"updated":"2013-05-13 08:17:29.000000000","message":"Comment and line don\u0027t match for default value","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # services on. Usually eth2 (management network) or eth3 (public network) and"},{"line_number":85,"context_line":"    # not eth0 (private network with XenServer host) or eth1 (VM traffic network)"},{"line_number":86,"context_line":"    # The default is eth3."},{"line_number":87,"context_line":"    HOST_IP_IFACE\u003deth2"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    # Use DHCP server to configure the Management IP of OpenStack VM"},{"line_number":90,"context_line":"    MGT_IP\u003d\"dhcp\""}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXqE%3D","line":87,"in_reply_to":"AAAAOn%2F%2FX8c%3D","updated":"2013-05-13 13:02:57.000000000","message":"The comment is saying, that the default is eth3, however, this line explicitly sets it to eth2, because it is not the default.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c370d56c60692d514ad77810dd0e2f258ff70099","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # services on. Usually eth2 (management network) or eth3 (public network) and"},{"line_number":85,"context_line":"    # not eth0 (private network with XenServer host) or eth1 (VM traffic network)"},{"line_number":86,"context_line":"    # The default is eth3."},{"line_number":87,"context_line":"    HOST_IP_IFACE\u003deth2"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    # Use DHCP server to configure the Management IP of OpenStack VM"},{"line_number":90,"context_line":"    MGT_IP\u003d\"dhcp\""}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXwk%3D","line":87,"in_reply_to":"AAAAOn%2F%2FX8c%3D","updated":"2013-05-13 11:19:59.000000000","message":"Why is this here, if we expect the default to work? Can we not just change the defaults?","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":84,"context_line":"    # services on. Usually eth2 (management network) or eth3 (public network) and"},{"line_number":85,"context_line":"    # not eth0 (private network with XenServer host) or eth1 (VM traffic network)"},{"line_number":86,"context_line":"    # The default is eth3."},{"line_number":87,"context_line":"    HOST_IP_IFACE\u003deth2"},{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    # Use DHCP server to configure the Management IP of OpenStack VM"},{"line_number":90,"context_line":"    MGT_IP\u003d\"dhcp\""}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXqA%3D","line":87,"in_reply_to":"AAAAOn%2F%2FXwk%3D","updated":"2013-05-13 13:02:57.000000000","message":"We can change the defaults, but my intention is to move that to another changeset.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c370d56c60692d514ad77810dd0e2f258ff70099","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    # First time Ubuntu network install params, use the DHCP server on the"},{"line_number":96,"context_line":"    # management network"},{"line_number":97,"context_line":"    UBUNTU_INST_IFACE\u003d\"eth2\""},{"line_number":98,"context_line":"    UBUNTU_INST_IP\u003d\"dhcp\""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # NOTE: Specifying FLAT_NETWORK_BRIDGE is an error, as it will be guessed"},{"line_number":101,"context_line":"    # by the script from the network mapping, and passed to the OpenStack VM"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXwc%3D","line":98,"updated":"2013-05-13 11:19:59.000000000","message":"Again, should the defaults not \"just work\"?","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":95,"context_line":"    # First time Ubuntu network install params, use the DHCP server on the"},{"line_number":96,"context_line":"    # management network"},{"line_number":97,"context_line":"    UBUNTU_INST_IFACE\u003d\"eth2\""},{"line_number":98,"context_line":"    UBUNTU_INST_IP\u003d\"dhcp\""},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # NOTE: Specifying FLAT_NETWORK_BRIDGE is an error, as it will be guessed"},{"line_number":101,"context_line":"    # by the script from the network mapping, and passed to the OpenStack VM"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXp0%3D","line":98,"in_reply_to":"AAAAOn%2F%2FXwc%3D","updated":"2013-05-13 13:02:57.000000000","message":"What do you mean on \"just work\". The problem, is that \"just work\" is not an exact measure. It really depends on your network configuration. I agree, that we should settle with a default network config, and align the default values, so that they work in that environment, however, as previously mentioned, I would like to put that change to a different patch.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ba59be60f1869a6115fa35447e1a27f9fb612e2f","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # NOTE: Specifying FLAT_NETWORK_BRIDGE is an error, as it will be guessed"},{"line_number":101,"context_line":"    # by the script from the network mapping, and passed to the OpenStack VM"},{"line_number":102,"context_line":"    # as a kernel parameter"},{"line_number":103,"context_line":"    EOF"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"## Step 4: Run `./install_os_domU.sh` from the `tools/xen` directory"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FX8Y%3D","line":102,"updated":"2013-05-13 08:17:29.000000000","message":"I don\u0027t understand this comment - does it need to be part of the readme\u0027s localrc?","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # NOTE: Specifying FLAT_NETWORK_BRIDGE is an error, as it will be guessed"},{"line_number":101,"context_line":"    # by the script from the network mapping, and passed to the OpenStack VM"},{"line_number":102,"context_line":"    # as a kernel parameter"},{"line_number":103,"context_line":"    EOF"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"## Step 4: Run `./install_os_domU.sh` from the `tools/xen` directory"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXpo%3D","line":102,"in_reply_to":"AAAAOn%2F%2FX8Y%3D","updated":"2013-05-13 13:02:57.000000000","message":"Thi line says, that you should not put any value for FLAT_NETWORK_BRIDGE, as it is superceded by sepcifying the \"VM_BRIDGE_OR_NET_NAME\" variable. If you specify FLAT_NETWORK_BRIDGE with a different value, that value will be used to configure nova, instead of picking it up from the kernel parameters, thus, unless you specified exactly the same value, it won\u0027t work.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c370d56c60692d514ad77810dd0e2f258ff70099","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # NOTE: Specifying FLAT_NETWORK_BRIDGE is an error, as it will be guessed"},{"line_number":101,"context_line":"    # by the script from the network mapping, and passed to the OpenStack VM"},{"line_number":102,"context_line":"    # as a kernel parameter"},{"line_number":103,"context_line":"    EOF"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"## Step 4: Run `./install_os_domU.sh` from the `tools/xen` directory"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXwM%3D","line":102,"in_reply_to":"AAAAOn%2F%2FX8Y%3D","updated":"2013-05-13 11:19:59.000000000","message":"erm, sounds like there is a bug or something...","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    # NOTE: Specifying FLAT_NETWORK_BRIDGE is an error, as it will be guessed"},{"line_number":101,"context_line":"    # by the script from the network mapping, and passed to the OpenStack VM"},{"line_number":102,"context_line":"    # as a kernel parameter"},{"line_number":103,"context_line":"    EOF"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"## Step 4: Run `./install_os_domU.sh` from the `tools/xen` directory"}],"source_content_type":"text/x-gfm","patch_set":2,"id":"AAAAOn%2F%2FXpM%3D","line":102,"in_reply_to":"AAAAOn%2F%2FXwM%3D","updated":"2013-05-13 13:02:57.000000000","message":"See my reply to Bob.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"8da20c807e005e96e3b206088775f3046a10623c","unresolved":false,"context_lines":[{"line_number":88,"context_line":"    # services on. Usually eth2 (management network) or eth3 (public network) and"},{"line_number":89,"context_line":"    # not eth0 (private network with XenServer host) or eth1 (VM traffic network)"},{"line_number":90,"context_line":"    # The default is eth3."},{"line_number":91,"context_line":"    HOST_IP_IFACE\u003deth2"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    # Use DHCP server to configure the Management IP of OpenStack VM"},{"line_number":94,"context_line":"    MGT_IP\u003d\"dhcp\""}],"source_content_type":"text/x-gfm","patch_set":3,"id":"AAAAOn%2F%2FVCc%3D","line":91,"updated":"2013-05-14 15:07:59.000000000","message":"I think if you want to leave this as-is then we need to explain _why_ we recommend using eth2 rather than the default.  Perhaps \"The default is currently eth3 but eth2 works in more circumstances and the default is expected to change in future\"","commit_id":"2426473db181e21c025e455f5a2d6c2dc22aadc4"}],"tools/xen/functions":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ba59be60f1869a6115fa35447e1a27f9fb612e2f","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    ! xe network-list name-label\u003d\"$name_label\" --minimal | grep -q \",\""},{"line_number":82,"context_line":"}"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"function _network_exists() {"},{"line_number":85,"context_line":"    local name_label"},{"line_number":86,"context_line":"    name_label\u003d$1"},{"line_number":87,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FX8Q%3D","line":84,"updated":"2013-05-13 08:17:29.000000000","message":"Why not combine this with assert_no_multiple_networks_with_name to make unique_network_exists or something?  I\u0027d also like to see a suitable error message printed if multiple networks exist.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":81,"context_line":"    ! xe network-list name-label\u003d\"$name_label\" --minimal | grep -q \",\""},{"line_number":82,"context_line":"}"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"function _network_exists() {"},{"line_number":85,"context_line":"    local name_label"},{"line_number":86,"context_line":"    name_label\u003d$1"},{"line_number":87,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXoo%3D","line":84,"in_reply_to":"AAAAOn%2F%2FX8Q%3D","updated":"2013-05-13 13:02:57.000000000","message":"Keeping short functions, so that they are meaningful, reusable.\nnetwork_exists - speaks for itself\nassert_no_multiple_networks_with_name - speaks for itself.\ncombining the two, given the logic below would be something like:\n\nonly_one_network_exist_or_die_if_multiple_networks_exist_with_the_same_name\nand I doubt, that anyone ever would want to re-use that function.\n\nI think, what I will do:\ninstead of _assert_no_multiple_networks_with_name, I will use a _multiple_networks_with_name function, and print a sensible message, and terminate the script.\n\nBut, I think, leaving this as it is would be still valid, because, as soon as the script stops, and the user discovers, it failed at the function called:\n_assert_no_multiple_networks_with_name, it should be obvious, what went wrong.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c370d56c60692d514ad77810dd0e2f258ff70099","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    local bridge_or_net_name"},{"line_number":101,"context_line":"    bridge_or_net_name\u003d$1"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    if _bridge_does_not_exist \"$bridge_or_net_name\"; then"},{"line_number":104,"context_line":"        if _network_exists \"$bridge_or_net_name\"; then"},{"line_number":105,"context_line":"            _assert_no_multiple_networks_with_name \"$bridge_or_net_name\""},{"line_number":106,"context_line":"        else"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXvo%3D","line":103,"updated":"2013-05-13 11:19:59.000000000","message":"+1 for turning this positive","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ba59be60f1869a6115fa35447e1a27f9fb612e2f","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    local bridge_or_net_name"},{"line_number":101,"context_line":"    bridge_or_net_name\u003d$1"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    if _bridge_does_not_exist \"$bridge_or_net_name\"; then"},{"line_number":104,"context_line":"        if _network_exists \"$bridge_or_net_name\"; then"},{"line_number":105,"context_line":"            _assert_no_multiple_networks_with_name \"$bridge_or_net_name\""},{"line_number":106,"context_line":"        else"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FX8M%3D","line":103,"updated":"2013-05-13 08:17:29.000000000","message":"I\u0027d rather see this being a positive too to match \"_network_exists\"; but also this should check for bridge uniqueness too?","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    local bridge_or_net_name"},{"line_number":101,"context_line":"    bridge_or_net_name\u003d$1"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    if _bridge_does_not_exist \"$bridge_or_net_name\"; then"},{"line_number":104,"context_line":"        if _network_exists \"$bridge_or_net_name\"; then"},{"line_number":105,"context_line":"            _assert_no_multiple_networks_with_name \"$bridge_or_net_name\""},{"line_number":106,"context_line":"        else"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXoM%3D","line":103,"in_reply_to":"AAAAOn%2F%2FX8M%3D","updated":"2013-05-13 13:02:57.000000000","message":"So it would mean _bridge_exists ending up with:\n! [ -z $(xe network-list bridge\u003d\"$bridge\" --minimal) ]\n\nand this function look like:\nif bridge_exist...; then\n  do nothing\nelse\n  do something\nfi\n\nOR\n\nif ! bridge_exists... ; then\n  do something\nfi\n\nSo I am not seeing this as a really serious issue, and I have already considered your suggestion, while I wrote this code, so that\u0027s how I ended up with _bridge_does_not_exist - It simply reads better than ! bridge_exists ...","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    local bridge_or_net_name"},{"line_number":101,"context_line":"    bridge_or_net_name\u003d$1"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"    if _bridge_does_not_exist \"$bridge_or_net_name\"; then"},{"line_number":104,"context_line":"        if _network_exists \"$bridge_or_net_name\"; then"},{"line_number":105,"context_line":"            _assert_no_multiple_networks_with_name \"$bridge_or_net_name\""},{"line_number":106,"context_line":"        else"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXoE%3D","line":103,"in_reply_to":"AAAAOn%2F%2FXvo%3D","updated":"2013-05-13 13:02:57.000000000","message":"See my answer to Bob.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ba59be60f1869a6115fa35447e1a27f9fb612e2f","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    local bridge_or_net_name"},{"line_number":125,"context_line":"    bridge_or_net_name\u003d$1"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    ifconfig $(bridge_for \"$bridge_or_net_name\") | grep \"inet addr\" | cut -d \":\" -f2 | sed \"s/ .*//\""},{"line_number":128,"context_line":"}"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"function assert_xenapi_is_listening_on() {"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FX8I%3D","line":127,"updated":"2013-05-13 08:17:29.000000000","message":"If we\u0027re forcing a test to see what we\u0027re listening on, then we can can either automatically identify the host IP by default, or we can connect to the default host addr and ask XAPI what it thinks the management IP should be","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    local bridge_or_net_name"},{"line_number":125,"context_line":"    bridge_or_net_name\u003d$1"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"    ifconfig $(bridge_for \"$bridge_or_net_name\") | grep \"inet addr\" | cut -d \":\" -f2 | sed \"s/ .*//\""},{"line_number":128,"context_line":"}"},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"function assert_xenapi_is_listening_on() {"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXn0%3D","line":127,"in_reply_to":"AAAAOn%2F%2FX8I%3D","updated":"2013-05-13 13:02:57.000000000","message":"That is true, and we can do that, however, I think, that should be a different change. The detected xenapi address needs to be passed to the OpenStack VM via a kernel parameter, and devstack also needs to be modified to use the kernel parameter, just like it does with FLAT_NETWORK_BRIDGE.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"}],"tools/xen/install_os_domU.sh":[{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ba59be60f1869a6115fa35447e1a27f9fb612e2f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"setup_network \"$MGT_BRIDGE_OR_NET_NAME\""},{"line_number":72,"context_line":"setup_network \"$PUB_BRIDGE_OR_NET_NAME\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"assert_parameter_is_not_specified \"FLAT_NETWORK_BRIDGE\""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"assert_xenapi_is_listening_on \"$MGT_BRIDGE_OR_NET_NAME\""},{"line_number":77,"context_line":"HOST_IP\u003d$(xenapi_ip_on \"$MGT_BRIDGE_OR_NET_NAME\")"}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAOn%2F%2FX8E%3D","line":74,"updated":"2013-05-13 08:17:29.000000000","message":"Need to have a comment here - at least in addition to, if not rather than, the readme.md file - about why FLAT_NETWORK_BRIDGE must not be specified.\n\nA better alternative would be to make the assert print out the reason why it\u0027s not allowed.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"setup_network \"$MGT_BRIDGE_OR_NET_NAME\""},{"line_number":72,"context_line":"setup_network \"$PUB_BRIDGE_OR_NET_NAME\""},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"assert_parameter_is_not_specified \"FLAT_NETWORK_BRIDGE\""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"assert_xenapi_is_listening_on \"$MGT_BRIDGE_OR_NET_NAME\""},{"line_number":77,"context_line":"HOST_IP\u003d$(xenapi_ip_on \"$MGT_BRIDGE_OR_NET_NAME\")"}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAOn%2F%2FXnc%3D","line":74,"in_reply_to":"AAAAOn%2F%2FX8E%3D","updated":"2013-05-13 13:02:57.000000000","message":"My initial thought was the same with all the asserts - if the script fails, user can see, that it failed at the line assert_parameter_is_not_specified blahblah, so that it would be easy to extract the source of the problem. Anyhow, It is not a big thing, so I think I can use another approach as you suggested, and move to an if then die pattern, instead of an assert pattern.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c370d56c60692d514ad77810dd0e2f258ff70099","unresolved":false,"context_lines":[{"line_number":179,"context_line":""},{"line_number":180,"context_line":"    # create a new VM with the given template"},{"line_number":181,"context_line":"    # creating the correct VIFs and metadata"},{"line_number":182,"context_line":"    FLAT_NETWORK_BRIDGE\u003d$(bridge_for \"$VM_BRIDGE_OR_NET_NAME\")"},{"line_number":183,"context_line":"    $THIS_DIR/scripts/install-os-vpx.sh \\"},{"line_number":184,"context_line":"        -t \"$UBUNTU_INST_TEMPLATE_NAME\" \\"},{"line_number":185,"context_line":"        -v \"$VM_BRIDGE_OR_NET_NAME\" \\"}],"source_content_type":"text/x-sh","patch_set":2,"id":"AAAAOn%2F%2FXv8%3D","line":182,"updated":"2013-05-13 11:19:59.000000000","message":"Erm, not sure your comments make sense here. why is this not just a local variable, rather than all that asserting?","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"8da20c807e005e96e3b206088775f3046a10623c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"if parameter_is_specified \"FLAT_NETWORK_BRIDGE\"; then"},{"line_number":75,"context_line":"    cat \u003e\u00262 \u003c\u003c EOF"},{"line_number":76,"context_line":"ERROR: FLAT_NETWORK_BRIDGE is specified in localrc file"},{"line_number":77,"context_line":"This is considered as an error, as its value will be derived from the "},{"line_number":78,"context_line":"VM_BRIDGE_OR_NET_NAME variable\u0027s value."},{"line_number":79,"context_line":"EOF"},{"line_number":80,"context_line":"    exit 1"}],"source_content_type":"text/x-sh","patch_set":3,"id":"AAAAOn%2F%2FVAE%3D","line":77,"updated":"2013-05-14 15:07:59.000000000","message":"White space trailing at the end of the line!","commit_id":"2426473db181e21c025e455f5a2d6c2dc22aadc4"}],"tools/xen/xenrc":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c76f6360be07692e5ac7153a91bc44cd31bb8ab7","unresolved":false,"context_lines":[{"line_number":17,"context_line":"OSDOMU_VDI_GB\u003d8"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"# Network mapping"},{"line_number":20,"context_line":"MGT_NET_NAME\u003d\"Pool-wide network associated with eth0\""},{"line_number":21,"context_line":"VM_NET_NAME\u003d\"OpenStack VM Network\""},{"line_number":22,"context_line":"PUB_NET_NAME\u003d\"OpenStack Public Network\""},{"line_number":23,"context_line":""}],"source_content_type":"application/x-shellscript","patch_set":1,"id":"AAAAOn%2F%2FalA%3D","line":20,"updated":"2013-05-10 10:20:30.000000000","message":"I would consider _BRIDGE_OR_NAME\n\nThen you can have:\n\"xenbr0\", \"Data Network\", \"External Network\"\n\nNote, this is what quantum call them:\nhttp://docs.openstack.org/trunk/openstack-network/admin/content/connectivity.html","commit_id":"954f3faa5c28b573e2ec1890f5b1224bc4963f74"},{"author":{"_account_id":6735,"name":"Bob Ball","email":"bob.ball@citrix.com","username":"bob-ball"},"change_message_id":"ba59be60f1869a6115fa35447e1a27f9fb612e2f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# The management network is specified by the bridge name. xenbr0 is usually"},{"line_number":24,"context_line":"# the name of the bridge of the network associated with the hypervisor\u0027s eth0."},{"line_number":25,"context_line":"MGT_BRIDGE_OR_NET_NAME\u003d\"xenbr0\""},{"line_number":26,"context_line":"VM_BRIDGE_OR_NET_NAME\u003d\"OpenStack VM Network\""},{"line_number":27,"context_line":"PUB_BRIDGE_OR_NET_NAME\u003d\"OpenStack Public Network\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# VM Password"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FX8o%3D","line":26,"updated":"2013-05-13 08:17:29.000000000","message":"I think these names are a bit too long?","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# The management network is specified by the bridge name. xenbr0 is usually"},{"line_number":24,"context_line":"# the name of the bridge of the network associated with the hypervisor\u0027s eth0."},{"line_number":25,"context_line":"MGT_BRIDGE_OR_NET_NAME\u003d\"xenbr0\""},{"line_number":26,"context_line":"VM_BRIDGE_OR_NET_NAME\u003d\"OpenStack VM Network\""},{"line_number":27,"context_line":"PUB_BRIDGE_OR_NET_NAME\u003d\"OpenStack Public Network\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# VM Password"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXmk%3D","line":26,"in_reply_to":"AAAAOn%2F%2FX8o%3D","updated":"2013-05-13 13:02:57.000000000","message":"These variables could be used to detect a bridge or a network. The ability to specify bridge names was requested by JohnG previously, so that if someone is using a localised version of XenServer, he could still use the \"xenbr0\" setting to refer to eth0 \u0027s network. I can\u0027t come up with any better name for them. Any suggestions?","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c370d56c60692d514ad77810dd0e2f258ff70099","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# The management network is specified by the bridge name. xenbr0 is usually"},{"line_number":24,"context_line":"# the name of the bridge of the network associated with the hypervisor\u0027s eth0."},{"line_number":25,"context_line":"MGT_BRIDGE_OR_NET_NAME\u003d\"xenbr0\""},{"line_number":26,"context_line":"VM_BRIDGE_OR_NET_NAME\u003d\"OpenStack VM Network\""},{"line_number":27,"context_line":"PUB_BRIDGE_OR_NET_NAME\u003d\"OpenStack Public Network\""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"# VM Password"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXvg%3D","line":26,"in_reply_to":"AAAAOn%2F%2FX8o%3D","updated":"2013-05-13 11:19:59.000000000","message":"They are long, but I like how they are explicit.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c370d56c60692d514ad77810dd0e2f258ff70099","unresolved":false,"context_lines":[{"line_number":32,"context_line":"# Host Interface, i.e. the interface on the nova vm you want to expose the"},{"line_number":33,"context_line":"# services on. Usually eth2 (management network) or eth3 (public network) and"},{"line_number":34,"context_line":"# not eth0 (private network with XenServer host) or eth1 (VM traffic network)"},{"line_number":35,"context_line":"HOST_IP_IFACE\u003d${HOST_IP_IFACE:-eth3}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"#"},{"line_number":38,"context_line":"# Our nova host\u0027s network info"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXvc%3D","line":35,"updated":"2013-05-13 11:19:59.000000000","message":"Lets just change defaults here, rather than changing stuff in the readme?","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":32,"context_line":"# Host Interface, i.e. the interface on the nova vm you want to expose the"},{"line_number":33,"context_line":"# services on. Usually eth2 (management network) or eth3 (public network) and"},{"line_number":34,"context_line":"# not eth0 (private network with XenServer host) or eth1 (VM traffic network)"},{"line_number":35,"context_line":"HOST_IP_IFACE\u003d${HOST_IP_IFACE:-eth3}"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"#"},{"line_number":38,"context_line":"# Our nova host\u0027s network info"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXmU%3D","line":35,"in_reply_to":"AAAAOn%2F%2FXvc%3D","updated":"2013-05-13 13:02:57.000000000","message":"I would like to have that as a separate change.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"c370d56c60692d514ad77810dd0e2f258ff70099","unresolved":false,"context_lines":[{"line_number":58,"context_line":"# Ubuntu install settings"},{"line_number":59,"context_line":"UBUNTU_INST_RELEASE\u003d\"oneiric\""},{"line_number":60,"context_line":"UBUNTU_INST_TEMPLATE_NAME\u003d\"Ubuntu 11.10 (64-bit) for DevStack\""},{"line_number":61,"context_line":"# For 12.04 use \"precise\" and update template name"},{"line_number":62,"context_line":"# However, for 12.04, you should be using"},{"line_number":63,"context_line":"# XenServer 6.1 and later or XCP 1.6 or later"},{"line_number":64,"context_line":"# 11.10 is only really supported with XenServer 6.0.2 and later"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXvY%3D","line":61,"updated":"2013-05-13 11:19:59.000000000","message":"we should move to precise now... given we know oneiric fails...","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"},{"author":{"_account_id":5044,"name":"Mate Lakat","email":"mlakat@suse.com","username":"mate-lakat"},"change_message_id":"64752e8b2e1afead52d18387b64a6c9d1b17c9e6","unresolved":false,"context_lines":[{"line_number":58,"context_line":"# Ubuntu install settings"},{"line_number":59,"context_line":"UBUNTU_INST_RELEASE\u003d\"oneiric\""},{"line_number":60,"context_line":"UBUNTU_INST_TEMPLATE_NAME\u003d\"Ubuntu 11.10 (64-bit) for DevStack\""},{"line_number":61,"context_line":"# For 12.04 use \"precise\" and update template name"},{"line_number":62,"context_line":"# However, for 12.04, you should be using"},{"line_number":63,"context_line":"# XenServer 6.1 and later or XCP 1.6 or later"},{"line_number":64,"context_line":"# 11.10 is only really supported with XenServer 6.0.2 and later"}],"source_content_type":"application/x-shellscript","patch_set":2,"id":"AAAAOn%2F%2FXmQ%3D","line":61,"in_reply_to":"AAAAOn%2F%2FXvY%3D","updated":"2013-05-13 13:02:57.000000000","message":"That is a good point.","commit_id":"4f8ec3d841130da510bb51b2ba0ab5deeab0573f"}]}
