Automatically disable/enable components not found in origins
Instead of blowing up with components that are existent but not disabled, just disable them automatically if they are present in the persona file (which most will be) but not present in the origins file (which some may not be) and those components are not listed under a no-origin persona section. This is to accomodate persona files having more components than an origins file (which may be ok if those components are not actually needed). Change-Id: Ia5c51177a58ba686cf008f2958d72543705953cb
This commit is contained in:
parent
b5860111d0
commit
a3f3c4eb5f
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
import six
|
import six
|
||||||
|
|
||||||
|
from anvil import colorizer
|
||||||
from anvil import log as logging
|
from anvil import log as logging
|
||||||
from anvil import utils
|
from anvil import utils
|
||||||
|
|
||||||
@ -30,14 +31,32 @@ class Persona(object):
|
|||||||
self.wanted_components = components or []
|
self.wanted_components = components or []
|
||||||
self.wanted_subsystems = kargs.get('subsystems') or {}
|
self.wanted_subsystems = kargs.get('subsystems') or {}
|
||||||
self.component_options = kargs.get('options') or {}
|
self.component_options = kargs.get('options') or {}
|
||||||
|
self.no_origins = kargs.get('no-origin') or []
|
||||||
|
|
||||||
def verify(self, distro, origins_fn):
|
def verify(self, distro, origins_fn):
|
||||||
# Filter out components that are disabled in origins file
|
# Filter out components that are disabled in origins file
|
||||||
|
origins = utils.load_yaml(origins_fn)
|
||||||
|
for c in self.wanted_components:
|
||||||
|
if c not in origins:
|
||||||
|
if c in self.no_origins:
|
||||||
|
LOG.debug("Automatically enabling component %s, not"
|
||||||
|
" present in origins file %s but present in"
|
||||||
|
" desired persona %s (origin not required).",
|
||||||
|
c, origins_fn, self.source)
|
||||||
|
origins[c] = {
|
||||||
|
'disabled': False,
|
||||||
|
}
|
||||||
|
else:
|
||||||
|
LOG.warn("Automatically disabling %s, not present in"
|
||||||
|
" origin file but present in desired"
|
||||||
|
" persona (origin required).",
|
||||||
|
colorizer.quote(c, quote_color='red'))
|
||||||
|
origins[c] = {
|
||||||
|
'disabled': True,
|
||||||
|
}
|
||||||
disabled_components = set(key
|
disabled_components = set(key
|
||||||
for key, value in six.iteritems(
|
for key, value in six.iteritems(origins)
|
||||||
utils.load_yaml(origins_fn))
|
|
||||||
if value.get('disabled'))
|
if value.get('disabled'))
|
||||||
|
|
||||||
self.wanted_components = [c for c in self.wanted_components
|
self.wanted_components = [c for c in self.wanted_components
|
||||||
if c not in disabled_components]
|
if c not in disabled_components]
|
||||||
|
|
||||||
|
@ -67,7 +67,3 @@ trove-client:
|
|||||||
trove:
|
trove:
|
||||||
repo: git://github.com/openstack/trove.git
|
repo: git://github.com/openstack/trove.git
|
||||||
tag: 2013.2.1
|
tag: 2013.2.1
|
||||||
oslo-messaging:
|
|
||||||
disabled: True
|
|
||||||
pycadf:
|
|
||||||
disabled: True
|
|
||||||
|
@ -67,7 +67,3 @@ trove-client:
|
|||||||
trove:
|
trove:
|
||||||
repo: git://github.com/openstack/trove.git
|
repo: git://github.com/openstack/trove.git
|
||||||
tag: 2013.2.2
|
tag: 2013.2.2
|
||||||
oslo-messaging:
|
|
||||||
disabled: True
|
|
||||||
pycadf:
|
|
||||||
disabled: True
|
|
||||||
|
@ -67,5 +67,3 @@ trove-client:
|
|||||||
trove:
|
trove:
|
||||||
repo: git://github.com/openstack/trove.git
|
repo: git://github.com/openstack/trove.git
|
||||||
tag: 2013.2
|
tag: 2013.2
|
||||||
oslo-messaging:
|
|
||||||
disabled: True
|
|
||||||
|
@ -67,7 +67,3 @@ trove-client:
|
|||||||
trove:
|
trove:
|
||||||
repo: git://github.com/openstack/trove.git
|
repo: git://github.com/openstack/trove.git
|
||||||
tag: 2013.2
|
tag: 2013.2
|
||||||
oslo-messaging:
|
|
||||||
disabled: True
|
|
||||||
pycadf:
|
|
||||||
disabled: True
|
|
||||||
|
@ -70,7 +70,3 @@ trove-client:
|
|||||||
trove:
|
trove:
|
||||||
repo: git://github.com/openstack/trove.git
|
repo: git://github.com/openstack/trove.git
|
||||||
branch: stable/havana
|
branch: stable/havana
|
||||||
oslo-messaging:
|
|
||||||
disabled: True
|
|
||||||
pycadf:
|
|
||||||
disabled: True
|
|
||||||
|
@ -93,6 +93,12 @@ subsystems:
|
|||||||
- collector
|
- collector
|
||||||
- compute
|
- compute
|
||||||
- central
|
- central
|
||||||
|
no-origin:
|
||||||
|
# These components don't need an origin to be enabled
|
||||||
|
- general
|
||||||
|
- db
|
||||||
|
- rabbit-mq
|
||||||
|
- openvswitch
|
||||||
supports:
|
supports:
|
||||||
- rhel
|
- rhel
|
||||||
...
|
...
|
||||||
|
@ -67,6 +67,12 @@ subsystems:
|
|||||||
- api
|
- api
|
||||||
- scheduler
|
- scheduler
|
||||||
- volume
|
- volume
|
||||||
|
no-origin:
|
||||||
|
# These components don't need an origin to be enabled
|
||||||
|
- general
|
||||||
|
- db
|
||||||
|
- rabbit-mq
|
||||||
|
- openvswitch
|
||||||
supports:
|
supports:
|
||||||
- rhel
|
- rhel
|
||||||
...
|
...
|
||||||
|
@ -55,6 +55,11 @@ subsystems:
|
|||||||
- api
|
- api
|
||||||
- scheduler
|
- scheduler
|
||||||
- volume
|
- volume
|
||||||
|
no-origin:
|
||||||
|
# These components don't need an origin to be enabled
|
||||||
|
- general
|
||||||
|
- db
|
||||||
|
- qpid
|
||||||
supports:
|
supports:
|
||||||
- rhel
|
- rhel
|
||||||
...
|
...
|
||||||
|
@ -57,6 +57,11 @@ subsystems:
|
|||||||
- api
|
- api
|
||||||
- scheduler
|
- scheduler
|
||||||
- volume
|
- volume
|
||||||
|
no-origin:
|
||||||
|
# These components don't need an origin to be enabled
|
||||||
|
- general
|
||||||
|
- db
|
||||||
|
- rabbit-mq
|
||||||
supports:
|
supports:
|
||||||
- rhel
|
- rhel
|
||||||
...
|
...
|
||||||
|
@ -79,6 +79,12 @@ subsystems:
|
|||||||
- api
|
- api
|
||||||
- scheduler
|
- scheduler
|
||||||
- volume
|
- volume
|
||||||
|
no-origin:
|
||||||
|
# These components don't need an origin to be enabled
|
||||||
|
- general
|
||||||
|
- db
|
||||||
|
- rabbit-mq
|
||||||
|
- openvswitch
|
||||||
supports:
|
supports:
|
||||||
- rhel
|
- rhel
|
||||||
...
|
...
|
||||||
|
@ -55,6 +55,11 @@ subsystems:
|
|||||||
- api
|
- api
|
||||||
- scheduler
|
- scheduler
|
||||||
- volume
|
- volume
|
||||||
|
no-origin:
|
||||||
|
# These components don't need an origin to be enabled
|
||||||
|
- general
|
||||||
|
- db
|
||||||
|
- rabbit-mq
|
||||||
supports:
|
supports:
|
||||||
- rhel
|
- rhel
|
||||||
...
|
...
|
||||||
|
Loading…
Reference in New Issue
Block a user