[chef-dev] Re: Regression in recipe_eval in 10.14 ?


Chronological Thread 
  • From: Bryan McLellan < >
  • To: Andrea Campi < >
  • Cc: Chef Dev < >
  • Subject: [chef-dev] Re: Regression in recipe_eval in 10.14 ?
  • Date: Mon, 1 Oct 2012 17:31:27 -0400

On Mon, Oct 1, 2012 at 3:55 AM, Andrea Campi
< >
 wrote:
> I'm seeing something that I believe is a regression in 10.14 related to 
> why-run.

Yeah, I recognize this yak from working on the deploy provider.

#converge_by adds actions to the @converge_actions instance in the
/provider/ instance, not in a common parent like the run context.

I spent almost all day trying to make sense of this.

1) RevalBroken['broken'] (LWRP) is converged.

It creates ruby_block["broken before_deploy"] which is added to the
resource collection.

It has no converge_by blocks, so it has no ConvergeActions.

2) ruby_block["broken before_deploy"] is converged.

Calling the code block is in converge_by, so it gets added to
ruby_block["broken before_deploy"].converge_actions.

We run that converge_action.

3) recipe_eval is called.

recipe_eval wraps instance_eval (which all happens as a separate chef
run) in a converge_by block, which gets added to:
RevalBroken['broken']

Note that we've already run that providers converge_actions, so the
actual recipe_eval converge_action never happens.

I'm still having a hard time following why this is true.

Bryan



Archive powered by MHonArc 2.6.16.

§