diff --git a/README.md b/README.md index 4642b976..04948b67 100644 --- a/README.md +++ b/README.md @@ -95,92 +95,6 @@ e.g. juju add-relation glance ceilometer-agent ... -Deploying from source ---------------------- - -The minimum openstack-origin-git config required to deploy from source is: - - openstack-origin-git: include-file://glance-juno.yaml - - glance-juno.yaml - repositories: - - {name: requirements, - repository: 'git://github.com/openstack/requirements', - branch: stable/juno} - - {name: glance, - repository: 'git://github.com/openstack/glance', - branch: stable/juno} - -Note that there are only two 'name' values the charm knows about: 'requirements' -and 'glance'. These repositories must correspond to these 'name' values. -Additionally, the requirements repository must be specified first and the -glance repository must be specified last. All other repostories are installed -in the order in which they are specified. - -The following is a full list of current tip repos (may not be up-to-date): - - openstack-origin-git: include-file://glance-master.yaml - - glance-master.yaml - repositories: - - {name: requirements, - repository: 'git://github.com/openstack/requirements', - branch: master} - - {name: oslo-concurrency, - repository: 'git://github.com/openstack/oslo.concurrency', - branch: master} - - {name: oslo-config, - repository: 'git://github.com/openstack/oslo.config', - branch: master} - - {name: oslo-db, - repository: 'git://github.com/openstack/oslo.db', - branch: master} - - {name: oslo-i18n, - repository: 'git://github.com/openstack/oslo.i18n', - branch: master} - - {name: oslo-messaging, - repository: 'git://github.com/openstack/oslo.messaging', - branch: master} - - {name: oslo-serialization, - repository: 'git://github.com/openstack/oslo.serialization', - branch: master} - - {name: oslo-utils, - repository: 'git://github.com/openstack/oslo.utils', - branch: master} - - {name: oslo-vmware, - repository: 'git://github.com/openstack/oslo.vmware', - branch: master} - - {name: osprofiler, - repository: 'git://github.com/stackforge/osprofiler', - branch: master} - - {name: pbr, - repository: 'git://github.com/openstack-dev/pbr', - branch: master} - - {name: python-keystoneclient, - repository: 'git://github.com/openstack/python-keystoneclient', - branch: master} - - {name: python-swiftclient, - repository: 'git://github.com/openstack/python-swiftclient', - branch: master} - - {name: sqlalchemy-migrate, - repository: 'git://github.com/stackforge/sqlalchemy-migrate', - branch: master} - - {name: stevedore, - repository: 'git://github.com/openstack/stevedore', - branch: master} - - {name: wsme, - repository: 'git://github.com/stackforge/wsme', - branch: master} - - {name: keystonemiddleware, - repository: 'git://github.com/openstack/keystonemiddleware', - branch: master} - - {name: glance-store, - repository: 'git://github.com/openstack/glance_store', - branch: master} - - {name: glance, - repository: 'git://github.com/openstack/glance', - branch: master} - Network Space support --------------------- diff --git a/charm-helpers-hooks.yaml b/charm-helpers-hooks.yaml index 6be8f241..b9cd1ccc 100644 --- a/charm-helpers-hooks.yaml +++ b/charm-helpers-hooks.yaml @@ -12,4 +12,4 @@ include: - contrib.python.packages - contrib.charmsupport - core.kernel - - contrib.hardening|inc=* \ No newline at end of file + - contrib.hardening|inc=* diff --git a/charmhelpers/contrib/openstack/utils.py b/charmhelpers/contrib/openstack/utils.py index 53e58424..8da5c5ed 100644 --- a/charmhelpers/contrib/openstack/utils.py +++ b/charmhelpers/contrib/openstack/utils.py @@ -725,14 +725,15 @@ def git_install_requested(): requirements_dir = None -def git_default_repos(projects): +def git_default_repos(projects_yaml): """ Returns default repos if a default openstack-origin-git value is specified. """ service = service_name() + core_project = service for default, branch in GIT_DEFAULT_BRANCHES.iteritems(): - if projects == default: + if projects_yaml == default: # add the requirements repo first repo = { @@ -742,34 +743,41 @@ def git_default_repos(projects): } repos = [repo] - # neutron and nova charms require some additional repos - if service == 'neutron': - for svc in ['neutron-fwaas', 'neutron-lbaas', 'neutron-vpnaas']: + # neutron-* and nova-* charms require some additional repos + if service in ['neutron-api', 'neutron-gateway', + 'neutron-openvswitch']: + core_project = 'neutron' + for project in ['neutron-fwaas', 'neutron-lbaas', + 'neutron-vpnaas']: repo = { - 'name': svc, - 'repository': GIT_DEFAULT_REPOS[svc], + 'name': project, + 'repository': GIT_DEFAULT_REPOS[project], 'branch': branch, } repos.append(repo) - elif service == 'nova': + + elif service in ['nova-cloud-controller', 'nova-compute']: + core_project = 'nova' repo = { 'name': 'neutron', 'repository': GIT_DEFAULT_REPOS['neutron'], 'branch': branch, } repos.append(repo) + elif service == 'openstack-dashboard': + core_project = 'horizon' - # finally add the current service's repo + # finally add the current service's core project repo repo = { - 'name': service, - 'repository': GIT_DEFAULT_REPOS[service], + 'name': core_project, + 'repository': GIT_DEFAULT_REPOS[core_project], 'branch': branch, } repos.append(repo) return yaml.dump(dict(repositories=repos)) - return projects + return projects_yaml def _git_yaml_load(projects_yaml): diff --git a/config.yaml b/config.yaml index df4a9c0a..324890de 100644 --- a/config.yaml +++ b/config.yaml @@ -45,14 +45,29 @@ options: default: type: string description: | - Specifies a YAML-formatted dictionary listing the git - repositories and branches from which to install OpenStack and - its dependencies. + Specifies a default OpenStack release name, or a YAML dictionary + listing the git repositories to install from. + + The default Openstack release name may be one of the following, where + the corresponding OpenStack github branch will be used: + * icehouse + * kilo + * liberty + * mitaka + * master + + The YAML must minimally include requirements and glance repositories, + and may also include repositories for other dependencies: + repositories: + - {name: requirements, + repository: 'git://github.com/openstack/requirements', + branch: master} + - {name: glance, + repository: 'git://github.com/openstack/glance', + branch: master} Note that the installed config files will be determined based on the OpenStack release of the openstack-origin option. - - For more details see README.md. database-user: default: glance type: string diff --git a/hooks/glance_utils.py b/hooks/glance_utils.py index 796da55f..d0b53403 100644 --- a/hooks/glance_utils.py +++ b/hooks/glance_utils.py @@ -54,6 +54,7 @@ from charmhelpers.contrib.openstack.alternatives import install_alternative from charmhelpers.contrib.openstack.utils import ( get_os_codename_install_source, git_clone_and_install, + git_default_repos, git_generate_systemd_init_files, git_install_requested, git_pip_venv_dir, @@ -334,6 +335,7 @@ def git_install(projects_yaml): """Perform setup, and install git repos specified in yaml parameter.""" if git_install_requested(): git_pre_install() + projects_yaml = git_default_repos(projects_yaml) git_clone_and_install(projects_yaml, core_project='glance') git_post_install(projects_yaml)