diff --git a/src/application.coffee b/src/application.coffee index b1ac8817..0ded9a0f 100644 --- a/src/application.coffee +++ b/src/application.coffee @@ -68,6 +68,10 @@ logTypes = eventName: 'Application update error' humanName: 'Failed to update application' +logSystemMessage = (message, obj, eventName) -> + logger.log({ message, isSystem: true }) + utils.mixpanelTrack(eventName ? message, obj) + logSystemEvent = (logType, app, error) -> message = "#{logType.humanName} '#{app.imageId}'" if error? @@ -80,22 +84,15 @@ logSystemEvent = (logType, app, error) -> if _.isEmpty(errMessage) errMessage = 'Unknown cause' message += " due to '#{errMessage}'" - logger.log({ message, isSystem: true }) - utils.mixpanelTrack(logType.eventName, {app, error}) + logSystemMessage(message, {app, error}, logType.eventName) return -logMessage = (msg) -> - logger.log(msg, isSystem: true) - utils.mixpanelTrack(msg) - logSpecialAction = (action, value, success) -> if success msg = "Applied config variable #{action} = #{value}" else msg = "Applying config variable #{action} = #{value}" - logMessage(msg) - - + logSystemMessage(msg, {}, "Apply special action #{success ? "success" : "in progress"}") application = {} @@ -360,7 +357,7 @@ executeSpecialActionsAndHostConfig = (env) -> hostConfigVars = _.pick env, (val, key) -> return _.startsWith(key, device.hostConfigEnvVarPrefix) if !_.isEmpty(hostConfigVars) - device.setHostConfig(hostConfigVars, logMessage) + device.setHostConfig(hostConfigVars, logSystemMessage) wrapAsError = (err) -> return err if _.isError(err) diff --git a/src/device.coffee b/src/device.coffee index 0231c240..b05ea0f4 100644 --- a/src/device.coffee +++ b/src/device.coffee @@ -72,8 +72,7 @@ parseBootConfigFromEnv = (env) -> exports.setHostConfig = (env, logMessage) -> Promise.join setBootConfig(env, logMessage), setLogToDisplay(env, logMessage), (bootConfigApplied, logToDisplayChanged) -> - return true if bootConfigApplied or logToDisplayChanged - return false + return (bootConfigApplied or logToDisplayChanged) setLogToDisplay = (env, logMessage) -> if env['RESIN_HOST_LOG_TO_DISPLAY']? @@ -81,14 +80,17 @@ setLogToDisplay = (env, logMessage) -> request.postAsync(config.gosuperAddress + '/v1/set-log-to-display', {json: true, body: Enable: enable}) .spread (response, body) -> if response.statusCode != 200 - logMessage("Error setting log to display: #{body}, Status:, #{response.statusCode}") + logMessage("Error setting log to display: #{body.Error}, Status:, #{response.statusCode}", {error: body.Error}, "Set log to display error") return false else if body.Data == true logMessage("#{enable ? "Enabled" : "Disabled"} logs to display") return body.Data + .catch (err) -> + logMessage("Error setting log to display: #{err}", {error: err}, "Set log to display error") + return false else - return false + return Promise.resolve(false) setBootConfig = (env, logMessage) -> device.getDeviceType() @@ -116,7 +118,7 @@ setBootConfig = (env, logMessage) -> configFromApp[key] != configFromFS[key] throw new Error('Nothing to change') if _.isEmpty(toBeChanged) and _.isEmpty(toBeAdded) - logMessage("Applying boot config: #{configFromApp}") + logMessage("Applying boot config: #{configFromApp}", {}, "Apply boot config in progress") # We add the keys to be added first so they are out of any filters outputConfig = _.map toBeAdded, (key) -> "#{key}=#{configFromApp[key]}" outputConfig = outputConfig.concat _.map configPositions, (key, index) -> @@ -135,10 +137,10 @@ setBootConfig = (env, logMessage) -> .then -> execAsync('sync') .then -> - logMessage("Applied boot config: #{configFromApp}") + logMessage("Applied boot config: #{configFromApp}", {}, "Apply boot config success") return true .catch (err) -> - logMessage("Error setting boot config: #{err}") + logMessage("Error setting boot config: #{err}", {error: err}, "Apply boot config error") throw err .catch (err) -> console.log('Will not set boot config: ', err)