)]}'
{"src/keystone.js":[{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"6b0ea53703444efb09cb4c0351aaedc45b0aa7ff","unresolved":false,"context_lines":[{"line_number":89,"context_line":"   */"},{"line_number":90,"context_line":"  versions () {"},{"line_number":91,"context_line":"    return super.versions()"},{"line_number":92,"context_line":"      .then((versions) \u003d\u003e versions.values);"},{"line_number":93,"context_line":"  }"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"  /**"}],"source_content_type":"text/javascript","patch_set":1,"id":"fa7ab95a_2225ee09","line":92,"updated":"2016-08-30 23:06:20.000000000","message":"....I hate that this is necessary.","commit_id":"29397f9f04f67c55caca2005737a986d49e9a22e"}],"src/util/abstractVersionedService.js":[{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"6b0ea53703444efb09cb4c0351aaedc45b0aa7ff","unresolved":false,"context_lines":[{"line_number":20,"context_line":" * An abstract implementation for services supporting multiple versions, which includes common logic for selecting"},{"line_number":21,"context_line":" * the compatible API version."},{"line_number":22,"context_line":" *"},{"line_number":23,"context_line":" * @author Corentin Ardeois"},{"line_number":24,"context_line":" */"},{"line_number":25,"context_line":"export default class AbstractVersionedService extends AbstractService {"},{"line_number":26,"context_line":"  constructor (endpointUrl, supportedVersions) {"}],"source_content_type":"text/javascript","patch_set":1,"id":"fa7ab95a_824a3aab","line":23,"updated":"2016-08-30 23:06:20.000000000","message":"OpenStack generally frowns on @author blocks. I don\u0027t care, as long as everyone rememebrs to add themselves if they make a change.","commit_id":"29397f9f04f67c55caca2005737a986d49e9a22e"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"6b0ea53703444efb09cb4c0351aaedc45b0aa7ff","unresolved":false,"context_lines":[{"line_number":22,"context_line":" *"},{"line_number":23,"context_line":" * @author Corentin Ardeois"},{"line_number":24,"context_line":" */"},{"line_number":25,"context_line":"export default class AbstractVersionedService extends AbstractService {"},{"line_number":26,"context_line":"  constructor (endpointUrl, supportedVersions) {"},{"line_number":27,"context_line":"    super();"},{"line_number":28,"context_line":"    this._endpointUrl \u003d endpointUrl;"}],"source_content_type":"text/javascript","patch_set":1,"id":"fa7ab95a_82731a15","line":25,"updated":"2016-08-30 23:06:20.000000000","message":"Given that both keystone and glance are using this, let\u0027s just combine the two classes into one.","commit_id":"29397f9f04f67c55caca2005737a986d49e9a22e"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"6b0ea53703444efb09cb4c0351aaedc45b0aa7ff","unresolved":false,"context_lines":[{"line_number":23,"context_line":" * @author Corentin Ardeois"},{"line_number":24,"context_line":" */"},{"line_number":25,"context_line":"export default class AbstractVersionedService extends AbstractService {"},{"line_number":26,"context_line":"  constructor (endpointUrl, supportedVersions) {"},{"line_number":27,"context_line":"    super();"},{"line_number":28,"context_line":"    this._endpointUrl \u003d endpointUrl;"},{"line_number":29,"context_line":"    this._supportedVersions \u003d supportedVersions;"}],"source_content_type":"text/javascript","patch_set":1,"id":"fa7ab95a_22532e6e","line":26,"updated":"2016-08-30 23:06:20.000000000","message":"I think the constructor documentation block is required. Could you check the docs build to confirm?","commit_id":"29397f9f04f67c55caca2005737a986d49e9a22e"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"6b0ea53703444efb09cb4c0351aaedc45b0aa7ff","unresolved":false,"context_lines":[{"line_number":26,"context_line":"  constructor (endpointUrl, supportedVersions) {"},{"line_number":27,"context_line":"    super();"},{"line_number":28,"context_line":"    this._endpointUrl \u003d endpointUrl;"},{"line_number":29,"context_line":"    this._supportedVersions \u003d supportedVersions;"},{"line_number":30,"context_line":"  }"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  /**"}],"source_content_type":"text/javascript","patch_set":1,"id":"fa7ab95a_42911252","line":29,"updated":"2016-08-30 23:06:20.000000000","message":"Oooh, smart.","commit_id":"29397f9f04f67c55caca2005737a986d49e9a22e"},{"author":{"_account_id":9717,"name":"Michael Krotscheck","email":"krotscheck@gmail.com","username":"krotscheck"},"change_message_id":"6b0ea53703444efb09cb4c0351aaedc45b0aa7ff","unresolved":false,"context_lines":[{"line_number":60,"context_line":"      .versions()"},{"line_number":61,"context_line":"      .then((versions) \u003d\u003e {"},{"line_number":62,"context_line":"        for (let version of versions) {"},{"line_number":63,"context_line":"          if (this.supportedVersions.indexOf(version.id) \u003e -1) {"},{"line_number":64,"context_line":"            return version;"},{"line_number":65,"context_line":"          }"},{"line_number":66,"context_line":"        }"}],"source_content_type":"text/javascript","patch_set":1,"id":"fa7ab95a_8245dab4","line":63,"updated":"2016-08-30 23:06:20.000000000","message":"This will definitely not work in the long run - Some of the services already support the microversions specification, meaning that we need to check for a max_version and min_version field. For now, though, this is simple enough.","commit_id":"29397f9f04f67c55caca2005737a986d49e9a22e"}]}
