Project: nova
Series: diablo
Blueprint: add-options-network-create-os-apis
Design: Pending Approval Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/add-options-network-create-os-apis
Spec URL: http://wiki.openstack.org/add-options-network-create-os-apis
Our goal is to add optional parameter to the Create server API to
achieve following objectives:- 1) Specify number and order of
networks to the create server API. In the current implementation
every instance you launch for a project having 3 networks assigned to
it will always have 3 vnics for every instance. In this case it is not
possible to have one instance with 2 vnics ,another with 1 vnic and so
on. This is not flexible enough and the network resources are not used
effectively. So there should be some provision given to the users to
specify the networks from the project at the time of server creation
process. 2) Support fixed IP address reservation. When you launch a
server, you can specify the fixed IP address you want to be assigned
to the vnic from a particular network. This feature will be supported
to all of the network models.
Project: nova
Series: diablo
Blueprint: add-remove-securitygroup-instance
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/add-remove-securitygroup-instance
Spec URL: None
Add OS APIs as an extension to associate/disassociate security group
to/from instances.
Project: horizon
Series: diablo
Blueprint: admin-instancetypes
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/admin-instancetypes
Spec URL: None
Django-nova now allows modifying instance types (flavors) directly
through the admin interface.
Project: nova
Series: diablo
Blueprint: admin-server-actions
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/admin-server-actions
Spec URL: http://wiki.openstack.org/NovaAdminServerAPI
Certain actions to be taken on servers are reserved for administrator
access, such as suspending them. This blueprint defines those actions.
Project: nova
Series: diablo
Blueprint: agent-update
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/agent-update
Spec URL: http://wiki.openstack.org/AgentUpdate
The agent should be updated on a newly created instance before it is
used. This will ensure that it is running the latest and most stable
code.
Project: glance
Series: diablo
Blueprint: api-limited-results
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/api-limited-results
Spec URL: None
Support the limit and paging of results to GET /images and GET
/images/detail
Project: glance
Series: diablo
Blueprint: api-results-filtering
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/api-results-filtering
Spec URL: http://wiki.openstack.org/GlanceImageFilter
Allow callers to pass in query args to filter results of the GET
/images and GET /images/detail calls. Allow the following query args:
disk_format, appliance_format, name, status, size
Project: glance
Series: diablo
Blueprint: api-results-ordering
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/api-results-ordering
Spec URL: None
The collections returned by calls to /images and /images/detail should
be able to be ordered by a subset of the image model attributes.
Ascending and descending sort directions should both be supported.
Project: glance
Series: diablo
Blueprint: api-versioning
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/api-versioning
Spec URL: http://etherpad.openstack.org/GlanceApi
Support versioning of the Glance API
Project: keystone
Series: diablo
Blueprint: auth-using-global-token
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/keystone/+spec/auth-using-global-token
Spec URL: None
Current Working 1. User does an authenticate call with his set of
credentials without specifying a tenant id. 2. User gets a response
that includes Token (ie: Token not tied to any tenant.I am calling
this Unscoped Token), service catalog(The catalog would just have
keystone listed as a service=> needs confirmation from Ziad.) and the
list of roles (roles not tied to any specific tenant). 3. User uses
the token and makes the get tenants call. 4. User gets a response that
lists all the tenants for which a role relationship exists between the
user and a tenant. 5. User again does an authenticate call using his
credentials and also specifies any one of the tenants. 1=> User has to
use his credentials again. 6. User gets the response that includes a
service catalog that is tenant specific and a token that a user could
use against the mentioned endpoints. Proposed Working 1. User does an
authenticate call with his set of credentials without specifying a
tenant id. 2. User gets a response that includes Token (ie: Token not
tied to any tenant.I am calling this Unscoped Token), service
catalog(The catalog would just have keystone listed as a service) and
the list of roles (roles not tied to any specific tenant). 3. User
uses the token and makes the get tenants call. 4. User gets a response
that lists all the tenants for which a role relationship exists
between the user and a tenant. 5. User again does an authenticate call
using his unscoped token and also specifies any one of the tenants. =>
User doesn't have to use his credentials again. 6. User gets the
response that includes a service catalog that is tenant specific and a
token that a user could use against the mentioned endpoints.
Project: glance
Series: diablo
Blueprint: authentication
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/authentication
Spec URL: None
Support Keystone Authentication layer, via in-process middleware and
remote auth middleware.
Project: nova
Series: diablo
Blueprint: backup-with-rotate
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/backup-with-rotate
Spec URL: None
A common usage of image snapshots is to take a backup; it would be
useful to combine this with a rotation function that would
automatically delete the oldest images of a server, retaining the N
most recent. So, this would be a very simple extension that would
snapshot a particular server, then remove the oldest snapshots of the
same server ID, keeping the N (user-specified) most recent.
Project: keystone
Series: diablo
Blueprint: backward-compatibility
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/keystone/+spec/backward-compatibility
Spec URL: http://docs.rackspacecloud.com/files/api/v1/cfdevguide_d5/content/ch03s01.html
Support existing client functionality including GET /v1.0 to get a
token and returning URLs to clients so they know where to go to get
their data. We're proposing the following as an approach: 1. Auth
1.0/1.1 compatible calls will be implemented as a WSGI component on
Keystone 2. The BaseURLs will be translated to X-Storage-URL (and
other 1.0 compatible headers) using settings in a conf file for the
WSGI component. 3. Authorization (token generation, etc...) will be
performed by the core 2.0 API and routed to it by the WSGI layer (i.e.
no duplication of token generation code within WSGI component) 4. Auth
1.0 and 1.1 compatibility will be released for the public API only to
support existing tooling. 5. We will rename folders in Keystone to the
following: auth_protocols will changed to `middleware` and will host
middleware for use with other services. backends will be created for
back-end components (sqlite, ldap, etc...) frontends will be added and
will host frontends for Keystone (including the Auth 1.0/1.1 WSGI
component)
Project: nova
Series: diablo
Blueprint: boot-from-volume
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/boot-from-volume
Spec URL: http://wiki.openstack.org/BootFromVolume
BootFromVolume VMs should be able to boot from a volume. This
requires the volume API in the OS API.
Project: glance
Series: diablo
Blueprint: changes-since-filter
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/changes-since-filter
Spec URL: None
Allow a special filter called "changes-since" that will allow a client
like an RSS reader to supply the last time the same GET request was
made. Have the changes-since filter introduce a WHERE updated_at >
$changes_since_value.
Project: nova
Series: diablo
Blueprint: clone-volume
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/clone-volume
Spec URL: http://wiki.openstack.org/CloneVolume
With this feature, we can create lots of same volumes from one golden
snapshot, which is useful for hosting companies. This blueprint adds
support for "--snapshot" option of euca-create-volume, and enable us
to create a new volume from a existing snapshot volume.
Project: nova
Series: diablo
Blueprint: compute-host-system-architecture-awareness
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/compute-host-system-architecture-awareness
Spec URL: None
Currently an assumption is made that the computer host(s) can run the
image architecture. This works well if the compute host can run the
architecture, such as the host being amd64 - which can run i386
additionally ... Or the host being i386 and all the images
coincidently being the same. As other architectures become more
important, ARM and PowerPC for example. There should be a notion of
compute node capabilities. This blueprint tries to address the
first pass of supporting i386 and amd64 capabilities, allowing the
scheduler to select the best node for the instance based on
architecture.
Project: nova
Series: diablo
Blueprint: configuration-drive
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/configuration-drive
Spec URL: http://etherpad.openstack.org/clouddrive
This proposal is to configure each VM with an additional small disk
image that is formatted with a ISO9660, FAT32 or some other easily
readable file system that can be mounted by all or most modern
operating systems. The disk would be mountable by the hypervisor to
write configuration data and files that the guest could then read or
execute. Initially, we would write metadata to to the drive that the
guest could use to configure itself or provide a reference point in
case of misconfiguration. The drive could also be the landing point
for files that are injected to the instance at boot time.
Project: horizon
Series: diablo
Blueprint: dash-security-groups
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/dash-security-groups
Spec URL: None
For most real-world deployments, it will be necessary to allow users
the ability to manage security groups. This is especially true with
the current nova implementation, which denies all instance traffic by
default. This blueprint proposes adding the ability to create, list,
modify, and delete security groups to the dashboard. It also proposes
adding the ability to display security groups for instances, as well
as the ability to launch instances in security groups.
Project: glance
Series: diablo
Blueprint: delayed-delete
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/delayed-delete
Spec URL: None
Allow delaying the actual deletion of an image. If glance-api.conf
has delayed_delete set to False or not set at all (it defaults to
False) immediatly delete the image. If delayed_delete is set to True
glance-api sets the status to pending_delete but does not call the
backend delete. From the user's point of view it is actually deleted,
and future calls will 404. A new daemon glance-scrubber is introduced
which looks for pending_delete images that are older than a
configurable interval and will actually delete from the backend the
images.
Project: glance
Series: diablo
Blueprint: delete-image
Design: Obsolete Lifecycle: Complete Impl: Unknown
Link: https://blueprints.launchpad.net/glance/+spec/delete-image
Spec URL: None
I'm told that Glance does not currently have the ability to delete an
image. While trivial, this needs to be supported, and it needs to have
a REST API (DELETE to /images/{id}) to support it. Use cases: (1)
Service provider needs to automatically delete old images after a
time. (2) User needs to delete a snapshot/backup image when no longer
needed. (3) Developer needs to remove a bad image from the repository.
Project: nova
Series: diablo
Blueprint: diablo-generic-messaging
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/diablo-generic-messaging
Spec URL: http://wiki.openstack.org/GenericMessagingSystem
Implement a generic messaging driver for Nova that allows any
messaging system to be used in place of RabbitMQ. Rabbit can still be
used if desired. See spec URL for more details.
Project: nova
Series: diablo
Blueprint: different-schedulers-per-call
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/different-schedulers-per-call
Spec URL: None
The Scheduler code naively assumes that there is one scheduler that
will work for both run_instances and create_volume. This won't work
in a lot of situations. We should allow for specifying a different
scheduler for each call that needs to be scheduled.
Project: nova
Series: diablo
Blueprint: disk-scrubbing
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/disk-scrubbing
Spec URL: http://wiki.openstack.org/DiskScrubbing
Data on disk space associated with a deleted server will be explicitly
scrubbed (overwritten or deleted) before the disk space is allocated
to a new customer.
Project: nova
Series: diablo
Blueprint: distributed-scheduler
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/distributed-scheduler
Spec URL: http://wiki.openstack.org/DistributedScheduler
The current default scheduler and data model (simple abstraction with
a SQLAlchemy backend) works fine for small to medium sized local
installations, but we need to discuss plans for large installations,
possibly spanning multiple data centers. See the specification URL for
more details and discussion.
Project: nova
Series: diablo
Blueprint: distros-net-injection
Design: Obsolete Lifecycle: Complete Impl: Not started
Link: https://blueprints.launchpad.net/nova/+spec/distros-net-injection
Spec URL: None
Support for net and key injection for different Linux distros. We need
different template and file path for each distro. And need ability to
determine distro.
Project: nova
Series: diablo
Blueprint: error-codes
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/error-codes
Spec URL: http://wiki.openstack.org/StandardizedErrorCodes
Top level exceptions should include a standardized set of error codes
in addition to the normal exception data (stack trace, exception type,
etc.) This is to ease customer support by permitting the customer to
state "I'm getting a X1234 error when I try to start my server". We
need to grab all the Exxx codes from Slicehost as a starting place.
We need to catch all top-level exceptions and write them to a rabbit
queue with these new codes (and the logger).
Project: horizon
Series: diablo
Blueprint: expand-openstackapi-support
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/expand-openstackapi-support
Spec URL: None
OpenstackAPI supports some functionality that didn't exist in EC2, and
we should support those things.
Project: nova
Series: diablo
Blueprint: explicit-vm-mode
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/explicit-vm-mode
Spec URL: None
Currently for Xen, there is a complex process of deciding if an
instance should be run in PV or HVM mode. In practice, setting the
os_type to 'windows' is commonly used, even if the OS being run is not
Windows.
Project: horizon
Series: diablo
Blueprint: extensibility
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/extensibility
Spec URL: None
As openstack grows, we will have additional modules that need control:
volumes, lbaas, dns, queue, ... Additionally extensions to core
components can require additional UI. Just as nova allows extensions,
we should allow people to add new "top" or "side" components
Project: nova
Series: diablo
Blueprint: finalize-nova-auth
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/finalize-nova-auth
Spec URL: None
This is a placeholder spec for finalizing the integration between nova
and the auth service. For this to be completed we need: 1) No more
project/role/user info in nova 2) Replication of existing authz
features in in either keystone or separate authz service 3) Migration
plan for old data into keystone/authz
Project: horizon
Series: diablo
Blueprint: floating-ips-interface
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/floating-ips-interface
Spec URL: None
Currently the Openstack Dashboard does not provide an interface to
associate floating IPs with tenants and instances. This blueprint
proposes adding an interface for users to manage floating IPs in a
manner similar to how Amazon EC2's interface works. In addition this
blueprint proposes adding an interface for the admin syspanel which
will give system administrators an idea of how floating IPs are being
used throughout the network. This means displaying a list of floating
IPs and providing detail on their relationships to tenants and
instances. The API for floating ips has already been implemented
here: http://wiki.openstack.org/os_api_floating_ip Some things that
may need to be addressed in the interface are things like: -
Quotas
Project: glance
Series: diablo
Blueprint: glance-cli-filters
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/glance-cli-filters
Spec URL: None
Have bin/glance support new results filters and ordering. Currently,
only glance.client supports these. Would be great to have the glance
CLI tool also support them. Remember to updated the docs, too!
Project: glance
Series: diablo
Blueprint: glance-coverage
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/glance-coverage
Spec URL: None
Implement the coverage reporting for Glance as it is in Burrow. Get
unit test coverage up above 90%.
Project: glance
Series: diablo
Blueprint: glance-dashboard
Design: Obsolete Lifecycle: Complete Impl: Unknown
Link: https://blueprints.launchpad.net/glance/+spec/glance-dashboard
Spec URL: None
A web interface for the Glance project. The console will utilize the
Glance API to present and query information about the registry and
image store.
Project: glance
Series: diablo
Blueprint: glance-notifications
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/glance-notifications
Spec URL: https://blueprints.launchpad.net/nova/+spec/notification-system
Rackspace needs the ability to maintain event notifications (and add
to them) for parity with our existing features. Such a notification
system has been implemented for Nova, and the same thing should be
implemented for Glance. I'm merely linking to the existing Nova
blueprint since the goal is to have them feature identical. The REST
API endpoint is /images/{id}/events (cf. /servers/{id}/events)
Project: nova
Series: diablo
Blueprint: ha-flatdhcp
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/ha-flatdhcp
Spec URL: None
Our current approach for HA networking is hot failover of the network-
host because everything uses nova-network as a gateway. While this
should ultimately be fixed by the nova-network additions, there is the
possibility of a small set of changes that would give us a lot more
redundancy. This involves a new network manager that is similar to
FlatDHCP with two additional features. 1. Instead of nova-network
functioning as the gateway for all of the hosts, we will use a switch
as the gateway. This means either delegating dhcp requests from the
switch to nova-network or setting an external gateway in the config
options for dnsmasq. Forwarding rules will have to be manually
created on the gateway to allow metadata to work 2. Instead of
natting on nova-network, natting rules for floating ips will be
created on the compute hosts themselves. These changes will mean that
losing nova-network will not affect networking for running instances.
Project: glance
Series: diablo
Blueprint: i18n
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/i18n
Spec URL: None
Implement i18n support for Glance
Project: keystone
Series: diablo
Blueprint: identity-api
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/keystone/+spec/identity-api
Spec URL: https://github.com/openstack/keystone/blob/master/keystone/content/admin/identityadminguide.pdf?raw=true
Spec for identity API. This continues support for the Rackspace Auth
protocol version (1.x) and moves it to the OpenStack namespace at
version 2.0.
Project: nova
Series: diablo
Blueprint: implement-network-api
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/implement-network-api
Spec URL: http://wiki.openstack.org/QuantumNetworkManager
Create a new instance of NetworkManager that will work with the rest
of nova using the existing interface but make calls to Quantum instead
of manipulating the bridge field in the Nova DB networks table
(integration with Melange is planned, but is only a stretch goal for
Diablo-4).
Project: nova
Series: diablo
Blueprint: implement-volume-api
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/implement-volume-api
Spec URL: None
The volume service must implement a REST API. This will allow
openstack API clients to create and destroy volumes and ultimately
allow the existing volume code to be replaced by a more robust service
in the future.
Project: horizon
Series: diablo
Blueprint: improve-template
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/improve-template
Spec URL: None
Improve the look and feel of the site and update the base templates
and CSS to be more modern.
Project: horizon
Series: diablo
Blueprint: improve-unit-tests
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/improve-unit-tests
Spec URL: None
Unit test coverage improved.
Project: nova
Series: diablo
Blueprint: instance-migration
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/instance-migration
Spec URL: http://wiki.openstack.org/InstanceMigration
Develop a feature to allow cloud administrators to perform maintenance
tasks of physical servers. This feature will allow admins to shutdown
an instance and move it to a new host node.
Project: horizon
Series: diablo
Blueprint: instance-snapshots-interface
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/instance-snapshots-interface
Spec URL: None
Many cloud users require the ability to snapshot instance states for
both application management and backup purposes. This capability
presently exists in the compute.api, so it is straightforward to adapt
this functionality for the dashboard. This blueprint proposes adding
the ability to create snapshots of any running instance through the
dashboard. The resulting images would be visible in a special
dashboard view, where they could subsequently be deleted, launched,
and (possibly) edited.
Project: nova
Series: diablo
Blueprint: integrate-network-services
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/integrate-network-services
Spec URL: None
Integration of Melange, Donabe & Quantum services into Nova.
Project: nova
Series: diablo
Blueprint: integrate-nova-authn
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/integrate-nova-authn
Spec URL: http://wiki.openstack.org/openstack-authn
Keystone provides a common auth framework for all of the services.
This blueprint is for the initial integration of the keystone service
(described below) with nova. The first version will be a very non-
invasive approach with a couple of middlewares. The purpose of this
blueprint is to define a standard for authentication in OpenStack that
enables services to support multiple authentication protocols in a
pluggable manner. By providing support for authentication via
pluggable authentication components, this standard allows OpenStack
services to be integrated easily into existing deployment
environments. It also provides a path by which to implement support
for emerging authentication standards such as OpenID. The standard is
not an authentication system onto itself, but rather a protocol by
which authentication systems may be integrated with OpenStack
services.
Project: glance
Series: diablo
Blueprint: iso-boot
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/iso-boot
Spec URL: https://blueprints.launchpad.net/nova/+spec/iso-boot
Introduce 'iso' DISK_FORMAT type. This provides metadata that signals
to Nova compute that the image should be attached with a CDROM block
device rather than as a read/write harddisk.
Project: nova
Series: diablo
Blueprint: key-management
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/key-management
Spec URL: None
The Openstack API needs functionality to manage key-pairs equivalent
to the following in the EC2 API: boto.connect_ec2 -
get_all_key_pairs - create_key_pair - delete_key_pair
Project: horizon
Series: diablo
Blueprint: keystone-support
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/keystone-support
Spec URL: None
Added support for keystone as an authentication backend. This allows
full integration with nova, swift, and other OpenStack services that
share this common authentication method.
Project: nova
Series: diablo
Blueprint: kvm-block-migration
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/kvm-block-migration
Spec URL: http://etherpad.openstack.org/kvm-block-migration
Support KVM block migration feature as a part of live migration
support.
Project: nova
Series: diablo
Blueprint: kvm-pause-suspend
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/kvm-pause-suspend
Spec URL: http://wiki.openstack.org/Kvm-Pause-Suspend
Enabling KVM to pausing instance and suspending instance. The
difference between "pause" and "suspend" is that "Suspend stores the
state of VM on disk while pause stores it in memory (RAM)". In other
word, suspend is similar to "hybernation".
Project: nova
Series: diablo
Blueprint: ldapdriver-add-attributes
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/ldapdriver-add-attributes
Spec URL: None
Currently the ldap driver acts as the owner of a director server. In
many deployments this may not be the case. The ldap driver should be
configurable to add objectclasses and attributes instead of adding
users. Ideally, when the ldap driver sees a user exists, it should
check to see if the objectclass and attribute exist. If the neither
exist, it should add them, if the objectclass exists, and the
attributes do not, it should add the attributes. The use case behind
this is a directory server that is already populated with users, and
is managed by other means. The directory server admin can add ACIs to
allow the update of objectclasses and the nova attributes, or just to
the nova attributes.
Project: nova
Series: diablo
Blueprint: libvirt-refactoring
Design: Obsolete Lifecycle: Complete Impl: Deferred
Link: https://blueprints.launchpad.net/nova/+spec/libvirt-refactoring
Spec URL: http://wiki.openstack.org/LibvirtAPI
The current method for connecting to a libvirt-based hypervisor,
through nova/virt/libvirt_conn.py, is functional but is lacking
support for a number of great libvirt features. Some of the items we
are missing are optimizations and others are simply new features that
we could provide to the world if we take a step back and look at the
design of the LibvirtConnection class. I'd love feedback publicly
and/or privately for the attached wiki page outlining potential
improvements for connecting to libvirt.
Project: nova
Series: diablo
Blueprint: linuxnet-vif-plugging
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/linuxnet-vif-plugging
Spec URL: http://wiki.openstack.org/LinuxnetVifPlugging
In Diablo-3 we introduced "vif-plugging" to the hypervisor "virt"
layer, allowing flexibility in how vNICs are attached to the network
switch. This allowed non-linux bridge switch technologies (e.g.,
Open vSwitch, 802.1qbh) to be used with nova. This blueprint adds
that same capability to the Linuxnet, allowing the L3/DHCP
capabilities to be "plugged" into Quantum networks.
Project: glance
Series: diablo
Blueprint: local-image-cache
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/local-image-cache
Spec URL: None
Implement simple local filesystem cache with LRU flush
Project: horizon
Series: diablo
Blueprint: localization
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/localization
Spec URL: None
Add i18n localization support to the openstack-dashboard so that it
can be translated into multiple languages.
Project: nova
Series: diablo
Blueprint: network-refactoring
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/network-refactoring
Spec URL: http://wiki.openstack.org/network-refactoring
Let’s have a session to specifically discuss the refactoring work
needed in nova in order to support other networking models and
services. The main discussion of this session will discuss the code
already implemented in lp:ntt-pf-lab/nova/network-service and how to
continue to make the networking code able to support networking as a
first class service. This discussion is oriented on the actual code,
and less on the vision (which will be discussed in the naas session)
Project: keystone
Series: diablo
Blueprint: no-artificial-primary-key
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/keystone/+spec/no-artificial-primary-key
Spec URL: None
According to Keystone Developer Guide, artificial primary keys must be
given in queries while adding a role to user, endpoint to tenant, and
so on. For example, to add a role to user, we must provide something
like: { "roleRef":{ "id":1, "roleId":"admin", "tenantId":"one" } "id"
is an artificial primary key. In fact, it is autogenerated. So,
documentation should be updated.
Project: nova
Series: diablo
Blueprint: notification
Design: Discussion Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/notification
Spec URL: http://wiki.openstack.org/notification
Support notification service that used by Watcher API (see also:
Blueprint link to http://wiki.openstack.org/watch )
Project: nova
Series: diablo
Blueprint: notification-system
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/notification-system
Spec URL: http://wiki.openstack.org/NotificationSystem
Openstack desperately needs a system to notify interested parties of
events relevant to them. More specifically, the ability to notify
external consumers of events like instance builds, deletions and
migrations are useful for monitoring and billing applications. We feel
that a unified and defined notification system will discourage the
inevitable requests for one-off implementations, and also will provide
the opportunity to implement a clean, scalable solution. As such,
we're proposing Openstack uses PubSubHubBub, which uses basic REST and
Atom/RSS feeds to notify subscribers of information they care about.
It sees substantial use in large production websites, and we feel that
it would be appropriate for us.
Project: nova
Series: diablo
Blueprint: nova-api-serialization
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/nova-api-serialization
Spec URL: http://wiki.openstack.org/Nova/ApiSerializationSpec
The current approach to serialization and deserialization in Nova
limits the ability of developers to make changes to requests and
responses. This blueprint proposes a new, more modular approach which
will make development easier when dealing with serialization and
deserialization concerns.
Project: nova
Series: diablo
Blueprint: nova-instance-referencing
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/nova-instance-referencing
Spec URL: http://wiki.openstack.org/NovaInstanceReferencing
With the addition of zones to OpenStack, we now have a complication in
addressing instances, since currently instances are referenced by
their Primary Key, which is an auto-incremented integer. This is part
of the current Rackspace API. Adding zones, which each have their own
database, means that there is no guarantee of uniqueness among these
PKs. We need to discuss alternatives, weighing how well they work, and
how they would affect both current code as well as the APIs.
Project: neutron
Series: diablo
Blueprint: nova-linuxnet-vifplugging
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/neutron/+spec/nova-linuxnet-vifplugging
Spec URL: None
This is a pointer in the Quantum project to the Nova blueprint:
https://blueprints.launchpad.net/nova/+spec/linuxnet-vif-plugging
Project: nova
Series: diablo
Blueprint: nova-multi-nic
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/nova-multi-nic
Spec URL: None
Once the hypervisors xenapi/libvirt are prepared to handle multiple
nics and prepared to receive network_info from compute instead of
looking it up themselves, the nova multi-nic feature can be put in
place. Primary changes include: 1) removing mac_address column from
the instances table and creating a mac_addresses table. This is for
storing which instances own which mac addresses as well as which
network each mac is for. 2) generation of mac addresses is moved to
the network manager 3) allocation of mac addresses is handled by the
network manager 4) network manager provides functionality for
generating/storing mac address and IPs, and returning this information
5) compute calls allocation functionality, receives back a list of
(network object, IP/mac_addr info dict) tuples 6) compute passes this
list to the virt driver as a part of the spawn process. 7) assuming
the virt layers are already set up to handle receiving network info
and being able to handle multiple networks, mac_addresses and IPs as a
apart of the xs_multi_nic and libvirt_multi_nic blueprints
Project: neutron
Series: diablo
Blueprint: nova-quantum-manager
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/neutron/+spec/nova-quantum-manager
Spec URL: None
This is a pointer in the Quantum project to the Nova blueprint:
https://blueprints.launchpad.net/nova/+spec/implement-network-api
Project: nova
Series: diablo
Blueprint: nova-quantum-vifid
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/nova-quantum-vifid
Spec URL: http://wiki.openstack.org/NovaVifID
Quantum requires that a service like nova expose a "interface-id" via
the API that a tenant or an orchestrator can use to plug an interface
into a quantum network. This work will likely require an API
extension to expose this value, changes to the database to store this
ID, and passing this value to the virt driver so that the vif-plugging
there can use it.
Project: neutron
Series: diablo
Blueprint: nova-quantum-vifid
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/neutron/+spec/nova-quantum-vifid
Spec URL: None
This is a pointer in the Quantum project to the Nova blueprint:
https://blueprints.launchpad.net/nova/+spec/nova-quantum-vifid
Project: nova
Series: diablo
Blueprint: nova-quota-schema
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/nova-quota-schema
Spec URL: http://wiki.openstack.org/Nova/QuotaKeyValueSpec
Currently, the quota table in the nova db has a column for every type
of quota we manage. Thus, each time we add a new type of quota to the
system, we have to make a schema change. I propose that we switch to a
key-value approach for quotas so that adding new types of quotas does
not require a schema change.
Project: nova
Series: diablo
Blueprint: nova-virtual-storage-array
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/nova-virtual-storage-array
Spec URL: http://wiki.openstack.org/NovaVsaSpec
In order to emulate the current IT environments, and to provide better
capabilities than Amazon's EBS, we would like to add to nova the
capability to create virtual storage arrays. VIrtual Storage Arrays
are block storage devices, that have the same performance, reliability
and features than current enterprise SAN arrays like EMC Clariion or
HP 3PAR. With this feature Users of the cloud will be able to buy, on
demand, virtual storage arrays and connect them to their virtual
servers as they do in the physical environment. Within the Virtual
Storage Array (VSA), storage administrators will be able to choose
things like type of drives (SSDs, SAS, SATA), type of interface
(iSCSI, AoE, FCoE), cache size, how many virtual controllers, policies
around snapshots and remote replications and RAID level. With this
feature, cloud providers implementing OpenStack will be able to offer
to their clients, enterprise class storage systems at the low cost of
simple disk drives attached to servers. Users of the cloud, will be
able to choose particular QoS for the storage they use (i.e use only
SAS drives or only SATA). The proposal is to add VSA as an addition
to OpenStack without the need to change the volume APIs.
Project: nova
Series: diablo
Blueprint: openstack-api-backup-schedule
Design: Obsolete Lifecycle: Complete Impl: Unknown
Link: https://blueprints.launchpad.net/nova/+spec/openstack-api-backup-schedule
Spec URL: None
Once backups are supported in Nova, add support to schedule them
through the API. See http://docs.rackspacecloud.com/servers/api/cs-
bindguide-latest.pdf page 48 - 52 for the Rackspace API methods.
Project: nova
Series: diablo
Blueprint: openstack-api-floating-ips
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/openstack-api-floating-ips
Spec URL: http://wiki.openstack.org/os_api_floating_ip
During the bexar summit, we determined floating IPs (currently in nova
ec2 api) and shared IP groups (coming as part of openstack/rackspace
API requirements) are different things. In order to ease migration for
folks already using the ec2 API, we need to add equivalent floating
API functionality into the OpenStack API. This should simply be a
matter of adding new API methods into OpenStack and calling the same
code being used for the ec2 API (probably pushed down into the network
module).
Project: horizon
Series: diablo
Blueprint: openstack-api-support
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/openstack-api-support
Spec URL: None
We require the OpenStack API for running nova, so that we can easily
extend it's functionality. For this, we need to add support for the
OpenStack API.
Project: nova
Series: diablo
Blueprint: openstack-compute-api-11-finalization
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/openstack-compute-api-11-finalization
Spec URL: None
We need to finalize what 1.1 will look like as discussed in this
thread: https://lists.launchpad.net/openstack/msg01642.html. This
should be done in the context of another blueprint:
https://blueprints.launchpad.net/nova/+spec/api-defintion-process.
Coming out of this discussion, we should have a clear understanding of
what this API looks like in diablo, especially from the standpoint of
the response and request formats. During this discussion it may be
interesting to note that 1.1 is mostly implemented as per the spec:
http://docs.openstack.org/openstack-compute/developer/content/.
Project: keystone
Series: diablo
Blueprint: openstack-identity-service
Design: Drafting Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/keystone/+spec/openstack-identity-service
Spec URL: http://wiki.openstack.org/openstack-authn?
Create an identity service for use with OpenStack. Initially using
token-based authentication and necessary middleware to support
integration with OpenStack core services; Nova, Glance, and Swift.
Anti-Requirement: Do not build an identity system! Instead, use
existing systems for heavy lifting. Local storage can be used for
reference implementation or PoC Architecturally, therefore, implement
a generalized claims-based architecture: Ex: base class that can:
Request -> GetClaims -> ValidateClaims -> Returns claim-based
authentication. 1.) Receive Claim 2.) Validate Claim 3.) Decorate
request 4.) Forward request Requirement from Nova: Lightweight
Delegation - As a User who is associated with a Tenant ID, I should
have the ability to delegate Tenant IDs to other users and access
those Tenants via a call in the new Keystone Service. Draft
Acceptance Criteria: 1.) User is able to grant additional Tenants 2.)
Each Tenant has a unique token 3.) The User is able to login with
Username & Password/API key ...or... 4.) The User is able to login
with Username & Password/API key AND Tenant ID (optional) 5.) A
TenantID must always have at least one user. 6.) A user must be
associated with a TenantID which may be a default tenant initially.
7.) The Admin User can pass a TenantID token and use a new call to
list_all_tenants (Admin only) 8.) The non-Admin User can pass a
TenantID token and use a new call to list_all_tenants available to
THAT USER ONLY. 9.) The user can pass a TenantID token and use a new
call to list_all_users (by TenantID) Requirement from Swift: Support
existing Auth functionality (Rackspace Auth, DevAuth, SWAUTH)
Requirement from Glance: Integrate with Glance Keystone work: 1.)
Install Glance 2.) Standardize the interfaces 3.) Prove ability to
write to service Glance work: 1.) Add middleware with tenant key 2.)
Functional Tests over that communication to ensure they are attached
properly (image:tenant) 3.) Modify Logging to include the middleware
context. Requirement: Include documentation Acceptance Criteria: 1.)
Must Include "How to start Service" 2.) Must include Presentation 3.)
Dev Guide must be updated to include all new features 4.) Create Admin
Guide and Install Guide 5.) Update Guide(s) to follow "Open Stack"
look and feel
Project: nova
Series: diablo
Blueprint: os-quotas
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/os-quotas
Spec URL: None
Currently, it is only possible to manage quotas using nova-manage. It
would be useful to provide similar functionality through the osapi.
Project: nova
Series: diablo
Blueprint: os-security-groups
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/os-security-groups
Spec URL: http://wiki.openstack.org/os-security-groups
Support management of security group in OS API 1.1 same as it is
present in the nova EC2 API.
Project: glance
Series: diablo
Blueprint: pluggable-auth
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/pluggable-auth
Spec URL: http://wiki.openstack.org/ClientAuthenticationPlugin
We don't really want Glance to ONLY support Keystone authentication.
In many installations, it will be sufficient to have no auth at all
for Glance. Therefore, we'd like to add an auth plugin layer to Glance
so that it could support no auth (the default) or Keystone (optional)
or other forms of authentication if desired by the implementor. Team
Ozone expects to develop this layer and the associated Keystone
plugin.
Project: keystone
Series: diablo
Blueprint: pluggable-identity-store
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/keystone/+spec/pluggable-identity-store
Spec URL: None
Provide support for plugging in identity stores so Keystone (and
therefore OpenStack) can be used and integrates with operator identity
systems (like Open LDAP, eDir, Active Directory, etc...).
Project: nova
Series: diablo
Blueprint: primary-ip-attribute
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/primary-ip-attribute
Spec URL: None
In a hybrid environment, the *public* IP address of an instance may
not be controlled by Nova. Instead, the primary IP address may be part
of the dedicated hardware; for example, a router/NAT device. In this
case, the Nova-provided IP address cannot actually be used to access
the instance (from outside the local LAN). Rackspace has this
situation with our hybrid customers, but I do not believe that this is
a Rackspace-specific issue, and will arise when anyone is using Nova
in a hybrid network environment. The proposed Network as a Service
(NaaS) might address this issue in the long-term, but the
functionality is needed before NaaS becomes available, and this
specific situation (integrating with an external router/NAT device)
may still occur. The data stored for an instance is expanded to
include a single attribute, PrimaryIP (ok, perhaps two attributes, for
V4 and V6), that can be set by the user during instance creation or
afterwards. This is *different* than the Public IP or Private IP
normally assigned. Unfortunately, we can't use simple metadata for
this, since external tools (for example, CloudKick) need to use this
IP address to access an instance if it's set, and thus it needs to be
part of the API contract and supported. The field should always be
set; by default to the Public IP address of the server, but can be
overwritten by the user. If there are quibbles over the name, some
alternatives are "External Management IP" or "External Access IP."
Project: nova
Series: diablo
Blueprint: provider-firewall
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/provider-firewall
Spec URL: http://wiki.openstack.org/spec-provider-firewall
Drop all traffic from blacklisted IPs before it reaches instances.
Project: horizon
Series: diablo
Blueprint: quantum-support
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/quantum-support
Spec URL: https://blueprints.launchpad.net/quantum/+spec/quantum-client-gui
Having a GUI to demonstrate the base Quantum functionality will be
critical to helping people understand the value of Quantum and provide
feedback. The Dashboard for Openstack has achieved official
"incubator" status as of June 2011, so a logical starting point would
be add a representation of Quantum there.
Project: glance
Series: diablo
Blueprint: query-filters
Design: Superseded Lifecycle: Complete Impl: Unknown
Link: https://blueprints.launchpad.net/glance/+spec/query-filters
Spec URL: None
The current Glance implementation is somewhat simplistic, especially
for a multi-tenanted environment. This specification is for a proposal
to enhance the Glance REST API by allowing query parameters on the
/images and /images/detail resources. In a multi-tenanted
environment, especially one with thousands of users or customers,
returning a collection of images can be extremely cumbersome. By
providing filtering via query string parameters, this collection can
be used to reduce the set of images to a more manageable size.
Project: nova
Series: diablo
Blueprint: ram-limits
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/ram-limits
Spec URL: None
Some deployers are primarily concerned with the amount of ram a user
has access to across their instances. However, ram limits are not
currently supported in the nova quota system. Additionally, in order
to conform with the api 1.1 spec, quota limits should be exposed in
the openstack api. Since instance and core limits do not show up in
the api 1.1 spec, it should be possible for them to be hidden in the
api. This blueprint can either leverage the schema changes in
dependency nova-quota-schema, or make schema changes of its own.
Project: nova
Series: diablo
Blueprint: reasonable-aws-compatibility
Design: Obsolete Lifecycle: Complete Impl: Not started
Link: https://blueprints.launchpad.net/nova/+spec/reasonable-aws-compatibility
Spec URL: http://etherpad.openstack.org/ReasonableAWSCompatibility
This is an effort trying to form a consensus on how compatible to the
Amazon AWS API we make nova. In other word, what is "reasonable"
compatibility? It could include also related activities including
something like design/coding guideline and testing.
Project: nova
Series: diablo
Blueprint: rebuild-servers
Design: Discussion Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/rebuild-servers
Spec URL: None
Given an existing instance, provide support to re-image it. See
http://docs.rackspacecloud.com/servers/api/cs-bindguide-latest.pdf
page 35 for the Rackspace API around this.
Project: nova
Series: diablo
Blueprint: refactor-privesc
Design: Drafting Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/refactor-privesc
Spec URL: None
This spec proposes a refactoring of the way nova executes commands as
root. Rather than calling "sudo" in the command, a run_as_root=True
parameter is added to the utils.execute call. This allows to plus
another root helper than sudo. * Removes rogue direct usage of
subprocess module by proper utils.execute calls * Adds a run_as_root
parameter to utils.execute, that prefixes your command with
FLAG.root_helper (which defaults to 'sudo') * Turns all sudo calls
into run_as_root=True calls * Update fakes accordingly * Replaces
usage of "sudo -E" and "addl_env" parameter into passing environment
in the command (allows it to be compatible with alternative
sudo_helpers) * Additionally, forces close_fds=True on all
utils.execute calls, since it's a more secure default
Project: glance
Series: diablo
Blueprint: refactor-stores
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/refactor-stores
Spec URL: None
Currently, all the store backends use a @classmethod setup that
requires the controller to constantly pass a set of options for calls
to get(), create(), delete(), etc. This is inefficient because it
means a whole bunch of option processing is done on each request,
especially on create(). We should be creating a stateful object that
validates itself when the API server is created.
Project: horizon
Series: diablo
Blueprint: refactor-syspanel
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/refactor-syspanel
Spec URL: None
The nova-syspanel module was refactored to be a submodule of django-
openstack.
Project: keystone
Series: diablo
Blueprint: remove-default-tenant
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/keystone/+spec/remove-default-tenant
Spec URL: None
Default tenant is an ambiguous construct. It contains an _implied_
role which is not called out explicitly. This blueprint suggests
getting rid of a default tenant and, where the functionality is
needed, allowing various implementations to represent the relationship
using a role (ex. Dashboard is going to create a "Member" role which
will be used to associate users with tenants). Impact: 1.
Authenticating without a tenant specified will return an unscoped
token (as per original design spec here: https://github.com/rackspace/
keystone/raw/master/doc/design/flow_diagram.png). 2. Identity managers
using the service API and back-end plug-in developers will need to
manage the link between user and tenant. 3. Some APIs will change
(like PUT /users/userId/tenant).
Project: keystone
Series: diablo
Blueprint: roles-for-none-tenant
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/keystone/+spec/roles-for-none-tenant
Spec URL: None
Currently, in /users/userId/roleRefs a tenant must be provided: {
"roleRef":{ "id":1, "roleId":"admin", "tenantId":"one" }
} There must a way to add a role without a tenant: { "roleRef":{
"id":1, "roleId":"admin", } } Here is a proposed patch: https:/
/github.com/aababilov/keystone/commit/9171a73a8646afffba0f8bea67530dbd
ea7c4428 It just allows to parse a roleRef without a tenantId
Project: nova
Series: diablo
Blueprint: schedule-instances-on-heterogeneous-architectures
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/schedule-instances-on-heterogeneous-architectures
Spec URL: http://wiki.openstack.org/ScheduleHeterogeneousInstances
Nova should have support for cpu architectures, accelerator
architectures, and network interfaces and be able to route
run_instances() requests to a compute node capable of running that
architecture. In addition, nova should prevent a user from
inadvertently specifying, for example, an x86_64 machine image to run
on a Power7 compute node or vice-versa. The scheduler should check for
inconsistencies.
Project: nova
Series: diablo
Blueprint: search-api
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/search-api
Spec URL: http://wiki.openstack.org/NovaSearchAPI
Cloud administrators and technical support personnel will often need
to diagnose a problem based on limited information; for example, a
user might report that a specific server is down. Nova should provide
an API that permits queries to search for servers by name or IP
address. The API should also permit wildcards (for example, "find
hosts 192.168.2.*").
Project: keystone
Series: diablo
Blueprint: service-catalog-version-support
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/keystone/+spec/service-catalog-version-support
Spec URL: None
Current response to the Authenticate call returns a service catalog
that does not inherently support multiple versions of catalog
endpoints. THe problem with that is that as endpoint versions change,
the catalog will also need to change. This could be problematic for
client code that was writing expecting a specific version. That
version should be supported in the catalog for as long as it is
supported at that endpoint. This would mean we would have multiple
endpoints listed - one for each version. A better solution would be
to categorize services by version as well so the XML path or JSON
hierarchy does not change for the duration that that specific version
is supported at that endpoint. The current service catalog also does
not help determine types. Since the naming could be inconsistent, a
type is needed so we know if we are looking at a compute, object
storage, or other kind of service. Sample catalog with versioning and
servicetype (aka endpoint type): XML:
internalURL="https://service1.internal.com/v2.0/blahblah"/>
internalURL="https://service1.internal.com/v2.0/blahblah"/>
JSON: {
"serviceCatalog": [{ "name": "Cloud Servers" "type":
"compute": [{ "publicURL": "https://compute.north.host/v1
/blah-blah", "internalURL": "https://compute.north.host/v1
/blah-blah", "region": "North", "versionId":
"1.0", "versionInfo": "uri", "versionList":
"uri" }, { "publicURL":
"https://compute.north.host/v1.1/blah-blah",
"internalURL": "https://compute.north.host/v1.1/blah-blah",
"region": "North", "versionId": "1.1",
"versionInfo": "https://compute.north.host/v1.1/",
"versionList": "https://compute.north.host/", }]
}, "name": "Cloud Files" "type": "object store": [{
"publicURL": "https://compute.north.host/v1/blah-blah",
"internalURL": "https://compute.north.host/v1/blah-blah",
"region": "South", "versionId": "1.0",
"versionInfo": "uri", "versionList": "uri" },
{ "publicURL": "https://compute.north.host/v1.1/blah-
blah", "internalURL": "https://compute.north.host/v1.1
/blah-blah", "region": "South", "versionId":
"1.1", "versionInfo": "https://compute.north.host/v1.1/",,
"versionList": "https://compute.north.host/" },
links: [{"rel": "next", "href": ": "uri}] }, ,
links: [{"rel": "next", "href": ": "uri}] ] } }
Project: glance
Series: diablo
Blueprint: shared-images
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/shared-images
Spec URL: http://etherpad.openstack.org/GlanceSharedImageGroups
Currently, Glance has only a coarse idea of ownership. Images are
either public or not public, with public images shown in calls to GET
/images and GET /images/details and private images shown only when
calling GET /images/. We would like to add the ability to have
shared image groups. This is dependent on the authentication
integration, since we first need an authentication "tenant" in order
to relate a set of images to a tenant and allow images to be shared
with other tenants.
Project: nova
Series: diablo
Blueprint: simple-usage
Design: New Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/simple-usage
Spec URL: None
In smaller clouds, we can just query the database to get compute
utilization information. We propose that in addition to
http://wiki.openstack.org/SystemUsageData we have two apis: get a
summary of usage for all tenants, and for a specific tenant - within a
specified period.
Project: nova
Series: diablo
Blueprint: snapshot-volume
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/snapshot-volume
Spec URL: http://wiki.openstack.org/SnapshotVolume
We can use snapshots for backups and to create golden volumes. This
blueprint adds support for creating a snapshot of a nova volume with
euca-create-snapshot.
Project: horizon
Series: diablo
Blueprint: swift-support
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/horizon/+spec/swift-support
Spec URL: None
Support for managing swift containers and objects has been added to
the OpenStack Dashboard. A new module called django-swift has been
added that complements django-nova and provides management UIs for
swift.
Project: nova
Series: diablo
Blueprint: system-usage-records
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/system-usage-records
Spec URL: http://wiki.openstack.org/SystemUsageData
Usage creation on any billable event (to be defined in the spec).
Ensure bandwidth is included on usage events. Administrative API for
usage record creation/download.
Project: glance
Series: diablo
Blueprint: test-refactor
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/test-refactor
Spec URL: None
We should use unittest2 features, including @skipIf and the setUpClass
@classmethods. SQLAlchemy already requires unittest2, so it's not a
new dependency for us. In addition, we should clean up some of the
repetitive code shared between /tests/functional/test_curl_api.py and
/tests/functional/test_s3.py In addition, we should be able to rework
the unit testing to remove the need for a faked datastore. We should
be able to just force a SQLite in-memory database, which should add
the DB API layer into the unit testing mix.
Project: keystone
Series: diablo
Blueprint: token-tenant-for-nova
Design: Obsolete Lifecycle: Complete Impl: Unknown
Link: https://blueprints.launchpad.net/keystone/+spec/token-tenant-for-nova
Spec URL: None
Currently, in nova queries, user default tenant is always used as
nova's project in nova context. However, if token has a tenant, it
should be used in place of user default one. For example, we get a
token qwerty for user joeuser (his default tenant is abc) and tenant
xyz. Currently, nova will use context (joeuser, abc) for token qwerty.
The correct behavior should be using (joeuser, xyz). This patch fixed
the issue: https://github.com/aababilov/keystone/commit/c306d9ca130717
f660a8bfbb8887676cc67260ca
Project: nova
Series: diablo
Blueprint: unittest-examples
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/unittest-examples
Spec URL: None
We need good documentation and examples for creating unit tests. This
will allow us to make sure that the unit tests remain consistent
throughout the code base. As a minimum, we should have: example very
basic unit test example use of stubs example use of mox documentation
on what should go into a unit test vs functional test When complete,
this can go in our tests directory as test_example.py
Project: nova
Series: diablo
Blueprint: volume-type
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/volume-type
Spec URL: http://etherpad.openstack.org/volume-type
Enable different storage classes within a storage system, and uses of
multiple storage backends within a Nova installation This involves:
1. Adding VolumeType with an id and a name, similar to InstanceType 2.
Adding VolumeTypeExtraSpecs to allow specific values to be associated
with volume types 3. Example scheduler that can use these values to a)
schedule to different backends and b) pass the extra metadata to
create_volume
Project: glance
Series: diablo
Blueprint: wsgi-refactoring
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/glance/+spec/wsgi-refactoring
Spec URL: None
Bring over the new goodness from Nova's updated WSGI layer
Project: nova
Series: diablo
Blueprint: xs-ovs
Design: Approved Lifecycle: Complete Impl: Implemented
Link: https://blueprints.launchpad.net/nova/+spec/xs-ovs
Spec URL: http://wiki.openstack.org/XenServerOVS
Adds support for the Open vSwitch in XenServer. This allows for the
transition away from the Linux Bridge which utilizes
iptables/arptables/ebtables rule to the vSwitch which will allow for
more granular networking protections, including networking protections
for IPv6.
Project: nova
Series: diablo
Blueprint: xs-xenstore-pump
Design: Obsolete Lifecycle: Complete Impl: Unknown
Link: https://blueprints.launchpad.net/nova/+spec/xs-xenstore-pump
Spec URL: None
Xenstore is reloaded on a reboot of the guest. During Windows Boot,
if sysprep is ran, the instance is rebooted. This causes the Xenstore
to be flushed and drops all configurations that may have initially
been injected. The pump would monitor the instance during boot time
and ensure the configurations are maintained in the proper xenstore
domain until the instance is completely booted