#! /usr/bin/python
# -*- coding: iso-8859-1 -*-

#####################################################
#    Copyright (C) 2006 by Cesar Kallas   	
#    cesarkallas@soulivre.org   
#    http://cesarkallas.soulivre.org
#                                                                          
#    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 
#    the 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.,                                       
#    59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             
#####################################################

import Agentes, Acoes, Ambiente
import SimpleXMLRPCServer

class RetornoAgente(object):
	def __init__(self):
		self.acoes = Acoes.Acoes()
		self.agentes = Agentes.Agentes()
		
	def confirmaAcao(self, acao):
		return self.acoes.atualizaStatus(acao, "executada")
	
	def softwareInstalado(self, acao, mac_address, md5):
		return self.agentes.adicionaSoftware(acao, mac_address, md5)
	
	def softwareRemovido(self, mac_address, md5):
		return self.agentes.removeSoftware(mac_address, md5)


class ServidorRPC(object):
	def __init__(self, hosts, porta):
		self.portaRPC = porta
		self.hosts = hosts
		
	def iniciar(self):
		retornoAgente = RetornoAgente()
		servidorRPC = SimpleXMLRPCServer.SimpleXMLRPCServer((self.hosts, self.portaRPC))
		servidorRPC.register_instance(retornoAgente)
		servidorRPC.serve_forever()
