Skip to content

Commit f2aec5b

Browse files
author
Glenn Matthews
committed
Add metadata.json to generated box
1 parent 674f5a4 commit f2aec5b

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

iosxr_iso2vbox.py

+16-1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
import re
6969
import logging
7070
import pexpect
71+
import tarfile
7172

7273
# Telnet ports used to access IOS XR via socat
7374
CONSOLE_PORT = 65000
@@ -435,6 +436,7 @@ def main(argv):
435436
vbox = os.path.join(box_dir, vmname + '.vbox')
436437
vdi = os.path.join(box_dir, vmname + '.vdi')
437438
box_out = os.path.join(box_dir, vmname + '.box')
439+
box_tmp = os.path.join(box_dir, vmname)
438440
ova_out = os.path.join(box_dir, vmname + '.ova')
439441
pathname = os.path.abspath(os.path.dirname(sys.argv[0]))
440442

@@ -443,6 +445,7 @@ def main(argv):
443445
logger.debug('base_dir: %s', base_dir)
444446
logger.debug('box_dir: %s', box_dir)
445447
logger.debug('box_out: %s', box_out)
448+
logger.debug('box_tmp: %s', box_tmp)
446449
logger.debug('vbox: %s', vbox)
447450

448451
if not os.path.exists(base_dir):
@@ -456,6 +459,11 @@ def main(argv):
456459
os.remove(box_out)
457460
logger.debug('Found and deleted previous %s', box_out)
458461

462+
# Delete existing temporary file
463+
if os.path.exists(box_tmp):
464+
os.remove(box_tmp)
465+
logger.debug('Found and deleted previous %s', box_tmp)
466+
459467
# Delete existing OVA
460468
if os.path.exists(ova_out) and create_ova is True:
461469
os.remove(ova_out)
@@ -603,7 +611,14 @@ def main(argv):
603611
# Add in embedded Vagrantfile
604612
vagrantfile_pathname = os.path.join(pathname, 'include', 'embedded_vagrantfile')
605613

606-
run(['vagrant', 'package', '--base', vmname, '--vagrantfile', vagrantfile_pathname, '--output', box_out])
614+
run(['vagrant', 'package', '--base', vmname,
615+
'--vagrantfile', vagrantfile_pathname, '--output', box_out])
616+
logger.info("Adding metadata.json to final box")
617+
run(['gunzip', '--force', '-S', '.box', box_out])
618+
with tarfile.open(box_tmp, 'a') as tarf:
619+
tarf.add("./metadata.json")
620+
run(['gzip', '--force', '-S', '.box', box_tmp])
621+
607622
logger.info('Created: %s', box_out)
608623

609624
# Create OVA

metadata.json

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"provider": "virtualbox"
3+
}

0 commit comments

Comments
 (0)