IBP: fix image metadata uri guessing
By default, fuel-agent tries to guess image metadata uri from root image uri by substituting its file extension with '.yaml' Eg.: if root uri is: http://10.20.0.2:8080/targetimages/env_2_ubuntu_1404_amd64.img.gz so, the guessed metadata uri will be: http://10.20.0.2:8080/targetimages/env_2_ubuntu_1404_amd64.yaml Change-Id: I2ed8a0d7c8585573fd5f5d89093b56173e34829a Closes-Bug: #1434499
This commit is contained in:
parent
bb88701347
commit
bbbcf035ec
@ -13,6 +13,7 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
import math
|
import math
|
||||||
|
import os
|
||||||
|
|
||||||
from fuel_agent.drivers import ks_spaces_validator
|
from fuel_agent.drivers import ks_spaces_validator
|
||||||
from fuel_agent import errors
|
from fuel_agent import errors
|
||||||
@ -21,6 +22,8 @@ from fuel_agent.openstack.common import log as logging
|
|||||||
from fuel_agent.utils import hardware_utils as hu
|
from fuel_agent.utils import hardware_utils as hu
|
||||||
from fuel_agent.utils import utils
|
from fuel_agent.utils import utils
|
||||||
|
|
||||||
|
from six.moves.urllib.parse import urljoin
|
||||||
|
from six.moves.urllib.parse import urlparse
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
@ -363,8 +366,10 @@ class Nailgun(object):
|
|||||||
# Also, the initial data source should be set to sort out chicken/egg
|
# Also, the initial data source should be set to sort out chicken/egg
|
||||||
# problem. Command line option may be useful for such a case.
|
# problem. Command line option may be useful for such a case.
|
||||||
# BUG: https://bugs.launchpad.net/fuel/+bug/1430418
|
# BUG: https://bugs.launchpad.net/fuel/+bug/1430418
|
||||||
metadata_url = data['ks_meta']['image_data']['/']['uri'].\
|
root_uri = data['ks_meta']['image_data']['/']['uri']
|
||||||
split('.')[0] + '.yaml'
|
filename = os.path.basename(urlparse(root_uri).path).split('.')[0] + \
|
||||||
|
'.yaml'
|
||||||
|
metadata_url = urljoin(root_uri, filename)
|
||||||
image_meta = {}
|
image_meta = {}
|
||||||
raw_image_meta = None
|
raw_image_meta = None
|
||||||
try:
|
try:
|
||||||
|
@ -90,7 +90,7 @@ PROVISION_SAMPLE_DATA = {
|
|||||||
"gw": "10.20.0.1",
|
"gw": "10.20.0.1",
|
||||||
"image_data": {
|
"image_data": {
|
||||||
"/": {
|
"/": {
|
||||||
"uri": "http://fake_image_url",
|
"uri": "http://fake.host.org:123/imgs/fake_image.img.gz",
|
||||||
"format": "ext4",
|
"format": "ext4",
|
||||||
"container": "gzip"
|
"container": "gzip"
|
||||||
}
|
}
|
||||||
@ -618,6 +618,8 @@ class TestNailgun(test_base.BaseTestCase):
|
|||||||
mock_lbd.return_value = LIST_BLOCK_DEVICES_SAMPLE
|
mock_lbd.return_value = LIST_BLOCK_DEVICES_SAMPLE
|
||||||
p_scheme = self.drv.partition_scheme()
|
p_scheme = self.drv.partition_scheme()
|
||||||
i_scheme = self.drv.image_scheme(p_scheme)
|
i_scheme = self.drv.image_scheme(p_scheme)
|
||||||
|
mock_http_req.assert_called_once_with(
|
||||||
|
'http://fake.host.org:123/imgs/fake_image.yaml')
|
||||||
expected_images = []
|
expected_images = []
|
||||||
for fs in p_scheme.fss:
|
for fs in p_scheme.fss:
|
||||||
if fs.mount not in PROVISION_SAMPLE_DATA['ks_meta']['image_data']:
|
if fs.mount not in PROVISION_SAMPLE_DATA['ks_meta']['image_data']:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user