From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mx.groups.io with SMTP id smtpd.web12.2587.1588967113412285201 for ; Fri, 08 May 2020 12:45:13 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: ashley.e.desimone@intel.com) IronPort-SDR: fqU2VHFO+q4hyk8zUY+Zh6SBYLKyyvbnRel9hOKzn6DJO8GFNkXBmBQ8dDdvLhLWNn3/Ir8yyf aoxVws/1fT/g== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 May 2020 12:45:12 -0700 IronPort-SDR: sVaaUv+9jJtQ1BN6msOnGJtHQprAHZ0ZSDHzhF1YN1sEtJamkDo/ZKhVYTsilkFrxKsR4aekjU GfaMcEv6U90A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,368,1583222400"; d="scan'208";a="296243825" Received: from aedesimo-desk.amr.corp.intel.com ([10.212.16.147]) by fmsmga002.fm.intel.com with ESMTP; 08 May 2020 12:45:11 -0700 From: "Ashley E Desimone" To: devel@edk2.groups.io Cc: Nate DeSimone , Puja Pandya , Erik Bjorge , Bret Barkelew , Prince Agyeman Subject: [edk2-staging/EdkRepo] [PATCH] EdkRepo: Address corner cases in find_project_in_all_indices Date: Fri, 8 May 2020 12:45:09 -0700 Message-Id: <20200508194509.10620-1-ashley.e.desimone@intel.com> X-Mailer: git-send-email 2.16.2.windows.1 Update find_project_in_all_indices() to only return None values for the source manifest repo and config file if the project is truly not found in any manifest repository. In the case a path to a manifest file is provided recursively call find_in_all_indices() with the code name from the manifest at the provided path to generate the source manifest repo and config values. Additionally update the call to find_project_in_all_indices() in find_source_manifest_repo to use the value of man_repo instead of None. Signed-off-by: Ashley E Desimone Cc: Nate DeSimone Cc: Puja Pandya Cc: Erik Bjorge Cc: Bret Barkelew Cc: Prince Agyeman --- .../manifest_repos_maintenance.py | 26 +++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py b/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py index 2a5a70f..08c4fe6 100644 --- a/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py +++ b/edkrepo/common/workspace_maintenance/manifest_repos_maintenance.py @@ -185,9 +185,29 @@ def find_project_in_all_indices (project, edkrepo_cfg, edkrepo_user_cfg, except_ except KeyError: raise EdkrepoInvalidParametersException(except_msg_man_repo) elif os.path.isabs(project): - return None, None, project + manifest = ManifestXml(project) + try: + found_manifest_repo, found_cfg, found_project = find_project_in_all_indices(manifest.project_info.codename, + edkrepo_cfg, + edkrepo_user_cfg, + except_msg_man_repo, + except_msg_not_found, + man_repo) + return found_manifest_repo, found_cfg, project + except EdkrepoManifestNotFoundException: + return None, None, project elif os.path.isfile(os.path.join(os.getcwd(), project)): - return None, None, os.path.join(os.getcwd(), project) + manifest = os.path.join(os.getcwd(), project) + try: + found_manifest_repo, found_cfg, found_project = find_project_in_all_indices(manifest.project_info.codename, + edkrepo_cfg, + edkrepo_user_cfg, + except_msg_man_repo, + except_msg_not_found, + man_repo) + return found_manifest_repo, found_cfg, project + except EdkrepoManifestNotFoundException: + return None, None, os.path.join(os.getcwd(), project) elif not os.path.dirname(project): for repo in cfg_man_repos: if (man_repo and (repo == man_repo)) or not man_repo: @@ -215,7 +235,7 @@ def find_source_manifest_repo(project_manifest, edkrepo_cfg, edkrepo_user_cfg, m edkrepo_user_cfg, humble.PROJ_NOT_IN_REPO.format(project_manifest.project_info.codename), humble.SOURCE_MANIFEST_REPO_NOT_FOUND.format(project_manifest.project_info.codename), - man_repo=None) + man_repo) project_manifest.write_source_manifest_repo(src_man_repo) return src_man_repo -- 2.16.2.windows.1