Skip to content

Commit

Permalink
Merge pull request #1094 from fishtown-analytics/fix/only-error-skip-…
Browse files Browse the repository at this point in the history
…on-ephemeral-failures

Fix error skip criteria (#1093)
  • Loading branch information
beckjake authored Oct 29, 2018
2 parents 23dfcdd + 46dc4ea commit 37a888d
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions dbt/node_runners.py
Original file line number Diff line number Diff line change
Expand Up @@ -167,21 +167,20 @@ def run(self, compiled_node, manifest):
def after_execute(self, result):
raise NotImplementedException()

def _skip_caused_by_ephemeral_failure(self):
if self.skip_cause is None or self.skip_cause.node is None:
return False
return self.is_ephemeral_model(self.skip_cause.node)

def on_skip(self):
schema_name = self.node.schema
node_name = self.node.name

error = None
if not self.is_ephemeral_model(self.node):
if self.skip_cause is None:
dbt.ui.printer.print_skip_line(
self.node,
schema_name,
node_name,
self.node_index,
self.num_nodes
)
else:
# if this model was skipped due to an upstream ephemeral model
# failure, print a special 'error skip' message.
if self._skip_caused_by_ephemeral_failure():
dbt.ui.printer.print_skip_caused_by_error(
self.node,
schema_name,
Expand All @@ -192,9 +191,18 @@ def on_skip(self):
)
# set an error so dbt will exit with an error code
error = (
'Compilation Error in referenced ephemeral model {}.{}'
.format(self.skip_cause.node.schema,
self.skip_cause.node.name)
'Compilation Error in {}, caused by compilation error '
'in referenced ephemeral model {}'
.format(self.node.unique_id,
self.skip_cause.node.unique_id)
)
else:
dbt.ui.printer.print_skip_line(
self.node,
schema_name,
node_name,
self.node_index,
self.num_nodes
)

node_result = RunModelResult(self.node, skip=True, error=error)
Expand Down

0 comments on commit 37a888d

Please sign in to comment.