{"push_id":2859883298,"size":5,"distinct_size":5,"ref":"refs/heads/ftp_object_storage","head":"a502d541e58bdbfba51b099a6bcb17f94b3a6f12","before":"897508d30f822d5043baed681c478ddf143cf349","commits":[{"sha":"5922cc849ac2e648747a682befb2275326eee803","author":{"name":"Nick LaMuro","email":"589140b8ee900d3d0dc43d0a55461e50c0af801a@gmail.com"},"message":"Add ftpd as a gem dependency\n\nWill be used for spinning up a local FTP server in the tests for specs\nthat require one.","distinct":true,"url":"https://api.github.com/repos/NickLaMuro/manageiq-gems-pending/commits/5922cc849ac2e648747a682befb2275326eee803"},{"sha":"56c4b2fa7b313adccc878541313c1423aab4bd17","author":{"name":"Nick LaMuro","email":"589140b8ee900d3d0dc43d0a55461e50c0af801a@gmail.com"},"message":"Add with_ftp_server rspec shared_context\n\nContext that make sure to spin up an FTP server when included, and will\nmake some helper methods available.\n\nUses the `ftpd` gem to handle the ftp server.","distinct":true,"url":"https://api.github.com/repos/NickLaMuro/manageiq-gems-pending/commits/56c4b2fa7b313adccc878541313c1423aab4bd17"},{"sha":"0c89ed2e46787624852b4ba9719a46d60562f0b3","author":{"name":"Nick LaMuro","email":"589140b8ee900d3d0dc43d0a55461e50c0af801a@gmail.com"},"message":"Adds MiqFtpLib\n\nThis is lifted from the FileDepotFtp code in the manageiq repo, and is\njust some shared methods around connecting to an FTP endpoint.\n\nAdds some tests around it as well.","distinct":true,"url":"https://api.github.com/repos/NickLaMuro/manageiq-gems-pending/commits/0c89ed2e46787624852b4ba9719a46d60562f0b3"},{"sha":"d880a7f2803144820ab73a58ab07a840d4d534af","author":{"name":"Nick LaMuro","email":"589140b8ee900d3d0dc43d0a55461e50c0af801a@gmail.com"},"message":"Add \"generated tmp files\" context\n\nThis was originally part of the MiqLocalMountSession spec, and could be\nuseful for other specs as well, specifically FTP based object stores in\nthe future.","distinct":true,"url":"https://api.github.com/repos/NickLaMuro/manageiq-gems-pending/commits/d880a7f2803144820ab73a58ab07a840d4d534af"},{"sha":"a502d541e58bdbfba51b099a6bcb17f94b3a6f12","author":{"name":"Nick LaMuro","email":"589140b8ee900d3d0dc43d0a55461e50c0af801a@gmail.com"},"message":"Add MiqFtpStorage\n\nThis adds FTP as a ObjectStorage target, which allows the FTP protocol\nto be used in conjunction with the MiqFileStorage::Interface.\n\nMost of this is pretty straight forward and uses the vanilla Net::FTP\nmechanics, but upload_single got a bit involved.\n\nBecause we want to stream as much of this content as possible, and file\nsplitting is also a requirement for uploads, breaking into the internals\nof Net::FTP was necessary to achieve uploads where we were only\npartially reading the input.  `Net::FTP#storbinary` only allows sending\nthe entire file, and being able to specify the size of the upload chunks\nand offset, but not how much of the file intotal to send.\n\nIO.copy_stream thankfully does most of the heavy lifting and logic for\nus, and since we are streaming the content through that, should send the\n`.write` calls in a small enough size that doesn't go over the\n`Net::FTP::DEFAULT_BLOCKSIZE`... I hope...","distinct":true,"url":"https://api.github.com/repos/NickLaMuro/manageiq-gems-pending/commits/a502d541e58bdbfba51b099a6bcb17f94b3a6f12"}]}
{"actor":{"display_login":"NickLaMuro"}}