diff --git a/README.rst b/README.rst index 61be4c40..5fce3c87 100644 --- a/README.rst +++ b/README.rst @@ -1,19 +1,28 @@ -Murano -====== -Murano Project introduces an application catalog, which allows application -developers and cloud administrators to publish various cloud-ready -applications in a browsable‎ categorised catalog, which may be used by the -cloud users (including the inexperienced ones) to pick-up the needed -applications and services and composes the reliable environments out of them -in a "push-the-button" manner. - -murano-agent +Murano Agent ============ -Murano Agent is a VM-side guest agent that accepts commands from -Murano Conductor and executes them. We have two Agent implementations -targeting different platforms, but eventually we going to end up with -Python Agent that works on Linux and uses new execution plan format -described in `Unified Agent `_ + +Murano Agent is a VM-side guest agent that accepts commands from Murano engine +and executes them. + +Image building using dib +------------------------ + +contrib/elements contains +`diskimage-builder `_ +elements to build an image which contains the Murano Agent required to use Murano. + +An example Ubuntu based image containing the agent can be built and uploaded +to glance with the following commands: + +:: + + git clone https://git.openstack.org/openstack/diskimage-builder.git + git clone https://git.openstack.org/stackforge/murano-agent.git + export ELEMENTS_PATH=murano-agent/contrib/elements + diskimage-builder/bin/disk-image-create vm ubuntu \ + murano-agent -o ubuntu-murano-agent.qcow2 + glance image-create --disk-format qcow2 --container-format bare \ + --name ubuntu-murano < ubuntu-murano.qcow2 Project Resources ----------------- @@ -30,26 +39,7 @@ Additional resources are linked from the project wiki page: https://wiki.openstack.org/wiki/Murano - -Image building using dib ------------------------- - -contrib/elements contains `diskimage-builder `_ -elements to build an image which contains the Murano Agent required to use Murano. - -An example ubuntu based image containing the agent can be built and uploaded to glance -with the following commands: - -:: - - git clone https://git.openstack.org/openstack/diskimage-builder.git - git clone https://git.openstack.org/stackforge/murano-agent.git - export ELEMENTS_PATH=murano-agent/contrib/elements - diskimage-builder/bin/disk-image-create vm ubuntu murano-agent -o ubuntu-murano-agent.qcow2 - glance image-create --disk-format qcow2 --container-format bare --name ubuntu-murano < ubuntu-murano.qcow2 - - License ------- -Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 +Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 \ No newline at end of file diff --git a/contrib/elements/murano-agent/install.d/05-murano-agent b/contrib/elements/murano-agent/install.d/05-murano-agent deleted file mode 100755 index dca96d9d..00000000 --- a/contrib/elements/murano-agent/install.d/05-murano-agent +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -set -x - -install-packages git wget make gcc python-pip python-iso8601 python-six python-anyjson python-eventlet python-dev python-setuptools - -mkdir -p /opt/git -git clone https://github.com/stackforge/murano-agent.git /opt/git/murano-agent -cd /opt/git/murano-agent - -if [ "$DISTRO_NAME" = 'debian' ] || [ "$DISTRO_NAME" = 'ubuntu' ]; then - ./setup.sh install -else - # rhel7/centos7/fedora - ./setup-centos.sh install -fi diff --git a/contrib/elements/murano-agent/install.d/10-ec2-user b/contrib/elements/murano-agent/install.d/10-ec2-user deleted file mode 100755 index d88c6790..00000000 --- a/contrib/elements/murano-agent/install.d/10-ec2-user +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/bash -# Until http://pad.lv/1101347 is fixed, we need this user to be able to -# Log on to heat booted machines using the given SSH keypair - -set -uex - -# This is a specific workaround for Ubuntu 12.10 "quantal" -distro=$(lsb_release -is || :) -if [ "$distro" != "Ubuntu" ] ; then - exit 0 -fi -codename=$(lsb_release -cs || :) -if [ "$codename" != "quantal" ] ; then - exit 0 -fi - -# Setup ec2-user as expected by HEAT -if ! getent passwd ec2-user ; then - useradd -m -G admin ec2-user -s /bin/bash -fi -if ! [ -e /etc/sudoers.d/ec2-user ] ; then - echo "ec2-user ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/ec2-user - chmod 0440 /etc/sudoers.d/ec2-user - visudo -c -fi - -# We must pin to this fixed cloud-init from the demo ppa to ensure keys -# are installed. This can be removed if http://pad.lv/1100920 is ever -# fixed in the distro - -add-apt-repository -y ppa:tripleo/demo -apt-get update - -cat > /etc/apt/preferences.d/cloud-init-from-ppa <&1 | logger -t murano-agent + +post-start exec sleep 1 \ No newline at end of file diff --git a/contrib/elements/murano-agent/install.d/murano-agent.service b/contrib/elements/murano-agent/install.d/murano-agent.service new file mode 100644 index 00000000..4cecf29f --- /dev/null +++ b/contrib/elements/murano-agent/install.d/murano-agent.service @@ -0,0 +1,10 @@ +[Unit] +Description=OpenStack Murano Agent + +[Service] +Type=simple +ExecStart=/opt/stack/venvs/murano-agent/bin/muranoagent --config-dir /etc/murano +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/init.d/murano-agent-deb b/init.d/murano-agent-deb deleted file mode 100755 index d1ec9a2b..00000000 --- a/init.d/murano-agent-deb +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/sh -# Copyright (c) 2013 Mirantis, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# Author: Igor Yozhikov -# -### BEGIN INIT INFO -# Provides: murano-agent -# Required-Start: $network $local_fs $remote_fs $syslog -# Required-Stop: $remote_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Launches the murano linux agent -# Description: This startup script launches murano linux agent. -### END INIT INFO - - -PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin -DESC="murano-agent" -NAME=murano-agent -DAEMON=/usr/local/bin/muranoagent -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME -SYSTEM_USER=root -CONFIG_FILE=/etc/murano/agent.conf -DATADIR=/var/murano/plans - -# Exit if the package is not installed -[ -x $DAEMON ] || exit 5 - -# source function library -. /lib/lsb/init-functions - -if [ ! -d "$DATADIR" ]; then - mkdir -p ${DATADIR} - chown ${SYSTEM_USER} ${DATADIR} -fi - -do_start () { - start-stop-daemon --start --background --quiet --chuid $SYSTEM_USER:$SYSTEM_USER --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test -- --config-file=$CONFIG_FILE > /dev/null || return 1 - start-stop-daemon --start --background --quiet --chuid $SYSTEM_USER:$SYSTEM_USER --make-pidfile --pidfile $PIDFILE --startas $DAEMON -- --config-file=$CONFIG_FILE || return 2 -} - -do_stop () { - start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE - RETVAL="$?" - rm -f $PIDFILE - return "$RETVAL" -} - -case "$1" in - start) - log_daemon_msg "Starting $DESC" "$NAME" - do_start - case "$?" in - 0|1) log_end_msg 0 ;; - 2) log_end_msg 1 ;; - esac - ;; - stop) - log_daemon_msg "Stopping $DESC" "$NAME" - do_stop - case "$?" in - 0|1) log_end_msg 0 ;; - 2) log_end_msg 1 ;; - esac - ;; - status) - status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? - ;; - restart|force-reload) - log_daemon_msg "Restarting $DESC" "$NAME" - do_stop - case "$?" in - 0|1) - do_start - case "$?" in - 0) log_end_msg 0 ;; - 1) log_end_msg 1 ;; # Old process is still running - *) log_end_msg 1 ;; # Failed to start - esac - ;; - *) - # Failed to stop - log_end_msg 1 - ;; - esac - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 - exit 3 - ;; -esac diff --git a/init.d/murano-agent-el6 b/init.d/murano-agent-el6 deleted file mode 100755 index 48f719c7..00000000 --- a/init.d/murano-agent-el6 +++ /dev/null @@ -1,103 +0,0 @@ -#!/bin/sh -# Copyright (c) 2013 Mirantis, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# Author: Igor Yozhikov -# -### BEGIN INIT INFO -# Provides: murano-agent -# Required-Start: $network $local_fs $remote_fs $syslog -# Required-Stop: $remote_fs -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Launches the murano linux agent -# Description: This startup script launches murano linux agent. -### END INIT INFO -# chkconfig: 3 90 10 -# description: This startup script launches the murano linux agent. -# config: /etc/murano/agent.conf -# -PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin -DESC="murano-agent" -NAME=murano-agent -DAEMON=/usr/local/bin/muranoagent -PIDFILE=/var/run/$NAME.pid -SCRIPTNAME=/etc/init.d/$NAME -SYSTEM_USER=root -CONFIG_FILE=/etc/murano/agent.conf -DATADIR=/var/murano/plans -LOCKFILE=/var/lock/subsys/$NAME -# Exit if the package is not installed -[ -x $DAEMON ] || exit 5 - -# source function library -. /etc/init.d/functions - -RETVAL=0 - -if [ ! -d "$DATADIR" ]; then - mkdir -p $DATADIR - chown $SYSTEM_USER $DATADIR -fi - -start() { - echo -n "Starting $NAME: " - daemon --user $SYSTEM_USER "$DAEMON --config-file=$CONFIG_FILE &>/dev/null & echo \$! > $PIDFILE" - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && touch $LOCKFILE - return $RETVAL -} - -stop() { - echo -n "Stopping $NAME: " - #killproc $DAEMON -TERM - killproc -p $PIDFILE $DAEMON - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && rm -f $LOCKFILE - return $RETVAL -} - -restart() { - stop - start -} - -rh_status() { - # run checks to determine if the service is running or use generic status - status $DAEMON -} - - -case "$1" in - start) - start - ;; - - stop) - stop - ;; - - restart) - restart - ;; - - status) - rh_status - ;; - *) - echo $"Usage: $0 {start|stop|status|restart}" - exit 2 -esac -exit $? \ No newline at end of file diff --git a/setup-centos.sh b/setup-centos.sh deleted file mode 100755 index 193b86f6..00000000 --- a/setup-centos.sh +++ /dev/null @@ -1,210 +0,0 @@ -#!/bin/sh -# Copyright (c) 2013 Mirantis, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# -# CentOS script -LOGLVL=1 -SERVICE_CONTENT_DIRECTORY=`cd $(dirname "$0") && pwd` -PREREQ_PKGS="git wget make gcc python-pip python-iso8601 python-six python-anyjson python-eventlet python-devel python-setuptools" -PIPAPPS="pip python-pip pip-python" -PIPCMD="" -SERVICE_SRV_NAME="murano-agent" -ETC_CFG_DIR="/etc/murano" - - - -# Functions -# Loger function -log() -{ - MSG=$1 - if [ $LOGLVL -gt 0 ]; then - echo "LOG:> $MSG" - fi -} - -# find pip -find_pip() -{ - for cmd in $PIPAPPS - do - _cmd=$(which $cmd 2>/dev/null) - if [ $? -eq 0 ];then - break - fi - done - if [ -z $_cmd ];then - echo "Can't find \"pip\" in system, please install it first, exiting!" - exit 1 - else - PIPCMD=$_cmd - fi -} - -# Check or install package -in_sys_pkg() -{ - PKG=$1 - rpm -q $PKG > /dev/null 2>&1 - if [ $? -eq 0 ]; then - log "Package \"$PKG\" already installed" - else - log "Installing \"$PKG\"..." - yum install $PKG --assumeyes > /dev/null 2>&1 - if [ $? -ne 0 ];then - log "installation fails, exiting!!!" - exit - fi - fi -} - -# install -inst() -{ -# Checking packages - for PKG in $PREREQ_PKGS - do - in_sys_pkg $PKG - done -# Find python pip - find_pip - MRN_CND_SPY=$SERVICE_CONTENT_DIRECTORY/setup.py - if [ -e $MRN_CND_SPY ]; then - chmod +x $MRN_CND_SPY - log "$MRN_CND_SPY output:_____________________________________________________________" -## Setup through pip - # Creating tarball - rm -rf $SERVICE_CONTENT_DIRECTORY/*.egg-info - cd $SERVICE_CONTENT_DIRECTORY && python $MRN_CND_SPY egg_info - if [ $? -ne 0 ];then - log "\"$MRN_CND_SPY\" egg info creation FAILS, exiting!!!" - exit 1 - fi - rm -rf $SERVICE_CONTENT_DIRECTORY/dist/* - cd $SERVICE_CONTENT_DIRECTORY && $MRN_CND_SPY sdist - if [ $? -ne 0 ];then - log "\"$MRN_CND_SPY\" tarball creation FAILS, exiting!!!" - exit 1 - fi - # Running tarball install - TRBL_FILE=$(basename `ls $SERVICE_CONTENT_DIRECTORY/dist/murano-agent*.tar.gz`) - $PIPCMD install $SERVICE_CONTENT_DIRECTORY/dist/$TRBL_FILE - if [ $? -ne 0 ];then - log "$PIPCMD install \"$TRBL_FILE\" FAILS, recreate terball with \"python setup.py sdist\" command, exiting!!!" - exit 1 - fi - # Creating etc directory for config files - if [ ! -d $ETC_CFG_DIR ];then - log "Creating $ETC_CFG_DIR direcory..." - mkdir -p $ETC_CFG_DIR - if [ $? -ne 0 ];then - log "Can't create $ETC_CFG_DIR, exiting!!!" - exit 1 - fi - fi - log "Making sample configuration file at \"$ETC_CFG_DIR\"" - cp -f "$SERVICE_CONTENT_DIRECTORY/etc/agent.conf" "$ETC_CFG_DIR/agent.conf" - else - log "$MRN_CND_SPY not found!" - fi -} - -# searching for service executable in path -get_service_exec_path() -{ - if [ -z "$SERVICE_EXEC_PATH" ]; then - SERVICE_EXEC_PATH=$(which muranoagent) - if [ $? -ne 0 ]; then - log "Can't find \"muranoagent ($SERVICE_SRV_NAME)\", please install the \"$SERVICE_SRV_NAME\" by running \"$(basename "$0") install\" or set variable SERVICE_EXEC_PATH=/path/to/daemon before running setup script, exiting!" - exit 1 - fi - else - if [ ! -x "$SERVICE_EXEC_PATH" ]; then - log "\"$SERVICE_EXEC_PATH\" in not executable, please install the muranoagent \"($SERVICE_SRV_NAME)\" or set variable SERVICE_EXEC_PATH=/path/to/daemon before running setup script, exiting!" - exit 1 - fi - fi -} - -# uninstall -uninst() -{ - # Uninstall trough pip - find_pip - # looking up for python package installed - PYPKG=$SERVICE_SRV_NAME - _pkg=$($PIPCMD freeze | grep $PYPKG) - if [ $? -eq 0 ]; then - log "Removing package \"$PYPKG\" with pip" - $PIPCMD uninstall $_pkg --yes - else - log "Python package \"$PYPKG\" not found" - fi -} - -# inject init -injectinit() -{ - log "Enabling $SERVICE_SRV_NAME in init.d..." - cp -f "$SERVICE_CONTENT_DIRECTORY/init.d/murano-agent-el6" "/etc/init.d/$SERVICE_SRV_NAME" - sed -i "s/DAEMON=.*/DAEMON=$(echo $SERVICE_EXEC_PATH | sed -e 's/\//\\\//g')/" /etc/init.d/$SERVICE_SRV_NAME - chmod 755 /etc/init.d/$SERVICE_SRV_NAME - chkconfig --add $SERVICE_SRV_NAME - chkconfig $SERVICE_SRV_NAME on -} - -purgeinit() -{ - log "Removing from init.d..." - chkconfig $SERVICE_SRV_NAME off - chkconfig --del $SERVICE_SRV_NAME - rm -f /etc/init.d/$SERVICE_SRV_NAME - #Fedora compat. - systemctl --system daemon-reload > /dev/null 2>&1 -} - -# Command line args' -COMMAND="$1" -case $COMMAND in - inject-init ) - get_service_exec_path - log "Injecting \"$SERVICE_SRV_NAME\" to init..." - injectinit - postinst - ;; - - install ) - inst - get_service_exec_path - injectinit - ;; - - purge-init ) - log "Purging \"$SERVICE_SRV_NAME\" from init..." - service $SERVICE_SRV_NAME stop - purgeinit - ;; - - uninstall ) - log "Uninstalling \"$SERVICE_SRV_NAME\" from system..." - service $SERVICE_SRV_NAME stop - purgeinit - uninst - ;; - - * ) - echo -e "Usage: $(basename "$0") command \nCommands:\n\tinstall - Install $SERVICE_SRV_NAME software\n\tuninstall - Uninstall $SERVICE_SRV_NAME software\n\tinject-init - Add $SERVICE_SRV_NAME to the system start-up\n\tpurge-init - Remove $SERVICE_SRV_NAME from the system start-up" - exit 1 - ;; -esac \ No newline at end of file diff --git a/setup.sh b/setup.sh deleted file mode 100755 index 6d0d9551..00000000 --- a/setup.sh +++ /dev/null @@ -1,206 +0,0 @@ -#!/bin/sh -# Copyright (c) 2013 Mirantis, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. -# -# Ubuntu script -LOGLVL=1 -SERVICE_CONTENT_DIRECTORY=`cd $(dirname "$0") && pwd` -PREREQ_PKGS="git wget make gcc python-pip python-iso8601 python-six python-anyjson python-eventlet python-dev python-setuptools" -PIPAPPS="pip python-pip pip-python" -PIPCMD="" -SERVICE_SRV_NAME="murano-agent" -ETC_CFG_DIR="/etc/murano" - - - -# Functions -# Loger function -log() -{ - MSG=$1 - if [ $LOGLVL -gt 0 ]; then - echo "LOG:> $MSG" - fi -} - -# find pip -find_pip() -{ - for cmd in $PIPAPPS - do - _cmd=$(which $cmd 2>/dev/null) - if [ $? -eq 0 ];then - break - fi - done - if [ -z $_cmd ];then - echo "Can't find \"pip\" in system, please install it first, exiting!" - exit 1 - else - PIPCMD=$_cmd - fi -} - -# Check or install package -in_sys_pkg() -{ - PKG=$1 - dpkg -s $PKG > /dev/null 2>&1 - if [ $? -eq 0 ]; then - log "Package \"$PKG\" already installed" - else - log "Installing \"$PKG\"..." - apt-get install $PKG --yes > /dev/null 2>&1 - if [ $? -ne 0 ];then - log "installation fails, exiting!!!" - exit - fi - fi -} - -# install -inst() -{ -# Checking packages - for PKG in $PREREQ_PKGS - do - in_sys_pkg $PKG - done -# Find python pip - find_pip - MRN_CND_SPY=$SERVICE_CONTENT_DIRECTORY/setup.py - if [ -e $MRN_CND_SPY ]; then - chmod +x $MRN_CND_SPY - log "$MRN_CND_SPY output:_____________________________________________________________" -## Setup through pip - # Creating tarball - rm -rf $SERVICE_CONTENT_DIRECTORY/*.egg-info - cd $SERVICE_CONTENT_DIRECTORY && python $MRN_CND_SPY egg_info - if [ $? -ne 0 ];then - log "\"$MRN_CND_SPY\" egg info creation FAILS, exiting!!!" - exit 1 - fi - rm -rf $SERVICE_CONTENT_DIRECTORY/dist/* - cd $SERVICE_CONTENT_DIRECTORY && $MRN_CND_SPY sdist - if [ $? -ne 0 ];then - log "\"$MRN_CND_SPY\" tarball creation FAILS, exiting!!!" - exit 1 - fi - # Running tarball install - TRBL_FILE=$(basename `ls $SERVICE_CONTENT_DIRECTORY/dist/murano-agent*.tar.gz`) - $PIPCMD install $SERVICE_CONTENT_DIRECTORY/dist/$TRBL_FILE - if [ $? -ne 0 ];then - log "$PIPCMD install \"$TRBL_FILE\" FAILS, recreate terball with \"python setup.py sdist\" command, exiting!!!" - exit 1 - fi - # Creating etc directory for config files - if [ ! -d $ETC_CFG_DIR ];then - log "Creating $ETC_CFG_DIR direcory..." - mkdir -p $ETC_CFG_DIR - if [ $? -ne 0 ];then - log "Can't create $ETC_CFG_DIR, exiting!!!" - exit 1 - fi - fi - log "Making sample configuration file at \"$ETC_CFG_DIR\"" - cp -f "$SERVICE_CONTENT_DIRECTORY/etc/agent.conf" "$ETC_CFG_DIR/agent.conf" - else - log "$MRN_CND_SPY not found!" - fi -} - -# searching for service executable in path -get_service_exec_path() -{ - if [ -z "$SERVICE_EXEC_PATH" ]; then - SERVICE_EXEC_PATH=$(which muranoagent) - if [ $? -ne 0 ]; then - log "Can't find \"muranoagent ($SERVICE_SRV_NAME)\", please install the \"$SERVICE_SRV_NAME\" by running \"$(basename "$0") install\" or set variable SERVICE_EXEC_PATH=/path/to/daemon before running setup script, exiting!" - exit 1 - fi - else - if [ ! -x "$SERVICE_EXEC_PATH" ]; then - log "\"$SERVICE_EXEC_PATH\" in not executable, please install the muranoagent \"($SERVICE_SRV_NAME)\" or set variable SERVICE_EXEC_PATH=/path/to/daemon before running setup script, exiting!" - exit 1 - fi - fi -} - -# uninstall -uninst() -{ - # Uninstall trough pip - find_pip - # looking up for python package installed - PYPKG=$SERVICE_SRV_NAME - _pkg=$($PIPCMD freeze | grep $PYPKG) - if [ $? -eq 0 ]; then - log "Removing package \"$PYPKG\" with pip" - $PIPCMD uninstall $_pkg --yes - else - log "Python package \"$PYPKG\" not found" - fi -} - -# inject init -injectinit() -{ - log "Enabling $SERVICE_SRV_NAME in init.d..." - cp -f "$SERVICE_CONTENT_DIRECTORY/init.d/murano-agent-deb" "/etc/init.d/$SERVICE_SRV_NAME" - sed -i "s/DAEMON=.*/DAEMON=$(echo $SERVICE_EXEC_PATH | sed -e 's/\//\\\//g')/" /etc/init.d/$SERVICE_SRV_NAME - chmod 755 /etc/init.d/$SERVICE_SRV_NAME - update-rc.d $SERVICE_SRV_NAME defaults -} - -purgeinit() -{ - log "Removing from init.d..." - update-rc.d -f $SERVICE_SRV_NAME remove - rm -f /etc/init.d/$SERVICE_SRV_NAME -} - -# Command line args' -COMMAND="$1" -case $COMMAND in - inject-init ) - get_service_exec_path - log "Injecting \"$SERVICE_SRV_NAME\" to init..." - injectinit - postinst - ;; - - install ) - inst - get_service_exec_path - injectinit - ;; - - purge-init ) - log "Purging \"$SERVICE_SRV_NAME\" from init..." - service $SERVICE_SRV_NAME stop - purgeinit - ;; - - uninstall ) - log "Uninstalling \"$SERVICE_SRV_NAME\" from system..." - service $SERVICE_SRV_NAME stop - purgeinit - uninst - ;; - - * ) - echo -e "Usage: $(basename "$0") command \nCommands:\n\tinstall - Install $SERVICE_SRV_NAME software\n\tuninstall - Uninstall $SERVICE_SRV_NAME software\n\tinject-init - Add $SERVICE_SRV_NAME to the system start-up\n\tpurge-init - Remove $SERVICE_SRV_NAME from the system start-up" - exit 1 - ;; -esac \ No newline at end of file