)]}'
{"lib/puppet/provider/nova.rb":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"5169056c98b8e8a3bbc3af2fc7bed2c26568d002","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"  def self.get_auth_endpoint"},{"line_number":65,"context_line":"    n \u003d nova_credentials"},{"line_number":66,"context_line":"    \"#{n[\u0027auth_protocol\u0027]}://#{n[\u0027auth_host\u0027]}:#{n[\u0027auth_port\u0027]}/v2.0/\""},{"line_number":67,"context_line":"  end"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"  def self.auth_endpoint"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"7a2fa921_be520412","line":66,"updated":"2015-10-06 17:22:51.000000000","message":"I think this can be left for a separate patch, it\u0027s not relevant to the primary purpose of this patch","commit_id":"d57fe68f879028a6a803ee9c4f5cf523cbdfae98"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"5169056c98b8e8a3bbc3af2fc7bed2c26568d002","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    saved.each do |name, val|"},{"line_number":99,"context_line":"      ENV[name] \u003d val"},{"line_number":100,"context_line":"    end"},{"line_number":101,"context_line":"  end"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"  def self.auth_nova(*args)"},{"line_number":104,"context_line":"    q \u003d nova_credentials"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"7a2fa921_1e96984c","line":101,"updated":"2015-10-06 17:22:51.000000000","message":"It would be nicer to the git history if these functions didn\u0027t move in the file since they haven\u0027t changed.","commit_id":"d57fe68f879028a6a803ee9c4f5cf523cbdfae98"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"5169056c98b8e8a3bbc3af2fc7bed2c26568d002","unresolved":false,"context_lines":[{"line_number":128,"context_line":"  def auth_nova(*args)"},{"line_number":129,"context_line":"    self.class.auth_nova(args)"},{"line_number":130,"context_line":"  end"},{"line_number":131,"context_line":"  # end"},{"line_number":132,"context_line":""},{"line_number":133,"context_line":"end"}],"source_content_type":"text/x-ruby","patch_set":9,"id":"7a2fa921_e306a31f","line":131,"updated":"2015-10-06 17:22:51.000000000","message":"should be deleted not commented out","commit_id":"d57fe68f879028a6a803ee9c4f5cf523cbdfae98"}],"lib/puppet/provider/nova_aggregate/openstack.rb":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"d64cbaf1246cd5f02b9f21c847eb262641af2035","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    Provider to manage nova aggregations"},{"line_number":9,"context_line":"  EOT"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  @credentials \u003d Puppet::Provider::Openstack::CredentialsV2_0.new"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"  mk_resource_methods"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":19,"id":"ba0121b8_b3c5e85c","line":11,"updated":"2016-03-28 22:46:03.000000000","message":"Why v2 instead of v3?\n\nThere\u0027s an issue in our openstacklib implementation where mixing v2 and v3 credentials will sometimes cause weird errors, and our keystone resources are all using v3 now.","commit_id":"08ee5866a6c6440f9202eddbb8f7ae4ec24a1fca"},{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"d00adccb34a721e6f48eeb348bd062a874e6e4b7","unresolved":false,"context_lines":[{"line_number":8,"context_line":"    Provider to manage nova aggregations"},{"line_number":9,"context_line":"  EOT"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"  @credentials \u003d Puppet::Provider::Openstack::CredentialsV2_0.new"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"  mk_resource_methods"},{"line_number":14,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":19,"id":"ba0121b8_d795da40","line":11,"in_reply_to":"ba0121b8_b3c5e85c","updated":"2016-03-29 08:17:47.000000000","message":"I\u0027m just following current scheme: we have now v2 auth for nova client. I think, we can switch it to v3, but in separate patch.","commit_id":"08ee5866a6c6440f9202eddbb8f7ae4ec24a1fca"}],"lib/puppet/type/nova_aggregate.rb":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"d64cbaf1246cd5f02b9f21c847eb262641af2035","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  ensurable"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  autorequire(:nova_config) do"},{"line_number":48,"context_line":"    [\u0027auth_uri\u0027, \u0027admin_tenant_name\u0027, \u0027admin_user\u0027, \u0027admin_password\u0027]"},{"line_number":49,"context_line":"  end"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"  newparam(:name, :namevar \u003d\u003e true) do"}],"source_content_type":"text/x-ruby","patch_set":19,"id":"ba0121b8_339ef856","line":48,"updated":"2016-03-28 22:46:03.000000000","message":"For backwards compatibility wouldn\u0027t it be better to keep autorequiring auth_host, etc?","commit_id":"08ee5866a6c6440f9202eddbb8f7ae4ec24a1fca"},{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"d00adccb34a721e6f48eeb348bd062a874e6e4b7","unresolved":false,"context_lines":[{"line_number":45,"context_line":"  ensurable"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"  autorequire(:nova_config) do"},{"line_number":48,"context_line":"    [\u0027auth_uri\u0027, \u0027admin_tenant_name\u0027, \u0027admin_user\u0027, \u0027admin_password\u0027]"},{"line_number":49,"context_line":"  end"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"  newparam(:name, :namevar \u003d\u003e true) do"}],"source_content_type":"text/x-ruby","patch_set":19,"id":"ba0121b8_b7dae676","line":48,"in_reply_to":"ba0121b8_339ef856","updated":"2016-03-29 08:17:47.000000000","message":"We don\u0027t have this option anymore in nova_config:\n\nhttps://github.com/openstack/puppet-nova/commit/d2d0fd4ca3d1d7e278fece6fcbe37676275e84a8","commit_id":"08ee5866a6c6440f9202eddbb8f7ae4ec24a1fca"}],"manifests/api.pp":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"e45155dfd66e57b72177d5136437e10542338cc5","unresolved":false,"context_lines":[{"line_number":369,"context_line":"    create_resources(\u0027openstacklib::service_validation\u0027, $validation_options_hash, {\u0027subscribe\u0027 \u003d\u003e \u0027Service[nova-api]\u0027})"},{"line_number":370,"context_line":"  }"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"  ensure_resource(\u0027package\u0027, \u0027python-openstackclient\u0027, {\u0027ensure\u0027 \u003d\u003e $ensure_package, tag \u003d\u003e \u0027openstack\u0027})"},{"line_number":373,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":7,"id":"9a1a9d01_82b9e417","line":372,"updated":"2015-10-02 16:48:41.000000000","message":"why not use ensure_packages?","commit_id":"1a2a06b8c3c79e24f106ea0a4e0e32fb74cd94ef"},{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"767bf2a814127ed336bef6cb46490ea1c1af8e96","unresolved":false,"context_lines":[{"line_number":369,"context_line":"    create_resources(\u0027openstacklib::service_validation\u0027, $validation_options_hash, {\u0027subscribe\u0027 \u003d\u003e \u0027Service[nova-api]\u0027})"},{"line_number":370,"context_line":"  }"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":"  ensure_resource(\u0027package\u0027, \u0027python-openstackclient\u0027, {\u0027ensure\u0027 \u003d\u003e $ensure_package, tag \u003d\u003e \u0027openstack\u0027})"},{"line_number":373,"context_line":"}"}],"source_content_type":"text/x-puppet","patch_set":7,"id":"9a1a9d01_1d40aaa4","line":372,"in_reply_to":"9a1a9d01_82b9e417","updated":"2015-10-05 11:43:19.000000000","message":"Done","commit_id":"1a2a06b8c3c79e24f106ea0a4e0e32fb74cd94ef"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"a52c2d1843fcb8563549997e7c88c904d7d79bb5","unresolved":false,"context_lines":[{"line_number":406,"context_line":"    create_resources(\u0027openstacklib::service_validation\u0027, $validation_options_hash, {\u0027subscribe\u0027 \u003d\u003e \u0027Service[nova-api]\u0027})"},{"line_number":407,"context_line":"  }"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"  ensure_packages(\u0027python-openstackclient\u0027,"},{"line_number":410,"context_line":"    {"},{"line_number":411,"context_line":"      ensure \u003d\u003e $ensure_package,"},{"line_number":412,"context_line":"      tag    \u003d\u003e \u0027openstack\u0027"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"3a7e1126_5d2bb294","line":409,"updated":"2015-12-17 19:06:21.000000000","message":"is it really valuable? we already have the resource in many other places...","commit_id":"c07dd9566e187159ebe02a691a69240c3594a731"},{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"0f38404f121b1b9f67ac442bfe102e5a146674ee","unresolved":false,"context_lines":[{"line_number":406,"context_line":"    create_resources(\u0027openstacklib::service_validation\u0027, $validation_options_hash, {\u0027subscribe\u0027 \u003d\u003e \u0027Service[nova-api]\u0027})"},{"line_number":407,"context_line":"  }"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"  ensure_packages(\u0027python-openstackclient\u0027,"},{"line_number":410,"context_line":"    {"},{"line_number":411,"context_line":"      ensure \u003d\u003e $ensure_package,"},{"line_number":412,"context_line":"      tag    \u003d\u003e \u0027openstack\u0027"}],"source_content_type":"text/x-puppet","patch_set":14,"id":"3a7e1126_0e515962","line":409,"in_reply_to":"3a7e1126_5d2bb294","updated":"2015-12-18 09:08:29.000000000","message":"Yeah, you\u0027re right, it is just outdated now.","commit_id":"c07dd9566e187159ebe02a691a69240c3594a731"}],"spec/acceptance/basic_nova_spec.rb":[{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"a52c2d1843fcb8563549997e7c88c904d7d79bb5","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        availability_zone \u003d\u003e \u0027zone1\u0027,"},{"line_number":68,"context_line":"        metadata          \u003d\u003e \u0027test\u003dproperty\u0027,"},{"line_number":69,"context_line":"      }"},{"line_number":70,"context_line":"      Class[\u0027keystone\u0027] -\u003e Class[\u0027nova::api\u0027] -\u003e Nova_Aggregate\u003c||\u003e"},{"line_number":71,"context_line":"      # TODO: networking with neutron"},{"line_number":72,"context_line":"      EOS"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":14,"id":"3a7e1126_9d211ab7","line":70,"updated":"2015-12-17 19:06:21.000000000","message":"that should not happen. We should rather set the orchestration in puppet-nova, somewhere. Maybe an autorequire in the resource type?","commit_id":"c07dd9566e187159ebe02a691a69240c3594a731"},{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"0f38404f121b1b9f67ac442bfe102e5a146674ee","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        availability_zone \u003d\u003e \u0027zone1\u0027,"},{"line_number":68,"context_line":"        metadata          \u003d\u003e \u0027test\u003dproperty\u0027,"},{"line_number":69,"context_line":"      }"},{"line_number":70,"context_line":"      Class[\u0027keystone\u0027] -\u003e Class[\u0027nova::api\u0027] -\u003e Nova_Aggregate\u003c||\u003e"},{"line_number":71,"context_line":"      # TODO: networking with neutron"},{"line_number":72,"context_line":"      EOS"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":14,"id":"3a7e1126_2eb77587","line":70,"in_reply_to":"3a7e1126_9d211ab7","updated":"2015-12-18 09:08:29.000000000","message":"Well, i\u0027m not sure that we need have some autorequire in resource, because we can run this provider separate from deployment nova.\n\nI think will be better to use smtg like this:\n\n      nova_aggregate { \u0027test_aggregate\u0027:\n        ensure            \u003d\u003e present,\n        availability_zone \u003d\u003e \u0027zone1\u0027,\n        metadata          \u003d\u003e \u0027test\u003dproperty\u0027,\n        require           \u003d\u003e Service[\u0027nova-api\u0027]\n      }\n\nThoughts?","commit_id":"c07dd9566e187159ebe02a691a69240c3594a731"},{"author":{"_account_id":3153,"name":"Emilien Macchi","email":"emilien@redhat.com","username":"emilienm"},"change_message_id":"a52c2d1843fcb8563549997e7c88c904d7d79bb5","unresolved":false,"context_lines":[{"line_number":101,"context_line":"      it \u0027should create new aggregate\u0027 do"},{"line_number":102,"context_line":"        shell(\u0027openstack --os-username nova --os-password a_big_secret --os-tenant-name services --os-auth-url http://127.0.0.1:5000/v2.0 aggregate list\u0027) do |r|"},{"line_number":103,"context_line":"          expect(r.stdout).to match(/test_aggregate/)"},{"line_number":104,"context_line":"          expect(r.stderr).to be_empty"},{"line_number":105,"context_line":"        end"},{"line_number":106,"context_line":"      end"},{"line_number":107,"context_line":"    end"}],"source_content_type":"text/x-ruby","patch_set":14,"id":"3a7e1126_3d302601","line":104,"updated":"2015-12-17 19:06:21.000000000","message":"cool :)","commit_id":"c07dd9566e187159ebe02a691a69240c3594a731"},{"author":{"_account_id":18795,"name":"mkarpin","email":"mkarpin@mirantis.com","username":"nkarpin"},"change_message_id":"93fb5792fc2ec62c16b9bb2c5185fd0975c62f4d","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        ensure            \u003d\u003e present,"},{"line_number":67,"context_line":"        availability_zone \u003d\u003e \u0027zone1\u0027,"},{"line_number":68,"context_line":"        metadata          \u003d\u003e \u0027test\u003dproperty\u0027,"},{"line_number":69,"context_line":"        require           \u003d\u003e Class[\u0027nova::api\u0027],"},{"line_number":70,"context_line":"      }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"      # TODO: networking with neutron"}],"source_content_type":"text/x-ruby","patch_set":15,"id":"fa69d971_ce06c51c","line":69,"updated":"2016-01-05 08:33:33.000000000","message":"I did acceptance tests locally on my PC and found that on Centos7 it fails acceptance tests because nova_aggregate is somehow applied before keystone can authenticate requests. \n\nwe need to ensure that aggregate will be created when keystone is able to serve requests.\n\nmaybe:\n\n      class { \u0027::nova::api\u0027:\n        admin_password \u003d\u003e \u0027a_big_secret\u0027,\n        identity_uri   \u003d\u003e \u0027http://127.0.0.1:35357/\u0027,\n        osapi_v3       \u003d\u003e true,\n        require        \u003d\u003e Class[\u0027keystone\u0027],\n      }","commit_id":"dd0c4930c66b9da5fba5ffd8cee0217d104cbef1"}],"spec/classes/nova_api_spec.rb":[{"author":{"_account_id":15519,"name":"Iury Gregory Melo Ferreira","display_name":"Iury Gregory","email":"iurygregory@gmail.com","username":"iurygregory"},"change_message_id":"e45155dfd66e57b72177d5136437e10542338cc5","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    context \u0027with default parameters\u0027 do"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"      it { is_expected.to contain_package(\u0027python-openstackclient\u0027) }"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"      it \u0027installs nova-api package and service\u0027 do"},{"line_number":24,"context_line":"        is_expected.to contain_service(\u0027nova-api\u0027).with("}],"source_content_type":"text/x-ruby","patch_set":7,"id":"9a1a9d01_029cf45b","line":21,"updated":"2015-10-02 16:48:41.000000000","message":"I think you can add more things here, like \nis_expected.to contain_package(\u0027python-openstackclient\u0027).with(\n          :name   \u003d\u003e ....,\n          :ensure \u003d\u003e ...,\n          :tag    \u003d\u003e ...,\n        )","commit_id":"1a2a06b8c3c79e24f106ea0a4e0e32fb74cd94ef"},{"author":{"_account_id":7745,"name":"Denis Egorenko","email":"degorenko@mirantis.com","username":"degorenko"},"change_message_id":"767bf2a814127ed336bef6cb46490ea1c1af8e96","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    context \u0027with default parameters\u0027 do"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"      it { is_expected.to contain_package(\u0027python-openstackclient\u0027) }"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"      it \u0027installs nova-api package and service\u0027 do"},{"line_number":24,"context_line":"        is_expected.to contain_service(\u0027nova-api\u0027).with("}],"source_content_type":"text/x-ruby","patch_set":7,"id":"9a1a9d01_dd49d2d1","line":21,"in_reply_to":"9a1a9d01_029cf45b","updated":"2015-10-05 11:43:19.000000000","message":"Done","commit_id":"1a2a06b8c3c79e24f106ea0a4e0e32fb74cd94ef"}]}
