diff --git a/actors/linux/debian/postrm b/actors/linux/debian/postrm index 1319fc76..1e2062d7 100755 --- a/actors/linux/debian/postrm +++ b/actors/linux/debian/postrm @@ -4,3 +4,6 @@ if [ "$1" = "purge" ] ; then mv /etc/udsactor/udsactor.cfg /etc/udsactor/udsactor.cfg.dpkg-backup fi fi + +# Remove .pyc leaved behind +rm -rf /usr/share/UDSActor || true > /dev/null 2>&1 \ No newline at end of file diff --git a/actors/linux/udsactor-1.7.0.spec b/actors/linux/udsactor-1.7.0.spec index c94b411b..c6bf8424 100644 --- a/actors/linux/udsactor-1.7.0.spec +++ b/actors/linux/udsactor-1.7.0.spec @@ -12,6 +12,9 @@ Summary: Actor for Universal Desktop Services (UDS) Broker License: BSD3 Group: Admin Requires: python-six python-requests PyQt4 +Vendor: Virtual Cable S.L.U. +URL: http://www.udsenterprise.com +Provides: udsactor %define _rpmdir ../ %define _rpmfilename %%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm @@ -32,13 +35,19 @@ cd $curdir %post -#!/bin/sh +systemctl enable udsactor.service > /dev/null 2>&1 %preun -#!/bin/sh +systemctl disable udsactor.service > /dev/null 2>&1 %postun -#!/bin/sh +# $1 == 0 on uninstall, == 1 on upgrade for preun and postun (just a reminder for me... :) ) +if [ $1 -eq 0 ]; then + rm -rf /etc/udsactor + rm /var/log/udsactor.log +fi +# And, posibly, the .pyc leaved behind on /usr/share/UDSActor +rm -rf /usr/share/UDSActor > /dev/null 2>&1 %description This package provides the required components to allow this machine to work on an environment managed by UDS Broker. diff --git a/actors/src/udsactor/linux/renamer/__init__.py b/actors/src/udsactor/linux/renamer/__init__.py index 5d221177..670a3d15 100644 --- a/actors/src/udsactor/linux/renamer/__init__.py +++ b/actors/src/udsactor/linux/renamer/__init__.py @@ -41,13 +41,15 @@ from udsactor.log import logger renamers = {} +# Renamers now are for IPv4 only addresses def rename(newName): distribution = platform.linux_distribution()[0].lower() if distribution in renamers: return renamers[distribution](newName) - logger.error('Renamer for platform "{0}" not found'.format(distribution)) - return False + # Try Debian renamer, simplest one + logger.info('Renamer for platform "{0}" not found, tryin debian renamer'.format(distribution)) + return renamers['debian'] # Do load of packages diff --git a/actors/src/udsactor/linux/renamer/redhat.py b/actors/src/udsactor/linux/renamer/redhat.py new file mode 100644 index 00000000..1b59dc50 --- /dev/null +++ b/actors/src/udsactor/linux/renamer/redhat.py @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- +# +# Copyright (c) 2014 Virtual Cable S.L. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without modification, +# are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# * Neither the name of Virtual Cable S.L. nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +''' +@author: Adolfo Gómez, dkmaster at dkmon dot com +''' +from __future__ import unicode_literals + +from udsactor.linux.renamer import renamers +from udsactor.log import logger + +import os + + +def rename(newName): + ''' + RH, Centos, Fedora Renamer + Expects new host name on newName + Host does not needs to be rebooted after renaming + ''' + logger.debug('using RH renamer') + + with open('/etc/hostname', 'w') as hostname: + hostname.write(newName) + + # Force system new name + os.system('/bin/hostname %s' % newName) + + # add name to "hosts" + with open('/etc/hosts', 'r') as hosts: + lines = hosts.readlines() + with open('/etc/hosts', 'w') as hosts: + hosts.write("127.0.1.1\t{}\n".format(newName)) + for l in lines: + if l[:9] != '127.0.1.1': # Skips existing 127.0.1.1. if it already exists + hosts.write(l) + + with open('/etc/sysconfig/network', 'r') as net: + lines = net.readlines() + with open('/etc/sysconfig/network', 'w') as net: + net.write('HOSTNAME={}\n'.format(newName)) + for l in lines: + if l[:8] != 'HOSTNAME': + net.write(l) + + return True + +# All names in lower case +renamers['centos linux'] = rename +renamers['fedora'] = rename