def apply_step(project_root, environment, step)
      # Check if environment has configured the ssh keys
      (return warn _('wizard.provision.ssh_key_advice')%{environment: environment}) unless Bebox::Environment.check_environment_access(project_root, environment)
      nodes_to_step = Bebox::Node.nodes_in_environment(project_root, environment, previous_checkpoint(step))
      # Check if there are nodes for provisioning step-N
      (return warn _('wizard.provision.no_provision_nodes')%{step: step}) unless nodes_to_step.count > 0
      nodes_for_provisioning(nodes_to_step, step)
      # Apply the nodes provisioning for step-N
      in_step_nodes = Bebox::Node.list(project_root, environment, "steps/#{step}")
      outputs = []
      nodes_to_step.each do |node|
        next unless check_node_to_step(node, in_step_nodes, step)
        outputs << provision_step_in_node(project_root, environment, step, in_step_nodes, node)
      end
      return outputs
    end
def apply_step(project_root, environment, step)
      # Check if environment has configured the ssh keys
      (return warn _('wizard.provision.ssh_key_advice')%{environment: environment}) unless Bebox::Environment.check_environment_access(project_root, environment)
      nodes_to_step = Bebox::Node.nodes_in_environment(project_root, environment, previous_checkpoint(step))
      # Check if there are nodes for provisioning step-N
      (return warn _('wizard.provision.no_provision_nodes')%{step: step}) unless nodes_to_step.count > 0
      nodes_for_provisioning(nodes_to_step, step)
      # Apply the nodes provisioning for step-N
      in_step_nodes = Bebox::Node.list(project_root, environment, "steps/#{step}")
      outputs = []
      nodes_to_step.each do |node|
        next unless check_node_to_step(node, in_step_nodes, step)
        outputs << provision_step_in_node(project_root, environment, step, in_step_nodes, node)
      end
      return outputs
    end
Apply a step for the nodes in a environment