)]}'
{"doc/source/configuration.rst":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"b2c4e77656b5d60d95d627bcce36328b039e1024","unresolved":false,"context_lines":[{"line_number":1632,"context_line":"         If this is provided, it is used to select the image from the cloud"},{"line_number":1633,"context_line":"         provider by ID."},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"      .. attr:: image-filters"},{"line_number":1636,"context_line":"         :type: list"},{"line_number":1637,"context_line":""},{"line_number":1638,"context_line":"         If provided, this is used to select an AMI by filters."}],"source_content_type":"text/x-rst","patch_set":3,"id":"3fa7e38b_9873fab1","line":1635,"updated":"2019-09-20 05:31:42.000000000","message":"This entry and image-id should probably both explain what happens if both of them are specified.","commit_id":"4fff49394679b77f317a984b2c214777fa9f4d53"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"c8f6f1c214e6aeb9129acf914d4f8103daea6b6a","unresolved":false,"context_lines":[{"line_number":1600,"context_line":"             username: ubuntu"},{"line_number":1601,"context_line":"           - name: ubuntu1804-by-filters"},{"line_number":1602,"context_line":"             image-filters:"},{"line_number":1603,"context_line":"               - Name: name"},{"line_number":1604,"context_line":"                 Values:"},{"line_number":1605,"context_line":"                  - named-ami"},{"line_number":1606,"context_line":"             username: ubuntu"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_b4a245fb","line":1603,"range":{"start_line":1603,"start_character":17,"end_line":1603,"end_character":18},"updated":"2019-09-24 11:17:01.000000000","message":"This is going to sound like a bikeshed - but bear with me ..\n\nThe capitalized key names here are different than the rest of the nodepool config. They make sense though, because they\u0027re sent in this form to Boto and thus will make sense capitalized to AWS users.\n\nMy concern is that it\u0027s a bad user experience to have config file errors resulting from capitalization isssues.\n\nSO - I\u0027m wondering if maybe we could support both. Maybe even keep this as it is - document it capitalized, since that\u0027s in keeping with the interface of AWS on the other side and this is for the AWS driver - but also accept \u0027name\u0027 and \u0027values\u0027","commit_id":"f406e0cbbd2997671c82ca5c25a035dad993cf21"},{"author":{"_account_id":30990,"name":"Kerby","email":"kerby@goodmoney.com","username":"kerbyferris"},"change_message_id":"b7f1b9dd13a14899e27bb7549b2fab8524a42f46","unresolved":false,"context_lines":[{"line_number":1600,"context_line":"             username: ubuntu"},{"line_number":1601,"context_line":"           - name: ubuntu1804-by-filters"},{"line_number":1602,"context_line":"             image-filters:"},{"line_number":1603,"context_line":"               - Name: name"},{"line_number":1604,"context_line":"                 Values:"},{"line_number":1605,"context_line":"                  - named-ami"},{"line_number":1606,"context_line":"             username: ubuntu"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_534c2041","line":1603,"range":{"start_line":1603,"start_character":17,"end_line":1603,"end_character":18},"in_reply_to":"3fa7e38b_691b7680","updated":"2019-09-26 00:26:41.000000000","message":"Makes complete sense. Will implement for sure.","commit_id":"f406e0cbbd2997671c82ca5c25a035dad993cf21"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"b42e9168ee47d9388590297c212732247888a75f","unresolved":false,"context_lines":[{"line_number":1600,"context_line":"             username: ubuntu"},{"line_number":1601,"context_line":"           - name: ubuntu1804-by-filters"},{"line_number":1602,"context_line":"             image-filters:"},{"line_number":1603,"context_line":"               - Name: name"},{"line_number":1604,"context_line":"                 Values:"},{"line_number":1605,"context_line":"                  - named-ami"},{"line_number":1606,"context_line":"             username: ubuntu"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3fa7e38b_691b7680","line":1603,"range":{"start_line":1603,"start_character":17,"end_line":1603,"end_character":18},"in_reply_to":"3fa7e38b_b4a245fb","updated":"2019-09-25 19:04:46.000000000","message":"+1 for consistency","commit_id":"f406e0cbbd2997671c82ca5c25a035dad993cf21"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"731681cf5a360667c6af780b7db0c0b2822fe583","unresolved":false,"context_lines":[{"line_number":1637,"context_line":""},{"line_number":1638,"context_line":"         Each entry is a dictionary with the following keys"},{"line_number":1639,"context_line":""},{"line_number":1640,"context_line":"         .. attr:: Name"},{"line_number":1641,"context_line":"            :type: str"},{"line_number":1642,"context_line":"            :required:"},{"line_number":1643,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"3fa7e38b_9507aa18","line":1640,"updated":"2019-09-29 08:04:16.000000000","message":"I\u0027m a little bit uncomfortable having non-lowercase config keys here as this breaks consistency. However I see the reason for doing this as this makes it possible to just forward the whole struct as filters.","commit_id":"cdc3485459f51cf92945a7fd09ac629b1a6b8af8"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"7e2bbfa5b94bbfe6cd1e5883fefb8e6f1a259f8b","unresolved":false,"context_lines":[{"line_number":1643,"context_line":""},{"line_number":1644,"context_line":"            The filter name. See `Boto describe images`_ for a list of valid filters."},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"         .. attr:: nalues"},{"line_number":1647,"context_line":"            :type: list"},{"line_number":1648,"context_line":"            :required:"},{"line_number":1649,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_884aa924","line":1646,"updated":"2019-10-08 16:47:55.000000000","message":"Whoops, values","commit_id":"69231c62ded53eff28c445fd5756f15070360d0a"},{"author":{"_account_id":30990,"name":"Kerby","email":"kerby@goodmoney.com","username":"kerbyferris"},"change_message_id":"f5c73d19d543920b76205e7824e41b839e81601e","unresolved":false,"context_lines":[{"line_number":1643,"context_line":""},{"line_number":1644,"context_line":"            The filter name. See `Boto describe images`_ for a list of valid filters."},{"line_number":1645,"context_line":""},{"line_number":1646,"context_line":"         .. attr:: nalues"},{"line_number":1647,"context_line":"            :type: list"},{"line_number":1648,"context_line":"            :required:"},{"line_number":1649,"context_line":""}],"source_content_type":"text/x-rst","patch_set":9,"id":"3fa7e38b_b6dca246","line":1646,"in_reply_to":"3fa7e38b_884aa924","updated":"2019-10-08 18:22:04.000000000","message":"drrrrrp","commit_id":"69231c62ded53eff28c445fd5756f15070360d0a"}],"nodepool/driver/aws/config.py":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"c8f6f1c214e6aeb9129acf914d4f8103daea6b6a","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        })"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        image_filters \u003d {"},{"line_number":227,"context_line":"            v.Required(\u0027Name\u0027): str,"},{"line_number":228,"context_line":"            v.Required(\u0027Values\u0027): [str]"},{"line_number":229,"context_line":"        }"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_94494932","line":227,"range":{"start_line":227,"start_character":12,"end_line":227,"end_character":36},"updated":"2019-09-24 11:17:01.000000000","message":"Then I think here we do *something* to express that either Name or name is acceptable, but return Name so that the data structure is good for boto.","commit_id":"f406e0cbbd2997671c82ca5c25a035dad993cf21"},{"author":{"_account_id":30990,"name":"Kerby","email":"kerby@goodmoney.com","username":"kerbyferris"},"change_message_id":"b7f1b9dd13a14899e27bb7549b2fab8524a42f46","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        })"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        image_filters \u003d {"},{"line_number":227,"context_line":"            v.Required(\u0027Name\u0027): str,"},{"line_number":228,"context_line":"            v.Required(\u0027Values\u0027): [str]"},{"line_number":229,"context_line":"        }"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_b3431413","line":227,"range":{"start_line":227,"start_character":12,"end_line":227,"end_character":36},"in_reply_to":"3fa7e38b_94494932","updated":"2019-09-26 00:26:41.000000000","message":"Yes, very much agreed!","commit_id":"f406e0cbbd2997671c82ca5c25a035dad993cf21"},{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"7e2bbfa5b94bbfe6cd1e5883fefb8e6f1a259f8b","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            image_filters \u003d image.get(\"image-filters\", None)"},{"line_number":196,"context_line":"            if image_filters is not None:"},{"line_number":197,"context_line":"                # ensure \u0027name\u0027 and \u0027values\u0027 keys are capitalized for boto"},{"line_number":198,"context_line":"                capitalize_keys \u003d lambda d: {"},{"line_number":199,"context_line":"                    k.capitalize(): v for (k, v) in d.items()"},{"line_number":200,"context_line":"                }"},{"line_number":201,"context_line":"                image_filters \u003d [capitalize_keys(f) for f in image_filters]"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_a8452517","line":198,"updated":"2019-10-08 16:47:55.000000000","message":"pep8 says use a def here","commit_id":"69231c62ded53eff28c445fd5756f15070360d0a"},{"author":{"_account_id":30990,"name":"Kerby","email":"kerby@goodmoney.com","username":"kerbyferris"},"change_message_id":"f5c73d19d543920b76205e7824e41b839e81601e","unresolved":false,"context_lines":[{"line_number":195,"context_line":"            image_filters \u003d image.get(\"image-filters\", None)"},{"line_number":196,"context_line":"            if image_filters is not None:"},{"line_number":197,"context_line":"                # ensure \u0027name\u0027 and \u0027values\u0027 keys are capitalized for boto"},{"line_number":198,"context_line":"                capitalize_keys \u003d lambda d: {"},{"line_number":199,"context_line":"                    k.capitalize(): v for (k, v) in d.items()"},{"line_number":200,"context_line":"                }"},{"line_number":201,"context_line":"                image_filters \u003d [capitalize_keys(f) for f in image_filters]"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_d686fe13","line":198,"in_reply_to":"3fa7e38b_a8452517","updated":"2019-10-08 18:22:04.000000000","message":":+1:","commit_id":"69231c62ded53eff28c445fd5756f15070360d0a"}],"nodepool/driver/aws/provider.py":[{"author":{"_account_id":6488,"name":"Clint Byrum","email":"clint@fewbar.com","username":"clint-fewbar"},"change_message_id":"b2c4e77656b5d60d95d627bcce36328b039e1024","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                self.log.warning("},{"line_number":120,"context_line":"                    \"Provider %s is configured to use both image-id: %s \""},{"line_number":121,"context_line":"                    \" and image-filters %s. These options conflict \""},{"line_number":122,"context_line":"                    \" and should not be used together. Ignoring image-id\""},{"line_number":123,"context_line":"                    % (self.provider.name,"},{"line_number":124,"context_line":"                       cloud_image.image_id,"},{"line_number":125,"context_line":"                       cloud_image.image_filters))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_386a06b3","line":122,"updated":"2019-09-20 05:31:42.000000000","message":"Thought more about this today. Maybe the right thing to do is not to have any special behavior with image-id+image-filters. It could be a way to ensure you don\u0027t ever use an AMI that doesn\u0027t satisfy the filters.. so if you do that.. the label is never available on this nodepool. Basically, make it find the intersection of the ID+filters rather than ignoring one of them.","commit_id":"4fff49394679b77f317a984b2c214777fa9f4d53"},{"author":{"_account_id":30990,"name":"Kerby","email":"kerby@goodmoney.com","username":"kerbyferris"},"change_message_id":"b7f1b9dd13a14899e27bb7549b2fab8524a42f46","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                self.log.warning("},{"line_number":120,"context_line":"                    \"Provider %s is configured to use both image-id: %s \""},{"line_number":121,"context_line":"                    \" and image-filters %s. These options conflict \""},{"line_number":122,"context_line":"                    \" and should not be used together. Ignoring image-id\""},{"line_number":123,"context_line":"                    % (self.provider.name,"},{"line_number":124,"context_line":"                       cloud_image.image_id,"},{"line_number":125,"context_line":"                       cloud_image.image_filters))"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_99653248","line":122,"in_reply_to":"3fa7e38b_386a06b3","updated":"2019-09-26 00:26:41.000000000","message":"Ok, so if the specified AMI id doesn\u0027t match the id returned by filtering, then fail out. What do you think should happen if the filters return multiple AMIs, and the specified AMI id matches one of them, but it isn\u0027t the latest? Should this fail out as well, or count as an intersection?","commit_id":"4fff49394679b77f317a984b2c214777fa9f4d53"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"b42e9168ee47d9388590297c212732247888a75f","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            msg \u003d \"No cloud-image (AMI) matches supplied image filters\""},{"line_number":109,"context_line":"            raise Exception(msg)"},{"line_number":110,"context_line":"        else:"},{"line_number":111,"context_line":"            return images[0].get(\"ImageId\", None)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def getImage(self, cloud_image):"},{"line_number":114,"context_line":"        image_id \u003d cloud_image.image_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_a419937a","line":111,"range":{"start_line":111,"start_character":44,"end_line":111,"end_character":48},"updated":"2019-09-25 19:04:46.000000000","message":"Shouldn\u0027t an exception be raised if ImageId is None?","commit_id":"f406e0cbbd2997671c82ca5c25a035dad993cf21"},{"author":{"_account_id":30990,"name":"Kerby","email":"kerby@goodmoney.com","username":"kerbyferris"},"change_message_id":"b7f1b9dd13a14899e27bb7549b2fab8524a42f46","unresolved":false,"context_lines":[{"line_number":108,"context_line":"            msg \u003d \"No cloud-image (AMI) matches supplied image filters\""},{"line_number":109,"context_line":"            raise Exception(msg)"},{"line_number":110,"context_line":"        else:"},{"line_number":111,"context_line":"            return images[0].get(\"ImageId\", None)"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def getImage(self, cloud_image):"},{"line_number":114,"context_line":"        image_id \u003d cloud_image.image_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_73491c2f","line":111,"range":{"start_line":111,"start_character":44,"end_line":111,"end_character":48},"in_reply_to":"3fa7e38b_a419937a","updated":"2019-09-26 00:26:41.000000000","message":"Artifact of an earlier implementation. Thank you!","commit_id":"f406e0cbbd2997671c82ca5c25a035dad993cf21"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"b42e9168ee47d9388590297c212732247888a75f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                msg \u003d \"image-id and image-filters cannot by used together\""},{"line_number":120,"context_line":"                raise Exception(msg)"},{"line_number":121,"context_line":"            else:"},{"line_number":122,"context_line":"                image_id_by_filters \u003d self.getLatestImageIdByFilters("},{"line_number":123,"context_line":"                    image_filters"},{"line_number":124,"context_line":"                )"},{"line_number":125,"context_line":"                return self.ec2.Image(image_id_by_filters)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        return self.ec2.Image(image_id)"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_440bff22","line":125,"range":{"start_line":122,"start_character":0,"end_line":125,"end_character":58},"updated":"2019-09-25 19:04:46.000000000","message":"this could be simplified to \"image_id \u003d self.getLatestImageIdByFiltesr(image_filters)\"","commit_id":"f406e0cbbd2997671c82ca5c25a035dad993cf21"},{"author":{"_account_id":30990,"name":"Kerby","email":"kerby@goodmoney.com","username":"kerbyferris"},"change_message_id":"b7f1b9dd13a14899e27bb7549b2fab8524a42f46","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                msg \u003d \"image-id and image-filters cannot by used together\""},{"line_number":120,"context_line":"                raise Exception(msg)"},{"line_number":121,"context_line":"            else:"},{"line_number":122,"context_line":"                image_id_by_filters \u003d self.getLatestImageIdByFilters("},{"line_number":123,"context_line":"                    image_filters"},{"line_number":124,"context_line":"                )"},{"line_number":125,"context_line":"                return self.ec2.Image(image_id_by_filters)"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"        return self.ec2.Image(image_id)"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3fa7e38b_135228df","line":125,"range":{"start_line":122,"start_character":0,"end_line":125,"end_character":58},"in_reply_to":"3fa7e38b_440bff22","updated":"2019-09-26 00:26:41.000000000","message":":+1:","commit_id":"f406e0cbbd2997671c82ca5c25a035dad993cf21"}]}
