{"push_id":873645859,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"90c03e833cdc1932af717023a4547d70521833ba","before":"1fe1784806e9135c25b5c45d784fa1646d2dfe42","commits":[{"sha":"90c03e833cdc1932af717023a4547d70521833ba","author":{"email":"d3af50858a27f644d377a39d1fbd399608163688@citrix.com","name":"Jonathan Davies"},"message":"Proper {at,de}tach / {ac,deac}tivate split\n\nPreviously the mapping of SMAPI commands to tapdisk actions was:\n * attach => tap.create; tap.open\n * activate => noop\n * deactivate => tap.close; tap.destroy\n * detach => noop\n\nNow the mapping of SMAPI commands to tapdisk actions is:\n * attach => tap.create\n * activate => tap.open\n * deactivate => tap.close\n * detach => tap.destroy\n\nTo achieve this, the plugin must remember the tapdisk created in attach so that\nit can be referred to in activate, deactivate and detach. (Note that it is not\nsufficient to rely on tapdisk.find_by_file as the filename is only associated\nwith the tapdisk after activate and before detach.) This is achieved by pickling\nthe Tapdisk object to non-persistent storage on the local host and unpickling it\nwhen required.\n\nAlthough it incurs filesystem I/O, it avoids the need to call\ntapdisk.find_by_file -- which invokes tap-ctl list, which can sometimes be very\nslow -- so is likely to improve performance.\n\n(Note that it is an explicit design decision for SMAPIv3 datapath plugins to\nmanage their own state to avoid making assumptions about other layers.)\n\nSigned-off-by: Jonathan Davies <jonathan.davies@citrix.com>","distinct":true,"url":"https://api.github.com/repos/jjd27/xapi-storage-datapath-plugins/commits/90c03e833cdc1932af717023a4547d70521833ba"}]}