)]}'
{"providers/image.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8a5142d42eac6dd7e60b4fe8723876004d785a81","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  name \u003d new_resource.image_name"},{"line_number":31,"context_line":"  url \u003d new_resource.image_url"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  ep \u003d endpoint \u0027image-api\u0027"},{"line_number":34,"context_line":"  api \u003d ep.to_s.gsub(ep.path, \u0027\u0027) # remove trailing /v2"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"  type \u003d new_resource.image_type"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"1a6ced46_1ca6d253","line":33,"updated":"2015-03-24 15:57:51.000000000","message":"Should this be internal_endpoint as this is being used in that way?","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8a5142d42eac6dd7e60b4fe8723876004d785a81","unresolved":false,"context_lines":[{"line_number":53,"context_line":"  end"},{"line_number":54,"context_line":"end"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"def _upload_image(type, name, api, url)"},{"line_number":57,"context_line":"  case type"},{"line_number":58,"context_line":"  when \u0027ami\u0027"},{"line_number":59,"context_line":"    _upload_ami(name, api, url)"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"1a6ced46_df918c9b","line":56,"updated":"2015-03-24 15:57:51.000000000","message":"Would be nice to have an option to override existing image with this name, to allow for image updates to happen.  Basically delete existing image, and then upload as normal.","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"08870cb6903d3dfe29ec49e564fe686792c85067","unresolved":false,"context_lines":[{"line_number":68,"context_line":"  d_fmt \u003d \u0027--disk-format qcow2\u0027"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"  execute \"Uploading QCOW2 image #{name}\" do"},{"line_number":71,"context_line":"    cwd \u0027/tmp\u0027"},{"line_number":72,"context_line":"    command \"#{glance_cmd} image-create --name #{name} --is-public true #{c_fmt} #{d_fmt} --location #{url}\""},{"line_number":73,"context_line":"    not_if \"#{glance_cmd} image-list | grep #{name}\""},{"line_number":74,"context_line":"  end"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"3ab451fb_431206b6","line":71,"updated":"2015-04-17 11:19:47.000000000","message":"I saw a patch is to change this cwd configurable, so it\u0027s better to make this path configurable.","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8a5142d42eac6dd7e60b4fe8723876004d785a81","unresolved":false,"context_lines":[{"line_number":70,"context_line":"  execute \"Uploading QCOW2 image #{name}\" do"},{"line_number":71,"context_line":"    cwd \u0027/tmp\u0027"},{"line_number":72,"context_line":"    command \"#{glance_cmd} image-create --name #{name} --is-public true #{c_fmt} #{d_fmt} --location #{url}\""},{"line_number":73,"context_line":"    not_if \"#{glance_cmd} image-list | grep #{name}\""},{"line_number":74,"context_line":"  end"},{"line_number":75,"context_line":"end"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":2,"id":"1a6ced46_df3c2cc2","line":73,"updated":"2015-03-24 15:57:51.000000000","message":"I remember seeing an issue here with running the converge twice, it would create a second image in glance, not sure why this image-list gate is not working.  Need to verify that is not a bug here.","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"08870cb6903d3dfe29ec49e564fe686792c85067","unresolved":false,"context_lines":[{"line_number":70,"context_line":"  execute \"Uploading QCOW2 image #{name}\" do"},{"line_number":71,"context_line":"    cwd \u0027/tmp\u0027"},{"line_number":72,"context_line":"    command \"#{glance_cmd} image-create --name #{name} --is-public true #{c_fmt} #{d_fmt} --location #{url}\""},{"line_number":73,"context_line":"    not_if \"#{glance_cmd} image-list | grep #{name}\""},{"line_number":74,"context_line":"  end"},{"line_number":75,"context_line":"end"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":2,"id":"3ab451fb_23301a56","line":73,"in_reply_to":"1a6ced46_df3c2cc2","updated":"2015-04-17 11:19:47.000000000","message":"Yeah, I encountered this issue a year ago. I think this command need change to glance image-show image_name.","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8a5142d42eac6dd7e60b4fe8723876004d785a81","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"# TODO(chrislaco) This refactor is in the works via Craig Tracey"},{"line_number":78,"context_line":"def _upload_ami(name, api, url) # rubocop:disable MethodLength"},{"line_number":79,"context_line":"  glance_cmd \u003d \"glance --insecure --os-username #{@user} --os-password #{@pass} --os-tenant-name #{@tenant} --os-image-url #{api} --os-auth-url #{@ks_uri}\""},{"line_number":80,"context_line":"  aki_fmt \u003d \u0027--container-format aki --disk-format aki\u0027"},{"line_number":81,"context_line":"  ari_fmt \u003d \u0027--container-format ari --disk-format ari\u0027"},{"line_number":82,"context_line":"  ami_fmt \u003d \u0027--container-format ami --disk-format ami\u0027"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"1a6ced46_1c02520b","line":79,"updated":"2015-03-24 15:57:51.000000000","message":"Maybe some DRY here with line 66, move to new util method to construct base cmd?","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"08870cb6903d3dfe29ec49e564fe686792c85067","unresolved":false,"context_lines":[{"line_number":81,"context_line":"  ari_fmt \u003d \u0027--container-format ari --disk-format ari\u0027"},{"line_number":82,"context_line":"  ami_fmt \u003d \u0027--container-format ami --disk-format ami\u0027"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"  bash \"Uploading AMI image #{name}\" do"},{"line_number":85,"context_line":"    cwd \u0027/tmp\u0027"},{"line_number":86,"context_line":"    user \u0027root\u0027"},{"line_number":87,"context_line":"    code \u003c\u003c-EOH"}],"source_content_type":"text/x-ruby","patch_set":2,"id":"3ab451fb_4360c635","line":84,"updated":"2015-04-17 11:19:47.000000000","message":"a timeout here is better.","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"}],"recipes/_example_glance.rb":[{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"f8dffc68753fccac5b55b2b2bdd42c507164e437","unresolved":false,"context_lines":[{"line_number":23,"context_line":"# So here auth_uri can not be transformed."},{"line_number":24,"context_line":"auth_uri \u003d identity_endpoint.to_s"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"service_pass \u003d get_password \u0027service\u0027, \u0027openstack-image\u0027"},{"line_number":27,"context_line":"service_tenant_name \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027service_tenant_name\u0027]"},{"line_number":28,"context_line":"service_user \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027service_user\u0027]"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":2,"id":"9aa53dc9_60edd0ee","line":26,"updated":"2015-04-07 18:49:22.000000000","message":"See bug: https://bugs.launchpad.net/openstack-chef/+bug/1441292\nOnly Admin can create public images.\nAfter that patch goes in, we can re-merge against that here.","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"},{"author":{"_account_id":7128,"name":"Mark Vanderwiel","email":"vanderwl@us.ibm.com","username":"kramvan"},"change_message_id":"8a5142d42eac6dd7e60b4fe8723876004d785a81","unresolved":false,"context_lines":[{"line_number":27,"context_line":"service_tenant_name \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027service_tenant_name\u0027]"},{"line_number":28,"context_line":"service_user \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027service_user\u0027]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"node[\u0027openstack\u0027][\u0027image\u0027][\u0027upload_images\u0027].each do |img|"},{"line_number":31,"context_line":"  type \u003d \u0027unknown\u0027"},{"line_number":32,"context_line":"  type \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027upload_image_type\u0027][img.to_sym] if node[\u0027openstack\u0027][\u0027image\u0027][\u0027upload_image_type\u0027][img.to_sym]"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":2,"id":"1a6ced46_7fded840","line":30,"updated":"2015-03-24 15:57:51.000000000","message":"Does this mean that the existing image upload recipe will be going away?   Or should we change the namespace here to be more specific to client work.   [openstack][client][image]...\nelse we have a namespace collision","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"},{"author":{"_account_id":9488,"name":"chenzhiwei","email":"zhiweik@gmail.com","username":"chenzhiwei"},"change_message_id":"08870cb6903d3dfe29ec49e564fe686792c85067","unresolved":false,"context_lines":[{"line_number":27,"context_line":"service_tenant_name \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027service_tenant_name\u0027]"},{"line_number":28,"context_line":"service_user \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027service_user\u0027]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"node[\u0027openstack\u0027][\u0027image\u0027][\u0027upload_images\u0027].each do |img|"},{"line_number":31,"context_line":"  type \u003d \u0027unknown\u0027"},{"line_number":32,"context_line":"  type \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027upload_image_type\u0027][img.to_sym] if node[\u0027openstack\u0027][\u0027image\u0027][\u0027upload_image_type\u0027][img.to_sym]"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":2,"id":"3ab451fb_632ce2ab","line":30,"in_reply_to":"1a6ced46_7fded840","updated":"2015-04-17 11:19:47.000000000","message":"I agree.","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"},{"author":{"_account_id":7769,"name":"Pentheus","display_name":"Alan Meadows","email":"alan.meadows@gmail.com","username":"alanmeadows"},"change_message_id":"b9eddebec53d1c5f77b3c79442abd8c6f4ccde1a","unresolved":false,"context_lines":[{"line_number":27,"context_line":"service_tenant_name \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027service_tenant_name\u0027]"},{"line_number":28,"context_line":"service_user \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027service_user\u0027]"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"node[\u0027openstack\u0027][\u0027image\u0027][\u0027upload_images\u0027].each do |img|"},{"line_number":31,"context_line":"  type \u003d \u0027unknown\u0027"},{"line_number":32,"context_line":"  type \u003d node[\u0027openstack\u0027][\u0027image\u0027][\u0027upload_image_type\u0027][img.to_sym] if node[\u0027openstack\u0027][\u0027image\u0027][\u0027upload_image_type\u0027][img.to_sym]"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-ruby","patch_set":2,"id":"7a016987_f800c035","line":30,"in_reply_to":"3ab451fb_632ce2ab","updated":"2015-05-22 18:10:53.000000000","message":"I tend to think the upload has always been slightly misplaced here and should likely be in a client oriented namespace (and recipe) and simply be called if an upload is actually desired","commit_id":"67d883eb4ad166ebea151176d6149166568ab20b"}]}
