Skip to content

Instantly share code, notes, and snippets.

@pcarranzav
Created October 20, 2016 22:51
Show Gist options
  • Save pcarranzav/439acac95d0ccd05d9b3ba36fcf2dd1c to your computer and use it in GitHub Desktop.
Save pcarranzav/439acac95d0ccd05d9b3ba36fcf2dd1c to your computer and use it in GitHub Desktop.
Simple test for node-docker-delta
Promise = require 'bluebird'
request = require 'request'
progress = require 'request-progress'
DELTA_REQUEST_TIMEOUT = 15 * 60 * 1000
config = { deltaHost: 'https://delta.resinstaging.io' }
imgSrc = 'resin/armhf-alpine:3.4-20161018'
imgDest = 'registry.resinstaging.io/testaufsdiff/75be750cca0c92d7286a48377af1ae24a589efb3:latest'
dockerDelta = require 'docker-delta'
new Promise (resolve, reject) ->
progress request.get("#{config.deltaHost}/api/v2/delta?src=#{imgSrc}&dest=#{imgDest}", timeout: DELTA_REQUEST_TIMEOUT)
.on 'progress', (progress) ->
console.log("Progress #{progress.percentage}%")
.on 'end', ->
console.log("Downloaded")
.on 'response', (res) ->
if res.statusCode isnt 200
reject(new Error("Got #{res.statusCode} when requesting image from delta server."))
else
res.pipe(dockerDelta.applyDelta(imgSrc, imgDest))
.on('id', resolve)
.on('error', reject)
.on 'error', reject
.then ->
console.log('Delta applied')
.catch (err) ->
console.log('Error: ', err, err.stack)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment