Fixes to onos_stage to include karaf.zip
Change-Id: Iae00ae0a47150b470a7fc409260ca21824af020e
Showing
3 changed files
with
12 additions
and
4 deletions
... | @@ -5,6 +5,8 @@ import re | ... | @@ -5,6 +5,8 @@ import re |
5 | import os | 5 | import os |
6 | from zipfile import ZipFile | 6 | from zipfile import ZipFile |
7 | from tarfile import TarFile, TarInfo | 7 | from tarfile import TarFile, TarInfo |
8 | +import tarfile | ||
9 | +import time | ||
8 | from cStringIO import StringIO | 10 | from cStringIO import StringIO |
9 | 11 | ||
10 | VERSION = '1.6.0' #FIXME version, and maybe git commit hash | 12 | VERSION = '1.6.0' #FIXME version, and maybe git commit hash |
... | @@ -12,11 +14,14 @@ BASE = 'onos-%s/' % VERSION | ... | @@ -12,11 +14,14 @@ BASE = 'onos-%s/' % VERSION |
12 | 14 | ||
13 | 15 | ||
14 | written_files = set() | 16 | written_files = set() |
17 | +now = time.time() | ||
15 | 18 | ||
16 | def addFile(tar, dest, file, file_size): | 19 | def addFile(tar, dest, file, file_size): |
17 | if dest not in written_files: | 20 | if dest not in written_files: |
18 | info = TarInfo(dest) | 21 | info = TarInfo(dest) |
19 | info.size = file_size | 22 | info.size = file_size |
23 | + info.mtime = now | ||
24 | + info.mode = 0777 | ||
20 | tar.addfile(info, fileobj=file) | 25 | tar.addfile(info, fileobj=file) |
21 | written_files.add(dest) | 26 | written_files.add(dest) |
22 | 27 | ||
... | @@ -25,6 +30,8 @@ def addString(tar, dest, string): | ... | @@ -25,6 +30,8 @@ def addString(tar, dest, string): |
25 | print dest, string | 30 | print dest, string |
26 | info = TarInfo(dest) | 31 | info = TarInfo(dest) |
27 | info.size = len(string) | 32 | info.size = len(string) |
33 | + info.mtime = now | ||
34 | + info.mode = 0777 | ||
28 | file = StringIO(string) | 35 | file = StringIO(string) |
29 | tar.addfile(info, fileobj=file) | 36 | tar.addfile(info, fileobj=file) |
30 | file.close() | 37 | file.close() |
... | @@ -32,12 +39,13 @@ def addString(tar, dest, string): | ... | @@ -32,12 +39,13 @@ def addString(tar, dest, string): |
32 | 39 | ||
33 | def stageOnos(output, files=[]): | 40 | def stageOnos(output, files=[]): |
34 | # Note this is not a compressed zip | 41 | # Note this is not a compressed zip |
35 | - with TarFile(output, 'a') as output: | 42 | + with tarfile.open(output, 'w:gz') as output: |
36 | - written_files = set(output.getnames()) | ||
37 | for file in files: | 43 | for file in files: |
38 | if '.zip' in file: | 44 | if '.zip' in file: |
39 | with ZipFile(file, 'r') as zip_part: | 45 | with ZipFile(file, 'r') as zip_part: |
40 | for f in zip_part.infolist(): | 46 | for f in zip_part.infolist(): |
47 | + dest = f.filename | ||
48 | + if BASE not in dest: | ||
41 | dest = BASE + 'apache-karaf-3.0.5/system/' + f.filename | 49 | dest = BASE + 'apache-karaf-3.0.5/system/' + f.filename |
42 | addFile(output, dest, zip_part.open(f), f.file_size) | 50 | addFile(output, dest, zip_part.open(f), f.file_size) |
43 | elif '.oar' in file: | 51 | elif '.oar' in file: | ... | ... |
... | @@ -100,6 +100,6 @@ sources += staged_repos + staged_apps | ... | @@ -100,6 +100,6 @@ sources += staged_repos + staged_apps |
100 | genrule( | 100 | genrule( |
101 | name = 'onos-package', | 101 | name = 'onos-package', |
102 | out = 'onos.tar.gz', | 102 | out = 'onos.tar.gz', |
103 | - bash = 'cp $(location :onos-karaf) $OUT && $(exe //buck-tools:onos-stage) $OUT ' + ' '.join(sources), | 103 | + bash = '$(exe //buck-tools:onos-stage) $OUT $(location :onos-karaf) ' + ' '.join(sources), |
104 | visibility = [ 'PUBLIC' ], | 104 | visibility = [ 'PUBLIC' ], |
105 | ) | 105 | ) |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -56,7 +56,7 @@ cp -r bin $PREFIX | ... | @@ -56,7 +56,7 @@ cp -r bin $PREFIX |
56 | cp -r init $PREFIX | 56 | cp -r init $PREFIX |
57 | cp -r etc $PREFIX/$KARAF_DIR/etc/ | 57 | cp -r etc $PREFIX/$KARAF_DIR/etc/ |
58 | 58 | ||
59 | -tar czf $OUT $PREFIX | 59 | +zip -q -0 -r $OUT $PREFIX |
60 | 60 | ||
61 | #FIXME | 61 | #FIXME |
62 | # Stage all builtin ONOS apps for factory install | 62 | # Stage all builtin ONOS apps for factory install | ... | ... |
-
Please register or login to post a comment