)]}'
{"lib/puppet/provider/keystone.rb":[{"author":{"_account_id":10540,"name":"Clayton O\u0027Neill","email":"clayton.oneill@charter.com","username":"coneill"},"change_message_id":"df264b2e6e158513a872adeaedf53032ef32d815","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    self.class.get_admin_token"},{"line_number":100,"context_line":"  end"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  def self.get_api_version_for_url"},{"line_number":103,"context_line":"    \"v2.0\"  # or \"v3\""},{"line_number":104,"context_line":"  end"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":1,"id":"5aa745d1_e0ce9359","line":102,"updated":"2015-04-16 17:08:33.000000000","message":"Should put some of the commit message explanation here as a comment.","commit_id":"a30e20f12d83a5bea88f0bd7f4ee82b8ebddfb94"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"1aac07e93f3b1d56cb49582c8a2898875aded625","unresolved":false,"context_lines":[{"line_number":99,"context_line":"    self.class.get_admin_token"},{"line_number":100,"context_line":"  end"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"  def self.get_api_version_for_url"},{"line_number":103,"context_line":"    \"v2.0\"  # or \"v3\""},{"line_number":104,"context_line":"  end"},{"line_number":105,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":1,"id":"3ab451fb_4558e056","line":102,"in_reply_to":"5aa745d1_e0ce9359","updated":"2015-04-16 21:55:30.000000000","message":"Done","commit_id":"a30e20f12d83a5bea88f0bd7f4ee82b8ebddfb94"},{"author":{"_account_id":10540,"name":"Clayton O\u0027Neill","email":"clayton.oneill@charter.com","username":"coneill"},"change_message_id":"df264b2e6e158513a872adeaedf53032ef32d815","unresolved":false,"context_lines":[{"line_number":210,"context_line":"    return @domain_file if @domain_file"},{"line_number":211,"context_line":"    @domain_file \u003d Puppet::Util::IniConfig::File.new"},{"line_number":212,"context_line":"    @domain_file.read(\u0027/tmp/.domain\u0027)"},{"line_number":213,"context_line":"    @domain_file"},{"line_number":214,"context_line":"  end"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"  def domain_file"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"5aa745d1_00785fc3","line":213,"updated":"2015-04-16 17:08:33.000000000","message":"I\u0027m concerned that this may have security implications.  I\u0027d prefer to see it use the value of an environment variable instead of having a hard coded filename with no ownership checks.","commit_id":"a30e20f12d83a5bea88f0bd7f4ee82b8ebddfb94"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"1aac07e93f3b1d56cb49582c8a2898875aded625","unresolved":false,"context_lines":[{"line_number":210,"context_line":"    return @domain_file if @domain_file"},{"line_number":211,"context_line":"    @domain_file \u003d Puppet::Util::IniConfig::File.new"},{"line_number":212,"context_line":"    @domain_file.read(\u0027/tmp/.domain\u0027)"},{"line_number":213,"context_line":"    @domain_file"},{"line_number":214,"context_line":"  end"},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"  def domain_file"}],"source_content_type":"text/x-ruby","patch_set":1,"id":"3ab451fb_2555d41c","line":213,"in_reply_to":"5aa745d1_00785fc3","updated":"2015-04-16 21:55:30.000000000","message":"Done","commit_id":"a30e20f12d83a5bea88f0bd7f4ee82b8ebddfb94"}],"lib/puppet/provider/keystone_domain/openstack.rb":[{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"8fd95f62fbc65ef287f467568be2f2d728f82192","unresolved":false,"context_lines":[{"line_number":1,"context_line":"require \u0027json\u0027"},{"line_number":2,"context_line":"require \u0027puppet/util/inifile\u0027"},{"line_number":3,"context_line":"require \u0027puppet/provider/keystone\u0027"},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"Puppet::Type.type(:keystone_domain).provide("}],"source_content_type":"text/x-ruby","patch_set":20,"id":"3afb71cf_d08249c8","line":2,"updated":"2015-06-05 05:51:43.000000000","message":"Can this be alphabetically ordered?","commit_id":"c45af4991d333527105196d1abfbe6d5a51c9c42"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"8fd95f62fbc65ef287f467568be2f2d728f82192","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  def destroy"},{"line_number":44,"context_line":"    # have to disable first - Keystone does not allow you to delete an"},{"line_number":45,"context_line":"    # enabled domain"},{"line_number":46,"context_line":"    self.class.request(\u0027domain\u0027, \u0027set\u0027, [resource[:name], \u0027--disable\u0027])"},{"line_number":47,"context_line":"    self.class.request(\u0027domain\u0027, \u0027delete\u0027, resource[:name])"},{"line_number":48,"context_line":"    @property_hash.clear"},{"line_number":49,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"3afb71cf_f03545f7","line":46,"updated":"2015-06-05 05:51:43.000000000","message":"Inconsistent third parameter casting compared with following line","commit_id":"c45af4991d333527105196d1abfbe6d5a51c9c42"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"a4239761afeda620b2506760058ab00aade0803c","unresolved":false,"context_lines":[{"line_number":43,"context_line":"  def destroy"},{"line_number":44,"context_line":"    # have to disable first - Keystone does not allow you to delete an"},{"line_number":45,"context_line":"    # enabled domain"},{"line_number":46,"context_line":"    self.class.request(\u0027domain\u0027, \u0027set\u0027, [resource[:name], \u0027--disable\u0027])"},{"line_number":47,"context_line":"    self.class.request(\u0027domain\u0027, \u0027delete\u0027, resource[:name])"},{"line_number":48,"context_line":"    @property_hash.clear"},{"line_number":49,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"3afb71cf_36187684","line":46,"in_reply_to":"3afb71cf_f03545f7","updated":"2015-06-05 06:09:32.000000000","message":"Sorry, my bad, that\u0027s fine, never mind","commit_id":"c45af4991d333527105196d1abfbe6d5a51c9c42"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"8fd95f62fbc65ef287f467568be2f2d728f82192","unresolved":false,"context_lines":[{"line_number":77,"context_line":"  end"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":"  def policy_file"},{"line_number":80,"context_line":"    \u0027/etc/keystone/policy.json\u0027"},{"line_number":81,"context_line":"  end"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"  def ensure_admin_default"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"3afb71cf_304bddb2","line":80,"updated":"2015-06-05 05:51:43.000000000","message":"Hard coded value: wouldn\u0027t be preferable to refer to a constant defined on top of the file?","commit_id":"c45af4991d333527105196d1abfbe6d5a51c9c42"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"8fd95f62fbc65ef287f467568be2f2d728f82192","unresolved":false,"context_lines":[{"line_number":90,"context_line":"      end"},{"line_number":91,"context_line":"    end"},{"line_number":92,"context_line":"    if is_admin"},{"line_number":93,"context_line":"      pol_hash \u003d JSON.parse(File.open(policy_file, \u0027r\u0027).read())"},{"line_number":94,"context_line":"      pol_val \u003d \"is_admin:1 or (rule:admin_required and domain_id:#{id})\""},{"line_number":95,"context_line":"      if pol_hash[\u0027cloud_admin\u0027] !\u003d pol_val"},{"line_number":96,"context_line":"        pol_hash[\u0027cloud_admin\u0027] \u003d pol_val"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"3afb71cf_d0b5a97e","line":93,"updated":"2015-06-05 05:51:43.000000000","message":"It\u0027s a small thing but variable type doesn\u0027t have to be described in name.\nMaybe \u0027policy\u0027?","commit_id":"c45af4991d333527105196d1abfbe6d5a51c9c42"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"8fd95f62fbc65ef287f467568be2f2d728f82192","unresolved":false,"context_lines":[{"line_number":125,"context_line":""},{"line_number":126,"context_line":"  def flush"},{"line_number":127,"context_line":"    options \u003d []"},{"line_number":128,"context_line":"    if @property_flush"},{"line_number":129,"context_line":"      (options \u003c\u003c \u0027--enable\u0027) if @property_flush[:enabled] \u003d\u003d :true"},{"line_number":130,"context_line":"      (options \u003c\u003c \u0027--disable\u0027) if @property_flush[:enabled] \u003d\u003d :false"},{"line_number":131,"context_line":"      # There is a --description flag for the set command, but it does not work if the value is empty"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"3afb71cf_16657a44","line":128,"updated":"2015-06-05 05:51:43.000000000","message":"Also needs to check @property_flush is empty \nto avoid triggering when deleting","commit_id":"c45af4991d333527105196d1abfbe6d5a51c9c42"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"8fd95f62fbc65ef287f467568be2f2d728f82192","unresolved":false,"context_lines":[{"line_number":126,"context_line":"  def flush"},{"line_number":127,"context_line":"    options \u003d []"},{"line_number":128,"context_line":"    if @property_flush"},{"line_number":129,"context_line":"      (options \u003c\u003c \u0027--enable\u0027) if @property_flush[:enabled] \u003d\u003d :true"},{"line_number":130,"context_line":"      (options \u003c\u003c \u0027--disable\u0027) if @property_flush[:enabled] \u003d\u003d :false"},{"line_number":131,"context_line":"      # There is a --description flag for the set command, but it does not work if the value is empty"},{"line_number":132,"context_line":"      (options \u003c\u003c \u0027--property\u0027 \u003c\u003c \"description\u003d#{resource[:description]}\") if @property_flush[:description]"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"3afb71cf_30e2bda0","line":129,"updated":"2015-06-05 05:51:43.000000000","message":"I know it\u0027s legacy but those parenthesis are not needed it, maybe a good opportunity to remove them.","commit_id":"c45af4991d333527105196d1abfbe6d5a51c9c42"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"8fd95f62fbc65ef287f467568be2f2d728f82192","unresolved":false,"context_lines":[{"line_number":129,"context_line":"      (options \u003c\u003c \u0027--enable\u0027) if @property_flush[:enabled] \u003d\u003d :true"},{"line_number":130,"context_line":"      (options \u003c\u003c \u0027--disable\u0027) if @property_flush[:enabled] \u003d\u003d :false"},{"line_number":131,"context_line":"      # There is a --description flag for the set command, but it does not work if the value is empty"},{"line_number":132,"context_line":"      (options \u003c\u003c \u0027--property\u0027 \u003c\u003c \"description\u003d#{resource[:description]}\") if @property_flush[:description]"},{"line_number":133,"context_line":"      request(\u0027domain\u0027, \u0027set\u0027, [resource[:name], options]) unless options.empty?"},{"line_number":134,"context_line":"      @property_flush.clear"},{"line_number":135,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"3afb71cf_b6c46692","line":132,"updated":"2015-06-05 05:51:43.000000000","message":"Seems like --property shouldn\u0027t be there.","commit_id":"c45af4991d333527105196d1abfbe6d5a51c9c42"},{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"8fd95f62fbc65ef287f467568be2f2d728f82192","unresolved":false,"context_lines":[{"line_number":130,"context_line":"      (options \u003c\u003c \u0027--disable\u0027) if @property_flush[:enabled] \u003d\u003d :false"},{"line_number":131,"context_line":"      # There is a --description flag for the set command, but it does not work if the value is empty"},{"line_number":132,"context_line":"      (options \u003c\u003c \u0027--property\u0027 \u003c\u003c \"description\u003d#{resource[:description]}\") if @property_flush[:description]"},{"line_number":133,"context_line":"      request(\u0027domain\u0027, \u0027set\u0027, [resource[:name], options]) unless options.empty?"},{"line_number":134,"context_line":"      @property_flush.clear"},{"line_number":135,"context_line":"    end"},{"line_number":136,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":20,"id":"3afb71cf_70095531","line":133,"updated":"2015-06-05 05:51:43.000000000","message":"Must call request method from superclass.     \n3rd parameter has wrong casting.   \nThis actually breaks","commit_id":"c45af4991d333527105196d1abfbe6d5a51c9c42"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"00ac843929557c251668dc23a131005da1fd7ac2","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  def exists?"},{"line_number":38,"context_line":"    rv \u003d @property_hash[:ensure] \u003d\u003d :present"},{"line_number":39,"context_line":"    if rv"},{"line_number":40,"context_line":"      ensure_admin_default"},{"line_number":41,"context_line":"    end"},{"line_number":42,"context_line":"    rv"},{"line_number":43,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":25,"id":"fa32b979_62a3b69f","line":40,"updated":"2015-06-12 23:01:39.000000000","message":"This does not belong here. Making changes should happen in the create method or in one of the setters or the flush method.\n\nThe side effect of having this here is that if I make changes outside the puppet run, like create a different admin domain, puppet silently changes the policy.json on its next run.","commit_id":"39031bb117244acbd4bfad06b48329df2226e2e1"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"61aca2b56f8def1eeb34955e9ef6b8d3ec9cc294","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  def exists?"},{"line_number":38,"context_line":"    rv \u003d @property_hash[:ensure] \u003d\u003d :present"},{"line_number":39,"context_line":"    if rv"},{"line_number":40,"context_line":"      ensure_admin_default"},{"line_number":41,"context_line":"    end"},{"line_number":42,"context_line":"    rv"},{"line_number":43,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":25,"id":"fa32b979_c8b75183","line":40,"in_reply_to":"fa32b979_62a3b69f","updated":"2015-06-18 22:54:17.000000000","message":"Done","commit_id":"39031bb117244acbd4bfad06b48329df2226e2e1"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"00ac843929557c251668dc23a131005da1fd7ac2","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    POLICY_FILE"},{"line_number":83,"context_line":"  end"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  def ensure_admin_default"},{"line_number":86,"context_line":"    if is_default"},{"line_number":87,"context_line":"      cfg_file \u003d Puppet::Util::IniConfig::File.new"},{"line_number":88,"context_line":"      cfg_file.read(self.class.ini_filename)"}],"source_content_type":"text/x-ruby","patch_set":25,"id":"fa32b979_22adae88","line":85,"updated":"2015-06-12 23:01:39.000000000","message":"This should really be two methods, ensure_admin and ensure_default. It\u0027s accomplishing two distinct actions.","commit_id":"39031bb117244acbd4bfad06b48329df2226e2e1"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"61aca2b56f8def1eeb34955e9ef6b8d3ec9cc294","unresolved":false,"context_lines":[{"line_number":82,"context_line":"    POLICY_FILE"},{"line_number":83,"context_line":"  end"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"  def ensure_admin_default"},{"line_number":86,"context_line":"    if is_default"},{"line_number":87,"context_line":"      cfg_file \u003d Puppet::Util::IniConfig::File.new"},{"line_number":88,"context_line":"      cfg_file.read(self.class.ini_filename)"}],"source_content_type":"text/x-ruby","patch_set":25,"id":"fa32b979_68b3a598","line":85,"in_reply_to":"fa32b979_22adae88","updated":"2015-06-18 22:54:17.000000000","message":"Done","commit_id":"39031bb117244acbd4bfad06b48329df2226e2e1"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"fa44db4723845e45adb92554535cf32804aa7d84","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        changed \u003d true"},{"line_number":84,"context_line":"      end"},{"line_number":85,"context_line":"    else # not default or ensure absent"},{"line_number":86,"context_line":"      if curid \u003d\u003d id"},{"line_number":87,"context_line":"        # can\u0027t delete from inifile, so just reset to default \u0027default\u0027"},{"line_number":88,"context_line":"        cfg_file[\u0027identity\u0027][\u0027default_domain_id\u0027] \u003d \u0027default\u0027"},{"line_number":89,"context_line":"        changed \u003d true"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"fa32b979_8a2f333e","line":86,"updated":"2015-06-18 00:38:18.000000000","message":"I think this should be !\u003d. I\u0027m seeing the id remain the same in keystone.conf after ensuring absent.","commit_id":"436a404071018b6402b3e9f446557addf641d9bb"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"e812eeef512b26ce9591bf84b1ab422556c9c37e","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        changed \u003d true"},{"line_number":84,"context_line":"      end"},{"line_number":85,"context_line":"    else # not default or ensure absent"},{"line_number":86,"context_line":"      if curid \u003d\u003d id"},{"line_number":87,"context_line":"        # can\u0027t delete from inifile, so just reset to default \u0027default\u0027"},{"line_number":88,"context_line":"        cfg_file[\u0027identity\u0027][\u0027default_domain_id\u0027] \u003d \u0027default\u0027"},{"line_number":89,"context_line":"        changed \u003d true"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"fa32b979_736171a8","line":86,"in_reply_to":"fa32b979_8a2f333e","updated":"2015-06-18 22:54:26.000000000","message":"It should be \u003d\u003d.  What I\u0027m trying to say is this: If the resource is changing the domain to be not the default domain, or the resource is ensuring the domain is absent, and the domain specified in the resource is the one currently set as the default domain, we need to remove it from being the default domain, by setting the default_domain_id back to \u0027default\u0027.\n\nWorks for me.  This is what I did:\n- packstack install\n- created /tmp/domaintest.pp::\n\n    keystone_domain { \u0027newdomain\u0027:\n      ensure \u003d\u003e present,\n      enabled \u003d\u003e true,\n      description \u003d\u003e \u0027test domain\u0027,\n      is_default \u003d\u003e true,\n    }\n    # puppet apply --modulepath /usr/share/openstack-puppet/modules --debug /tmp/domaintest.pp 2\u003e\u00261 | tee output\n\nI could see my newly added debug message that the default_domain_id was changed from nothing to 88288a89bac97d80a8e.  I verified that /etc/keystone/keystone.conf identity/default_domain_id had 88288a89bac97d80a8e.\n\n- created /tmp/removedomain.pp::\n\n    keystone_domain { \u0027newdomain\u0027:\n      ensure \u003d\u003e absent,\n    }\n    # puppet apply --modulepath /usr/share/openstack-puppet/modules --debug /tmp/removedomain.pp 2\u003e\u00261 | tee output\n\nI could see my newly added debug message that the default_domain_id was changed from 88288a89bac97d80a8e to default.  I verified that /etc/keystone/keystone.conf identity/default_domain_id had default.","commit_id":"436a404071018b6402b3e9f446557addf641d9bb"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"fa44db4723845e45adb92554535cf32804aa7d84","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    if changed"},{"line_number":93,"context_line":"      cfg_file.store"},{"line_number":94,"context_line":"    end"},{"line_number":95,"context_line":"  end"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  def self.instances"},{"line_number":98,"context_line":"    list \u003d request(\u0027domain\u0027, \u0027list\u0027)"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"fa32b979_aaa797bb","line":95,"updated":"2015-06-18 00:38:18.000000000","message":"Could we add a debug statement or notice to this method that says what the default used to be and what it changed to?","commit_id":"436a404071018b6402b3e9f446557addf641d9bb"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"e812eeef512b26ce9591bf84b1ab422556c9c37e","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    if changed"},{"line_number":93,"context_line":"      cfg_file.store"},{"line_number":94,"context_line":"    end"},{"line_number":95,"context_line":"  end"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"  def self.instances"},{"line_number":98,"context_line":"    list \u003d request(\u0027domain\u0027, \u0027list\u0027)"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"fa32b979_28a91d24","line":95,"in_reply_to":"fa32b979_aaa797bb","updated":"2015-06-18 22:54:26.000000000","message":"Done","commit_id":"436a404071018b6402b3e9f446557addf641d9bb"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"fa44db4723845e45adb92554535cf32804aa7d84","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        options \u003c\u003c \u0027--description\u0027 \u003c\u003c resource[:description]"},{"line_number":126,"context_line":"      end"},{"line_number":127,"context_line":"      self.class.request(\u0027domain\u0027, \u0027set\u0027, [resource[:name], options]) unless options.empty?"},{"line_number":128,"context_line":"      ensure_default_domain"},{"line_number":129,"context_line":"      @property_flush.clear"},{"line_number":130,"context_line":"    end"},{"line_number":131,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"fa32b979_eab83f13","line":128,"updated":"2015-06-18 00:38:18.000000000","message":"This doesn\u0027t activate if there are no properties that need to be changed (in @property_flush). This should be moved outside the if statement.","commit_id":"436a404071018b6402b3e9f446557addf641d9bb"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"e812eeef512b26ce9591bf84b1ab422556c9c37e","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        options \u003c\u003c \u0027--description\u0027 \u003c\u003c resource[:description]"},{"line_number":126,"context_line":"      end"},{"line_number":127,"context_line":"      self.class.request(\u0027domain\u0027, \u0027set\u0027, [resource[:name], options]) unless options.empty?"},{"line_number":128,"context_line":"      ensure_default_domain"},{"line_number":129,"context_line":"      @property_flush.clear"},{"line_number":130,"context_line":"    end"},{"line_number":131,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":30,"id":"fa32b979_0869b9f8","line":128,"in_reply_to":"fa32b979_eab83f13","updated":"2015-06-18 22:54:26.000000000","message":"See the new implementation","commit_id":"436a404071018b6402b3e9f446557addf641d9bb"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"bf8aebceca9039c85fe9310e3d40352e17736802","unresolved":false,"context_lines":[{"line_number":92,"context_line":"      # removing default domain, or making this domain not the default"},{"line_number":93,"context_line":"      if curid \u003d\u003d newid"},{"line_number":94,"context_line":"        # can\u0027t delete from inifile, so just reset to default \u0027default\u0027"},{"line_number":95,"context_line":"        self.class.keystone_file[\u0027identity\u0027][\u0027default_domain_id\u0027] \u003d \u0027default\u0027"},{"line_number":96,"context_line":"        changed \u003d true"},{"line_number":97,"context_line":"        newid \u003d \u0027default\u0027"},{"line_number":98,"context_line":"      end"}],"source_content_type":"text/x-ruby","patch_set":37,"id":"ba3cc151_fddb8719","line":95,"updated":"2015-07-07 13:36:51.000000000","message":"can we execute that before keystone run?\nBecause this change requires a notify to keystone service.","commit_id":"af29dd6a975b1af4bc9796001da7186f87b4a02b"}],"lib/puppet/util/v3.rb":[{"author":{"_account_id":6525,"name":"Gilles Dubreuil","email":"gilles@redhat.com","username":"q-1illes-a"},"change_message_id":"bcfb6b64ed60f7365578f759a8cabc0bbb9ca840","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# name_with_domain \u003d \"foo::bar::baz::\" -\u003e [\"foo::bar\", \"baz\"]"},{"line_number":21,"context_line":"# domain name only"},{"line_number":22,"context_line":"# name_with_domain \u003d \"::foo\" -\u003e [nil, \"foo\"]"},{"line_number":23,"context_line":"# name_with_domain \u003d \"::foo::\" -\u003e [nil, \"foo\"]"},{"line_number":24,"context_line":"def split_domain(name_with_domain)"},{"line_number":25,"context_line":"  if name_with_domain.nil?"},{"line_number":26,"context_line":"    return [nil, nil]"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"3ab451fb_55307956","line":23,"updated":"2015-04-17 11:37:35.000000000","message":"As discussed I think it would be better to wrap that method into a module namespace and have the file with a more specific name (usually the module name) in order to avoid scope issue with other modules\u0027 libraries.","commit_id":"7420365430d8704917ae4b1baf343f693524d48b"},{"author":{"_account_id":9983,"name":"Richard Megginson","email":"rmeggins@redhat.com","username":"rmeggins"},"change_message_id":"0df0442b3489a356fc8263622c0cd0c8b629489b","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# name_with_domain \u003d \"foo::bar::baz::\" -\u003e [\"foo::bar\", \"baz\"]"},{"line_number":21,"context_line":"# domain name only"},{"line_number":22,"context_line":"# name_with_domain \u003d \"::foo\" -\u003e [nil, \"foo\"]"},{"line_number":23,"context_line":"# name_with_domain \u003d \"::foo::\" -\u003e [nil, \"foo\"]"},{"line_number":24,"context_line":"def split_domain(name_with_domain)"},{"line_number":25,"context_line":"  if name_with_domain.nil?"},{"line_number":26,"context_line":"    return [nil, nil]"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"3ab451fb_147548ca","line":23,"in_reply_to":"3ab451fb_55307956","updated":"2015-04-17 16:09:27.000000000","message":"Done.  Renamed to keystone_v3.rb and used a module called KeystoneV3Util","commit_id":"7420365430d8704917ae4b1baf343f693524d48b"}]}
