def _get_tftp_image_info(node, ctx): """Generate the paths for tftp files for this instance Raises IronicException if - instance does not contain kernel_id or ramdisk_id - deploy_kernel_id or deploy_ramdisk_id can not be read from driver_info and defaults are not set """ d_info = _parse_deploy_info(node) image_info = {} image_info.update(pxe_utils.get_deploy_kr_info(node.uuid, d_info)) i_info = node.instance_info labels = ('kernel', 'ramdisk') if not (i_info.get('kernel') and i_info.get('ramdisk')): glance_service = service.Service(version=1, context=ctx) iproperties = glance_service.show(d_info['image_source'])['properties'] for label in labels: i_info[label] = str(iproperties[label + '_id']).split('/')[-1] node.instance_info = i_info node.save(ctx) for label in labels: image_info[label] = ( i_info[label], os.path.join(CONF.pxe.tftp_root, node.uuid, label) ) return image_info
def _get_image_info(node, ctx): """Generate the paths for tftp files for this instance Raises IronicException if - instance does not contain kernel or ramdisk - deploy_kernel or deploy_ramdisk can not be read from driver_info and defaults are not set """ d_info = _parse_deploy_info(node) image_info = {} root_dir = pxe_utils.get_root_dir() image_info.update(pxe_utils.get_deploy_kr_info(node.uuid, d_info)) if node.driver_internal_info.get('is_whole_disk_image'): return image_info i_info = node.instance_info labels = ('kernel', 'ramdisk') if not (i_info.get('kernel') and i_info.get('ramdisk')): glance_service = service.GlanceImageService(version=1, context=ctx) iproperties = glance_service.show(d_info['image_source'])['properties'] for label in labels: i_info[label] = str(iproperties[label + '_id']) node.instance_info = i_info node.save() for label in labels: image_info[label] = ( i_info[label], os.path.join(root_dir, node.uuid, label) ) return image_info
def _get_tftp_image_info(node, ctx): """Generate the paths for tftp files for this instance Raises IronicException if - instance does not contain kernel_id or ramdisk_id - deploy_kernel_id or deploy_ramdisk_id can not be read from driver_info and defaults are not set """ d_info = _parse_deploy_info(node) image_info = {} image_info.update(pxe_utils.get_deploy_kr_info(node.uuid, d_info)) i_info = node.instance_info labels = ('kernel', 'ramdisk') if not (i_info.get('kernel') and i_info.get('ramdisk')): glance_service = service.Service(version=1, context=ctx) iproperties = glance_service.show(d_info['image_source'])['properties'] for label in labels: if label + '_id' not in iproperties: continue i_info[label] = str(iproperties[label + '_id']).split('/')[-1] node.instance_info = i_info node.save(ctx) for label in labels: if label not in i_info: continue image_info[label] = (i_info[label], os.path.join(CONF.pxe.tftp_root, node.uuid, label)) return image_info
def _get_image_info(node, ctx): """Generate the paths for tftp files for this instance Raises IronicException if - instance does not contain kernel or ramdisk - deploy_kernel or deploy_ramdisk can not be read from driver_info and defaults are not set """ d_info = _parse_deploy_info(node) image_info = {} root_dir = pxe_utils.get_root_dir() image_info.update(pxe_utils.get_deploy_kr_info(node.uuid, d_info)) if node.driver_internal_info.get('is_whole_disk_image'): return image_info i_info = node.instance_info labels = ('kernel', 'ramdisk') if not (i_info.get('kernel') and i_info.get('ramdisk')): glance_service = service.GlanceImageService(version=1, context=ctx) iproperties = glance_service.show(d_info['image_source'])['properties'] for label in labels: i_info[label] = str(iproperties[label + '_id']) node.instance_info = i_info node.save() for label in labels: image_info[label] = (i_info[label], os.path.join(root_dir, node.uuid, label)) return image_info
def _test_get_deploy_kr_info(self, expected_dir): node_uuid = "fake-node" driver_info = {"deploy_kernel": "glance://deploy-kernel", "deploy_ramdisk": "glance://deploy-ramdisk"} expected = { "deploy_kernel": ("deploy-kernel", expected_dir + "/fake-node/deploy_kernel"), "deploy_ramdisk": ("deploy-ramdisk", expected_dir + "/fake-node/deploy_ramdisk"), } kr_info = pxe_utils.get_deploy_kr_info(node_uuid, driver_info) self.assertEqual(expected, kr_info)
def _get_deploy_image_info(node): """Generate the paths for TFTP files for deploy images. This method generates the paths for the deploy kernel and deploy ramdisk. :param node: a node object :returns: a dictionary whose keys are the names of the images ( deploy_kernel, deploy_ramdisk) and values are the absolute paths of them. :raises: MissingParameterValue, if deploy_kernel/deploy_ramdisk is missing in node's driver_info. """ d_info = _parse_driver_info(node) return pxe_utils.get_deploy_kr_info(node.uuid, d_info)
def _test_get_deploy_kr_info(self, expected_dir): node_uuid = 'fake-node' driver_info = { 'deploy_kernel': 'glance://deploy-kernel', 'deploy_ramdisk': 'glance://deploy-ramdisk', } expected = { 'deploy_kernel': ('glance://deploy-kernel', expected_dir + '/fake-node/deploy_kernel'), 'deploy_ramdisk': ('glance://deploy-ramdisk', expected_dir + '/fake-node/deploy_ramdisk'), } kr_info = pxe_utils.get_deploy_kr_info(node_uuid, driver_info) self.assertEqual(expected, kr_info)
def _test_get_deploy_kr_info(self, expected_dir): node_uuid = 'fake-node' driver_info = { 'deploy_kernel': 'glance://deploy-kernel', 'deploy_ramdisk': 'glance://deploy-ramdisk', } expected = { 'deploy_kernel': ('deploy-kernel', expected_dir + '/fake-node/deploy_kernel'), 'deploy_ramdisk': ('deploy-ramdisk', expected_dir + '/fake-node/deploy_ramdisk'), } kr_info = pxe_utils.get_deploy_kr_info(node_uuid, driver_info) self.assertEqual(expected, kr_info)
def test_get_deploy_kr_info(self): self.config(tftp_root='/tftp', group='pxe') node_uuid = 'fake-node' driver_info = { 'deploy_kernel': 'glance://deploy-kernel', 'deploy_ramdisk': 'glance://deploy-ramdisk', } expected = { 'deploy_kernel': ('deploy-kernel', '/tftp/fake-node/deploy_kernel'), 'deploy_ramdisk': ('deploy-ramdisk', '/tftp/fake-node/deploy_ramdisk'), } kr_info = pxe_utils.get_deploy_kr_info(node_uuid, driver_info) self.assertEqual(expected, kr_info)
def _get_tftp_image_info(node): return pxe_utils.get_deploy_kr_info(node.uuid, node.driver_info)
def _get_tftp_image_info(node): params = _get_boot_files(node) return pxe_utils.get_deploy_kr_info(node.uuid, params)