From 093ac258c11894b07afd9e85a61778d23e356718 Mon Sep 17 00:00:00 2001
From: John Estabrook <jestabro@vyos.io>
Date: Sun, 23 Oct 2022 11:05:33 -0500
Subject: graphql: T4574: call all schema definition generation on init

---
 src/services/api/graphql/bindings.py               |   4 +
 .../api/graphql/graphql/schema/composite.graphql   |  18 ----
 .../graphql/graphql/schema/configsession.graphql   | 115 ---------------------
 .../api/graphql/utils/schema_from_composite.py     |   8 +-
 .../graphql/utils/schema_from_config_session.py    |   8 +-
 5 files changed, 12 insertions(+), 141 deletions(-)
 delete mode 100644 src/services/api/graphql/graphql/schema/composite.graphql
 delete mode 100644 src/services/api/graphql/graphql/schema/configsession.graphql

(limited to 'src/services')

diff --git a/src/services/api/graphql/bindings.py b/src/services/api/graphql/bindings.py
index 0b1260912..c5c4560dd 100644
--- a/src/services/api/graphql/bindings.py
+++ b/src/services/api/graphql/bindings.py
@@ -19,12 +19,16 @@ from . graphql.mutations import mutation
 from . graphql.directives import directives_dict
 from . graphql.errors import op_mode_error
 from . utils.schema_from_op_mode import generate_op_mode_definitions
+from . utils.schema_from_config_session import generate_config_session_definitions
+from . utils.schema_from_composite import generate_composite_definitions
 from ariadne import make_executable_schema, load_schema_from_path, snake_case_fallback_resolvers
 
 def generate_schema():
     api_schema_dir = vyos.defaults.directories['api_schema']
 
     generate_op_mode_definitions()
+    generate_config_session_definitions()
+    generate_composite_definitions()
 
     type_defs = load_schema_from_path(api_schema_dir)
 
diff --git a/src/services/api/graphql/graphql/schema/composite.graphql b/src/services/api/graphql/graphql/schema/composite.graphql
deleted file mode 100644
index 717fbd89d..000000000
--- a/src/services/api/graphql/graphql/schema/composite.graphql
+++ /dev/null
@@ -1,18 +0,0 @@
-
-input SystemStatusInput {
-    key: String!
-}
-
-type SystemStatus {
-    result: Generic
-}
-
-type SystemStatusResult {
-    data: SystemStatus
-    success: Boolean!
-    errors: [String]
-}
-
-extend type Query {
-    SystemStatus(data: SystemStatusInput) : SystemStatusResult @compositequery
-}
\ No newline at end of file
diff --git a/src/services/api/graphql/graphql/schema/configsession.graphql b/src/services/api/graphql/graphql/schema/configsession.graphql
deleted file mode 100644
index b1deac4b3..000000000
--- a/src/services/api/graphql/graphql/schema/configsession.graphql
+++ /dev/null
@@ -1,115 +0,0 @@
-
-input ShowConfigInput {
-    key: String!
-    path: [String!]!
-    configFormat: String = null
-}
-
-type ShowConfig {
-    result: Generic
-}
-
-type ShowConfigResult {
-    data: ShowConfig
-    success: Boolean!
-    errors: [String]
-}
-
-extend type Query {
-    ShowConfig(data: ShowConfigInput) : ShowConfigResult @configsessionquery
-}
-
-input ShowInput {
-    key: String!
-    path: [String!]!
-}
-
-type Show {
-    result: Generic
-}
-
-type ShowResult {
-    data: Show
-    success: Boolean!
-    errors: [String]
-}
-
-extend type Query {
-    Show(data: ShowInput) : ShowResult @configsessionquery
-}
-
-input SaveConfigFileInput {
-    key: String!
-    fileName: String = null
-}
-
-type SaveConfigFile {
-    result: Generic
-}
-
-type SaveConfigFileResult {
-    data: SaveConfigFile
-    success: Boolean!
-    errors: [String]
-}
-
-extend type Mutation {
-    SaveConfigFile(data: SaveConfigFileInput) : SaveConfigFileResult @configsessionmutation
-}
-
-input LoadConfigFileInput {
-    key: String!
-    fileName: String!
-}
-
-type LoadConfigFile {
-    result: Generic
-}
-
-type LoadConfigFileResult {
-    data: LoadConfigFile
-    success: Boolean!
-    errors: [String]
-}
-
-extend type Mutation {
-    LoadConfigFile(data: LoadConfigFileInput) : LoadConfigFileResult @configsessionmutation
-}
-
-input AddSystemImageInput {
-    key: String!
-    location: String!
-}
-
-type AddSystemImage {
-    result: Generic
-}
-
-type AddSystemImageResult {
-    data: AddSystemImage
-    success: Boolean!
-    errors: [String]
-}
-
-extend type Mutation {
-    AddSystemImage(data: AddSystemImageInput) : AddSystemImageResult @configsessionmutation
-}
-
-input DeleteSystemImageInput {
-    key: String!
-    name: String!
-}
-
-type DeleteSystemImage {
-    result: Generic
-}
-
-type DeleteSystemImageResult {
-    data: DeleteSystemImage
-    success: Boolean!
-    errors: [String]
-}
-
-extend type Mutation {
-    DeleteSystemImage(data: DeleteSystemImageInput) : DeleteSystemImageResult @configsessionmutation
-}
\ No newline at end of file
diff --git a/src/services/api/graphql/utils/schema_from_composite.py b/src/services/api/graphql/utils/schema_from_composite.py
index f9983cd98..d5e0ecdf6 100755
--- a/src/services/api/graphql/utils/schema_from_composite.py
+++ b/src/services/api/graphql/utils/schema_from_composite.py
@@ -23,13 +23,15 @@ import json
 from inspect import signature, getmembers, isfunction, isclass, getmro
 from jinja2 import Template
 
+from vyos.defaults import directories
 if __package__ is None or __package__ == '':
     from util import snake_to_pascal_case, map_type_name
+    from composite_function import queries, mutations
 else:
     from . util import snake_to_pascal_case, map_type_name
+    from . composite_function import queries, mutations
 
-# this will be run locally before the build
-SCHEMA_PATH = '../graphql/schema'
+SCHEMA_PATH = directories['api_schema']
 
 schema_data: dict = {'schema_name': '',
                      'schema_fields': []}
@@ -100,8 +102,6 @@ def create_schema(func_name: str, func: callable, template: str) -> str:
     return res
 
 def generate_composite_definitions():
-    from composite_function import queries, mutations
-
     results = []
     for name,func in queries.items():
         res = create_schema(name, func, query_template)
diff --git a/src/services/api/graphql/utils/schema_from_config_session.py b/src/services/api/graphql/utils/schema_from_config_session.py
index ea78aaf88..b6609357e 100755
--- a/src/services/api/graphql/utils/schema_from_config_session.py
+++ b/src/services/api/graphql/utils/schema_from_config_session.py
@@ -23,13 +23,15 @@ import json
 from inspect import signature, getmembers, isfunction, isclass, getmro
 from jinja2 import Template
 
+from vyos.defaults import directories
 if __package__ is None or __package__ == '':
     from util import snake_to_pascal_case, map_type_name
+    from config_session_function import queries, mutations
 else:
     from . util import snake_to_pascal_case, map_type_name
+    from . config_session_function import queries, mutations
 
-# this will be run locally before the build
-SCHEMA_PATH = '../graphql/schema'
+SCHEMA_PATH = directories['api_schema']
 
 schema_data: dict = {'schema_name': '',
                      'schema_fields': []}
@@ -100,8 +102,6 @@ def create_schema(func_name: str, func: callable, template: str) -> str:
     return res
 
 def generate_config_session_definitions():
-    from config_session_function import queries, mutations
-
     results = []
     for name,func in queries.items():
         res = create_schema(name, func, query_template)
-- 
cgit v1.2.3