source: lliurex-mirror/trunk/fuentes/lliurex-mirror-n4d-server.install/usr/share/n4d/python-plugins/LliurexMirror.py @ 246

Last change on this file since 246 was 246, checked in by hectorgh, 5 years ago

adding project files

File size: 2.0 KB
Line 
1# npackage example  https://svn.lliurex.net/pandora/n4d-ldap/trunk
2# jinja2 http://jinja.pocoo.org/docs/templates
3
4from jinja2 import Environment
5from jinja2.loaders import FileSystemLoader
6from jinja2 import Template
7import tempfile
8import shutil
9import os
10import subprocess
11class LliurexMirror:
12
13        def __init__(self):
14                #Load template file
15                self.tpl_env = Environment(loader=FileSystemLoader('/usr/share/n4d/templates/lliurex-mirror'))
16                pass
17        #def init
18       
19        def startup(self,options):
20                # executed when launching n4d
21                pass
22               
23        #def startup
24
25        def apt(self):
26                # executed after apt operations
27                pass
28               
29        #def apt
30       
31        # service test and backup functions #
32       
33        def test(self):
34
35                pass
36               
37        #def test
38       
39        def backup(self):
40
41                pass
42               
43        #def test
44       
45        def restore(self):
46
47                pass
48               
49        #def test
50       
51        def load_exports(self):
52                #Get template
53                template = self.tpl_env.get_template("cname")
54                list_variables = {}
55               
56                #Inicialize INTERNAL_DOMAIN
57                list_variables['INTERNAL_DOMAIN'] = objects['VariablesManager'].get_variable('INTERNAL_DOMAIN')
58                #If INT_DOMAIN is not defined calculate it with args values
59                if  list_variables['INTERNAL_DOMAIN'] == None:
60                        return {'status':False,'msg':'Variable INTERNAL_DOMAIN not defined'}
61                       
62                #Obtains HOSTNAME
63                list_variables['HOSTNAME'] = objects['VariablesManager'].get_variable('HOSTNAME')
64                #If variable SRV_IP is not defined returns an error
65                if  list_variables['HOSTNAME'] == None:
66                        return {'status':False,'msg':'Variable HOSTNAME not defined'}
67                       
68                #Encode vars to UTF-8
69                string_template = template.render(list_variables).encode('UTF-8')
70                #Open template file
71                fd, tmpfilepath = tempfile.mkstemp()
72                new_export_file = open(tmpfilepath,'w')
73                new_export_file.write(string_template)
74                new_export_file.close()
75                os.close(fd)
76                #Write template values
77                n4d_mv(tmpfilepath,'/var/lib/dnsmasq/config/cname-mirror',True,'root','root','0644',False )
78               
79                return {'status':True,'msg':'Exports written'}
80        #def load_exports
81
82        # ######################### #
83       
84#class ApacheManager
Note: See TracBrowser for help on using the repository browser.