Merge lp:~d-jj/ironic/ironic-conductor into lp:~ubuntu-server-dev/ironic/kilo

Proposed by JJ Asghar on 2015-04-27
Status: Merged
Merge reported by: James Page
Merged at revision: not available
Proposed branch: lp:~d-jj/ironic/ironic-conductor
Merge into: lp:~ubuntu-server-dev/ironic/kilo
Diff against target: 75459 lines (+73657/-0) (has conflicts)
336 files modified
.mailmap (+4/-0)
.pc/.quilt_patches (+1/-0)
.pc/.quilt_series (+1/-0)
.pc/.version (+1/-0)
.pc/applied-patches (+2/-0)
.pc/fix-requirements.patch/requirements.txt (+38/-0)
.pc/set_config_defaults.patch/etc/ironic/ironic.conf.sample (+1308/-0)
.testr.conf (+4/-0)
AUTHORS (+182/-0)
CONTRIBUTING.rst (+10/-0)
ChangeLog (+1548/-0)
LICENSE (+176/-0)
MANIFEST.in (+6/-0)
PKG-INFO (+50/-0)
README.rst (+31/-0)
TODO.rst (+23/-0)
babel.cfg (+2/-0)
debian/changelog (+131/-0)
debian/compat (+1/-0)
debian/control (+177/-0)
debian/copyright (+40/-0)
debian/docs (+3/-0)
debian/ironic-api.init.in (+18/-0)
debian/ironic-api.install (+1/-0)
debian/ironic-common.dirs (+5/-0)
debian/ironic-common.install (+9/-0)
debian/ironic-common.postinst (+25/-0)
debian/ironic-conductor.init.in (+18/-0)
debian/ironic-conductor.install (+1/-0)
debian/ironic_sudoers (+3/-0)
debian/patches/fix-requirements.patch (+10/-0)
debian/patches/series (+2/-0)
debian/patches/set_config_defaults.patch (+20/-0)
debian/pydist-overrides (+1/-0)
debian/python-ironic.install (+1/-0)
debian/rules (+29/-0)
debian/source/format (+1/-0)
debian/watch (+3/-0)
doc/source/cmds/ironic-dbsync.rst (+211/-0)
doc/source/conf.py (+82/-0)
doc/source/deploy/drivers.rst (+130/-0)
doc/source/deploy/install-guide.rst (+1049/-0)
doc/source/deploy/user-guide.rst (+237/-0)
doc/source/dev/architecture.rst (+141/-0)
doc/source/dev/contributing.rst (+56/-0)
doc/source/dev/dev-quickstart.rst (+439/-0)
doc/source/dev/drivers.rst (+69/-0)
doc/source/dev/states.rst (+21/-0)
doc/source/dev/vendor-passthru.rst (+126/-0)
doc/source/drivers/ilo.rst (+582/-0)
doc/source/drivers/seamicro.rst (+119/-0)
doc/source/index.rst (+75/-0)
doc/source/webapi/v1.rst (+85/-0)
driver-requirements.txt (+21/-0)
etc/apache2/ironic (+37/-0)
etc/ironic/ironic.conf.sample (+1308/-0)
etc/ironic/policy.json (+5/-0)
etc/ironic/rootwrap.conf (+27/-0)
etc/ironic/rootwrap.d/ironic-images.filters (+6/-0)
etc/ironic/rootwrap.d/ironic-utils.filters (+19/-0)
ironic.egg-info/PKG-INFO (+50/-0)
ironic.egg-info/SOURCES.txt (+348/-0)
ironic.egg-info/dependency_links.txt (+1/-0)
ironic.egg-info/entry_points.txt (+42/-0)
ironic.egg-info/not-zip-safe (+1/-0)
ironic.egg-info/pbr.json (+1/-0)
ironic.egg-info/requires.txt (+35/-0)
ironic.egg-info/top_level.txt (+1/-0)
ironic/__init__.py (+22/-0)
ironic/api/__init__.py (+36/-0)
ironic/api/acl.py (+36/-0)
ironic/api/app.py (+81/-0)
ironic/api/app.wsgi (+28/-0)
ironic/api/config.py (+44/-0)
ironic/api/controllers/base.py (+105/-0)
ironic/api/controllers/link.py (+58/-0)
ironic/api/controllers/root.py (+99/-0)
ironic/api/controllers/v1/__init__.py (+191/-0)
ironic/api/controllers/v1/chassis.py (+261/-0)
ironic/api/controllers/v1/collection.py (+48/-0)
ironic/api/controllers/v1/driver.py (+210/-0)
ironic/api/controllers/v1/node.py (+995/-0)
ironic/api/controllers/v1/port.py (+355/-0)
ironic/api/controllers/v1/state.py (+34/-0)
ironic/api/controllers/v1/types.py (+187/-0)
ironic/api/controllers/v1/utils.py (+52/-0)
ironic/api/hooks.py (+153/-0)
ironic/api/middleware/__init__.py (+23/-0)
ironic/api/middleware/auth_token.py (+60/-0)
ironic/api/middleware/parsable_error.py (+91/-0)
ironic/cmd/__init__.py (+18/-0)
ironic/cmd/api.py (+62/-0)
ironic/cmd/conductor.py (+40/-0)
ironic/cmd/dbsync.py (+110/-0)
ironic/common/boot_devices.py (+42/-0)
ironic/common/config.py (+30/-0)
ironic/common/context.py (+67/-0)
ironic/common/dhcp_factory.py (+96/-0)
ironic/common/disk_partitioner.py (+209/-0)
ironic/common/driver_factory.py (+133/-0)
ironic/common/exception.py (+514/-0)
ironic/common/fsm.py (+225/-0)
ironic/common/glance_service/base_image_service.py (+286/-0)
ironic/common/glance_service/service.py (+81/-0)
ironic/common/glance_service/service_utils.py (+239/-0)
ironic/common/glance_service/v1/image_service.py (+41/-0)
ironic/common/glance_service/v2/image_service.py (+231/-0)
ironic/common/hash_ring.py (+197/-0)
ironic/common/i18n.py (+31/-0)
ironic/common/image_service.py (+66/-0)
ironic/common/images.py (+372/-0)
ironic/common/isolinux_config.template (+5/-0)
ironic/common/keystone.py (+138/-0)
ironic/common/network.py (+30/-0)
ironic/common/paths.py (+66/-0)
ironic/common/policy.py (+69/-0)
ironic/common/pxe_utils.py (+266/-0)
ironic/common/rpc.py (+148/-0)
ironic/common/safe_utils.py (+53/-0)
ironic/common/service.py (+119/-0)
ironic/common/states.py (+245/-0)
ironic/common/swift.py (+188/-0)
ironic/common/utils.py (+536/-0)
ironic/conductor/manager.py (+1639/-0)
ironic/conductor/rpcapi.py (+485/-0)
ironic/conductor/task_manager.py (+361/-0)
ironic/conductor/utils.py (+160/-0)
ironic/db/api.py (+387/-0)
ironic/db/migration.py (+56/-0)
ironic/db/sqlalchemy/alembic.ini (+54/-0)
ironic/db/sqlalchemy/alembic/README (+16/-0)
ironic/db/sqlalchemy/alembic/env.py (+54/-0)
ironic/db/sqlalchemy/alembic/script.py.mako (+22/-0)
ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py (+35/-0)
ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py (+36/-0)
ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py (+106/-0)
ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py (+40/-0)
ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py (+39/-0)
ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py (+36/-0)
ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py (+45/-0)
ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py (+52/-0)
ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py (+36/-0)
ironic/db/sqlalchemy/api.py (+585/-0)
ironic/db/sqlalchemy/migration.py (+113/-0)
ironic/db/sqlalchemy/models.py (+201/-0)
ironic/dhcp/base.py (+83/-0)
ironic/dhcp/neutron.py (+277/-0)
ironic/dhcp/none.py (+31/-0)
ironic/drivers/agent.py (+78/-0)
ironic/drivers/base.py (+650/-0)
ironic/drivers/drac.py (+39/-0)
ironic/drivers/fake.py (+186/-0)
ironic/drivers/ilo.py (+72/-0)
ironic/drivers/modules/agent.py (+584/-0)
ironic/drivers/modules/agent_client.py (+116/-0)
ironic/drivers/modules/agent_config.template (+5/-0)
ironic/drivers/modules/boot.ipxe (+10/-0)
ironic/drivers/modules/console_utils.py (+267/-0)
ironic/drivers/modules/deploy_utils.py (+654/-0)
ironic/drivers/modules/drac/client.py (+187/-0)
ironic/drivers/modules/drac/common.py (+110/-0)
ironic/drivers/modules/drac/management.py (+324/-0)
ironic/drivers/modules/drac/power.py (+151/-0)
ironic/drivers/modules/drac/resource_uris.py (+32/-0)
ironic/drivers/modules/elilo_efi_pxe_config.template (+11/-0)
ironic/drivers/modules/fake.py (+170/-0)
ironic/drivers/modules/iboot.py (+212/-0)
ironic/drivers/modules/ilo/common.py (+425/-0)
ironic/drivers/modules/ilo/deploy.py (+529/-0)
ironic/drivers/modules/ilo/management.py (+164/-0)
ironic/drivers/modules/ilo/power.py (+231/-0)
ironic/drivers/modules/image_cache.py (+375/-0)
ironic/drivers/modules/ipminative.py (+558/-0)
ironic/drivers/modules/ipmitool.py (+1003/-0)
ironic/drivers/modules/ipxe_config.template (+15/-0)
ironic/drivers/modules/irmc/common.py (+149/-0)
ironic/drivers/modules/irmc/power.py (+133/-0)
ironic/drivers/modules/iscsi_deploy.py (+421/-0)
ironic/drivers/modules/pxe.py (+485/-0)
ironic/drivers/modules/pxe_config.template (+11/-0)
ironic/drivers/modules/seamicro.py (+686/-0)
ironic/drivers/modules/snmp.py (+693/-0)
ironic/drivers/modules/ssh.py (+701/-0)
ironic/drivers/pxe.py (+211/-0)
ironic/drivers/utils.py (+213/-0)
ironic/locale/fr/LC_MESSAGES/ironic-log-critical.po (+26/-0)
ironic/locale/ironic-log-critical.pot (+23/-0)
ironic/locale/ironic-log-error.pot (+399/-0)
ironic/locale/ironic-log-info.pot (+218/-0)
ironic/locale/ironic-log-warning.pot (+375/-0)
ironic/locale/ironic.pot (+1921/-0)
ironic/locale/ko_KR/LC_MESSAGES/ironic-log-critical.po (+25/-0)
ironic/migrate_nova/migrate_db.py (+318/-0)
ironic/migrate_nova/nova_baremetal_states.py (+38/-0)
ironic/migrate_nova/nova_models.py (+71/-0)
ironic/netconf.py (+29/-0)
ironic/nova/compute/manager.py (+99/-0)
ironic/nova/scheduler/ironic_host_manager.py (+43/-0)
ironic/nova/virt/ironic/__init__.py (+18/-0)
ironic/nova/virt/ironic/driver.py (+43/-0)
ironic/objects/__init__.py (+29/-0)
ironic/objects/base.py (+596/-0)
ironic/objects/chassis.py (+184/-0)
ironic/objects/conductor.py (+83/-0)
ironic/objects/node.py (+259/-0)
ironic/objects/port.py (+214/-0)
ironic/objects/utils.py (+134/-0)
ironic/openstack/common/_i18n.py (+45/-0)
ironic/openstack/common/apiclient/auth.py (+221/-0)
ironic/openstack/common/apiclient/base.py (+525/-0)
ironic/openstack/common/apiclient/client.py (+364/-0)
ironic/openstack/common/apiclient/exceptions.py (+466/-0)
ironic/openstack/common/apiclient/fake_client.py (+173/-0)
ironic/openstack/common/cliutils.py (+317/-0)
ironic/openstack/common/config/generator.py (+313/-0)
ironic/openstack/common/context.py (+126/-0)
ironic/openstack/common/eventlet_backdoor.py (+145/-0)
ironic/openstack/common/excutils.py (+113/-0)
ironic/openstack/common/fileutils.py (+146/-0)
ironic/openstack/common/gettextutils.py (+479/-0)
ironic/openstack/common/imageutils.py (+152/-0)
ironic/openstack/common/importutils.py (+73/-0)
ironic/openstack/common/local.py (+45/-0)
ironic/openstack/common/log.py (+718/-0)
ironic/openstack/common/loopingcall.py (+147/-0)
ironic/openstack/common/network_utils.py (+163/-0)
ironic/openstack/common/periodic_task.py (+232/-0)
ironic/openstack/common/policy.py (+962/-0)
ironic/openstack/common/service.py (+504/-0)
ironic/openstack/common/strutils.py (+295/-0)
ironic/openstack/common/systemd.py (+106/-0)
ironic/openstack/common/threadgroup.py (+147/-0)
ironic/openstack/common/timeutils.py (+210/-0)
ironic/openstack/common/uuidutils.py (+37/-0)
ironic/openstack/common/versionutils.py (+183/-0)
ironic/tests/__init__.py (+34/-0)
ironic/tests/api/base.py (+240/-0)
ironic/tests/api/test_acl.py (+94/-0)
ironic/tests/api/test_base.py (+80/-0)
ironic/tests/api/test_hooks.py (+305/-0)
ironic/tests/api/test_root.py (+43/-0)
ironic/tests/api/utils.py (+96/-0)
ironic/tests/api/v1/test_chassis.py (+401/-0)
ironic/tests/api/v1/test_drivers.py (+236/-0)
ironic/tests/api/v1/test_nodes.py (+1451/-0)
ironic/tests/api/v1/test_ports.py (+642/-0)
ironic/tests/api/v1/test_root.py (+69/-0)
ironic/tests/api/v1/test_types.py (+228/-0)
ironic/tests/api/v1/test_utils.py (+49/-0)
ironic/tests/base.py (+143/-0)
ironic/tests/conductor/test_conductor_utils.py (+335/-0)
ironic/tests/conductor/test_manager.py (+2988/-0)
ironic/tests/conductor/test_rpcapi.py (+284/-0)
ironic/tests/conductor/test_task_manager.py (+620/-0)
ironic/tests/conductor/test_utils.py (+50/-0)
ironic/tests/conductor/utils.py (+57/-0)
ironic/tests/conf_fixture.py (+40/-0)
ironic/tests/db/__init__.py (+16/-0)
ironic/tests/db/base.py (+101/-0)
ironic/tests/db/sqlalchemy/test_migrations.py (+429/-0)
ironic/tests/db/sqlalchemy/test_types.py (+80/-0)
ironic/tests/db/test_chassis.py (+98/-0)
ironic/tests/db/test_conductor.py (+202/-0)
ironic/tests/db/test_nodes.py (+428/-0)
ironic/tests/db/test_ports.py (+110/-0)
ironic/tests/db/utils.py (+263/-0)
ironic/tests/dhcp/test_factory.py (+70/-0)
ironic/tests/dhcp/test_neutron.py (+355/-0)
ironic/tests/drivers/__init__.py (+21/-0)
ironic/tests/drivers/agent_pxe_config.template (+5/-0)
ironic/tests/drivers/drac/test_client.py (+215/-0)
ironic/tests/drivers/drac/test_common.py (+135/-0)
ironic/tests/drivers/drac/test_management.py (+303/-0)
ironic/tests/drivers/drac/test_power.py (+154/-0)
ironic/tests/drivers/drac/utils.py (+72/-0)
ironic/tests/drivers/ilo/test_common.py (+416/-0)
ironic/tests/drivers/ilo/test_deploy.py (+515/-0)
ironic/tests/drivers/ilo/test_management.py (+195/-0)
ironic/tests/drivers/ilo/test_power.py (+220/-0)
ironic/tests/drivers/irmc/test_common.py (+132/-0)
ironic/tests/drivers/irmc/test_power.py (+154/-0)
ironic/tests/drivers/pxe_config.template (+11/-0)
ironic/tests/drivers/test_agent.py (+466/-0)
ironic/tests/drivers/test_agent_client.py (+153/-0)
ironic/tests/drivers/test_base.py (+100/-0)
ironic/tests/drivers/test_console_utils.py (+335/-0)
ironic/tests/drivers/test_deploy_utils.py (+1056/-0)
ironic/tests/drivers/test_fake.py (+110/-0)
ironic/tests/drivers/test_iboot.py (+345/-0)
ironic/tests/drivers/test_image_cache.py (+519/-0)
ironic/tests/drivers/test_ipminative.py (+471/-0)
ironic/tests/drivers/test_ipmitool.py (+1525/-0)
ironic/tests/drivers/test_iscsi_deploy.py (+290/-0)
ironic/tests/drivers/test_pxe.py (+847/-0)
ironic/tests/drivers/test_seamicro.py (+669/-0)
ironic/tests/drivers/test_snmp.py (+1154/-0)
ironic/tests/drivers/test_ssh.py (+954/-0)
ironic/tests/drivers/test_utils.py (+148/-0)
ironic/tests/drivers/third_party_driver_mocks.py (+163/-0)
ironic/tests/fake_policy.py (+42/-0)
ironic/tests/matchers.py (+103/-0)
ironic/tests/objects/test_chassis.py (+98/-0)
ironic/tests/objects/test_conductor.py (+82/-0)
ironic/tests/objects/test_node.py (+139/-0)
ironic/tests/objects/test_objects.py (+625/-0)
ironic/tests/objects/test_port.py (+107/-0)
ironic/tests/objects/utils.py (+96/-0)
ironic/tests/policy_fixture.py (+39/-0)
ironic/tests/stubs.py (+116/-0)
ironic/tests/test_dbsync.py (+27/-0)
ironic/tests/test_disk_partitioner.py (+198/-0)
ironic/tests/test_driver_factory.py (+61/-0)
ironic/tests/test_fsm.py (+117/-0)
ironic/tests/test_glance_service.py (+832/-0)
ironic/tests/test_hash_ring.py (+250/-0)
ironic/tests/test_images.py (+507/-0)
ironic/tests/test_keystone.py (+148/-0)
ironic/tests/test_network.py (+63/-0)
ironic/tests/test_policy.py (+74/-0)
ironic/tests/test_pxe_utils.py (+309/-0)
ironic/tests/test_swift.py (+148/-0)
ironic/tests/test_utils.py (+512/-0)
ironic/version.py (+18/-0)
openstack-common.conf (+22/-0)
requirements.txt (+37/-0)
setup.cfg (+93/-0)
setup.py (+30/-0)
test-requirements.txt (+22/-0)
tools/config/check_uptodate.sh (+29/-0)
tools/config/generate_sample.sh (+138/-0)
tools/config/oslo.config.generator.rc (+2/-0)
tools/flakes.py (+23/-0)
tools/install_venv_common.py (+172/-0)
tools/states_to_dot.py (+127/-0)
tools/with_venv.sh (+7/-0)
tox.ini (+60/-0)
Conflict adding file debian.  Moved existing file to debian.moved.
To merge this branch: bzr merge lp:~d-jj/ironic/ironic-conductor
Reviewer Review Type Date Requested Status
Ma Wen Cheng (community) 2015-04-27 Approve on 2015-04-28
Mark Vanderwiel (community) 2015-04-27 Approve on 2015-04-27
JJ Asghar (community) Approve on 2015-04-27
Review via email: mp+257565@code.launchpad.net

This proposal supersedes a proposal from 2015-04-23.

Description of the Change

The ironic conductor init script doesn't point to the conductor application, it points to the ironic-api. This fixes that.

To post a comment you must log in.
Mark Vanderwiel (vanderwl) wrote : Posted in a previous version of this proposal

Lgtm, thx JJ

review: Approve
Ma Wen Cheng (mars914) wrote : Posted in a previous version of this proposal

it is a good fix

review: Approve
JJ Asghar (d-jj) : Posted in a previous version of this proposal
review: Approve
JJ Asghar (d-jj) :
review: Approve
Mark Vanderwiel (vanderwl) :
review: Approve
Ma Wen Cheng (mars914) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file '.mailmap'
2--- .mailmap 1970-01-01 00:00:00 +0000
3+++ .mailmap 2015-04-27 18:58:18 +0000
4@@ -0,0 +1,4 @@
5+# Format is:
6+# <preferred e-mail> <other e-mail 1>
7+# <preferred e-mail> <other e-mail 2>
8+Joe Gordon <joe.gordon0@gmail.com> <jogo@cloudscaling.com>
9
10=== added directory '.pc'
11=== added file '.pc/.quilt_patches'
12--- .pc/.quilt_patches 1970-01-01 00:00:00 +0000
13+++ .pc/.quilt_patches 2015-04-27 18:58:18 +0000
14@@ -0,0 +1,1 @@
15+debian/patches
16
17=== added file '.pc/.quilt_series'
18--- .pc/.quilt_series 1970-01-01 00:00:00 +0000
19+++ .pc/.quilt_series 2015-04-27 18:58:18 +0000
20@@ -0,0 +1,1 @@
21+series
22
23=== added file '.pc/.version'
24--- .pc/.version 1970-01-01 00:00:00 +0000
25+++ .pc/.version 2015-04-27 18:58:18 +0000
26@@ -0,0 +1,1 @@
27+2
28
29=== added file '.pc/applied-patches'
30--- .pc/applied-patches 1970-01-01 00:00:00 +0000
31+++ .pc/applied-patches 2015-04-27 18:58:18 +0000
32@@ -0,0 +1,2 @@
33+fix-requirements.patch
34+set_config_defaults.patch
35
36=== added directory '.pc/fix-requirements.patch'
37=== added file '.pc/fix-requirements.patch/requirements.txt'
38--- .pc/fix-requirements.patch/requirements.txt 1970-01-01 00:00:00 +0000
39+++ .pc/fix-requirements.patch/requirements.txt 2015-04-27 18:58:18 +0000
40@@ -0,0 +1,38 @@
41+# The order of packages is significant, because pip processes them in the order
42+# of appearance. Changing the order has an impact on the overall integration
43+# process, which may cause wedges in the gate later.
44+pbr>=0.6,!=0.7,<1.0
45+SQLAlchemy>=0.9.7,<=0.9.99
46+alembic>=0.7.2
47+eventlet>=0.16.1
48+lxml>=2.3
49+WebOb>=1.2.3
50+greenlet>=0.3.2
51+sqlalchemy-migrate>=0.9.1,!=0.9.2
52+netaddr>=0.7.12
53+paramiko>=1.13.0
54+iso8601>=0.1.9
55+python-neutronclient>=2.3.6,<3
56+python-glanceclient>=0.15.0
57+python-keystoneclient>=1.0.0
58+python-swiftclient>=2.2.0
59+stevedore>=1.1.0 # Apache-2.0
60+pysendfile==2.0.0
61+websockify>=0.6.0,<0.7
62+oslo.concurrency>=1.4.1 # Apache-2.0
63+oslo.config>=1.6.0 # Apache-2.0
64+oslo.db>=1.4.1 # Apache-2.0
65+oslo.rootwrap>=1.5.0
66+oslo.i18n>=1.3.0 # Apache-2.0
67+oslo.serialization>=1.2.0 # Apache-2.0
68+oslo.utils>=1.2.0 # Apache-2.0
69+pecan>=0.8.0
70+requests>=2.2.0,!=2.4.0
71+six>=1.7.0
72+jsonpatch>=1.1
73+WSME>=0.6
74+Jinja2>=2.6 # BSD License (3 clause)
75+keystonemiddleware>=1.0.0
76+oslo.messaging>=1.6.0 # Apache-2.0
77+retrying>=1.2.3,!=1.3.0 # Apache-2.0
78+posix_ipc
79
80=== added directory '.pc/set_config_defaults.patch'
81=== added directory '.pc/set_config_defaults.patch/etc'
82=== added directory '.pc/set_config_defaults.patch/etc/ironic'
83=== added file '.pc/set_config_defaults.patch/etc/ironic/ironic.conf.sample'
84--- .pc/set_config_defaults.patch/etc/ironic/ironic.conf.sample 1970-01-01 00:00:00 +0000
85+++ .pc/set_config_defaults.patch/etc/ironic/ironic.conf.sample 2015-04-27 18:58:18 +0000
86@@ -0,0 +1,1308 @@
87+[DEFAULT]
88+
89+#
90+# Options defined in oslo.messaging
91+#
92+
93+# Use durable queues in AMQP. (boolean value)
94+# Deprecated group/name - [DEFAULT]/rabbit_durable_queues
95+#amqp_durable_queues=false
96+
97+# Auto-delete queues in AMQP. (boolean value)
98+#amqp_auto_delete=false
99+
100+# Size of RPC connection pool. (integer value)
101+#rpc_conn_pool_size=30
102+
103+# Qpid broker hostname. (string value)
104+#qpid_hostname=localhost
105+
106+# Qpid broker port. (integer value)
107+#qpid_port=5672
108+
109+# Qpid HA cluster host:port pairs. (list value)
110+#qpid_hosts=$qpid_hostname:$qpid_port
111+
112+# Username for Qpid connection. (string value)
113+#qpid_username=
114+
115+# Password for Qpid connection. (string value)
116+#qpid_password=
117+
118+# Space separated list of SASL mechanisms to use for auth.
119+# (string value)
120+#qpid_sasl_mechanisms=
121+
122+# Seconds between connection keepalive heartbeats. (integer
123+# value)
124+#qpid_heartbeat=60
125+
126+# Transport to use, either 'tcp' or 'ssl'. (string value)
127+#qpid_protocol=tcp
128+
129+# Whether to disable the Nagle algorithm. (boolean value)
130+#qpid_tcp_nodelay=true
131+
132+# The number of prefetched messages held by receiver. (integer
133+# value)
134+#qpid_receiver_capacity=1
135+
136+# The qpid topology version to use. Version 1 is what was
137+# originally used by impl_qpid. Version 2 includes some
138+# backwards-incompatible changes that allow broker federation
139+# to work. Users should update to version 2 when they are
140+# able to take everything down, as it requires a clean break.
141+# (integer value)
142+#qpid_topology_version=1
143+
144+# SSL version to use (valid only if SSL enabled). Valid values
145+# are TLSv1 and SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may
146+# be available on some distributions. (string value)
147+#kombu_ssl_version=
148+
149+# SSL key file (valid only if SSL enabled). (string value)
150+#kombu_ssl_keyfile=
151+
152+# SSL cert file (valid only if SSL enabled). (string value)
153+#kombu_ssl_certfile=
154+
155+# SSL certification authority file (valid only if SSL
156+# enabled). (string value)
157+#kombu_ssl_ca_certs=
158+
159+# How long to wait before reconnecting in response to an AMQP
160+# consumer cancel notification. (floating point value)
161+#kombu_reconnect_delay=1.0
162+
163+# The RabbitMQ broker address where a single node is used.
164+# (string value)
165+#rabbit_host=localhost
166+
167+# The RabbitMQ broker port where a single node is used.
168+# (integer value)
169+#rabbit_port=5672
170+
171+# RabbitMQ HA cluster host:port pairs. (list value)
172+#rabbit_hosts=$rabbit_host:$rabbit_port
173+
174+# Connect over SSL for RabbitMQ. (boolean value)
175+#rabbit_use_ssl=false
176+
177+# The RabbitMQ userid. (string value)
178+#rabbit_userid=guest
179+
180+# The RabbitMQ password. (string value)
181+#rabbit_password=guest
182+
183+# The RabbitMQ login method. (string value)
184+#rabbit_login_method=AMQPLAIN
185+
186+# The RabbitMQ virtual host. (string value)
187+#rabbit_virtual_host=/
188+
189+# How frequently to retry connecting with RabbitMQ. (integer
190+# value)
191+#rabbit_retry_interval=1
192+
193+# How long to backoff for between retries when connecting to
194+# RabbitMQ. (integer value)
195+#rabbit_retry_backoff=2
196+
197+# Maximum number of RabbitMQ connection retries. Default is 0
198+# (infinite retry count). (integer value)
199+#rabbit_max_retries=0
200+
201+# Use HA queues in RabbitMQ (x-ha-policy: all). If you change
202+# this option, you must wipe the RabbitMQ database. (boolean
203+# value)
204+#rabbit_ha_queues=false
205+
206+# Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake
207+# (boolean value)
208+#fake_rabbit=false
209+
210+# ZeroMQ bind address. Should be a wildcard (*), an ethernet
211+# interface, or IP. The "host" option should point or resolve
212+# to this address. (string value)
213+#rpc_zmq_bind_address=*
214+
215+# MatchMaker driver. (string value)
216+#rpc_zmq_matchmaker=oslo_messaging._drivers.matchmaker.MatchMakerLocalhost
217+
218+# ZeroMQ receiver listening port. (integer value)
219+#rpc_zmq_port=9501
220+
221+# Number of ZeroMQ contexts, defaults to 1. (integer value)
222+#rpc_zmq_contexts=1
223+
224+# Maximum number of ingress messages to locally buffer per
225+# topic. Default is unlimited. (integer value)
226+#rpc_zmq_topic_backlog=<None>
227+
228+# Directory for holding IPC sockets. (string value)
229+#rpc_zmq_ipc_dir=/var/run/openstack
230+
231+# Name of this node. Must be a valid hostname, FQDN, or IP
232+# address. Must match "host" option, if running Nova. (string
233+# value)
234+#rpc_zmq_host=ironic
235+
236+# Seconds to wait before a cast expires (TTL). Only supported
237+# by impl_zmq. (integer value)
238+#rpc_cast_timeout=30
239+
240+# Heartbeat frequency. (integer value)
241+#matchmaker_heartbeat_freq=300
242+
243+# Heartbeat time-to-live. (integer value)
244+#matchmaker_heartbeat_ttl=600
245+
246+# Size of RPC thread pool. (integer value)
247+#rpc_thread_pool_size=64
248+
249+# Driver or drivers to handle sending notifications. (multi
250+# valued)
251+#notification_driver=
252+
253+# AMQP topic used for OpenStack notifications. (list value)
254+# Deprecated group/name - [rpc_notifier2]/topics
255+#notification_topics=notifications
256+
257+# Seconds to wait for a response from a call. (integer value)
258+#rpc_response_timeout=60
259+
260+# A URL representing the messaging driver to use and its full
261+# configuration. If not set, we fall back to the rpc_backend
262+# option and driver specific configuration. (string value)
263+#transport_url=<None>
264+
265+# The messaging driver to use, defaults to rabbit. Other
266+# drivers include qpid and zmq. (string value)
267+#rpc_backend=rabbit
268+
269+# The default exchange under which topics are scoped. May be
270+# overridden by an exchange name specified in the
271+# transport_url option. (string value)
272+#control_exchange=openstack
273+
274+
275+#
276+# Options defined in ironic.netconf
277+#
278+
279+# IP address of this host. (string value)
280+#my_ip=192.168.122.1
281+
282+
283+#
284+# Options defined in ironic.api.app
285+#
286+
287+# Method to use for authentication: noauth or keystone.
288+# (string value)
289+#auth_strategy=keystone
290+
291+
292+#
293+# Options defined in ironic.common.driver_factory
294+#
295+
296+# Specify the list of drivers to load during service
297+# initialization. Missing drivers, or drivers which fail to
298+# initialize, will prevent the conductor service from
299+# starting. The option default is a recommended set of
300+# production-oriented drivers. A complete list of drivers
301+# present on your system may be found by enumerating the
302+# "ironic.drivers" entrypoint. An example may be found in the
303+# developer documentation online. (list value)
304+#enabled_drivers=pxe_ipmitool
305+
306+
307+#
308+# Options defined in ironic.common.exception
309+#
310+
311+# Make exception message format errors fatal. (boolean value)
312+#fatal_exception_format_errors=false
313+
314+
315+#
316+# Options defined in ironic.common.hash_ring
317+#
318+
319+# Exponent to determine number of hash partitions to use when
320+# distributing load across conductors. Larger values will
321+# result in more even distribution of load and less load when
322+# rebalancing the ring, but more memory usage. Number of
323+# partitions per conductor is (2^hash_partition_exponent).
324+# This determines the granularity of rebalancing: given 10
325+# hosts, and an exponent of the 2, there are 40 partitions in
326+# the ring.A few thousand partitions should make rebalancing
327+# smooth in most cases. The default is suitable for up to a
328+# few hundred conductors. Too many partitions has a CPU
329+# impact. (integer value)
330+#hash_partition_exponent=5
331+
332+# [Experimental Feature] Number of hosts to map onto each hash
333+# partition. Setting this to more than one will cause
334+# additional conductor services to prepare deployment
335+# environments and potentially allow the Ironic cluster to
336+# recover more quickly if a conductor instance is terminated.
337+# (integer value)
338+#hash_distribution_replicas=1
339+
340+
341+#
342+# Options defined in ironic.common.images
343+#
344+
345+# Force backing images to raw format. (boolean value)
346+#force_raw_images=true
347+
348+# Path to isolinux binary file. (string value)
349+#isolinux_bin=/usr/lib/syslinux/isolinux.bin
350+
351+# Template file for isolinux configuration file. (string
352+# value)
353+#isolinux_config_template=$pybasedir/common/isolinux_config.template
354+
355+
356+#
357+# Options defined in ironic.common.paths
358+#
359+
360+# Directory where the ironic python module is installed.
361+# (string value)
362+#pybasedir=/usr/lib/python/site-packages/ironic
363+
364+# Directory where ironic binaries are installed. (string
365+# value)
366+#bindir=$pybasedir/bin
367+
368+# Top-level directory for maintaining ironic's state. (string
369+# value)
370+#state_path=$pybasedir
371+
372+
373+#
374+# Options defined in ironic.common.service
375+#
376+
377+# Seconds between running periodic tasks. (integer value)
378+#periodic_interval=60
379+
380+# Name of this node. This can be an opaque identifier. It is
381+# not necessarily a hostname, FQDN, or IP address. However,
382+# the node name must be valid within an AMQP key, and if using
383+# ZeroMQ, a valid hostname, FQDN, or IP address. (string
384+# value)
385+#host=ironic
386+
387+
388+#
389+# Options defined in ironic.common.utils
390+#
391+
392+# Path to the rootwrap configuration file to use for running
393+# commands as root. (string value)
394+#rootwrap_config=/etc/ironic/rootwrap.conf
395+
396+# Explicitly specify the temporary working directory. (string
397+# value)
398+#tempdir=<None>
399+
400+
401+#
402+# Options defined in ironic.drivers.modules.image_cache
403+#
404+
405+# Run image downloads and raw format conversions in parallel.
406+# (boolean value)
407+#parallel_image_downloads=false
408+
409+
410+#
411+# Options defined in ironic.openstack.common.eventlet_backdoor
412+#
413+
414+# Enable eventlet backdoor. Acceptable values are 0, <port>,
415+# and <start>:<end>, where 0 results in listening on a random
416+# tcp port number; <port> results in listening on the
417+# specified port number (and not enabling backdoor if that
418+# port is in use); and <start>:<end> results in listening on
419+# the smallest unused port number within the specified range
420+# of port numbers. The chosen port is displayed in the
421+# service's log file. (string value)
422+#backdoor_port=<None>
423+
424+
425+#
426+# Options defined in ironic.openstack.common.log
427+#
428+
429+# Print debugging output (set logging level to DEBUG instead
430+# of default WARNING level). (boolean value)
431+#debug=false
432+
433+# Print more verbose output (set logging level to INFO instead
434+# of default WARNING level). (boolean value)
435+#verbose=false
436+
437+# Log output to standard error. (boolean value)
438+#use_stderr=true
439+
440+# Format string to use for log messages with context. (string
441+# value)
442+#logging_context_format_string=%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s
443+
444+# Format string to use for log messages without context.
445+# (string value)
446+#logging_default_format_string=%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s
447+
448+# Data to append to log format when level is DEBUG. (string
449+# value)
450+#logging_debug_format_suffix=%(funcName)s %(pathname)s:%(lineno)d
451+
452+# Prefix each line of exception output with this format.
453+# (string value)
454+#logging_exception_prefix=%(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)s
455+
456+# List of logger=LEVEL pairs. (list value)
457+#default_log_levels=amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN
458+
459+# Enables or disables publication of error events. (boolean
460+# value)
461+#publish_errors=false
462+
463+# Enables or disables fatal status of deprecations. (boolean
464+# value)
465+#fatal_deprecations=false
466+
467+# The format for an instance that is passed with the log
468+# message. (string value)
469+#instance_format="[instance: %(uuid)s] "
470+
471+# The format for an instance UUID that is passed with the log
472+# message. (string value)
473+#instance_uuid_format="[instance: %(uuid)s] "
474+
475+# The name of a logging configuration file. This file is
476+# appended to any existing logging configuration files. For
477+# details about logging configuration files, see the Python
478+# logging module documentation. (string value)
479+# Deprecated group/name - [DEFAULT]/log_config
480+#log_config_append=<None>
481+
482+# DEPRECATED. A logging.Formatter log message format string
483+# which may use any of the available logging.LogRecord
484+# attributes. This option is deprecated. Please use
485+# logging_context_format_string and
486+# logging_default_format_string instead. (string value)
487+#log_format=<None>
488+
489+# Format string for %%(asctime)s in log records. Default:
490+# %(default)s . (string value)
491+#log_date_format=%Y-%m-%d %H:%M:%S
492+
493+# (Optional) Name of log file to output to. If no default is
494+# set, logging will go to stdout. (string value)
495+# Deprecated group/name - [DEFAULT]/logfile
496+#log_file=<None>
497+
498+# (Optional) The base directory used for relative --log-file
499+# paths. (string value)
500+# Deprecated group/name - [DEFAULT]/logdir
501+#log_dir=<None>
502+
503+# Use syslog for logging. Existing syslog format is DEPRECATED
504+# during I, and will change in J to honor RFC5424. (boolean
505+# value)
506+#use_syslog=false
507+
508+# (Optional) Enables or disables syslog rfc5424 format for
509+# logging. If enabled, prefixes the MSG part of the syslog
510+# message with APP-NAME (RFC5424). The format without the APP-
511+# NAME is deprecated in I, and will be removed in J. (boolean
512+# value)
513+#use_syslog_rfc_format=false
514+
515+# Syslog facility to receive log lines. (string value)
516+#syslog_log_facility=LOG_USER
517+
518+
519+#
520+# Options defined in ironic.openstack.common.periodic_task
521+#
522+
523+# Some periodic tasks can be run in a separate process. Should
524+# we run them here? (boolean value)
525+#run_external_periodic_tasks=true
526+
527+
528+#
529+# Options defined in ironic.openstack.common.policy
530+#
531+
532+# The JSON file that defines policies. (string value)
533+#policy_file=policy.json
534+
535+# Default rule. Enforced when a requested rule is not found.
536+# (string value)
537+#policy_default_rule=default
538+
539+# Directories where policy configuration files are stored.
540+# They can be relative to any directory in the search path
541+# defined by the config_dir option, or absolute paths. The
542+# file defined by policy_file must exist for these directories
543+# to be searched. (multi valued)
544+#policy_dirs=policy.d
545+
546+[keystone]
547+
548+#The region used for getting endpoints of OpenStack services.
549+#region_name =
550+
551+[agent]
552+
553+#
554+# Options defined in ironic.drivers.modules.agent
555+#
556+
557+# Additional append parameters for baremetal PXE boot. (string
558+# value)
559+#agent_pxe_append_params=nofb nomodeset vga=normal
560+
561+# Template file for PXE configuration. (string value)
562+#agent_pxe_config_template=$pybasedir/drivers/modules/agent_config.template
563+
564+# Neutron bootfile DHCP parameter. (string value)
565+#agent_pxe_bootfile_name=pxelinux.0
566+
567+# Maximum interval (in seconds) for agent heartbeats. (integer
568+# value)
569+#heartbeat_timeout=300
570+
571+
572+#
573+# Options defined in ironic.drivers.modules.agent_client
574+#
575+
576+# API version to use for communicating with the ramdisk agent.
577+# (string value)
578+#agent_api_version=v1
579+
580+
581+[api]
582+
583+#
584+# Options defined in ironic.api
585+#
586+
587+# The listen IP for the Ironic API server. (string value)
588+#host_ip=0.0.0.0
589+
590+# The port for the Ironic API server. (integer value)
591+#port=6385
592+
593+# The maximum number of items returned in a single response
594+# from a collection resource. (integer value)
595+#max_limit=1000
596+
597+
598+[conductor]
599+
600+#
601+# Options defined in ironic.conductor.manager
602+#
603+
604+# URL of Ironic API service. If not set ironic can get the
605+# current value from the keystone service catalog. (string
606+# value)
607+#api_url=<None>
608+
609+# Seconds between conductor heart beats. (integer value)
610+#heartbeat_interval=10
611+
612+# Maximum time (in seconds) since the last check-in of a
613+# conductor. (integer value)
614+#heartbeat_timeout=60
615+
616+# Interval between syncing the node power state to the
617+# database, in seconds. (integer value)
618+#sync_power_state_interval=60
619+
620+# Interval between checks of provision timeouts, in seconds.
621+# (integer value)
622+#check_provision_state_interval=60
623+
624+# Timeout (seconds) for waiting callback from deploy ramdisk.
625+# 0 - unlimited. (integer value)
626+#deploy_callback_timeout=1800
627+
628+# During sync_power_state, should the hardware power state be
629+# set to the state recorded in the database (True) or should
630+# the database be updated based on the hardware state (False).
631+# (boolean value)
632+#force_power_state_during_sync=true
633+
634+# During sync_power_state failures, limit the number of times
635+# Ironic should try syncing the hardware node power state with
636+# the node power state in DB (integer value)
637+#power_state_sync_max_retries=3
638+
639+# Maximum number of worker threads that can be started
640+# simultaneously by a periodic task. Should be less than RPC
641+# thread pool size. (integer value)
642+#periodic_max_workers=8
643+
644+# The size of the workers greenthread pool. (integer value)
645+#workers_pool_size=100
646+
647+# Number of attempts to grab a node lock. (integer value)
648+#node_locked_retry_attempts=3
649+
650+# Seconds to sleep between node lock attempts. (integer value)
651+#node_locked_retry_interval=1
652+
653+# Enable sending sensor data message via the notification bus
654+# (boolean value)
655+#send_sensor_data=false
656+
657+# Seconds between conductor sending sensor data message to
658+# ceilometer via the notification bus. (integer value)
659+#send_sensor_data_interval=600
660+
661+# List of comma separated metric types which need to be sent
662+# to Ceilometer. The default value, "ALL", is a special value
663+# meaning send all the sensor data. (list value)
664+#send_sensor_data_types=ALL
665+
666+# When conductors join or leave the cluster, existing
667+# conductors may need to update any persistent local state as
668+# nodes are moved around the cluster. This option controls how
669+# often, in seconds, each conductor will check for nodes that
670+# it should "take over". Set it to a negative value to disable
671+# the check entirely. (integer value)
672+#sync_local_state_interval=180
673+
674+# Whether to upload the config drive to Swift. (boolean value)
675+#configdrive_use_swift=false
676+
677+# Name of the Swift container to store config drive data. Used
678+# when configdrive_use_swift is True. (string value)
679+#configdrive_swift_container=ironic_configdrive_container
680+
681+
682+[console]
683+
684+#
685+# Options defined in ironic.drivers.modules.console_utils
686+#
687+
688+# Path to serial console terminal program (string value)
689+#terminal=shellinaboxd
690+
691+# Directory containing the terminal SSL cert(PEM) for serial
692+# console access (string value)
693+#terminal_cert_dir=<None>
694+
695+# Directory for holding terminal pid files. If not specified,
696+# the temporary directory will be used. (string value)
697+#terminal_pid_dir=<None>
698+
699+# Time interval (in seconds) for checking the status of
700+# console subprocess. (integer value)
701+#subprocess_checking_interval=1
702+
703+# Time (in seconds) to wait for the console subprocess to
704+# start. (integer value)
705+#subprocess_timeout=10
706+
707+
708+[database]
709+
710+#
711+# Options defined in oslo.db
712+#
713+
714+# The file name to use with SQLite. (string value)
715+#sqlite_db=oslo.sqlite
716+
717+# If True, SQLite uses synchronous mode. (boolean value)
718+#sqlite_synchronous=true
719+
720+# The back end to use for the database. (string value)
721+# Deprecated group/name - [DEFAULT]/db_backend
722+#backend=sqlalchemy
723+
724+# The SQLAlchemy connection string to use to connect to the
725+# database. (string value)
726+# Deprecated group/name - [DEFAULT]/sql_connection
727+# Deprecated group/name - [DATABASE]/sql_connection
728+# Deprecated group/name - [sql]/connection
729+#connection=<None>
730+
731+# The SQLAlchemy connection string to use to connect to the
732+# slave database. (string value)
733+#slave_connection=<None>
734+
735+# The SQL mode to be used for MySQL sessions. This option,
736+# including the default, overrides any server-set SQL mode. To
737+# use whatever SQL mode is set by the server configuration,
738+# set this to no value. Example: mysql_sql_mode= (string
739+# value)
740+#mysql_sql_mode=TRADITIONAL
741+
742+# Timeout before idle SQL connections are reaped. (integer
743+# value)
744+# Deprecated group/name - [DEFAULT]/sql_idle_timeout
745+# Deprecated group/name - [DATABASE]/sql_idle_timeout
746+# Deprecated group/name - [sql]/idle_timeout
747+#idle_timeout=3600
748+
749+# Minimum number of SQL connections to keep open in a pool.
750+# (integer value)
751+# Deprecated group/name - [DEFAULT]/sql_min_pool_size
752+# Deprecated group/name - [DATABASE]/sql_min_pool_size
753+#min_pool_size=1
754+
755+# Maximum number of SQL connections to keep open in a pool.
756+# (integer value)
757+# Deprecated group/name - [DEFAULT]/sql_max_pool_size
758+# Deprecated group/name - [DATABASE]/sql_max_pool_size
759+#max_pool_size=<None>
760+
761+# Maximum number of database connection retries during
762+# startup. Set to -1 to specify an infinite retry count.
763+# (integer value)
764+# Deprecated group/name - [DEFAULT]/sql_max_retries
765+# Deprecated group/name - [DATABASE]/sql_max_retries
766+#max_retries=10
767+
768+# Interval between retries of opening a SQL connection.
769+# (integer value)
770+# Deprecated group/name - [DEFAULT]/sql_retry_interval
771+# Deprecated group/name - [DATABASE]/reconnect_interval
772+#retry_interval=10
773+
774+# If set, use this value for max_overflow with SQLAlchemy.
775+# (integer value)
776+# Deprecated group/name - [DEFAULT]/sql_max_overflow
777+# Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow
778+#max_overflow=<None>
779+
780+# Verbosity of SQL debugging information: 0=None,
781+# 100=Everything. (integer value)
782+# Deprecated group/name - [DEFAULT]/sql_connection_debug
783+#connection_debug=0
784+
785+# Add Python stack traces to SQL as comment strings. (boolean
786+# value)
787+# Deprecated group/name - [DEFAULT]/sql_connection_trace
788+#connection_trace=false
789+
790+# If set, use this value for pool_timeout with SQLAlchemy.
791+# (integer value)
792+# Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout
793+#pool_timeout=<None>
794+
795+# Enable the experimental use of database reconnect on
796+# connection lost. (boolean value)
797+#use_db_reconnect=false
798+
799+# Seconds between database connection retries. (integer value)
800+#db_retry_interval=1
801+
802+# If True, increases the interval between database connection
803+# retries up to db_max_retry_interval. (boolean value)
804+#db_inc_retry_interval=true
805+
806+# If db_inc_retry_interval is set, the maximum seconds between
807+# database connection retries. (integer value)
808+#db_max_retry_interval=10
809+
810+# Maximum database connection retries before error is raised.
811+# Set to -1 to specify an infinite retry count. (integer
812+# value)
813+#db_max_retries=20
814+
815+
816+#
817+# Options defined in ironic.db.sqlalchemy.models
818+#
819+
820+# MySQL engine to use. (string value)
821+#mysql_engine=InnoDB
822+
823+
824+[deploy]
825+
826+#
827+# Options defined in ironic.drivers.modules.deploy_utils
828+#
829+
830+# Block size to use when writing to the nodes disk. (string
831+# value)
832+#dd_block_size=1M
833+
834+# Maximum attempts to verify an iSCSI connection is active,
835+# sleeping 1 second between attempts. (integer value)
836+#iscsi_verify_attempts=3
837+
838+
839+[dhcp]
840+
841+#
842+# Options defined in ironic.common.dhcp_factory
843+#
844+
845+# DHCP provider to use. "neutron" uses Neutron, and "none"
846+# uses a no-op provider. (string value)
847+#dhcp_provider=neutron
848+
849+
850+[disk_partitioner]
851+
852+#
853+# Options defined in ironic.common.disk_partitioner
854+#
855+
856+# After Ironic has completed creating the partition table, it
857+# continues to check for activity on the attached iSCSI device
858+# status at this interval prior to copying the image to the
859+# node, in seconds (integer value)
860+#check_device_interval=1
861+
862+# The maximum number of times to check that the device is not
863+# accessed by another process. If the device is still busy
864+# after that, the disk partitioning will be treated as having
865+# failed. (integer value)
866+#check_device_max_retries=20
867+
868+
869+[glance]
870+
871+#
872+# Options defined in ironic.common.glance_service.v2.image_service
873+#
874+
875+# A list of URL schemes that can be downloaded directly via
876+# the direct_url. Currently supported schemes: [file]. (list
877+# value)
878+#allowed_direct_url_schemes=
879+
880+# The secret token given to Swift to allow temporary URL
881+# downloads. Required for temporary URLs. (string value)
882+#swift_temp_url_key=<None>
883+
884+# The length of time in seconds that the temporary URL will be
885+# valid for. Defaults to 20 minutes. If some deploys get a 401
886+# response code when trying to download from the temporary
887+# URL, try raising this duration. (integer value)
888+#swift_temp_url_duration=1200
889+
890+# The "endpoint" (scheme, hostname, optional port) for the
891+# Swift URL of the form
892+# "endpoint_url/api_version/account/container/object_id". Do
893+# not include trailing "/". For example, use
894+# "https://swift.example.com". Required for temporary URLs.
895+# (string value)
896+#swift_endpoint_url=<None>
897+
898+# The Swift API version to create a temporary URL for.
899+# Defaults to "v1". Swift temporary URL format:
900+# "endpoint_url/api_version/account/container/object_id"
901+# (string value)
902+#swift_api_version=v1
903+
904+# The account that Glance uses to communicate with Swift. The
905+# format is "AUTH_uuid". "uuid" is the UUID for the account
906+# configured in the glance-api.conf. Required for temporary
907+# URLs. For example:
908+# "AUTH_a422b2-91f3-2f46-74b7-d7c9e8958f5d30". Swift temporary
909+# URL format:
910+# "endpoint_url/api_version/account/container/object_id"
911+# (string value)
912+#swift_account=<None>
913+
914+# The Swift container Glance is configured to store its images
915+# in. Defaults to "glance", which is the default in glance-
916+# api.conf. Swift temporary URL format:
917+# "endpoint_url/api_version/account/container/object_id"
918+# (string value)
919+#swift_container=glance
920+
921+# This should match a config by the same name in the Glance
922+# configuration file. When set to 0, a single-tenant store
923+# will only use one container to store all images. When set to
924+# an integer value between 1 and 32, a single-tenant store
925+# will use multiple containers to store images, and this value
926+# will determine how many containers are created. (integer
927+# value)
928+#swift_store_multiple_containers_seed=0
929+
930+
931+#
932+# Options defined in ironic.common.image_service
933+#
934+
935+# Default glance hostname or IP address. (string value)
936+#glance_host=$my_ip
937+
938+# Default glance port. (integer value)
939+#glance_port=9292
940+
941+# Default protocol to use when connecting to glance. Set to
942+# https for SSL. (string value)
943+#glance_protocol=http
944+
945+# A list of the glance api servers available to ironic. Prefix
946+# with https:// for SSL-based glance API servers. Format is
947+# [hostname|IP]:port. (list value)
948+#glance_api_servers=<None>
949+
950+# Allow to perform insecure SSL (https) requests to glance.
951+# (boolean value)
952+#glance_api_insecure=false
953+
954+# Number of retries when downloading an image from glance.
955+# (integer value)
956+#glance_num_retries=0
957+
958+# Default protocol to use when connecting to glance. Set to
959+# https for SSL. (string value)
960+#auth_strategy=keystone
961+
962+
963+[ilo]
964+
965+#
966+# Options defined in ironic.drivers.modules.ilo.common
967+#
968+
969+# Timeout (in seconds) for iLO operations (integer value)
970+#client_timeout=60
971+
972+# Port to be used for iLO operations (integer value)
973+#client_port=443
974+
975+# The Swift iLO container to store data. (string value)
976+#swift_ilo_container=ironic_ilo_container
977+
978+# Amount of time in seconds for Swift objects to auto-expire.
979+# (integer value)
980+#swift_object_expiry_timeout=900
981+
982+
983+#
984+# Options defined in ironic.drivers.modules.ilo.power
985+#
986+
987+# Number of times a power operation needs to be retried
988+# (integer value)
989+#power_retry=6
990+
991+# Amount of time in seconds to wait in between power
992+# operations (integer value)
993+#power_wait=2
994+
995+
996+[ipmi]
997+
998+#
999+# Options defined in ironic.drivers.modules.ipminative
1000+#
1001+
1002+# Maximum time in seconds to retry IPMI operations. (integer
1003+# value)
1004+#retry_timeout=60
1005+
1006+# Minimum time, in seconds, between IPMI operations sent to a
1007+# server. There is a risk with some hardware that setting this
1008+# too low may cause the BMC to crash. Recommended setting is 5
1009+# seconds. (integer value)
1010+#min_command_interval=5
1011+
1012+
1013+[irmc]
1014+
1015+#
1016+# Options defined in ironic.drivers.modules.irmc.common
1017+#
1018+
1019+# Port to be used for iRMC operations, either 80 or 443
1020+# (integer value)
1021+#port=443
1022+
1023+# Authentication method to be used for iRMC operations, either
1024+# "basic" or "digest" (string value)
1025+#auth_method=basic
1026+
1027+# Timeout (in seconds) for iRMC operations (integer value)
1028+#client_timeout=60
1029+
1030+
1031+[keystone_authtoken]
1032+
1033+#
1034+# Options defined in keystonemiddleware.auth_token
1035+#
1036+
1037+# Complete public Identity API endpoint. (string value)
1038+#auth_uri=<None>
1039+
1040+# API version of the admin Identity API endpoint. (string
1041+# value)
1042+#auth_version=<None>
1043+
1044+# Do not handle authorization requests within the middleware,
1045+# but delegate the authorization decision to downstream WSGI
1046+# components. (boolean value)
1047+#delay_auth_decision=false
1048+
1049+# Request timeout value for communicating with Identity API
1050+# server. (integer value)
1051+#http_connect_timeout=<None>
1052+
1053+# How many times are we trying to reconnect when communicating
1054+# with Identity API Server. (integer value)
1055+#http_request_max_retries=3
1056+
1057+# Env key for the swift cache. (string value)
1058+#cache=<None>
1059+
1060+# Required if identity server requires client certificate
1061+# (string value)
1062+#certfile=<None>
1063+
1064+# Required if identity server requires client certificate
1065+# (string value)
1066+#keyfile=<None>
1067+
1068+# A PEM encoded Certificate Authority to use when verifying
1069+# HTTPs connections. Defaults to system CAs. (string value)
1070+#cafile=<None>
1071+
1072+# Verify HTTPS connections. (boolean value)
1073+#insecure=false
1074+
1075+# Directory used to cache files related to PKI tokens. (string
1076+# value)
1077+#signing_dir=<None>
1078+
1079+# Optionally specify a list of memcached server(s) to use for
1080+# caching. If left undefined, tokens will instead be cached
1081+# in-process. (list value)
1082+# Deprecated group/name - [DEFAULT]/memcache_servers
1083+#memcached_servers=<None>
1084+
1085+# In order to prevent excessive effort spent validating
1086+# tokens, the middleware caches previously-seen tokens for a
1087+# configurable duration (in seconds). Set to -1 to disable
1088+# caching completely. (integer value)
1089+#token_cache_time=300
1090+
1091+# Determines the frequency at which the list of revoked tokens
1092+# is retrieved from the Identity service (in seconds). A high
1093+# number of revocation events combined with a low cache
1094+# duration may significantly reduce performance. (integer
1095+# value)
1096+#revocation_cache_time=10
1097+
1098+# (Optional) If defined, indicate whether token data should be
1099+# authenticated or authenticated and encrypted. Acceptable
1100+# values are MAC or ENCRYPT. If MAC, token data is
1101+# authenticated (with HMAC) in the cache. If ENCRYPT, token
1102+# data is encrypted and authenticated in the cache. If the
1103+# value is not one of these options or empty, auth_token will
1104+# raise an exception on initialization. (string value)
1105+#memcache_security_strategy=<None>
1106+
1107+# (Optional, mandatory if memcache_security_strategy is
1108+# defined) This string is used for key derivation. (string
1109+# value)
1110+#memcache_secret_key=<None>
1111+
1112+# (Optional) Number of seconds memcached server is considered
1113+# dead before it is tried again. (integer value)
1114+#memcache_pool_dead_retry=300
1115+
1116+# (Optional) Maximum total number of open connections to every
1117+# memcached server. (integer value)
1118+#memcache_pool_maxsize=10
1119+
1120+# (Optional) Socket timeout in seconds for communicating with
1121+# a memcache server. (integer value)
1122+#memcache_pool_socket_timeout=3
1123+
1124+# (Optional) Number of seconds a connection to memcached is
1125+# held unused in the pool before it is closed. (integer value)
1126+#memcache_pool_unused_timeout=60
1127+
1128+# (Optional) Number of seconds that an operation will wait to
1129+# get a memcache client connection from the pool. (integer
1130+# value)
1131+#memcache_pool_conn_get_timeout=10
1132+
1133+# (Optional) Use the advanced (eventlet safe) memcache client
1134+# pool. The advanced pool will only work under python 2.x.
1135+# (boolean value)
1136+#memcache_use_advanced_pool=false
1137+
1138+# (Optional) Indicate whether to set the X-Service-Catalog
1139+# header. If False, middleware will not ask for service
1140+# catalog on token validation and will not set the X-Service-
1141+# Catalog header. (boolean value)
1142+#include_service_catalog=true
1143+
1144+# Used to control the use and type of token binding. Can be
1145+# set to: "disabled" to not check token binding. "permissive"
1146+# (default) to validate binding information if the bind type
1147+# is of a form known to the server and ignore it if not.
1148+# "strict" like "permissive" but if the bind type is unknown
1149+# the token will be rejected. "required" any form of token
1150+# binding is needed to be allowed. Finally the name of a
1151+# binding method that must be present in tokens. (string
1152+# value)
1153+#enforce_token_bind=permissive
1154+
1155+# If true, the revocation list will be checked for cached
1156+# tokens. This requires that PKI tokens are configured on the
1157+# identity server. (boolean value)
1158+#check_revocations_for_cached=false
1159+
1160+# Hash algorithms to use for hashing PKI tokens. This may be a
1161+# single algorithm or multiple. The algorithms are those
1162+# supported by Python standard hashlib.new(). The hashes will
1163+# be tried in the order given, so put the preferred one first
1164+# for performance. The result of the first hash will be stored
1165+# in the cache. This will typically be set to multiple values
1166+# only while migrating from a less secure algorithm to a more
1167+# secure one. Once all the old tokens are expired this option
1168+# should be set to a single value for better performance.
1169+# (list value)
1170+#hash_algorithms=md5
1171+
1172+
1173+[matchmaker_redis]
1174+
1175+#
1176+# Options defined in oslo.messaging
1177+#
1178+
1179+# Host to locate redis. (string value)
1180+#host=127.0.0.1
1181+
1182+# Use this port to connect to redis host. (integer value)
1183+#port=6379
1184+
1185+# Password for Redis server (optional). (string value)
1186+#password=<None>
1187+
1188+
1189+[matchmaker_ring]
1190+
1191+#
1192+# Options defined in oslo.messaging
1193+#
1194+
1195+# Matchmaker ring file (JSON). (string value)
1196+# Deprecated group/name - [DEFAULT]/matchmaker_ringfile
1197+#ringfile=/etc/oslo/matchmaker_ring.json
1198+
1199+
1200+[neutron]
1201+
1202+#
1203+# Options defined in ironic.dhcp.neutron
1204+#
1205+
1206+# URL for connecting to neutron. (string value)
1207+#url=http://$my_ip:9696
1208+
1209+# Timeout value for connecting to neutron in seconds. (integer
1210+# value)
1211+#url_timeout=30
1212+
1213+# Client retries in the case of a failed request. (integer
1214+# value)
1215+#retries=3
1216+
1217+# Default authentication strategy to use when connecting to
1218+# neutron. Can be either "keystone" or "noauth". Running
1219+# neutron in noauth mode (related to but not affected by this
1220+# setting) is insecure and should only be used for testing.
1221+# (string value)
1222+#auth_strategy=keystone
1223+
1224+
1225+[oslo_messaging_amqp]
1226+
1227+#
1228+# Options defined in oslo.messaging
1229+#
1230+
1231+# address prefix used when sending to a specific server
1232+# (string value)
1233+#server_request_prefix=exclusive
1234+
1235+# address prefix used when broadcasting to all servers (string
1236+# value)
1237+#broadcast_prefix=broadcast
1238+
1239+# address prefix when sending to any server in group (string
1240+# value)
1241+#group_request_prefix=unicast
1242+
1243+# Name for the AMQP container (string value)
1244+#container_name=<None>
1245+
1246+# Timeout for inactive connections (in seconds) (integer
1247+# value)
1248+#idle_timeout=0
1249+
1250+# Debug: dump AMQP frames to stdout (boolean value)
1251+#trace=false
1252+
1253+# CA certificate PEM file for verifing server certificate
1254+# (string value)
1255+#ssl_ca_file=
1256+
1257+# Identifying certificate PEM file to present to clients
1258+# (string value)
1259+#ssl_cert_file=
1260+
1261+# Private key PEM file used to sign cert_file certificate
1262+# (string value)
1263+#ssl_key_file=
1264+
1265+# Password for decrypting ssl_key_file (if encrypted) (string
1266+# value)
1267+#ssl_key_password=<None>
1268+
1269+# Accept clients using either SSL or plain TCP (boolean value)
1270+#allow_insecure_clients=false
1271+
1272+
1273+[pxe]
1274+
1275+#
1276+# Options defined in ironic.drivers.modules.iscsi_deploy
1277+#
1278+
1279+# Additional append parameters for baremetal PXE boot. (string
1280+# value)
1281+#pxe_append_params=nofb nomodeset vga=normal
1282+
1283+# Default file system format for ephemeral partition, if one
1284+# is created. (string value)
1285+#default_ephemeral_format=ext4
1286+
1287+# Directory where images are stored on disk. (string value)
1288+#images_path=/var/lib/ironic/images/
1289+
1290+# Directory where master instance images are stored on disk.
1291+# (string value)
1292+#instance_master_path=/var/lib/ironic/master_images
1293+
1294+# Maximum size (in MiB) of cache for master images, including
1295+# those in use. (integer value)
1296+#image_cache_size=20480
1297+
1298+# Maximum TTL (in minutes) for old master images in cache.
1299+# (integer value)
1300+#image_cache_ttl=10080
1301+
1302+# The disk devices to scan while doing the deploy. (string
1303+# value)
1304+#disk_devices=cciss/c0d0,sda,hda,vda
1305+
1306+
1307+#
1308+# Options defined in ironic.drivers.modules.pxe
1309+#
1310+
1311+# Template file for PXE configuration. (string value)
1312+#pxe_config_template=$pybasedir/drivers/modules/pxe_config.template
1313+
1314+# Template file for PXE configuration for UEFI boot loader.
1315+# (string value)
1316+#uefi_pxe_config_template=$pybasedir/drivers/modules/elilo_efi_pxe_config.template
1317+
1318+# IP address of Ironic compute node's tftp server. (string
1319+# value)
1320+#tftp_server=$my_ip
1321+
1322+# Ironic compute node's tftp root path. (string value)
1323+#tftp_root=/tftpboot
1324+
1325+# Directory where master tftp images are stored on disk.
1326+# (string value)
1327+#tftp_master_path=/tftpboot/master_images
1328+
1329+# Bootfile DHCP parameter. (string value)
1330+#pxe_bootfile_name=pxelinux.0
1331+
1332+# Bootfile DHCP parameter for UEFI boot mode. (string value)
1333+#uefi_pxe_bootfile_name=elilo.efi
1334+
1335+# Ironic compute node's HTTP server URL. Example:
1336+# http://192.1.2.3:8080 (string value)
1337+#http_url=<None>
1338+
1339+# Ironic compute node's HTTP root path. (string value)
1340+#http_root=/httpboot
1341+
1342+# Enable iPXE boot. (boolean value)
1343+#ipxe_enabled=false
1344+
1345+# The path to the main iPXE script file. (string value)
1346+#ipxe_boot_script=$pybasedir/drivers/modules/boot.ipxe
1347+
1348+
1349+[seamicro]
1350+
1351+#
1352+# Options defined in ironic.drivers.modules.seamicro
1353+#
1354+
1355+# Maximum retries for SeaMicro operations (integer value)
1356+#max_retry=3
1357+
1358+# Seconds to wait for power action to be completed (integer
1359+# value)
1360+#action_timeout=10
1361+
1362+
1363+[snmp]
1364+
1365+#
1366+# Options defined in ironic.drivers.modules.snmp
1367+#
1368+
1369+# Seconds to wait for power action to be completed (integer
1370+# value)
1371+#power_timeout=10
1372+
1373+
1374+[ssh]
1375+
1376+#
1377+# Options defined in ironic.drivers.modules.ssh
1378+#
1379+
1380+# libvirt uri (string value)
1381+#libvirt_uri=qemu:///system
1382+
1383+
1384+[swift]
1385+
1386+#
1387+# Options defined in ironic.common.swift
1388+#
1389+
1390+# Maximum number of times to retry a Swift request, before
1391+# failing. (integer value)
1392+#swift_max_retries=2
1393+
1394+
1395
1396=== added file '.testr.conf'
1397--- .testr.conf 1970-01-01 00:00:00 +0000
1398+++ .testr.conf 2015-04-27 18:58:18 +0000
1399@@ -0,0 +1,4 @@
1400+[DEFAULT]
1401+test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} OS_TEST_TIMEOUT=60 ${PYTHON:-python} -m subunit.run discover -t ./ ${TESTS_DIR:-./ironic/tests/} $LISTOPT $IDOPTION
1402+test_id_option=--load-list $IDFILE
1403+test_list_option=--list
1404
1405=== added file 'AUTHORS'
1406--- AUTHORS 1970-01-01 00:00:00 +0000
1407+++ AUTHORS 2015-04-27 18:58:18 +0000
1408@@ -0,0 +1,182 @@
1409+119Vik <vitalij_ua@ukr.net>
1410+Adam Gandelman <adamg@ubuntu.com>
1411+Alberto Planas <aplanas@gmail.com>
1412+Alex Meade <alex.meade@rackspace.com>
1413+Alexander Gordeev <agordeev@mirantis.com>
1414+Alexis Lee <alexisl@hp.com>
1415+Andreas Jaeger <aj@suse.de>
1416+Andrew Bogott <abogott@wikimedia.org>
1417+Andrey Kurilin <akurilin@mirantis.com>
1418+Angus Thomas <athomas@redhat.com>
1419+Anita Kuno <anita.kuno@enovance.com>
1420+Anne Gentle <anne@openstack.org>
1421+Anson Y.W <undozen@unitedstack.com>
1422+Anusha Ramineni <anusha.iiitm@gmail.com>
1423+Arata Notsu <notsu@virtualtech.jp>
1424+Armando Migliaccio <amigliaccio@internap.com>
1425+Artem Rozumenko <artem_rozumenko@epam.com>
1426+Boris Pavlovic <boris@pavlovic.me>
1427+Brian Elliott <brian.elliott@rackspace.com>
1428+Brian Waldon <bcwaldon@gmail.com>
1429+Chang Bo Guo <guochbo@cn.ibm.com>
1430+ChangBo Guo(gcb) <eric.guo@easystack.cn>
1431+Chris Behrens <cbehrens@codestud.com>
1432+Chris Jones <cmsj@tenshu.net>
1433+Chris Krelle <NobodyCam@gmail.com>
1434+Chris Krelle <nobodycam@gmail.com>
1435+Christian Berendt <berendt@b1-systems.de>
1436+Chuck Short <chuck.short@canonical.com>
1437+Clif Houck <me@clifhouck.com>
1438+Dan Prince <dprince@redhat.com>
1439+Dan Smith <danms@us.ibm.com>
1440+Daryl Walleck <daryl.walleck@rackspace.com>
1441+Davanum Srinivas <dims@linux.vnet.ibm.com>
1442+David Hewson <dhewson@cray.com>
1443+David Kang <dkang@isi.edu>
1444+David McNally <dave.mcnally@hp.com>
1445+David Shrewsbury <shrewsbury.dave@gmail.com>
1446+Davide Guerri <davide.guerri@hp.com>
1447+Derek Higgins <derekh@redhat.com>
1448+Devananda van der Veen <devananda.vdv@gmail.com>
1449+Dima Shulyak <dshulyak@mirantis.com>
1450+Dirk Mueller <dirk@dmllr.de>
1451+Dmitry Nikishov <dnikishov@mirantis.com>
1452+Dmitry Tantsur <dtantsur@redhat.com>
1453+Dongdong Zhou <dzhou121@gmail.com>
1454+Ellen Hui <ellenfkh@gmail.com>
1455+Eric Guo <eric.guo@easystack.cn>
1456+Eric Windisch <eric@cloudscaling.com>
1457+Faizan Barmawer <faizan.barmawer@gmail.com>
1458+Fengqian Gao <fengqian.gao@intel.com>
1459+Ghe Rivero <ghe.rivero@hp.com>
1460+Ghe Rivero <ghe@debian.org>
1461+Ghe Rivero <ghe@rivero.io>
1462+Gregory Haynes <greg@greghaynes.net>
1463+Hadi Bannazadeh <hadi@savinetwork.ca>
1464+Hans Lindgren <hanlind@kth.se>
1465+Haomeng, Wang <whaom@cn.ibm.com>
1466+Harshada Mangesh Kakad <harshada.kakad@izeltech.com>
1467+He Yongli <yongli.he@intel.com>
1468+Hugo Nicodemos <hugonicodemos@gmail.com>
1469+Ihar Hrachyshka <ihrachys@redhat.com>
1470+Ilya Pekelny <ipekelny@mirantis.com>
1471+Imre Farkas <ifarkas@redhat.com>
1472+James E. Blair <jeblair@openstack.org>
1473+James Slagle <jslagle@redhat.com>
1474+Jason Kölker <jason@koelker.net>
1475+Jay Faulkner <jay@jvf.cc>
1476+Jeremy Stanley <fungi@yuggoth.org>
1477+Jesse Andrews <anotherjesse@gmail.com>
1478+Jim Rollenhagen <jim@jimrollenhagen.com>
1479+Jing Sun <sjing@cn.ibm.com>
1480+Joe Gordon <joe.gordon0@gmail.com>
1481+Johannes Erdfelt <johannes.erdfelt@rackspace.com>
1482+John Garbutt <john.garbutt@citrix.com>
1483+John L. Villalovos <john.l.villalovos@intel.com>
1484+Josh Gachnang <josh@pcsforeducation.com>
1485+Joshua Harlow <harlowja@gmail.com>
1486+Joshua Harlow <harlowja@yahoo-inc.com>
1487+Julien Danjou <julien@danjou.info>
1488+Junya Akahira <J.Akahira@gmail.com>
1489+Ken Igarashi <igarashik@nttdocomo.co.jp>
1490+Kun Huang <gareth@unitedstack.com>
1491+Kurt Taylor <krtaylor@us.ibm.com>
1492+Kyle Stevenson <kyle@kylestevenson.me>
1493+Lin Tan <tan.lin.good@gmail.com>
1494+Lucas Alvares Gomes <lucasagomes@gmail.com>
1495+Marco Morais <mmorais@yahoo-inc.com>
1496+Mark Atwood <me@mark.atwood.name>
1497+Mark Goddard <mgoddard@cray.com>
1498+Mark McLoughlin <markmc@redhat.com>
1499+Martyn Taylor <mtaylor@redhat.com>
1500+Mathieu Gagné <mgagne@iweb.com>
1501+Matt Joyce <matt.joyce@cloudscaling.com>
1502+Matt Wagner <matt.wagner@redhat.com>
1503+Matthew Gilliard <matthew.gilliard@hp.com>
1504+Max Lobur <max_lobur@mirantis.com>
1505+Max Lobur <max_lobur@outlook.com>
1506+Michael Davies <michael@the-davies.net>
1507+Michael Kerrin <michael.kerrin@hp.com>
1508+Michael Still <mikal@stillhq.com>
1509+Michael Turek <mjturek@linux.vnet.ibm.com>
1510+Michey Mehta michey.mehta@hp.com
1511+Mikhail Durnosvistov <mdurnosvistov@mirantis.com>
1512+Mikyung Kang <mkkang@isi.edu>
1513+Monty Taylor <mordred@inaugust.com>
1514+Motohiro OTSUKA <ootsuka@mxs.nes.nec.co.jp>
1515+Motohiro Otsuka <ootsuka@mxs.nes.nec.co.jp>
1516+Naohiro Tamura <naohirot@jp.fujitsu.com>
1517+Pablo Fernando Cargnelutti <pablo.fernando.cargnelutti@intel.com>
1518+Peeyush Gupta <gpeeyush@linux.vnet.ibm.com>
1519+Peng Yong <ppyy@pubyun.com>
1520+Phil Day <philip.day@hp.com>
1521+Pádraig Brady <pbrady@redhat.com>
1522+Rafi Khardalian <rafi@metacloud.com>
1523+Rakesh H S <rh-s@hp.com>
1524+Ramakrishnan G <rameshg87@gmail.com>
1525+Rick Harris <rconradharris@gmail.com>
1526+Robert Collins <rbtcollins@hp.com>
1527+Robert Collins <robertc@robertcollins.net>
1528+Rohan Kanade <openstack@rohankanade.com>
1529+Rohan Kanade <rohan.kanade@izeltech.com>
1530+Roman Bogorodskiy <rbogorodskiy@mirantis.com>
1531+Roman Dashevsky <dashevsky@selectel.ru>
1532+Roman Podoliaka <rpodolyaka@mirantis.com>
1533+Roman Prykhodchenko <me@romcheg.me>
1534+Roman Prykhodchenko <rprikhodchenko@mirantis.com>
1535+Ruby Loo <rloo@yahoo-inc.com>
1536+Russell Bryant <rbryant@redhat.com>
1537+Russell Haering <russellhaering@gmail.com>
1538+Sam Betts <sam@code-smash.net>
1539+Sandhya Balakrishnan <sandhya.balakrishnan@hp.com>
1540+Sandy Walsh <sandy@sandywalsh.com>
1541+Sascha Peilicke <saschpe@gmx.de>
1542+Sascha Peilicke <speilicke@suse.com>
1543+Satoru Moriya <satoru.moriya.br@hitachi.com>
1544+Sean Dague <sdague@linux.vnet.ibm.com>
1545+Sergey Lukjanov <slukjanov@mirantis.com>
1546+Sergey Lupersolsky <slupers1@yahoo.com>
1547+Sergey Lupersolsky <slupers@yahoo-inc.com>
1548+Sergey Nikitin <snikitin@mirantis.com>
1549+Shane Wang <shane.wang@intel.com>
1550+Shuangtai Tian <shuangtai.tian@intel.com>
1551+Srinivasa Acharya <rsacharya@hp.com>
1552+Stanislaw Pitucha <stanislaw.pitucha@hp.com>
1553+Steven Dake <sdake@redhat.com>
1554+Stig Telfer <stelfer@cray.com>
1555+Tan Lin <tan.lin.good@gmail.com>
1556+Thierry Carrez <thierry@openstack.org>
1557+Tom Fifield <tom@openstack.org>
1558+Tushar Kalra <tushar@cloudscaling.com>
1559+Vic Howard <victor.r.howard@gmail.com>
1560+Victor Lowther <victor.lowther@gmail.com>
1561+Victor Sergeyev <vsergeyev@mirantis.com>
1562+Vinay B S <vinbs@cisco.com>
1563+Vishvananda Ishaya <vishvananda@gmail.com>
1564+Vladyslav Drok <vdrok@mirantis.com>
1565+Xian Dong, Meng <mengxd@cn.ibm.com>
1566+Yuiko Takada <takada-yuiko@mxn.nes.nec.co.jp>
1567+Yun Mao <yunmao@gmail.com>
1568+Yuriy Taraday <yorik.sar@gmail.com>
1569+Yuriy Zveryanskyy <yzveryanskyy@mirantis.com>
1570+Zhang Yang <neil.zhangyang@huawei.com>
1571+Zhenzan Zhou <zhenzan.zhou@intel.com>
1572+ZhiQiang Fan <aji.zqfan@gmail.com>
1573+ZhiQiang Fan <zhiqiang.fan@huawei.com>
1574+Zhongyue Luo <lzyeval@gmail.com>
1575+Zhongyue Luo <zhongyue.nah@intel.com>
1576+dekehn <dekehn@gmail.com>
1577+divakar-padiyar-nandavar <divakar.padiyar-nandavar@hp.com>
1578+jiangfei <jiangfei0622@huawei.com>
1579+jiangwt100 <wentian@unitedstack.com>
1580+linggao <linggao@us.ibm.com>
1581+lvdongbing <dongbing.lv@kylin-cloud.com>
1582+max_lobur <mlobur@mirantis.com>
1583+ryo.kurahashi <kurahashi-rxa@necst.nec.co.jp>
1584+sjing <sjing@cn.ibm.com>
1585+stephane <stephane@alum.mit.edu>
1586+tanlin <lin.tan@intel.com>
1587+whaom <whaom@cn.ibm.com>
1588+whitekid <whitekid@gmail.com>
1589+yangxurong <yangxurong@huawei.com>
1590+yunhong jiang <yunhong.jiang@intel.com>
1591
1592=== added file 'CONTRIBUTING.rst'
1593--- CONTRIBUTING.rst 1970-01-01 00:00:00 +0000
1594+++ CONTRIBUTING.rst 2015-04-27 18:58:18 +0000
1595@@ -0,0 +1,10 @@
1596+If you would like to contribute to the development of OpenStack,
1597+you must follow the steps documented at:
1598+
1599+ http://docs.openstack.org/infra/manual/developers.html#development-workflow
1600+
1601+Pull requests submitted through GitHub will be ignored.
1602+
1603+Bugs should be filed on Launchpad, not GitHub:
1604+
1605+ https://bugs.launchpad.net/ironic
1606
1607=== added file 'ChangeLog'
1608--- ChangeLog 1970-01-01 00:00:00 +0000
1609+++ ChangeLog 2015-04-27 18:58:18 +0000
1610@@ -0,0 +1,1548 @@
1611+CHANGES
1612+=======
1613+
1614+2015.1.0b2
1615+----------
1616+
1617+* Remove min and max from base.Version
1618+* Add list of python driver packages
1619+* Add policy show_password to mask passwords in driver_info
1620+* Add MANAGEABLE state and associated transitions
1621+* Raise minimum API version to 1.1
1622+* Correct typo in agent_client
1623+* Documentation: Describe the 'spacing' argument
1624+* update docstring for driver_periodic_task's parallel param
1625+* Add documentation on parallel argument for driver periodic tasks
1626+* Rename provision_state to power_state in test_manager.py
1627+* Refactor ilo.deploy._get_single_nic_with_vif_port_id()
1628+* Update agent driver with new field driver_internal_info
1629+* Updated from global requirements
1630+* Add support for driver-specific periodic tasks
1631+* Partial revert of 4606716 until we debug further
1632+* Clean driver_internal_info when changes nodes' driver
1633+* Add Node.driver_internal_info
1634+* Move oslo.config references to oslo_config
1635+* Move oslo.db references to oslo_db
1636+* Revert "Do not pass PXE net config from bootloader to ramdisk"
1637+* Bump oslo.rootwrap to 1.5.0
1638+* Drop deprecated namespace for oslo.rootwrap
1639+* region missing in endpoint selection
1640+* Add :raises: for Version constructor docstring
1641+* Improve testing of the Node's REST API
1642+* Rename NOSTATE to AVAILABLE
1643+* Add support for API microversions
1644+* Address final comments of edf532db91
1645+* Add missing exceptions into function docstring
1646+* Fix typos in commit I68c9f9f86f5f113bb111c0f4fd83216ae0659d36
1647+* Add logic to store the config drive passed by Nova
1648+* Do not POST conductor_affinity in tests
1649+* Add 'irmc_' prefix to optional properties
1650+* Actively check iSCSI connection after login
1651+* Updated from global requirements
1652+* Add iRMC Driver and its iRMC Power module
1653+* Fix drivers.rst doc format error
1654+* Improve test assertion for get_glance_image_properties
1655+* Do not pass PXE net config from bootloader to ramdisk
1656+* Adds get_glance_image_properties
1657+* Fix filter_query in drac/power interface
1658+* Updated from global requirements
1659+* Simplify policy.json
1660+* Replace DIB installation step from git clone to pip
1661+* Add a TODO file
1662+* Updated from global requirements
1663+* Fix function docstring of _get_boot_iso_object_name()
1664+* Improve ironic-dbsync help strings
1665+* Clear locks on conductor startup
1666+* Remove argparse from requirements
1667+* Use oslo_serialization replace oslo.serialization
1668+* Agent driver fails with Swift Multiple Containers
1669+* Add ipmitool to quickstart guide for Ubuntu
1670+* Allow operations on DEPLOYFAIL'd nodes
1671+* Allow associate an instance independent of the node power state
1672+* Improve docstrings about TaskManager's spawning feature
1673+* DracClient to handle ReturnValue validation
1674+* Fix instance_info parameters clearing
1675+* DRAC: Fix wsman host verification
1676+* Updated from global requirements
1677+* Clean up ilo's parse_driver_info()
1678+* Fix ssh _get_power_status as it returned status for wrong node
1679+* Fix RPCService and Ironic Conductor so they shut down gracefully
1680+* Remove jsonutils from openstack.common
1681+* Remove lockfile from dependencies
1682+* Remove IloPXEDeploy.validate()
1683+* Force glance recheck for kernel/ramdisk on rebuild
1684+* iboot power driver: unbound variable error
1685+* Remove unused state transitions
1686+* PXE: Add configdrive support
1687+* Rename localrc for local.conf
1688+* DracClient to handle ClientOptions creation
1689+* Ensure we don't have stale power state in database after power action
1690+* Remove links autogenerated from module names
1691+* Make DD block size adjustable
1692+* Improve testing of state transitions
1693+* Convert drivers to use process_event()
1694+* Update service.py to support graceful Service shutdown
1695+* Ensure that image link points to the correct image
1696+* Raise SSH failure messages to the error level
1697+* Make 'method' explicit for VendorInterface.validate()
1698+* Updated from global requirements
1699+* Provided backward compat for enforcing admin policy
1700+* Allow configuration of neutronclient retries
1701+* Convert check_deploy_timeout to use process_event
1702+* Add requests to requirements.txt
1703+* Enable async callbacks from task.process_event()
1704+* Document dependency on `fuser` for pxe driver
1705+* Distinguish between prepare + deploy errors
1706+* Avoid querying the power state twice
1707+* Add state machine to documentation
1708+* Updated from global requirements
1709+* Adjust the help strings to better reflect usage
1710+* Updated from global requirements
1711+* Updated from global requirements
1712+* Update etc/ironic/ironic.conf.sample
1713+* Fix policy enforcement to properly detect admin
1714+* Minor changes to state model
1715+* Add documentation to create in RegionOne
1716+* Delete unnecessary document files
1717+* Updated from global requirements
1718+* display error logging should be improved
1719+* Refactor async helper methods in conductor/manager.py
1720+* Hide oslo.messaging DEBUG logs by default
1721+* add comments for NodeStates fields
1722+* Stop conductor if no drivers were loaded
1723+* Fix typo in install-guide.rst
1724+* Reuse methods from netutils
1725+* Use get_my_ipv4 from oslo.utils
1726+* improve the neutron configuration in install-guide
1727+* Refactoring for Ironic policy
1728+* PXE: Pass root device hints via kernel cmdline
1729+* Extend API multivalue fields
1730+* Add a fsm state -> dot diagram generator
1731+* Updated from global requirements
1732+* Update command options in the Installation Guide
1733+
1734+2015.1.0b1
1735+----------
1736+
1737+* Improve Agent deploy driver validation
1738+* Add new enrollment and troubleshooting doc sections
1739+* Begin using the state machine for node deploy/teardown
1740+* Add base state machine
1741+* Updated from global requirements
1742+* Get rid of set_failed_state duplication
1743+* Remove Python 2.6 from setup.cfg
1744+* Updated from global requirements
1745+* Update dev quick-start for devstack
1746+* Updated from global requirements
1747+* Correct vmware ssh power manager
1748+* rename oslo.concurrency to oslo_concurrency
1749+* Remove duplicate dependencies from dev-quickstart docs
1750+* Do not strip 'glance://' prefix from image hrefs
1751+* Updated from global requirements
1752+* Fix image_info passed to IPA for image download
1753+* Use Literal Blocks to write code sample in docstring
1754+* Workflow documentation is now in infra-manual
1755+* Add tests to iscsi_deploy.build_deploy_ramdisk_options
1756+* Fix for broken deploy of iscsi_ilo driver
1757+* Updated from global requirements
1758+* Add info on creating a tftp map file
1759+* Add documentation for SeaMicro driver
1760+* Fixed typo in Drac management driver test
1761+* boot_devices.PXE value should match with pyghmi define
1762+* Add decorator that requires a lock for Drac management driver
1763+* Remove useless deprecation warning for node-update maintenance
1764+* Ilo tests refactoring
1765+* Change some exceptions from invalid to missing
1766+* Add decorator that requires a lock for Drac power driver
1767+* Change methods from classmethod to staticmethod
1768+* iLO Management Interface
1769+* Improve docs for running IPA in Devstack
1770+* Update 'Introduction to Ironic' document
1771+* Avoid calling _parse_driver_info in every test
1772+* Updated from global requirements
1773+* Correct link in user guide
1774+* Minor fix to install guide for associating k&r to nodes
1775+* Add serial console feature to seamicro driver
1776+* Support configdrive in agent driver
1777+* Add driver_validate()
1778+* Update drivers VendorInterface validate() method
1779+* Adds help for installing prerequisites on RHEL
1780+* Add documentation about Vendor Methods
1781+* Make vendor methods discoverable via the Ironic API
1782+* Fix PXEDeploy class docstring
1783+* Updated from global requirements
1784+* Vendor endpoints to support different HTTP methods
1785+* Add ipmitool as dependency on RHEL/Fedora systems
1786+* dev-quickstart.rst update to add required packages
1787+* Add gendocs tox job for generating the documentation
1788+* Add gettext to packages needed in dev quickstart
1789+* Convert qcow2 image to raw format when deploy
1790+* Update iLO driver documentation
1791+* Disable IPMI timeout before setting boot device
1792+* Updated from global requirements
1793+* ConductorManager catches Exceptions
1794+* Remove unused variable in agent._get_interfaces()
1795+* Enable hacking rule E265
1796+* Add sync and async support for passthru methods
1797+* Fix documentation on Standard driver interfaces
1798+* Add a mechanism to route vendor methods
1799+* Remove redundant FunctionalTest usage in API tests
1800+* Use wsme.Unset as default value for API objects
1801+* Fix traceback on rare agent error case
1802+* Make _send_sensor_data more cooperative
1803+* Updated from global requirements
1804+* Add logging to driver vendor_passthru functions
1805+* Support ipxe with Dnsmasq
1806+* Correct "returns" line in PXE deploy method
1807+* Remove all redundant setUp() methods
1808+* Update install guide to install tftp
1809+* Remove duplicated _fetch_images function
1810+* Change the force_raw_image config usage
1811+* Clear maintenance_reason when setting maintenance=False
1812+* Removed hardcoded IDs from "port" test resources
1813+* Switch to oslo.concurrency
1814+* Updated from global requirements
1815+* Use docstrings for attributes in api/controllers
1816+* Put nodes-related API in same section
1817+* Fix get_test_node attributes set incorrectly
1818+* Get new auth token for ramdisk if old will expire soon
1819+* Delete unused 'use_ipv6' config option
1820+* Updated from global requirements
1821+* Add maintenance to RESTful web API documentation
1822+* Updated from global requirements
1823+* Iterate over glance API servers
1824+* Add API endpoint to set/unset the node maintenance mode
1825+* Removed hardcoded IDs from "node" test resources
1826+* Add maintenance_reason when setting maintenance mode
1827+* Add Node.maintenance_reason
1828+* Fix F811 error in pep8
1829+* Improve hash ring value conversion
1830+* Add SNMP driver for Aten PDU's
1831+* Update node-validate error messages
1832+* Store image disk_format and container_format
1833+* Continue heartbeating after DB connection failure
1834+* TestAgentVendor to use the fake_agent driver
1835+* Put a cap on our cyclomatic complexity
1836+* More helpful failure for tests on noexec /tmp
1837+* Update doc headers at end of Juno
1838+* Fix E131 PEP8 errors
1839+* Add documentation for iLO driver(s)
1840+* Enable E111 PEP8 check
1841+* Updated from global requirements
1842+* Fix F812 PEP8 error
1843+* Enable H305 PEP8 check
1844+* Enable H307 PEP8 check
1845+* Updated from global requirements
1846+* Enable H405 PEP8 check
1847+* Enable H702 PEP8 check
1848+* Enable H904 PEP8 check
1849+* Migration to oslo.serialization
1850+* Add the PXE VendorPassthru interface to PXEDracDriver
1851+* Adds instructions for deploying instances on real hardware
1852+* Fix pep8 test
1853+* Add missing attributes to sample API objects
1854+* Fix markup-related issues in documentation
1855+* Add documentation for PXE UEFI setup
1856+
1857+2014.2.rc2
1858+----------
1859+
1860+* Clear hash ring cache in get_topic_for*
1861+* Fix exceptions names and messages for Keystone errors
1862+* Remove unused change_node_maintenance_mode from rpcapi
1863+* Imported Translations from Transifex
1864+* Clear hash ring cache in get_topic_for*
1865+* Move database fixture to a separate test case
1866+* KeyError from AgentVendorInterface._heartbeat()
1867+* Validate the power interface before deployment
1868+* Cleans up some Sphinx rST warnings in Ironic
1869+* Remove kombu as a dependency for Ironic
1870+
1871+2014.2.rc1
1872+----------
1873+
1874+* Make hash ring mapping be more consistent
1875+* Add periodic task to rebuild conductor local state
1876+* Open Kilo development
1877+* Add "affinity" tracking to nodes and conductors
1878+* ilo* drivers to use only ilo credentials
1879+* Update hacking version in test requirements
1880+* Add a call to management.validate(task)
1881+* Replace custom lazy loading by stevedore
1882+* Updated from global requirements
1883+* Remove useless variable in migration
1884+* Use DbTestCase as test base when context needed
1885+* For convention rename the first classmethod parameter to cls
1886+* Always reset target_power_state in node_power_action
1887+* Imported Translations from Transifex
1888+* Stop running check_uptodate in the pep8 testenv
1889+* Add HashRingManager to wrap hash ring singleton
1890+* Fix typo in agent validation code
1891+* Conductor changes target_power_state before starting work
1892+* Adds openSUSE support for developer documentation
1893+* Updated from global requirements
1894+* Remove untranslated PO files
1895+* Update ironic.conf.sample
1896+* Remove unneeded context initialization in tests
1897+* Force the SSH commands to use their default language
1898+* Add parameter to override locale to utils.execute
1899+* Refactor PXE clean up tests
1900+* Updated from global requirements
1901+* Don't reraise Exceptions from agent driver
1902+* Add documentation for ironic-dbsync command
1903+* Do not return 'id' in REST API error messages
1904+* Separate the agent driver config from the base localrc config
1905+* pxe_ilo driver to call iLO set_boot_device
1906+* Remove redundant context parameter
1907+* Update docs with new dbsync command
1908+* Update devstack docs, require Ubuntu 14.04
1909+* Do not use the context parameter on refresh()
1910+* Pass ipa-driver-name to agent ramdisk
1911+* Do not set the context twice when forming RPC objects
1912+* Make context mandatory when instantiating a RPC object
1913+* Neutron DHCP implementation to raise exception if no ports have VIF
1914+* Do not cache auth token in Neutron DHCP provider
1915+* Imported Translations from Transifex
1916+* add_node_capability and rm_node_capability unable to save changes to db
1917+* Updated from global requirements
1918+* Handle SNMP exception error.PySnmpError
1919+* Use standard locale in list_partitions
1920+* node_uuid should not be used to create test port
1921+* Revert "Revert "Search line with awk itself and avoid grep""
1922+* Fix code error in pxe_ilo driver
1923+* Add unit tests for SNMPClient
1924+* Check whether specified FS is supported
1925+* Sync the doc with latest code
1926+* Add a doc note about the vendor_passthru endpoint
1927+* Remove 'incubated' documentation theme
1928+* Import modules for fake IPMINative/iBoot drivers
1929+* Allow clean_up with missing image ref
1930+* mock.called_once_with() is not a valid method
1931+* Fix Devstack docs for zsh users
1932+* Fix timestamp column migration
1933+* Update ironic states and documentation
1934+* Stop using intersphinx
1935+* Updated from global requirements
1936+* Remove the objectify decorator
1937+* Add reserve() and release() to Node object
1938+* Add uefi boot mode support in IloVirtualMediaIscsiDeploy
1939+* Don't write python bytecode while testing
1940+* Support for setting boot mode in pxe_ilo driver
1941+* Remove bypassing of H302 for gettextutils markers
1942+* Revert "Search line with awk itself and avoid grep"
1943+* Search line with awk itself and avoid grep
1944+* Add list_by_node_id() to Port object
1945+* Remove unused modules from openstack-common.conf
1946+* Sync the document with the current implementation
1947+* Unify the sensor data format
1948+* Updated from global requirements
1949+* Deprecate Ironic compute driver and sched manager
1950+* Log ERROR power state in node_power_action()
1951+* Fix compute_driver and scheduler_host_manager in install-guide
1952+* Use oslo.utils instead of ironic.openstack.common
1953+* Use expected, actual order for PXE template test
1954+* Fix agent PXE template
1955+* Translator functions cleanup part 3
1956+* Translator functions cleanup part 2
1957+* Imported Translations from Transifex
1958+* Updated from global requirements
1959+* Remove XML from api doc samples
1960+* Update ironic.conf.sample
1961+* Fix race conditions running pxe_utils tests in parallel
1962+* Switch to "incubating" doc theme
1963+* Minor fixes for ipminative console support
1964+* Translator functions cleanup part 4
1965+* Translator functions cleanup part 1
1966+* Remove unnecessary mapping from Agent drivers
1967+* mock.assert_called_once() is not valid method
1968+* Use models.TimestampMixin from oslo.db
1969+* Updated from global requirements
1970+
1971+2014.2.b3
1972+---------
1973+
1974+* Driver merge review comments from 111425
1975+* Nova review updates for _node_resource
1976+* Ignore backup files
1977+* IloVirtualMediaAgent deploy driver
1978+* IloVirtualMediaIscsi deploy driver
1979+* Unbreak debugging via testr
1980+* Interactive console support for ipminative driver
1981+* Add UEFI based deployment support in Ironic
1982+* Adds SNMP power driver
1983+* Control extra space for images conversion in image_cache
1984+* Use metadata.create_all() to initialise DB schema
1985+* Fix minor issues in the DRAC driver
1986+* Add send-data-to-ceilometer support for pxe_ipminative driver
1987+* Reduce redundancy in conductor manager docstrings
1988+* Fix typo in PXE driver docstrings
1989+* Update installation guide for syslinux 6
1990+* Updated from global requirements
1991+* Imported Translations from Transifex
1992+* Avoid deadlock when logging network_info
1993+* Implements the DRAC ManagementInterface for get/set boot device
1994+* Rewrite images tests with mock
1995+* Add boot_device support for vbox
1996+* Remove gettextutils _ injection
1997+* Make DHCP provider pluggable
1998+* DRAC wsman_{enumerate, invoke}() to return an ElementTree object
1999+* Remove futures from requirements
2000+* Script to migrate Nova BM data to Ironic
2001+* Imported Translations from Transifex
2002+* Updated from global requirements
2003+* Fix unit tests with keystoneclient master
2004+* Add support for interacting with swift
2005+* properly format user guide in RST
2006+* Updated from global requirements
2007+* Fix typo in user-guide.rst
2008+* Add console interface to agent_ipmitool driver
2009+* Add support for creating vfat and iso images
2010+* Check ERROR state from driver in _do_sync_power_state
2011+* Set PYTHONHASHSEED for venv tox environment
2012+* Add iPXE Installation Guide documentation
2013+* Add management interface for agent drivers
2014+* Add driver name on driver load exception
2015+* Take iSCSI deploy out of pxe driver
2016+* Set ssh_virt_type to vmware
2017+* Update nova driver's power_off() parameters
2018+* return power state ERROR instead of an exception
2019+* handle invalid seamicro_api_version
2020+* Imported Translations from Transifex
2021+* Nova ironic driver review update requests to p4
2022+* Allow rebuild of node in ERROR and DEPLOYFAIL state
2023+* Use cache in node_is_available()
2024+* Query full node details and cache
2025+* Add in text for text mode on trusty
2026+* Add Parallels virtualisation type
2027+* IPMI double bridging functionality
2028+* Add DracDriver and its DracPower module
2029+* use MissingParameterValue exception in iboot
2030+* Update compute driver macs_for_instance per docs
2031+* Update DevStack guide when querying the image UUID
2032+* Updated from global requirements
2033+* Fix py3k-unsafe code in test_get_properties()
2034+* Fix tear_down a node with missing info
2035+* Remove d_info param from _destroy_images
2036+* Add docs for agent driver with devstack
2037+* Removes get_port_by_vif
2038+* Update API document with BootDevice
2039+* Replace incomplete "ilo" driver with pxe_ilo and fake_ilo
2040+* Handle all exceptions from _exec_ipmitool
2041+* Remove objectify decorator from dbapi's {get, register}_conductor()
2042+* Improve exception handling in console code
2043+* Use valid exception in start_shellinabox_console
2044+* Remove objectify decorator from dbapi.update_* methods
2045+* Add list() to Chassis, Node, Port objects
2046+* Raise MissingParameterValue when validating glance info
2047+* Mechanism to cleanup all ImageCaches
2048+* Driver merge review comments from 111425-2-3
2049+* Raise MissingParameterValue instead of Invalid
2050+* Import fixes from the Nova driver reviews
2051+* Imported Translations from Transifex
2052+* Use auth_token from keystonemiddleware
2053+* Make swift tempurl key secret
2054+* Add method for deallocating networks on reschedule
2055+* Reduce running time of test_different_sizes
2056+* Remove direct calls to dbapi's get_node_by_instance
2057+* Add create() and destroy() to Port object
2058+* Correct `op.drop_constraint` parameters
2059+* Use timeutils from one place
2060+* Add create() and destroy() to Chassis object
2061+* Add iPXE support for Ironic
2062+* Imported Translations from Transifex
2063+* Add posix_ipc to requirements
2064+* backport reviewer comments on nova.virt.ironic.patcher
2065+* Move the 'instance_info' fields to GenericDriverFields
2066+* Migration to oslo.utils library
2067+* Fix self.fields on API Port object
2068+* Fix self.fields on API Chassis object
2069+* Sync oslo.incubator modules
2070+* Updated from global requirements
2071+* Expose {set,get}_boot_device in the API
2072+* Check if boot device is persistent on ipminative
2073+* Sync oslo imageutils, strutils to Ironic
2074+* Add charset and engine settings to every table
2075+* Imported Translations from Transifex
2076+* Remove dbapi calls from agent driver
2077+* Fix not attribute '_periodic_last_run'
2078+* Implements send-data-to-ceilometer
2079+* Port iBoot PDU driver from Nova
2080+* Log exception with translation
2081+* Add ironic-python-agent deploy driver
2082+* Updated from global requirements
2083+* Imported Translations from Transifex
2084+* Clean up calls to get_port()
2085+* Clean up calls to get_chassis()
2086+* Do not rely on hash ordering in tests
2087+* Update_port should expect MACAlreadyExists
2088+* Imported Translations from Transifex
2089+* Adding swift temp url support
2090+* Push the image cache ttl way up
2091+* Imported Translations from Transifex
2092+* SSH virsh to use the new ManagementInterface
2093+* Split test case in ironic.tests.conductor.test_manager
2094+* Tune down node_locked_retry_{attempts,interval} config for tests
2095+* Add RPC version to test_get_driver_properties
2096+
2097+2014.2.b2
2098+---------
2099+
2100+* Import fixes from the Nova driver reviews
2101+* Generalize exception handling in Nova driver
2102+* Fix nodes left in an incosistent state if no workers
2103+* IPMINative to use the new ManagementInterface
2104+* Backporting nova host manager changes into ironic
2105+* Catch oslo.db error instead of sqlalchemy error
2106+* Add a test case for DB schema comparison
2107+* remove ironic-manage-ipmi.filters
2108+* Implement API to get driver properties
2109+* Add drivers.base.BaseDriver.get_properties()
2110+* Implement retry on NodeLocked exceptions
2111+* SeaMicro to use the new ManagementInterface
2112+* Import fixes from Nova scheduler reviews
2113+* Rename/update common/tftp.py to common/pxe_utils.py
2114+* Imported Translations from Transifex
2115+* Factor out deploy info from PXE driver
2116+* IPMITool to use the new ManagementInterface
2117+* Use mock.assert_called_once_with()
2118+* Add missing docstrings
2119+* Raise appropriate errors on duplicate Node, Port and Chassis creation
2120+* Add IloDriver and its IloPower module
2121+* Add methods to ipmitool driver
2122+* Use opportunistic approach for migration testing
2123+* Use oslo.db library
2124+* oslo.i18n migration
2125+* Import a few more fixes from the Nova driver
2126+* Set a more generous default image cache size
2127+* Fix wrong test fixture for Node.properties
2128+* Make ComputeCapabilitiesFilter work with Ironic
2129+* Add more INFO logging to ironic/common/service.py
2130+* Clean up nova virt driver test code
2131+* Fix node to chassis and port to node association
2132+* Allow Ironic URL from config file
2133+* Imported Translations from Transifex
2134+* Update webapi doc with link and console
2135+* REST API 'limit' parameter to only accept positive values
2136+* Update docstring for api...node.validate
2137+* Document 'POST /v1/.../vendor_passthru'
2138+* ManagementInterface {set, get}_boot_device() to support 'persistent'
2139+* Use my_ip for neutron URL
2140+* Updated from global requirements
2141+* Add more INFO logging to ironic/conductor
2142+* Specify rootfstype=ramfs deploy kernel parameter
2143+* Add set_spawn_error_hook to TaskManager
2144+* Imported Translations from Transifex
2145+* Updates the Ironic on Devstack dev documentation
2146+* Simplify error handling
2147+* Add gettextutils._L* to import_exceptions
2148+* Fix workaround for the "device is busy" problem
2149+* Allow noauth for Neutron
2150+* Minor cleanups to nova virt driver and tests
2151+* Update nova rebuild to account for new image
2152+* Updated from global requirements
2153+* pep8 cleanup of Nova code
2154+* PEP fixes for the Nova driver
2155+* Fix glance endpoint tests
2156+* Update Nova's available resources at termination
2157+* Fix the section name in CONTRIBUTING.rst
2158+* Add/Update docstrings in the Nova Ironic Driver
2159+* Update Nova Ironic Driver destroy() method
2160+* Nova Ironic driver get_info() to return memory stats in KBytes
2161+* Updates Ironic Guide with deployment information
2162+* Add the remaining unittests to the ClientWrapper class
2163+* Wait for Neutron port updates when using SSHPower
2164+* Fix 'fake' driver unable to finish a deploy
2165+* Update "Exercising the Services Locally" doc
2166+* Fixing hardcoded glance protocol
2167+* Remove from_chassis/from_nodes from the API doc
2168+* Prevent updating UUID of Node, Port and Chassis on DB API level
2169+* Imported Translations from Transifex
2170+* Do not delete pxe_deploy_{kernel, ramdisk} on tear down
2171+* Implement security groups and firewall filtering methods
2172+* Add genconfig tox job for sample config file generation
2173+* Mock pyghmi lib in unit tests if not present
2174+* PXE to pass hints to ImageCache on how much space to reclaim
2175+* Add some real-world testing on DiskPartitioner
2176+* Eliminate races in Conductor _check_deploy_timeouts
2177+* Use temporary dir for image conversion
2178+* Updated from global requirements
2179+* Move PXE instance level parameters to instance_info
2180+* Clarify doc: API is admin only
2181+* Mock time.sleep for the IPMI tests
2182+* Destroy instance to clear node state on failure
2183+* Add 'context' parameter to get_console_output()
2184+* Cleanup virt driver tests and verify final spawn
2185+* Test fake console driver
2186+* Allow overriding the log level for ironicclient
2187+* Virt driver logging improvements
2188+* ipmitool driver raises DriverLoadError
2189+* VendorPassthru.validate()s call _parse_driver_info
2190+* Enforce a minimum time between all IPMI commands
2191+* Remove 'node' parameter from the validate() methods
2192+* Test for membership should be 'not in'
2193+* Replace mknod() with chmod()
2194+* Factoring out PXE and TFTP functions
2195+* Let ipmitool natively retry commands
2196+* Sync processutils from oslo code
2197+* Driver interface's validate should return nothing
2198+* Use .png instead of .gif images
2199+* Fix utils.execute() for consistency with Oslo code
2200+* remove default=None for config options
2201+
2202+2014.2.b1
2203+---------
2204+
2205+* Stop ipmitool.validate from touching the BMC
2206+* Set instance default_ephemeral_device
2207+* Add unique constraint to instance_uuid
2208+* Add node id to DEBUG messages in impitool
2209+* Remove 'node' parameter from the Console and Rescue interfaces
2210+* TaskManager: Only support single node locking
2211+* Allow more time for API requests to be completed
2212+* Add retry logic to iscsiadm commands
2213+* Wipe any metadata from a nodes disk
2214+* Rework make_partitions logic when preserve_ephemeral is set
2215+* Fix host manager node detection logic
2216+* Add missing stats to IronicNodeState
2217+* Update IronicHostManager tests to better match how code works
2218+* Update Nova driver's list_instance_uuids()
2219+* Remove 'fake' and 'ssh' drivers from default enabled list
2220+* Work around iscsiadm delete failures
2221+* Mock seamicroclient lib in unit tests if not present
2222+* Cleanup mock patch without `with` part 2
2223+* Add __init__.py for nova scheduler filters
2224+* Skip migrations test_walk_versions instead of pass
2225+* Improving unit tests for _do_sync_power_state
2226+* Fix AttributeError when calling create_engine()
2227+* Reuse validate_instance_and_node() Nova ironic Driver
2228+* Fix the logging message to identify node by uuid
2229+* Fix concurrent deletes in virt driver
2230+* Log exceptions from deploy and tear_down
2231+* PXE driver to validate the requested image in Glance
2232+* Return the HTTP Location for accepted requestes
2233+* Return the HTTP Location for newly created resources
2234+* Fix tests with new keystoneclient
2235+* list_instances() to return a list of instances names
2236+* Pass kwargs to ClientWrapper's call() method
2237+* Remove 'node' parameter from the Power interface
2238+* Set the correct target versions for the RPC methods
2239+* Consider free disk space before downloading images into cache
2240+* Change NodeLocked status code to a client-side error
2241+* Remove "node" parameter from methods handling power state in docs
2242+* Add parallel_image_downloads option
2243+* Synced jsonutils from oslo-incubator
2244+* Fix chassis bookmark link url
2245+* Remove 'node' parameter from the Deploy interface
2246+* Imported Translations from Transifex
2247+* Remove all mostly untranslated PO files
2248+* Cleanup images after deployment
2249+* Fix wrong usage of mock methods
2250+* Using system call for downloading files
2251+* Run keepalive in a dedicated thread
2252+* Don't translate debug level logs
2253+* Update dev quickstart guide for ephemeral testing
2254+* Speed up Nova Ironic driver tests
2255+* Renaming ironicclient exceptions in nova driver
2256+* Fix bad Mock calls to assert_called_once()
2257+* Cleanup mock patch without `with` part 1
2258+* Corrects a typo in RESTful Web API (v1) document
2259+* Updated from global requirements
2260+* Clean up openstack-common.conf
2261+* Remove non-existent 'pxe_default_format' parameter from patcher
2262+* Remove explicit dependency on amqplib
2263+* Pin RPC client version min == max
2264+* Check requested image size
2265+* Fix 'pxe_preserve_ephemeral' parameter leakage
2266+* RPC_API_VERSION out of sync
2267+* Simplify calls to ImageCache in PXE module
2268+* Implement the reboot command on the Ironic Driver
2269+* Place root partition last so that it can always be expanded
2270+* Stop creating a swap partition when none was specified
2271+* Virt driver change to use API retry config value
2272+* Implement more robust caching for master images
2273+* Decouple state inspection and availability check
2274+* Updated from global requirements
2275+* Fix ironic node state comparison
2276+* Add create() and destroy() to Node
2277+* Fix typo in rpcapi.driver_vendor_passthru
2278+* Support serial console access
2279+* Remove 'node' parameter from the VendorPassthru interface
2280+* Updated from global requirements
2281+* Synced jsonutils from oslo-incubator
2282+* Fix chassis-node relationship
2283+* Implement instance rebuild in nova.virt.driver
2284+* Sync oslo logging
2285+* Add ManagementInterface
2286+* Clean oslo dependencies files
2287+* Return error immediately if set_console_mode is not supported
2288+* Fix bypassed reference to node state values
2289+* Updated from global requirements
2290+* Port to oslo.messaging
2291+* Drivers may expose a top-level passthru API
2292+* Overwrite instance_exists in Nova Ironic Driver
2293+* Update Ironic User Guide post landing for 41af7d6b
2294+* Spawn support for TaskManager and 2 locking fixes
2295+* Document ClusteredComputeManager
2296+* Clean up calls to get_node()
2297+* nova.virt.ironic passes ephemeral_gb to ironic
2298+* Implement list_instance_uuids() in Nova driver
2299+* Modify the get console API
2300+* Complete wrapping ironic client calls
2301+* Add worker threads limit to _check_deploy_timeouts task
2302+* Use DiskPartitioner
2303+* Better handling of missing drivers
2304+* Remove hardcoded node id value
2305+* cleanup docstring for drivers.utils.get_node_mac_addresses
2306+* Update ironic.conf.sample
2307+* Make sync_power_states yield
2308+* Refactor sync_power_states tests to not use DB
2309+* Add DiskPartitioner
2310+* Some minor clean up of various doc pages
2311+* Fix message preventing overwrite the instance_uuid
2312+* Install guide for Ironic
2313+* Refactor the driver fields mapping
2314+* Imported Translations from Transifex
2315+* Fix conductor.manager test assertion order
2316+* Overwriting node_is_available in IronicDriver
2317+* Sync oslo/common/excutils
2318+* Sync oslo/config/generator
2319+* Cherry pick oslo rpc HA fixes
2320+* Add Ironic User Guide
2321+* Remove a DB query for get_ports_by_node()
2322+* Fix missed stopping of conductor service
2323+* Encapsulate Ironic client retry logic
2324+* Do not sync power state for new invalidated nodes
2325+* Make tests use Node object instead of dict
2326+* Sync object list stuff from Nova
2327+* Fix Node object version
2328+* Cleanup running conductor services in tests
2329+* Factor hash ring management out of the conductor
2330+* Replace sfdisk with parted
2331+* Handling validation in conductor consistently
2332+* JsonPatch add operation on existing property
2333+* Updated from global requirements
2334+* Remove usage of Glance from PXE clean_up()
2335+* Fix hosts mapping for conductor's periodic tasks
2336+* Supports filtering port by address
2337+* Fix seamicro power.validate() method definition
2338+* Update tox.ini to also run nova tests
2339+* Updated from global requirements
2340+* Fix messages formatting for _sync_power_states
2341+* Refactor nova.virt.ironic.driver get_host_stats
2342+* Use xargs -0 instead of --null
2343+* Change admin_url help in ironic driver
2344+* Sync base object code with Nova's
2345+* Add Node.instance_info field
2346+* Fix self.fields on API Node object
2347+* Show maintenance field in GET /nodes
2348+* Move duplicated _get_node(s)_mac_addresses()
2349+* Fix grammar in error string in pxe driver
2350+* Reduce logging output from non-Ironic libraries
2351+* Open Juno development
2352+
2353+2014.1.rc1
2354+----------
2355+
2356+* Fix spelling error in conductor/manager
2357+* Improved coverage for ironic API
2358+* Manually update all translated strings
2359+* Check that all po/pot files are valid
2360+* If no swap is specified default to 1MB
2361+* Fix Nova rescheduling tear down problem
2362+* Remove obsolete po entries - they break translation jobs
2363+* Add note to ssh about impact on ci testing
2364+* Adds exact match filters to nova scheduler
2365+* Clean up IronicNodeStates.update_from_compute_node
2366+* ironic_host_manager was missing two stats
2367+* Imported Translations from Transifex
2368+* Fix seamicro validate() method definition
2369+* Remove some obsolete settings from DevStack doc
2370+* Raise unexpected exceptions during destroy()
2371+* Start using oslosphinx theme for docs
2372+* Provide a new ComputeManager for Ironic
2373+* Nova Ironic driver to set pxe_swap_mb in Ironic
2374+* Fix strings post landing for c63e1d9f6
2375+* Run periodic_task in a with a dynamic timer
2376+* Update SeaMicro to use MixinVendorInterface
2377+* Run ipmi power status less aggressively
2378+* Avoid API root controller dependency on v1 dir
2379+* Update Neutron if mac address of the port changed
2380+* Replace fixtures with mock in test_keystone.py
2381+* Decrease running time of SeaMicro driver tests
2382+* Remove logging of exceptions from controller's methods
2383+* Imported Translations from Transifex
2384+* Fix missed exception raise in _add_driver_fields
2385+* Speed up ironic tests
2386+* Pass no arguments to _wait_for_provision_state()
2387+* Adds max retry limit to sync_power_state task
2388+* Updated from global requirements
2389+* Imported Translations from Transifex
2390+* Stop incorrectly returning rescue: supported
2391+* Correct version.py and update current version string
2392+* Documentation for deploying DevStack /w Ironic
2393+* Hide rescue interface from validate() output
2394+* Change set_console_mode() to use greenthreads
2395+* Fix help string for a glance option
2396+* Expose API for fetching a single driver
2397+* Change JsonEncodedType.impl to TEXT
2398+* Fix traceback hook for avoid duplicate traces
2399+* Fix 'spacing' parameters for periodic tasks
2400+* Permit passing SSH keys into the Ironic API
2401+* Better instance-not-found handling within IronicDriver
2402+* Make sure auth_url exists and is not versionless
2403+* Conductor de-registers on shutdown
2404+* Change deploy validation exception handling
2405+* Suppress conductor logging of expected exceptions
2406+* Remove unused method from timeutils
2407+* Add admin_auth_token option for nova driver
2408+* Remove redundant nova virt driver test
2409+* Process public API list as regular expressions
2410+* Enable pep8 tests for the Nova Ironic Driver
2411+* Fix typo tenet -> tenant
2412+* Stop logging paramiko's DEBUG and INFO messages
2413+* Set boot device to PXE when deploying
2414+* Driver utils should raise unsupported method
2415+* Delete node while waiting for deploy
2416+* Check BMC availability in ipmitool 'validate' method
2417+* SeaMicro use device parameter for set_boot_device
2418+* Make the Nova Ironic driver to wait for ACTIVE
2419+* Fix misspelled impi to ipmi
2420+* Do not use __builtin__ in python3
2421+* Use range instead xrange to keep python 3.X compatibility
2422+* Set the database.connection option default value
2423+* PXE validate() to fail if no Ironic API URL
2424+* Improve Ironic Conductor threading & locks
2425+* Generic MixinVendorInterface using static mapping
2426+* Conductor logs better error if seamicroclient missing
2427+* Add TaskManager lock on change port data
2428+* Nova ironic driver to retry on HTTP 503
2429+* Mark hash_replicas as experimental
2430+* do_node_deploy() to use greenthreads
2431+* Move v1 API tests to separate v1 directory
2432+* Pin iso8601 logging to WARN
2433+* Only fetch node once for vif actions
2434+* Fix how nova ironic driver gets flavor information
2435+* Imported Translations from Transifex
2436+* API: Add sample() method to remaining models
2437+* Import Nova "ironic" driver
2438+* Remove errors from API documentation
2439+* Add libffi-dev(el) dependency to quickstart
2440+* Updated from global requirements
2441+* Remove redundant default value None for dict.get
2442+
2443+2014.1.b3
2444+---------
2445+
2446+* Refactor vendor_passthru to use conductor async workers
2447+* Fix wrong exception raised by conductor for node
2448+* Fix params order in assertEqual
2449+* Sync the log_handler from oslo
2450+* Fix SeaMicro driver post landing for ba207b4aa0
2451+* Implements SeaMicro VendorPassThru functionality
2452+* Implement the SeaMicro Power driver
2453+* Fix provision_updated_at deserialization
2454+* Remove jsonutils from test_rpcapi
2455+* Do not delete a Node which is not powered off
2456+* Add provision_updated_at to node's resource
2457+* Prevent a node in maintenance from being deployed
2458+* Allow clients to mark a node as in maintenance
2459+* Support preserve_ephemeral
2460+* Updated from global requirements
2461+* API: Expose a way to start/stop the console
2462+* Add option to sync node power state from DB
2463+* Make the PXE driver understand ephemeral disks
2464+* Log deploy_utils.deploy() erros in the PXE driver
2465+* Removing get_node_power_state, bumping RPC version
2466+* Add timeout for waiting callback from deploy ramdisk
2467+* Prevent GET /v1/nodes returning maintenance field
2468+* Suggested improvements to _set_boot_device
2469+* Move ipminative _set_boot_device to VendorPassthru
2470+* Sync common db code from Oslo
2471+* PXE clean_up() to remove the pxe_deploy_key parameter
2472+* Add support for custom libvirt uri
2473+* Python 3: replace "im_self" by "__self__"
2474+* Fix race condition when deleting a node
2475+* Remove extraneous vim configuration comments for ironic
2476+* Do not allow POST ports and chassis internal attributes
2477+* Do not allow POST node's internal attributes
2478+* Unused 'pxe_key_data' & 'pxe_instance_name' info
2479+* Add provision_updated_at field to nodes table
2480+* Exclude nodes in DEPLOYWAIT state from _sync_power_states
2481+* Sync common config module from Oslo
2482+* Get rid object model `dict` methods part 4
2483+* Sync Oslo rpc module to Ironic
2484+* Clarify and fix the dev-quickstart doc some more
2485+* Do not use CONF as a default parameter value
2486+* Simplify locking around acquiring Node resources
2487+* Improve help strings
2488+* Remove shebang lines from code
2489+* Use six.moves.urllib.parse instead of urlparse
2490+* Add string representation method to MultiType
2491+* Fix test migrations for alembic
2492+* Sync Oslo gettextutils module to Ironic
2493+* NodeLocked returns 503 error status
2494+* Supports OPERATOR priv level for ipmitool driver
2495+* Correct assertEqual order from patch e69e41c99fb
2496+* PXE and SSH validate() method to check for a port
2497+* Task object as paramater to validate() methods
2498+* Fix dev-quick-start.rst post landing for 9d81333fd0
2499+* API validates driver name for both POST and PATCH
2500+* Sync Oslo service module to Ironic
2501+* Move ipmitool _set_boot_device to VendorPassthru
2502+* Use six.StringIO/BytesIO instead of StringIO.StringIO
2503+* Add JSONEncodedType with enforced type checking
2504+* Correct PXEPrivateMethodsTestCase.setUp
2505+* Don't raise MySQL 2013 'Lost connection' errors
2506+* Use the custom wsme BooleanType on the nodes api
2507+* Add wsme custom BooleanType type
2508+* Fix task_manager acquire post landing for c4f2f26ed
2509+* Add common.service config options to sample
2510+* Removes use of timeutils.set_time_override
2511+* Replace assertEqual(None, *) with assertIsNone in tests
2512+* Replace nonexistent mock assert methods with real ones
2513+* Log IPMI power on/off timeouts
2514+* Remove None as default value for dict get()
2515+* Fix autodoc formatting in pxe.py
2516+* Fix race condition when changing node states
2517+* Use StringType from WSME
2518+* Add testing and doc sections to docs/dev-quickstart
2519+* Implement _update_neutron in PXE driver
2520+* Remove _load_one_plugin fallback
2521+* SSHPower driver support VMware ESXi
2522+* Make ironic-api not single threaded
2523+* Remove POST calls in tests for resource creation
2524+* Add topic to the change_node_maintenance_mode() RPC method
2525+* Fix API inconsistence when changing node's states
2526+* Add samples to serve API through Apache mod_wsgi
2527+* Add git dependency to quickstart docs
2528+* Add get_console() method
2529+* Remove unnecessary json dumps/loads from tests
2530+* Add parameter for filtering nodes by maintenance mode
2531+* Rename and update ironic-deploy-helper rootwrap
2532+* Remove tox locale overrides
2533+* Updated from global requirements
2534+* Move eventlent monkeypatch out of cmd/
2535+* Fix misspellings in ironic
2536+* Ensure parameter order of assertEqual correct
2537+* Return correct HTTP response codes for create ops
2538+* Fix broken doc links on the index page
2539+* Allow to tear-down a node waiting to be deployed
2540+* Improve NodeLocked exception message
2541+* Expose 'reservation' field of a node via API
2542+* Implement a multiplexed VendorPassthru example
2543+* Fix log and test for NeutronAPI.update_port_dhcp_opts
2544+* Fix 'run_as_root' parameter check in utils
2545+* Handle multiple exceptions raised by jsonpatch
2546+* API tests to check for the return codes
2547+* Imported Translations from Transifex
2548+* Move test__get_nodes_mac_addresses
2549+* Removed duplicated function to create a swap fs
2550+* Updated from global requirements
2551+* Add futures to requirements
2552+* Fix missing keystone option in ironic.conf.sample
2553+* Adds Neutron support to Ironic
2554+* Replace CONF.set_default with self.config
2555+* Fix ssh_port type in _parse_driver_info() from ssh.py
2556+* Improve handling of invalid input in HashRing class
2557+* Sync db.sqlalchemy code from Oslo
2558+* Add lockfile>=0.8 to requirements.txt
2559+* Remove net_config_template options
2560+* Remove deploy kernel and ramdisk global config
2561+* Update docstrings in ssh.py
2562+* SSHPower driver raises IronicExceptions
2563+* mock's return value for processutils.ssh_execute
2564+* API: Add sample() method on Node
2565+* Update method doc strings in pxe.py
2566+* Minor documentation update
2567+* Removed unused exceptions
2568+* Bump version of sphinxcontrib-pecanwsme
2569+* Add missing parameter in call to _load_one_plugin
2570+* Docstrings for ipmitool
2571+* alembic with initial migration and tests
2572+* Update RPC version post-landing for 9bc5f92fb
2573+* ipmitool's _power_status raises IPMIFailure
2574+
2575+2014.1.b2
2576+---------
2577+
2578+* Add [keystone_authtoken] to ironic.conf.sample
2579+* Updated from global requirements
2580+* Add comment about node.instance_uuid
2581+* Run mkfs as root
2582+* Remove the absolute paths from ironic-deploy-helper.filters
2583+* PXE instance_name is no longer mandatory
2584+* Remove unused config option - pxe_deploy_timeout
2585+* Delete the iscsi target
2586+* Imported Translations from Transifex
2587+* Fix non-unique tftp dir instance_uuid
2588+* Fix non-unique pxe driver 'instance_name'
2589+* Add missing "Filters" section to the ironic-images.filters
2590+* Use oslo.rootwrap library instead of local copy
2591+* Replace assertTrue with explicit assertIsInstance
2592+* Disallow new provision for nodes in maintenance
2593+* Add RPC method for node maintenance mode
2594+* Fix keystone get_service_url filtering
2595+* Use same MANAGER_TOPIC variable
2596+* Implement consistent hashing of nodes to conductors
2597+* PXEAndSSH driver lacked vendor_passthru
2598+* Use correct auth context inside pxe driver
2599+* sync_power_states handles missing driver info
2600+* Enable $pybasedir value in pxe.py
2601+* Correct SSHPowerDriver validate() exceptions
2602+* API to check the requested power state
2603+* Improve the node driver interfaces validation output
2604+* Remove copyright from empty files
2605+* Make param descriptions more consistent in API
2606+* Imported Translations from Transifex
2607+* Fix wrong message of pxe validator
2608+* Remove unused dict BYTE_MULTIPLIERS
2609+* Implement API for provisioning
2610+* API to validate UUID parameters
2611+* Make chassis_uuid field of nodes optional
2612+* Add unit tests for get_nodeinfo_list
2613+* Improve error handling in PXE _continue_deploy
2614+* Make param names more consistent in API
2615+* Sync config module from oslo
2616+* Fix wrong message of MACAlreadyExists
2617+* Avoid a race when associating instance_uuid
2618+* Move and rename ValidTypes
2619+* Convert trycmd() to oslo's processutils
2620+* Improve error handling in validate_vendor_action
2621+* Passing nodes more consistently
2622+* Add 'next' link when GET maximum number of items
2623+* Check connectivity in SSH driver 'validate' method
2624+* GET /drivers to show a list of active conductors
2625+* Improve method to get list of active conductors
2626+* Refactor /node/<uuid>/state
2627+* Reworks Chassis validations
2628+* Reworks Node validations
2629+* Developer doc index page points to correct API docs
2630+* Fix auto-generated REST API formatting
2631+* Method to generate PXE options for Neutron ports
2632+* Strip '/' from api_url string for PXE driver
2633+* Add driver interfaces validation
2634+* Command call should log the stdout and stderr
2635+* Add prepare, clean_up, take_over methods to deploy
2636+* PEP8-ify imports in test_ipmitool
2637+* API: Add sample() method on Port and PortCollection
2638+* API: Validate and normalize address
2639+* Handle DBDuplicateEntry on Ports with same address
2640+* Imported Translations from Transifex
2641+* removed wrap_exception method from ironic/common/exception.py
2642+* Rework patch validation on Ports
2643+* Add JsonPatchType class
2644+* Change default API auth to keystone-based
2645+* Clean up duplicated change-building code in objects
2646+* Add -U to pip install command in tox.ini
2647+* Updated from global requirements
2648+* Add config option for # of conductor replicas
2649+* Port StringType class from WSME trunk
2650+* Add tools/conf/check_uptodate to tox.ini
2651+
2652+2014.1.b1
2653+---------
2654+
2655+* Correct error with unicode mac address
2656+* Expose created_at/updated_at properties in the REST API
2657+* Import heartbeat_interval opt in API
2658+* Add power control to PXE driver
2659+* Implement sync_power_state periodic task
2660+* Set the provision_state to DEPLOYFAIL
2661+* Save PKI token in a file for PXE deploy ramdisk
2662+* API ports update for WSME 0.5b6 compliance
2663+* Add heartbeat_interval to new 'conductor' cfg group
2664+* Add missing hash_partition_exponent config option
2665+* If no block devices abort deployment
2666+* Add missing link for drivers resource
2667+* Apply comments to 58558/4 post-landing
2668+* Replace removed xrange in Python3
2669+* Imported Translations from Transifex
2670+* Use addCleanup() in test_deploy_utils
2671+* Allow Pecan to use 'debuginfo' response field
2672+* Do not allow API to expose error stacktrace
2673+* Add port address unique constraint for sqlite
2674+* Implement consistent hashing common methods
2675+* Sync some db changes from Oslo
2676+* Bump required version of sqlalchemy-migrate
2677+* Update ironic.conf.sample
2678+* Import uuidutils unit tests from oslo
2679+* Allow FakePower to return node objects power_state
2680+* Adds doc strings to API FunctionalTest class
2681+* Use oslo's execute() and ssh_execute() methods
2682+* Remove openstack.common.uuidutils
2683+* Sync common.context changes from olso
2684+* Remove oslo uuidutils.is_uuid_like call
2685+* Remove oslo uuidutils.generate_uuid() call
2686+* Add troubleshoot option to PXE template
2687+* Imported Translations from Transifex
2688+* Add tftp_server pattern in ironic.conf
2689+* Import HasLength object
2690+* ipmitool SHOULD accept empty username/password
2691+* Imported Translations from Transifex
2692+* Add missing ConfigNotFound exception
2693+* Imported Translations from Transifex
2694+* Add hooks to auto-generate REST API docs
2695+* Imported Translations from Transifex
2696+* Redefined default value of allowed_rpc_exception_modules
2697+* Add last_error usage to deploy and teardown methods
2698+* Support building wheels (PEP-427)
2699+* Import missing gettext _ to fix Sphinx error
2700+* sync common.service from oslo
2701+* sync common.periodic_task from oslo
2702+* sync common.notifier.* from oslo
2703+* sync common.log from oslo
2704+* sync common.local from oslo
2705+* Sync common utils from Oslo
2706+* Rename parameters
2707+* Accessing a subresource that parent does not exist
2708+* Imported Translations from Transifex
2709+* Changes power_state and adds last_error field
2710+* Update openstack/common/lockutils
2711+* sync common.context from oslo
2712+* sync common.config.generator from oslo
2713+* Remove sqlalchemy-migrate 0.7.3 patching
2714+* Fix integer division compatibility in middleware
2715+* Fix node lock in PXE driver
2716+* Imported Translations from Transifex
2717+* Register API options under the 'api' group
2718+* Supporting both Python 2 and Python 3 with six
2719+* Supports get node by instance uuid in API
2720+* Imported Translations from Transifex
2721+* Check invalid uuid for get-by-instance db api
2722+* Fix error handling in ssh driver
2723+* Replace __metaclass__
2724+* Supporting both Python 2 and Python 3 with six
2725+* Pass Ironic API url to deploy ramdisk in PXE driver
2726+* Remove 'basestring' from objects utils
2727+* Allows unicode description for chassis
2728+* Fix a typo in the name of logger method exception
2729+* Don't use deprecated module commands
2730+* Comply with new hacking requirements
2731+* Improve the API doc spec for chassis
2732+* Improve the API doc spec for node
2733+* Updated from global requirements
2734+* Fix i18N compliance
2735+* Add wrapper for keystone service catalog
2736+* Fix test node manager
2737+* Expose /drivers on the API
2738+* Update mailmap for Joe Gordon
2739+* Add mailmap file
2740+* Implement /nodes/UUID/vendor_passthru in the API
2741+* Add context to TaskManager
2742+* Regenerate the sample config file
2743+* Conductors maintan driver list in the DB
2744+* Group and unify ipmi configurations
2745+* Fix a few missing i18n
2746+* Fix status codes in node controller
2747+* Fix exceptions handling in controllers
2748+* Updated from global requirements
2749+* Support uniform MAC address with colons
2750+* Remove redundant test stubs from conductor/manager
2751+* Remove several old TODO messages
2752+* Supports paginate query for two get nodes DB APIs
2753+* Remove _driver_factory class attribute
2754+* Fixes RootController to allow URL without version tag
2755+* Don't allow deletion of associated node
2756+* Remove duplicated db_api.get_instance() from tests
2757+* Updated from global requirements
2758+* Do not use string concatenation for localized strings
2759+* Remove the NULL state
2760+* Add DriverFactory
2761+* Adjust native ipmi default wait time
2762+* Be more patient with IPMI and BMC
2763+* Implement db get_[un]associated_nodes
2764+* Remove unused nova specific files
2765+* Removes unwanted mox and fixture files
2766+* Removes stubs from unit tests
2767+* Remove unused class/file
2768+* Remove driver validation on node update
2769+* Consolidates TestCase and BaseTestCase
2770+* Fix policies
2771+* Improve error message for ssh
2772+* Fix datetime format in FakeCache
2773+* Fix power_state set to python object repr
2774+* Updated from global requirements
2775+* Replaces mox with mock for test_deploy_utils
2776+* Replaces mox with mock in api's unit tests
2777+* Replaces mox with mock in objects' unit tests
2778+* Replaces mox with mock for conductor unit tests
2779+* fix ssh driver exec command issues
2780+* Fix exceptions error codes
2781+* Remove obsolete redhat-eventlet.patch
2782+* Replaces mox with mock for test_utils
2783+* Replaces mox with mock for ssh driver unit tests
2784+* Remove nested 'ipmi' dict from driver_info
2785+* Replace tearDown with addCleanup in unit tests
2786+* Remove nested 'ssh' dict from driver_info
2787+* Remove nested 'pxe' dict from driver_info
2788+* Save and validate deployment key in PXE driver
2789+* Implement deploy and tear_down conductor methods
2790+* Use mock to do unit tests for pxe driver
2791+* Code clean in node controller
2792+* Use mock to do unit tests for ipminative driver
2793+* Replaces mox with mock for ipmitool driver unit tests
2794+* Fix parameter name in wsexpose
2795+* Rename start_power_state_change to change_node_power_state
2796+* Mount iSCSI target and 'dd' in PXE driver
2797+* Add tests for api/utils.py
2798+* Check for required fields on ports
2799+* Replace Cheetah with Jinja2
2800+* Update from global requirements
2801+* Upgrade tox to 1.6
2802+* Add API uuid <-> id mapping
2803+* Doc string and minor clean up for 41976
2804+* Update error return code to match new Pecan release
2805+* Add vendor_passthru method to RPC API
2806+* Integer types support in api
2807+* Add native ipmi driver
2808+* API GET to return only minimal data
2809+* Fix broken links
2810+* Collection named based on resource type
2811+* Remove nova specific tests
2812+* Changes documentation hyperlinks to be relative
2813+* Replace OpenStack LLC with OpenStack Foundation
2814+* Force textmode consoles
2815+* Implemented start_power_state_change In Conductor
2816+* Updates documentation for tox use
2817+* Drop setuptools_git dependency
2818+* Fix tests return codes
2819+* Fix misused assertTrue in unit tests
2820+* Prevent updates while state change is in progress
2821+* Use localisation where user visible strings are used
2822+* Update only the changed fields
2823+* Improve parameters validate in PXE driver
2824+* Rename ipmi driver to ipmitool
2825+* Remove jsonutils from PXE driver
2826+* Expose the vendor_passthru resource
2827+* Driver's validation during node update process implemented
2828+* Public API
2829+* Remove references for the 'task_state' property
2830+* Use 'provision_state' in PXE driver
2831+* Updating resources with PATCH
2832+* Add missing unique constraint
2833+* Fix docstring typo
2834+* Removed templates directory in api config
2835+* Added upper version boundry for six
2836+* Sync models with migrations
2837+* Optimization reserve and release nodes db api methods
2838+* Add missing foreign key
2839+* Porting nova pxe driver to ironic
2840+* API Nodes states
2841+* Fix driver loading
2842+* Move glance image service client from nova and cinder into ironic
2843+* Implement the root and v1 entry points of the API
2844+* Expose subresources for Chassis and Node
2845+* Add checks locked nodes to db api
2846+* Update the dev docs with driver interface description
2847+* Add missing tests for chassis API
2848+* Delete controller to make code easy to read and understood
2849+* Disable deleting a chassis that contains nodes
2850+* Update API documentation
2851+* Add Pagination of collections across the API
2852+* Fix typo in conductor manager
2853+* Remove wsme validate decorator from API
2854+* Add missing tests for ports API
2855+* Modify is_valid_mac() for support unicode strings
2856+* Add DB and RPC method doc strings to hook.py
2857+* Delete unused templates
2858+* Use fixture from Oslo
2859+* Move "opportunistic" db migrations tests from Nova
2860+* Build unittests for nodes api
2861+* make api test code more readable
2862+* Add links to API Objects
2863+* Delete Ironic context
2864+* Add tests for existing db migrations
2865+* Add common code from Oslo for db migrations test
2866+* Remove extra pep8/flake8/pyflakes requirements
2867+* Sync requirements with OpenStack/requirements
2868+* Fix up API tests before updating hacking checks
2869+* Add RPC methods for updating nodes
2870+* Run extract_messages
2871+* Keystone authentiation
2872+* Add serializer param to RPC service
2873+* Import serialization and nesting from Nova Objects
2874+* Implement chassis api actions
2875+* update requires to prevent version cap
2876+* Change validate() to raise instead of returning T/F
2877+* Add helpers for single-node tasks
2878+* Implement port api action
2879+* Modify gitignore to ignore sqlite
2880+* Update resource manager for fixed stevedore issue
2881+* Add dbapi functions
2882+* Remove suds requirement
2883+* Sync install_venv_common from oslo
2884+* Move mysql_engine option to [database] group
2885+* Re-define 'extra' as dict_or_none
2886+* Added Python-2.6 to the classifier
2887+* Rename "manager" to "conductor"
2888+* Port from nova: Fix local variable 'root_uuid' ref
2889+* Created a package for API controllers V1
2890+* Sync requirements with OpenStack/requirements
2891+* Remove unused APICoverage class
2892+* Sync fileutils from oslo-incubator
2893+* Sync strutils from oslo-incubator
2894+* Add license header
2895+* Update get_by_uuid function doc in chassis
2896+* Fix various Python 2.x->3.x compat issues
2897+* Improve unit tests for API
2898+* Add Chassis object
2899+* Add Chassis DB model and DB-API
2900+* Delete associated ports after deleting a node
2901+* Virtual power driver is superceded by ssh driver
2902+* Add conf file generator
2903+* Refactored query filters
2904+* Add troubleshoot to baremetal PXE template
2905+* Add err_msg param to baremetal_deploy_helper
2906+* Retry the sfdisk command up to 3 times
2907+* Updated API Spec for new Drivers
2908+* Improve IPMI's _make_password_file method
2909+* Remove spurious print statement from update_node
2910+* Port middleware error handler from ceilometer API
2911+* Add support for GET /v1/nodes to return a list
2912+* Add object support to API service
2913+* Remove the unused plugin framework
2914+* Improve tests for Node and Port DB objects
2915+* SSH driver doesn't need to query database
2916+* Create Port object
2917+* Add uuid to Port DB model
2918+* Delete Flask Dependence
2919+* Writing Error: nodess to nodes
2920+* Create the Node object
2921+* Restructuring driver API and inheritance
2922+* Remove explicit distribute depend
2923+* Bump version of PBR
2924+* Remove deleted[_at] from base object
2925+* Make object actions pass positional arguments
2926+* Fix relative links in architecture doc
2927+* Reword architecture driver description
2928+* Remove duplication from README, add link to docs
2929+* Port base object from Nova
2930+* Fix ironic-rootwrap capability
2931+* Add ssh power manager
2932+* Prevent IPMI actions from colliding
2933+* Add TaskManager tests and fix decorator
2934+* Mocked NodeManager can load and mock real drivers
2935+* Add docs for task_manager and tests/manager/utils
2936+* Fix one typo in index.rst
2937+* Add missing 'extra' field to models.nodes
2938+* More doc updates
2939+* Remove the old README
2940+* More doc updates
2941+* Minor fixes to sphinx docs
2942+* Added API v1 Specification
2943+* Add initial sphinx docs, based on README
2944+* Initial skeleton for an RPC layer
2945+* Log configuration values on API startup
2946+* Don't use pecan to configure logging
2947+* Move database.backend option import
2948+* Remove unused authentication CLI options
2949+* Rename TestCase.flags() to TestCase.config()
2950+* Copy the RHEL6 eventlet workaround from Oslo
2951+* Sync new database config group from oslo-incubator
2952+* Minor doc change for manager and resorce_manager
2953+* Add support for Sphinx Docs
2954+* Update IPMI driver to work with resource manager
2955+* Add validate_driver_info to driver classes
2956+* Implement Task and Resource managers
2957+* Update [reserve|release]_nodes to accept a tag
2958+* More updates to the README
2959+* Reimplement reserve_nodes and release_nodes
2960+* Rename the 'ifaces' table to 'ports'
2961+* Change 'nodes' to use more driver-specific JSON
2962+* Update driver names and base class
2963+* Stop creating a new db IMPL for every request
2964+* Fix double "host" option
2965+* Sync safe changes from oslo-incubator
2966+* Sync rpc changes from oslo-incubator
2967+* Sync log changes from oslo-incubator
2968+* Sync a rootwrap KillFilter fix from oslo-incubator
2969+* Sync oslo-incubator python3 changes
2970+* Add steps to README.rst
2971+* Fix fake bmc driver
2972+* move ironic docs to top level for ease of discovery
2973+* Update the README file development section
2974+* Add some API definitions to the README
2975+* Update the distribute dependency version
2976+* Add information to the project README
2977+* Fixes test_update_node by testing updated node
2978+* Fix pep8 errors and make it pass Jenkins tests
2979+* Update IPMI driver for new base class
2980+* Add new base and fake driver classes
2981+* Delete old base and fake classes
2982+* Add a few fixes for the API
2983+* Move strong nova depenencies into temporary dir
2984+* Update IPMI for new DB schema
2985+* Add unit tests for DB API
2986+* Remove tests for old DB
2987+* Add tests for ironic-dbsync
2988+* Remove ironic_manage
2989+* Implement GET /node/ifaces/<id> in API
2990+* Update exception.py
2991+* Update db models and API
2992+* Implement skeleton for a new DB backend
2993+* Remove the old db implementation
2994+* Implement initial skeleton of a manager service
2995+* Implement initial draft of a Pecan-based API
2996+* Fix IPMI tests
2997+* Move common things to ironic.common
2998+* Fix failing db and deploy_helper tests
2999+* un-split the db backend
3000+* Rename files and fix things
3001+* Import add'l files from Nova
3002+* update openstack-common.conf and import from oslo
3003+* Added .testr.conf
3004+* Renamed nova to ironic
3005+* Fixed hacking, pep8 and pyflakes errors
3006+* Added project infrastructure needs
3007+* Fix baremetal get_available_nodes
3008+* Improve Python 3.x compatibility
3009+* Import and convert to oslo loopingcall
3010+* baremetal: VirtualPowerDriver uses mac addresses in bm_interfaces
3011+* baremetal: Change input for sfdisk
3012+* baremetal: Change node api related to prov_mac_address
3013+* Remove "undefined name" pyflake errors
3014+* Remove unnecessary LOG initialisation
3015+* Define LOG globally in baremetal_deploy_helper
3016+* Only call getLogger after configuring logging
3017+* baremetal: Integrate provisioning and non-provisioning interfaces
3018+* Move console scripts to entrypoints
3019+* baremetal: Drop unused columns in bm_nodes
3020+* Remove print statements
3021+* Delete tests.baremetal.util.new_bm_deployment()
3022+* Adds Tilera back-end for baremetal
3023+* Change type of ssh_port option from Str to Int
3024+* Virtual Power Driver list running vms quoting error
3025+* xenapi: Fix reboot with hung volumes
3026+* Make bm model's deleted column match database
3027+* Correct substring matching of baremetal VPD node names
3028+* Read baremetal images from extra_specs namespace
3029+* Compute manager should remove dead resources
3030+* Add ssh port and key based auth to VPD
3031+* Add instance_type_get() to virt api
3032+* Don't blindly skip first migration
3033+* BM Migration 004: Actually drop column
3034+* Update OpenStack LLC to Foundation
3035+* Sync nova with oslo DB exception cleanup
3036+* Fix exception handling in baremetal API
3037+* BM Migrations 2 & 3: Fix drop_column statements
3038+* Remove function redefinitions
3039+* Move some context checking code from sqlalchemy
3040+* Baremetal driver returns accurate list of instance
3041+* Identify baremetal nodes by UUID
3042+* Improve performance of baremetal list_instances
3043+* Better error handling in baremetal spawn & destroy
3044+* Wait for baremetal deploy inside driver.spawn
3045+* Add better status to baremetal deployments
3046+* Use oslo-config-2013.1b4
3047+* Delete baremetal interfaces when their parent node is deleted
3048+* VirtualPowerDriver catches ProcessExecutionError
3049+* Don't modify injected_files inside PXE driver
3050+* Remove nova.db call from baremetal PXE driver
3051+* Add a virtual PowerDriver for Baremetal testing
3052+* Recache or rebuild missing images on hard_reboot
3053+* Use oslo database code
3054+* Fixes 'not in' operator usage
3055+* Make sure there are no unused import
3056+* Enable N302: Import modules only
3057+* Correct a format string in virt/baremetal/ipmi.py
3058+* Add REST api to manage bare-metal nodes
3059+* Baremetal/utils should not log certain exceptions
3060+* PXE driver should rmtree directories it created
3061+* Add support for Option Groups in LazyPluggable
3062+* Remove obsolete baremetal override of MAC addresses
3063+* PXE driver should not accept empty kernel UUID
3064+* Correcting improper use of the word 'an'
3065+* Export the MAC addresses of nodes for bare-metal
3066+* Break out a helper function for working with bare metal nodes
3067+* Keep self and context out of error notification payload
3068+* Tests for PXE bare-metal provisioning helper server
3069+* Change ComputerDriver.legacy_nwinfo to raise by default
3070+* fix new N402 errors
3071+* Remove unused baremetal PXE options
3072+* Move global service networking opts to new module
3073+* Fix N402 for nova/virt
3074+* Cope better with out of sync bm data
3075+* Fix baremetal VIFDriver
3076+* CLI for bare-metal database sync
3077+* attach/detach_volume() take instance as a parameter
3078+* Convert short doc strings to be on one line
3079+* Check admin context in bm_interface_get_all()
3080+* Provide a PXE NodeDriver for the Baremetal driver
3081+* Refactor periodic tasks
3082+* Add helper methods to nova.paths
3083+* Move global path opts in nova.paths
3084+* Removes unused imports
3085+* Improve baremetal driver error handling
3086+* baremetal power driver takes **kwargs
3087+* Implement IPMI sub-driver for baremetal compute
3088+* Fix tests/baremetal/test_driver.py
3089+* Move baremetal options to [BAREMETAL] OptGroup
3090+* Remove session.flush() and session.query() monkey patching
3091+* Remove unused imports
3092+* Removed unused imports
3093+* Parameterize database connection in test.py
3094+* Baremetal VIF and Volume sub-drivers
3095+* New Baremetal provisioning framework
3096+* Move baremetal database tests to fixtures
3097+* Add exceptions to baremetal/db/api
3098+* Add blank nova/virt/baremetal/__init__.py
3099+* Move sql options to nova.db.sqlalchemy.session
3100+* Use CONF.import_opt() for nova.config opts
3101+* Remove nova.config.CONF
3102+* remove old baremetal driver
3103+* Remove nova.flags
3104+* Fix a couple uses of FLAGS
3105+* Added separate bare-metal MySQL DB
3106+* Switch from FLAGS to CONF in tests
3107+* Updated scheduler and compute for multiple capabilities
3108+* Switch from FLAGS to CONF in nova.virt
3109+* Make ComputeDrivers send hypervisor_hostname
3110+* Introduce VirtAPI to nova/virt
3111+* Migrate to fileutils and lockutils
3112+* Remove ComputeDriver.update_host_status()
3113+* Rename imagebackend arguments
3114+* Move ensure_tree to utils
3115+* Keep the ComputeNode model updated with usage
3116+* Don't stuff non-db data into instance dict
3117+* Making security group refresh more specific
3118+* Use dict style access for image_ref
3119+* Remove unused InstanceInfo class
3120+* Remove list_instances_detail from compute drivers
3121+* maint: remove an unused import in libvirt.driver
3122+* Fixes bare-metal spawn error
3123+* Refactoring required for blueprint xenapi-live-migration
3124+* refactor baremetal/proxy => baremetal/driver
3125+* Switch to common logging
3126+* Make libvirt LoopingCalls actually wait()
3127+* Imports cleanup
3128+* Unused imports cleanup (folsom-2)
3129+* convert virt drivers to fully dynamic loading
3130+* cleanup power state (partially implements bp task-management)
3131+* clean-up of the bare-metal framework
3132+* Added a instance state update notification
3133+* Update pep8 dependency to v1.1
3134+* Alphabetize imports in nova/tests/
3135+* Make use of openstack.common.jsonutils
3136+* Alphabetize imports in nova/virt/
3137+* Replaces exceptions.Error with NovaException
3138+* Log instance information for baremetal
3139+* Improved localization testing
3140+* remove unused flag: baremetal_injected_network_template baremetal_uri baremetal_allow_project_net_traffic
3141+* Add periodic_fuzzy_delay option
3142+* HACKING fixes, TODO authors
3143+* Add pybasedir and bindir options
3144+* Only raw string literals should be used with _()
3145+* Remove unnecessary setting up and down of mox and stubout
3146+* Remove unnecessary variables from tests
3147+* Move get_info to taking an instance
3148+* Exception cleanup
3149+* Backslash continuations (nova.tests)
3150+* Replace ApiError with new exceptions
3151+* Standardize logging delaration and use
3152+* remove unused and buggy function from baremetal proxy
3153+* Backslash continuations (nova.virt.baremetal)
3154+* Remove the last of the gflags shim layer
3155+* Implements blueprint heterogeneous-tilera-architecture-support
3156+* Deleting test dir from a pull from trunk
3157+* Updated to remove built docs
3158+* initial commit
3159
3160=== added file 'LICENSE'
3161--- LICENSE 1970-01-01 00:00:00 +0000
3162+++ LICENSE 2015-04-27 18:58:18 +0000
3163@@ -0,0 +1,176 @@
3164+
3165+ Apache License
3166+ Version 2.0, January 2004
3167+ http://www.apache.org/licenses/
3168+
3169+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
3170+
3171+ 1. Definitions.
3172+
3173+ "License" shall mean the terms and conditions for use, reproduction,
3174+ and distribution as defined by Sections 1 through 9 of this document.
3175+
3176+ "Licensor" shall mean the copyright owner or entity authorized by
3177+ the copyright owner that is granting the License.
3178+
3179+ "Legal Entity" shall mean the union of the acting entity and all
3180+ other entities that control, are controlled by, or are under common
3181+ control with that entity. For the purposes of this definition,
3182+ "control" means (i) the power, direct or indirect, to cause the
3183+ direction or management of such entity, whether by contract or
3184+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
3185+ outstanding shares, or (iii) beneficial ownership of such entity.
3186+
3187+ "You" (or "Your") shall mean an individual or Legal Entity
3188+ exercising permissions granted by this License.
3189+
3190+ "Source" form shall mean the preferred form for making modifications,
3191+ including but not limited to software source code, documentation
3192+ source, and configuration files.
3193+
3194+ "Object" form shall mean any form resulting from mechanical
3195+ transformation or translation of a Source form, including but
3196+ not limited to compiled object code, generated documentation,
3197+ and conversions to other media types.
3198+
3199+ "Work" shall mean the work of authorship, whether in Source or
3200+ Object form, made available under the License, as indicated by a
3201+ copyright notice that is included in or attached to the work
3202+ (an example is provided in the Appendix below).
3203+
3204+ "Derivative Works" shall mean any work, whether in Source or Object
3205+ form, that is based on (or derived from) the Work and for which the
3206+ editorial revisions, annotations, elaborations, or other modifications
3207+ represent, as a whole, an original work of authorship. For the purposes
3208+ of this License, Derivative Works shall not include works that remain
3209+ separable from, or merely link (or bind by name) to the interfaces of,
3210+ the Work and Derivative Works thereof.
3211+
3212+ "Contribution" shall mean any work of authorship, including
3213+ the original version of the Work and any modifications or additions
3214+ to that Work or Derivative Works thereof, that is intentionally
3215+ submitted to Licensor for inclusion in the Work by the copyright owner
3216+ or by an individual or Legal Entity authorized to submit on behalf of
3217+ the copyright owner. For the purposes of this definition, "submitted"
3218+ means any form of electronic, verbal, or written communication sent
3219+ to the Licensor or its representatives, including but not limited to
3220+ communication on electronic mailing lists, source code control systems,
3221+ and issue tracking systems that are managed by, or on behalf of, the
3222+ Licensor for the purpose of discussing and improving the Work, but
3223+ excluding communication that is conspicuously marked or otherwise
3224+ designated in writing by the copyright owner as "Not a Contribution."
3225+
3226+ "Contributor" shall mean Licensor and any individual or Legal Entity
3227+ on behalf of whom a Contribution has been received by Licensor and
3228+ subsequently incorporated within the Work.
3229+
3230+ 2. Grant of Copyright License. Subject to the terms and conditions of
3231+ this License, each Contributor hereby grants to You a perpetual,
3232+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
3233+ copyright license to reproduce, prepare Derivative Works of,
3234+ publicly display, publicly perform, sublicense, and distribute the
3235+ Work and such Derivative Works in Source or Object form.
3236+
3237+ 3. Grant of Patent License. Subject to the terms and conditions of
3238+ this License, each Contributor hereby grants to You a perpetual,
3239+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
3240+ (except as stated in this section) patent license to make, have made,
3241+ use, offer to sell, sell, import, and otherwise transfer the Work,
3242+ where such license applies only to those patent claims licensable
3243+ by such Contributor that are necessarily infringed by their
3244+ Contribution(s) alone or by combination of their Contribution(s)
3245+ with the Work to which such Contribution(s) was submitted. If You
3246+ institute patent litigation against any entity (including a
3247+ cross-claim or counterclaim in a lawsuit) alleging that the Work
3248+ or a Contribution incorporated within the Work constitutes direct
3249+ or contributory patent infringement, then any patent licenses
3250+ granted to You under this License for that Work shall terminate
3251+ as of the date such litigation is filed.
3252+
3253+ 4. Redistribution. You may reproduce and distribute copies of the
3254+ Work or Derivative Works thereof in any medium, with or without
3255+ modifications, and in Source or Object form, provided that You
3256+ meet the following conditions:
3257+
3258+ (a) You must give any other recipients of the Work or
3259+ Derivative Works a copy of this License; and
3260+
3261+ (b) You must cause any modified files to carry prominent notices
3262+ stating that You changed the files; and
3263+
3264+ (c) You must retain, in the Source form of any Derivative Works
3265+ that You distribute, all copyright, patent, trademark, and
3266+ attribution notices from the Source form of the Work,
3267+ excluding those notices that do not pertain to any part of
3268+ the Derivative Works; and
3269+
3270+ (d) If the Work includes a "NOTICE" text file as part of its
3271+ distribution, then any Derivative Works that You distribute must
3272+ include a readable copy of the attribution notices contained
3273+ within such NOTICE file, excluding those notices that do not
3274+ pertain to any part of the Derivative Works, in at least one
3275+ of the following places: within a NOTICE text file distributed
3276+ as part of the Derivative Works; within the Source form or
3277+ documentation, if provided along with the Derivative Works; or,
3278+ within a display generated by the Derivative Works, if and
3279+ wherever such third-party notices normally appear. The contents
3280+ of the NOTICE file are for informational purposes only and
3281+ do not modify the License. You may add Your own attribution
3282+ notices within Derivative Works that You distribute, alongside
3283+ or as an addendum to the NOTICE text from the Work, provided
3284+ that such additional attribution notices cannot be construed
3285+ as modifying the License.
3286+
3287+ You may add Your own copyright statement to Your modifications and
3288+ may provide additional or different license terms and conditions
3289+ for use, reproduction, or distribution of Your modifications, or
3290+ for any such Derivative Works as a whole, provided Your use,
3291+ reproduction, and distribution of the Work otherwise complies with
3292+ the conditions stated in this License.
3293+
3294+ 5. Submission of Contributions. Unless You explicitly state otherwise,
3295+ any Contribution intentionally submitted for inclusion in the Work
3296+ by You to the Licensor shall be under the terms and conditions of
3297+ this License, without any additional terms or conditions.
3298+ Notwithstanding the above, nothing herein shall supersede or modify
3299+ the terms of any separate license agreement you may have executed
3300+ with Licensor regarding such Contributions.
3301+
3302+ 6. Trademarks. This License does not grant permission to use the trade
3303+ names, trademarks, service marks, or product names of the Licensor,
3304+ except as required for reasonable and customary use in describing the
3305+ origin of the Work and reproducing the content of the NOTICE file.
3306+
3307+ 7. Disclaimer of Warranty. Unless required by applicable law or
3308+ agreed to in writing, Licensor provides the Work (and each
3309+ Contributor provides its Contributions) on an "AS IS" BASIS,
3310+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
3311+ implied, including, without limitation, any warranties or conditions
3312+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
3313+ PARTICULAR PURPOSE. You are solely responsible for determining the
3314+ appropriateness of using or redistributing the Work and assume any
3315+ risks associated with Your exercise of permissions under this License.
3316+
3317+ 8. Limitation of Liability. In no event and under no legal theory,
3318+ whether in tort (including negligence), contract, or otherwise,
3319+ unless required by applicable law (such as deliberate and grossly
3320+ negligent acts) or agreed to in writing, shall any Contributor be
3321+ liable to You for damages, including any direct, indirect, special,
3322+ incidental, or consequential damages of any character arising as a
3323+ result of this License or out of the use or inability to use the
3324+ Work (including but not limited to damages for loss of goodwill,
3325+ work stoppage, computer failure or malfunction, or any and all
3326+ other commercial damages or losses), even if such Contributor
3327+ has been advised of the possibility of such damages.
3328+
3329+ 9. Accepting Warranty or Additional Liability. While redistributing
3330+ the Work or Derivative Works thereof, You may choose to offer,
3331+ and charge a fee for, acceptance of support, warranty, indemnity,
3332+ or other liability obligations and/or rights consistent with this
3333+ License. However, in accepting such obligations, You may act only
3334+ on Your own behalf and on Your sole responsibility, not on behalf
3335+ of any other Contributor, and only if You agree to indemnify,
3336+ defend, and hold each Contributor harmless for any liability
3337+ incurred by, or claims asserted against, such Contributor by reason
3338+ of your accepting any such warranty or additional liability.
3339+
3340
3341=== added file 'MANIFEST.in'
3342--- MANIFEST.in 1970-01-01 00:00:00 +0000
3343+++ MANIFEST.in 2015-04-27 18:58:18 +0000
3344@@ -0,0 +1,6 @@
3345+include AUTHORS
3346+include ChangeLog
3347+exclude .gitignore
3348+exclude .gitreview
3349+
3350+global-exclude *.pyc
3351
3352=== added file 'PKG-INFO'
3353--- PKG-INFO 1970-01-01 00:00:00 +0000
3354+++ PKG-INFO 2015-04-27 18:58:18 +0000
3355@@ -0,0 +1,50 @@
3356+Metadata-Version: 1.1
3357+Name: ironic
3358+Version: 2015.1.0b2
3359+Summary: OpenStack Bare Metal Provisioning
3360+Home-page: http://www.openstack.org/
3361+Author: OpenStack
3362+Author-email: openstack-dev@lists.openstack.org
3363+License: UNKNOWN
3364+Description: Ironic
3365+ ======
3366+
3367+ Ironic is an integrated OpenStack project which aims to provision bare
3368+ metal machines instead of virtual machines, forked from the Nova Baremetal
3369+ driver. It is best thought of as a bare metal hypervisor **API** and a set
3370+ of plugins which interact with the bare metal hypervisors. By default, it
3371+ will use PXE and IPMI in concert to provision and turn on/off machines,
3372+ but Ironic also supports vendor-specific plugins which may implement
3373+ additional functionality.
3374+
3375+ -----------------
3376+ Project Resources
3377+ -----------------
3378+
3379+ Project status, bugs, and blueprints are tracked on Launchpad:
3380+
3381+ http://launchpad.net/ironic
3382+
3383+ Developer documentation can be found here:
3384+
3385+ http://docs.openstack.org/developer/ironic
3386+
3387+ Additional resources are linked from the project wiki page:
3388+
3389+ https://wiki.openstack.org/wiki/Ironic
3390+
3391+ Anyone wishing to contribute to an OpenStack project should
3392+ find a good reference here:
3393+
3394+ http://docs.openstack.org/infra/manual/developers.html
3395+
3396+
3397+Platform: UNKNOWN
3398+Classifier: Environment :: OpenStack
3399+Classifier: Intended Audience :: Information Technology
3400+Classifier: Intended Audience :: System Administrators
3401+Classifier: License :: OSI Approved :: Apache Software License
3402+Classifier: Operating System :: POSIX :: Linux
3403+Classifier: Programming Language :: Python
3404+Classifier: Programming Language :: Python :: 2
3405+Classifier: Programming Language :: Python :: 2.7
3406
3407=== added file 'README.rst'
3408--- README.rst 1970-01-01 00:00:00 +0000
3409+++ README.rst 2015-04-27 18:58:18 +0000
3410@@ -0,0 +1,31 @@
3411+Ironic
3412+======
3413+
3414+Ironic is an integrated OpenStack project which aims to provision bare
3415+metal machines instead of virtual machines, forked from the Nova Baremetal
3416+driver. It is best thought of as a bare metal hypervisor **API** and a set
3417+of plugins which interact with the bare metal hypervisors. By default, it
3418+will use PXE and IPMI in concert to provision and turn on/off machines,
3419+but Ironic also supports vendor-specific plugins which may implement
3420+additional functionality.
3421+
3422+-----------------
3423+Project Resources
3424+-----------------
3425+
3426+Project status, bugs, and blueprints are tracked on Launchpad:
3427+
3428+ http://launchpad.net/ironic
3429+
3430+Developer documentation can be found here:
3431+
3432+ http://docs.openstack.org/developer/ironic
3433+
3434+Additional resources are linked from the project wiki page:
3435+
3436+ https://wiki.openstack.org/wiki/Ironic
3437+
3438+Anyone wishing to contribute to an OpenStack project should
3439+find a good reference here:
3440+
3441+ http://docs.openstack.org/infra/manual/developers.html
3442
3443=== added file 'TODO.rst'
3444--- TODO.rst 1970-01-01 00:00:00 +0000
3445+++ TODO.rst 2015-04-27 18:58:18 +0000
3446@@ -0,0 +1,23 @@
3447+What is this file?
3448+==================
3449+
3450+This file is a loosely-organized list of some of the high-level and long-term
3451+goals of the project's core development team.
3452+
3453+It is *not* a list of specific tasks or ongoing work - for that, please see the
3454+list of blueprints targeted to the current release cycle, here:
3455+ https://launchpad.net/ironic/
3456+
3457+
3458+Some of the Big Things we're working on
3459+=======================================
3460+
3461+* Implementing a formal model for Node states.
3462+
3463+* Node introspection (discover properties of a known Node)
3464+ See https://github.com/stackforge/ironic-discoverd
3465+
3466+* Support RAID and firmware management
3467+
3468+* Improving the Agent deploy driver so that we can deprecate
3469+ the current "pxe" driver (which is really pxe-boot + iscsi-deploy).
3470
3471=== added file 'babel.cfg'
3472--- babel.cfg 1970-01-01 00:00:00 +0000
3473+++ babel.cfg 2015-04-27 18:58:18 +0000
3474@@ -0,0 +1,2 @@
3475+[python: **.py]
3476+
3477
3478=== added directory 'debian'
3479=== renamed directory 'debian' => 'debian.moved'
3480=== added file 'debian/changelog'
3481--- debian/changelog 1970-01-01 00:00:00 +0000
3482+++ debian/changelog 2015-04-27 18:58:18 +0000
3483@@ -0,0 +1,131 @@
3484+ironic (2015.1~b2-0ubuntu1) vivid; urgency=medium
3485+
3486+ [ Corey Bryant ]
3487+ * New upstream release.
3488+ - d/control: Align with upstream dependencies.
3489+ - d/p/fix-requirements.patch: Added to drop websockify.
3490+
3491+ -- Chuck Short <zulcss@ubuntu.com> Fri, 13 Feb 2015 11:35:18 -0500
3492+
3493+ironic (2015.1~b1-0ubuntu4) vivid; urgency=medium
3494+
3495+ * Rebuild to pick up pkgos upstart generation fix.
3496+ - d/control: Bump openstack-pkg-tools to ensure upstart fix inclusion.
3497+
3498+ -- Corey Bryant <corey.bryant@canonical.com> Wed, 14 Jan 2015 16:24:34 +0000
3499+
3500+ironic (2015.1~b1-0ubuntu3) vivid; urgency=medium
3501+
3502+ * No change rebuild to fixup detection of pysendfile dependency.
3503+
3504+ -- James Page <james.page@ubuntu.com> Mon, 12 Jan 2015 16:05:29 +0000
3505+
3506+ironic (2015.1~b1-0ubuntu2) vivid; urgency=medium
3507+
3508+ [ Chuck Short ]
3509+ * d/control: Update bzr branch locations.
3510+
3511+ [ James Page ]
3512+ * d/pydist-overrides: Drop pysendfile from overrides to ensure that
3513+ dependencies are correctly generated (LP: #1391960).
3514+ * Systemd enablement:
3515+ - d/control: Add dh-systemd and openstack-pkg-tools to BD's.
3516+ - d/rules: Enable use of pkgos, tidyup generated init files.
3517+ - d/*.init.in: Cherry pick pkgos template configurations from
3518+ Debian cinder package (thanks Thomas).
3519+ - d/*.upstart: Drop in preference to generated files.
3520+
3521+ -- James Page <james.page@ubuntu.com> Mon, 12 Jan 2015 09:39:03 +0000
3522+
3523+ironic (2015.1~b1-0ubuntu1) vivid; urgency=medium
3524+
3525+ * New upstream beta release:
3526+ - d/control: Align version requirements with upstream release.
3527+ * d/watch: Update uversionmangle to deal with kilo beta versioning
3528+ changes.
3529+ * d/control: Bumped Standards-Version to 3.9.6, no changes.
3530+
3531+ -- James Page <james.page@ubuntu.com> Mon, 05 Jan 2015 12:21:37 +0000
3532+
3533+ironic (2014.2-0ubuntu1) utopic; urgency=medium
3534+
3535+ [ Corey Bryant ]
3536+ * New upstream release.
3537+
3538+ -- Chuck Short <zulcss@ubuntu.com> Thu, 16 Oct 2014 17:02:24 -0400
3539+
3540+ironic (2014.2~rc2-0ubuntu1) utopic; urgency=medium
3541+
3542+ [ Corey Bryant ]
3543+ * New upstream release candidate.
3544+
3545+ -- Chuck Short <zulcss@ubuntu.com> Thu, 09 Oct 2014 16:13:56 -0400
3546+
3547+ironic (2014.2~rc1-0ubuntu1) utopic; urgency=medium
3548+
3549+ [ Adam Gandelman ]
3550+ * New upstream release.
3551+ * debian/patches/set_logdir.patch: Renamed to set_config_defaults.patch,
3552+ also set default sqlite db connection.
3553+ * debian/control: Refreshed dependencies for Juno, wrap-and-sort.
3554+ * debian/ironic-common.install: Added ironic-nova-bm-migrate binary.
3555+ * debian/ironic-common.postinst: Create the default sqlite database if
3556+ configured to use it and it does not exist.
3557+ * debian/pydist-overrides: Add pysendfile.
3558+ * debian/ironic_sudoers: Add rootwrap.conf (LP: #1185019).
3559+
3560+ [ James Page ]
3561+ * d/rules,control: Increase test verbosity using subunit.
3562+
3563+ -- Adam Gandelman <adamg@ubuntu.com> Tue, 30 Sep 2014 10:44:08 -0700
3564+
3565+ironic (2014.2~b1-0ubuntu1) utopic; urgency=medium
3566+
3567+ * New upstream release.
3568+ * debian/control: Open up juno release
3569+ * debian/patches/set_logdir.patch: Refreshed.
3570+ * debian/control: Add python-oslo.messaging
3571+ * debian/control: Add python-sendfile.
3572+
3573+ -- Chuck Short <zulcss@ubuntu.com> Mon, 07 Jul 2014 08:29:14 -0400
3574+
3575+ironic (2014.1~rc1-0ubuntu1) trusty; urgency=medium
3576+
3577+ [ Adam Gandelman ]
3578+ * debian/ironic-common.postinst: Fix syntax preventing postinst
3579+ from running.
3580+ * debian/ironic-api.install: Create missing .install, install
3581+ ironic-api to /usr/bin/ironic-api.
3582+ * debian/patches/set_logdir.patch: Set log_dir to /var/log/ironic/ in
3583+ sample config, causing both daemons to log to respective files there.
3584+ * debian/{rules, ironic-common.install}: Install ironic.conf.sample
3585+ as /etc/ironic/ironic.conf.
3586+ * Fail build if test suite fails, limit testing concurrency to 1.
3587+ * debian/control: Add missing alembic, python-lockfile dependencies.
3588+
3589+ [ James Page ]
3590+ * d/control: Add Vcs-* fields for ubuntu-server-dev branches.
3591+
3592+ -- Adam Gandelman <adamg@ubuntu.com> Fri, 04 Apr 2014 11:54:02 -0700
3593+
3594+ironic (2014.1~b3-0ubuntu1) trusty; urgency=medium
3595+
3596+ * New upstream release:
3597+ - debian/patches/fix-requirements.patch: Dropped no longer needed.
3598+
3599+ -- Chuck Short <zulcss@ubuntu.com> Thu, 06 Mar 2014 13:23:35 -0500
3600+
3601+ironic (2014.1~b2-0ubuntu1) trusty; urgency=medium
3602+
3603+ * New upstream release.
3604+ * debian/control: Add python-oslo.rootwrap.
3605+ * debian/patches/fix-requirements.patch: Adjust dependencies
3606+ for sqlalchemy and webob.
3607+
3608+ -- Chuck Short <zulcss@ubuntu.com> Fri, 24 Jan 2014 09:44:07 -0500
3609+
3610+ironic (0.0~git20140117-0ubuntu1) trusty; urgency=low
3611+
3612+ * Initial release.
3613+
3614+ -- Chuck Short <zulcss@ubuntu.com> Fri, 17 Jan 2014 09:47:33 -0500
3615
3616=== added file 'debian/compat'
3617--- debian/compat 1970-01-01 00:00:00 +0000
3618+++ debian/compat 2015-04-27 18:58:18 +0000
3619@@ -0,0 +1,1 @@
3620+9
3621
3622=== added file 'debian/control'
3623--- debian/control 1970-01-01 00:00:00 +0000
3624+++ debian/control 2015-04-27 18:58:18 +0000
3625@@ -0,0 +1,177 @@
3626+Source: ironic
3627+Section: net
3628+Priority: extra
3629+Maintainer: Chuck Short <zulcss@ubuntu.com>
3630+Build-Depends:
3631+ alembic (>= 0.7.2),
3632+ debhelper (>= 9~),
3633+ dh-systemd,
3634+ openstack-pkg-tools (>= 21ubuntu5~),
3635+ python-all (>= 2.6),
3636+ python-amqplib (>= 0.3.3),
3637+ python-anyjson (>=0.3.3),
3638+ python-babel (>= 1.3),
3639+ python-coverage (>= 3.6),
3640+ python-eventlet (>= 0.16.1),
3641+ python-fixtures (>= 0.3.14),
3642+ python-glanceclient (>= 1:0.15.0),
3643+ python-greenlet (>= 0.3.2),
3644+ python-hacking (>= 0.9.2),
3645+ python-ironicclient (>= 0.2.1),
3646+ python-iso8601 (>= 0.1.9),
3647+ python-jinja2 (>= 2.6),
3648+ python-jsonpatch (>= 1.1),
3649+ python-keystoneclient (>= 1:1.0.0),
3650+ python-keystonemiddleware (>= 1.0.0),
3651+ python-lockfile (>= 0.8),
3652+ python-lxml (>= 2.3),
3653+ python-migrate (>= 0.9.1),
3654+ python-mock (>= 1.0),
3655+ python-mysqldb,
3656+ python-netaddr (>= 0.7.12),
3657+ python-neutronclient (>= 1:2.3.6),
3658+ python-oslo-concurrency (>= 1.4.1),
3659+ python-oslo-config (>= 1.6.0),
3660+ python-oslo-db (>= 1.4.1),
3661+ python-oslo-i18n (>= 1.3.0),
3662+ python-oslo-messaging (>= 1.6.0),
3663+ python-oslo-rootwrap (>= 1.5.0),
3664+ python-oslo-serialization (>= 1.2.0),
3665+ python-oslo-utils (>= 1.2.0),
3666+ python-oslosphinx (>= 2.2.0),
3667+ python-oslotest (>= 1:1.2.0),
3668+ python-paramiko (>= 1.13.0),
3669+ python-pbr (>= 0.6),
3670+ python-pecan (>= 0.8.0),
3671+ python-posix-ipc,
3672+ python-psycopg2,
3673+ python-retrying (>= 1.2.3),
3674+ python-requests (>= 2.2.0),
3675+ python-sendfile (>= 2.0.0),
3676+ python-setuptools,
3677+ python-six (>= 1.7.0),
3678+ python-sphinx (>= 1.1.2),
3679+ python-sphinxcontrib-pecanwsme (>= 0.8),
3680+ python-sqlalchemy (>= 0.9.7),
3681+ python-stevedore (>= 1.1.0),
3682+ python-subunit (>= 0.0.18),
3683+ python-swiftclient (>= 1:2.2.0),
3684+ python-testtools (>= 0.9.36),
3685+ python-webob (>= 1.2.3),
3686+ python-wsme (>= 0.6),
3687+ subunit,
3688+ testrepository (>= 0.0.18),
3689+Standards-Version: 3.9.6
3690+Vcs-Browser: http://bazaar.launchpad.net/~ubuntu-server-dev/ironic/kilo/files
3691+Vcs-Bzr: https://code.launchpad.net/~ubuntu-server-dev/ironic/kilo
3692+
3693+Package: python-ironic
3694+Architecture: all
3695+Depends:
3696+ alembic (>= 0.7.2),
3697+ python-amqplib (>= 0.3.3),
3698+ python-anyjson (>= 0.3.3),
3699+ python-babel,
3700+ python-eventlet (>= 0.16.1),
3701+ python-glanceclient (>= 1:0.15.0),
3702+ python-greenlet (>= 0.3.2),
3703+ python-iso8601 (>= 0.1.9),
3704+ python-jinja2 (>= 2.6),
3705+ python-jsonpatch (>= 1.1),
3706+ python-keystoneclient (>= 1:1.0.0),
3707+ python-keystonemiddleware (>= 1.0.0),
3708+ python-kombu (>= 2.4.8),
3709+ python-lockfile (>= 0.8),
3710+ python-lxml (>= 2.3),
3711+ python-migrate (>= 0.9.1),
3712+ python-netaddr (>= 0.7.12),
3713+ python-neutronclient (>= 1:2.3.6),
3714+ python-oslo-concurrency (>= 1.4.1),
3715+ python-oslo-config (>= 1.6.0),
3716+ python-oslo-db (>= 1.4.1),
3717+ python-oslo-i18n (>= 1.3.0),
3718+ python-oslo-messaging (>= 1.6.0),
3719+ python-oslo-rootwrap (>= 1.5.0),
3720+ python-oslo-serialization (>= 1.2.0),
3721+ python-oslo-utils (>= 1.2.0),
3722+ python-paramiko (>= 1.13.0),
3723+ python-pbr (>= 0.6),
3724+ python-pecan (>= 0.8.0),
3725+ python-posix-ipc,
3726+ python-retrying (>= 1.2.3),
3727+ python-requests (>= 2.2.0),
3728+ python-sendfile (>= 2.0.0),
3729+ python-six (>= 1.7.0),
3730+ python-sqlalchemy (>= 0.9.7),
3731+ python-stevedore (>= 1.1.0),
3732+ python-swiftclient (>= 1:2.2.0),
3733+ python-webob (>= 1.2.3),
3734+ python-wsme (>= 0.6),
3735+ ${misc:Depends},
3736+ ${python:Depends}
3737+Description: Openstack bare metal provisioning service - Python library
3738+ Ironic is an Incubated OpenStack project which aims to provision
3739+ bare metal machines instead of virtual machines, forked from the
3740+ Nova Baremetal driver. It is best thought of as a bare metal
3741+ hypervisor **API** and a set of plugins which interact with
3742+ the bare metal hypervisors. By default, it will use PXE and IPMI
3743+ in concert to provision and turn on/off machines, but Ironic
3744+ also supports vendor-specific plugins which may implement additional
3745+ functionality.
3746+ .
3747+ This package contains the Python libaries.
3748+
3749+Package: ironic-common
3750+Architecture: all
3751+Depends:
3752+ adduser,
3753+ python-ironic (= ${source:Version}),
3754+ ${misc:Depends},
3755+ ${python:Depends}
3756+Description: Openstack bare metal provisioning service - daemons
3757+ Ironic is an Incubated OpenStack project which aims to provision
3758+ bare metal machines instead of virtual machines, forked from the
3759+ Nova Baremetal driver. It is best thought of as a bare metal
3760+ hypervisor **API** and a set of plugins which interact with
3761+ the bare metal hypervisors. By default, it will use PXE and IPMI
3762+ in concert to provision and turn on/off machines, but Ironic
3763+ also supports vendor-specific plugins which may implement additional
3764+ functionality.
3765+ .
3766+ This package contains the common files.
3767+
3768+Package: ironic-api
3769+Architecture: all
3770+Depends:
3771+ ironic-common (= ${binary:Version}),
3772+ ${misc:Depends},
3773+ ${python:Depends}
3774+Description: Openstack bare metal provisioning service - API
3775+ Ironic is an Incubated OpenStack project which aims to provision
3776+ bare metal machines instead of virtual machines, forked from the
3777+ Nova Baremetal driver. It is best thought of as a bare metal
3778+ hypervisor **API** and a set of plugins which interact with
3779+ the bare metal hypervisors. By default, it will use PXE and IPMI
3780+ in concert to provision and turn on/off machines, but Ironic
3781+ also supports vendor-specific plugins which may implement additional
3782+ functionality.
3783+ .
3784+ This package contains the API.
3785+
3786+Package: ironic-conductor
3787+Architecture: all
3788+Depends:
3789+ ironic-common (= ${binary:Version}),
3790+ ${misc:Depends},
3791+ ${python:Depends}
3792+Description: Openstack bare metal provisioning service - conductor
3793+ Ironic is an Incubated OpenStack project which aims to provision
3794+ bare metal machines instead of virtual machines, forked from the
3795+ Nova Baremetal driver. It is best thought of as a bare metal
3796+ hypervisor **API** and a set of plugins which interact with
3797+ the bare metal hypervisors. By default, it will use PXE and IPMI
3798+ in concert to provision and turn on/off machines, but Ironic
3799+ also supports vendor-specific plugins which may implement additional
3800+ functionality.
3801+ .
3802+ This package contains the conductor.
3803
3804=== added file 'debian/copyright'
3805--- debian/copyright 1970-01-01 00:00:00 +0000
3806+++ debian/copyright 2015-04-27 18:58:18 +0000
3807@@ -0,0 +1,40 @@
3808+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
3809+Upstream-Name: ironic
3810+Source: http://github.com/openstack/ironic
3811+
3812+Files: *
3813+Copyright: 2013 OpenStack Foundation
3814+ Others (See individual files for more details)
3815+License: Apache-2
3816+ Licensed under the Apache License, Version 2.0 (the "License");
3817+ you may not use this file except in compliance with the License.
3818+ You may obtain a copy of the License at
3819+ .
3820+ http://www.apache.org/licenses/LICENSE-2.0
3821+ .
3822+ Unless required by applicable law or agreed to in writing, software
3823+ distributed under the License is distributed on an "AS IS" BASIS,
3824+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3825+ See the License for the specific language governing permissions and
3826+ limitations under the License.
3827+ .
3828+ On Debian-based systems the full text of the Apache version 2.0 license
3829+ can be found in `/usr/share/common-licenses/Apache-2.0'.
3830+
3831+Files: debian/*
3832+Copyright: 2014 Canonical Ltd
3833+License: Apache-2
3834+ Licensed under the Apache License, Version 2.0 (the "License");
3835+ you may not use this file except in compliance with the License.
3836+ You may obtain a copy of the License at
3837+ .
3838+ http://www.apache.org/licenses/LICENSE-2.0
3839+ .
3840+ Unless required by applicable law or agreed to in writing, software
3841+ distributed under the License is distributed on an "AS IS" BASIS,
3842+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3843+ See the License for the specific language governing permissions and
3844+ limitations under the License.
3845+ .
3846+ On Debian-based systems the full text of the Apache version 2.0 license
3847+ can be found in `/usr/share/common-licenses/Apache-2.0'.
3848
3849=== added file 'debian/docs'
3850--- debian/docs 1970-01-01 00:00:00 +0000
3851+++ debian/docs 2015-04-27 18:58:18 +0000
3852@@ -0,0 +1,3 @@
3853+README.rst
3854+requirements.txt
3855+test-requirements.txt
3856
3857=== added file 'debian/ironic-api.init.in'
3858--- debian/ironic-api.init.in 1970-01-01 00:00:00 +0000
3859+++ debian/ironic-api.init.in 2015-04-27 18:58:18 +0000
3860@@ -0,0 +1,18 @@
3861+#!/bin/sh
3862+### BEGIN INIT INFO
3863+# Provides: ironic-api
3864+# Required-Start: $network $local_fs $remote_fs $syslog
3865+# Required-Stop: $remote_fs
3866+# Should-Start: postgresql mysql keystone ntp rabbitmq-server
3867+# Should-Stop: postgresql mysql keystone ntp rabbitmq-server
3868+# Default-Start: 2 3 4 5
3869+# Default-Stop: 0 1 6
3870+# Short-Description: Baremetal API server
3871+# Description: Frontend Baremetal (Ironic) API server
3872+### END INIT INFO
3873+
3874+# Author: Thomas Goirand <zigo@debian.org>
3875+
3876+DESC="OpenStack Baremetal Service API"
3877+PROJECT_NAME=ironic
3878+NAME=ironic-api
3879
3880=== added file 'debian/ironic-api.install'
3881--- debian/ironic-api.install 1970-01-01 00:00:00 +0000
3882+++ debian/ironic-api.install 2015-04-27 18:58:18 +0000
3883@@ -0,0 +1,1 @@
3884+usr/bin/ironic-api
3885
3886=== added file 'debian/ironic-common.dirs'
3887--- debian/ironic-common.dirs 1970-01-01 00:00:00 +0000
3888+++ debian/ironic-common.dirs 2015-04-27 18:58:18 +0000
3889@@ -0,0 +1,5 @@
3890+etc/ironic
3891+etc/ironic/rootwrap.d
3892+/var/lib/ironic
3893+/var/log/ironic
3894+/etc/ironic
3895
3896=== added file 'debian/ironic-common.install'
3897--- debian/ironic-common.install 1970-01-01 00:00:00 +0000
3898+++ debian/ironic-common.install 2015-04-27 18:58:18 +0000
3899@@ -0,0 +1,9 @@
3900+
3901+debian/ironic_sudoers etc/sudoers.d
3902+etc/ironic/ironic.conf etc/ironic
3903+etc/ironic/policy.json etc/ironic
3904+etc/ironic/rootwrap.conf etc/ironic
3905+etc/ironic/rootwrap.d/ etc/ironic
3906+usr/bin/ironic-dbsync
3907+usr/bin/ironic-nova-bm-migrate
3908+usr/bin/ironic-rootwrap
3909
3910=== added file 'debian/ironic-common.postinst'
3911--- debian/ironic-common.postinst 1970-01-01 00:00:00 +0000
3912+++ debian/ironic-common.postinst 2015-04-27 18:58:18 +0000
3913@@ -0,0 +1,25 @@
3914+#!/bin/sh -e
3915+
3916+if [ "$1" = "configure" ] ; then
3917+ if ! getent group ironic > /dev/null 2>&1; then
3918+ addgroup --system ironic >/dev/null
3919+ fi
3920+
3921+ if ! getent passwd ironic > /dev/null 2>&1; then
3922+ adduser --system --home /var/lib/ironic --ingroup ironic --no-create-home --shell /bin/false ironic
3923+ fi
3924+
3925+ chown -R ironic:adm /var/log/ironic
3926+ chmod 0750 /var/log/ironic
3927+ mkdir -p /etc/ironic
3928+ mkdir -p /var/lib/ironic
3929+ default_db=/var/lib/ironic/ironic.db
3930+ if grep -q "^connection=sqlite:///$default_db" /etc/ironic/ironic.conf && [ ! -e /var/lib/ironic/ironic.db ]; then
3931+ ironic-dbsync create_schema
3932+ fi
3933+ chown ironic:ironic -R /var/lib/ironic /etc/ironic
3934+fi
3935+
3936+#DEBHELPER#
3937+
3938+exit 0
3939
3940=== added file 'debian/ironic-conductor.init.in'
3941--- debian/ironic-conductor.init.in 1970-01-01 00:00:00 +0000
3942+++ debian/ironic-conductor.init.in 2015-04-27 18:58:18 +0000
3943@@ -0,0 +1,18 @@
3944+#!/bin/sh
3945+### BEGIN INIT INFO
3946+# Provides: ironic-conductor
3947+# Required-Start: $network $local_fs $remote_fs $syslog
3948+# Required-Stop: $remote_fs
3949+# Should-Start: postgresql mysql keystone ntp rabbitmq-server
3950+# Should-Stop: postgresql mysql keystone ntp rabbitmq-server
3951+# Default-Start: 2 3 4 5
3952+# Default-Stop: 0 1 6
3953+# Short-Description: Baremetal CONDUCTOR server
3954+# Description: Frontend Baremetal (Ironic) CONDUCTOR server
3955+### END INIT INFO
3956+
3957+# Author: Thomas Goirand <zigo@debian.org>
3958+
3959+DESC="OpenStack Baremetal Service CONDUCTOR"
3960+PROJECT_NAME=ironic
3961+NAME=ironic-conductor
3962
3963=== added file 'debian/ironic-conductor.install'
3964--- debian/ironic-conductor.install 1970-01-01 00:00:00 +0000
3965+++ debian/ironic-conductor.install 2015-04-27 18:58:18 +0000
3966@@ -0,0 +1,1 @@
3967+usr/bin/ironic-conductor
3968
3969=== added file 'debian/ironic_sudoers'
3970--- debian/ironic_sudoers 1970-01-01 00:00:00 +0000
3971+++ debian/ironic_sudoers 2015-04-27 18:58:18 +0000
3972@@ -0,0 +1,3 @@
3973+Defaults:ironic !requiretty
3974+
3975+ironic ALL = (root) NOPASSWD: /usr/bin/ironic-rootwrap /etc/ironic/rootwrap.conf *
3976
3977=== added directory 'debian/patches'
3978=== added file 'debian/patches/fix-requirements.patch'
3979--- debian/patches/fix-requirements.patch 1970-01-01 00:00:00 +0000
3980+++ debian/patches/fix-requirements.patch 2015-04-27 18:58:18 +0000
3981@@ -0,0 +1,10 @@
3982+--- a/requirements.txt
3983++++ b/requirements.txt
3984+@@ -18,7 +18,6 @@
3985+ python-swiftclient>=2.2.0
3986+ stevedore>=1.1.0 # Apache-2.0
3987+ pysendfile==2.0.0
3988+-websockify>=0.6.0,<0.7
3989+ oslo.concurrency>=1.4.1 # Apache-2.0
3990+ oslo.config>=1.6.0 # Apache-2.0
3991+ oslo.db>=1.4.1 # Apache-2.0
3992
3993=== added file 'debian/patches/series'
3994--- debian/patches/series 1970-01-01 00:00:00 +0000
3995+++ debian/patches/series 2015-04-27 18:58:18 +0000
3996@@ -0,0 +1,2 @@
3997+fix-requirements.patch
3998+set_config_defaults.patch
3999
4000=== added file 'debian/patches/set_config_defaults.patch'
4001--- debian/patches/set_config_defaults.patch 1970-01-01 00:00:00 +0000
4002+++ debian/patches/set_config_defaults.patch 2015-04-27 18:58:18 +0000
4003@@ -0,0 +1,20 @@
4004+--- a/etc/ironic/ironic.conf.sample
4005++++ b/etc/ironic/ironic.conf.sample
4006+@@ -434,7 +434,7 @@
4007+ # (Optional) The base directory used for relative --log-file
4008+ # paths. (string value)
4009+ # Deprecated group/name - [DEFAULT]/logdir
4010+-#log_dir=<None>
4011++log_dir=/var/log/ironic
4012+
4013+ # Use syslog for logging. Existing syslog format is DEPRECATED
4014+ # during I, and will change in J to honor RFC5424. (boolean
4015+@@ -632,7 +632,7 @@
4016+ # Deprecated group/name - [DEFAULT]/sql_connection
4017+ # Deprecated group/name - [DATABASE]/sql_connection
4018+ # Deprecated group/name - [sql]/connection
4019+-#connection=<None>
4020++connection=sqlite:////var/lib/ironic/ironic.db
4021+
4022+ # The SQLAlchemy connection string to use to connect to the
4023+ # slave database. (string value)
4024
4025=== added file 'debian/pydist-overrides'
4026--- debian/pydist-overrides 1970-01-01 00:00:00 +0000
4027+++ debian/pydist-overrides 2015-04-27 18:58:18 +0000
4028@@ -0,0 +1,1 @@
4029+argparse
4030
4031=== added file 'debian/python-ironic.install'
4032--- debian/python-ironic.install 1970-01-01 00:00:00 +0000
4033+++ debian/python-ironic.install 2015-04-27 18:58:18 +0000
4034@@ -0,0 +1,1 @@
4035+usr/lib/python*/dist-packages/*
4036
4037=== added file 'debian/rules'
4038--- debian/rules 1970-01-01 00:00:00 +0000
4039+++ debian/rules 2015-04-27 18:58:18 +0000
4040@@ -0,0 +1,29 @@
4041+#!/usr/bin/make -f
4042+
4043+#export DH_VERBOSE=1
4044+
4045+include /usr/share/openstack-pkg-tools/pkgos.make
4046+
4047+%:
4048+ dh $@ --with python2,systemd
4049+
4050+ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
4051+override_dh_auto_test:
4052+ rm -rf .testrepository
4053+ testr init && \
4054+ set -e && \
4055+ TEMP_REZ=`mktemp -t` && \
4056+ TESTS_DIR=./ironic/tests/ testr run --subunit | tee $$TEMP_REZ | subunit2pyunit; \
4057+ rm -f $$TEMP_REZ
4058+endif
4059+
4060+override_dh_install:
4061+ cp etc/ironic/ironic.conf.sample etc/ironic/ironic.conf
4062+ dh_install --fail-missing
4063+
4064+get-orig-source:
4065+ uscan --verbose --force-download --rename --destdir=../build-area
4066+
4067+override_dh_clean:
4068+ dh_clean
4069+ rm -f debian/*.init debian/*.service debian/*.upstart
4070
4071=== added directory 'debian/source'
4072=== added file 'debian/source/format'
4073--- debian/source/format 1970-01-01 00:00:00 +0000
4074+++ debian/source/format 2015-04-27 18:58:18 +0000
4075@@ -0,0 +1,1 @@
4076+3.0 (quilt)
4077
4078=== added file 'debian/watch'
4079--- debian/watch 1970-01-01 00:00:00 +0000
4080+++ debian/watch 2015-04-27 18:58:18 +0000
4081@@ -0,0 +1,3 @@
4082+version=3
4083+opts="uversionmangle=s/\.([a-zA-Z])/~$1/;s/%7E/~/;s/\.0b/~b/" \
4084+ https://launchpad.net/ironic/+download https://launchpad.net/ironic/.*/.*/.*/ironic-(.*)\.tar\.gz
4085
4086=== added directory 'doc'
4087=== added directory 'doc/source'
4088=== added directory 'doc/source/cmds'
4089=== added file 'doc/source/cmds/ironic-dbsync.rst'
4090--- doc/source/cmds/ironic-dbsync.rst 1970-01-01 00:00:00 +0000
4091+++ doc/source/cmds/ironic-dbsync.rst 2015-04-27 18:58:18 +0000
4092@@ -0,0 +1,211 @@
4093+=============
4094+ironic-dbsync
4095+=============
4096+
4097+The :command:`ironic-dbsync` utility is used to create the database schema
4098+tables that the ironic services will use for storage. It can also be used to
4099+upgrade (or downgrade) existing database tables when migrating between
4100+different versions of ironic.
4101+
4102+The `Alembic library <http://alembic.readthedocs.org>`_ is used to perform
4103+the database migrations.
4104+
4105+Options
4106+=======
4107+
4108+This is a partial list of the most useful options. To see the full list,
4109+run the following::
4110+
4111+ ironic-dbsync --help
4112+
4113+.. program:: ironic-dbsync
4114+
4115+.. option:: -h, --help
4116+
4117+ Show help message and exit.
4118+
4119+.. option:: --config-dir <DIR>
4120+
4121+ Path to a config directory with configuration files.
4122+
4123+.. option:: --config-file <PATH>
4124+
4125+ Path to a configuration file to use.
4126+
4127+.. option:: -d, --debug
4128+
4129+ Print debugging output.
4130+
4131+.. option:: -v, --verbose
4132+
4133+ Print more verbose output.
4134+
4135+.. option:: --version
4136+
4137+ Show the program's version number and exit.
4138+
4139+.. option:: upgrade, downgrade, stamp, revision, version, create_schema
4140+
4141+ The :ref:`command <dbsync_cmds>` to run.
4142+
4143+Usage
4144+=====
4145+
4146+Options for the various :ref:`commands <dbsync_cmds>` for
4147+:command:`ironic-dbsync` are listed when the :option:`-h` or :option:`--help`
4148+option is used after the command.
4149+
4150+For example::
4151+
4152+ ironic-dbsync create_schema --help
4153+
4154+Information about the database is read from the ironic configuration file
4155+used by the API server and conductor services. This file must be specified
4156+with the :option:`--config-file` option::
4157+
4158+ ironic-dbsync --config-file /path/to/ironic.conf create_schema
4159+
4160+The configuration file defines the database backend to use with the
4161+*connection* database option::
4162+
4163+ [database]
4164+ connection=mysql://root@localhost/ironic
4165+
4166+If no configuration file is specified with the :option:`--config-file` option,
4167+:command:`ironic-dbsync` assumes an SQLite database.
4168+
4169+.. _dbsync_cmds:
4170+
4171+Command Options
4172+===============
4173+
4174+:command:`ironic-dbsync` is given a command that tells the utility what actions
4175+to perform. These commands can take arguments. Several commands are available:
4176+
4177+.. _create_schema:
4178+
4179+create_schema
4180+-------------
4181+
4182+.. program:: create_schema
4183+
4184+.. option:: -h, --help
4185+
4186+ Show help for create_schema and exit.
4187+
4188+This command will create database tables based on the most current version.
4189+It assumes that there are no existing tables.
4190+
4191+An example of creating database tables with the most recent version::
4192+
4193+ ironic-dbsync --config-file=/etc/ironic/ironic.conf create_schema
4194+
4195+downgrade
4196+---------
4197+
4198+.. program:: downgrade
4199+
4200+.. option:: -h, --help
4201+
4202+ Show help for downgrade and exit.
4203+
4204+.. option:: --revision <REVISION>
4205+
4206+ The revision number you want to downgrade to.
4207+
4208+This command will revert existing database tables to a previous version.
4209+The version can be specified with the :option:`--revision` option.
4210+
4211+An example of downgrading to table versions at revision 2581ebaf0cb2::
4212+
4213+ ironic-dbsync --config-file=/etc/ironic/ironic.conf downgrade --revision 2581ebaf0cb2
4214+
4215+revision
4216+--------
4217+
4218+.. program:: revision
4219+
4220+.. option:: -h, --help
4221+
4222+ Show help for revision and exit.
4223+
4224+.. option:: -m <MESSAGE>, --message <MESSAGE>
4225+
4226+ The message to use with the revision file.
4227+
4228+.. option:: --autogenerate
4229+
4230+ Compares table metadata in the application with the status of the database
4231+ and generates migrations based on this comparison.
4232+
4233+This command will create a new revision file. You can use the
4234+:option:`--message` option to comment the revision.
4235+
4236+This is really only useful for ironic developers making changes that require
4237+database changes. This revision file is used during database migration and
4238+will specify the changes that need to be made to the database tables. Further
4239+discussion is beyond the scope of this document.
4240+
4241+stamp
4242+-----
4243+
4244+.. program:: stamp
4245+
4246+.. option:: -h, --help
4247+
4248+ Show help for stamp and exit.
4249+
4250+.. option:: --revision <REVISION>
4251+
4252+ The revision number.
4253+
4254+This command will 'stamp' the revision table with the version specified with
4255+the :option:`--revision` option. It will not run any migrations.
4256+
4257+upgrade
4258+-------
4259+
4260+.. program:: upgrade
4261+
4262+.. option:: -h, --help
4263+
4264+ Show help for upgrade and exit.
4265+
4266+.. option:: --revision <REVISION>
4267+
4268+ The revision number to upgrade to.
4269+
4270+This command will upgrade existing database tables to the most recent version,
4271+or to the version specified with the :option:`--revision` option.
4272+
4273+If there are no existing tables, then new tables are created, beginning
4274+with the oldest known version, and successively upgraded using all of the
4275+database migration files, until they are at the specified version. Note
4276+that this behavior is different from the :ref:`create_schema` command
4277+that creates the tables based on the most recent version.
4278+
4279+An example of upgrading to the most recent table versions::
4280+
4281+ ironic-dbsync --config-file=/etc/ironic/ironic.conf upgrade
4282+
4283+.. note::
4284+
4285+ This command is the default if no command is given to
4286+ :command:`ironic-dbsync`.
4287+
4288+.. warning::
4289+
4290+ The upgrade command is not compatible with SQLite databases since it uses
4291+ ALTER TABLE commands to upgrade the database tables. SQLite supports only
4292+ a limited subset of ALTER TABLE.
4293+
4294+version
4295+-------
4296+
4297+.. program:: version
4298+
4299+.. option:: -h, --help
4300+
4301+ Show help for version and exit.
4302+
4303+This command will output the current database version.
4304
4305=== added file 'doc/source/conf.py'
4306--- doc/source/conf.py 1970-01-01 00:00:00 +0000
4307+++ doc/source/conf.py 2015-04-27 18:58:18 +0000
4308@@ -0,0 +1,82 @@
4309+# -*- coding: utf-8 -*-
4310+#
4311+
4312+# -- General configuration ----------------------------------------------------
4313+
4314+# Add any Sphinx extension module names here, as strings. They can be
4315+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
4316+extensions = ['sphinx.ext.autodoc',
4317+ 'sphinx.ext.viewcode',
4318+ 'sphinxcontrib.httpdomain',
4319+ 'sphinxcontrib.pecanwsme.rest',
4320+ 'wsmeext.sphinxext',
4321+ 'oslosphinx',
4322+ ]
4323+
4324+wsme_protocols = ['restjson']
4325+
4326+# autodoc generation is a bit aggressive and a nuisance when doing heavy
4327+# text edit cycles.
4328+# execute "export SPHINX_DEBUG=1" in your terminal to disable
4329+
4330+# Add any paths that contain templates here, relative to this directory.
4331+templates_path = ['_templates']
4332+
4333+# The suffix of source filenames.
4334+source_suffix = '.rst'
4335+
4336+# The master toctree document.
4337+master_doc = 'index'
4338+
4339+# General information about the project.
4340+project = u'Ironic'
4341+copyright = u'OpenStack Foundation'
4342+
4343+# The version info for the project you're documenting, acts as replacement for
4344+# |version| and |release|, also used in various other places throughout the
4345+# built documents.
4346+#
4347+# The short X.Y version.
4348+from ironic import version as ironic_version
4349+# The full version, including alpha/beta/rc tags.
4350+release = ironic_version.version_info.release_string()
4351+# The short X.Y version.
4352+version = ironic_version.version_info.version_string()
4353+
4354+# A list of ignored prefixes for module index sorting.
4355+modindex_common_prefix = ['ironic.']
4356+
4357+# If true, '()' will be appended to :func: etc. cross-reference text.
4358+add_function_parentheses = True
4359+
4360+# If true, the current module name will be prepended to all description
4361+# unit titles (such as .. function::).
4362+add_module_names = True
4363+
4364+# The name of the Pygments (syntax highlighting) style to use.
4365+pygments_style = 'sphinx'
4366+
4367+# -- Options for HTML output --------------------------------------------------
4368+
4369+# The theme to use for HTML and HTML Help pages. Major themes that come with
4370+# Sphinx are currently 'default' and 'sphinxdoc'.
4371+#html_theme_path = ["."]
4372+#html_theme = '_theme'
4373+#html_static_path = ['_static']
4374+
4375+# Output file base name for HTML help builder.
4376+htmlhelp_basename = '%sdoc' % project
4377+
4378+
4379+# Grouping the document tree into LaTeX files. List of tuples
4380+# (source start file, target name, title, author, documentclass
4381+# [howto/manual]).
4382+latex_documents = [
4383+ (
4384+ 'index',
4385+ '%s.tex' % project,
4386+ u'%s Documentation' % project,
4387+ u'OpenStack Foundation',
4388+ 'manual'
4389+ ),
4390+]
4391
4392=== added directory 'doc/source/deploy'
4393=== added file 'doc/source/deploy/drivers.rst'
4394--- doc/source/deploy/drivers.rst 1970-01-01 00:00:00 +0000
4395+++ doc/source/deploy/drivers.rst 2015-04-27 18:58:18 +0000
4396@@ -0,0 +1,130 @@
4397+.. _drivers:
4398+
4399+=================
4400+Enabling Drivers
4401+=================
4402+
4403+DRAC
4404+----
4405+
4406+DRAC with PXE deploy
4407+^^^^^^^^^^^^^^^^^^^^
4408+
4409+- Add ``pxe_drac`` to the list of ``enabled_drivers in``
4410+ ``/etc/ironic/ironic.conf``
4411+- Install openwsman-python package
4412+
4413+SNMP
4414+----
4415+
4416+The SNMP power driver enables control of power distribution units of the type
4417+frequently found in data centre racks. PDUs frequently have a management
4418+ethernet interface and SNMP support enabling control of the power outlets.
4419+
4420+The SNMP power driver works with the PXE driver for network deployment and
4421+network-configured boot.
4422+
4423+Supported PDUs
4424+^^^^^^^^^^^^^^
4425+
4426+- American Power Conversion (APC)
4427+- CyberPower (implemented according to MIB spec but not tested on hardware)
4428+- EatonPower (implemented according to MIB spec but not tested on hardware)
4429+- Teltronix
4430+
4431+Software Requirements
4432+^^^^^^^^^^^^^^^^^^^^^
4433+
4434+- The PySNMP package must be installed, variously referred to as ``pysnmp``
4435+ or ``python-pysnmp``
4436+
4437+Enabling the SNMP Power Driver
4438+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4439+
4440+- Add ``pxe_snmp`` to the list of ``enabled_drivers`` in
4441+ ``/etc/ironic/ironic.conf``
4442+- Ironic Conductor must be restarted for the new driver to be loaded.
4443+
4444+Ironic Node Configuration
4445+^^^^^^^^^^^^^^^^^^^^^^^^^
4446+
4447+Nodes are configured for SNMP control by setting the Ironic node object's
4448+``driver`` property to be ``pxe_snmp``. Further configuration values are
4449+added to ``driver_info``:
4450+
4451+- ``snmp_address``: the IPv4 address of the PDU controlling this node.
4452+- ``snmp_port``: (optional) A non-standard UDP port to use for SNMP operations.
4453+ If not specified, the default port (161) is used.
4454+- ``snmp_outlet``: The power outlet on the PDU (1-based indexing).
4455+- ``snmp_protocol``: (optional) SNMP protocol version
4456+ (permitted values ``1``, ``2c`` or ``3``). If not specified, SNMPv1
4457+ is chosen.
4458+- ``snmp_community``: (Required for SNMPv1 and SNMPv2c) SNMP community
4459+ parameter for reads and writes to the PDU.
4460+- ``snmp_security``: (Required for SNMPv3) SNMP security string.
4461+
4462+PDU Configuration
4463+^^^^^^^^^^^^^^^^^
4464+
4465+This version of the SNMP power driver does not support handling
4466+PDU authentication credentials. When using SNMPv3, the PDU must be
4467+configured for ``NoAuthentication`` and ``NoEncryption``. The
4468+security name is used analagously to the SNMP community in early
4469+SNMP versions.
4470+
4471+iLO driver
4472+----------
4473+
4474+.. toctree::
4475+ :maxdepth: 1
4476+
4477+ ../drivers/ilo
4478+
4479+SeaMicro driver
4480+---------------
4481+
4482+.. toctree::
4483+ :maxdepth: 1
4484+
4485+ ../drivers/seamicro
4486+
4487+iRMC
4488+----
4489+
4490+The iRMC driver enables PXE Deploy to control power via ServerView Common
4491+Command Interface (SCCI).
4492+
4493+
4494+Software Requirements
4495+^^^^^^^^^^^^^^^^^^^^^
4496+
4497+- Install `python-scciclient package <https://pypi.python.org/pypi/python-scciclient>`_
4498+
4499+Enabling the iRMC Driver
4500+^^^^^^^^^^^^^^^^^^^^^^^^
4501+
4502+- Add ``pxe_irmc`` to the list of ``enabled_drivers in``
4503+ ``/etc/ironic/ironic.conf``
4504+- Ironic Conductor must be restarted for the new driver to be loaded.
4505+
4506+Ironic Node Configuration
4507+^^^^^^^^^^^^^^^^^^^^^^^^^
4508+
4509+Nodes are configured for iRMC with PXE Deploy by setting the Ironic node
4510+object's ``driver`` property to be ``pxe_irmc``. Further configuration values
4511+are added to ``driver_info``:
4512+
4513+- ``irmc_address``: hostname or IP of iRMC
4514+- ``irmc_username``: username for iRMC with administrator privileges
4515+- ``irmc_password``: password for irmc_username
4516+- ``irmc_port``: port number of iRMC (optional, either 80 or 443. defalut 443)
4517+- ``irmc_auth_method``: authentication method for iRMC (optional, either
4518+ 'basic' or 'digest'. default is 'basic')
4519+
4520+Supported Platforms
4521+^^^^^^^^^^^^^^^^^^^
4522+This driver supports FUJITSU PRIMERGY BX S4 or RX S8 servers and above.
4523+
4524+- PRIMERGY BX920 S4
4525+- PRIMERGY BX924 S4
4526+- PRIMERGY RX300 S8
4527
4528=== added file 'doc/source/deploy/install-guide.rst'
4529--- doc/source/deploy/install-guide.rst 1970-01-01 00:00:00 +0000
4530+++ doc/source/deploy/install-guide.rst 2015-04-27 18:58:18 +0000
4531@@ -0,0 +1,1049 @@
4532+.. _install-guide:
4533+
4534+=====================================
4535+Bare Metal Service Installation Guide
4536+=====================================
4537+
4538+This document pertains to the Juno (2014.2) release of OpenStack. Users of
4539+earlier releases may encounter some differences in configuration of services.
4540+
4541+
4542+Service Overview
4543+================
4544+
4545+The Bare Metal Service is a collection of components that provides support to
4546+manage and provision physical machines.
4547+
4548+Also known as the ``ironic`` project, the Bare Metal Service interacts with
4549+several other OpenStack services such as:
4550+
4551+- the Identity Service (keystone) for request authentication and to
4552+ locate other OpenStack services
4553+- the Image Service (glance) from which to retrieve images
4554+- the Networking Service (neutron) for DHCP and network configuration
4555+- the Compute Service (nova), which leverages the Bare Metal Service to
4556+ manage compute instances on bare metal.
4557+
4558+The Bare Metal Service includes the following components:
4559+
4560+- ironic-api. A RESTful API that processes application requests by sending
4561+ them to the ironic-conductor over RPC.
4562+- ironic-conductor. Adds/edits/deletes nodes; powers on/off nodes with
4563+ ipmi or ssh; provisions/deploys/decommissions bare metal nodes.
4564+- Ironic client. A command-line interface (CLI) for interacting with
4565+ the Bare Metal Service.
4566+
4567+Additionally, the Bare Metal Service has certain external dependencies, which are
4568+very similar to other OpenStack Services:
4569+
4570+- A database to store hardware information and state. You can set the database
4571+ backend type and location. A simple approach is to use the same database
4572+ backend as the Compute Service. Another approach is to use a separate
4573+ database backend to further isolate bare metal resources (and associated
4574+ metadata) from users.
4575+- A queue. A central hub for passing messages. It should use the same
4576+ implementation as that of the Compute Service (typically RabbitMQ).
4577+
4578+Install and Configure Prerequisites
4579+===================================
4580+
4581+The Bare Metal Service is a collection of components that provides support to
4582+manage and provision physical machines. You can configure these components to
4583+run on separate nodes or the same node. In this guide, the components run on
4584+one node, typically the Compute Service's compute node.
4585+
4586+This section shows you how to install and configure the components.
4587+
4588+It assumes that the Identity Service, Image Service, Compute Service, and
4589+Networking Service have already been set up.
4590+
4591+Configure Identity Service for Bare Metal
4592+-----------------------------------------
4593+
4594+#. Create the Bare Metal service user (eg ``ironic``). The service uses this to
4595+ authenticate with the Identity Service. Use the ``service`` tenant and
4596+ give the user the ``admin`` role::
4597+
4598+ keystone user-create --name=ironic --pass=IRONIC_PASSWORD --email=ironic@example.com
4599+ keystone user-role-add --user=ironic --tenant=service --role=admin
4600+
4601+#. You must register the Bare Metal Service with the Identity Service so that
4602+ other OpenStack services can locate it. To register the service::
4603+
4604+ keystone service-create --name=ironic --type=baremetal \
4605+ --description="Ironic bare metal provisioning service"
4606+
4607+#. Use the ``id`` property that is returned from the Identity Service when registering
4608+ the service (above), to create the endpoint, and replace IRONIC_NODE
4609+ with your Bare Metal Service's API node::
4610+
4611+ keystone endpoint-create \
4612+ --service-id=the_service_id_above \
4613+ --publicurl=http://IRONIC_NODE:6385 \
4614+ --internalurl=http://IRONIC_NODE:6385 \
4615+ --adminurl=http://IRONIC_NODE:6385
4616+
4617+.. error::
4618+ If the keystone endpoint-create operation returns an error about not being
4619+ able to find the region "regionOne", the error is due to this keystone bug:
4620+ https://bugs.launchpad.net/keystone/+bug/1400589. As a workaround until
4621+ that bug is fixed you can force the creation of "RegionOne" by passing
4622+ --region=RegionOne as an argument to the keystone endpoint-create command.
4623+
4624+Set up the Database for Bare Metal
4625+----------------------------------
4626+
4627+The Bare Metal Service stores information in a database. This guide uses the
4628+MySQL database that is used by other OpenStack services.
4629+
4630+#. In MySQL, create an ``ironic`` database that is accessible by the
4631+ ``ironic`` user. Replace IRONIC_DBPASSWORD
4632+ with the actual password::
4633+
4634+ # mysql -u root -p
4635+ mysql> CREATE DATABASE ironic CHARACTER SET utf8;
4636+ mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'localhost' \
4637+ IDENTIFIED BY 'IRONIC_DBPASSWORD';
4638+ mysql> GRANT ALL PRIVILEGES ON ironic.* TO 'ironic'@'%' \
4639+ IDENTIFIED BY 'IRONIC_DBPASSWORD';
4640+
4641+Install the Bare Metal Service
4642+------------------------------
4643+
4644+#. Install from packages::
4645+
4646+ # Available in Ubuntu 14.04 (trusty)
4647+ apt-get install ironic-api ironic-conductor python-ironicclient
4648+
4649+Configure the Bare Metal Service
4650+================================
4651+
4652+The Bare Metal Service is configured via its configuration file. This file
4653+is typically located at ``/etc/ironic/ironic.conf``.
4654+
4655+Although some configuration options are mentioned here, it is recommended that
4656+you review all the available options so that the Bare Metal Service is
4657+configured for your needs.
4658+
4659+#. The Bare Metal Service stores information in a database. This guide uses the
4660+ MySQL database that is used by other OpenStack services.
4661+
4662+ Configure the location of the database via the ``connection`` option. In the
4663+ following, replace IRONIC_DBPASSWORD with the password of your ``ironic``
4664+ user, and replace DB_IP with the IP address where the DB server is located::
4665+
4666+ [database]
4667+ ...
4668+
4669+ # The SQLAlchemy connection string used to connect to the
4670+ # database (string value)
4671+ #connection=<None>
4672+ connection = mysql://ironic:IRONIC_DBPASSWORD@DB_IP/ironic?charset=utf8
4673+
4674+#. Configure the Bare Metal Service to use the RabbitMQ message broker by
4675+ setting one or more of these options. Replace RABBIT_HOST with the
4676+ address of the RabbitMQ server.::
4677+
4678+ [DEFAULT]
4679+ ...
4680+ # The RabbitMQ broker address where a single node is used
4681+ # (string value)
4682+ rabbit_host=RABBIT_HOST
4683+
4684+ # The RabbitMQ userid (string value)
4685+ #rabbit_userid=guest
4686+
4687+ # The RabbitMQ password (string value)
4688+ #rabbit_password=guest
4689+
4690+ # The RabbitMQ virtual host (string value)
4691+ #rabbit_virtual_host=/
4692+
4693+#. Configure the Bare Metal Service to use these credentials with the Identity
4694+ Service. Replace IDENTITY_IP with the IP of the Identity server, and
4695+ replace IRONIC_PASSWORD with the password you chose for the ``ironic``
4696+ user in the Identity Service::
4697+
4698+ [DEFAULT]
4699+ ...
4700+ # Method to use for authentication: noauth or keystone.
4701+ # (string value)
4702+ auth_strategy=keystone
4703+
4704+ ...
4705+ [keystone_authtoken]
4706+
4707+ # Host providing the admin Identity API endpoint (string
4708+ # value)
4709+ #auth_host=127.0.0.1
4710+ auth_host=IDENTITY_IP
4711+
4712+ # Port of the admin Identity API endpoint (integer value)
4713+ #auth_port=35357
4714+
4715+ # Protocol of the admin Identity API endpoint(http or https)
4716+ # (string value)
4717+ #auth_protocol=https
4718+
4719+ # Complete public Identity API endpoint (string value)
4720+ #auth_uri=<None>
4721+ auth_uri=http://IDENTITY_IP:5000/
4722+
4723+ # Keystone account username (string value)
4724+ #admin_user=<None>
4725+ admin_user=ironic
4726+
4727+ # Keystone account password (string value)
4728+ #admin_password=<None>
4729+ admin_password=IRONIC_PASSWORD
4730+
4731+ # Keystone service account tenant name to validate user tokens
4732+ # (string value)
4733+ #admin_tenant_name=admin
4734+ admin_tenant_name=service
4735+
4736+ # Directory used to cache files related to PKI tokens (string
4737+ # value)
4738+ #signing_dir=<None>
4739+
4740+#. Set the URL (replace NEUTRON_IP) for connecting to the Networking service, to be the
4741+ Networking service endpoint::
4742+
4743+ [neutron]
4744+
4745+ # URL for connecting to neutron. (string value)
4746+ #url=http://127.0.0.1:9696
4747+ url=http://NEUTRON_IP:9696
4748+
4749+#. Configure the Bare Metal Service so that it can communicate with the
4750+ Image Service. Replace GLANCE_IP with the hostname or IP address of
4751+ the Image Service::
4752+
4753+ [glance]
4754+
4755+ # A list of URL schemes that can be downloaded directly via
4756+ # the direct_url. Currently supported schemes: [file]. (list
4757+ # value)
4758+ #allowed_direct_url_schemes=
4759+
4760+ # Default glance hostname or IP address. (string value)
4761+ #glance_host=$my_ip
4762+ glance_host=GLANCE_IP
4763+
4764+ # Default glance port. (integer value)
4765+ #glance_port=9292
4766+
4767+ # Default protocol to use when connecting to glance. Set to
4768+ # https for SSL. (string value)
4769+ #glance_protocol=http
4770+
4771+ # A list of the glance api servers available to nova. Prefix
4772+ # with https:// for SSL-based glance API servers. Format is
4773+ # [hostname|IP]:port. (string value)
4774+ #glance_api_servers=<None>
4775+
4776+
4777+#. Create the Bare Metal Service database tables::
4778+
4779+ ironic-dbsync --config-file /etc/ironic/ironic.conf create_schema
4780+
4781+#. Restart the Bare Metal Service::
4782+
4783+ service ironic-api restart
4784+ service ironic-conductor restart
4785+
4786+
4787+Configure Compute Service to use the Bare Metal Service
4788+=======================================================
4789+
4790+The Compute Service needs to be configured to use the Bare Metal Service's
4791+driver. The configuration file for the Compute Service is typically located at
4792+``/etc/nova/nova.conf``. *This configuration file must be modified on the
4793+Compute Service's controller nodes and compute nodes.*
4794+
4795+1. Change these configuration options in the ``default`` section, as follows::
4796+
4797+ [default]
4798+
4799+ # Driver to use for controlling virtualization. Options
4800+ # include: libvirt.LibvirtDriver, xenapi.XenAPIDriver,
4801+ # fake.FakeDriver, baremetal.BareMetalDriver,
4802+ # vmwareapi.VMwareESXDriver, vmwareapi.VMwareVCDriver (string
4803+ # value)
4804+ #compute_driver=<None>
4805+ compute_driver=nova.virt.ironic.IronicDriver
4806+
4807+ # Firewall driver (defaults to hypervisor specific iptables
4808+ # driver) (string value)
4809+ #firewall_driver=<None>
4810+ firewall_driver=nova.virt.firewall.NoopFirewallDriver
4811+
4812+ # The scheduler host manager class to use (string value)
4813+ #scheduler_host_manager=nova.scheduler.host_manager.HostManager
4814+ scheduler_host_manager=nova.scheduler.ironic_host_manager.IronicHostManager
4815+
4816+ # Virtual ram to physical ram allocation ratio which affects
4817+ # all ram filters. This configuration specifies a global ratio
4818+ # for RamFilter. For AggregateRamFilter, it will fall back to
4819+ # this configuration value if no per-aggregate setting found.
4820+ # (floating point value)
4821+ #ram_allocation_ratio=1.5
4822+ ram_allocation_ratio=1.0
4823+
4824+ # Amount of disk in MB to reserve for the host (integer value)
4825+ #reserved_host_disk_mb=0
4826+ reserved_host_memory_mb=0
4827+
4828+ # Full class name for the Manager for compute (string value)
4829+ #compute_manager=nova.compute.manager.ComputeManager
4830+ compute_manager=ironic.nova.compute.manager.ClusteredComputeManager
4831+
4832+2. Change these configuration options in the ``ironic`` section.
4833+ Replace:
4834+
4835+ - IRONIC_PASSWORD with the password you chose for the ``ironic``
4836+ user in the Identity Service
4837+ - IRONIC_NODE with the hostname or IP address of the ironic-api node
4838+ - IDENTITY_IP with the IP of the Identity server
4839+
4840+ ::
4841+
4842+ [ironic]
4843+
4844+ # Ironic keystone admin name
4845+ admin_username=ironic
4846+
4847+ #Ironic keystone admin password.
4848+ admin_password=IRONIC_PASSWORD
4849+
4850+ # keystone API endpoint
4851+ admin_url=http://IDENTITY_IP:35357/v2.0
4852+
4853+ # Ironic keystone tenant name.
4854+ admin_tenant_name=service
4855+
4856+ # URL for Ironic API endpoint.
4857+ api_endpoint=http://IRONIC_NODE:6385/v1
4858+
4859+3. On the Compute Service's controller nodes, restart ``nova-scheduler`` process::
4860+
4861+ service nova-scheduler restart
4862+
4863+4. On the Compute Service's compute nodes, restart the ``nova-compute`` process::
4864+
4865+ service nova-compute restart
4866+
4867+Configure Neutron to communicate with the Bare Metal Server
4868+===========================================================
4869+
4870+Neutron needs to be configured so that the bare metal server can communicate
4871+with the OpenStack Networking service for DHCP, PXE Boot and other
4872+requirements. This section describes how to configure Neutron for a single flat
4873+network use case for bare metal provisioning.
4874+
4875+You will also need to provide Ironic with the MAC address(es) of each Node that
4876+it is provisioning; Ironic in turn will pass this information to Neutron for
4877+DHCP and PXE Boot configuration. An example of this is shown in the
4878+`Enrollment`_ section.
4879+
4880+#. Edit ``/etc/neutron/plugins/ml2/ml2_conf.ini`` and modify these::
4881+
4882+ [ml2]
4883+ type_drivers = flat
4884+ tenant_network_types = flat
4885+ mechanism_drivers = openvswitch
4886+
4887+ [ml2_type_flat]
4888+ flat_networks = physnet1
4889+
4890+ [securitygroup]
4891+ firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
4892+ enable_security_group = True
4893+
4894+ [ovs]
4895+ network_vlan_ranges = physnet1
4896+ bridge_mappings = physnet1:br-eth2
4897+ # Replace eth2 with the interface on the neutron node which you
4898+ # are using to connect to the bare metal server
4899+
4900+#. If neutron-openvswitch-agent runs with ``ovs_neutron_plugin.ini`` as the input
4901+ config-file, edit ``ovs_neutron_plugin.ini`` to configure the bridge mappings
4902+ by adding the [ovs] section described in the previous step, and restart the
4903+ neutron-openvswitch-agent.
4904+
4905+#. Add the integration bridge to Open vSwitch::
4906+
4907+ ovs-vsctl add-br br-int
4908+
4909+#. Create the br-eth2 network bridge to handle communication between the
4910+ OpenStack (and Bare Metal services) and the bare metal nodes using eth2.
4911+ Replace eth2 with the interface on the neutron node which you are
4912+ using to connect to the Bare Metal Service::
4913+
4914+ ovs-vsctl add-br br-eth2
4915+ ovs-vsctl add-port br-eth2 eth2
4916+
4917+#. Restart the Open vSwitch agent::
4918+
4919+ service neutron-plugin-openvswitch-agent restart
4920+
4921+#. On restarting the Neutron Open vSwitch agent, the veth pair between
4922+ the bridges br-int and br-eth2 is automatically created.
4923+
4924+ Your Open vSwitch bridges should look something like this after
4925+ following the above steps::
4926+
4927+ ovs-vsctl show
4928+
4929+ Bridge br-int
4930+ fail_mode: secure
4931+ Port "int-br-eth2"
4932+ Interface "int-br-eth2"
4933+ type: patch
4934+ options: {peer="phy-br-eth2"}
4935+ Port br-int
4936+ Interface br-int
4937+ type: internal
4938+ Bridge "br-eth2"
4939+ Port "phy-br-eth2"
4940+ Interface "phy-br-eth2"
4941+ type: patch
4942+ options: {peer="int-br-eth2"}
4943+ Port "eth2"
4944+ Interface "eth2"
4945+ Port "br-eth2"
4946+ Interface "br-eth2"
4947+ type: internal
4948+ ovs_version: "2.3.0"
4949+
4950+#. Create the flat network on which you are going to launch the
4951+ instances::
4952+
4953+ neutron net-create --tenant-id $TENANT_ID sharednet1 --shared \
4954+ --provider:network_type flat --provider:physical_network physnet1
4955+
4956+Image Requirements
4957+==================
4958+
4959+Bare Metal provisioning requires two sets of images: the deploy images
4960+and the user images. The deploy images are used by the Bare Metal Service
4961+to prepare the bare metal server for actual OS deployment. Whereas the
4962+user images are installed on the bare metal server to be used by the
4963+end user. Below are the steps to create the required images and add
4964+them to Glance service:
4965+
4966+1. The `disk-image-builder`_ can be used to create images required for
4967+ deployment and the actual OS which the user is going to run.
4968+
4969+.. _disk-image-builder: https://github.com/openstack/diskimage-builder
4970+
4971+ *Note:* `tripleo-incubator`_ provides a `script`_ to install all the
4972+ dependencies for the disk-image-builder.
4973+
4974+.. _tripleo-incubator: https://github.com/openstack/tripleo-incubator
4975+
4976+.. _script: https://github.com/openstack/tripleo-incubator/blob/master/scripts/install-dependencies
4977+
4978+ - Install diskimage-builder package (use virtualenv, if you don't
4979+ want to install anything globally)::
4980+
4981+ sudo pip install diskimage-builder
4982+
4983+ - Build the image your users will run (Ubuntu image has been taken as
4984+ an example)::
4985+
4986+ disk-image-create ubuntu baremetal -o my-image
4987+
4988+ The above command creates *my-image.qcow2*, *my-image.vmlinuz* and
4989+ *my-image.initrd* files. If you want to use Fedora image, replace
4990+ *ubuntu* with *fedora* in the above command. *my-image.qcow2* is
4991+ used while deploying the actual OS the users will run. The images
4992+ *my-image.vmlinuz* and *my-image.initrd* are used for booting after
4993+ deploying the bare metal with my-image.qcow2.
4994+
4995+ - Build the deploy image::
4996+
4997+ ramdisk-image-create ubuntu deploy-ironic \
4998+ -o my-deploy-ramdisk
4999+
5000+ The above command creates *my-deploy-ramdisk.kernel* and
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches