Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
| ... | ... |
@@ -125,7 +125,7 @@ func Init(root string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap |
| 125 | 125 |
// Create the root aufs driver dir and return |
| 126 | 126 |
// if it already exists |
| 127 | 127 |
// If not populate the dir structure |
| 128 |
- if err := idtools.MkdirAllAs(root, 0700, rootUID, rootGID); err != nil {
|
|
| 128 |
+ if err := idtools.MkdirAllAndChown(root, 0700, idtools.IDPair{UID: rootUID, GID: rootGID}); err != nil {
|
|
| 129 | 129 |
if os.IsExist(err) {
|
| 130 | 130 |
return a, nil |
| 131 | 131 |
} |
| ... | ... |
@@ -138,7 +138,7 @@ func Init(root string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap |
| 138 | 138 |
|
| 139 | 139 |
// Populate the dir structure |
| 140 | 140 |
for _, p := range paths {
|
| 141 |
- if err := idtools.MkdirAllAs(path.Join(root, p), 0700, rootUID, rootGID); err != nil {
|
|
| 141 |
+ if err := idtools.MkdirAllAndChown(path.Join(root, p), 0700, idtools.IDPair{UID: rootUID, GID: rootGID}); err != nil {
|
|
| 142 | 142 |
return nil, err |
| 143 | 143 |
} |
| 144 | 144 |
} |
| ... | ... |
@@ -290,7 +290,7 @@ func (a *Driver) createDirsFor(id string) error {
|
| 290 | 290 |
// The path of directories are <aufs_root_path>/mnt/<image_id> |
| 291 | 291 |
// and <aufs_root_path>/diff/<image_id> |
| 292 | 292 |
for _, p := range paths {
|
| 293 |
- if err := idtools.MkdirAllAs(path.Join(a.rootPath(), p, id), 0755, rootUID, rootGID); err != nil {
|
|
| 293 |
+ if err := idtools.MkdirAllAndChown(path.Join(a.rootPath(), p, id), 0755, idtools.IDPair{UID: rootUID, GID: rootGID}); err != nil {
|
|
| 294 | 294 |
return err |
| 295 | 295 |
} |
| 296 | 296 |
} |
| ... | ... |
@@ -64,7 +64,7 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap |
| 64 | 64 |
if err != nil {
|
| 65 | 65 |
return nil, err |
| 66 | 66 |
} |
| 67 |
- if err := idtools.MkdirAllAs(home, 0700, rootUID, rootGID); err != nil {
|
|
| 67 |
+ if err := idtools.MkdirAllAndChown(home, 0700, idtools.IDPair{UID: rootUID, GID: rootGID}); err != nil {
|
|
| 68 | 68 |
return nil, err |
| 69 | 69 |
} |
| 70 | 70 |
|
| ... | ... |
@@ -502,7 +502,7 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) error {
|
| 502 | 502 |
if err != nil {
|
| 503 | 503 |
return err |
| 504 | 504 |
} |
| 505 |
- if err := idtools.MkdirAllAs(subvolumes, 0700, rootUID, rootGID); err != nil {
|
|
| 505 |
+ if err := idtools.MkdirAllAndChown(subvolumes, 0700, idtools.IDPair{UID: rootUID, GID: rootGID}); err != nil {
|
|
| 506 | 506 |
return err |
| 507 | 507 |
} |
| 508 | 508 |
if parent == "" {
|
| ... | ... |
@@ -537,7 +537,7 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) error {
|
| 537 | 537 |
if err := d.setStorageSize(path.Join(subvolumes, id), driver); err != nil {
|
| 538 | 538 |
return err |
| 539 | 539 |
} |
| 540 |
- if err := idtools.MkdirAllAs(quotas, 0700, rootUID, rootGID); err != nil {
|
|
| 540 |
+ if err := idtools.MkdirAllAndChown(quotas, 0700, idtools.IDPair{UID: rootUID, GID: rootGID}); err != nil {
|
|
| 541 | 541 |
return err |
| 542 | 542 |
} |
| 543 | 543 |
if err := ioutil.WriteFile(path.Join(quotas, id), []byte(fmt.Sprint(driver.options.size)), 0644); err != nil {
|
| ... | ... |
@@ -268,7 +268,7 @@ func (devices *DeviceSet) ensureImage(name string, size int64) (string, error) {
|
| 268 | 268 |
if err != nil {
|
| 269 | 269 |
return "", err |
| 270 | 270 |
} |
| 271 |
- if err := idtools.MkdirAllAs(dirname, 0700, uid, gid); err != nil && !os.IsExist(err) {
|
|
| 271 |
+ if err := idtools.MkdirAllAndChown(dirname, 0700, idtools.IDPair{UID: uid, GID: gid}); err != nil && !os.IsExist(err) {
|
|
| 272 | 272 |
return "", err |
| 273 | 273 |
} |
| 274 | 274 |
|
| ... | ... |
@@ -1697,7 +1697,7 @@ func (devices *DeviceSet) initDevmapper(doInit bool) (retErr error) {
|
| 1697 | 1697 |
if err != nil {
|
| 1698 | 1698 |
return err |
| 1699 | 1699 |
} |
| 1700 |
- if err := idtools.MkdirAs(devices.root, 0700, uid, gid); err != nil && !os.IsExist(err) {
|
|
| 1700 |
+ if err := idtools.MkdirAndChown(devices.root, 0700, idtools.IDPair{UID: uid, GID: gid}); err != nil && !os.IsExist(err) {
|
|
| 1701 | 1701 |
return err |
| 1702 | 1702 |
} |
| 1703 | 1703 |
if err := os.MkdirAll(devices.metadataDir(), 0700); err != nil && !os.IsExist(err) {
|
| ... | ... |
@@ -189,11 +189,11 @@ func (d *Driver) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
|
| 189 | 189 |
} |
| 190 | 190 |
|
| 191 | 191 |
// Create the target directories if they don't exist |
| 192 |
- if err := idtools.MkdirAllAs(path.Join(d.home, "mnt"), 0755, uid, gid); err != nil && !os.IsExist(err) {
|
|
| 192 |
+ if err := idtools.MkdirAllAndChown(path.Join(d.home, "mnt"), 0755, idtools.IDPair{UID: uid, GID: gid}); err != nil && !os.IsExist(err) {
|
|
| 193 | 193 |
d.ctr.Decrement(mp) |
| 194 | 194 |
return nil, err |
| 195 | 195 |
} |
| 196 |
- if err := idtools.MkdirAs(mp, 0755, uid, gid); err != nil && !os.IsExist(err) {
|
|
| 196 |
+ if err := idtools.MkdirAndChown(mp, 0755, idtools.IDPair{UID: uid, GID: gid}); err != nil && !os.IsExist(err) {
|
|
| 197 | 197 |
d.ctr.Decrement(mp) |
| 198 | 198 |
return nil, err |
| 199 | 199 |
} |
| ... | ... |
@@ -204,7 +204,7 @@ func (d *Driver) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
|
| 204 | 204 |
return nil, err |
| 205 | 205 |
} |
| 206 | 206 |
|
| 207 |
- if err := idtools.MkdirAllAs(rootFs, 0755, uid, gid); err != nil && !os.IsExist(err) {
|
|
| 207 |
+ if err := idtools.MkdirAllAndChown(rootFs, 0755, idtools.IDPair{UID: uid, GID: gid}); err != nil && !os.IsExist(err) {
|
|
| 208 | 208 |
d.ctr.Decrement(mp) |
| 209 | 209 |
d.DeviceSet.UnmountDevice(id, mp) |
| 210 | 210 |
return nil, err |
| ... | ... |
@@ -181,17 +181,17 @@ func InitDriver(dataRoot string, options []string, _, _ []idtools.IDMap) (graphd |
| 181 | 181 |
} |
| 182 | 182 |
|
| 183 | 183 |
// Make sure the dataRoot directory is created |
| 184 |
- if err := idtools.MkdirAllAs(dataRoot, 0700, 0, 0); err != nil {
|
|
| 184 |
+ if err := idtools.MkdirAllAndChown(dataRoot, 0700, idtools.IDPair{UID: 0, GID: 0}); err != nil {
|
|
| 185 | 185 |
return nil, fmt.Errorf("%s failed to create '%s': %v", title, dataRoot, err)
|
| 186 | 186 |
} |
| 187 | 187 |
|
| 188 | 188 |
// Make sure the cache directory is created under dataRoot |
| 189 |
- if err := idtools.MkdirAllAs(cd, 0700, 0, 0); err != nil {
|
|
| 189 |
+ if err := idtools.MkdirAllAndChown(cd, 0700, idtools.IDPair{UID: 0, GID: 0}); err != nil {
|
|
| 190 | 190 |
return nil, fmt.Errorf("%s failed to create '%s': %v", title, cd, err)
|
| 191 | 191 |
} |
| 192 | 192 |
|
| 193 | 193 |
// Make sure the scratch directory is created under dataRoot |
| 194 |
- if err := idtools.MkdirAllAs(sd, 0700, 0, 0); err != nil {
|
|
| 194 |
+ if err := idtools.MkdirAllAndChown(sd, 0700, idtools.IDPair{UID: 0, GID: 0}); err != nil {
|
|
| 195 | 195 |
return nil, fmt.Errorf("%s failed to create '%s': %v", title, sd, err)
|
| 196 | 196 |
} |
| 197 | 197 |
|
| ... | ... |
@@ -136,7 +136,7 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap |
| 136 | 136 |
return nil, err |
| 137 | 137 |
} |
| 138 | 138 |
// Create the driver home dir |
| 139 |
- if err := idtools.MkdirAllAs(home, 0700, rootUID, rootGID); err != nil && !os.IsExist(err) {
|
|
| 139 |
+ if err := idtools.MkdirAllAndChown(home, 0700, idtools.IDPair{rootUID, rootGID}); err != nil && !os.IsExist(err) {
|
|
| 140 | 140 |
return nil, err |
| 141 | 141 |
} |
| 142 | 142 |
|
| ... | ... |
@@ -255,10 +255,12 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) (retErr |
| 255 | 255 |
if err != nil {
|
| 256 | 256 |
return err |
| 257 | 257 |
} |
| 258 |
- if err := idtools.MkdirAllAs(path.Dir(dir), 0700, rootUID, rootGID); err != nil {
|
|
| 258 |
+ root := idtools.IDPair{UID: rootUID, GID: rootGID}
|
|
| 259 |
+ |
|
| 260 |
+ if err := idtools.MkdirAllAndChown(path.Dir(dir), 0700, root); err != nil {
|
|
| 259 | 261 |
return err |
| 260 | 262 |
} |
| 261 |
- if err := idtools.MkdirAs(dir, 0700, rootUID, rootGID); err != nil {
|
|
| 263 |
+ if err := idtools.MkdirAndChown(dir, 0700, root); err != nil {
|
|
| 262 | 264 |
return err |
| 263 | 265 |
} |
| 264 | 266 |
|
| ... | ... |
@@ -271,7 +273,7 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) (retErr |
| 271 | 271 |
|
| 272 | 272 |
// Toplevel images are just a "root" dir |
| 273 | 273 |
if parent == "" {
|
| 274 |
- return idtools.MkdirAndChown(path.Join(dir, "root"), 0755, idtools.IDPair{rootUID, rootGID})
|
|
| 274 |
+ return idtools.MkdirAndChown(path.Join(dir, "root"), 0755, root) |
|
| 275 | 275 |
} |
| 276 | 276 |
|
| 277 | 277 |
parentDir := d.dir(parent) |
| ... | ... |
@@ -285,13 +287,13 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) (retErr |
| 285 | 285 |
parentRoot := path.Join(parentDir, "root") |
| 286 | 286 |
|
| 287 | 287 |
if s, err := os.Lstat(parentRoot); err == nil {
|
| 288 |
- if err := idtools.MkdirAs(path.Join(dir, "upper"), s.Mode(), rootUID, rootGID); err != nil {
|
|
| 288 |
+ if err := idtools.MkdirAndChown(path.Join(dir, "upper"), s.Mode(), root); err != nil {
|
|
| 289 | 289 |
return err |
| 290 | 290 |
} |
| 291 |
- if err := idtools.MkdirAs(path.Join(dir, "work"), 0700, rootUID, rootGID); err != nil {
|
|
| 291 |
+ if err := idtools.MkdirAndChown(path.Join(dir, "work"), 0700, root); err != nil {
|
|
| 292 | 292 |
return err |
| 293 | 293 |
} |
| 294 |
- if err := idtools.MkdirAs(path.Join(dir, "merged"), 0700, rootUID, rootGID); err != nil {
|
|
| 294 |
+ if err := idtools.MkdirAndChown(path.Join(dir, "merged"), 0700, root); err != nil {
|
|
| 295 | 295 |
return err |
| 296 | 296 |
} |
| 297 | 297 |
if err := ioutil.WriteFile(path.Join(dir, "lower-id"), []byte(parent), 0666); err != nil {
|
| ... | ... |
@@ -318,13 +320,13 @@ func (d *Driver) Create(id, parent string, opts *graphdriver.CreateOpts) (retErr |
| 318 | 318 |
} |
| 319 | 319 |
|
| 320 | 320 |
upperDir := path.Join(dir, "upper") |
| 321 |
- if err := idtools.MkdirAs(upperDir, s.Mode(), rootUID, rootGID); err != nil {
|
|
| 321 |
+ if err := idtools.MkdirAndChown(upperDir, s.Mode(), root); err != nil {
|
|
| 322 | 322 |
return err |
| 323 | 323 |
} |
| 324 |
- if err := idtools.MkdirAs(path.Join(dir, "work"), 0700, rootUID, rootGID); err != nil {
|
|
| 324 |
+ if err := idtools.MkdirAndChown(path.Join(dir, "work"), 0700, root); err != nil {
|
|
| 325 | 325 |
return err |
| 326 | 326 |
} |
| 327 |
- if err := idtools.MkdirAs(path.Join(dir, "merged"), 0700, rootUID, rootGID); err != nil {
|
|
| 327 |
+ if err := idtools.MkdirAndChown(path.Join(dir, "merged"), 0700, root); err != nil {
|
|
| 328 | 328 |
return err |
| 329 | 329 |
} |
| 330 | 330 |
|
| ... | ... |
@@ -171,7 +171,7 @@ func Init(home string, options []string, uidMaps, gidMaps []idtools.IDMap) (grap |
| 171 | 171 |
return nil, err |
| 172 | 172 |
} |
| 173 | 173 |
// Create the driver home dir |
| 174 |
- if err := idtools.MkdirAllAs(path.Join(home, linkDir), 0700, rootUID, rootGID); err != nil && !os.IsExist(err) {
|
|
| 174 |
+ if err := idtools.MkdirAllAndChown(path.Join(home, linkDir), 0700, idtools.IDPair{rootUID, rootGID}); err != nil && !os.IsExist(err) {
|
|
| 175 | 175 |
return nil, err |
| 176 | 176 |
} |
| 177 | 177 |
|
| ... | ... |
@@ -362,10 +362,12 @@ func (d *Driver) create(id, parent string, opts *graphdriver.CreateOpts) (retErr |
| 362 | 362 |
if err != nil {
|
| 363 | 363 |
return err |
| 364 | 364 |
} |
| 365 |
- if err := idtools.MkdirAllAs(path.Dir(dir), 0700, rootUID, rootGID); err != nil {
|
|
| 365 |
+ root := idtools.IDPair{UID: rootUID, GID: rootGID}
|
|
| 366 |
+ |
|
| 367 |
+ if err := idtools.MkdirAllAndChown(path.Dir(dir), 0700, root); err != nil {
|
|
| 366 | 368 |
return err |
| 367 | 369 |
} |
| 368 |
- if err := idtools.MkdirAs(dir, 0700, rootUID, rootGID); err != nil {
|
|
| 370 |
+ if err := idtools.MkdirAndChown(dir, 0700, root); err != nil {
|
|
| 369 | 371 |
return err |
| 370 | 372 |
} |
| 371 | 373 |
|
| ... | ... |
@@ -390,7 +392,7 @@ func (d *Driver) create(id, parent string, opts *graphdriver.CreateOpts) (retErr |
| 390 | 390 |
} |
| 391 | 391 |
} |
| 392 | 392 |
|
| 393 |
- if err := idtools.MkdirAs(path.Join(dir, "diff"), 0755, rootUID, rootGID); err != nil {
|
|
| 393 |
+ if err := idtools.MkdirAndChown(path.Join(dir, "diff"), 0755, root); err != nil {
|
|
| 394 | 394 |
return err |
| 395 | 395 |
} |
| 396 | 396 |
|
| ... | ... |
@@ -409,10 +411,10 @@ func (d *Driver) create(id, parent string, opts *graphdriver.CreateOpts) (retErr |
| 409 | 409 |
return nil |
| 410 | 410 |
} |
| 411 | 411 |
|
| 412 |
- if err := idtools.MkdirAs(path.Join(dir, "work"), 0700, rootUID, rootGID); err != nil {
|
|
| 412 |
+ if err := idtools.MkdirAndChown(path.Join(dir, "work"), 0700, root); err != nil {
|
|
| 413 | 413 |
return err |
| 414 | 414 |
} |
| 415 |
- if err := idtools.MkdirAs(path.Join(dir, "merged"), 0700, rootUID, rootGID); err != nil {
|
|
| 415 |
+ if err := idtools.MkdirAndChown(path.Join(dir, "merged"), 0700, root); err != nil {
|
|
| 416 | 416 |
return err |
| 417 | 417 |
} |
| 418 | 418 |
|
| ... | ... |
@@ -95,7 +95,7 @@ func InitFilter(home string, options []string, uidMaps, gidMaps []idtools.IDMap) |
| 95 | 95 |
return nil, fmt.Errorf("%s is on an ReFS volume - ReFS volumes are not supported", home)
|
| 96 | 96 |
} |
| 97 | 97 |
|
| 98 |
- if err := idtools.MkdirAllAs(home, 0700, 0, 0); err != nil {
|
|
| 98 |
+ if err := idtools.MkdirAllAndChown(home, 0700, idtools.IDPair{UID: 0, GID: 0}); err != nil {
|
|
| 99 | 99 |
return nil, fmt.Errorf("windowsfilter failed to create '%s': %v", home, err)
|
| 100 | 100 |
} |
| 101 | 101 |
|
| ... | ... |
@@ -104,7 +104,7 @@ func Init(base string, opt []string, uidMaps, gidMaps []idtools.IDMap) (graphdri |
| 104 | 104 |
if err != nil {
|
| 105 | 105 |
return nil, fmt.Errorf("Failed to get root uid/guid: %v", err)
|
| 106 | 106 |
} |
| 107 |
- if err := idtools.MkdirAllAs(base, 0700, rootUID, rootGID); err != nil {
|
|
| 107 |
+ if err := idtools.MkdirAllAndChown(base, 0700, idtools.IDPair{rootUID, rootGID}); err != nil {
|
|
| 108 | 108 |
return nil, fmt.Errorf("Failed to create '%s': %v", base, err)
|
| 109 | 109 |
} |
| 110 | 110 |
|
| ... | ... |
@@ -373,7 +373,7 @@ func (d *Driver) Get(id, mountLabel string) (containerfs.ContainerFS, error) {
|
| 373 | 373 |
return nil, err |
| 374 | 374 |
} |
| 375 | 375 |
// Create the target directories if they don't exist |
| 376 |
- if err := idtools.MkdirAllAs(mountpoint, 0755, rootUID, rootGID); err != nil {
|
|
| 376 |
+ if err := idtools.MkdirAllAndChown(mountpoint, 0755, idtools.IDPair{rootUID, rootGID}); err != nil {
|
|
| 377 | 377 |
d.ctr.Decrement(mountpoint) |
| 378 | 378 |
return nil, err |
| 379 | 379 |
} |
| ... | ... |
@@ -34,21 +34,6 @@ const ( |
| 34 | 34 |
subgidFileName string = "/etc/subgid" |
| 35 | 35 |
) |
| 36 | 36 |
|
| 37 |
-// MkdirAllAs creates a directory (include any along the path) and then modifies |
|
| 38 |
-// ownership to the requested uid/gid. If the directory already exists, this |
|
| 39 |
-// function will still change ownership to the requested uid/gid pair. |
|
| 40 |
-// Deprecated: Use MkdirAllAndChown |
|
| 41 |
-func MkdirAllAs(path string, mode os.FileMode, ownerUID, ownerGID int) error {
|
|
| 42 |
- return mkdirAs(path, mode, ownerUID, ownerGID, true, true) |
|
| 43 |
-} |
|
| 44 |
- |
|
| 45 |
-// MkdirAs creates a directory and then modifies ownership to the requested uid/gid. |
|
| 46 |
-// If the directory already exists, this function still changes ownership |
|
| 47 |
-// Deprecated: Use MkdirAndChown with a IDPair |
|
| 48 |
-func MkdirAs(path string, mode os.FileMode, ownerUID, ownerGID int) error {
|
|
| 49 |
- return mkdirAs(path, mode, ownerUID, ownerGID, false, true) |
|
| 50 |
-} |
|
| 51 |
- |
|
| 52 | 37 |
// MkdirAllAndChown creates a directory (include any along the path) and then modifies |
| 53 | 38 |
// ownership to the requested uid/gid. If the directory already exists, this |
| 54 | 39 |
// function will still change ownership to the requested uid/gid pair. |