source: lliurex-ubiquity-addons/trunk/fuentes/src/UbiLliureXSecurityUpgrades.py @ 2958

Last change on this file since 2958 was 2958, checked in by daduve, 3 years ago

If unchecked stats delete file

File size: 3.8 KB
Line 
1from ubiquity import misc, plugin, validation
2import os
3import inspect
4NAME = 'lliurexSecurityUpgrades'
5AFTER = 'console_setup'
6BEFORE = 'usersetup'
7WEIGHT = 12
8
9class PageGtk(plugin.PluginUI):
10        plugin_title = 'lliurex/securityUpgrades'
11
12        def __init__(self, controller, *args, **kwargs):
13                from gi.repository import Gio, Gtk
14                self.resolver = Gio.Resolver.get_default()
15                self.controller = controller
16                builder = Gtk.Builder()
17                self.controller.add_builder(builder)
18                builder.add_from_file(os.path.join(
19                        os.environ['UBIQUITY_GLADE'], 'UbiLliureXSecurityUpgrades.ui'))
20                builder.connect_signals(self)
21                self.page = builder.get_object('UbiLliureXSecurityUpgrades')
22                self.securityUpgrades = builder.get_object('cb_securityUpgrades')
23                self.stats = builder.get_object('cb_stats')
24                self.plugin_widgets = self.page
25
26class Page(plugin.Plugin):
27
28        def ok_handler(self):
29                list_packages = []
30                if self.ui.securityUpgrades.get_active():
31                        token = os.system("touch /tmp/ubiquitySecurityUpgrades")
32                if self.ui.stats.get_active():
33                        token = os.system("touch /tmp/stats")
34                else
35                        if os.path.isfile("/tmp/stats")
36                        token = os.system("rm /tmp/stats")
37                                               
38                plugin.Plugin.ok_handler(self)
39
40
41class Install(plugin.InstallPlugin):
42       
43        def test_enable_upgrades():
44                '''
45                Due a Ubiquity bug, is necesary for now take a shortcut to test if automaticUpgrades are enabled...
46                '''
47                result = False
48               
49                if os.path.isfile("/tmp/ubiquitySecurityUpgrades"):
50                        print(" * Security Upgrades enabled by GUI")
51                        result = True
52               
53                try:
54                        print(" * Security Upgrades enabled by preseed")
55                        result =  self.db.get('lliurex/securityUpgrades/selection') 
56                except Excetion as e:
57                        print("Ubiquity is not capable to perform this operation : "+str(e))
58               
59                return result
60               
61               
62               
63        def test_enable_stadistics():
64               
65                result_stats = False
66               
67                if os.path.isfile("/tmp/stats"):
68                        print(" * Stadistics are enabled by GUI")
69                        result_stats = True
70                try:
71                        print(" * Stadistics are enabled by preseed")
72                except Excetion as e:
73                        print("Ubiquity is not capable to perform this operation : "+str(e))
74               
75                return result_stats
76               
77               
78       
79       
80       
81        def install(self, target, progress, *args, **kwargs):
82                progress.info('lliurex/securityUpgrades')
83               
84                result = False
85               
86                if os.path.isfile("/tmp/ubiquitySecurityUpgrades"):
87                        print(" * Security Upgrades enabled by GUI")
88                        result = True
89               
90                try:
91                        print(" * Security Upgrades enabled by preseed")
92                        result =  self.db.get('lliurex/securityUpgrades/selection') 
93                except Exception as e:
94                        print("Ubiquity is not capable to perform this operation : "+str(e))
95                       
96                result_stats = False
97               
98                if os.path.isfile("/tmp/stats"):
99                        print(" * Stadistics are enabled by GUI")
100                        result_stats = True
101                try:
102                        print(" * Stadistics are enabled by preseed")
103                except Excetion as e:
104                        print("Ubiquity is not capable to perform this operation : "+str(e))
105               
106               
107                if (result) :
108                        os.system("mkdir -p /target/etc/apt/apt.conf.d/")
109                        f = open("/target/etc/apt/apt.conf.d/60auto-upgrades-lliurex","w")
110                        f.write('// Enable security \n')
111                        f.write('APT::Periodic::Update-Package-Lists "1";\n')
112                        f.write('APT::Periodic::Unattended-Upgrade "1";\n')
113                        f.close()
114                else :
115                        os.system("mkdir -p /target/etc/apt/apt.conf.d/")
116                        f = open("/target/etc/apt/apt.conf.d/60auto-upgrades-lliurex","w")
117                        f.write('// Enable security \n')
118                        f.write('// APT::Periodic::Update-Package-Lists "1";\n')
119                        f.write('// APT::Periodic::Unattended-Upgrade "1";\n')
120                        f.close()
121               
122                if (result_stats) :
123                        os.system("mkdir -p /target/etc/lliurex-analytics/")
124                        f = open("/target/etc/lliurex-analytics/status","w")
125                        f.write('yes\n')
126                        f.close()
127                else :
128                        os.system("mkdir -p /target/etc/lliurex-analytics/")
129                        f = open("/target/etc/lliurex-analytics/status","w")
130                        f.write('no\n')
131                        f.close()
132               
133                return plugin.InstallPlugin.install(self, target, progress, *args, **kwargs)
Note: See TracBrowser for help on using the repository browser.