Remove a redundant check
err must be nil at that point. This also un-indents the success case, so that it proceeds as a straight-line code. Signed-off-by: Miloslav Trmač <mitr@redhat.com>
This commit is contained in:
parent
a85892a653
commit
7466f0d0df
|
@ -813,88 +813,86 @@ func (r *layerStore) Put(id string, parentLayer *Layer, names []string, mountLab
|
||||||
return nil, -1, err
|
return nil, -1, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if err == nil {
|
layer = &Layer{
|
||||||
layer = &Layer{
|
ID: id,
|
||||||
ID: id,
|
Parent: parent,
|
||||||
Parent: parent,
|
Names: names,
|
||||||
Names: names,
|
MountLabel: mountLabel,
|
||||||
MountLabel: mountLabel,
|
Metadata: templateMetadata,
|
||||||
Metadata: templateMetadata,
|
Created: time.Now().UTC(),
|
||||||
Created: time.Now().UTC(),
|
CompressedDigest: templateCompressedDigest,
|
||||||
CompressedDigest: templateCompressedDigest,
|
CompressedSize: templateCompressedSize,
|
||||||
CompressedSize: templateCompressedSize,
|
UncompressedDigest: templateUncompressedDigest,
|
||||||
UncompressedDigest: templateUncompressedDigest,
|
UncompressedSize: templateUncompressedSize,
|
||||||
UncompressedSize: templateUncompressedSize,
|
CompressionType: templateCompressionType,
|
||||||
CompressionType: templateCompressionType,
|
UIDs: templateUIDs,
|
||||||
UIDs: templateUIDs,
|
GIDs: templateGIDs,
|
||||||
GIDs: templateGIDs,
|
Flags: make(map[string]interface{}),
|
||||||
Flags: make(map[string]interface{}),
|
UIDMap: copyIDMap(moreOptions.UIDMap),
|
||||||
UIDMap: copyIDMap(moreOptions.UIDMap),
|
GIDMap: copyIDMap(moreOptions.GIDMap),
|
||||||
GIDMap: copyIDMap(moreOptions.GIDMap),
|
BigDataNames: []string{},
|
||||||
BigDataNames: []string{},
|
}
|
||||||
}
|
r.layers = append(r.layers, layer)
|
||||||
r.layers = append(r.layers, layer)
|
r.idindex.Add(id)
|
||||||
r.idindex.Add(id)
|
r.byid[id] = layer
|
||||||
r.byid[id] = layer
|
for _, name := range names {
|
||||||
for _, name := range names {
|
r.byname[name] = layer
|
||||||
r.byname[name] = layer
|
}
|
||||||
}
|
for flag, value := range flags {
|
||||||
for flag, value := range flags {
|
layer.Flags[flag] = value
|
||||||
layer.Flags[flag] = value
|
}
|
||||||
}
|
savedIncompleteLayer := false
|
||||||
savedIncompleteLayer := false
|
if diff != nil {
|
||||||
if diff != nil {
|
layer.Flags[incompleteFlag] = true
|
||||||
layer.Flags[incompleteFlag] = true
|
|
||||||
err = r.Save()
|
|
||||||
if err != nil {
|
|
||||||
// We don't have a record of this layer, but at least
|
|
||||||
// try to clean it up underneath us.
|
|
||||||
if err2 := r.driver.Remove(id); err2 != nil {
|
|
||||||
logrus.Errorf("While recovering from a failure saving incomplete layer metadata, error deleting layer %#v: %v", id, err2)
|
|
||||||
}
|
|
||||||
return nil, -1, err
|
|
||||||
}
|
|
||||||
savedIncompleteLayer = true
|
|
||||||
size, err = r.applyDiffWithOptions(layer.ID, moreOptions, diff)
|
|
||||||
if err != nil {
|
|
||||||
if err2 := r.Delete(layer.ID); err2 != nil {
|
|
||||||
// Either a driver error or an error saving.
|
|
||||||
// We now have a layer that's been marked for
|
|
||||||
// deletion but which we failed to remove.
|
|
||||||
logrus.Errorf("While recovering from a failure applying layer diff, error deleting layer %#v: %v", layer.ID, err2)
|
|
||||||
}
|
|
||||||
return nil, -1, err
|
|
||||||
}
|
|
||||||
delete(layer.Flags, incompleteFlag)
|
|
||||||
} else {
|
|
||||||
// applyDiffWithOptions in the `diff != nil` case handles this bit for us
|
|
||||||
if layer.CompressedDigest != "" {
|
|
||||||
r.bycompressedsum[layer.CompressedDigest] = append(r.bycompressedsum[layer.CompressedDigest], layer.ID)
|
|
||||||
}
|
|
||||||
if layer.UncompressedDigest != "" {
|
|
||||||
r.byuncompressedsum[layer.UncompressedDigest] = append(r.byuncompressedsum[layer.UncompressedDigest], layer.ID)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
err = r.Save()
|
err = r.Save()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if savedIncompleteLayer {
|
// We don't have a record of this layer, but at least
|
||||||
if err2 := r.Delete(layer.ID); err2 != nil {
|
// try to clean it up underneath us.
|
||||||
// Either a driver error or an error saving.
|
if err2 := r.driver.Remove(id); err2 != nil {
|
||||||
// We now have a layer that's been marked for
|
logrus.Errorf("While recovering from a failure saving incomplete layer metadata, error deleting layer %#v: %v", id, err2)
|
||||||
// deletion but which we failed to remove.
|
|
||||||
logrus.Errorf("While recovering from a failure saving finished layer metadata, error deleting layer %#v: %v", layer.ID, err2)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// We don't have a record of this layer, but at least
|
|
||||||
// try to clean it up underneath us.
|
|
||||||
if err2 := r.driver.Remove(id); err2 != nil {
|
|
||||||
logrus.Errorf("While recovering from a failure saving finished layer metadata, error deleting layer %#v in graph driver: %v", id, err2)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil, -1, err
|
return nil, -1, err
|
||||||
}
|
}
|
||||||
layer = copyLayer(layer)
|
savedIncompleteLayer = true
|
||||||
|
size, err = r.applyDiffWithOptions(layer.ID, moreOptions, diff)
|
||||||
|
if err != nil {
|
||||||
|
if err2 := r.Delete(layer.ID); err2 != nil {
|
||||||
|
// Either a driver error or an error saving.
|
||||||
|
// We now have a layer that's been marked for
|
||||||
|
// deletion but which we failed to remove.
|
||||||
|
logrus.Errorf("While recovering from a failure applying layer diff, error deleting layer %#v: %v", layer.ID, err2)
|
||||||
|
}
|
||||||
|
return nil, -1, err
|
||||||
|
}
|
||||||
|
delete(layer.Flags, incompleteFlag)
|
||||||
|
} else {
|
||||||
|
// applyDiffWithOptions in the `diff != nil` case handles this bit for us
|
||||||
|
if layer.CompressedDigest != "" {
|
||||||
|
r.bycompressedsum[layer.CompressedDigest] = append(r.bycompressedsum[layer.CompressedDigest], layer.ID)
|
||||||
|
}
|
||||||
|
if layer.UncompressedDigest != "" {
|
||||||
|
r.byuncompressedsum[layer.UncompressedDigest] = append(r.byuncompressedsum[layer.UncompressedDigest], layer.ID)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
err = r.Save()
|
||||||
|
if err != nil {
|
||||||
|
if savedIncompleteLayer {
|
||||||
|
if err2 := r.Delete(layer.ID); err2 != nil {
|
||||||
|
// Either a driver error or an error saving.
|
||||||
|
// We now have a layer that's been marked for
|
||||||
|
// deletion but which we failed to remove.
|
||||||
|
logrus.Errorf("While recovering from a failure saving finished layer metadata, error deleting layer %#v: %v", layer.ID, err2)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// We don't have a record of this layer, but at least
|
||||||
|
// try to clean it up underneath us.
|
||||||
|
if err2 := r.driver.Remove(id); err2 != nil {
|
||||||
|
logrus.Errorf("While recovering from a failure saving finished layer metadata, error deleting layer %#v in graph driver: %v", id, err2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil, -1, err
|
||||||
|
}
|
||||||
|
layer = copyLayer(layer)
|
||||||
return layer, size, err
|
return layer, size, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue