summaryrefslogtreecommitdiff
path: root/src/services/api/graphql/recipes
diff options
context:
space:
mode:
authorJohn Estabrook <jestabro@vyos.io>2022-08-22 12:03:56 -0500
committerJohn Estabrook <jestabro@vyos.io>2022-08-23 09:41:19 -0500
commitf66ad001e153ee42bc46edbe7df55145b7971544 (patch)
treee56905d2cd1455dbad37eabbc77583d2d76005fe /src/services/api/graphql/recipes
parentbf178babd96ee5b898f0dfa1f6e7d5a74fe34afd (diff)
downloadvyos-1x-f66ad001e153ee42bc46edbe7df55145b7971544.tar.gz
vyos-1x-f66ad001e153ee42bc46edbe7df55145b7971544.zip
graphql: T3993: reorganize/rename directory structure
Diffstat (limited to 'src/services/api/graphql/recipes')
-rw-r--r--src/services/api/graphql/recipes/__init__.py0
-rwxr-xr-xsrc/services/api/graphql/recipes/queries/system_status.py38
-rw-r--r--src/services/api/graphql/recipes/remove_firewall_address_group_members.py35
-rw-r--r--src/services/api/graphql/recipes/session.py207
-rw-r--r--src/services/api/graphql/recipes/templates/create_dhcp_server.tmpl9
-rw-r--r--src/services/api/graphql/recipes/templates/create_firewall_address_group.tmpl4
-rw-r--r--src/services/api/graphql/recipes/templates/create_firewall_address_ipv_6_group.tmpl4
-rw-r--r--src/services/api/graphql/recipes/templates/create_interface_ethernet.tmpl5
-rw-r--r--src/services/api/graphql/recipes/templates/remove_firewall_address_group_members.tmpl3
-rw-r--r--src/services/api/graphql/recipes/templates/remove_firewall_address_ipv_6_group_members.tmpl3
-rw-r--r--src/services/api/graphql/recipes/templates/update_firewall_address_group_members.tmpl3
-rw-r--r--src/services/api/graphql/recipes/templates/update_firewall_address_ipv_6_group_members.tmpl3
12 files changed, 0 insertions, 314 deletions
diff --git a/src/services/api/graphql/recipes/__init__.py b/src/services/api/graphql/recipes/__init__.py
deleted file mode 100644
index e69de29bb..000000000
--- a/src/services/api/graphql/recipes/__init__.py
+++ /dev/null
diff --git a/src/services/api/graphql/recipes/queries/system_status.py b/src/services/api/graphql/recipes/queries/system_status.py
deleted file mode 100755
index 8dadcc9f3..000000000
--- a/src/services/api/graphql/recipes/queries/system_status.py
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (C) 2022 VyOS maintainers and contributors
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License version 2 or later as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#
-
-import os
-import sys
-import json
-import importlib.util
-
-from vyos.defaults import directories
-
-from api.graphql.utils.util import load_op_mode_as_module
-
-def get_system_version() -> dict:
- show_version = load_op_mode_as_module('version.py')
- return show_version.show(raw=True, funny=False)
-
-def get_system_uptime() -> dict:
- show_uptime = load_op_mode_as_module('show_uptime.py')
- return show_uptime.get_raw_data()
-
-def get_system_ram_usage() -> dict:
- show_ram = load_op_mode_as_module('memory.py')
- return show_ram.show(raw=True)
diff --git a/src/services/api/graphql/recipes/remove_firewall_address_group_members.py b/src/services/api/graphql/recipes/remove_firewall_address_group_members.py
deleted file mode 100644
index b91932e14..000000000
--- a/src/services/api/graphql/recipes/remove_firewall_address_group_members.py
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 2021 VyOS maintainers and contributors <maintainers@vyos.io>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this library. If not, see <http://www.gnu.org/licenses/>.
-
-from . session import Session
-
-class RemoveFirewallAddressGroupMembers(Session):
- def __init__(self, session, data):
- super().__init__(session, data)
-
- # Define any custom processing of parameters here by overriding
- # configure:
- #
- # def configure(self):
- # self._data = transform_data(self._data)
- # super().configure()
- # self.clean_up()
-
- def configure(self):
- super().configure()
-
- group_name = self._data['name']
- path = ['firewall', 'group', 'address-group', group_name]
- self.delete_path_if_childless(path)
diff --git a/src/services/api/graphql/recipes/session.py b/src/services/api/graphql/recipes/session.py
deleted file mode 100644
index ac185beb7..000000000
--- a/src/services/api/graphql/recipes/session.py
+++ /dev/null
@@ -1,207 +0,0 @@
-# Copyright 2021-2022 VyOS maintainers and contributors <maintainers@vyos.io>
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# This library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public License
-# along with this library. If not, see <http://www.gnu.org/licenses/>.
-
-import os
-import json
-
-from ariadne import convert_camel_case_to_snake
-
-from vyos.config import Config
-from vyos.configtree import ConfigTree
-from vyos.defaults import directories
-from vyos.template import render
-
-from api.graphql.utils.util import load_op_mode_as_module, split_compound_op_mode_name
-
-op_mode_include_file = os.path.join(directories['data'], 'op-mode-standardized.json')
-
-class Session:
- """
- Wrapper for calling configsession functions based on GraphQL requests.
- Non-nullable fields in the respective schema allow avoiding a key check
- in 'data'.
- """
- def __init__(self, session, data):
- self._session = session
- self._data = data
- self._name = convert_camel_case_to_snake(type(self).__name__)
-
- try:
- with open(op_mode_include_file) as f:
- self._op_mode_list = json.loads(f.read())
- except Exception:
- self._op_mode_list = None
-
- def configure(self):
- session = self._session
- data = self._data
- func_base_name = self._name
-
- tmpl_file = f'{func_base_name}.tmpl'
- cmd_file = f'/tmp/{func_base_name}.cmds'
- tmpl_dir = directories['api_templates']
-
- try:
- render(cmd_file, tmpl_file, data, location=tmpl_dir)
- commands = []
- with open(cmd_file) as f:
- lines = f.readlines()
- for line in lines:
- commands.append(line.split())
- for cmd in commands:
- if cmd[0] == 'set':
- session.set(cmd[1:])
- elif cmd[0] == 'delete':
- session.delete(cmd[1:])
- else:
- raise ValueError('Operation must be "set" or "delete"')
- session.commit()
- except Exception as error:
- raise error
-
- def delete_path_if_childless(self, path):
- session = self._session
- config = Config(session.get_session_env())
- if not config.list_nodes(path):
- session.delete(path)
- session.commit()
-
- def show_config(self):
- session = self._session
- data = self._data
- out = ''
-
- try:
- out = session.show_config(data['path'])
- if data.get('config_format', '') == 'json':
- config_tree = vyos.configtree.ConfigTree(out)
- out = json.loads(config_tree.to_json())
- except Exception as error:
- raise error
-
- return out
-
- def save(self):
- session = self._session
- data = self._data
- if 'file_name' not in data or not data['file_name']:
- data['file_name'] = '/config/config.boot'
-
- try:
- session.save_config(data['file_name'])
- except Exception as error:
- raise error
-
- def load(self):
- session = self._session
- data = self._data
-
- try:
- session.load_config(data['file_name'])
- session.commit()
- except Exception as error:
- raise error
-
- def show(self):
- session = self._session
- data = self._data
- out = ''
-
- try:
- out = session.show(data['path'])
- except Exception as error:
- raise error
-
- return out
-
- def add(self):
- session = self._session
- data = self._data
-
- try:
- res = session.install_image(data['location'])
- except Exception as error:
- raise error
-
- return res
-
- def delete(self):
- session = self._session
- data = self._data
-
- try:
- res = session.remove_image(data['name'])
- except Exception as error:
- raise error
-
- return res
-
- def system_status(self):
- import api.graphql.recipes.queries.system_status as system_status
-
- session = self._session
- data = self._data
-
- status = {}
- status['host_name'] = session.show(['host', 'name']).strip()
- status['version'] = system_status.get_system_version()
- status['uptime'] = system_status.get_system_uptime()
- status['ram'] = system_status.get_system_ram_usage()
-
- return status
-
- def gen_op_query(self):
- session = self._session
- data = self._data
- name = self._name
- op_mode_list = self._op_mode_list
-
- # handle the case that the op-mode file contains underscores:
- if op_mode_list is None:
- raise FileNotFoundError(f"No op-mode file list at '{op_mode_include_file}'")
- (func_name, scriptname) = split_compound_op_mode_name(name, op_mode_list)
- if scriptname == '':
- raise FileNotFoundError(f"No op-mode file named in string '{name}'")
-
- mod = load_op_mode_as_module(f'{scriptname}')
- func = getattr(mod, func_name)
- if len(list(data)) > 0:
- res = func(True, **data)
- else:
- res = func(True)
-
- return res
-
- def gen_op_mutation(self):
- session = self._session
- data = self._data
- name = self._name
- op_mode_list = self._op_mode_list
-
- # handle the case that the op-mode file name contains underscores:
- if op_mode_list is None:
- raise FileNotFoundError(f"No op-mode file list at '{op_mode_include_file}'")
- (func_name, scriptname) = split_compound_op_mode_name(name, op_mode_list)
- if scriptname == '':
- raise FileNotFoundError(f"No op-mode file named in string '{name}'")
-
- mod = load_op_mode_as_module(f'{scriptname}')
- func = getattr(mod, func_name)
- if len(list(data)) > 0:
- res = func(**data)
- else:
- res = func()
-
- return res
diff --git a/src/services/api/graphql/recipes/templates/create_dhcp_server.tmpl b/src/services/api/graphql/recipes/templates/create_dhcp_server.tmpl
deleted file mode 100644
index 70de43183..000000000
--- a/src/services/api/graphql/recipes/templates/create_dhcp_server.tmpl
+++ /dev/null
@@ -1,9 +0,0 @@
-set service dhcp-server shared-network-name {{ shared_network_name }} subnet {{ subnet }} default-router {{ default_router }}
-set service dhcp-server shared-network-name {{ shared_network_name }} subnet {{ subnet }} name-server {{ name_server }}
-set service dhcp-server shared-network-name {{ shared_network_name }} subnet {{ subnet }} domain-name {{ domain_name }}
-set service dhcp-server shared-network-name {{ shared_network_name }} subnet {{ subnet }} lease {{ lease }}
-set service dhcp-server shared-network-name {{ shared_network_name }} subnet {{ subnet }} range {{ range }} start {{ start }}
-set service dhcp-server shared-network-name {{ shared_network_name }} subnet {{ subnet }} range {{ range }} stop {{ stop }}
-set service dns forwarding allow-from {{ dns_forwarding_allow_from }}
-set service dns forwarding cache-size {{ dns_forwarding_cache_size }}
-set service dns forwarding listen-address {{ dns_forwarding_listen_address }}
diff --git a/src/services/api/graphql/recipes/templates/create_firewall_address_group.tmpl b/src/services/api/graphql/recipes/templates/create_firewall_address_group.tmpl
deleted file mode 100644
index a890d0086..000000000
--- a/src/services/api/graphql/recipes/templates/create_firewall_address_group.tmpl
+++ /dev/null
@@ -1,4 +0,0 @@
-set firewall group address-group {{ name }}
-{% for add in address %}
-set firewall group address-group {{ name }} address {{ add }}
-{% endfor %}
diff --git a/src/services/api/graphql/recipes/templates/create_firewall_address_ipv_6_group.tmpl b/src/services/api/graphql/recipes/templates/create_firewall_address_ipv_6_group.tmpl
deleted file mode 100644
index e9b660722..000000000
--- a/src/services/api/graphql/recipes/templates/create_firewall_address_ipv_6_group.tmpl
+++ /dev/null
@@ -1,4 +0,0 @@
-set firewall group ipv6-address-group {{ name }}
-{% for add in address %}
-set firewall group ipv6-address-group {{ name }} address {{ add }}
-{% endfor %}
diff --git a/src/services/api/graphql/recipes/templates/create_interface_ethernet.tmpl b/src/services/api/graphql/recipes/templates/create_interface_ethernet.tmpl
deleted file mode 100644
index d9d7ed691..000000000
--- a/src/services/api/graphql/recipes/templates/create_interface_ethernet.tmpl
+++ /dev/null
@@ -1,5 +0,0 @@
-{% if replace %}
-delete interfaces ethernet {{ interface }} address
-{% endif %}
-set interfaces ethernet {{ interface }} address {{ address }}
-set interfaces ethernet {{ interface }} description {{ description }}
diff --git a/src/services/api/graphql/recipes/templates/remove_firewall_address_group_members.tmpl b/src/services/api/graphql/recipes/templates/remove_firewall_address_group_members.tmpl
deleted file mode 100644
index 458f3e5fc..000000000
--- a/src/services/api/graphql/recipes/templates/remove_firewall_address_group_members.tmpl
+++ /dev/null
@@ -1,3 +0,0 @@
-{% for add in address %}
-delete firewall group address-group {{ name }} address {{ add }}
-{% endfor %}
diff --git a/src/services/api/graphql/recipes/templates/remove_firewall_address_ipv_6_group_members.tmpl b/src/services/api/graphql/recipes/templates/remove_firewall_address_ipv_6_group_members.tmpl
deleted file mode 100644
index 0efa0b226..000000000
--- a/src/services/api/graphql/recipes/templates/remove_firewall_address_ipv_6_group_members.tmpl
+++ /dev/null
@@ -1,3 +0,0 @@
-{% for add in address %}
-delete firewall group ipv6-address-group {{ name }} address {{ add }}
-{% endfor %}
diff --git a/src/services/api/graphql/recipes/templates/update_firewall_address_group_members.tmpl b/src/services/api/graphql/recipes/templates/update_firewall_address_group_members.tmpl
deleted file mode 100644
index f56c61231..000000000
--- a/src/services/api/graphql/recipes/templates/update_firewall_address_group_members.tmpl
+++ /dev/null
@@ -1,3 +0,0 @@
-{% for add in address %}
-set firewall group address-group {{ name }} address {{ add }}
-{% endfor %}
diff --git a/src/services/api/graphql/recipes/templates/update_firewall_address_ipv_6_group_members.tmpl b/src/services/api/graphql/recipes/templates/update_firewall_address_ipv_6_group_members.tmpl
deleted file mode 100644
index f98a5517c..000000000
--- a/src/services/api/graphql/recipes/templates/update_firewall_address_ipv_6_group_members.tmpl
+++ /dev/null
@@ -1,3 +0,0 @@
-{% for add in address %}
-set firewall group ipv6-address-group {{ name }} address {{ add }}
-{% endfor %}