Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
ansible
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenEdx
ansible
Commits
0073fd68
Commit
0073fd68
authored
Feb 19, 2014
by
James Cammarata
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding new test role for the service module
parent
ef2df815
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
403 additions
and
0 deletions
+403
-0
tests_new/integration/destructive.yml
+1
-0
tests_new/integration/roles/test_service/files/ansible.systemd
+7
-0
tests_new/integration/roles/test_service/files/ansible.sysv
+134
-0
tests_new/integration/roles/test_service/files/ansible.upstart
+9
-0
tests_new/integration/roles/test_service/files/ansible_test_service
+67
-0
tests_new/integration/roles/test_service/meta/main.yml
+2
-0
tests_new/integration/roles/test_service/tasks/main.yml
+108
-0
tests_new/integration/roles/test_service/tasks/systemd_cleanup.yml
+19
-0
tests_new/integration/roles/test_service/tasks/systemd_setup.yml
+12
-0
tests_new/integration/roles/test_service/tasks/sysv_cleanup.yml
+10
-0
tests_new/integration/roles/test_service/tasks/sysv_setup.yml
+12
-0
tests_new/integration/roles/test_service/tasks/upstart_cleanup.yml
+10
-0
tests_new/integration/roles/test_service/tasks/upstart_setup.yml
+12
-0
tests_new/integration/roles/test_service/templates/main.yml
+0
-0
No files found.
tests_new/integration/destructive.yml
View file @
0073fd68
-
hosts
:
testhost
-
hosts
:
testhost
gather_facts
:
True
gather_facts
:
True
roles
:
roles
:
-
{
role
:
test_service
,
tags
:
test_service
}
-
{
role
:
test_pip
,
tags
:
test_pip
}
-
{
role
:
test_pip
,
tags
:
test_pip
}
-
{
role
:
test_gem
,
tags
:
test_gem
}
-
{
role
:
test_gem
,
tags
:
test_gem
}
tests_new/integration/roles/test_service/files/ansible.systemd
0 → 100644
View file @
0073fd68
[Unit]
Description=Ansible Test Service
[Service]
ExecStart=/usr/sbin/ansible_test_service
ExecReload=/bin/true
Type=forking
tests_new/integration/roles/test_service/files/ansible.sysv
0 → 100755
View file @
0073fd68
#!/bin/sh
#
# LSB header
### BEGIN INIT INFO
# Provides: ansible-test
# Default-Start: 3 4 5
# Default-Stop: 0 1 2 6
# Short-Description: test daemon for ansible
# Description: This is a test daemon used by ansible for testing only
### END INIT INFO
# chkconfig header
# chkconfig: 345 99 99
# description: This is a test daemon used by ansible for testing only
#
# processname: /usr/sbin/ansible_test_service
# Sanity checks.
[
-x
/usr/sbin/ansible_test_service
]
||
exit
0
DEBIAN_VERSION
=
/etc/debian_version
SUSE_RELEASE
=
/etc/SuSE-release
# Source function library.
if
[
-f
$DEBIAN_VERSION
]
;
then
.
/lib/lsb/init-functions
elif
[
-f
$SUSE_RELEASE
-a
-r
/etc/rc.status
]
;
then
.
/etc/rc.status
else
.
/etc/rc.d/init.d/functions
fi
SERVICE
=
ansible_test_service
PROCESS
=
ansible_test_service
CONFIG_ARGS
=
" "
if
[
-f
$DEBIAN_VERSION
]
;
then
LOCKFILE
=
/var/lock/
$SERVICE
else
LOCKFILE
=
/var/lock/subsys/
$SERVICE
fi
RETVAL
=
0
start
()
{
echo
-n
"Starting ansible test daemon: "
if
[
-f
$SUSE_RELEASE
]
;
then
startproc
-p
/var/run/
${
SERVICE
}
.pid
-f
/usr/sbin/ansible_test_service
rc_status
-v
elif
[
-e
$DEBIAN_VERSION
]
;
then
if
[
-f
$LOCKFILE
]
;
then
echo
-n
"already started, lock file found"
RETVAL
=
1
elif
/bin/python /usr/sbin/ansible_test_service
;
then
echo
-n
"OK"
RETVAL
=
0
fi
else
daemon
--check
$SERVICE
$PROCESS
--daemonize
$CONFIG_ARGS
fi
RETVAL
=
$?
echo
[
$RETVAL
-eq
0
]
&&
touch
$LOCKFILE
return
$RETVAL
}
stop
()
{
echo
-n
"Stopping ansible test daemon: "
if
[
-f
$SUSE_RELEASE
]
;
then
killproc
-TERM
/usr/sbin/ansible_test_service
rc_status
-v
elif
[
-f
$DEBIAN_VERSION
]
;
then
# Added this since Debian's start-stop-daemon doesn't support spawned processes
if
ps
-ef
|
grep
"/bin/python /usr/sbin/ansible_test_service"
|
grep
-v
grep
| awk
'{print $2}'
| xargs
kill
&> /dev/null
;
then
echo
-n
"OK"
RETVAL
=
0
else
echo
-n
"Daemon is not started"
RETVAL
=
1
fi
else
killproc
-p
/var/run/
${
SERVICE
}
.pid
fi
RETVAL
=
$?
echo
if
[
$RETVAL
-eq
0
]
;
then
rm
-f
$LOCKFILE
rm
-f
/var/run/
$SERVICE
.pid
fi
}
restart
()
{
stop
start
}
# See how we were called.
case
"
$1
"
in
start|stop|restart
)
$1
;;
status
)
if
[
-f
$SUSE_RELEASE
]
;
then
echo
-n
"Checking for ansible test service "
checkproc /usr/sbin/ansible_test_service
rc_status
-v
elif
[
-f
$DEBIAN_VERSION
]
;
then
if
[
-f
$LOCKFILE
]
;
then
RETVAL
=
0
echo
"ansible test is running."
else
RETVAL
=
1
echo
"ansible test is stopped."
fi
else
status
$PROCESS
RETVAL
=
$?
fi
;;
condrestart
)
[
-f
$LOCKFILE
]
&&
restart
||
:
;;
reload
)
echo
"ok"
RETVAL
=
0
;;
*
)
echo
"Usage:
$0
{start|stop|status|restart|condrestart|reload}"
exit
1
;;
esac
exit
$RETVAL
tests_new/integration/roles/test_service/files/ansible.upstart
0 → 100644
View file @
0073fd68
description "ansible test daemon"
start on runlevel [345]
stop on runlevel [!345]
expect daemon
exec ansible_test_service
tests_new/integration/roles/test_service/files/ansible_test_service
0 → 100755
View file @
0073fd68
#!/usr/bin/env python
# this is mostly based off of the code found here:
# http://code.activestate.com/recipes/278731-creating-a-daemon-the-python-way/
import
os
import
resource
import
sys
import
time
UMASK
=
0
WORKDIR
=
"/"
MAXFD
=
1024
if
(
hasattr
(
os
,
"devnull"
)):
REDIRECT_TO
=
os
.
devnull
else
:
REDIRECT_TO
=
"/dev/null"
def
createDaemon
():
try
:
pid
=
os
.
fork
()
except
OSError
,
e
:
raise
Exception
,
"
%
s [
%
d]"
%
(
e
.
strerror
,
e
.
errno
)
if
(
pid
==
0
):
os
.
setsid
()
try
:
pid
=
os
.
fork
()
except
OSError
,
e
:
raise
Exception
,
"
%
s [
%
d]"
%
(
e
.
strerror
,
e
.
errno
)
if
(
pid
==
0
):
os
.
chdir
(
WORKDIR
)
os
.
umask
(
UMASK
)
else
:
f
=
open
(
'/var/run/ansible_test_service.pid'
,
'w'
)
f
.
write
(
"
%
d
\n
"
%
pid
)
f
.
close
()
os
.
_exit
(
0
)
else
:
os
.
_exit
(
0
)
maxfd
=
resource
.
getrlimit
(
resource
.
RLIMIT_NOFILE
)[
1
]
if
(
maxfd
==
resource
.
RLIM_INFINITY
):
maxfd
=
MAXFD
for
fd
in
range
(
0
,
maxfd
):
try
:
os
.
close
(
fd
)
except
OSError
:
# ERROR, fd wasn't open to begin with (ignored)
pass
os
.
open
(
REDIRECT_TO
,
os
.
O_RDWR
)
os
.
dup2
(
0
,
1
)
os
.
dup2
(
0
,
2
)
return
(
0
)
if
__name__
==
"__main__"
:
retCode
=
createDaemon
()
while
True
:
time
.
sleep
(
1000
)
tests_new/integration/roles/test_service/meta/main.yml
0 → 100644
View file @
0073fd68
dependencies
:
-
prepare_tests
tests_new/integration/roles/test_service/tasks/main.yml
0 → 100644
View file @
0073fd68
-
name
:
install the test daemon script
copy
:
src=ansible_test_service dest=/usr/sbin/ansible_test_service mode=755
register
:
install_result
-
name
:
assert that the daemon script was installed
assert
:
that
:
-
"
install_result.dest
==
'/usr/sbin/ansible_test_service'"
-
"
install_result.md5sum
==
'9ad49eaf390b30b1206b793ec71200ed'"
-
"
install_result.state
==
'file'"
-
"
install_result.mode
==
'0755'"
-
include
:
'
sysv_setup.yml'
when
:
ansible_distribution in ('RHEL', 'CentOS', 'ScientificLinux')
-
include
:
'
systemd_setup.yml'
when
:
ansible_distribution == 'Fedora'
-
include
:
'
upstart_setup.yml'
when
:
ansible_distribution == 'Ubuntu'
-
name
:
enable the ansible test service
service
:
name=ansible_test enabled=yes
register
:
enable_result
-
name
:
assert that the service was enabled
assert
:
that
:
-
"
enable_result.enabled
==
true"
-
name
:
start the ansible test service
service
:
name=ansible_test state=started
register
:
start_result
-
name
:
assert that the service was started
assert
:
that
:
-
"
start_result.state
==
'started'"
-
name
:
find the service with a pattern
service
:
name=ansible_test pattern="ansible_test_ser*" state=started
register
:
start2_result
-
name
:
assert that the service was started via the pattern
assert
:
that
:
-
"
start2_result.name
==
'ansible_test'"
-
"
start2_result.state
==
'started'"
-
name
:
restart the ansible test service
service
:
name=ansible_test state=restarted
register
:
restart_result
-
name
:
assert that the service was restarted
assert
:
that
:
-
"
restart_result.state
==
'started'"
-
name
:
restart the ansible test service with a sleep
service
:
name=ansible_test state=restarted sleep=2
register
:
restart_sleep_result
-
name
:
assert that the service was restarted with a sleep
assert
:
that
:
-
"
restart_sleep_result.state
==
'started'"
-
name
:
reload the ansible test service
service
:
name=ansible_test state=reloaded
register
:
reload_result
-
name
:
assert that the service was reloaded
assert
:
that
:
-
"
reload_result.state
==
'started'"
-
name
:
stop the ansible test service
service
:
name=ansible_test state=stopped
register
:
stop_result
-
name
:
assert that the service was stopped
assert
:
that
:
-
"
stop_result.state
==
'stopped'"
-
name
:
disable the ansible test service
service
:
name=ansible_test enabled=no
register
:
disable_result
-
name
:
assert that the service was disabled
assert
:
that
:
-
"
disable_result.enabled
==
false"
-
name
:
remove the test daemon script
file
:
path=/usr/sbin/ansible_test_service state=absent
register
:
remove_result
-
name
:
assert that the test daemon script was removed
assert
:
that
:
-
"
remove_result.path
==
'/usr/sbin/ansible_test_service'"
-
"
remove_result.state
==
'absent'"
-
include
:
'
sysv_cleanup.yml'
when
:
ansible_distribution in ('RHEL', 'CentOS', 'ScientificLinux')
-
include
:
'
systemd_cleanup.yml'
when
:
ansible_distribution == 'Fedora'
-
include
:
'
upstart_cleanup.yml'
when
:
ansible_distribution == 'Ubuntu'
tests_new/integration/roles/test_service/tasks/systemd_cleanup.yml
0 → 100644
View file @
0073fd68
-
name
:
remove the systemd unit file
file
:
path=/usr/lib/systemd/system/ansible_test.service state=absent
register
:
remove_systemd_result
-
name
:
assert that the systemd unit file was removed
assert
:
that
:
-
"
remove_systemd_result.path
==
'/usr/lib/systemd/system/ansible_test.service'"
-
"
remove_systemd_result.state
==
'absent'"
-
name
:
make sure systemd is reloaded
shell
:
systemctl daemon-reload
register
:
restart_systemd_result
-
name
:
assert that systemd was reloaded
assert
:
that
:
-
"
restart_systemd_result.rc
==
0"
tests_new/integration/roles/test_service/tasks/systemd_setup.yml
0 → 100644
View file @
0073fd68
-
name
:
install the systemd unit file
copy
:
src=ansible.systemd dest=/usr/lib/systemd/system/ansible_test.service
register
:
install_systemd_result
-
name
:
assert that the systemd unit file was installed
assert
:
that
:
-
"
install_systemd_result.dest
==
'/usr/lib/systemd/system/ansible_test.service'"
-
"
install_systemd_result.state
==
'file'"
-
"
install_systemd_result.mode
==
'0644'"
-
"
install_systemd_result.md5sum
==
'f634df77d9160ab05bad4ed49d82a0d0'"
tests_new/integration/roles/test_service/tasks/sysv_cleanup.yml
0 → 100644
View file @
0073fd68
-
name
:
remove the sysV init file
file
:
path=/etc/init.d/ansible_test state=absent
register
:
remove_sysv_result
-
name
:
assert that the sysV init file was removed
assert
:
that
:
-
"
remove_sysv_result.path
==
'/etc/init.d/ansible_test'"
-
"
remove_sysv_result.state
==
'absent'"
tests_new/integration/roles/test_service/tasks/sysv_setup.yml
0 → 100644
View file @
0073fd68
-
name
:
install the sysV init file
copy
:
src=ansible.sysv dest=/etc/init.d/ansible_test mode=0755
register
:
install_sysv_result
-
name
:
assert that the sysV init file was installed
assert
:
that
:
-
"
install_sysv_result.dest
==
'/etc/init.d/ansible_test'"
-
"
install_sysv_result.state
==
'file'"
-
"
install_sysv_result.mode
==
'0755'"
-
"
install_sysv_result.md5sum
==
'ebf6a9064ca8628187f3a6caf8e2a279'"
tests_new/integration/roles/test_service/tasks/upstart_cleanup.yml
0 → 100644
View file @
0073fd68
-
name
:
remove the upstart init file
file
:
path=/etc/init/ansible_test state=absent
register
:
remove_upstart_result
-
name
:
assert that the upstart init file was removed
assert
:
that
:
-
"
remove_upstart_result.path
==
'/etc/init/ansible_test'"
-
"
remove_upstart_result.state
==
'absent'"
tests_new/integration/roles/test_service/tasks/upstart_setup.yml
0 → 100644
View file @
0073fd68
-
name
:
install the upstart init file
copy
:
src=ansible.upstart dest=/etc/init/ansible_test mode=0755
register
:
install_upstart_result
-
name
:
assert that the upstart init file was installed
assert
:
that
:
-
"
install_upstart_result.dest
==
'/etc/init/ansible_test'"
-
"
install_upstart_result.state
==
'file'"
-
"
install_upstart_result.mode
==
'0755'"
-
"
install_upstart_result.md5sum
==
'ab3900ea4de8423add764c12aeb90c01'"
tests_new/integration/roles/test_service/templates/main.yml
0 → 100644
View file @
0073fd68
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment