source: n4d-moving-profiles/trunk/fuentes/install/usr/share/n4d/python-plugins/MovingProfiles.py @ 712

Last change on this file since 712 was 712, checked in by jrpelegrina, 3 years ago

First release to xenial

File size: 1.8 KB
Line 
1
2import json
3
4
5class MovingProfiles:
6
7        config_file="/etc/moving-profiles/setup.conf"
8       
9       
10        def __init__(self):
11                self.load()
12                self.compute_list()
13               
14        #__init__
15       
16        def startup(self):
17                pass
18        #startup
19       
20       
21        # **********************************
22        # gets the computed list of patterns
23        # Used by client
24        # **********************************
25        def get_list(self):
26                return self.data
27        #get_list
28       
29       
30       
31        # **********************************
32        # gets json setup, used by settings
33        # manager
34        # **********************************
35        def get_conf(self):
36                return self.db
37        #get_conf
38       
39        # **********************************
40        # sets json setup, used by settings
41        # manager. Setup is stored to disk
42        # **********************************
43        def set_conf(self,data):
44                self.db=data
45                self.save()
46                self.compute_list()
47        #set_conf
48       
49       
50        # **********************************
51        # internal function that recomputes
52        # client list
53        # **********************************
54        def compute_list(self):
55                self.data={"include":{},"exclude":{}}
56               
57                selected_id=self.db["setup"]["selected"]
58                rules=[]
59               
60                for profile in self.db["setup"]["profiles"]:
61               
62                        if profile["id"]==selected_id:
63                       
64                                rules=profile["rules"]
65                       
66                                break
67               
68               
69                for rule in self.db["setup"]["rules"]:
70               
71                        if rule["id"] in rules:
72                                n=0
73                                for regex in rule["regex"]:
74                               
75                                        pattern=regex["pattern"]
76                                        rtype=regex["type"]
77                                       
78                                        rname="{0}::{1}".format(rule["id"],n)
79                                       
80                                        if rtype=="include":
81                                                self.data["include"][rname]=pattern
82                                        elif rtype=="exclude":
83                                                self.data["exclude"][rname]=pattern
84                               
85                                        n=n+1
86                               
87               
88        #compute_list
89       
90       
91        def load(self):
92                f=open(self.config_file,"r")
93                self.db=json.load(f)
94                f.close()
95        #load
96       
97        def save(self):
98                f=open(self.config_file,"w")
99                json.dump(self.db,f)
100                f.close()
101        #save
102       
103
104
105if __name__=="__main__":
106        pass
107
Note: See TracBrowser for help on using the repository browser.