
On 04/05/2016 09:52 AM, Ramon Medeiros wrote:
On 04/04/2016 03:52 PM, Aline Manera wrote:
Hi Ramon,
I just want to send you some tips on how to do that feature.
1. You are changing the way the template is created. Now source_media is a required parameter and need to be properly added on API.json
Cdrom can be removed, but disks need to stay. For example: if you want to create a template without disks?
You can remove the 'base' value available for disks.
Or, for scsi installation, you need disks to specify the lun device.
2. source_media will replace cdrom and disk[base], so, please update API.json to reflect it.
3. Following the Template creation flow, the request will first touch on model/templates.py in create() function.
The code below needs to be moved around as at this point you will not know if source_media is an ISO or an Image file.
... iso = params.get('cdrom') # check search permission if iso and iso.startswith('/') and os.path.exists(iso): st_mode = os.stat(iso).st_mode if stat.S_ISREG(st_mode) or stat.S_ISBLK(st_mode): user = UserTests().probe_user() run_setfacl_set_attr(iso, user=user) ret, excp = probe_file_permission_as_user(iso, user) if ret is False: raise InvalidParameter('KCHISO0008E', {'filename': iso, 'user': user, 'err': excp})
done
4. The second step is vmtemplate.py. As you can see you will need to change the function _get_os_info() to something like: * ** source_media = args.get('source_media)** ** if source_media is not None:** ** if source_media.startswith('http|https|ftp|...') or <use python magic to identify it is an ISO> :** ** args[cdrom] = source_media** ** else:** ** # assume it is an image** ** args[disks] = {base: source_media}*
Nope, when this function run, source_media is also identified on cdrom or disks, so the code works like in the past.
Not sure I got your point here. When you receive a source_media you need to identify if it is a cdrom or a disk, right? So this part of code is needed, correct?
# the code below keeps the same
Does all that make sense for you?
Regards, Aline Manera
On 03/31/2016 10:47 AM, Ramon Medeiros wrote:
Instead of specify if the media is cdrom or disk, use source_media to create a template
Changes:
v2: Remove libvirt connection from VMtemplate Fix incorrect changes on tests Fix return status when source_media not passed
v3: Fix pep8 issues Remove/add some constants Rewrite API message
Ramon Medeiros (4): Create a single field to pass the installation media Fix checking duplicate template before creating it Identify installation media while creating template Update tests
API.json | 5 ++ i18n.py | 2 +- model/templates.py | 15 ++++-- tests/test_authorization.py | 4 +- tests/test_livemigration.py | 7 +-- tests/test_mockmodel.py | 13 +++--- tests/test_model.py | 94 ++++++++++++++++++++----------------- tests/test_rest.py | 36 +++++++-------- tests/test_template.py | 47 +++++++++---------- tests/test_vmtemplate.py | 40 ++++++++-------- vmtemplate.py | 110 +++++++++++++++++++++++++++++++++++++------- 11 files changed, 235 insertions(+), 138 deletions(-)
--
Ramon Nunes Medeiros Kimchi Developer Linux Technology Center Brazil IBM Systems & Technology Group Phone : +55 19 2132 7878 ramonn@br.ibm.com