18914 pkg warns about image modification even if image is not liveroot
authorShawn Walker <shawn.walker@oracle.com>
Fri, 09 Sep 2011 15:21:40 -0700
changeset 2550 71fe32689f17
parent 2549 ef1aa69fbb5d
child 2551 8c011065f53b
18914 pkg warns about image modification even if image is not liveroot
doc/client_api_versions.txt
src/client.py
src/modules/client/api.py
src/modules/gui/misc_non_gui.py
src/modules/lint/engine.py
src/pkgdep.py
src/sysrepo.py
src/tests/pkg5unittest.py
src/util/distro-import/importer.py
--- a/doc/client_api_versions.txt	Fri Sep 09 11:58:28 2011 -0700
+++ b/doc/client_api_versions.txt	Fri Sep 09 15:21:40 2011 -0700
@@ -1,3 +1,11 @@
+Version 70:
+Compatible with clients using versions 66-69.
+
+    pkg.client.api.ImageInterface has changed as follows:
+        * A new boolean property named is_liveroot has been added to
+          allow API consumers to determine if the image to be modified
+          is for the live system root.
+
 Version 69:
 Compatible with clients using versions 66-68.
 
--- a/src/client.py	Fri Sep 09 11:58:28 2011 -0700
+++ b/src/client.py	Fri Sep 09 15:21:40 2011 -0700
@@ -87,7 +87,7 @@
         import sys
         sys.exit(1)
 
-CLIENT_API_VERSION = 69
+CLIENT_API_VERSION = 70
 PKG_CLIENT_NAME = "pkg"
 
 JUST_UNKNOWN = 0
@@ -910,7 +910,8 @@
 
         plan = api_inst.describe()
 
-        if not api_inst.is_zone and not plan.is_active_root_be:
+        if api_inst.is_liveroot and not api_inst.is_zone and \
+            not plan.is_active_root_be:
                 # Warn the user since this isn't likely what they wanted.
                 if plan.new_be:
                         logger.warning(_("""\
--- a/src/modules/client/api.py	Fri Sep 09 11:58:28 2011 -0700
+++ b/src/modules/client/api.py	Fri Sep 09 15:21:40 2011 -0700
@@ -77,8 +77,8 @@
 from pkg.client.pkgdefs import *
 from pkg.smf import NonzeroExitException
 
-CURRENT_API_VERSION = 69
-COMPATIBLE_API_VERSIONS = frozenset([66, 67, 68, CURRENT_API_VERSION])
+CURRENT_API_VERSION = 70
+COMPATIBLE_API_VERSIONS = frozenset([66, 67, 68, 69, CURRENT_API_VERSION])
 CURRENT_P5I_VERSION = 1
 
 # Image type constants.
@@ -449,6 +449,12 @@
                 return self._img.image_type(self._img.root)
 
         @property
+        def is_liveroot(self):
+                """A boolean indicating whether the image to be modified is
+                for the live system root."""
+                return self._img.is_liveroot()
+
+        @property
         def is_zone(self):
                 """A boolean value indicating whether the image is a zone."""
                 return self._img.is_zone()
--- a/src/modules/gui/misc_non_gui.py	Fri Sep 09 11:58:28 2011 -0700
+++ b/src/modules/gui/misc_non_gui.py	Fri Sep 09 15:21:40 2011 -0700
@@ -41,7 +41,7 @@
 
 # The current version of the Client API the PM, UM and
 # WebInstall GUIs have been tested against and are known to work with.
-CLIENT_API_VERSION = 69
+CLIENT_API_VERSION = 70
 LOG_DIR = "/var/tmp"
 LOG_ERROR_EXT = "_error.log"
 LOG_INFO_EXT = "_info.log"
--- a/src/modules/lint/engine.py	Fri Sep 09 11:58:28 2011 -0700
+++ b/src/modules/lint/engine.py	Fri Sep 09 15:21:40 2011 -0700
@@ -39,7 +39,7 @@
 import sys
 
 PKG_CLIENT_NAME = "pkglint"
-CLIENT_API_VERSION = 69
+CLIENT_API_VERSION = 70
 pkg.client.global_settings.client_name = PKG_CLIENT_NAME
 
 class LintEngineException(Exception):
--- a/src/pkgdep.py	Fri Sep 09 11:58:28 2011 -0700
+++ b/src/pkgdep.py	Fri Sep 09 15:21:40 2011 -0700
@@ -42,7 +42,7 @@
 import pkg.publish.dependencies as dependencies
 from pkg.misc import msg, emsg, PipeError
 
-CLIENT_API_VERSION = 69
+CLIENT_API_VERSION = 70
 PKG_CLIENT_NAME = "pkgdepend"
 
 DEFAULT_SUFFIX = ".res"
--- a/src/sysrepo.py	Fri Sep 09 11:58:28 2011 -0700
+++ b/src/sysrepo.py	Fri Sep 09 15:21:40 2011 -0700
@@ -53,7 +53,7 @@
 orig_cwd = None
 
 PKG_CLIENT_NAME = "pkg.sysrepo"
-CLIENT_API_VERSION = 69
+CLIENT_API_VERSION = 70
 pkg.client.global_settings.client_name = PKG_CLIENT_NAME
 
 # exit codes
--- a/src/tests/pkg5unittest.py	Fri Sep 09 11:58:28 2011 -0700
+++ b/src/tests/pkg5unittest.py	Fri Sep 09 15:21:40 2011 -0700
@@ -126,7 +126,7 @@
 
 # Version test suite is known to work with.
 PKG_CLIENT_NAME = "pkg"
-CLIENT_API_VERSION = 69
+CLIENT_API_VERSION = 70
 
 ELIDABLE_ERRORS = [ TestSkippedException, depotcontroller.DepotStateException ]
 
--- a/src/util/distro-import/importer.py	Fri Sep 09 11:58:28 2011 -0700
+++ b/src/util/distro-import/importer.py	Fri Sep 09 15:21:40 2011 -0700
@@ -56,7 +56,7 @@
 from pkg.misc import emsg
 from pkg.portable import PD_LOCAL_PATH, PD_PROTO_DIR, PD_PROTO_DIR_LIST
 
-CLIENT_API_VERSION = 69
+CLIENT_API_VERSION = 70
 PKG_CLIENT_NAME = "importer.py"
 pkg.client.global_settings.client_name = PKG_CLIENT_NAME