)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"30860fa0abb37879a99dd223bde464ffbd1182b2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jan Klare \u003cj.klare@x-ion.de\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-04-24 10:18:02 +0200"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"refactore libraries/network.rb"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"- splitted the address_for method into address_for and get_address"},{"line_number":10,"context_line":"- added the option to search for an address from another node"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bab921fb_39a256af","line":7,"updated":"2015-04-24 08:55:28.000000000","message":"refactor, not refactore. :)","commit_id":"93fab99de57f85306f487fa9f4ba8cd3930549ac"}],"libraries/network.rb":[{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"30860fa0abb37879a99dd223bde464ffbd1182b2","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    address \u003d interface.find do |addr, data|"},{"line_number":31,"context_line":"      if drop_vips"},{"line_number":32,"context_line":"        # drop the virtual ips with mask 32 and return only the real one"},{"line_number":33,"context_line":"        return addr if data[\u0027family\u0027] \u003d\u003d family \u0026\u0026 data[\u0027prefixlen\u0027] !\u003d \u002732\u0027"},{"line_number":34,"context_line":"      else"},{"line_number":35,"context_line":"        return addr if data[\u0027family\u0027] \u003d\u003d family"},{"line_number":36,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"bab921fb_192f92f7","line":33,"updated":"2015-04-24 08:55:28.000000000","message":"I am not sure is it ok. I think the VIP\u0027s prefixlen also can be 32.","commit_id":"93fab99de57f85306f487fa9f4ba8cd3930549ac"},{"author":{"_account_id":11915,"name":"Jan Klare","email":"klare@osism.tech","username":"jklare"},"change_message_id":"ef0bb917f52093fd89d62353b9c5820e974b6283","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    address \u003d interface.find do |addr, data|"},{"line_number":31,"context_line":"      if drop_vips"},{"line_number":32,"context_line":"        # drop the virtual ips with mask 32 and return only the real one"},{"line_number":33,"context_line":"        return addr if data[\u0027family\u0027] \u003d\u003d family \u0026\u0026 data[\u0027prefixlen\u0027] !\u003d \u002732\u0027"},{"line_number":34,"context_line":"      else"},{"line_number":35,"context_line":"        return addr if data[\u0027family\u0027] \u003d\u003d family"},{"line_number":36,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"bab921fb_f2f3d308","line":33,"in_reply_to":"bab921fb_192f92f7","updated":"2015-04-24 09:58:44.000000000","message":"i think vip prefixlen is always 32","commit_id":"93fab99de57f85306f487fa9f4ba8cd3930549ac"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"af42df0f80f298173be45ab319e64affdefd38cf","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"  def get_address(interface, family, drop_vips)"},{"line_number":30,"context_line":"    address \u003d interface.find do |addr, data|"},{"line_number":31,"context_line":"      if drop_vips"},{"line_number":32,"context_line":"        # drop the virtual ips with mask 32 and return only the real one"},{"line_number":33,"context_line":"        return addr if data[\u0027family\u0027] \u003d\u003d family \u0026\u0026 data[\u0027prefixlen\u0027] !\u003d \u002732\u0027"},{"line_number":34,"context_line":"      else"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_a5268114","line":31,"updated":"2015-04-29 19:06:59.000000000","message":"New spec for this support?","commit_id":"63913d70664b2d39d811a6142b384fb42f7afb1b"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"af42df0f80f298173be45ab319e64affdefd38cf","unresolved":false,"context_lines":[{"line_number":30,"context_line":"    address \u003d interface.find do |addr, data|"},{"line_number":31,"context_line":"      if drop_vips"},{"line_number":32,"context_line":"        # drop the virtual ips with mask 32 and return only the real one"},{"line_number":33,"context_line":"        return addr if data[\u0027family\u0027] \u003d\u003d family \u0026\u0026 data[\u0027prefixlen\u0027] !\u003d \u002732\u0027"},{"line_number":34,"context_line":"      else"},{"line_number":35,"context_line":"        return addr if data[\u0027family\u0027] \u003d\u003d family"},{"line_number":36,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_e50b597c","line":33,"updated":"2015-04-29 19:06:59.000000000","message":"New/updated spec for this check?","commit_id":"63913d70664b2d39d811a6142b384fb42f7afb1b"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"af42df0f80f298173be45ab319e64affdefd38cf","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    fail \"Interface #{interface} has no address for family #{family}\" if address.nil?"},{"line_number":39,"context_line":"  end"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"  def address_for(interface, family \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027family\u0027], nodeish \u003d node, drop_vips \u003d true)"},{"line_number":42,"context_line":"    Chef::Log.debug(\"address_for(#{interface}, #{family}, #{nodeish})\")"},{"line_number":43,"context_line":"    return \u00270.0.0.0\u0027 if interface \u003d\u003d \u0027all\u0027"},{"line_number":44,"context_line":"    interface_node \u003d nodeish[\u0027network\u0027][\u0027interfaces\u0027][interface][\u0027addresses\u0027]"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_654989d0","line":41,"updated":"2015-04-29 19:06:59.000000000","message":"Maybe some method description comments like above, especially with the new parameters.","commit_id":"63913d70664b2d39d811a6142b384fb42f7afb1b"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"af42df0f80f298173be45ab319e64affdefd38cf","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"  def address_for(interface, family \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027family\u0027], nodeish \u003d node, drop_vips \u003d true)"},{"line_number":42,"context_line":"    Chef::Log.debug(\"address_for(#{interface}, #{family}, #{nodeish})\")"},{"line_number":43,"context_line":"    return \u00270.0.0.0\u0027 if interface \u003d\u003d \u0027all\u0027"},{"line_number":44,"context_line":"    interface_node \u003d nodeish[\u0027network\u0027][\u0027interfaces\u0027][interface][\u0027addresses\u0027]"},{"line_number":45,"context_line":"    fail \"Interface #{interface} has no addresses assigned\" if interface_node.to_a.empty?"},{"line_number":46,"context_line":"    get_address(interface_node, family, drop_vips)"}],"source_content_type":"text/x-ruby","patch_set":3,"id":"3acd31a7_652069f8","line":43,"updated":"2015-04-29 19:06:59.000000000","message":"Would be nice to see a spec test for this new functionaly","commit_id":"63913d70664b2d39d811a6142b384fb42f7afb1b"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"61af4abd345f244d9ce03e8e8392b9ff5a9fb495","unresolved":false,"context_lines":[{"line_number":25,"context_line":"  # @param [String] interface The interface to query."},{"line_number":26,"context_line":"  # @param [String] family The protocol family to use."},{"line_number":27,"context_line":"  # @param [Mash] nodeish The node object to query."},{"line_number":28,"context_line":"  # @param [Boolean] drop_vips Option to exclude virtual ips with netmask 32."},{"line_number":29,"context_line":"  # @return [String] The address or log error when address is nil"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"  def address_for(interface, family \u003d node[\u0027openstack\u0027][\u0027endpoints\u0027][\u0027family\u0027], nodeish \u003d node, drop_vips \u003d true)"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"3acd31a7_f2002103","line":28,"updated":"2015-05-06 13:06:38.000000000","message":"A nit, but this is now 32 or 128 depending upon the address family, right?","commit_id":"d5ea744d5efdd1d90564ab68b2ed027db83f0d4d"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"61af4abd345f244d9ce03e8e8392b9ff5a9fb495","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"  private"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  def get_address_inet(interface, drop_vips)"},{"line_number":48,"context_line":"    address \u003d interface.find do |addr, data|"},{"line_number":49,"context_line":"      return addr if data[\u0027family\u0027] \u003d\u003d \u0027inet\u0027 \u0026\u0026 (data[\u0027prefixlen\u0027] !\u003d \u002732\u0027 || !drop_vips)"},{"line_number":50,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":7,"id":"3acd31a7_f22701b4","line":47,"updated":"2015-05-06 13:06:38.000000000","message":"a nit, would it be more clear to use plural here?  as interface represent all the addresses available.","commit_id":"d5ea744d5efdd1d90564ab68b2ed027db83f0d4d"}]}
