Contine working on folsom features.
1. Make glanceclient not need to install keystoneclient (anvil handles this dependency) 2. Make keystone not need to install keystoneclient (anvil handles this dependency) 3. Make the packager default to false for removal instead of true (WIP, figuring a better way to do this) 4. Update the rhel6 distro yaml file to have the new formats and removals of 'false' (for removing) 5. Update the devstack 'equiv' persona to add back in keystone/glanceclient/general/db/glance (WIP)
This commit is contained in:
@@ -303,10 +303,14 @@ class PythonInstallComponent(PkgInstallComponent):
|
||||
]
|
||||
for fn in scan_files:
|
||||
if sh.isfile(fn):
|
||||
LOG.info("Injected dependencies from %s.", colorizer.quote(fn))
|
||||
for line in sh.load_file(fn).splitlines():
|
||||
line = line.strip()
|
||||
if not line or line.startswith("#"):
|
||||
continue
|
||||
if line.find('http://tarballs.openstack.org') != -1:
|
||||
# WTF
|
||||
continue
|
||||
entry = pkg_resources.Requirement.parse(line)
|
||||
pip_requires[entry.key] = {
|
||||
'requires': entry,
|
||||
@@ -355,6 +359,8 @@ class PythonInstallComponent(PkgInstallComponent):
|
||||
' package!') % (
|
||||
req['full'], req['from'],
|
||||
))
|
||||
# TODO(harlowja) - handle the version checking better, it
|
||||
# right is pretty crappy and dump...
|
||||
version_provided = found_entry.get('version')
|
||||
if version_provided is not None and version_provided not in req['requires']:
|
||||
raise excp.DependencyException("Pip dependency %r"
|
||||
|
||||
@@ -30,6 +30,14 @@ class GlanceClientInstaller(comp.PythonInstallComponent):
|
||||
def __init__(self, *args, **kargs):
|
||||
comp.PythonInstallComponent.__init__(self, *args, **kargs)
|
||||
|
||||
def _filter_mapped_packages(self, mapping):
|
||||
# Remove keystone client (will be handled by anvil)...
|
||||
new_mapping = {}
|
||||
for (k, data) in mapping.items():
|
||||
if k.lower().find('keystoneclient') == -1:
|
||||
new_mapping[k] = data
|
||||
return new_mapping
|
||||
|
||||
def _get_download_locations(self):
|
||||
places = list()
|
||||
places.append({
|
||||
|
||||
@@ -30,7 +30,6 @@ from anvil.helpers import glance as ghelper
|
||||
from anvil.helpers import keystone as khelper
|
||||
from anvil.helpers import nova as nhelper
|
||||
from anvil.helpers import quantum as qhelper
|
||||
from anvil.helpers import swift as shelper
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
@@ -84,6 +83,14 @@ class KeystoneInstaller(comp.PythonInstallComponent):
|
||||
comp.PythonInstallComponent.__init__(self, *args, **kargs)
|
||||
self.bin_dir = sh.joinpths(self.get_option('app_dir'), BIN_DIR)
|
||||
|
||||
def _filter_mapped_packages(self, mapping):
|
||||
# Remove keystone client (will be handled by anvil)...
|
||||
new_mapping = {}
|
||||
for (k, data) in mapping.items():
|
||||
if k.lower().find('keystoneclient') == -1:
|
||||
new_mapping[k] = data
|
||||
return new_mapping
|
||||
|
||||
def _get_download_locations(self):
|
||||
places = list()
|
||||
places.append({
|
||||
@@ -195,7 +202,6 @@ class KeystoneRuntime(comp.PythonRuntime):
|
||||
initial_cfg['keystone'] = khelper.get_shared_params(self.cfg)
|
||||
initial_cfg['nova'] = nhelper.get_shared_params(self.cfg)
|
||||
initial_cfg['quantum'] = qhelper.get_shared_params(self.cfg)
|
||||
initial_cfg['swift'] = shelper.get_shared_params(self.cfg)
|
||||
init_what = utils.param_replace_deep(copy.deepcopy(self.init_what), initial_cfg)
|
||||
khelper.Initializer(initial_cfg['keystone']).initialize(**init_what)
|
||||
# Writing this makes sure that we don't init again
|
||||
|
||||
@@ -67,7 +67,7 @@ class Packager(object):
|
||||
del(self.registry.removed[name])
|
||||
|
||||
def remove(self, pkg):
|
||||
removable = pkg.get('removable', True)
|
||||
removable = pkg.get('removable', False)
|
||||
if not removable:
|
||||
return False
|
||||
name = pkg['name']
|
||||
|
||||
@@ -69,9 +69,7 @@ components:
|
||||
uninstall: anvil.components.db:DBUninstaller
|
||||
packages:
|
||||
- name: mysql
|
||||
removable: true
|
||||
- name: mysql-server
|
||||
removable: true
|
||||
general:
|
||||
action_classes:
|
||||
install: anvil.components.pkglist:Installer
|
||||
@@ -80,86 +78,63 @@ components:
|
||||
packages:
|
||||
# Shared system packages
|
||||
- name: coreutils
|
||||
removable: false
|
||||
- name: curl
|
||||
removable: false
|
||||
- name: euca2ools
|
||||
removable: false
|
||||
- name: gawk
|
||||
removable: false
|
||||
- name: git
|
||||
removable: false
|
||||
- name: iputils
|
||||
removable: false
|
||||
- name: libxml2-devel
|
||||
removable: false
|
||||
- name: libxslt-devel
|
||||
removable: false
|
||||
- name: lsof
|
||||
removable: false
|
||||
- name: mlocate
|
||||
removable: false
|
||||
- name: openssh-server
|
||||
removable: false
|
||||
- name: psmisc
|
||||
removable: false
|
||||
- name: screen
|
||||
removable: false
|
||||
- name: sudo
|
||||
removable: false
|
||||
- name: tcpdump
|
||||
removable: false
|
||||
- name: unzip
|
||||
removable: false
|
||||
- name: wget
|
||||
removable: false
|
||||
# Shared python packages
|
||||
- name: pylint
|
||||
removable: false
|
||||
- name: python
|
||||
removable: false
|
||||
- name: python-anyjson
|
||||
removable: false
|
||||
- name: python-devel
|
||||
removable: false
|
||||
- name: python-distutils-extra
|
||||
removable: false
|
||||
- name: python-eventlet
|
||||
removable: false
|
||||
- name: python-pep8
|
||||
removable: false
|
||||
- name: python-pip
|
||||
removable: false
|
||||
- name: python-argparse
|
||||
removable: false
|
||||
- name: python-babel
|
||||
- name: python-devel
|
||||
- name: python-distutils-extra
|
||||
- name: python-eventlet
|
||||
- name: python-greenlet
|
||||
- name: python-greenlet
|
||||
removable: false
|
||||
- name: python-paste
|
||||
removable: false
|
||||
- name: python-setuptools
|
||||
removable: false
|
||||
- name: python-unittest2
|
||||
removable: false
|
||||
- name: python-virtualenv
|
||||
removable: false
|
||||
- name: python-webob1.0
|
||||
removable: false
|
||||
- name: MySQL-python
|
||||
removable: false
|
||||
- name: python-sqlalchemy0.7
|
||||
removable: false
|
||||
- name: python-httplib2
|
||||
removable: false
|
||||
- name: python-iso8601
|
||||
removable: false
|
||||
- name: python-greenlet
|
||||
removable: false
|
||||
- name: python-paste-deploy1.5
|
||||
removable: false
|
||||
- name: python-routes1.12
|
||||
removable: false
|
||||
- name: python-lxml
|
||||
- name: python-mock
|
||||
- name: python-mox
|
||||
- name: python-nose1.1
|
||||
removable: false
|
||||
- name: python-paste
|
||||
- name: python-paste-deploy1.5
|
||||
- name: python-pep8
|
||||
- name: python-pip
|
||||
- name: python-routes1.12
|
||||
- name: python-setuptools
|
||||
- name: python-simplejson
|
||||
- name: python-sqlalchemy0.7
|
||||
- name: python-unittest2
|
||||
- name: python-virtualenv
|
||||
- name: python-webob1.0
|
||||
pips:
|
||||
# Pips that aren't packages yet (or versions aren't right...)
|
||||
- name: coverage
|
||||
- name: nose-exclude
|
||||
- name: openstack.nose_plugin
|
||||
- name: passlib
|
||||
- name: prettytable
|
||||
version: "0.6.1"
|
||||
- name: pycrypto
|
||||
options: --upgrade
|
||||
- name: requests
|
||||
- name: sphinx
|
||||
- name: sqlalchemy-migrate
|
||||
glance:
|
||||
action_classes:
|
||||
install: anvil.components.glance:GlanceInstaller
|
||||
@@ -171,69 +146,71 @@ components:
|
||||
# and versions inside those files into distribution
|
||||
# package names equivalents (if possible)
|
||||
pip_to_package:
|
||||
- name: mox
|
||||
package:
|
||||
name: python-mox
|
||||
- name: lxml
|
||||
package:
|
||||
name: python-lxml
|
||||
- name: babel
|
||||
package:
|
||||
name: python-babel
|
||||
- name: pysendfile
|
||||
package:
|
||||
name: pysendfile
|
||||
- name: kombu
|
||||
package:
|
||||
name: python-kombu # Only needed for notifications?
|
||||
# These packages are already installed in the 'general' section
|
||||
# so this is just here to make sure when we find them that they
|
||||
# are matched and not cause an error to occur
|
||||
# Only needed for notifications???
|
||||
name: python-kombu
|
||||
# These packages are already installed in the 'general' section...
|
||||
- name: anyjson
|
||||
- name: argparse
|
||||
- name: babel
|
||||
- name: coverage
|
||||
- name: distribute
|
||||
- name: eventlet
|
||||
- name: greenlet
|
||||
- name: httplib2
|
||||
- name: iso8601
|
||||
- name: lxml
|
||||
- name: mox
|
||||
- name: nose
|
||||
- name: paste
|
||||
- name: pastedeploy
|
||||
- name: pep8
|
||||
- name: routes
|
||||
- name: sqlalchemy
|
||||
- name: webob
|
||||
packages:
|
||||
- name: python-dateutil
|
||||
- name: python-prettytable
|
||||
pips:
|
||||
# Pips that aren't packages yet
|
||||
- name: boto
|
||||
version: "2.1.1"
|
||||
- name: coverage
|
||||
- name: distribute
|
||||
- name: jsonschema
|
||||
- name: nose-exclude
|
||||
- name: openstack.nose_plugin
|
||||
- name: passlib
|
||||
- name: paste
|
||||
- name: pastedeploy
|
||||
- name: pep8
|
||||
- name: prettytable
|
||||
- name: pycrypto
|
||||
options: --upgrade
|
||||
- name: requests
|
||||
- name: routes
|
||||
- name: sphinx
|
||||
- name: sqlalchemy
|
||||
- name: sqlalchemy-migrate
|
||||
- name: webob
|
||||
packages:
|
||||
- name: MySQL-python
|
||||
pips:
|
||||
# Pips that aren't packages yet (and not in the 'general' section)
|
||||
- name: boto
|
||||
version: "2.1.1"
|
||||
- name: wsgiref
|
||||
- name: xattr
|
||||
- name: jsonschema
|
||||
glance-client:
|
||||
action_classes:
|
||||
install: anvil.components.glance_client:GlanceClientInstaller
|
||||
running: anvil.components.glance_client:GlanceClientRuntime
|
||||
uninstall: anvil.components.glance_client:GlanceClientUninstaller
|
||||
packages:
|
||||
- name: python-argparse
|
||||
removable: true
|
||||
version: 1.2*
|
||||
- name: python-prettytable
|
||||
removable: true
|
||||
version: 0.5*
|
||||
pip_to_package:
|
||||
# These packages are already installed in the 'general' section...
|
||||
- name: argparse
|
||||
- name: distribute
|
||||
- name: httplib2
|
||||
- name: mox
|
||||
- name: nose
|
||||
- name: nose-exclude
|
||||
- name: openstack.nose_plugin
|
||||
- name: pep8
|
||||
- name: prettytable
|
||||
- name: sphinx
|
||||
pips:
|
||||
- name: nosexcover
|
||||
- name: setuptools-git
|
||||
- name: warlock
|
||||
version: "0.1.0"
|
||||
horizon:
|
||||
action_classes:
|
||||
install: anvil.distros.rhel6:HorizonInstaller
|
||||
@@ -241,68 +218,11 @@ components:
|
||||
uninstall: anvil.components.horizon:HorizonUninstaller
|
||||
packages:
|
||||
- name: nodejs-compat-symlinks
|
||||
removable: true
|
||||
version: 1-1*
|
||||
source-rpm: http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
|
||||
- name: npm
|
||||
removable: true
|
||||
version: 1.1*
|
||||
source-rpm: http://nodejs.tchol.org/repocfg/el/nodejs-stable-release.noarch.rpm
|
||||
- name: httpd
|
||||
removable: true
|
||||
version: 2.2*
|
||||
- name: mod_wsgi
|
||||
removable: true
|
||||
version: 3.2*
|
||||
- name: python-dateutil
|
||||
removable: true
|
||||
version: 1.4*
|
||||
- name: python-eventlet
|
||||
removable: true
|
||||
version: 0.9*
|
||||
- name: python-kombu
|
||||
removable: true
|
||||
version: 1.1*
|
||||
- name: python-webob1.0
|
||||
removable: true
|
||||
version: 1.0*
|
||||
packager_name: anvil.distros.rhel6:YumPackagerWithRelinks
|
||||
packager_options:
|
||||
links:
|
||||
- source: /usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/
|
||||
target: /usr/lib/python2.6/site-packages/webob
|
||||
pips:
|
||||
- name: CherryPy
|
||||
version: 3.2.2
|
||||
- name: Paste
|
||||
version: 1.7.5.1
|
||||
- name: PasteDeploy
|
||||
version: '1.5'
|
||||
- name: PasteScript
|
||||
version: 1.7.5
|
||||
- name: Routes
|
||||
version: 1.12.3
|
||||
- name: SQLAlchemy
|
||||
version: 0.7.5
|
||||
- name: django
|
||||
version: "1.4"
|
||||
- name: django-mailer
|
||||
version: 0.1.0
|
||||
- name: django-nose
|
||||
version: 0.1.3
|
||||
- name: django-nose-selenium
|
||||
version: 0.7.3
|
||||
- name: django-registration
|
||||
version: '0.7'
|
||||
- name: django-staticfiles
|
||||
version: 1.1.2
|
||||
- name: pycrypto
|
||||
options: --upgrade
|
||||
version: '2.6'
|
||||
- name: python-cloudfiles
|
||||
version: 1.7.9.3
|
||||
- name: sqlalchemy-migrate
|
||||
version: 0.7.2
|
||||
keystone:
|
||||
action_classes:
|
||||
install: anvil.components.keystone:KeystoneInstaller
|
||||
@@ -310,79 +230,66 @@ components:
|
||||
uninstall: anvil.components.keystone:KeystoneUninstaller
|
||||
packages:
|
||||
- name: MySQL-python
|
||||
removable: true
|
||||
version: 1.2*
|
||||
- name: cyrus-sasl-lib
|
||||
removable: false
|
||||
version: 2.1*
|
||||
- name: openldap
|
||||
removable: false
|
||||
version: 2.4*
|
||||
- name: openldap-devel
|
||||
removable: true
|
||||
version: 2.4*
|
||||
- name: python-argparse
|
||||
removable: true
|
||||
version: 1.2*
|
||||
- name: python-eventlet
|
||||
removable: true
|
||||
version: 0.9*
|
||||
- name: python-greenlet
|
||||
removable: true
|
||||
version: 0.3*
|
||||
- name: python-lxml
|
||||
removable: true
|
||||
version: 2.2*
|
||||
- name: python-passlib
|
||||
removable: true
|
||||
version: 1.5*
|
||||
- name: python-prettytable
|
||||
removable: true
|
||||
version: 0.5*
|
||||
- name: python-sqlite2
|
||||
removable: true
|
||||
version: 2.3*
|
||||
- name: python-webob1.0
|
||||
removable: true
|
||||
version: 1.0*
|
||||
packager_name: anvil.distros.rhel6:YumPackagerWithRelinks
|
||||
packager_options:
|
||||
links:
|
||||
- source: /usr/lib/python2.6/site-packages/WebOb-1.0.8-py2.6.egg/webob/
|
||||
target: /usr/lib/python2.6/site-packages/webob
|
||||
- name: sqlite
|
||||
removable: false
|
||||
version: 3.6*
|
||||
pips:
|
||||
- name: Paste
|
||||
version: 1.7.5.1
|
||||
- name: PasteDeploy
|
||||
version: '1.5'
|
||||
- name: PasteScript
|
||||
version: 1.7.5
|
||||
- name: Routes
|
||||
version: 1.12.3
|
||||
- name: SQLAlchemy
|
||||
version: 0.7.5
|
||||
- name: py-bcrypt
|
||||
version: '0.2'
|
||||
- name: pycrypto
|
||||
options: --upgrade
|
||||
version: '2.6'
|
||||
pip_to_package:
|
||||
- name: webtest
|
||||
package:
|
||||
name: python-webtest
|
||||
- name: python-memcached
|
||||
package:
|
||||
name: python-memcached
|
||||
- name: netifaces
|
||||
package:
|
||||
name: python-netifaces
|
||||
# These packages are already installed in the 'general' section...
|
||||
- name: babel
|
||||
- name: coverage
|
||||
- name: distribute
|
||||
- name: eventlet
|
||||
- name: greenlet
|
||||
- name: httplib2
|
||||
- name: iso8601
|
||||
- name: lxml
|
||||
- name: mox
|
||||
- name: nose
|
||||
- name: openstack.nose_plugin
|
||||
- name: passlib
|
||||
- name: paste
|
||||
- name: pastedeploy
|
||||
- name: pep8
|
||||
- name: pylint
|
||||
- name: routes
|
||||
- name: sphinx
|
||||
- name: sqlalchemy
|
||||
- name: sqlalchemy-migrate
|
||||
version: 0.7.2
|
||||
- name: unittest2
|
||||
- name: webob
|
||||
pips:
|
||||
- name: python-ldap
|
||||
version: "2.3.13"
|
||||
- name: pam
|
||||
version: '0.1.4'
|
||||
- name: nosexcover
|
||||
keystone-client:
|
||||
action_classes:
|
||||
install: anvil.components.keystone_client:KeyStoneClientInstaller
|
||||
running: anvil.components.keystone_client:KeyStoneClientRuntime
|
||||
uninstall: anvil.components.keystone_client:KeyStoneClientUninstaller
|
||||
packages:
|
||||
- name: python-argparse
|
||||
removable: true
|
||||
version: 1.2*
|
||||
- name: python-prettytable
|
||||
removable: true
|
||||
version: 0.5*
|
||||
pip_to_package:
|
||||
# These packages are already installed in the 'general' section...
|
||||
- name: argparse
|
||||
- name: coverage
|
||||
- name: distribute
|
||||
- name: httplib2
|
||||
- name: mock
|
||||
- name: mox
|
||||
- name: nose
|
||||
- name: nose-exclude
|
||||
- name: openstack.nose_plugin
|
||||
- name: pep8
|
||||
- name: prettytable
|
||||
- name: simplejson
|
||||
- name: sphinx
|
||||
- name: unittest2
|
||||
melange:
|
||||
action_classes:
|
||||
install: anvil.components.melange:MelangeInstaller
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
components:
|
||||
# Order matters here!
|
||||
- general
|
||||
# - db
|
||||
- db
|
||||
# - rabbit-mq
|
||||
#- keystone-client
|
||||
#- keystone
|
||||
- keystone-client
|
||||
- keystone
|
||||
- glance
|
||||
# Do this after glance is installed to override the old binary
|
||||
#- glance-client
|
||||
- glance-client
|
||||
#- nova
|
||||
#- cinder
|
||||
#- quantum-client
|
||||
|
||||
Reference in New Issue
Block a user