def __str__(self): """String representation of the building block""" if hpccm.config.g_linux_distro == linux_distro.UBUNTU: if self.__apt: return str( apt_get(keys=self.__apt_keys, ospackages=self.__apt, ppas=self.__apt_ppas, repositories=self.__apt_repositories)) else: return str( apt_get(keys=self.__apt_keys, ospackages=self.__ospackages, ppas=self.__apt_ppas, repositories=self.__apt_repositories)) elif hpccm.config.g_linux_distro == linux_distro.CENTOS: if self.__yum: return str( yum(epel=self.__epel, keys=self.__yum_keys, ospackages=self.__yum, scl=self.__scl, repositories=self.__yum_repositories)) else: return str( yum(epel=self.__epel, keys=self.__yum_keys, ospackages=self.__ospackages, scl=self.__scl, repositories=self.__yum_repositories)) else: raise RuntimeError('Unknown Linux distribution')
def test_powertools_centos7(self): """Powertools repo""" y = yum(ospackages=['hwloc-devel'], powertools=True) self.assertEqual( str(y), r'''RUN yum install -y \ hwloc-devel && \ rm -rf /var/cache/yum/*''')
def __instructions(self): """String representation of the building block""" if hpccm.config.g_linux_distro == linux_distro.UBUNTU: if self.__apt: ospackages = self.__apt else: ospackages = self.__ospackages self += apt_get(aptitude=self.__aptitude, download=self.__download, download_directory=self.__download_directory, extract=self.__extract, keys=self.__apt_keys, ospackages=ospackages, ppas=self.__apt_ppas, repositories=self.__apt_repositories) elif hpccm.config.g_linux_distro == linux_distro.CENTOS: if self.__yum: ospackages = self.__yum else: ospackages = self.__ospackages self += yum(download=self.__download, download_directory=self.__download_directory, extract=self.__extract, epel=self.__epel, keys=self.__yum_keys, ospackages=ospackages, powertools=self.__powertools, release_stream=self.__release_stream, scl=self.__scl, repositories=self.__yum_repositories, yum4=self.__yum4) else: raise RuntimeError('Unknown Linux distribution')
def test_basic(self): """Basic yum""" y = yum(ospackages=['gcc', 'gcc-c++', 'gcc-fortran']) self.assertEqual( str(y), r'''RUN yum install -y \ gcc \ gcc-c++ \ gcc-fortran && \ rm -rf /var/cache/yum/*''')
def test_powertools_centos8(self): """Powertools repo""" y = yum(ospackages=['hwloc-devel'], powertools=True) self.assertEqual( str(y), r'''RUN yum install -y dnf-utils && \ yum-config-manager --set-enabled powertools && \ yum install -y \ hwloc-devel && \ rm -rf /var/cache/yum/*''')
def test_download(self): """Download parameter""" y = yum(download=True, download_directory='/tmp/download', ospackages=['rdma-core']) self.assertEqual(str(y), r'''RUN yum install -y yum-utils && \ mkdir -p /tmp/download && \ yumdownloader --destdir=/tmp/download -x \*i?86 --archlist=x86_64 \ rdma-core && \ rm -rf /var/cache/yum/*''')
def test_add_repo(self): """Add repo and key""" y = yum(keys=['https://www.example.com/key.pub'], ospackages=['example'], repositories=['http://www.example.com/example.repo']) self.assertEqual(str(y), r'''RUN rpm --import https://www.example.com/key.pub && \ yum-config-manager --add-repo http://www.example.com/example.repo && \ yum install -y \ example && \ rm -rf /var/cache/yum/*''')
def test_extract(self): """Extract parameter""" y = yum(download=True, extract='/usr/local/ofed', ospackages=['rdma-core']) self.assertEqual(str(y), r'''RUN yum install -y yum-utils && \ mkdir -p /var/tmp/yum_download && \ yumdownloader --destdir=/var/tmp/yum_download -x \*i?86 --archlist=x86_64 \ rdma-core && \ mkdir -p /usr/local/ofed && cd /usr/local/ofed && \ find /var/tmp/yum_download -regextype posix-extended -type f -regex "/var/tmp/yum_download/(rdma-core).*rpm" -exec sh -c "rpm2cpio {} | cpio -idm" \; && \ rm -rf /var/tmp/yum_download && \ rm -rf /var/cache/yum/*''')
def test_add_repo_powertools_centos8(self): """Add repo and key and enable PowerTools""" y = yum(keys=['https://www.example.com/key.pub'], ospackages=['example'], repositories=['http://www.example.com/example.repo'], powertools=True) self.assertEqual( str(y), r'''RUN rpm --import https://www.example.com/key.pub && \ yum install -y dnf-utils && \ yum-config-manager --add-repo http://www.example.com/example.repo && \ yum-config-manager --set-enabled powertools && \ yum install -y \ example && \ rm -rf /var/cache/yum/*''')