Source code for fabric_colors.db.mongodb
from fabric.api import task, sudo, run
from fabric_colors.environment import set_target_env
@task
@set_target_env
[docs]def installed():
"""
Check if mongodb is installed.
"""
pkg = "pacman -Qs mongodb"
cmd = """
pkg=`{0}`
if [ -n "$pkg" ]; then echo 1; else echo ""; fi""".format(pkg)
return run(cmd)
@task
@set_target_env
[docs]def install():
"""
Install mongodb and start it if it isn't running.
"""
if not installed():
sudo('pacman -S mongodb --noconfirm')
if status():
print('Mongodb is already running.')
else:
print('Mongodb is not running.')
initializer()
start()
@task
@set_target_env
[docs]def status():
"""
Is mongodb already running?
"""
print("Checking the status of mongodb")
result = sudo('if ps aux | grep -v grep | grep -i "mongodb"; then echo 1; else echo ""; fi')
return result
@task
@set_target_env
[docs]def start():
"""
Start mongodb
"""
print("Starting mongodb")
if not status():
sudo('systemctl start mongodb')
@task
@set_target_env
[docs]def stop():
"""
Stop mongodb
"""
print("Stopping mongodb")
sudo('systemctl stop mongodb')
@task
@set_target_env
[docs]def restart():
"""
Restart mongodb
"""
print("Restarting mongodb")
sudo('systemctl restart mongodb')
@task
@set_target_env
[docs]def initializer():
"""
Enable initializer for mongodb
"""
print("Set-up initialization script for mongodb")
sudo("systemctl enable mongodb")