directory.py revision 2987
e3ae5c822699ae375f274bec0a24c1a0b36b731fJulian Kornberger# CDDL HEADER START
8020ba658ffa8f8c9a14ba3a7d2e9257ea400becTim Reddehase# The contents of this file are subject to the terms of the
8020ba658ffa8f8c9a14ba3a7d2e9257ea400becTim Reddehase# Common Development and Distribution License (the "License").
8020ba658ffa8f8c9a14ba3a7d2e9257ea400becTim Reddehase# You may not use this file except in compliance with the License.
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# or http://www.opensolaris.org/os/licensing.
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# See the License for the specific language governing permissions
cfe6bf1bc38ab15b759dee8bb5c86c3727058a2eTim Reddehase# and limitations under the License.
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# When distributing Covered Code, include this CDDL HEADER in each
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# If applicable, add the following below this CDDL HEADER, with the
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger# fields enclosed by brackets "[]" replaced with your own identifying
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase# information: Portions Copyright [yyyy] [name of copyright owner]
789e293810190b918998fa027c76126e7aa4bf38henning mueller# CDDL HEADER END
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
ef68dc9d6ba7fc331ecdef35f74cff6bb12835b8Tim Reddehase"""module describing a directory packaging object
3c4b1bd39fa36d241f2ef0d6f7ebbf2a9a6f4d36henning muellerThis module contains the DirectoryAction class, which represents a
3c4b1bd39fa36d241f2ef0d6f7ebbf2a9a6f4d36henning muellerdirectory-type packaging object."""
6bbb03b1a673f7709df590df43aaed9e8740f671Tim Reddehase """Class representing a directory-type packaging object."""
fd556d3aae9e1b50625e815f5ff9141ddbfecae3Eugen Kuksa return cmp(self.attrs["path"], other.attrs["path"])
fd556d3aae9e1b50625e815f5ff9141ddbfecae3Eugen Kuksa """Returns a list of attributes that have different values
fd556d3aae9e1b50625e815f5ff9141ddbfecae3Eugen Kuksa between 'other' and 'self'. This differs from the generic
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger Action's differences() method in that it normalizes the 'mode'
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger attribute so that, say, '0755' and '755' are treated as
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger diffs = generic.Action.differences(self, other)
d7341d330c5d19aef3ad9176971457f034f87ecdTim Reddehase int(self.attrs.get("mode", "0"), 8) == int(other.attrs.get("mode", "0"), 8):
cfe6bf1bc38ab15b759dee8bb5c86c3727058a2eTim Reddehase """Client-side method that installs a directory."""
6876ece18854869a08606c12e0e814435fa73a29Tim Reddehase # Mode isn't valid, so let validate raise a more
6876ece18854869a08606c12e0e814435fa73a29Tim Reddehase # informative error.
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger owner, group = self.get_fsobj_uid_gid(pkgplan,
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger omode = int(orig.attrs.get("mode", None), 8)
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # Mode isn't valid, so let validate raise a more
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger # informative error.
e437b19c184243f688c2dd9b3bf083a454c804c7Julian Kornberger oowner, ogroup = orig.get_fsobj_uid_gid(pkgplan,
if not orig:
except OSError, e:
except OSError, e:
except OSError, e:
% path
generic.py for a more detailed explanation."""
if errors: