misc.python.materialize.zippy.all_actions

 1# Copyright Materialize, Inc. and contributors. All rights reserved.
 2#
 3# Use of this software is governed by the Business Source License
 4# included in the LICENSE file at the root of this repository.
 5#
 6# As of the Change Date specified in that file, in accordance with
 7# the Business Source License, use of this software will be governed
 8# by the Apache License, Version 2.0.
 9
10
11from materialize.zippy.balancerd_actions import BalancerdIsRunning
12from materialize.zippy.framework import (
13    Action,
14    ActionFactory,
15    Capabilities,
16    Capability,
17)
18from materialize.zippy.mz_actions import MzIsRunning
19from materialize.zippy.table_actions import ValidateTable
20from materialize.zippy.table_capabilities import TableExists
21from materialize.zippy.view_actions import ValidateView
22from materialize.zippy.view_capabilities import ViewExists
23
24
25class ValidateAll(ActionFactory):
26    """Emits ValidateView and ValidateTable for all eligible objects."""
27
28    @classmethod
29    def requires(cls) -> list[set[type[Capability]]]:
30        return [
31            {BalancerdIsRunning, MzIsRunning, TableExists},
32            {BalancerdIsRunning, MzIsRunning, ViewExists},
33        ]
34
35    def new(self, capabilities: Capabilities) -> list[Action]:
36        validations = []
37        for view in capabilities.get(ViewExists):
38            validations.append(ValidateView(capabilities=capabilities, view=view))
39
40        for table in capabilities.get(TableExists):
41            validations.append(ValidateTable(capabilities=capabilities, table=table))
42
43        return validations
class ValidateAll(materialize.zippy.framework.ActionFactory):
26class ValidateAll(ActionFactory):
27    """Emits ValidateView and ValidateTable for all eligible objects."""
28
29    @classmethod
30    def requires(cls) -> list[set[type[Capability]]]:
31        return [
32            {BalancerdIsRunning, MzIsRunning, TableExists},
33            {BalancerdIsRunning, MzIsRunning, ViewExists},
34        ]
35
36    def new(self, capabilities: Capabilities) -> list[Action]:
37        validations = []
38        for view in capabilities.get(ViewExists):
39            validations.append(ValidateView(capabilities=capabilities, view=view))
40
41        for table in capabilities.get(TableExists):
42            validations.append(ValidateTable(capabilities=capabilities, table=table))
43
44        return validations

Emits ValidateView and ValidateTable for all eligible objects.

@classmethod
def requires(cls) -> list[set[type[materialize.zippy.framework.Capability]]]:
29    @classmethod
30    def requires(cls) -> list[set[type[Capability]]]:
31        return [
32            {BalancerdIsRunning, MzIsRunning, TableExists},
33            {BalancerdIsRunning, MzIsRunning, ViewExists},
34        ]

Compute the capability classes that this Action Factory requires.

def new( self, capabilities: materialize.zippy.framework.Capabilities) -> list[materialize.zippy.framework.Action]:
36    def new(self, capabilities: Capabilities) -> list[Action]:
37        validations = []
38        for view in capabilities.get(ViewExists):
39            validations.append(ValidateView(capabilities=capabilities, view=view))
40
41        for table in capabilities.get(TableExists):
42            validations.append(ValidateTable(capabilities=capabilities, table=table))
43
44        return validations