@@ -277,9 +277,15 @@ func (provisioner *RedHatProvisioner) GenerateDockerOptions(dockerPort int) (*Do
277277 }, nil
278278}
279279
280- func (provisioner * RedHatProvisioner ) ConfigurePackageList () error {
280+ func generateYumRepoList (provisioner Provisioner ) ( * bytes. Buffer , error ) {
281281 packageListInfo := & PackageListInfo {}
282- switch provisioner .OsReleaseId {
282+
283+ releaseInfo , err := provisioner .GetOsReleaseInfo ()
284+ if err != nil {
285+ return nil , err
286+ }
287+
288+ switch releaseInfo .Id {
283289 case "rhel" , "centos" :
284290 // rhel and centos both use the "centos" repo
285291 packageListInfo .OsRelease = "centos"
@@ -288,20 +294,31 @@ func (provisioner *RedHatProvisioner) ConfigurePackageList() error {
288294 packageListInfo .OsRelease = "fedora"
289295 packageListInfo .OsReleaseVersion = "22"
290296 default :
291- return ErrUnknownYumOsRelease
297+ return nil , ErrUnknownYumOsRelease
292298 }
293299
294300 t , err := template .New ("packageList" ).Parse (packageListTemplate )
295301 if err != nil {
296- return err
302+ return nil , err
297303 }
298304
299305 var buf bytes.Buffer
300306
301307 if err := t .Execute (& buf , packageListInfo ); err != nil {
308+ return nil , err
309+ }
310+
311+ return & buf , nil
312+ }
313+
314+ func (provisioner * RedHatProvisioner ) ConfigurePackageList () error {
315+ buf , err := generateYumRepoList (provisioner )
316+ if err != nil {
302317 return err
303318 }
304319
320+ // we cannot use %q here as it combines the newlines in the formatting
321+ // on transport causing yum to not use the repo
305322 packageCmd := fmt .Sprintf ("echo \" %s\" | sudo tee /etc/yum.repos.d/docker.repo" , buf .String ())
306323 if _ , err := provisioner .SSHCommand (packageCmd ); err != nil {
307324 return err
0 commit comments