aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilo Casagrande <milo.casagrande@linaro.org>2014-12-12 11:28:18 +0100
committerMilo Casagrande <milo.casagrande@linaro.org>2014-12-12 11:28:18 +0100
commit129681a824ccd75a59b2a45d2b540151e47c2a9a (patch)
treecd84fb9dc664aedfd6cf7b0a3846affc605c6903
parent558c52c5ab0b96dceb63ab43cd37dc57cd4cacb3 (diff)
boot: Add missing fields to boot schema.
Change-Id: I1cb78bf97ce16bd9c6a434f80d2474f3b7834cb1
-rw-r--r--app/handlers/common.py5
-rw-r--r--app/models/__init__.py4
-rw-r--r--app/models/boot.py8
-rw-r--r--app/models/tests/test_boot_model.py19
-rw-r--r--app/utils/bootimport.py7
-rw-r--r--doc/schema-boot.rst36
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"]