diff --git a/api/__init__.py b/api/__init__.py index 16e2e5f..1bd0975 100644 --- a/api/__init__.py +++ b/api/__init__.py @@ -19,7 +19,7 @@ from .database import pick_snapshot from .database import pick_operation, sync_with_server from .database import get_restore_operation, set_restore_operation, set_restore_operation_to_current, restore -from .batch_cmds import execute_batch_commands, execute_batch_command +from .batch_exe import execute_batch_commands, execute_batch_command from .s0_base import JUNCTION, RESERVOIR, TANK, PIPE, PUMP, VALVE, PATTERN, CURVE from .s0_base import is_node, is_junction, is_reservoir, is_tank @@ -32,25 +32,25 @@ from .s0_base import get_node_links from .s1_title import get_title_schema, get_title, set_title from .s2_junctions import get_junction_schema, add_junction, get_junction, set_junction -from .api_batch import delete_junction_cascade +from .batch_api import delete_junction_cascade from .s3_reservoirs import get_reservoir_schema, add_reservoir, get_reservoir, set_reservoir -from .api_batch import delete_reservoir_cascade +from .batch_api import delete_reservoir_cascade from .s4_tanks import OVERFLOW_YES, OVERFLOW_NO from .s4_tanks import get_tank_schema, add_tank, get_tank, set_tank -from .api_batch import delete_tank_cascade +from .batch_api import delete_tank_cascade from .s5_pipes import PIPE_STATUS_OPEN, PIPE_STATUS_CLOSED, PIPE_STATUS_CV from .s5_pipes import get_pipe_schema, add_pipe, get_pipe, set_pipe -from .api_batch import delete_pipe_cascade +from .batch_api import delete_pipe_cascade from .s6_pumps import get_pump_schema, add_pump, get_pump, set_pump -from .api_batch import delete_pump_cascade +from .batch_api import delete_pump_cascade from .s7_valves import VALVES_TYPE_PRV, VALVES_TYPE_PSV, VALVES_TYPE_PBV, VALVES_TYPE_FCV, VALVES_TYPE_TCV, VALVES_TYPE_GPV from .s7_valves import get_valve_schema, add_valve, get_valve, set_valve -from .api_batch import delete_valve_cascade +from .batch_api import delete_valve_cascade from .s8_tags import TAG_TYPE_NODE, TAG_TYPE_LINK from .s8_tags import get_tag_schema, get_tags, get_tag, set_tag @@ -61,11 +61,11 @@ from .s10_status import LINK_STATUS_OPEN, LINK_STATUS_CLOSED, LINK_STATUS_ACTIVE from .s10_status import get_status_schema, get_status, set_status from .s11_patterns import get_pattern_schema, get_pattern, set_pattern, add_pattern -from .api_batch import delete_pattern_cascade +from .batch_api import delete_pattern_cascade from .s12_curves import CURVE_TYPE_PUMP, CURVE_TYPE_EFFICIENCY, CURVE_TYPE_VOLUME, CURVE_TYPE_HEADLOSS from .s12_curves import get_curve_schema, get_curve, set_curve, add_curve -from .api_batch import delete_curve_cascade +from .batch_api import delete_curve_cascade from .s13_controls import get_control_schema, get_control, set_control @@ -98,7 +98,7 @@ from .s23_options_util import OPTION_UNBALANCED_STOP, OPTION_UNBALANCED_CONTINUE from .s23_options_util import OPTION_DEMAND_MODEL_DDA, OPTION_DEMAND_MODEL_PDA from .s23_options_util import OPTION_QUALITY_NONE, OPTION_QUALITY_CHEMICAL, OPTION_QUALITY_AGE, OPTION_QUALITY_TRACE from .s23_options_util import get_option_schema, get_option -from .api_batch import set_option_ex +from .batch_api import set_option_ex from .s23_options_util import OPTION_V3_FLOW_UNITS_CFS, OPTION_V3_FLOW_UNITS_GPM, OPTION_V3_FLOW_UNITS_MGD, OPTION_V3_FLOW_UNITS_IMGD, OPTION_V3_FLOW_UNITS_AFD, OPTION_V3_FLOW_UNITS_LPS, OPTION_V3_FLOW_UNITS_LPM, OPTION_V3_FLOW_UNITS_MLD, OPTION_V3_FLOW_UNITS_CMH, OPTION_V3_FLOW_UNITS_CMD from .s23_options_util import OPTION_V3_PRESSURE_UNITS_PSI, OPTION_V3_PRESSURE_UNITS_KPA, OPTION_V3_PRESSURE_UNITS_M @@ -110,7 +110,7 @@ from .s23_options_util import OPTION_V3_LEAKAGE_MODEL_NONE, OPTION_V3_LEAKAGE_MO from .s23_options_util import OPTION_V3_QUALITY_MODEL_NONE, OPTION_V3_QUALITY_MODEL_CHEMICAL, OPTION_V3_QUALITY_MODEL_AGE, OPTION_V3_QUALITY_MODEL_TRACE from .s23_options_util import OPTION_V3_QUALITY_UNITS_HRS, OPTION_V3_QUALITY_UNITS_PCNT, OPTION_V3_QUALITY_UNITS_MGL, OPTION_V3_QUALITY_UNITS_UGL from .s23_options_util import get_option_v3_schema, get_option_v3 -from .api_batch import set_option_v3_ex +from .batch_api import set_option_v3_ex from .s24_coordinates import get_node_coord @@ -122,14 +122,14 @@ from .s27_backdrop import get_backdrop_schema, get_backdrop, set_backdrop from .s29_scada_device import SCADA_DEVICE_TYPE_PRESSURE, SCADA_DEVICE_TYPE_DEMAND, SCADA_DEVICE_TYPE_QUALITY, SCADA_DEVICE_TYPE_LEVEL, SCADA_DEVICE_TYPE_FLOW from .s29_scada_device import get_scada_device_schema, get_scada_devices, get_scada_device, set_scada_device, add_scada_device, delete_scada_device -from .api_batch import clean_scada_device +from .batch_api import clean_scada_device from .s30_scada_device_data import get_scada_device_data_schema, get_scada_device_data, set_scada_device_data, add_scada_device_data, delete_scada_device_data -from .api_batch import clean_scada_device_data +from .batch_api import clean_scada_device_data from .s31_scada_element import SCADA_MODEL_TYPE_JUNCTION, SCADA_MODEL_TYPE_RESERVOIR, SCADA_MODEL_TYPE_TANK, SCADA_MODEL_TYPE_PIPE, SCADA_MODEL_TYPE_PUMP, SCADA_MODEL_TYPE_VALVE from .s31_scada_element import SCADA_ELEMENT_STATUS_OFFLINE, SCADA_ELEMENT_STATUS_ONLINE from .s31_scada_element import get_scada_element_schema, get_scada_elements, get_scada_element, set_scada_element, add_scada_element, delete_scada_element -from .api_batch import clean_scada_element +from .batch_api import clean_scada_element from .s37_virtual_district import calculate_virtual_district \ No newline at end of file diff --git a/api/api_batch.py b/api/api_batch.py deleted file mode 100644 index 091d2d4..0000000 --- a/api/api_batch.py +++ /dev/null @@ -1,70 +0,0 @@ -from .batch_cmds import execute_batch_command -from .api_cs import * - - -def delete_junction_cascade(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0] |= { 'operation' : API_DELETE, 'type' : 'junction' } - #raw_cmd = delete_junction_cascade_batch_cmd(name, cs) - return execute_batch_command(name, cs) - - -def delete_reservoir_cascade(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0] |= { 'operation' : API_DELETE, 'type' : 'reservoir' } - #raw_cmd = delete_reservoir_cascade_batch_cmd(name, cs) - return execute_batch_command(name, cs) - - -def delete_tank_cascade(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0] |= { 'operation' : API_DELETE, 'type' : 'tank' } - #raw_cmd = delete_tank_cascade_batch_cmd(name, cs) - return execute_batch_command(name, cs) - - -def delete_pipe_cascade(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0] |= { 'operation' : API_DELETE, 'type' : 'pipe' } - #raw_cmd = delete_pipe_cascade_batch_cmd(name, cs) - return execute_batch_command(name, cs) - - -def delete_pump_cascade(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0] |= { 'operation' : API_DELETE, 'type' : 'pump' } - #raw_cmd = delete_pump_cascade_batch_cmd(name, cs) - return execute_batch_command(name, cs) - - -def delete_valve_cascade(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0] |= { 'operation' : API_DELETE, 'type' : 'valve' } - #raw_cmd = delete_valve_cascade_batch_cmd(name, cs) - return execute_batch_command(name, cs) - - -def delete_pattern_cascade(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0] |= { 'operation' : API_DELETE, 'type' : 'pattern' } - #raw_cmd = delete_pattern_cascade_batch_cmd(name, cs) - return execute_batch_command(name, cs) - - -def delete_curve_cascade(name: str, cs: ChangeSet) -> ChangeSet: - cs.operations[0] |= { 'operation' : API_DELETE, 'type' : 'curve' } - #raw_cmd = delete_curve_cascade_batch_cmd(name, cs) - return execute_batch_command(name, cs) - - -def set_option_ex(name: str, cs: ChangeSet) -> ChangeSet: - return execute_batch_command(name, set_option_cs(cs)) - - -def set_option_v3_ex(name: str, cs: ChangeSet) -> ChangeSet: - return execute_batch_command(name, set_option_v3_cs(cs)) - - -def clean_scada_device(name: str) -> ChangeSet: - return execute_batch_command(name, clean_scada_device_cs(name)) - - -def clean_scada_device_data(name: str) -> ChangeSet: - return execute_batch_command(name, clean_scada_device_data_cs(name)) - - -def clean_scada_element(name: str) -> ChangeSet: - return execute_batch_command(name, clean_scada_element_cs(name)) diff --git a/api/batch_api.py b/api/batch_api.py new file mode 100644 index 0000000..a98884d --- /dev/null +++ b/api/batch_api.py @@ -0,0 +1,65 @@ +from .sections import * +from .batch_api_cs import * +from .batch_exe import execute_batch_command + + +def delete_junction_cascade(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_DELETE, 'type' : s2_junction } + return execute_batch_command(name, cs) + + +def delete_reservoir_cascade(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_DELETE, 'type' : s3_reservoir } + return execute_batch_command(name, cs) + + +def delete_tank_cascade(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_DELETE, 'type' : s4_tank } + return execute_batch_command(name, cs) + + +def delete_pipe_cascade(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_DELETE, 'type' : s5_pipe } + return execute_batch_command(name, cs) + + +def delete_pump_cascade(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_DELETE, 'type' : s6_pump } + return execute_batch_command(name, cs) + + +def delete_valve_cascade(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_DELETE, 'type' : s7_valve } + return execute_batch_command(name, cs) + + +def delete_pattern_cascade(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_DELETE, 'type' : s11_pattern } + return execute_batch_command(name, cs) + + +def delete_curve_cascade(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_DELETE, 'type' : s12_curve } + return execute_batch_command(name, cs) + + +def set_option_ex(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_UPDATE, 'type' : s23_option } + return execute_batch_command(name, cs) + + +def set_option_v3_ex(name: str, cs: ChangeSet) -> ChangeSet: + cs.operations[0] |= { 'operation' : API_UPDATE, 'type' : s23_option_v3 } + return execute_batch_command(name, cs) + + +def clean_scada_device(name: str) -> ChangeSet: + return execute_batch_command(name, clean_scada_device_cs(name)) + + +def clean_scada_device_data(name: str) -> ChangeSet: + return execute_batch_command(name, clean_scada_device_data_cs(name)) + + +def clean_scada_element(name: str) -> ChangeSet: + return execute_batch_command(name, clean_scada_element_cs(name)) diff --git a/api/api_cs.py b/api/batch_api_cs.py similarity index 99% rename from api/api_cs.py rename to api/batch_api_cs.py index 33705f4..6db3f3a 100644 --- a/api/api_cs.py +++ b/api/batch_api_cs.py @@ -260,7 +260,7 @@ def clean_scada_element_cs(name: str) -> ChangeSet: return cs -def extend(name: str, cs: ChangeSet) -> ChangeSet: +def rewrite_batch_api(name: str, cs: ChangeSet) -> ChangeSet: op = cs.operations[0] api = op['operation'] type = op['type'] diff --git a/api/batch_cmds.py b/api/batch_exe.py similarity index 96% rename from api/batch_cmds.py rename to api/batch_exe.py index f0cd93a..cb41355 100644 --- a/api/batch_cmds.py +++ b/api/batch_exe.py @@ -29,7 +29,7 @@ from .s27_backdrop import set_backdrop from .s29_scada_device import set_scada_device, add_scada_device, delete_scada_device from .s30_scada_device_data import set_scada_device_data, add_scada_device_data, delete_scada_device_data from .s31_scada_element import set_scada_element, add_scada_element, delete_scada_element -from .api_cs import extend +from .batch_api_cs import rewrite_batch_api def execute_add_command(name: str, cs: ChangeSet) -> ChangeSet: @@ -264,13 +264,9 @@ def execute_delete_command(name: str, cs: ChangeSet) -> ChangeSet: def execute_batch_commands(name: str, cs: ChangeSet) -> ChangeSet: - # for delete, generate cascade command new_cs = ChangeSet() for op in cs.operations: - if op['operation'] == API_DELETE: - new_cs.merge(extend(name, ChangeSet(op))) - else: - new_cs.merge(ChangeSet(op)) + new_cs.merge(rewrite_batch_api(name, ChangeSet(op))) result = ChangeSet() @@ -296,13 +292,9 @@ def execute_batch_command(name: str, cs: ChangeSet) -> ChangeSet: write(name, 'delete from batch_operation where id > 0') write(name, "update operation_table set option = 'batch_operation' where option = 'operation'") - # for delete, generate cascade command new_cs = ChangeSet() for op in cs.operations: - if op['operation'] == API_DELETE: - new_cs.merge(extend(name, ChangeSet(op))) - else: - new_cs.merge(ChangeSet(op)) + new_cs.merge(rewrite_batch_api(name, ChangeSet(op))) result = ChangeSet()