1) Add a new filter to schedule the instance on to host from a set
of group hosts
2) Update filter_scheduler.rst to add the new GroupAffinityFilter
filter description
Implements blueprint group-affinity-filter
DocImpact
Change-Id: Iba59764e692cd1d3bc80521ba5a4412f2bebb168
Update AggregateInstanceExtraSpecs to support scoped keys in flavor
extra_specs. Otherwise, you can't use this filter in combination with
other filters that act on un-scoped extra specs, because they may
conflict.
This recently came up on the mailing list:
http://lists.openstack.org/pipermail/openstack-dev/2013-July/011421.html
Fix bug 1198290.
DocImpact - See updates to filter_scheduler.rst.
Change-Id: I03d1d3268c800dc6982ffa4b13f8b9489428b991
run_tests.sh had an option to delete tests.sqlite, but that file is not
used anymore so the run_test options don't do anything.
Change-Id: I1abb257579da34c9dd7698543d8297268276bbc5
Fix a few rst formatting errors in the docs so
sphinx does not generate warnings.
Change-Id: I000d2ca3961678b47ead7a7885f3bc88ed7babc7
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
Implements blueprint per-aggregate-resource-ratio
* AggregateCoreFilter to support per-aggregate cpu_allocation_ratio
* Falls back to global setting if per-aggregate value not found
DocImpact
Change-Id: I9230f46e2490226f3c50d616aa173d4722095087
Implements blueprint per-aggregate-resource-ratio
* AggregateRamFilter to support per-aggregate ram_allocation_ratio
* Falls back to global setting if per-aggregate value not found
DocImpact
Change-Id: I93e069f0ac3f595d9a2a17119274c7bfbe8fca31
Second step in removing references to instance_types. Remove all
references to instance_type in nova.compute.flavors.
Also update compute devref to reflect changed name.
Partially implements bp flavor-instance-type-dedup
renamed: nova/tests/test_instance_types.py -> test_flavors.py
Change-Id: I7413bf832c61d04ab90ec8b1370d3f01372c4172
Rename tools/pip-requires to requirements.txt and tools/test-requires
to test-requirements.txt. These are standard files, and tools in the
general world are growing intelligence about them.
Change-Id: I68ece8406fb1d4e082a42db8e76e17b1aaa7e775
Fixes: bug #1179008
Using of locals() for formatting string is a nasty thing because:
1) It is not so clear as using explicit dicts
2) It could produce hidden errors during refactoring
3) Changing name of variable causes change in message
4) Creating a lot of unused variables
fixes bug 1171936
Change-Id: I293d7ebb875f65cce322d4938d1ae323f3aded8d
Part of fixing bug #995287
Syncs these two commits from oslo-incubator:
Support overriding oslo localedir too
Add a gettextutils.install() helper function
to get a new gettextutils.install() function which allows the default
localedir to be overwritten via an environment variable.
Note that gettextutils.install() must be called before any other nova
modules are imported since some modules attempt to translate strings
at import time (e.g. the 'message' attributes on classes in
nova.exception). This is broken and inefficient, but fixing it involves
adding something like spinx's l_() function and would be very invaisve.
Also, note that calling gettextutils.install() in nova.cmd.__init__
means that no program which uses a different translation domain should
ever import any of the modules under nova.cmd.
Change-Id: I86562b3a65d371673bb21f7179eecc7602bc0775
The gettext.install() function installs a builtin _() function which
translates a string in the translation domain supplied to the install()
function. If gettext.install() is called multiple times, it's the last
call to the function which wins and the last supplied translation domain
which is used e.g.
>>> import os
>>> os.environ['LANG'] = 'ja.UTF-8'
>>> import gettext
>>> gettext.install('keystone', unicode=1, localedir='/opt/stack/keystone/keystone/locale')
>>> print _('Invalid syslog facility')
無効な syslog ファシリティ
>>> gettext.install('nova', unicode=1, localedir='/opt/stack/nova/nova/locale')
>>> print _('Invalid syslog facility')
Invalid syslog facility
Usually this function is called early on in a toplevel script and we
assume that no other code will call it and override the installed _().
However, in Nova, we have taken a shortcut to avoid having to call it
explicitly from each script and instead call it from nova/__init__.py.
This shortcut would be perfectly fine if we were absolutely sure that
nova modules would never be imported from another program. It's probably
quite incorrect for a program to use nova code (indeed, if we wanted to
support this, Nova code shouldn't use the default _() function) but
nevertheless there are some corner cases where it happens. For example,
the keystoneclient auth_token middleware tries to import cfg from
nova.openstack.common and this in turn causes gettext.install('nova')
in other projects like glance or quantum.
To avoid any doubt here, let's just rip out the shortcut and always
call gettext.install() from the top-level script.
Change-Id: If4125d6bcbde63df95de129ac5c83b4a6d6f130a
A new scheduler filter that allows the creation of instances from
specific tenants in selected aggregates.
With this filter is possible to isolate tenants in a specific set
of compute nodes (aggregates).
If a host is in an aggregate that has the metadata key
"filter_tenant_id" it can only create instances from that tenant(s).
A host can be in different aggregates.
If a host doesn't belong to an aggregate with the metadata key
"filter_tenant_id" it can create instances from all tenants.
Implements: blueprint multi-tenancy-aggregates
DocImpact
Change-Id: I119c809c54da9e9dc3ac506c02203d2d4422b06e
This patch contains a number of cleanups of the nova devref,
mostly related to outdated content.
1) remove outdated todo items from network
=> these have been long covered in the manuals
2) remove outdated multinic docs and images
=> this is now better covered in:
http://docs.openstack.org/trunk/openstack-compute/admin/content
/using-multi-nics.html
3) remove outdated cloudpipe docs, confs and scripts
=> This is now better covered in:
http://docs.openstack.org/trunk/openstack-compute/admin/content/
cloudpipe-per-project-vpns.html
4) remove outdated networking docs
=> These were marked as 'legacy' more than 2 years ago
Change-Id: I9321335031b4581c603a6f31c613e1b620d468a6
This is part of the blueprint vm-ensembles. The patch introduces the
group as a scheduler hint.
The patch set adds group support for multi-VM deployment. This is achieved
as follows:
1. A new hint is added: group. This will contain the name and type for the
group. At the moment only anti-affinity is supported. In the future
we will add network proximity. It will be extended to <name>:<type>
2. In order to ensure that group policy will be honored for future VM
deployments, the group is stored as system_metadata.
3. The anti affinity is implemented by a new filter called
GroupAntiAffinityFilter.
DocImpact
Change-Id: I6ea2af5770b5ac4ff082b2a021d323ee38282205
Adds gcc, libxslt-devel (has dependency on libxml2-devel) and mysql-devel to
the list of prerequisites
Change-Id: I9c27868b30ef17d73adf8ad2e72b3d0e76fe76d1
Update the apt-get command to build mysql dependency for ubuntu.
It currenly says apt-get install build-dep python-mysqldb
which should just be apt-get build-dep python-mysqldb
Change-Id: I541f7b80802a6b7191f2fe0338965ef425e7c2fd
Add AggregateInstanceExtraSpecsFilter's replacement text in
doc/source/devref/filter_scheduler.rst
Change-Id: I5b74c5f51eb85f79f79a2d2c556d6522d97f1497
Hooks add the ability to insert custom code around operations that
declare a named hook:
e.g.
@hooks.add_hooks('create_instance')
def create_instance(....):
....
The above hook allows Hook objects to be run 'pre' and 'post' the
execution of create_instance()
Hook objects are discovered via the setuptools entry point group
'nova.hooks'.
Change-Id: I3961df12ef415085de7459438967edacc34500c2
Host state capabilities include multi-level information, like
cpu features are presented in capabilities:cpu_info:features, cpu
core number in capabilities:cpu_info:topology:cores.
Multi-level capability check maybe helpful in some situation, like
user want to make sure host support SSE3 instructions or AES-NI, or
user want to make sure the host has >4 cores for SMP instance. Current
capability filter does not support these requirements.
To support multi-level check, also add scope to capability filter,
so, now capability filter will handle no-scope extra_specs, or scope-format
as "capabilities:xxx:xxx" etc.
Related to bp hw-feature-to-vm
Change-Id: Id714f99b4babbdb328b8e47f5a270be517b528d2
Signed-off-by: Yunhong, Jiang <yunhong.jiang@intel.com>
Continuation of I0b540e54dbabd26901a7530035a38583bb521fda
* delete scheduler.simple
* modify scheduler.multi instead of delete to continue supporting
I753e87fc8979fd0b62529974f00cf11fa55b3d63
* update scheduler.multi docstring
* scheduler.rpcapi bumped to 2.3
* change default scheduler to scheduler.filter_scheduler
DocImpact
part of bp delete-nova-volume
Change-Id: Ie9d9b46742b2d92cd1e9ffe982ef658907a1d411
This removes the majority of the nova-volume code from the codebase.
It updates relevent config options to default to cinder. It updates a
number of existing tests that were depending on code that was removed.
A few things still need to be removed:
* volume/driver.py & volume/iscsi.py
These files are used by the libvirt volume driver tests. These
tests should be updated to mock the relevant calls.
* scheduler/simple.py & scheduler/multi.py
These files should no longer be necessary so they can be removed
in a subsequent patch
* exception.py cleanup
Once the above files are removed there are a number of unused
exceptions which can be removed
* database calls and database tables
The database calls have not been removed and the tables have not
been dropped. This can be done in a separate migration
* additional config options and nova.conf.sample
There may be a few extra config options that can be removed and the
conf sample can be regenerated
Implements bp delete-nova-volume
Change-Id: I0b540e54dbabd26901a7530035a38583bb521fda
In file doc/source/devref/development.environment.rst added packages
build-dep and python-mysqldb which I have had to add on ubuntu 12.04
to enable the dev environment to be setup. Without these run_tests.sh
fails with error 'mysql_config not found' when setting up the virtual env.
Change-Id: I4af775386469deecf122a9e165457f241339b20b
fixes bug 912108
Nova volumes' ATAoE is long gone. This patch merely removes the
remaining comments about it from the nova devref documentation.
Change-Id: Ic5586c0d596acae05cdee4ba9cb5ec453315b773
There are several new operators added for extra_specs that are used
in compute capability filter and aggregate filter. These are
described in document in this patch. Fixed bug 1047036.
Change-Id: Id86c6672d7bda458ecb918f1900d6f8a9526ad41
fixes bug 1024903
As noted in the bug report, without libxml2-dev and libxslt-dev
installed on ubuntu 12.04, the virtualenv creation will fail.
This fix simply adds the packages to the first
"Install the prerequisite packages." line
Change-Id: I588ce14f63fa75d54405562f83d202d05c8a05c6
Commit d39137fa added functionality to the ComputeFilter to filter on
architecture, hypervisor_type, and vm_mode. The existing ArchFilter
already filtered on architecture. This patch merges the ComputeFilter
functionality introduced in d39137fa with the ArchFilter to create the
ImagePropertiesFilter. The ImagePropertiesFilter uses image properties
specified in the request_spec to filter hosts.
This patch also adds the ImagePropertiesFilter to the list of default
filters specified by the scheduler_default_filters FLAG.
Fixes LP Bug #1037339
DocImpact
Change-Id: Ifa6fccf2db266b0fe3457d58fc81fdb50ffcbc0f
The FilterScheduler doc was overlooked when new filters were added
or existing filters were changed. This change updates the doc with
information skimmed from the individual filters.
nova.conf.sample is updated as well with the current list of default
filters.
Change-Id: I48af75c472195ded89b34db76a22947614ffb99b
We already allow the stop API to be called when the VM is in Error
state. This is to update the diagram in devref doc.
Change-Id: I792028dc6f851f66d42b852c27505c479eab4df7
Update devref to explain the new definition of host aggregates.
part of blueprint general-host-aggregates
Change-Id: I5d46c4c4253a4d9e74a52192d1e6244843d11711