Fix schema generation

It seems this schema generation tool was not updated with the big
server/client seperation.  Address that.
This commit is contained in:
Dan Bungert 2021-03-03 11:11:41 -07:00
parent b916c96b0a
commit 906d081273
1 changed files with 36 additions and 12 deletions

View File

@ -16,17 +16,21 @@
import copy import copy
import json import json
import os
import sys import sys
import jsonschema import jsonschema
from subiquity.cmd.tui import parse_options from subiquity.cmd.tui import make_client_args_parser
from subiquity.core import Subiquity from subiquity.cmd.server import make_server_args_parser
from subiquity.client.client import SubiquityClient
from subiquity.server.server import SubiquityServer
def make_schema(app): def make_schema(server, client):
schema = copy.deepcopy(app.base_schema) schema = copy.deepcopy(server.base_schema)
for controller in app.controllers.instances: instances = server.controllers.instances + client.controllers.instances
for controller in instances:
ckey = getattr(controller, 'autoinstall_key', None) ckey = getattr(controller, 'autoinstall_key', None)
if ckey is None: if ckey is None:
continue continue
@ -37,15 +41,35 @@ def make_schema(app):
return schema return schema
def main(): def make(server):
opts = parse_options([]) if server:
parser = make_server_args_parser()
else:
parser = make_client_args_parser()
args = []
opts, unknown = parser.parse_known_args(args)
opts.dry_run = True opts.dry_run = True
app = Subiquity(opts, None) if server:
app.base_model = app.make_model() result = SubiquityServer(opts, '')
app.controllers.load_all() else:
schema = make_schema(app) result = SubiquityClient(opts)
result.base_model = result.make_model()
result.controllers.load_all()
return result
def make_client():
return make(False)
def make_server():
return make(True)
def main():
schema = make_schema(make_server(), make_client())
jsonschema.validate({"version": 1}, schema) jsonschema.validate({"version": 1}, schema)
print(json.dumps(make_schema(app), indent=4)) print(json.dumps(schema, indent=4))
if __name__ == '__main__': if __name__ == '__main__':