{"push_id":779755297,"size":17,"distinct_size":14,"ref":"refs/heads/address-parsing","head":"9c4acf03666e40b94f8a1b97c31942657649d54b","before":"576fd958e44756284f2b9fafa17560d32fc43959","commits":[{"sha":"12d8f9132e8cb77f9de25860c0f463a89e8b986d","author":{"email":"044a2f5446224495d6813d561c55539f695c57ce@2ndQuadrant.com","name":"Abhijit Menon-Sen"},"message":"Make lock_host_keys a real noop, instead of half-a-noop\n\nRight now, we don't do any locking, but we still scan known_hosts files\ntwice per connection. That's completely unnecessary, and the proposed\nsolutions to the locking problem wouldn't need known_hosts scanning\nanyway, so this code can go away.","distinct":false,"url":"https://api.github.com/repos/amenonsen/ansible/commits/12d8f9132e8cb77f9de25860c0f463a89e8b986d"},{"sha":"5887e96b270b2f0d19d3e34a09e16e21824c4887","author":{"email":"044a2f5446224495d6813d561c55539f695c57ce@2ndQuadrant.com","name":"Abhijit Menon-Sen"},"message":"Introduce a connection locking infrastructure\n\nThe lock file is (a temporary file) opened in the parent process, whose\nopen fd is inherited by the workers after fork, and passed down through\nthe PlayContext. Connection grows lock/unlock methods which can be used\nby individual connection plugins.","distinct":false,"url":"https://api.github.com/repos/amenonsen/ansible/commits/5887e96b270b2f0d19d3e34a09e16e21824c4887"},{"sha":"9378c8e2dae0e50a186181c50b3e462fcfa0fdaa","author":{"email":"044a2f5446224495d6813d561c55539f695c57ce@2ndQuadrant.com","name":"Abhijit Menon-Sen"},"message":"Make the paramiko plugin use locking","distinct":false,"url":"https://api.github.com/repos/amenonsen/ansible/commits/9378c8e2dae0e50a186181c50b3e462fcfa0fdaa"},{"sha":"3e5b90c6fbbb343ddbc773453fc25210aabaa15e","author":{"email":"d79aad3085f9fd5feb459e6dde516ee4222f4906@sngx.net","name":"James Cammarata"},"message":"Merge pull request #12195 from amenonsen/ssh-lesswork\n\nMake lock_host_keys a real noop, instead of half-a-noop","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/3e5b90c6fbbb343ddbc773453fc25210aabaa15e"},{"sha":"7034bbef309ab59edb4a56b97158f937928e12d2","author":{"email":"d79aad3085f9fd5feb459e6dde516ee4222f4906@sngx.net","name":"James Cammarata"},"message":"Merge branch 'connection-locking' of https://github.com/amenonsen/ansible into amenonsen-connection-locking","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/7034bbef309ab59edb4a56b97158f937928e12d2"},{"sha":"b9afbf0ee468c0deb87a4fe316b92546db3fa554","author":{"email":"d79aad3085f9fd5feb459e6dde516ee4222f4906@sngx.net","name":"James Cammarata"},"message":"Reorganizing the way the connection lockfile is created","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/b9afbf0ee468c0deb87a4fe316b92546db3fa554"},{"sha":"ba658ff3a94badac8c49ca6dfdbd4e3129c403bb","author":{"email":"d79aad3085f9fd5feb459e6dde516ee4222f4906@sngx.net","name":"James Cammarata"},"message":"Merge branch 'amenonsen-connection-locking' into devel","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/ba658ff3a94badac8c49ca6dfdbd4e3129c403bb"},{"sha":"b93f27e260870f7cc498825a59b0b6407c09bca7","author":{"email":"d79aad3085f9fd5feb459e6dde516ee4222f4906@sngx.net","name":"James Cammarata"},"message":"Move the lockfile back to tqm to make sure it stays unique","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/b93f27e260870f7cc498825a59b0b6407c09bca7"},{"sha":"9e1bc434c768dab26468220de4bc57490f5666cd","author":{"email":"d79aad3085f9fd5feb459e6dde516ee4222f4906@sngx.net","name":"James Cammarata"},"message":"Further cleanup from locking changes","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/9e1bc434c768dab26468220de4bc57490f5666cd"},{"sha":"823677b490d3ddc3bcfe8fa2f215d9d9c2167b14","author":{"email":"38edb439dbcce85f0f597d90d338db16e5438073@gedmin.as","name":"Marius Gedminas"},"message":"Replace .iteritems() with six.iteritems()\n\nReplace .iteritems() with six.iteritems() everywhere except in\nmodule_utils (because there's no 'six' on the remote host).  And except\nin lib/ansible/galaxy/data/metadata_template.j2, because I'm not sure\nsix is available there.","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/823677b490d3ddc3bcfe8fa2f215d9d9c2167b14"},{"sha":"ce978745238bcab915ff409113861bad7bc7dfd3","author":{"email":"a12dbb9f5252acfdcfdc4cd546ecb9493d2ab63a@gmail.com","name":"Toshio Kuratomi"},"message":"Merge pull request #12226 from mgedmin/py3k\n\nReplace .iteritems() with six.iteritems()","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/ce978745238bcab915ff409113861bad7bc7dfd3"},{"sha":"0a7cbf735dffbca36b677c3c8961f85606bff784","author":{"email":"044a2f5446224495d6813d561c55539f695c57ce@2ndQuadrant.com","name":"Abhijit Menon-Sen"},"message":"Be systematic about parsing and validating hostnames and addresses\n\nThis adds a parse_address(pattern) utility function that returns\n(host,port), and uses it wherever where we accept IPv4 and IPv6\naddresses and hostnames (or host patterns).","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/0a7cbf735dffbca36b677c3c8961f85606bff784"},{"sha":"2b6d4bfc4ad0cfa659bfe264589973600545d58f","author":{"email":"044a2f5446224495d6813d561c55539f695c57ce@2ndQuadrant.com","name":"Abhijit Menon-Sen"},"message":"Since host ranges are already validated, detection is trivial","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/2b6d4bfc4ad0cfa659bfe264589973600545d58f"},{"sha":"ce6451584aa181e88ecbd8609ef4d9cf0cc10c9c","author":{"email":"044a2f5446224495d6813d561c55539f695c57ce@2ndQuadrant.com","name":"Abhijit Menon-Sen"},"message":"Make it easier to test address parsing\n\nInstead of having a series of separate methods that differ only in the\nparsed string, we use one table for allow_ranges=False and one for the\nopposite, with methods that just walk the table calling parse_address()\non each entry and comparing with the expected results.","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/ce6451584aa181e88ecbd8609ef4d9cf0cc10c9c"},{"sha":"87a148c811efc511726287169308fcd08019f101","author":{"email":"044a2f5446224495d6813d561c55539f695c57ce@2ndQuadrant.com","name":"Abhijit Menon-Sen"},"message":"Return the port number, if given, as an integer","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/87a148c811efc511726287169308fcd08019f101"},{"sha":"65f5099628abf15676b3cf8a60a357d5aba59806","author":{"email":"044a2f5446224495d6813d561c55539f695c57ce@2ndQuadrant.com","name":"Abhijit Menon-Sen"},"message":"Rename a variable that shadowed an argument, because we need the original","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/65f5099628abf15676b3cf8a60a357d5aba59806"},{"sha":"9c4acf03666e40b94f8a1b97c31942657649d54b","author":{"email":"044a2f5446224495d6813d561c55539f695c57ce@2ndQuadrant.com","name":"Abhijit Menon-Sen"},"message":"Be stricter about parsing hostname labels\n\nLabels must start with an alphanumeric character, may contain\nalphanumeric characters or hyphens, but must not end with a hyphen.\nWe enforce those rules, but allow underscores wherever hyphens are\naccepted, and allow alphanumeric ranges anywhere.\n\nWe still don't enforce length restrictions—the fact that we have to\naccept ranges makes it more complex, and it doesn't seem especially\nworthwhile.","distinct":true,"url":"https://api.github.com/repos/amenonsen/ansible/commits/9c4acf03666e40b94f8a1b97c31942657649d54b"}]}