Change-Id: I1d7e43f02cca9a66da2260dcb940a97a563748d9
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/2696
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Divya Thaluru <dthaluru@vmware.com>
... | ... |
@@ -242,26 +242,19 @@ class Installer(object): |
242 | 242 |
|
243 | 243 |
def copy_rpms(self): |
244 | 244 |
# prepare the RPMs list |
245 |
- rpms = [] |
|
246 |
- for root, dirs, files in os.walk(self.rpm_path): |
|
247 |
- for name in files: |
|
248 |
- file = os.path.join(root, name) |
|
249 |
- size = os.path.getsize(file) |
|
250 |
- rpms.append({'filename': name, 'path': file, 'size': size}) |
|
245 |
+ json_pkg_to_rpm_map = JsonWrapper(self.install_config["pkg_to_rpm_map_file"]) |
|
246 |
+ pkg_to_rpm_map = json_pkg_to_rpm_map.read() |
|
251 | 247 |
|
252 | 248 |
self.rpms_tobeinstalled = [] |
253 | 249 |
selected_packages = self.install_config['packages'] |
254 |
- for package in selected_packages: |
|
255 |
- pattern = package + '-[0-9]*.rpm' |
|
256 |
- if (package == 'glibc'): |
|
257 |
- pattern2 = pattern |
|
258 |
- else: |
|
259 |
- pattern2 = package + '-[a-z][0-9]*.rpm' |
|
260 |
- for rpm in rpms: |
|
261 |
- if fnmatch.fnmatch(rpm['filename'], pattern) or fnmatch.fnmatch(rpm['filename'], pattern2): |
|
262 |
- rpm['package'] = package |
|
263 |
- self.rpms_tobeinstalled.append(rpm) |
|
264 |
- break |
|
250 |
+ |
|
251 |
+ for pkg in selected_packages: |
|
252 |
+ if pkg in pkg_to_rpm_map: |
|
253 |
+ if not pkg_to_rpm_map[pkg]['rpm'] is None: |
|
254 |
+ name = pkg_to_rpm_map[pkg]['rpm'] |
|
255 |
+ basename = os.path.basename(name) |
|
256 |
+ self.rpms_tobeinstalled.append({'filename': basename, 'path': name, 'package' : pkg}) |
|
257 |
+ |
|
265 | 258 |
# Copy the rpms |
266 | 259 |
for rpm in self.rpms_tobeinstalled: |
267 | 260 |
shutil.copy(rpm['path'], self.photon_root + '/RPMS/') |
... | ... |
@@ -227,6 +227,7 @@ if __name__ == '__main__': |
227 | 227 |
config['iso_system'] = False |
228 | 228 |
config['vmdk_install'] = False |
229 | 229 |
|
230 |
+ config["pkg_to_rpm_map_file"] = options.pkg_to_rpm_map_file |
|
230 | 231 |
if 'password' in config: |
231 | 232 |
# crypt the password if needed |
232 | 233 |
if config['password']['crypted']: |
... | ... |
@@ -59,7 +59,7 @@ if [ -n "$ADDITIONAL_RPMS_PATH" ] |
59 | 59 |
cp -f $ADDITIONAL_RPMS_PATH/* $PHOTON_STAGE_PATH/RPMS/additional/ |
60 | 60 |
fi |
61 | 61 |
|
62 |
-./photonInstaller.py -p $GENERATED_DATA_PATH/build_install_options_$IMG_NAME.json -r $PHOTON_STAGE_PATH/RPMS -v $WORKING_DIR/photon-${IMG_NAME} -o $GENERATED_DATA_PATH -f $VMDK_CONFIG_SAFE_FILE |
|
62 |
+./photonInstaller.py -p $GENERATED_DATA_PATH/build_install_options_$IMG_NAME.json -r $PHOTON_STAGE_PATH/RPMS -v $WORKING_DIR/photon-${IMG_NAME} -o $GENERATED_DATA_PATH -d $PHOTON_STAGE_PATH/pkg_info.json -f $VMDK_CONFIG_SAFE_FILE |
|
63 | 63 |
cat $VMDK_CONFIG_SAFE_FILE |
64 | 64 |
rm $VMDK_CONFIG_SAFE_FILE |
65 | 65 |
|