diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index cd596a2..0000000 --- a/Dockerfile +++ /dev/null @@ -1,29 +0,0 @@ -FROM docker.io/fedora:25 - -MAINTAINER "James Antill" - -RUN dnf install -y --setopt=tsflags=nodocs samba && \ - dnf install -y --setopt=tsflags=nodocs /usr/bin/pidof && \ - dnf install -y --setopt=tsflags=nodocs python-mako PyYAML && \ - dnf -y clean all - -ADD files /files - -# mkdir -p /srv/samba/Demo/ -RUN mkdir -p /srv/samba -RUN /files/config.sh - -RUN sh -c 'date > /srv/samba/tst-build' - -EXPOSE 138/udp -EXPOSE 139 -EXPOSE 445 -EXPOSE 137/udp -EXPOSE 445/udp - - -# VOLUME ['/var/log', '/srv/samba'] - -# USER samba - -CMD ["/files/start.sh"] diff --git a/Makefile b/Makefile deleted file mode 100644 index 3ceab2a..0000000 --- a/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -IMAGE_NAME = samba - -MODULEMDURL=file://samba.yaml - -default: run - -build: - docker build --tag=$(IMAGE_NAME) . - -run: build - docker run -d $(IMAGE_NAME) - -test: build - cd tests; MODULE=docker MODULEMD=$(MODULEMDURL) URL="docker=$(IMAGE_NAME)" make all - cd tests; MODULE=rpm MODULEMD=$(MODULEMDURL) URL="docker=$(IMAGE_NAME)" make all - diff --git a/files/config.sh b/files/config.sh deleted file mode 100755 index 04b4cdc..0000000 --- a/files/config.sh +++ /dev/null @@ -1,6 +0,0 @@ -#! /bin/sh -e - -echo Config. -python /files/mako-render.py /files/smb.conf.mako /files/config.yaml \ - > /etc/samba/smb.conf - diff --git a/files/config.yaml b/files/config.yaml deleted file mode 100644 index a95ab22..0000000 --- a/files/config.yaml +++ /dev/null @@ -1,2 +0,0 @@ -mounts: - - /srv/samba diff --git a/files/mako-render.py b/files/mako-render.py deleted file mode 100644 index af7e9e8..0000000 --- a/files/mako-render.py +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/python - -from __future__ import print_function, unicode_literals - -import argparse -import mako.template -import yaml - -def main(): - parser = argparse.ArgumentParser() - parser.add_argument("template") - parser.add_argument("data") - options = parser.parse_args() - - with open(options.template) as stream: - template = mako.template.Template(stream.read()) - with open(options.data) as stream: - data = yaml.load(stream) - - print(template.render(**data)) - -if __name__ == '__main__': - main() diff --git a/files/smb.conf.mako b/files/smb.conf.mako deleted file mode 100644 index d942f4b..0000000 --- a/files/smb.conf.mako +++ /dev/null @@ -1,20 +0,0 @@ - -[global] - server string = Samba Server Version %v - security = user - map to guest = bad user - # guest account = samba - hosts allow = * - dead time = 15 - socket options = TCP_NODELAY SO_KEEPALIVE SO_RCVBUF=17520 SO_SNDBUF=17520 IPTOS_LOWDELAY - -[public] - comment = Public test - path = /srv/samba - public = yes - guest ok = yes - read only = yes - printable = no - writeable = no - browseable = yes - diff --git a/files/start.sh b/files/start.sh deleted file mode 100755 index 70fc982..0000000 --- a/files/start.sh +++ /dev/null @@ -1,38 +0,0 @@ -#! /bin/sh -e - -function first -{ - echo $1 -} - -function rest -{ - shift - echo $@ -} - -date > /srv/samba/tst-run - -/usr/sbin/nmbd -D -/usr/sbin/smbd -D - -waits="1 1 2 4 8 16 32 64 360" - -while pidof smbd > /dev/null && pidof nmbd > /dev/null ; do - date - echo "SMBd proces" $(pidof smbd) - echo "NMBd proces" $(pidof nmbd) - sleep $(first $waits) - if [ "x$(rest $waits)" != "x" ]; then - waits="$(rest $waits)" - fi - echo -done - -if ! pidof nmbd; then - echo "NMBd is not running." -fi - -if ! pidof smbd; then - echo "SMBd is not running." -fi diff --git a/samba.yaml b/samba.yaml index f6878d7..9b06615 100644 --- a/samba.yaml +++ b/samba.yaml @@ -1,22 +1,109 @@ document: modulemd version: 1 data: - name: '' - stream: '' - summary: Server and Client software to interoperate with Windows machines - version: 0 - dependencies: - buildrequires: {bootstrap: f26} - requires: {bootstrap: f26} - description: 'Samba is the standard Windows interoperability suite of programs for - Linux and Unix.' - license: - content: [GPLv3+ and LGPLv3+] - module: [MIT] - api: - rpms: [samba, samba-common, samba-client] - components: - rpms: - samba: {buildorder: 10, rationale: Runtime dependency.} - - + summary: samba module + description: This samba module has been generated. + license: + module: + - MIT + dependencies: + buildrequires: + bootstrap: master + requires: + platform: master + python2: master + python2-ecosystem: master + libtom: master + references: + community: https://docs.pagure.org/modularity/ + documentation: https://github.com/modularity-modules/samba + tracker: https://github.com/modularity-modules/samba + api: + rpms: + - libldb + - libsmbclient + - libtdb + - libwbclient + - python2-samba + - samba + - samba-client-libs + - samba-common + - samba-common-libs + - samba-common-tools + - samba-dc-libs + - samba-libs + - samba-winbind + - samba-winbind-modules + profiles: + default: + description: A generated profile based on top-lvl package list. + rpms: + - libldb + - libsmbclient + - libtdb + - libwbclient + - python2-samba + - samba + - samba-client-libs + - samba-common + - samba-common-libs + - samba-common-tools + - samba-dc-libs + - samba-libs + - samba-winbind + - samba-winbind-modules + client: + description: SMB File sharing client + rpms: + - libsmbclient + - libtdb + - samba-client + - samba-client-libs + - samba-common + - samba-common-libs + - samba-common-tools + server: + description: SMB File sharing server + rpms: + - libldb + - libtdb + - samba + - samba-common + - samba-common-libs + - samba-common-tools + - samba-libs + domainclient: + description: SMB Domain Client + rpms: + - libtdb + - libwbclient + - samba-client-libs + - samba-common + - samba-common-libs + - samba-common-tools + - samba-libs + - samba-winbind + - samba-winbind-modules + domaincontroller: + description: Windows Domain Controller + rpms: + - samba-dc + components: + rpms: + avahi: + rationale: Generated. + ref: 64b07e2fc1d770e12b97ef0296a62f80984d88c0 + cups: + rationale: Generated. + ref: b85c292042537a333350465e946606907214aeb5 + libldb: + rationale: Generated. + ref: df8cc6a1d9e2bb5296a46287ce03390b1201e5da + buildorder: 5 + libtdb: + rationale: Generated. + ref: 94c6c6d0e350e5e35776aace06cd0fafbaaa800d + samba: + rationale: Generated. + ref: 8b94bf9ddc2a818eace810b47957650b47383389 + buildorder: 10 diff --git a/tests/Makefile b/tests/Makefile deleted file mode 100644 index fa94987..0000000 --- a/tests/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -MODULE_LINT=/usr/share/moduleframework/tools/modulelint.py -CMD=python -m avocado run --filter-by-tags=-WIP $(MODULE_LINT) *.py - -# -all: - generator - $(CMD) diff --git a/tests/config.yaml b/tests/config.yaml deleted file mode 100644 index 43a4585..0000000 --- a/tests/config.yaml +++ /dev/null @@ -1,23 +0,0 @@ -document: modularity-testing -version: 1 -name: samba -modulemd-url: http://pkgs.fedoraproject.org/cgit/modules/samba.git/tree/samba.yaml -service: - port: [138/udp, 139, 445, 137/udp, 445/udp] -packages: - rpms: - - samba -module: - docker: - start: "docker run -it -P" - labels: - description: "Server and Client software to interoperate with Windows machines" - io.k8s.description: "Server and Client software to interoperate with Windows machines" - source: https://github.com/container-images/samba.git - container: docker.io/modularitycontainers/samba - rpm: - start: /usr/sbin/smbd & - repo: https://kojipkgs.stg.fedoraproject.org/compose/branched/jkaluza/latest-Fedora-Modular-26/compose/Server/x86_64/os/ -test: - processrunning: - - 'ls /proc/*/exe -alh | grep smbd' diff --git a/tests/generated.py b/tests/generated.py deleted file mode 100644 index 7a60065..0000000 --- a/tests/generated.py +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/python - -import socket -from avocado import main -from moduleframework import module_framework - -if __name__ == '__main__': - main() - -class GeneratedTestsConfig(module_framework.AvocadoTest): - """ - :avocado: enable - """ - - def test_processrunning(self): - self.start() - self.run("ls /proc/*/exe -alh | grep smbd") diff --git a/tests/generated.pyc b/tests/generated.pyc deleted file mode 100644 index f945da1..0000000 Binary files a/tests/generated.pyc and /dev/null differ diff --git a/tests/sanity.py b/tests/sanity.py deleted file mode 100644 index 5a09e1e..0000000 --- a/tests/sanity.py +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# This Modularity Testing Framework helps you to write tests for modules -# Copyright (C) 2017 Red Hat, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# he Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Authors: Dominika Hodovska -# - -from avocado import main -from avocado.core import exceptions -from moduleframework import module_framework - - -class SanityCheck(module_framework.AvocadoTest): - """ - :avocado: enable - """ - - def test(self): - """ - Simple sanity test - """ - - self.start() - self.run("ls / | grep bin") - - def testSambaVersion(self): - """ - Check if httpd is installed in correct version - """ - version = "4.5" - self.start() - self.run("smbcontrol -V | grep {}".format(version)) - -if __name__ == '__main__': - main() \ No newline at end of file diff --git a/tests/smbconfig.py b/tests/smbconfig.py deleted file mode 100644 index 5ef2646..0000000 --- a/tests/smbconfig.py +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/python -# -*- coding: utf-8 -*- -# -# This Modularity Testing Framework helps you to write tests for modules -# Copyright (C) 2017 Red Hat, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# he Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -# -# Authors: Dominika Hodovska -# - -from avocado import main -from avocado.core import exceptions -from moduleframework import module_framework - - -class SmbConfCheck(module_framework.AvocadoTest): - """ - :avocado: enable - """ - def testTestParamFail(self): - """ - Valid failure of testparam - """ - - self.start() - - self.run("testparm -s > /smb-fail") - self.run("printf \"\\n[fail]\\n\\tcomment = bad config\\n\" >> /smb-fail") - # No path - self.run("testparm -s /smb-fail > /out.txt") - self.run("cat out.txt | grep \"available = No\"") - - self.run("rm /out.txt") - self.run("testparm -s > /smb-fail") - - # bad mask - self.run("printf \"\\n[fail]\\n\\tcomment = bad config\\n\" >> /smb-fail") - self.run("printf \"\\tcreate mask = 9999\\n\" >> /smb-fail") - self.run("testparm -s /smb-fail > /out.txt; [ $? -ne 0 ]") - - self.run("[ ! -s /out.txt ]") - -if __name__ == '__main__': - main()