Remove old migration code

This commit is contained in:
James Allen
2016-08-23 11:03:37 +01:00
parent cb62b005f3
commit 87f3e5e809
3 changed files with 2 additions and 132 deletions

View File

@@ -119,34 +119,4 @@ module.exports = RedisManager =
getDocIdsInProject: (project_id, callback = (error, doc_ids) ->) ->
rclient.smembers keys.docsInProject(project_id: project_id), callback
getAndSetDoc: (doc_id, callback = (error, project_id) ->) ->
multi = rclient.multi()
multi.get keys.docLines(doc_id:doc_id)
multi.get keys.docVersion(doc_id:doc_id)
multi.lrange keys.docOps(doc_id:doc_id), 0, -1
multi.get keys.projectKey(doc_id:doc_id)
multi.exec (error, results = []) ->
return callback(error) if error?
[lines, version, ops, project_id] = results
multi = rclient.multi()
if lines?
multi.set keys.docLines(doc_id:doc_id), lines
if version?
multi.set keys.docVersion(doc_id:doc_id), version
multi.del keys.docOps(doc_id:doc_id)
if ops.length > 0
multi.rpush keys.docOps(doc_id:doc_id), ops...
if project_id?
multi.set keys.projectKey(doc_id:doc_id), project_id
multi.exec (error) ->
return callback(error) if error?
return callback null, project_id
getAndSetProject: (project_id, callback = (error) ->) ->
rclient.smembers keys.docsInProject(project_id: project_id), (error, doc_ids) ->
return callback(error) if error?
if doc_ids.length > 0
rclient.sadd keys.docsInProject(project_id: project_id), doc_ids..., callback
else
callback()

View File

@@ -1,36 +0,0 @@
RedisManager = require "./app/coffee/RedisManager"
UpdateManager = require "./app/coffee/UpdateManager"
LockManager = require "./app/coffee/LockManager"
async = require "async"
handleErrorInsideLock = (doc_id, lockValue, original_error, callback = (error) ->) ->
LockManager.releaseLock doc_id, lockValue, (lock_error) ->
callback(original_error)
migrateDoc = (doc_id, callback = (error) ->) ->
LockManager.getLock doc_id, (error, lockValue) ->
return callback(error) if error?
RedisManager.getAndSetDoc doc_id, (error, project_id) ->
return handleErrorInsideLock(doc_id, lockValue, error, callback) if error?
RedisManager.getAndSetProject project_id, (error) ->
return handleErrorInsideLock(doc_id, lockValue, error, callback) if error?
LockManager.releaseLock doc_id, lockValue, (error) ->
return callback(error) if error?
UpdateManager.continueProcessingUpdatesWithLock project_id, doc_id, callback
doc_ids = process.argv.slice(2)
if doc_ids.length == 0
console.log "Usage: coffee migrate.coffee DOC_ID [DOC_ID ...]"
process.exit(1)
jobs = []
for doc_id in doc_ids
do (doc_id) ->
jobs.push (cb) ->
console.log "MIGRATING #{doc_id}"
migrateDoc doc_id, cb
async.series jobs, (error) ->
throw error if error?
process.exit(0)

View File

@@ -230,68 +230,4 @@ describe "RedisManager", ->
@rclient.srem
.calledWith("DocsIn:#{@project_id}", @doc_id)
.should.equal true
describe "getAndSetDoc", ->
beforeEach ->
@rclient.get = sinon.stub()
@rclient.lrange = sinon.stub()
@rclient.del = sinon.stub()
@rclient.set = sinon.stub()
@rclient.rpush = sinon.stub()
@rclient.exec = sinon.stub()
@rclient.exec.yields(null, [
@lines = '["mock","lines"]',
@version = 42,
@doc_ops = ["mock", "doc", "ops"],
@project_id = "mock-project-id"
])
@RedisManager.getAndSetDoc @doc_id, @callback
it "should get the original values", ->
@rclient.get
.calledWith("doclines:#{@doc_id}")
.should.equal true
@rclient.get
.calledWith("DocVersion:#{@doc_id}")
.should.equal true
@rclient.get
.calledWith("ProjectId:#{@doc_id}")
.should.equal true
@rclient.lrange
.calledWith("DocOps:#{@doc_id}", 0, -1)
.should.equal true
it "should set the doclines again", ->
@rclient.set
.calledWith("doclines:#{@doc_id}", @lines)
.should.equal true
it "should set the DocVersion again", ->
@rclient.set
.calledWith("DocVersion:#{@doc_id}", @version)
.should.equal true
it "should set the project id again", ->
@rclient.set
.calledWith("ProjectId:#{@doc_id}", @project_id)
.should.equal true
it "should set the doc ops again", ->
@rclient.del
.calledWith("DocOps:#{@doc_id}")
.should.equal true
@rclient.rpush
.calledWith("DocOps:#{@doc_id}", @doc_ops...)
.should.equal true
describe "getAndSetProject", ->
beforeEach ->
@rclient.smembers = sinon.stub()
@rclient.sadd = sinon.stub()
@rclient.smembers.withArgs("DocsIn:#{@project_id}").yields(null, @doc_ids = ["mock-doc-1", "mock-doc-2"])
@RedisManager.getAndSetProject @project_id, @callback
it "should set the doc ids again", ->
@rclient.sadd
.calledWith("DocsIn:#{@project_id}", @doc_ids...)
.should.equal true