)]}'
{"test/functional/glanceTest.js":[{"author":{"_account_id":8614,"name":"Corentin Ardeois","email":"corentin.ardeois@gmail.com","username":"cardeois"},"change_message_id":"6a9321f3bbdfdaffc80e8802565fb5fbbfc5935e","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  let configPromise \u003d tokenPromise"},{"line_number":29,"context_line":"    .then((token) \u003d\u003e keystone.catalogList(token))"},{"line_number":30,"context_line":"    .then((catalog) \u003d\u003e catalog.find((entry) \u003d\u003e entry.name \u003d\u003d\u003d \u0027glance\u0027))"},{"line_number":31,"context_line":"    .then((entry) \u003d\u003e entry.endpoints.find((endpoint) \u003d\u003e endpoint.interface \u003d\u003d\u003d \u0027public\u0027));"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  describe(\"versions()\", () \u003d\u003e {"},{"line_number":34,"context_line":"    it(\"should return a list of all versions available on this clouds\u0027 glance\", (done) \u003d\u003e {"}],"source_content_type":"text/javascript","patch_set":1,"id":"fa7ab95a_241693a7","line":31,"updated":"2016-08-26 20:52:15.000000000","message":"As I think this is fine for the first MVP, it would be nice that glance handles that by himself. I mean it would be cool if the user just has to authenticated in keystone, then use glance without knowing how catalogs works.\nHowever I\u0027m not really sure of how to handle that properly (both in the implementation and the syntax the user will use this)\nWhat\u0027s your opinion about this?","commit_id":"fc058e55c3f831e652d376dab29c0adae5725209"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"dafcbdc92293216038d96cfa154015b4daf700cc","unresolved":false,"context_lines":[{"line_number":28,"context_line":"  let configPromise \u003d tokenPromise"},{"line_number":29,"context_line":"    .then((token) \u003d\u003e keystone.catalogList(token))"},{"line_number":30,"context_line":"    .then((catalog) \u003d\u003e catalog.find((entry) \u003d\u003e entry.name \u003d\u003d\u003d \u0027glance\u0027))"},{"line_number":31,"context_line":"    .then((entry) \u003d\u003e entry.endpoints.find((endpoint) \u003d\u003e endpoint.interface \u003d\u003d\u003d \u0027public\u0027));"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  describe(\"versions()\", () \u003d\u003e {"},{"line_number":34,"context_line":"    it(\"should return a list of all versions available on this clouds\u0027 glance\", (done) \u003d\u003e {"}],"source_content_type":"text/javascript","patch_set":1,"id":"fa7ab95a_a0e59209","line":31,"in_reply_to":"fa7ab95a_241693a7","updated":"2016-08-30 15:40:36.000000000","message":"Well, I\u0027d like to separate service configuration from service functionality. Once the service has been created, it\u0027s locked - that way you can have multiple instances talking to multiple API\u0027s.\n\nI feel that the logic as to which catalog entry endpoint to use should live in the OpenStack wrapper class. Its job then becomes: Authenticate, get a catalog, figure out which services to instantiate, and make those available to my user. That way we also avoid any annoying cross-service dependencies, such as glance being dependent on keystone for service configuration and token management.","commit_id":"fc058e55c3f831e652d376dab29c0adae5725209"}]}
