)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4b74e138413fdfc21f57b98e9305a9aad0a7f2c8","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dustin Cowles \u003cdustin.cowles@intel.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2019-11-07 11:25:30 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Spec: Provider config YAML file"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"During implementation it was found that there is no reliable method"},{"line_number":10,"context_line":"to identify identification conflicts between actual UUID/NAME and"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_199bb073","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":31},"updated":"2019-11-08 15:14:28.000000000","message":"Suggest making these titles reflect what the commit is doing, like \"Update provider config spec for identification conflicts\". Makes it easier to tell e.g. from git history or a view like [1] what\u0027s actually going on.\n\n[1] https://review.opendev.org/#/q/project:openstack/nova-specs+branch:master+topic:bp/provider-config-file","commit_id":"b44811352ca34ad4b0ed622e742eb4f6e8a47726"}],"specs/ussuri/approved/provider-config-file.rst":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4b74e138413fdfc21f57b98e9305a9aad0a7f2c8","unresolved":false,"context_lines":[{"line_number":119,"context_line":"    # List of dicts"},{"line_number":120,"context_line":"      # Identify a single provider to configure."},{"line_number":121,"context_line":"      # Exactly one of uuid or name is mandatory. Specifying both is an error."},{"line_number":122,"context_line":"      # The consuming nova-compute service will only use the first entry if the"},{"line_number":123,"context_line":"      #  same provider is specified more than once across all provider configs."},{"line_number":124,"context_line":"      # NOTE: Caution should be exercised when identifying ironic nodes,"},{"line_number":125,"context_line":"      # especially via the `$COMPUTE_NODE` special value. If an ironic node"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_b985bc09","line":122,"range":{"start_line":122,"start_character":43,"end_line":122,"end_character":47},"updated":"2019-11-08 15:14:28.000000000","message":"will warn and...","commit_id":"b44811352ca34ad4b0ed622e742eb4f6e8a47726"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4b74e138413fdfc21f57b98e9305a9aad0a7f2c8","unresolved":false,"context_lines":[{"line_number":241,"context_line":"  The exact location and signature of this method, as well as how it detects"},{"line_number":242,"context_line":"  conflicts, is left to the implementation. In the event that a resource"},{"line_number":243,"context_line":"  provider is identified twice (e.g. via UUID and $COMPUTE_NODE in different"},{"line_number":244,"context_line":"  files) then only the entry in the first processed file is to be used."},{"line_number":245,"context_line":"  Additional entries should be logged and ignored."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"``_update_to_placement``"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_f97a54ee","line":244,"range":{"start_line":244,"start_character":36,"end_line":244,"end_character":56},"updated":"2019-11-08 15:14:28.000000000","message":"Okay, so this means when we document for ironic we need to make it clear that they should make sure their \"generic\" entry sorts last.","commit_id":"b44811352ca34ad4b0ed622e742eb4f6e8a47726"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4b74e138413fdfc21f57b98e9305a9aad0a7f2c8","unresolved":false,"context_lines":[{"line_number":242,"context_line":"  conflicts, is left to the implementation. In the event that a resource"},{"line_number":243,"context_line":"  provider is identified twice (e.g. via UUID and $COMPUTE_NODE in different"},{"line_number":244,"context_line":"  files) then only the entry in the first processed file is to be used."},{"line_number":245,"context_line":"  Additional entries should be logged and ignored."},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"``_update_to_placement``"},{"line_number":248,"context_line":"  In the ResourceTracker\u0027s ``_update_to_placement`` flow, the merging method is"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_792184fc","line":245,"range":{"start_line":245,"start_character":31,"end_line":245,"end_character":37},"updated":"2019-11-08 15:14:28.000000000","message":"✔","commit_id":"b44811352ca34ad4b0ed622e742eb4f6e8a47726"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"4b74e138413fdfc21f57b98e9305a9aad0a7f2c8","unresolved":false,"context_lines":[{"line_number":294,"context_line":"An understanding of this file and its implications is only required when the"},{"line_number":295,"context_line":"operator desires provider customization. The deployer should be aware of the"},{"line_number":296,"context_line":"order of loading for provider config files and assure that if $COMPUTE_NODE and"},{"line_number":297,"context_line":"UUID/NAME are both used to identify providers, that file names are ordered"},{"line_number":298,"context_line":"appropriately."},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"Developer impact"},{"line_number":301,"context_line":"----------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"3fa7e38b_b984dcd4","line":298,"range":{"start_line":297,"start_character":67,"end_line":298,"end_character":13},"updated":"2019-11-08 15:14:28.000000000","message":"yeah, this","commit_id":"b44811352ca34ad4b0ed622e742eb4f6e8a47726"},{"author":{"_account_id":29334,"name":"Dakshina Ilangovan","email":"dakshina.ilangovan@intel.com","username":"dakshinai"},"change_message_id":"f3d165520d58b9bdf7680ad8d4668eebf8b8aaf7","unresolved":false,"context_lines":[{"line_number":134,"context_line":"          # identified by name or uuid."},{"line_number":135,"context_line":"          uuid: ($uuid_pattern|\"$COMPUTE_NODE\")"},{"line_number":136,"context_line":"          # Name of the provider."},{"line_number":137,"context_line":"          name: $string"},{"line_number":138,"context_line":"      # Customize provider inventories"},{"line_number":139,"context_line":"      inventories:"},{"line_number":140,"context_line":"          # This section allows the admin to specify various adjectives to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_5ba50eb3","line":137,"range":{"start_line":137,"start_character":10,"end_line":137,"end_character":14},"updated":"2019-11-21 00:21:07.000000000","message":"Will we continue to support name for identification?","commit_id":"7aaa79f019e6bd3c81f45712a4fab74cd127c217"},{"author":{"_account_id":29745,"name":"Dustin Cowles","email":"cowlesd@gmail.com","username":"dustinc","status":"inactive"},"change_message_id":"9d91c19e4befb6e4784936980a6514dbbd574263","unresolved":false,"context_lines":[{"line_number":134,"context_line":"          # identified by name or uuid."},{"line_number":135,"context_line":"          uuid: ($uuid_pattern|\"$COMPUTE_NODE\")"},{"line_number":136,"context_line":"          # Name of the provider."},{"line_number":137,"context_line":"          name: $string"},{"line_number":138,"context_line":"      # Customize provider inventories"},{"line_number":139,"context_line":"      inventories:"},{"line_number":140,"context_line":"          # This section allows the admin to specify various adjectives to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_e87180df","line":137,"range":{"start_line":137,"start_character":10,"end_line":137,"end_character":14},"in_reply_to":"3fa7e38b_5ba50eb3","updated":"2019-11-21 18:17:37.000000000","message":"Yes, of all the options proposed this will actually be the easiest to implement since it is already done.","commit_id":"7aaa79f019e6bd3c81f45712a4fab74cd127c217"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1b4f304176d36dfd4b6d5b3b79a2dc3357660aab","unresolved":false,"context_lines":[{"line_number":134,"context_line":"          # identified by name or uuid."},{"line_number":135,"context_line":"          uuid: ($uuid_pattern|\"$COMPUTE_NODE\")"},{"line_number":136,"context_line":"          # Name of the provider."},{"line_number":137,"context_line":"          name: $string"},{"line_number":138,"context_line":"      # Customize provider inventories"},{"line_number":139,"context_line":"      inventories:"},{"line_number":140,"context_line":"          # This section allows the admin to specify various adjectives to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_dd5f9de2","line":137,"range":{"start_line":137,"start_character":10,"end_line":137,"end_character":14},"in_reply_to":"3fa7e38b_7d6469e5","updated":"2019-11-22 00:22:05.000000000","message":"All except for that very last part.\n\n$COMPUTE_NODE exists for two purposes:\n- to allow you to set up your configuration before the provider name/uuid is known;\n- to allow you to set defaults for any compute nodes not specified explicitly.\n\nThe latter only applies to ironic. And ironic is also the only case where a node can \"appear\" at runtime. So in that case, we first look for it by name/uuid (which for ironic are the same) and if not found, use $COMPUTE_NODE.\n\nThe only scenario where we ignore+log is when a provider appears whose explicit name and uuid both exist in the config. And that can only happen for nested providers, never for compute nodes (ironic or otherwise).","commit_id":"7aaa79f019e6bd3c81f45712a4fab74cd127c217"},{"author":{"_account_id":29334,"name":"Dakshina Ilangovan","email":"dakshina.ilangovan@intel.com","username":"dakshinai"},"change_message_id":"dcbae80569c162d4505ac74598ed5e5b0028f12b","unresolved":false,"context_lines":[{"line_number":134,"context_line":"          # identified by name or uuid."},{"line_number":135,"context_line":"          uuid: ($uuid_pattern|\"$COMPUTE_NODE\")"},{"line_number":136,"context_line":"          # Name of the provider."},{"line_number":137,"context_line":"          name: $string"},{"line_number":138,"context_line":"      # Customize provider inventories"},{"line_number":139,"context_line":"      inventories:"},{"line_number":140,"context_line":"          # This section allows the admin to specify various adjectives to"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_7d6469e5","line":137,"range":{"start_line":137,"start_character":10,"end_line":137,"end_character":14},"in_reply_to":"3fa7e38b_e87180df","updated":"2019-11-22 00:08:35.000000000","message":"Just to reiterate, before init, you will be checking for uuid/name duplicates and failing the service.\n\nAfter init, uuid/name takes precedence over $COMPUTE_NODE, but duplicates within uuid/name or cases with only $COMPUTE_NODE resolving to same uuid is repeated, you would ignore the rps and log a warning.","commit_id":"7aaa79f019e6bd3c81f45712a4fab74cd127c217"},{"author":{"_account_id":29334,"name":"Dakshina Ilangovan","email":"dakshina.ilangovan@intel.com","username":"dakshinai"},"change_message_id":"f3d165520d58b9bdf7680ad8d4668eebf8b8aaf7","unresolved":false,"context_lines":[{"line_number":242,"context_line":"  inventory of a resource class managed by the virt driver. Conflicts should"},{"line_number":243,"context_line":"  log a warning and cause the conflicting config inventory to be ignored."},{"line_number":244,"context_line":"  The exact location and signature of this method, as well as how it detects"},{"line_number":245,"context_line":"  conflicts, is left to the implementation. In the event that a resource"},{"line_number":246,"context_line":"  provider is identified by both explicit UUID/NAME and $COMPUTE_NODE, only the"},{"line_number":247,"context_line":"  UUID/NAME record will be used."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"``_update_to_placement``"},{"line_number":250,"context_line":"  In the ResourceTracker\u0027s ``_update_to_placement`` flow, the merging method is"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_9b8dc62b","line":247,"range":{"start_line":245,"start_character":44,"end_line":247,"end_character":32},"updated":"2019-11-21 00:21:07.000000000","message":"After init, If $COMPUTE_NODE resolves to the same UUID, should we be skipping both the rps or following the precedence rule?","commit_id":"7aaa79f019e6bd3c81f45712a4fab74cd127c217"},{"author":{"_account_id":29745,"name":"Dustin Cowles","email":"cowlesd@gmail.com","username":"dustinc","status":"inactive"},"change_message_id":"9d91c19e4befb6e4784936980a6514dbbd574263","unresolved":false,"context_lines":[{"line_number":242,"context_line":"  inventory of a resource class managed by the virt driver. Conflicts should"},{"line_number":243,"context_line":"  log a warning and cause the conflicting config inventory to be ignored."},{"line_number":244,"context_line":"  The exact location and signature of this method, as well as how it detects"},{"line_number":245,"context_line":"  conflicts, is left to the implementation. In the event that a resource"},{"line_number":246,"context_line":"  provider is identified by both explicit UUID/NAME and $COMPUTE_NODE, only the"},{"line_number":247,"context_line":"  UUID/NAME record will be used."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"``_update_to_placement``"},{"line_number":250,"context_line":"  In the ResourceTracker\u0027s ``_update_to_placement`` flow, the merging method is"}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_88556c20","line":247,"range":{"start_line":245,"start_character":44,"end_line":247,"end_character":32},"in_reply_to":"3fa7e38b_9b8dc62b","updated":"2019-11-21 18:17:37.000000000","message":"Both options were discussed, but allowing entries with explicit uuid/name take precedence over $COMPUTE_NODE allows us to avoid running into unresolvable conflicts in periodic updates in a simpler manner.","commit_id":"7aaa79f019e6bd3c81f45712a4fab74cd127c217"}]}
