1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 from importLib import Import, Channel
18 from spacewalk.server.rhnChannel import channel_info
19
20
22
23 - def __init__(self, batch, backend):
24 Import.__init__(self, batch, backend)
25 self.channels_to_link = {}
26
27 - def preprocess(self):
28 for content_source in self.batch:
29
30 if 'channels' in content_source and content_source['channels'] is not None:
31 for channel_label in content_source['channels']:
32 if channel_label not in self.channels_to_link:
33 db_channel = channel_info(channel_label)
34 channel_obj = Channel()
35 channel_obj.id = db_channel['id']
36 channel_obj['content-sources'] = []
37 self.channels_to_link[channel_label] = channel_obj
38 self.channels_to_link[channel_label]['content-sources'].append(content_source)
39
42
44 try:
45 self.backend.processContentSources(self.batch)
46 for channel in self.channels_to_link.values():
47 self.backend.processChannelContentSources(channel)
48 except:
49 self.backend.rollback()
50 raise
51 self.backend.commit()
52