fix: Don't consider volume supervised labels when comparing

Change-type: patch
Closes: #1039
Signed-off-by: Cameron Diver <cameron@balena.io>
This commit is contained in:
Cameron Diver 2019-07-18 14:29:44 +01:00
parent 9ad2a6a343
commit cbb079e8dc
No known key found for this signature in database
GPG Key ID: 49690ED87032539F

View File

@ -1,6 +1,7 @@
import * as Docker from 'dockerode';
import assign = require('lodash/assign');
import isEqual = require('lodash/isEqual');
import omitBy = require('lodash/omitBy');
import constants = require('../lib/constants');
import { InternalInconsistencyError } from '../lib/errors';
@ -90,7 +91,10 @@ export class Volume {
public isEqualConfig(volume: Volume): boolean {
return (
isEqual(this.config.driverOpts, volume.config.driverOpts) &&
isEqual(this.config.labels, volume.config.labels)
isEqual(
Volume.omitSupervisorLabels(this.config.labels),
Volume.omitSupervisorLabels(volume.config.labels),
)
);
}
@ -148,6 +152,14 @@ export class Volume {
name: match[2],
};
}
private static omitSupervisorLabels(labels: LabelObject): LabelObject {
// TODO: Export these to a constant
return omitBy(
labels,
(_v, k) => k === 'io.resin.supervised' || k === 'io.balena.supervised',
);
}
}
export default Volume;