)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"12d73b388692432396f002ab5318631ad221fbad","unresolved":false,"context_lines":[{"line_number":10,"context_line":"for users to enable the services for a given role. By default many are"},{"line_number":11,"context_line":"set to OS::Heat::None which Heat will create an empty ServiceChain for."},{"line_number":12,"context_line":"For large scale deployments this results in many extra stacks having to"},{"line_number":13,"context_line":"be manged by Heat."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"This change adds a function to look at the resource registry of the"},{"line_number":16,"context_line":"environment and will remove any unused services from the roles data."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"3fce034c_f0627c16","line":13,"range":{"start_line":13,"start_character":3,"end_line":13,"end_character":9},"updated":"2019-04-12 09:18:16.000000000","message":"nit: \"managed\"","commit_id":"59041d1807720754fa40f8098c3db459a7eec9de"}],"tripleo_common/actions/deployment.py":[{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"2841862b10673c17e31efbfafb08176af73f1f82","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        # processed"},{"line_number":203,"context_line":"        environment \u003d processed_data.get(\u0027environment\u0027, {})"},{"line_number":204,"context_line":"        resource_reg \u003d environment.get(\u0027resource_registry\u0027, {})"},{"line_number":205,"context_line":"        self._prune_unused_services(resource_reg, swift)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        stack_args \u003d processed_data.copy()"},{"line_number":208,"context_line":"        stack_args[\u0027timeout_mins\u0027] \u003d self.timeout_mins"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fce034c_3226e8b9","line":205,"updated":"2019-04-10 20:37:28.000000000","message":"this removes the unused services from the roles data file, which we then write back to the swift container.\n\nthen we more or less immediately deploy the stack directly with heat below.\n\nhowever, i don\u0027t see anything that would update the templates/plan to actually take into account the updated roles data file.\n\nin previous iterations of this patch, there was a 2nd call to the process templates action. I guess that\u0027s changed, but I\u0027m not seeing how this has any effect anymore.","commit_id":"87baebc804f326b75495139fed21b45bd46cb595"},{"author":{"_account_id":14985,"name":"Alex Schultz","email":"aschultz@next-development.com","username":"mwhahaha"},"change_message_id":"2f2ee3406defb3fc535931019d5185aadfb91ede","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        # processed"},{"line_number":203,"context_line":"        environment \u003d processed_data.get(\u0027environment\u0027, {})"},{"line_number":204,"context_line":"        resource_reg \u003d environment.get(\u0027resource_registry\u0027, {})"},{"line_number":205,"context_line":"        self._prune_unused_services(resource_reg, swift)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        stack_args \u003d processed_data.copy()"},{"line_number":208,"context_line":"        stack_args[\u0027timeout_mins\u0027] \u003d self.timeout_mins"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fce034c_b2ec18f4","line":205,"in_reply_to":"3fce034c_3226e8b9","updated":"2019-04-10 20:52:55.000000000","message":"What do you mean \"update the templates/plan to actually take into account the updated roles file\"?  This just updates the ServicesDefault on the role file.  It\u0027s not until heat takes the files and processes them that has any effects around here.  As far as I can tell the ServicesDefault value is not consumed anywhere else in the templates prior to the stack creation/update.  Any query to ServicesDefault is done on the stack after heat has processed it so this sets up the plan update (e.g. pushing to swift) and then lets heat do its thing.  The rerunning of the templates was actually the problem with the previous patch because it would remove the services and they\u0027d be there on the 2nd itteration but it wouldn\u0027t get put back.  We need to merge all the templates prior to inspecting the values for the resource registry.","commit_id":"87baebc804f326b75495139fed21b45bd46cb595"},{"author":{"_account_id":7144,"name":"James Slagle","email":"jslagle@redhat.com","username":"slagle"},"change_message_id":"6f665d7ca966744a47dcf07a6383247919f56ba9","unresolved":false,"context_lines":[{"line_number":202,"context_line":"        # processed"},{"line_number":203,"context_line":"        environment \u003d processed_data.get(\u0027environment\u0027, {})"},{"line_number":204,"context_line":"        resource_reg \u003d environment.get(\u0027resource_registry\u0027, {})"},{"line_number":205,"context_line":"        self._prune_unused_services(resource_reg, swift)"},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"        stack_args \u003d processed_data.copy()"},{"line_number":208,"context_line":"        stack_args[\u0027timeout_mins\u0027] \u003d self.timeout_mins"}],"source_content_type":"text/x-python","patch_set":7,"id":"3fce034c_5b138fb9","line":205,"in_reply_to":"3fce034c_b2ec18f4","updated":"2019-04-11 00:32:03.000000000","message":"Heat doesn\u0027t do anything with roles_data.yaml.\n\nThe contents of that file are never even passed to Heat. It\u0027s not even in the format of Heat template. So just updating that file in the plan does nothing. You have to update the file and re-process the templates.\n\nServicesDefault ends up as a parameter value in overcloud-resource-registry-puppet.yaml, and the value is read from roles_data.yaml and rendered into overcloud-resource-registry-puppet.yaml by jinja2.\n\nHeat does not run jinja2. That is what process-templates.py does (and the process templates action).\n\nOnce the templates are rendered, then they are passed to Heat.","commit_id":"87baebc804f326b75495139fed21b45bd46cb595"},{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"41deaff901e25e3e401f92f75c16a89b95493b74","unresolved":false,"context_lines":[{"line_number":218,"context_line":"            )"},{"line_number":219,"context_line":"            processed_data \u003d process_templates_action.run(context)"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"            # If we receive a \u0027Result\u0027 instance it is because the parent action"},{"line_number":223,"context_line":"            # had an error."},{"line_number":224,"context_line":"            if isinstance(processed_data, actions.Result):"}],"source_content_type":"text/x-python","patch_set":12,"id":"7faddb67_cb77fb9f","line":221,"updated":"2019-07-16 05:34:18.000000000","message":"drop this blank line (pep8 coughing)","commit_id":"a5a9e853be083e795630f02d6b55187849211b8d"}],"tripleo_common/utils/template.py":[{"author":{"_account_id":28223,"name":"Cedric Jeanneret","display_name":"cjeanner (Tengu)","email":"cjeanner@redhat.com","username":"cjeanner"},"change_message_id":"974d2be294022b5f590cea77a794d779396317d1","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                value.startswith(\u0027OS::Heat::None\u0027)):"},{"line_number":307,"context_line":"            to_remove.add(key)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    if not to_remove or not role_data:"},{"line_number":310,"context_line":"        LOG.info(\u0027No unused services to prune or no role data\u0027)"},{"line_number":311,"context_line":"        return False"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1fa4df85_9ad3f938","line":309,"updated":"2020-02-27 08:36:07.000000000","message":"we might want to move \"if not role_data\" before the loop l304 in order to get an early exit.","commit_id":"79edc6a65340f291f9d96f77d843d1d6baf5770e"},{"author":{"_account_id":8833,"name":"Rabi Mishra","email":"ramishra@redhat.com","username":"rabi"},"change_message_id":"8f3fe5e5c1187791c43c8961d3bb61448c1eaa6a","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                value.startswith(\u0027OS::Heat::None\u0027)):"},{"line_number":307,"context_line":"            to_remove.add(key)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    if not to_remove or not role_data:"},{"line_number":310,"context_line":"        LOG.info(\u0027No unused services to prune or no role data\u0027)"},{"line_number":311,"context_line":"        return False"},{"line_number":312,"context_line":""}],"source_content_type":"text/x-python","patch_set":15,"id":"1fa4df85_babfd5ce","line":309,"in_reply_to":"1fa4df85_9ad3f938","updated":"2020-02-27 08:43:23.000000000","message":"I kept the check as it was there before, but it\u0027s redundant (role_data would never be empty for a deployment).","commit_id":"79edc6a65340f291f9d96f77d843d1d6baf5770e"}]}
