How can we update the MAC address information of an ironic port on the undercloud to make sure that the overcloud node gets the same IP address?

Solution In Progress - Updated -

Issue

What problem/issue/behavior are you having trouble with? What do you expect to see?

In our production landscape we had a failed update of the stack last week (due to a broken provisioning NIC). We replaced the NIC. Now I need to update the ironic port of the provisioning to set the new mac address of the new NIC.

Unfortunalty it is not possible to update the MAC address of an ironic port on OSP8:

stack@director ~]$ ironic --debug port-update 247ed557-a302-42e1-992c-efe88dbec42a replace address=24:6e:96:08:d1:04
DEBUG (session:198) REQ: curl -g -i -X GET http://192.168.3.11:5000/v2.0 -H "Accept: application/json" -H "User-Agent: python-keystoneclient"
INFO (connectionpool:203) Starting new HTTP connection (1): 192.168.3.11
DEBUG (connectionpool:383) "GET /v2.0 HTTP/1.1" 200 229
DEBUG (session:215) RESP: [200] content-length: 229 content-encoding: gzip vary: X-Auth-Token,Accept-Encoding server: Apache/2.4.6 (Red Hat Enterprise Linux) connection: close date: Mon, 28 Nov 2016 10:31:25 GMT content-type: application/json x-openstack-request-id: req-322b3921-6b06-42bc-8f6e-cf9b8edb6fba 
RESP BODY: {"version": {"status": "stable", "updated": "2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type": "application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links": [{"href": "http://192.168.3.11:5000/v2.0/", "rel": "self"}, {"href": "http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}}

WARNING (base:307) Plugin cannot return an endpoint without knowing the service type that is required. Add service_type to endpoint filtering data.
DEBUG (v2:86) Making authentication request to http://192.168.3.11:5000/v2.0/tokens
INFO (connectionpool:238) Resetting dropped connection: 192.168.3.11
DEBUG (connectionpool:383) "POST /v2.0/tokens HTTP/1.1" 200 891
DEBUG (iso8601:184) Parsed 2016-11-28T14:31:25Z into {'tz_sign': None, 'second_fraction': None, 'hour': u'14', 'daydash': u'28', 'tz_hour': None, 'month': None, 'timezone': u'Z', 'second': u'25', 'tz_minute': None, 'year': u'2016', 'separator': u'T', 'monthdash': u'11', 'day': None, 'minute': u'31'} with default timezone <iso8601.iso8601.Utc object at 0x1a07ad0>
DEBUG (iso8601:140) Got u'2016' for 'year' with default None
DEBUG (iso8601:140) Got u'11' for 'monthdash' with default 1
DEBUG (iso8601:140) Got 11 for 'month' with default 11
DEBUG (iso8601:140) Got u'28' for 'daydash' with default 1
DEBUG (iso8601:140) Got 28 for 'day' with default 28
DEBUG (iso8601:140) Got u'14' for 'hour' with default None
DEBUG (iso8601:140) Got u'31' for 'minute' with default None
DEBUG (iso8601:140) Got u'25' for 'second' with default None
DEBUG (session:198) REQ: curl -g -i -X PATCH http://192.168.3.11:6385/v1/ports/247ed557-a302-42e1-992c-efe88dbec42a -H "X-OpenStack-Ironic-API-Version: 1.9" -H "User-Agent: python-ironicclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: {SHA1}4da5de8672bbc8dd861457c8197460dce389b86b" -d '[{"path": "/address", "value": "24:6e:96:08:d1:04", "op": "replace"}]'
INFO (connectionpool:203) Starting new HTTP connection (1): 192.168.3.11
DEBUG (connectionpool:383) "PATCH /v1/ports/247ed557-a302-42e1-992c-efe88dbec42a HTTP/1.1" 500 159
DEBUG (session:215) RESP: [500] x-openstack-ironic-api-version: 1.9 content-length: 159 server: WSGIServer/0.1 Python/2.7.5 x-openstack-ironic-api-maximum-version: 1.14 date: Mon, 28 Nov 2016 10:31:25 GMT x-openstack-ironic-api-minimum-version: 1.1 content-type: application/json 
RESP BODY: {"error_message": "{\"debuginfo\":null,\"faultcode\":\"Server\",\"faultstring\":\"Update MAC address on port: 0e04e9df-c0d0-4189-bd7d-8825c67a3f11 failed.\"}"}

Update MAC address on port: 0e04e9df-c0d0-4189-bd7d-8825c67a3f11 failed. (HTTP 500)

Environment

  • Red Hat OpenStack Platform 8.0

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content