* [edk2-staging/EdkRepo] [PATCH v2 1/6] EdkRepo: Support Updated CFG Format Defining Multiple Manifest Repos
2020-04-17 17:18 [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Ashley E Desimone
@ 2020-04-17 17:18 ` Ashley E Desimone
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 2/6] EdkRepo: Add new sections to edkrepo.cfg Ashley E Desimone
` (6 subsequent siblings)
7 siblings, 0 replies; 14+ messages in thread
From: Ashley E Desimone @ 2020-04-17 17:18 UTC (permalink / raw)
To: devel
Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
Prince Agyeman
Add support for the following cfg format to the
BaseConfig class enabling it to be consumed by
both the Global and User configuration file
classes. CfgProps for each listed manifest repository
will be dynamically added to the classes prop_list.
Configuration Example:
[Manifest_A]
...
[Manifest_B]
...
[manifest-repos]
Manifest_A
Manifest_B
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo/config/config_factory.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index c342838..6c14f1b 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -85,6 +85,12 @@ class BaseConfig():
if os.path.isfile(self.filename):
self.cfg.read(self.filename)
+ if self.cfg.has_section('manifest-repos'):
+ for option in self.cfg.options('manifest-repos'):
+ self.prop_list.append(CfgProp('{}'.format(option), 'URL', '{}-manifest_repo_url.'.format(option), None, False))
+ self.prop_list.append(CfgProp('{}'.format(option), 'Branch', '{}-manifest_repo_branch'.format(option), None, False))
+ self.prop_list.append(CfgProp('{}'.format(option), 'LocalPath', '{}-manifest_repo_local_path.'.format(option), None, False))
+
# Create properties defined by the prop_list
cfg_updated = False
for prop in self.prop_list:
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [edk2-staging/EdkRepo] [PATCH v2 2/6] EdkRepo: Add new sections to edkrepo.cfg
2020-04-17 17:18 [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Ashley E Desimone
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 1/6] EdkRepo: Support Updated CFG Format Defining Multiple Manifest Repos Ashley E Desimone
@ 2020-04-17 17:18 ` Ashley E Desimone
2020-04-17 20:27 ` Bjorge, Erik C
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 3/6] EdkRepo: Add the manifest_repo_list property to BaseConfig Ashley E Desimone
` (5 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Ashley E Desimone @ 2020-04-17 17:18 UTC (permalink / raw)
To: devel
Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
Prince Agyeman
Add manifest-repos and edk2-staging sections
to the edkrepo.cfg to enable support of multiple
manifest repositories.
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo_installer/Vendor/edkrepo.cfg | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/edkrepo_installer/Vendor/edkrepo.cfg b/edkrepo_installer/Vendor/edkrepo.cfg
index 7dcaf20..97ebdd2 100644
--- a/edkrepo_installer/Vendor/edkrepo.cfg
+++ b/edkrepo_installer/Vendor/edkrepo.cfg
@@ -1,3 +1,11 @@
+[manifest-repos]
+edk2-staging =
+
+[edk2-staging]
+URL = https://github.com/tianocore/edk2-staging.git
+Branch = EdkRepo-Manifest
+LocalPath = edk2-staging-manifest-master
+
[manifest-repo]
URL = https://github.com/tianocore/edk2-staging.git
Branch = EdkRepo-Manifest
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [edk2-staging/EdkRepo] [PATCH v2 2/6] EdkRepo: Add new sections to edkrepo.cfg
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 2/6] EdkRepo: Add new sections to edkrepo.cfg Ashley E Desimone
@ 2020-04-17 20:27 ` Bjorge, Erik C
0 siblings, 0 replies; 14+ messages in thread
From: Bjorge, Erik C @ 2020-04-17 20:27 UTC (permalink / raw)
To: Desimone, Ashley E, devel@edk2.groups.io
Cc: Desimone, Nathaniel L, Pandya, Puja, Bret Barkelew,
Agyeman, Prince
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
-----Original Message-----
From: Desimone, Ashley E <ashley.e.desimone@intel.com>
Sent: Friday, April 17, 2020 10:18 AM
To: devel@edk2.groups.io
Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Pandya, Puja <puja.pandya@intel.com>; Bjorge, Erik C <erik.c.bjorge@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>; Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-staging/EdkRepo] [PATCH v2 2/6] EdkRepo: Add new sections to edkrepo.cfg
Add manifest-repos and edk2-staging sections to the edkrepo.cfg to enable support of multiple manifest repositories.
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo_installer/Vendor/edkrepo.cfg | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/edkrepo_installer/Vendor/edkrepo.cfg b/edkrepo_installer/Vendor/edkrepo.cfg
index 7dcaf20..97ebdd2 100644
--- a/edkrepo_installer/Vendor/edkrepo.cfg
+++ b/edkrepo_installer/Vendor/edkrepo.cfg
@@ -1,3 +1,11 @@
+[manifest-repos]
+edk2-staging =
+
+[edk2-staging]
+URL = https://github.com/tianocore/edk2-staging.git
+Branch = EdkRepo-Manifest
+LocalPath = edk2-staging-manifest-master
+
[manifest-repo]
URL = https://github.com/tianocore/edk2-staging.git
Branch = EdkRepo-Manifest
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [edk2-staging/EdkRepo] [PATCH v2 3/6] EdkRepo: Add the manifest_repo_list property to BaseConfig
2020-04-17 17:18 [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Ashley E Desimone
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 1/6] EdkRepo: Support Updated CFG Format Defining Multiple Manifest Repos Ashley E Desimone
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 2/6] EdkRepo: Add new sections to edkrepo.cfg Ashley E Desimone
@ 2020-04-17 17:18 ` Ashley E Desimone
2020-04-17 20:26 ` Bjorge, Erik C
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 4/6] EdkRepo: Add manifest_repo_props() Ashley E Desimone
` (4 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Ashley E Desimone @ 2020-04-17 17:18 UTC (permalink / raw)
To: devel
Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
Prince Agyeman
Add the manifest_repo_list property to the BaseConfig class
to return a list of manfiest repo sections in the config file.
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo/config/config_factory.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index 6c14f1b..6f89589 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -113,6 +113,12 @@ class BaseConfig():
with open(self.filename, 'w') as cfg_stream:
self.cfg.write(cfg_stream)
+ @property
+ def manifest_repo_list(self):
+ """Returns a list of available manifest repos"""
+ if self.cfg.has_section('manifest-repos'):
+ return self.cfg.options('manifest-repos')
+
class GlobalConfig(BaseConfig):
"""
Class access structure for the edkrepo.cfg file. This file is read only and maintained by the
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [edk2-staging/EdkRepo] [PATCH v2 3/6] EdkRepo: Add the manifest_repo_list property to BaseConfig
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 3/6] EdkRepo: Add the manifest_repo_list property to BaseConfig Ashley E Desimone
@ 2020-04-17 20:26 ` Bjorge, Erik C
0 siblings, 0 replies; 14+ messages in thread
From: Bjorge, Erik C @ 2020-04-17 20:26 UTC (permalink / raw)
To: Desimone, Ashley E, devel@edk2.groups.io
Cc: Desimone, Nathaniel L, Pandya, Puja, Bret Barkelew,
Agyeman, Prince
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
-----Original Message-----
From: Desimone, Ashley E <ashley.e.desimone@intel.com>
Sent: Friday, April 17, 2020 10:18 AM
To: devel@edk2.groups.io
Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Pandya, Puja <puja.pandya@intel.com>; Bjorge, Erik C <erik.c.bjorge@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>; Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-staging/EdkRepo] [PATCH v2 3/6] EdkRepo: Add the manifest_repo_list property to BaseConfig
Add the manifest_repo_list property to the BaseConfig class to return a list of manfiest repo sections in the config file.
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo/config/config_factory.py | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index 6c14f1b..6f89589 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -113,6 +113,12 @@ class BaseConfig():
with open(self.filename, 'w') as cfg_stream:
self.cfg.write(cfg_stream)
+ @property
+ def manifest_repo_list(self):
+ """Returns a list of available manifest repos"""
+ if self.cfg.has_section('manifest-repos'):
+ return self.cfg.options('manifest-repos')
+
class GlobalConfig(BaseConfig):
"""
Class access structure for the edkrepo.cfg file. This file is read only and maintained by the
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [edk2-staging/EdkRepo] [PATCH v2 4/6] EdkRepo: Add manifest_repo_props()
2020-04-17 17:18 [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Ashley E Desimone
` (2 preceding siblings ...)
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 3/6] EdkRepo: Add the manifest_repo_list property to BaseConfig Ashley E Desimone
@ 2020-04-17 17:18 ` Ashley E Desimone
2020-04-17 20:27 ` Bjorge, Erik C
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 5/6] EdkRepo: Move edkrepo_global_data directory to BaseConfig Ashley E Desimone
` (3 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Ashley E Desimone @ 2020-04-17 17:18 UTC (permalink / raw)
To: devel
Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
Prince Agyeman
Add the manifest_repo_props() function to the
BaseConfig class which returns a list of all
CfgProp objects for a given manifest repository.
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo/config/config_factory.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index 6f89589..1afa221 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -118,6 +118,13 @@ class BaseConfig():
"""Returns a list of available manifest repos"""
if self.cfg.has_section('manifest-repos'):
return self.cfg.options('manifest-repos')
+
+ def manifest_repo_props(self, manifest_repo):
+ """
+ Returns a list of cfg_prop objects that pertain to a given manifest
+ repo
+ """
+ return [x for x in self.prop_list if manifest_repo in x.name]
class GlobalConfig(BaseConfig):
"""
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [edk2-staging/EdkRepo] [PATCH v2 4/6] EdkRepo: Add manifest_repo_props()
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 4/6] EdkRepo: Add manifest_repo_props() Ashley E Desimone
@ 2020-04-17 20:27 ` Bjorge, Erik C
0 siblings, 0 replies; 14+ messages in thread
From: Bjorge, Erik C @ 2020-04-17 20:27 UTC (permalink / raw)
To: Desimone, Ashley E, devel@edk2.groups.io
Cc: Desimone, Nathaniel L, Pandya, Puja, Bret Barkelew,
Agyeman, Prince
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
-----Original Message-----
From: Desimone, Ashley E <ashley.e.desimone@intel.com>
Sent: Friday, April 17, 2020 10:18 AM
To: devel@edk2.groups.io
Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Pandya, Puja <puja.pandya@intel.com>; Bjorge, Erik C <erik.c.bjorge@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>; Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-staging/EdkRepo] [PATCH v2 4/6] EdkRepo: Add manifest_repo_props()
Add the manifest_repo_props() function to the BaseConfig class which returns a list of all CfgProp objects for a given manifest repository.
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo/config/config_factory.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index 6f89589..1afa221 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -118,6 +118,13 @@ class BaseConfig():
"""Returns a list of available manifest repos"""
if self.cfg.has_section('manifest-repos'):
return self.cfg.options('manifest-repos')
+
+ def manifest_repo_props(self, manifest_repo):
+ """
+ Returns a list of cfg_prop objects that pertain to a given manifest
+ repo
+ """
+ return [x for x in self.prop_list if manifest_repo in x.name]
class GlobalConfig(BaseConfig):
"""
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [edk2-staging/EdkRepo] [PATCH v2 5/6] EdkRepo: Move edkrepo_global_data directory to BaseConfig
2020-04-17 17:18 [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Ashley E Desimone
` (3 preceding siblings ...)
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 4/6] EdkRepo: Add manifest_repo_props() Ashley E Desimone
@ 2020-04-17 17:18 ` Ashley E Desimone
2020-04-17 20:28 ` Bjorge, Erik C
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 6/6] EdkRepo: Add 'get' functions for Manifest Repo data Ashley E Desimone
` (2 subsequent siblings)
7 siblings, 1 reply; 14+ messages in thread
From: Ashley E Desimone @ 2020-04-17 17:18 UTC (permalink / raw)
To: devel
Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
Prince Agyeman
Move the edkrepo_global_data_directory from the
GlobalConfig class to the base config class.
Updated the assignments of self.filename in both
the GlobalConfig and the GlobalUserConfig classes
as well as the initializaion of the BaseConfig
class to use get_edkrepo_global_data_directory()
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo/config/config_factory.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index 1afa221..4ae06f6 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -77,10 +77,11 @@ class BaseConfig():
for the class. Property generation and verification is based off of a list of CfgProp classes.
"""
prop_list = []
- def __init__(self, filename, read_only=True):
+ def __init__(self, filename, global_data_dir, read_only=True):
# Do basic initialization of private variables
self.read_only = read_only
self.filename = filename
+ self.global_data_dir = global_data_dir
self.cfg = configparser.ConfigParser(allow_no_value=True, delimiters='=')
if os.path.isfile(self.filename):
self.cfg.read(self.filename)
@@ -132,8 +133,7 @@ class GlobalConfig(BaseConfig):
edkrepo installer.
"""
def __init__(self):
- self.edkrepo_global_data_directory = get_edkrepo_global_data_directory()
- self.filename = os.path.join(self.edkrepo_global_data_directory, "edkrepo.cfg")
+ self.filename = os.path.join(get_edkrepo_global_data_directory(), "edkrepo.cfg")
self.prop_list = [
CfgProp('manifest-repo', 'URL', 'manifest_repo_url', None, True),
CfgProp('manifest-repo', 'Branch', 'manifest_repo_branch', None, True),
@@ -148,7 +148,7 @@ class GlobalConfig(BaseConfig):
CfgProp('preferred-entry-point', 'entry-point', 'pref_entry_point', None, True)]
if not os.path.isfile(self.filename):
raise EdkrepoGlobalConfigNotFoundException(humble.GLOBAL_CFG_NOT_FOUND.format(self.filename))
- super().__init__(self.filename, True)
+ super().__init__(self.filename, get_edkrepo_global_data_directory(), True)
@property
def preferred_entry(self):
@@ -165,7 +165,7 @@ class GlobalConfig(BaseConfig):
@property
def manifest_repo_abs_local_path(self):
"""Provides an absolute path to the manifest repo based on configuration file values."""
- return os.path.join(self.edkrepo_global_data_directory, self.manifest_repo_local_path)
+ return os.path.join(self.global_data_dir, self.manifest_repo_local_path)
@property
def sparsecheckout_data(self):
@@ -192,7 +192,7 @@ class GlobalUserConfig(BaseConfig):
CfgProp('scm', 'mirror_geo', 'geo', 'none', False),
CfgProp('send-review', 'max-patch-set', 'max_patch_set', '10', False)
]
- super().__init__(self.filename, False)
+ super().__init__(self.filename, get_edkrepo_global_data_directory(), False)
@property
def max_patch_set_int(self):
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [edk2-staging/EdkRepo] [PATCH v2 5/6] EdkRepo: Move edkrepo_global_data directory to BaseConfig
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 5/6] EdkRepo: Move edkrepo_global_data directory to BaseConfig Ashley E Desimone
@ 2020-04-17 20:28 ` Bjorge, Erik C
0 siblings, 0 replies; 14+ messages in thread
From: Bjorge, Erik C @ 2020-04-17 20:28 UTC (permalink / raw)
To: Desimone, Ashley E, devel@edk2.groups.io
Cc: Desimone, Nathaniel L, Pandya, Puja, Bret Barkelew,
Agyeman, Prince
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
-----Original Message-----
From: Desimone, Ashley E <ashley.e.desimone@intel.com>
Sent: Friday, April 17, 2020 10:18 AM
To: devel@edk2.groups.io
Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Pandya, Puja <puja.pandya@intel.com>; Bjorge, Erik C <erik.c.bjorge@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>; Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-staging/EdkRepo] [PATCH v2 5/6] EdkRepo: Move edkrepo_global_data directory to BaseConfig
Move the edkrepo_global_data_directory from the GlobalConfig class to the base config class.
Updated the assignments of self.filename in both the GlobalConfig and the GlobalUserConfig classes as well as the initializaion of the BaseConfig class to use get_edkrepo_global_data_directory()
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo/config/config_factory.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index 1afa221..4ae06f6 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -77,10 +77,11 @@ class BaseConfig():
for the class. Property generation and verification is based off of a list of CfgProp classes.
"""
prop_list = []
- def __init__(self, filename, read_only=True):
+ def __init__(self, filename, global_data_dir, read_only=True):
# Do basic initialization of private variables
self.read_only = read_only
self.filename = filename
+ self.global_data_dir = global_data_dir
self.cfg = configparser.ConfigParser(allow_no_value=True, delimiters='=')
if os.path.isfile(self.filename):
self.cfg.read(self.filename) @@ -132,8 +133,7 @@ class GlobalConfig(BaseConfig):
edkrepo installer.
"""
def __init__(self):
- self.edkrepo_global_data_directory = get_edkrepo_global_data_directory()
- self.filename = os.path.join(self.edkrepo_global_data_directory, "edkrepo.cfg")
+ self.filename =
+ os.path.join(get_edkrepo_global_data_directory(), "edkrepo.cfg")
self.prop_list = [
CfgProp('manifest-repo', 'URL', 'manifest_repo_url', None, True),
CfgProp('manifest-repo', 'Branch', 'manifest_repo_branch', None, True), @@ -148,7 +148,7 @@ class GlobalConfig(BaseConfig):
CfgProp('preferred-entry-point', 'entry-point', 'pref_entry_point', None, True)]
if not os.path.isfile(self.filename):
raise EdkrepoGlobalConfigNotFoundException(humble.GLOBAL_CFG_NOT_FOUND.format(self.filename))
- super().__init__(self.filename, True)
+ super().__init__(self.filename,
+ get_edkrepo_global_data_directory(), True)
@property
def preferred_entry(self):
@@ -165,7 +165,7 @@ class GlobalConfig(BaseConfig):
@property
def manifest_repo_abs_local_path(self):
"""Provides an absolute path to the manifest repo based on configuration file values."""
- return os.path.join(self.edkrepo_global_data_directory, self.manifest_repo_local_path)
+ return os.path.join(self.global_data_dir,
+ self.manifest_repo_local_path)
@property
def sparsecheckout_data(self):
@@ -192,7 +192,7 @@ class GlobalUserConfig(BaseConfig):
CfgProp('scm', 'mirror_geo', 'geo', 'none', False),
CfgProp('send-review', 'max-patch-set', 'max_patch_set', '10', False)
]
- super().__init__(self.filename, False)
+ super().__init__(self.filename,
+ get_edkrepo_global_data_directory(), False)
@property
def max_patch_set_int(self):
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [edk2-staging/EdkRepo] [PATCH v2 6/6] EdkRepo: Add 'get' functions for Manifest Repo data
2020-04-17 17:18 [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Ashley E Desimone
` (4 preceding siblings ...)
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 5/6] EdkRepo: Move edkrepo_global_data directory to BaseConfig Ashley E Desimone
@ 2020-04-17 17:18 ` Ashley E Desimone
2020-04-17 20:27 ` Bjorge, Erik C
2020-04-19 2:13 ` [edk2-devel] [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Nate DeSimone
2020-04-19 2:18 ` Nate DeSimone
7 siblings, 1 reply; 14+ messages in thread
From: Ashley E Desimone @ 2020-04-17 17:18 UTC (permalink / raw)
To: devel
Cc: Nate DeSimone, Puja Pandya, Erik Bjorge, Bret Barkelew,
Prince Agyeman
Added functions to get the URL, LocalPath, Branch
and the absolute path for individual manifest
repositories to the BaseConfig class.
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo/config/config_factory.py | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index 4ae06f6..90f393c 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -127,6 +127,43 @@ class BaseConfig():
"""
return [x for x in self.prop_list if manifest_repo in x.name]
+ def get_manifest_repo_url(self, manifest_repo):
+ """
+ Returns the URL value for a given manifest repo based on config
+ file contents.
+ """
+ for prop in self.manifest_repo_props(manifest_repo):
+ if 'URL' == prop.key:
+ return self.cfg[prop.section][prop.key]
+ return None
+
+ def get_manifest_repo_branch(self, manifest_repo):
+ """
+ Returns the Branch value for a given manifest repo based on config file
+ contents.
+ """
+ for prop in self.manifest_repo_props(manifest_repo):
+ if 'Branch' == prop.key:
+ return self.cfg[prop.section][prop.key]
+ return None
+
+ def get_manifest_repo_local_path(self, manifest_repo):
+ """
+ Returns the Local path value for a given manifest repo based on config
+ file contents.
+ """
+ for prop in self.manifest_repo_props(manifest_repo):
+ if 'LocalPath' == prop.key:
+ return self.cfg[prop.section][prop.key]
+ return None
+
+ def manifest_repo_abs_path(self, manifest_repo):
+ """
+ Returns the absolute path of a single manifest repo based on config
+ file contents and the global_data_dir location.
+ """
+ return os.path.join(self.global_data_dir, self.get_manifest_repo_local_path(manifest_repo))
+
class GlobalConfig(BaseConfig):
"""
Class access structure for the edkrepo.cfg file. This file is read only and maintained by the
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [edk2-staging/EdkRepo] [PATCH v2 6/6] EdkRepo: Add 'get' functions for Manifest Repo data
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 6/6] EdkRepo: Add 'get' functions for Manifest Repo data Ashley E Desimone
@ 2020-04-17 20:27 ` Bjorge, Erik C
0 siblings, 0 replies; 14+ messages in thread
From: Bjorge, Erik C @ 2020-04-17 20:27 UTC (permalink / raw)
To: Desimone, Ashley E, devel@edk2.groups.io
Cc: Desimone, Nathaniel L, Pandya, Puja, Bret Barkelew,
Agyeman, Prince
Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com>
-----Original Message-----
From: Desimone, Ashley E <ashley.e.desimone@intel.com>
Sent: Friday, April 17, 2020 10:18 AM
To: devel@edk2.groups.io
Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Pandya, Puja <puja.pandya@intel.com>; Bjorge, Erik C <erik.c.bjorge@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>; Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-staging/EdkRepo] [PATCH v2 6/6] EdkRepo: Add 'get' functions for Manifest Repo data
Added functions to get the URL, LocalPath, Branch and the absolute path for individual manifest repositories to the BaseConfig class.
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
---
edkrepo/config/config_factory.py | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/edkrepo/config/config_factory.py b/edkrepo/config/config_factory.py
index 4ae06f6..90f393c 100644
--- a/edkrepo/config/config_factory.py
+++ b/edkrepo/config/config_factory.py
@@ -127,6 +127,43 @@ class BaseConfig():
"""
return [x for x in self.prop_list if manifest_repo in x.name]
+ def get_manifest_repo_url(self, manifest_repo):
+ """
+ Returns the URL value for a given manifest repo based on config
+ file contents.
+ """
+ for prop in self.manifest_repo_props(manifest_repo):
+ if 'URL' == prop.key:
+ return self.cfg[prop.section][prop.key]
+ return None
+
+ def get_manifest_repo_branch(self, manifest_repo):
+ """
+ Returns the Branch value for a given manifest repo based on config file
+ contents.
+ """
+ for prop in self.manifest_repo_props(manifest_repo):
+ if 'Branch' == prop.key:
+ return self.cfg[prop.section][prop.key]
+ return None
+
+ def get_manifest_repo_local_path(self, manifest_repo):
+ """
+ Returns the Local path value for a given manifest repo based on config
+ file contents.
+ """
+ for prop in self.manifest_repo_props(manifest_repo):
+ if 'LocalPath' == prop.key:
+ return self.cfg[prop.section][prop.key]
+ return None
+
+ def manifest_repo_abs_path(self, manifest_repo):
+ """
+ Returns the absolute path of a single manifest repo based on config
+ file contents and the global_data_dir location.
+ """
+ return os.path.join(self.global_data_dir,
+ self.get_manifest_repo_local_path(manifest_repo))
+
class GlobalConfig(BaseConfig):
"""
Class access structure for the edkrepo.cfg file. This file is read only and maintained by the
--
2.16.2.windows.1
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [edk2-devel] [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories
2020-04-17 17:18 [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Ashley E Desimone
` (5 preceding siblings ...)
2020-04-17 17:18 ` [edk2-staging/EdkRepo] [PATCH v2 6/6] EdkRepo: Add 'get' functions for Manifest Repo data Ashley E Desimone
@ 2020-04-19 2:13 ` Nate DeSimone
2020-04-19 2:18 ` Nate DeSimone
7 siblings, 0 replies; 14+ messages in thread
From: Nate DeSimone @ 2020-04-19 2:13 UTC (permalink / raw)
To: devel@edk2.groups.io, Desimone, Ashley E
Cc: Pandya, Puja, Bjorge, Erik C, Bret Barkelew, Agyeman, Prince
For the series...
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ashley E Desimone
Sent: Friday, April 17, 2020 10:18 AM
To: devel@edk2.groups.io
Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Pandya, Puja <puja.pandya@intel.com>; Bjorge, Erik C <erik.c.bjorge@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>; Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-devel] [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories
This version amends patch 4/6 to use Erik's feeback regardling list comprehensions. All other patches are unchanged.
This patch set adds the initial support for consuming multiple manifest repositories to the BaseConfig, GlobalConfig and GlobalUserConfig classes defined in edkrepo/config/config_factory.py
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
Ashley E Desimone (6):
EdkRepo: Support Updated CFG Format Defining Multiple Manifest Repos
EdkRepo: Add new sections to edkrepo.cfg
EdkRepo: Add the manifest_repo_list property to BaseConfig
EdkRepo: Add manifest_repo_props()
EdkRepo: Move edkrepo_global_data directory to BaseConfig
EdkRepo: Add 'get' functions for Manifest Repo data
edkrepo/config/config_factory.py | 68 ++++++++++++++++++++++++++++++++----
edkrepo_installer/Vendor/edkrepo.cfg | 8 +++++
2 files changed, 70 insertions(+), 6 deletions(-)
--
2.16.2.windows.1
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [edk2-devel] [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories
2020-04-17 17:18 [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Ashley E Desimone
` (6 preceding siblings ...)
2020-04-19 2:13 ` [edk2-devel] [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories Nate DeSimone
@ 2020-04-19 2:18 ` Nate DeSimone
7 siblings, 0 replies; 14+ messages in thread
From: Nate DeSimone @ 2020-04-19 2:18 UTC (permalink / raw)
To: devel@edk2.groups.io, Desimone, Ashley E
Cc: Pandya, Puja, Bjorge, Erik C, Bret Barkelew, Agyeman, Prince
The series has been pushed as 6964bf3d~..c0cf9832
-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ashley E Desimone
Sent: Friday, April 17, 2020 10:18 AM
To: devel@edk2.groups.io
Cc: Desimone, Nathaniel L <nathaniel.l.desimone@intel.com>; Pandya, Puja <puja.pandya@intel.com>; Bjorge, Erik C <erik.c.bjorge@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>; Agyeman, Prince <prince.agyeman@intel.com>
Subject: [edk2-devel] [edk2-staging/EdkRepo] [PATCH v2 0/6] EdkRepo: Add Initial Config Factory Support for Multiple Manifest Repositories
This version amends patch 4/6 to use Erik's feeback regardling list comprehensions. All other patches are unchanged.
This patch set adds the initial support for consuming multiple manifest repositories to the BaseConfig, GlobalConfig and GlobalUserConfig classes defined in edkrepo/config/config_factory.py
Signed-off-by: Ashley E Desimone <ashley.e.desimone@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Cc: Puja Pandya <puja.pandya@intel.com>
Cc: Erik Bjorge <erik.c.bjorge@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Prince Agyeman <prince.agyeman@intel.com>
Ashley E Desimone (6):
EdkRepo: Support Updated CFG Format Defining Multiple Manifest Repos
EdkRepo: Add new sections to edkrepo.cfg
EdkRepo: Add the manifest_repo_list property to BaseConfig
EdkRepo: Add manifest_repo_props()
EdkRepo: Move edkrepo_global_data directory to BaseConfig
EdkRepo: Add 'get' functions for Manifest Repo data
edkrepo/config/config_factory.py | 68 ++++++++++++++++++++++++++++++++----
edkrepo_installer/Vendor/edkrepo.cfg | 8 +++++
2 files changed, 70 insertions(+), 6 deletions(-)
--
2.16.2.windows.1
^ permalink raw reply [flat|nested] 14+ messages in thread