)]}'
{"sysinv/sysinv/sysinv/sysinv/cmd/helm.py":[{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"a03e598ff06718f23880da02aa603e94c0c58098","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#!/usr/bin/env python"},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"# Copyright (c) 2021 Wind River Systems, Inc."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":1,"id":"83b818f0_d73963cf","line":1,"range":{"start_line":1,"start_character":1,"end_line":1,"end_character":21},"updated":"2021-02-05 18:04:46.000000000","message":"The script seems to be unused.","commit_id":"7c1991949d395fa5556b9a10e66217e7cbfaae4d"}],"sysinv/sysinv/sysinv/sysinv/conductor/kube_app.py":[{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"d31a71ba77e2fe7cc1bdfd29e7c97313e0f9d3fa","unresolved":true,"context_lines":[{"line_number":330,"context_line":"                else:"},{"line_number":331,"context_line":"                    op \u003d \u0027application-update\u0027"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"                if app.name in self._apps_metadata[constants.APP_METADATA_PLATFORM_MANAGED_APPS].keys():"},{"line_number":334,"context_line":"                    # For platform core apps, set the new status"},{"line_number":335,"context_line":"                    # to \u0027uploaded\u0027. The audit task will kick in with"},{"line_number":336,"context_line":"                    # all its pre-requisite checks before reapplying."}],"source_content_type":"text/x-python","patch_set":9,"id":"5c39e11b_6174ddd9","line":333,"updated":"2021-03-09 14:12:38.000000000","message":"nit: line could be split for readability (similar comment a few lines below)","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"d64c73a256650ef57ce205271b5124426946bf70","unresolved":false,"context_lines":[{"line_number":330,"context_line":"                else:"},{"line_number":331,"context_line":"                    op \u003d \u0027application-update\u0027"},{"line_number":332,"context_line":""},{"line_number":333,"context_line":"                if app.name in self._apps_metadata[constants.APP_METADATA_PLATFORM_MANAGED_APPS].keys():"},{"line_number":334,"context_line":"                    # For platform core apps, set the new status"},{"line_number":335,"context_line":"                    # to \u0027uploaded\u0027. The audit task will kick in with"},{"line_number":336,"context_line":"                    # all its pre-requisite checks before reapplying."}],"source_content_type":"text/x-python","patch_set":9,"id":"b08f3ebf_4865c8ad","line":333,"in_reply_to":"5c39e11b_6174ddd9","updated":"2021-03-09 16:50:31.000000000","message":"Done","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"84a361c5f67ca95d3efa4b0883fb8319c2e077ae","unresolved":true,"context_lines":[{"line_number":1910,"context_line":"        if is_managed is not None:"},{"line_number":1911,"context_line":"            is_managed \u003d is_managed.get(constants.APP_METADATA_PLATFORM_MANAGED_APP, None)"},{"line_number":1912,"context_line":"        if cutils.is_valid_boolstr(is_managed):"},{"line_number":1913,"context_line":"            apps_metadata_dict[constants.APP_METADATA_PLATFORM_MANAGED_APPS][app_name] \u003d None"},{"line_number":1914,"context_line":"            LOG.info(\"App {} requested to be platform managed\".format(app_name))"},{"line_number":1915,"context_line":""},{"line_number":1916,"context_line":"        # Remember the desired state the app should achieve"}],"source_content_type":"text/x-python","patch_set":9,"id":"de2156ee_a5491a50","line":1913,"updated":"2021-03-09 12:36:41.000000000","message":"Why does this get set to None instead of the boolean value?","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"e598cf7c02d2470e9a1e34073d4937f2fca2ff9e","unresolved":false,"context_lines":[{"line_number":1910,"context_line":"        if is_managed is not None:"},{"line_number":1911,"context_line":"            is_managed \u003d is_managed.get(constants.APP_METADATA_PLATFORM_MANAGED_APP, None)"},{"line_number":1912,"context_line":"        if cutils.is_valid_boolstr(is_managed):"},{"line_number":1913,"context_line":"            apps_metadata_dict[constants.APP_METADATA_PLATFORM_MANAGED_APPS][app_name] \u003d None"},{"line_number":1914,"context_line":"            LOG.info(\"App {} requested to be platform managed\".format(app_name))"},{"line_number":1915,"context_line":""},{"line_number":1916,"context_line":"        # Remember the desired state the app should achieve"}],"source_content_type":"text/x-python","patch_set":9,"id":"03681cac_264baf6b","line":1913,"in_reply_to":"de2156ee_a5491a50","updated":"2021-03-09 14:00:03.000000000","message":"Only the presence of a key in apps_metadata_dict[constants.APP_METADATA_PLATFORM_MANAGED_APPS] is meaningful, the value stored doesn\u0027t.","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":15435,"name":"Al Bailey","email":"albailey1974@gmail.com","username":"albailey"},"change_message_id":"84a361c5f67ca95d3efa4b0883fb8319c2e077ae","unresolved":true,"context_lines":[{"line_number":1914,"context_line":"            LOG.info(\"App {} requested to be platform managed\".format(app_name))"},{"line_number":1915,"context_line":""},{"line_number":1916,"context_line":"        # Remember the desired state the app should achieve"},{"line_number":1917,"context_line":"        desired_state \u003d metadata.get(constants.APP_METADATA_BEHAVIOR, None)"},{"line_number":1918,"context_line":"        if desired_state is not None:"},{"line_number":1919,"context_line":"            desired_state \u003d desired_state.get(constants.APP_METADATA_DESIRED_STATE, None)"},{"line_number":1920,"context_line":"        if desired_state is not None:"}],"source_content_type":"text/x-python","patch_set":9,"id":"05a9a227_995078e8","line":1917,"updated":"2021-03-09 12:36:41.000000000","message":"nit: you could have nested with line 1909 since both are getting and validating the same dictionary","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"d64c73a256650ef57ce205271b5124426946bf70","unresolved":false,"context_lines":[{"line_number":1914,"context_line":"            LOG.info(\"App {} requested to be platform managed\".format(app_name))"},{"line_number":1915,"context_line":""},{"line_number":1916,"context_line":"        # Remember the desired state the app should achieve"},{"line_number":1917,"context_line":"        desired_state \u003d metadata.get(constants.APP_METADATA_BEHAVIOR, None)"},{"line_number":1918,"context_line":"        if desired_state is not None:"},{"line_number":1919,"context_line":"            desired_state \u003d desired_state.get(constants.APP_METADATA_DESIRED_STATE, None)"},{"line_number":1920,"context_line":"        if desired_state is not None:"}],"source_content_type":"text/x-python","patch_set":9,"id":"484249ad_02165700","line":1917,"in_reply_to":"05a9a227_995078e8","updated":"2021-03-09 16:50:31.000000000","message":"Done","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"}],"sysinv/sysinv/sysinv/sysinv/conductor/manager.py":[{"author":{"_account_id":28459,"name":"Bob Church","email":"robert.church@windriver.com","username":"rchurch"},"change_message_id":"e45cea3731206aed78ce15cb908d11c18cf47540","unresolved":true,"context_lines":[{"line_number":184,"context_line":""},{"line_number":185,"context_line":"    RPC_API_VERSION \u003d \u00271.1\u0027"},{"line_number":186,"context_line":"    my_host_id \u003d None"},{"line_number":187,"context_line":"    apps_metadata \u003d {constants.APP_METADATA_APPS: {},"},{"line_number":188,"context_line":"                     constants.APP_METADATA_PLATFORM_MANAGED_APPS: {},"},{"line_number":189,"context_line":"                     constants.APP_METADATA_DESIRED_STATES: {}}"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"4da3de6d_b3b8034c","line":187,"range":{"start_line":187,"start_character":4,"end_line":187,"end_character":17},"updated":"2021-02-22 01:18:15.000000000","message":"Can this initialization now be moved to the __init__ method?","commit_id":"da58005e014558b5428567eae2363e33a3871b4c"},{"author":{"_account_id":28459,"name":"Bob Church","email":"robert.church@windriver.com","username":"rchurch"},"change_message_id":"e45cea3731206aed78ce15cb908d11c18cf47540","unresolved":true,"context_lines":[{"line_number":5575,"context_line":"        app.save()"},{"line_number":5576,"context_line":"        self._auto_apply_managed_app(context, app_name)"},{"line_number":5577,"context_line":""},{"line_number":5578,"context_line":"    def _load_metadata_of_system_apps(self):"},{"line_number":5579,"context_line":"        \"\"\" Load metadata of apps from the directory containing"},{"line_number":5580,"context_line":"        apps bundled with the iso."},{"line_number":5581,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"a64a693d_f7746dc0","line":5578,"updated":"2021-02-22 01:18:15.000000000","message":"We should consider saving the metadata (or a subset of it) directly in the kube_app table and populate it when the app is uploaded. We can then avoid having to extract it from tarballs on every conductor restart and build a cache. The data should always be available from the DB once the conductor is started.","commit_id":"da58005e014558b5428567eae2363e33a3871b4c"},{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"2629a1504783031ab4dd4c76e078ab62c2b330d1","unresolved":true,"context_lines":[{"line_number":5575,"context_line":"        app.save()"},{"line_number":5576,"context_line":"        self._auto_apply_managed_app(context, app_name)"},{"line_number":5577,"context_line":""},{"line_number":5578,"context_line":"    def _load_metadata_of_system_apps(self):"},{"line_number":5579,"context_line":"        \"\"\" Load metadata of apps from the directory containing"},{"line_number":5580,"context_line":"        apps bundled with the iso."},{"line_number":5581,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"37c5aa0b_facc2ceb","line":5578,"in_reply_to":"a64a693d_f7746dc0","updated":"2021-03-02 12:00:44.000000000","message":"This can be done at line 286, so on conductor restart the metadata is read from the database.\nHere we still need to extract the tarball to get the app name(line 5598).\n\nDo we have a guarantee that the app tarball is named \u003capp_name\u003e-\u003cversion\u003e.tgz, where app_name is the same as app_name in metadata.yaml file? If there is a guarantee then the app_name can be parsed without the tarball being extracted. I think the build system uses this naming scheme.","commit_id":"da58005e014558b5428567eae2363e33a3871b4c"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"d31a71ba77e2fe7cc1bdfd29e7c97313e0f9d3fa","unresolved":true,"context_lines":[{"line_number":5645,"context_line":"            # If the app has the metadata loaded already, by conductor restart,"},{"line_number":5646,"context_line":"            # then skip the tarball extraction"},{"line_number":5647,"context_line":"            app_name \u003d None"},{"line_number":5648,"context_line":"            pattern \u003d re.compile(\"([\\w-]+)-([\\w.-]+)\")"},{"line_number":5649,"context_line":""},{"line_number":5650,"context_line":"            match \u003d pattern.search(tarfile)"},{"line_number":5651,"context_line":"            if match:"}],"source_content_type":"text/x-python","patch_set":9,"id":"bab3b754_2e13f38d","line":5648,"updated":"2021-03-09 14:12:38.000000000","message":"Check for consistency in the pattern checks for app_name and version vs controllerconfig/upgrade-scripts/65-k8s-app-upgrade.sh","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"d64c73a256650ef57ce205271b5124426946bf70","unresolved":false,"context_lines":[{"line_number":5645,"context_line":"            # If the app has the metadata loaded already, by conductor restart,"},{"line_number":5646,"context_line":"            # then skip the tarball extraction"},{"line_number":5647,"context_line":"            app_name \u003d None"},{"line_number":5648,"context_line":"            pattern \u003d re.compile(\"([\\w-]+)-([\\w.-]+)\")"},{"line_number":5649,"context_line":""},{"line_number":5650,"context_line":"            match \u003d pattern.search(tarfile)"},{"line_number":5651,"context_line":"            if match:"}],"source_content_type":"text/x-python","patch_set":9,"id":"1ead075a_ae7bedea","line":5648,"in_reply_to":"bab3b754_2e13f38d","updated":"2021-03-09 16:50:31.000000000","message":"Done","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"d31a71ba77e2fe7cc1bdfd29e7c97313e0f9d3fa","unresolved":true,"context_lines":[{"line_number":5824,"context_line":""},{"line_number":5825,"context_line":"        # Load metadata of apps from predefined directory to allow platform"},{"line_number":5826,"context_line":"        # managed apps list to be populated"},{"line_number":5827,"context_line":"        # Run only once per conductor start"},{"line_number":5828,"context_line":"        if not self._has_loaded_missing_apps_metadata:"},{"line_number":5829,"context_line":"            self._load_metadata_of_missing_apps()"},{"line_number":5830,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"4597a8b6_b8563619","line":5827,"updated":"2021-03-09 14:12:38.000000000","message":"will this need to be run on application-update ?","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"d64c73a256650ef57ce205271b5124426946bf70","unresolved":false,"context_lines":[{"line_number":5824,"context_line":""},{"line_number":5825,"context_line":"        # Load metadata of apps from predefined directory to allow platform"},{"line_number":5826,"context_line":"        # managed apps list to be populated"},{"line_number":5827,"context_line":"        # Run only once per conductor start"},{"line_number":5828,"context_line":"        if not self._has_loaded_missing_apps_metadata:"},{"line_number":5829,"context_line":"            self._load_metadata_of_missing_apps()"},{"line_number":5830,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"452f7be1_ea8962f3","line":5827,"in_reply_to":"4597a8b6_b8563619","updated":"2021-03-09 16:50:31.000000000","message":"No, application-update does an application upload of the newer version, then the metadata is loaded using load_application_metadata_from_file.\n\nNote:\nThere is only one metadata dictionary per app, not per app version.\nThere is another story for enhancing app updates.","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"cce7d816ce2c74502b2c5fe474079e9c5c1e0799","unresolved":true,"context_lines":[{"line_number":5841,"context_line":"                app_statuses[app_name] \u003d constants.APP_NOT_PRESENT"},{"line_number":5842,"context_line":""},{"line_number":5843,"context_line":"            if app_statuses[app_name] \u003d\u003d constants.APP_NOT_PRESENT:"},{"line_number":5844,"context_line":"                if app_name in self.apps_metadata[constants.APP_METADATA_DESIRED_STATES].keys() and \\"},{"line_number":5845,"context_line":"                        self.apps_metadata[constants.APP_METADATA_DESIRED_STATES]["},{"line_number":5846,"context_line":"                            app_name] in [constants.APP_UPLOAD_SUCCESS, constants.APP_APPLY_SUCCESS]:"},{"line_number":5847,"context_line":"                    self._auto_upload_managed_app(context, app_name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"719d7edc_6c9ea390","line":5844,"range":{"start_line":5844,"start_character":50,"end_line":5844,"end_character":87},"updated":"2021-03-10 14:07:24.000000000","message":"Regarding platform upgrades; will this metadata be part of N+1 side applications on an upgrade?","commit_id":"4face8a656ac63d110a2c1d8ce4efd98af771c47"},{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"82c6bc7c9ff5fb060200c5fbc648c6510fe56b2a","unresolved":false,"context_lines":[{"line_number":5841,"context_line":"                app_statuses[app_name] \u003d constants.APP_NOT_PRESENT"},{"line_number":5842,"context_line":""},{"line_number":5843,"context_line":"            if app_statuses[app_name] \u003d\u003d constants.APP_NOT_PRESENT:"},{"line_number":5844,"context_line":"                if app_name in self.apps_metadata[constants.APP_METADATA_DESIRED_STATES].keys() and \\"},{"line_number":5845,"context_line":"                        self.apps_metadata[constants.APP_METADATA_DESIRED_STATES]["},{"line_number":5846,"context_line":"                            app_name] in [constants.APP_UPLOAD_SUCCESS, constants.APP_APPLY_SUCCESS]:"},{"line_number":5847,"context_line":"                    self._auto_upload_managed_app(context, app_name)"}],"source_content_type":"text/x-python","patch_set":10,"id":"eb4b5969_db9a2253","line":5844,"range":{"start_line":5844,"start_character":50,"end_line":5844,"end_character":87},"in_reply_to":"719d7edc_6c9ea390","updated":"2021-03-10 14:55:24.000000000","message":"This becomes the metadata of (N+1)th version only after controllerconfig/upgrade-scripts/65-k8s-app-upgrade.sh is run. Until then it is the metadata of the Nth version.","commit_id":"4face8a656ac63d110a2c1d8ce4efd98af771c47"}],"sysinv/sysinv/sysinv/sysinv/db/sqlalchemy/migrate_repo/versions/113_kube_app_metadata.py":[{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"d31a71ba77e2fe7cc1bdfd29e7c97313e0f9d3fa","unresolved":true,"context_lines":[{"line_number":18,"context_line":"    meta \u003d MetaData()"},{"line_number":19,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    # add mode to kube_app table"},{"line_number":22,"context_line":"    kube_app \u003d Table("},{"line_number":23,"context_line":"        \u0027kube_app\u0027,"},{"line_number":24,"context_line":"        meta,"}],"source_content_type":"text/x-python","patch_set":9,"id":"91cde3ca_fcd50e73","line":21,"range":{"start_line":21,"start_character":10,"end_line":21,"end_character":15},"updated":"2021-03-09 14:12:38.000000000","message":"app_metadata","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":30852,"name":"Dan Voiculeasa","email":"Dan.Voiculeasa@windriver.com","username":"dvoicule"},"change_message_id":"d64c73a256650ef57ce205271b5124426946bf70","unresolved":false,"context_lines":[{"line_number":18,"context_line":"    meta \u003d MetaData()"},{"line_number":19,"context_line":"    meta.bind \u003d migrate_engine"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    # add mode to kube_app table"},{"line_number":22,"context_line":"    kube_app \u003d Table("},{"line_number":23,"context_line":"        \u0027kube_app\u0027,"},{"line_number":24,"context_line":"        meta,"}],"source_content_type":"text/x-python","patch_set":9,"id":"2ef099c0_9057558b","line":21,"range":{"start_line":21,"start_character":10,"end_line":21,"end_character":15},"in_reply_to":"91cde3ca_fcd50e73","updated":"2021-03-09 16:50:31.000000000","message":"Done","commit_id":"e747e43ba163ffe35c206de1e8c06d7739a387cd"},{"author":{"_account_id":9926,"name":"John Kung","email":"john.kung@windriver.com","username":"jkung"},"change_message_id":"20f093f367a742fad25b39200636038d207a6bb1","unresolved":true,"context_lines":[{"line_number":1,"context_line":"#"},{"line_number":2,"context_line":"# Copyright (c) 2021 Wind River Systems, Inc."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# SPDX-License-Identifier: Apache-2.0"}],"source_content_type":"text/x-python","patch_set":10,"id":"cffe754a_5adc02a0","line":1,"updated":"2021-03-10 13:35:59.000000000","message":"Please rebase and increment this filename as https://review.opendev.org/c/starlingx/config/+/774292 already has the required reviews and is ready to merge.","commit_id":"4face8a656ac63d110a2c1d8ce4efd98af771c47"}]}
