diff options
author | Milo Casagrande <milo.casagrande@linaro.org> | 2014-12-12 11:28:18 +0100 |
---|---|---|
committer | Milo Casagrande <milo.casagrande@linaro.org> | 2014-12-12 11:28:18 +0100 |
commit | 129681a824ccd75a59b2a45d2b540151e47c2a9a (patch) | |
tree | cd84fb9dc664aedfd6cf7b0a3846affc605c6903 | |
parent | 558c52c5ab0b96dceb63ab43cd37dc57cd4cacb3 (diff) |
boot: Add missing fields to boot schema.
Change-Id: I1cb78bf97ce16bd9c6a434f80d2474f3b7834cb1
-rw-r--r-- | app/handlers/common.py | 5 | ||||
-rw-r--r-- | app/models/__init__.py | 4 | ||||
-rw-r--r-- | app/models/boot.py | 8 | ||||
-rw-r--r-- | app/models/tests/test_boot_model.py | 19 | ||||
-rw-r--r-- | app/utils/bootimport.py | 7 | ||||
-rw-r--r-- | doc/schema-boot.rst | 36 |
6 files changed, 74 insertions, 5 deletions
diff --git a/app/handlers/common.py b/app/handlers/common.py index f3fc7cd..3255518 100644 --- a/app/handlers/common.py +++ b/app/handlers/common.py @@ -89,8 +89,13 @@ BOOT_VALID_KEYS = { models.KERNEL_IMAGE_KEY, models.KERNEL_KEY, models.LAB_NAME_KEY, + models.METADATA_KEY, models.NAME_KEY, + models.QEMU_COMMAND_KEY, + models.QEMU_KEY, models.STATUS_KEY, + models.UIMAGE_ADDR_KEY, + models.UIMAGE_KEY, models.VERSION_KEY ] }, diff --git a/app/models/__init__.py b/app/models/__init__.py index fe798a7..c111459 100644 --- a/app/models/__init__.py +++ b/app/models/__init__.py @@ -92,6 +92,8 @@ NAME_KEY = "name" NOT_FIELD_KEY = 'nfield' PRIVATE_KEY = 'private' PROPERTIES_KEY = 'properties' +QEMU_COMMAND_KEY = 'qemu_command' +QEMU_KEY = 'qemu' RESULT_KEY = "result" RETRIES_KEY = 'retries' SKIP_KEY = 'skip' @@ -103,6 +105,8 @@ SYSTEM_MAP_KEY = 'system_map' TEXT_OFFSET_KEY = 'text_offset' TIME_KEY = 'time' TOKEN_KEY = 'token' +UIMAGE_ADDR_KEY = 'uimage_addr' +UIMAGE_KEY = 'uimage' UPDATED_KEY = 'updated_on' USERNAME_KEY = 'username' VERSION_FULL_KEY = 'full_version' diff --git a/app/models/boot.py b/app/models/boot.py index 022699a..f5e75cd 100644 --- a/app/models/boot.py +++ b/app/models/boot.py @@ -90,9 +90,13 @@ class BootDocument(modb.BaseDocument): self.kernel_image = None self.load_addr = None self.metadata = {} + self.qemu = None + self.qemu_command = None self.retries = 0 self.status = None self.time = 0 + self.uimage = None + self.uimage_addr = None self.warnings = 0 @property @@ -221,9 +225,13 @@ class BootDocument(modb.BaseDocument): models.LOAD_ADDR_KEY: self.load_addr, models.METADATA_KEY: self.metadata, models.NAME_KEY: self.name, + models.QEMU_COMMAND_KEY: self.qemu_command, + models.QEMU_KEY: self.qemu, models.RETRIES_KEY: self.retries, models.STATUS_KEY: self.status, models.TIME_KEY: self.time, + models.UIMAGE_ADDR_KEY: self.uimage_addr, + models.UIMAGE_KEY: self.uimage, models.VERSION_KEY: self.version, models.WARNINGS_KEY: self.warnings } diff --git a/app/models/tests/test_boot_model.py b/app/models/tests/test_boot_model.py index 7fbc9f5..125a469 100644 --- a/app/models/tests/test_boot_model.py +++ b/app/models/tests/test_boot_model.py @@ -50,6 +50,11 @@ class TestBootModel(unittest.TestCase): boot_doc.file_server_resource = "file-resource" boot_doc.initrd = "initrd" boot_doc.board_instance = "instance" + boot_doc.uimage = "path/to/uImage" + boot_doc.uimage_addr = "uimage_addr" + boot_doc.qemu = "qemu_binary" + boot_doc.qemu_command = "qemu_command" + boot_doc.metadata = {"foo": "bar"} expected = { "_id": "id", @@ -72,7 +77,7 @@ class TestBootModel(unittest.TestCase): "kernel_image": None, "lab_name": "lab", "load_addr": None, - "metadata": {}, + "metadata": {"foo": "bar"}, "name": "board-job-kernel-defconfig-arm", "retries": 10, "status": None, @@ -89,7 +94,11 @@ class TestBootModel(unittest.TestCase): "file_server_url": "file-server", "file_server_resource": "file-resource", "initrd": "initrd", - "board_instance": "instance" + "board_instance": "instance", + "uimage": "path/to/uImage", + "uimage_addr": "uimage_addr", + "qemu": "qemu_binary", + "qemu_command": "qemu_command" } self.assertDictEqual(expected, boot_doc.to_dict()) @@ -145,11 +154,15 @@ class TestBootModel(unittest.TestCase): "load_addr": "12345", "metadata": {"foo": "bar"}, "name": "board-job-kernel-defconfig_full-arm", + "qemu": "qemu_binary", + "qemu_command": "qemu_command", "retries": 10, "status": "PASS", "time": 0, + "uimage": "path/to/uImage", + "uimage_addr": "uimage_addr", "version": "1.0", - "warnings": 2 + "warnings": 2, } boot_doc = mboot.BootDocument.from_json(boot_json) diff --git a/app/utils/bootimport.py b/app/utils/bootimport.py index 797a005..19d55fc 100644 --- a/app/utils/bootimport.py +++ b/app/utils/bootimport.py @@ -345,8 +345,11 @@ def _update_boot_doc_from_json(boot_doc, boot_json, json_pop_f): boot_doc.initrd_addr = json_pop_f(models.INITRD_ADDR_KEY, None) boot_doc.kernel_image = json_pop_f(models.KERNEL_IMAGE_KEY, None) boot_doc.load_addr = json_pop_f(models.BOOT_LOAD_ADDR_KEY, None) + boot_doc.metadata = json_pop_f(models.METADATA_KEY, {}) + boot_doc.qemu = json_pop_f(models.QEMU_KEY, None) + boot_doc.qemu_command = json_pop_f(models.QEMU_COMMAND_KEY, None) boot_doc.retries = json_pop_f(models.BOOT_RETRIES_KEY, 0) + boot_doc.uimage = json_pop_f(models.UIMAGE_KEY, None) + boot_doc.uimage_addr = json_pop_f(models.UIMAGE_ADDR_KEY, None) boot_doc.version = json_pop_f(models.VERSION_KEY, "1.0") boot_doc.warnings = json_pop_f(models.BOOT_WARNINGS_KEY, 0) - - boot_doc.metadata = boot_json diff --git a/doc/schema-boot.rst b/doc/schema-boot.rst index 79e6535..dc64740 100644 --- a/doc/schema-boot.rst +++ b/doc/schema-boot.rst @@ -191,6 +191,22 @@ necessary to use its ``_id`` value. "metadata": { "type": "object", "description": "A free form object that can contain different properties" + }, + "uimage": { + "type": "string", + "description": "Path to the uImage used" + }, + "uimage_addr": { + "type": "string", + "description": "uImage load address" + }, + "qemu": { + "type": "string", + "description": "qemu binary used" + }, + "qemu_command": { + "type": "string", + "description": "Full command line used to start qemu" } } } @@ -341,6 +357,26 @@ have when sent to the server. "file_server_resource": { "type": "string", "description": "The server path where the boot related files are stored" + }, + "metadata": { + "type": "object", + "description": "A free form object that can contain different properties" + }, + "uimage": { + "type": "string", + "description": "Path to the uImage used" + }, + "uimage_addr": { + "type": "string", + "description": "uImage load address" + }, + "qemu": { + "type": "string", + "description": "qemu binary used" + }, + "qemu_command": { + "type": "string", + "description": "Full command line used to start qemu" } }, "required": ["version", "lab_name", "job", "kernel", "defconfig", "board", "arch"] |