summaryrefslogtreecommitdiff
path: root/cxmanage_api/firmware_package.py
diff options
context:
space:
mode:
Diffstat (limited to 'cxmanage_api/firmware_package.py')
-rw-r--r--cxmanage_api/firmware_package.py28
1 files changed, 19 insertions, 9 deletions
diff --git a/cxmanage_api/firmware_package.py b/cxmanage_api/firmware_package.py
index 433b596..7f8e645 100644
--- a/cxmanage_api/firmware_package.py
+++ b/cxmanage_api/firmware_package.py
@@ -1,4 +1,7 @@
-# Copyright (c) 2012, Calxeda Inc.
+"""Calxeda: firmware_package.py"""
+
+
+# Copyright (c) 2012-2013, Calxeda Inc.
#
# All rights reserved.
#
@@ -34,11 +37,13 @@ import tarfile
import ConfigParser
import pkg_resources
+import cxmanage_api
from cxmanage_api import temp_dir
from cxmanage_api.image import Image
-class FirmwarePackage:
+# pylint: disable=R0903
+class FirmwarePackage(object):
"""A firmware update package contains multiple images & version information.
.. note::
@@ -54,6 +59,7 @@ class FirmwarePackage:
"""
+ # pylint: disable=R0912
def __init__(self, filename=None):
"""Default constructor for the FirmwarePackage class."""
self.images = []
@@ -76,15 +82,16 @@ class FirmwarePackage:
% os.path.basename(filename))
if "package" in config.sections():
- cxmanage_ver = config.get("package",
- "required_cxmanage_version")
- try:
- pkg_resources.require("cxmanage>=%s" % cxmanage_ver)
- except pkg_resources.VersionConflict:
+ required_cxmanage_version = config.get(
+ "package", "required_cxmanage_version"
+ )
+ if (pkg_resources.parse_version(cxmanage_api.__version__) <
+ pkg_resources.parse_version(required_cxmanage_version)):
# @todo: CxmanageVersionError?
raise ValueError(
- "%s requires cxmanage version %s or later."
- % (filename, cxmanage_ver))
+ "%s requires cxmanage version %s or later."
+ % (filename, required_cxmanage_version)
+ )
if config.has_option("package", "required_socman_version"):
self.required_socman_version = config.get("package",
@@ -117,6 +124,9 @@ class FirmwarePackage:
self.images.append(Image(filename, image_type, simg, daddr,
skip_crc32, version))
+ def __str__(self):
+ return self.version
+
def save_package(self, filename):
"""Save all images as a firmware package.