)]}'
{"cloudbaseinit/conf/nocloud.py":[{"author":{"_account_id":9649,"name":"Adrian Vladu","email":"avladu@cloudbasesolutions.com","username":"avladu"},"change_message_id":"644d623b7fda3b4edcec37bdf57d113f63829587","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, config):"},{"line_number":28,"context_line":"        super(NoCloudConfigOptions, self).__init__(config, group\u003d\"nocloud\")"},{"line_number":29,"context_line":"        self._options \u003d ["},{"line_number":30,"context_line":"            cfg.BoolOpt("},{"line_number":31,"context_line":"                \"raw_hdd\", default\u003dTrue,"},{"line_number":32,"context_line":"                help\u003d\"Look for an ISO config drive in raw HDDs\"),"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_c566b8bb","line":29,"updated":"2017-06-28 14:22:00.000000000","message":"can you inherit the config drive so that you don t need to rewrite all the options?","commit_id":"8ccef1751ab4f9b43975f2e29b11da4c41892a31"}],"cloudbaseinit/metadata/services/base.py":[{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"1e21d5cbd02d72127208b38c8a0b46aa6a81712f","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            try:"},{"line_number":280,"context_line":"                return yaml.load(raw_data, Loader\u003dloader)"},{"line_number":281,"context_line":"            except (TypeError, ValueError, AttributeError):"},{"line_number":282,"context_line":"                raise YamlParserConfigError(\"Invalid yaml data provided.\")"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"class BaseHTTPMetadataService(BaseMetadataService):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3fa7e38b_a76144a5","line":282,"updated":"2020-02-17 14:19:29.000000000","message":"This error message might be a bit confusing to someone that\u0027s expecting a json.\n\nHow about: \"Invalid yaml or json data provided.\" Also, \"Yaml\" might be dropped from the exception name.","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"},{"author":{"_account_id":9649,"name":"Adrian Vladu","email":"avladu@cloudbasesolutions.com","username":"avladu"},"change_message_id":"a097893f8ccdef67d117559b3b02a1decfd17105","unresolved":false,"context_lines":[{"line_number":279,"context_line":"            try:"},{"line_number":280,"context_line":"                return yaml.load(raw_data, Loader\u003dloader)"},{"line_number":281,"context_line":"            except (TypeError, ValueError, AttributeError):"},{"line_number":282,"context_line":"                raise YamlParserConfigError(\"Invalid yaml data provided.\")"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"class BaseHTTPMetadataService(BaseMetadataService):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3fa7e38b_585aad5d","line":282,"in_reply_to":"3fa7e38b_a76144a5","updated":"2020-02-17 15:19:59.000000000","message":"will do it in a separate patch","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"}],"cloudbaseinit/metadata/services/configdrive.py":[{"author":{"_account_id":9649,"name":"Adrian Vladu","email":"avladu@cloudbasesolutions.com","username":"avladu"},"change_message_id":"644d623b7fda3b4edcec37bdf57d113f63829587","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self._searched_types \u003d set(CONF.config_drive.types)"},{"line_number":30,"context_line":"        self._searched_locations \u003d set(CONF.config_drive.locations)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"        # Deprecation backward compatibility."},{"line_number":33,"context_line":"        if CONF.config_drive.raw_hdd:"},{"line_number":34,"context_line":"            self._searched_types.add(\"iso\")"},{"line_number":35,"context_line":"            self._searched_locations.add(\"hdd\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_05f6f0d7","line":32,"updated":"2017-06-28 14:22:00.000000000","message":"can you put in the base class those backward compat lines?","commit_id":"8ccef1751ab4f9b43975f2e29b11da4c41892a31"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"1e21d5cbd02d72127208b38c8a0b46aa6a81712f","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self._searched_types \u003d None"},{"line_number":42,"context_line":"        self._searched_locations \u003d None"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    def _get_config_options(self):"},{"line_number":45,"context_line":"        return CONF.config_drive"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def _preprocess_options(self):"},{"line_number":48,"context_line":"        config_options \u003d self._get_config_options()"}],"source_content_type":"text/x-python","patch_set":27,"id":"3fa7e38b_6786ec18","line":45,"range":{"start_line":44,"start_character":4,"end_line":45,"end_character":32},"updated":"2020-02-17 14:19:29.000000000","message":"Probably not a bad idea, although we\u0027re not overriding this method atm.","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"1e21d5cbd02d72127208b38c8a0b46aa6a81712f","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def __init__(self):"},{"line_number":105,"context_line":"        super(ConfigDriveService, self).__init__("},{"line_number":106,"context_line":"            config_type\u003dbasecd.CONFIG_DRIVE)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class NoCloudConfigDriveService(BaseConfigDriveService):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3fa7e38b_c799e06c","line":106,"updated":"2020-02-17 14:19:29.000000000","message":"Nit: a class attribute for the config type might be more appropriate.\n\nclass ConfigDriveService(BaseConfigDriveService,\n                         baseopenstackservice.BaseOpenStackService):\n    config_type \u003d basecd.CONFIG_DRIVE","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"},{"author":{"_account_id":9649,"name":"Adrian Vladu","email":"avladu@cloudbasesolutions.com","username":"avladu"},"change_message_id":"a097893f8ccdef67d117559b3b02a1decfd17105","unresolved":false,"context_lines":[{"line_number":103,"context_line":""},{"line_number":104,"context_line":"    def __init__(self):"},{"line_number":105,"context_line":"        super(ConfigDriveService, self).__init__("},{"line_number":106,"context_line":"            config_type\u003dbasecd.CONFIG_DRIVE)"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class NoCloudConfigDriveService(BaseConfigDriveService):"}],"source_content_type":"text/x-python","patch_set":27,"id":"3fa7e38b_b87401cf","line":106,"in_reply_to":"3fa7e38b_c799e06c","updated":"2020-02-17 15:19:59.000000000","message":"Done","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"},{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"1e21d5cbd02d72127208b38c8a0b46aa6a81712f","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        if not raw_ssh_keys:"},{"line_number":140,"context_line":"            return []"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        return [raw_ssh_keys[key].get(\u0027openssh-key\u0027) for key in raw_ssh_keys]"}],"source_content_type":"text/x-python","patch_set":27,"id":"3fa7e38b_ed34fdd9","line":142,"updated":"2020-02-17 14:19:29.000000000","message":"May be worth doing something like:\n\nkeys \u003d [raw_ssh_keys[key].get(\u0027openssh-key\u0027) for key in raw_ssh_keys]\nkeys \u003d [key for key in keys if key]\nreturn keys\n\nThis way, if there are other types of keys, we don\u0027t end up adding \"None\" to our list, which might not be handled properly.","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"},{"author":{"_account_id":9649,"name":"Adrian Vladu","email":"avladu@cloudbasesolutions.com","username":"avladu"},"change_message_id":"a097893f8ccdef67d117559b3b02a1decfd17105","unresolved":false,"context_lines":[{"line_number":139,"context_line":"        if not raw_ssh_keys:"},{"line_number":140,"context_line":"            return []"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        return [raw_ssh_keys[key].get(\u0027openssh-key\u0027) for key in raw_ssh_keys]"}],"source_content_type":"text/x-python","patch_set":27,"id":"3fa7e38b_9877c5d3","line":142,"in_reply_to":"3fa7e38b_ed34fdd9","updated":"2020-02-17 15:19:59.000000000","message":"the keys should not be empty. If None is added to the list, the plugin should handle the matter.","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"}],"cloudbaseinit/metadata/services/nocloud.py":[{"author":{"_account_id":9649,"name":"Adrian Vladu","email":"avladu@cloudbasesolutions.com","username":"avladu"},"change_message_id":"644d623b7fda3b4edcec37bdf57d113f63829587","unresolved":false,"context_lines":[{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class NoCloudConfigDriveService(driveservice.DriveService,"},{"line_number":29,"context_line":"                                ec2service.EC2Service):"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def __init__(self):"},{"line_number":32,"context_line":"        super(NoCloudConfigDriveService, self).__init__("}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_65824402","line":29,"updated":"2017-06-28 14:22:00.000000000","message":"nocloudconfigdrive and ec2 should have the same base, and not inherit one another. the yaml keys/subkeys from nocloud are the same as the endpoints/subendpoints from ec2 metadata.\n\nfor the moment, there is no point in inheriting the ec2 metadata service, as all the service methods will return null vals.","commit_id":"8ccef1751ab4f9b43975f2e29b11da4c41892a31"},{"author":{"_account_id":9649,"name":"Adrian Vladu","email":"avladu@cloudbasesolutions.com","username":"avladu"},"change_message_id":"644d623b7fda3b4edcec37bdf57d113f63829587","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self._searched_types \u003d set(CONF.nocloud.types)"},{"line_number":46,"context_line":"        self._searched_locations \u003d set(CONF.nocloud.locations)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"        # Deprecation backward compatibility."},{"line_number":49,"context_line":"        if CONF.nocloud.raw_hdd:"},{"line_number":50,"context_line":"            self._searched_types.add(\"iso\")"},{"line_number":51,"context_line":"            self._searched_locations.add(\"hdd\")"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_45298834","line":48,"updated":"2017-06-28 14:22:00.000000000","message":"same","commit_id":"8ccef1751ab4f9b43975f2e29b11da4c41892a31"}],"cloudbaseinit/metadata/services/osconfigdrive/windows.py":[{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"1e21d5cbd02d72127208b38c8a0b46aa6a81712f","unresolved":false,"context_lines":[{"line_number":217,"context_line":"    def get_config_drive_files(self, searched_types\u003dNone,"},{"line_number":218,"context_line":"                               searched_locations\u003dNone,"},{"line_number":219,"context_line":"                               config_type\u003dbase.CONFIG_DRIVE):"},{"line_number":220,"context_line":"        self._config_type \u003d config_type"},{"line_number":221,"context_line":"        searched_types \u003d searched_types or []"},{"line_number":222,"context_line":"        searched_locations \u003d searched_locations or []"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3fa7e38b_0d5159d6","line":220,"range":{"start_line":220,"start_character":8,"end_line":220,"end_character":39},"updated":"2020-02-17 14:19:29.000000000","message":"Ideally, this attribute shouldn\u0027t be set by a getter.","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"},{"author":{"_account_id":9649,"name":"Adrian Vladu","email":"avladu@cloudbasesolutions.com","username":"avladu"},"change_message_id":"a097893f8ccdef67d117559b3b02a1decfd17105","unresolved":false,"context_lines":[{"line_number":217,"context_line":"    def get_config_drive_files(self, searched_types\u003dNone,"},{"line_number":218,"context_line":"                               searched_locations\u003dNone,"},{"line_number":219,"context_line":"                               config_type\u003dbase.CONFIG_DRIVE):"},{"line_number":220,"context_line":"        self._config_type \u003d config_type"},{"line_number":221,"context_line":"        searched_types \u003d searched_types or []"},{"line_number":222,"context_line":"        searched_locations \u003d searched_locations or []"},{"line_number":223,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"3fa7e38b_78ba0971","line":220,"range":{"start_line":220,"start_character":8,"end_line":220,"end_character":39},"in_reply_to":"3fa7e38b_0d5159d6","updated":"2020-02-17 15:19:59.000000000","message":"Done","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"}],"cloudbaseinit/metadata/services/vmwareguestinfoservice.py":[{"author":{"_account_id":3185,"name":"Alessandro Pilotti","email":"apilotti@cloudbasesolutions.com","username":"alexpilotti"},"change_message_id":"2f6904133554dd22881fdae1153e77a621147238","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        self._meta_data \u003d {}"},{"line_number":45,"context_line":"        self._user_data \u003d None"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    @staticmethod"},{"line_number":48,"context_line":"    def _parse_data(raw_data):"},{"line_number":49,"context_line":"        \"\"\"Parse data as json. Fallback to yaml if json parsing fails\"\"\""},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":37,"id":"df33271e_10e53239","side":"PARENT","line":47,"updated":"2020-04-03 15:20:52.000000000","message":"parse_data should got to the utils","commit_id":"90e6b3383421263b271efda9b05fc34d6ac74a24"}],"doc/source/services.rst":[{"author":{"_account_id":8543,"name":"Lucian Petrut","email":"lpetrut@cloudbasesolutions.com","username":"plucian"},"change_message_id":"1e21d5cbd02d72127208b38c8a0b46aa6a81712f","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    * types (list: [\"vfat\", \"iso\"])"},{"line_number":149,"context_line":"    * locations (list: [\"cdrom\", \"hdd\", \"partition\"])"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"More information on the NoCloud metadata service specifications can be found "},{"line_number":152,"context_line":"`here \u003chttps://cloudinit.readthedocs.io/en/latest/topics/datasources/nocloud.html\u003e`_."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"Amazon EC2"}],"source_content_type":"text/x-rst","patch_set":27,"id":"3fa7e38b_ed32bd5b","line":151,"range":{"start_line":151,"start_character":76,"end_line":151,"end_character":77},"updated":"2020-02-17 14:19:29.000000000","message":"Nit: trailing white-space. Some linters might complain.","commit_id":"26b441eaeb826d18ef326411e6376e5cec075270"}]}
