1
+ # -*- coding: utf-8 -*-
1
2
"""Utility functions that are used by both views and celery tasks."""
2
3
3
- from __future__ import absolute_import
4
+ from __future__ import (
5
+ absolute_import , division , print_function , unicode_literals )
6
+
4
7
import hashlib
5
8
import logging
6
9
@@ -33,14 +36,17 @@ def sync_versions(project, versions, type): # pylint: disable=redefined-builtin
33
36
else :
34
37
# Update slug with new identifier
35
38
Version .objects .filter (
36
- project = project , verbose_name = version_name
37
- ).update (
38
- identifier = version_id ,
39
- type = type ,
40
- machine = False ,
39
+ project = project , verbose_name = version_name ).update (
40
+ identifier = version_id ,
41
+ type = type ,
42
+ machine = False ,
43
+ ) # noqa
44
+
45
+ log .info (
46
+ '(Sync Versions) Updated Version: [%s=%s] ' ,
47
+ version ['verbose_name' ],
48
+ version ['identifier' ],
41
49
)
42
- log .info ("(Sync Versions) Updated Version: [%s=%s] " ,
43
- version ['verbose_name' ], version ['identifier' ])
44
50
else :
45
51
# New Version
46
52
created_version = Version .objects .create (
@@ -51,7 +57,7 @@ def sync_versions(project, versions, type): # pylint: disable=redefined-builtin
51
57
)
52
58
added .add (created_version .slug )
53
59
if added :
54
- log .info (" (Sync Versions) Added Versions: [%s] " , ' ' .join (added ))
60
+ log .info (' (Sync Versions) Added Versions: [%s] ' , ' ' .join (added ))
55
61
return added
56
62
57
63
@@ -72,14 +78,15 @@ def delete_versions(project, version_data):
72
78
73
79
if to_delete_qs .count ():
74
80
ret_val = {obj .slug for obj in to_delete_qs }
75
- log .info (" (Sync Versions) Deleted Versions: [%s]" , ' ' .join (ret_val ))
81
+ log .info (' (Sync Versions) Deleted Versions: [%s]' , ' ' .join (ret_val ))
76
82
to_delete_qs .delete ()
77
83
return ret_val
78
84
return set ()
79
85
80
86
81
- def index_search_request (version , page_list , commit , project_scale , page_scale ,
82
- section = True , delete = True ):
87
+ def index_search_request (
88
+ version , page_list , commit , project_scale , page_scale , section = True ,
89
+ delete = True ):
83
90
"""
84
91
Update search indexes with build output JSON.
85
92
@@ -91,21 +98,25 @@ def index_search_request(version, page_list, commit, project_scale, page_scale,
91
98
project = version .project
92
99
93
100
log_msg = ' ' .join ([page ['path' ] for page in page_list ])
94
- log .info ("Updating search index: project=%s pages=[%s]" ,
95
- project .slug , log_msg )
101
+ log .info (
102
+ 'Updating search index: project=%s pages=[%s]' ,
103
+ project .slug ,
104
+ log_msg ,
105
+ )
96
106
97
107
project_obj = ProjectIndex ()
98
- project_obj .index_document (data = {
99
- 'id' : project .pk ,
100
- 'name' : project .name ,
101
- 'slug' : project .slug ,
102
- 'description' : project .description ,
103
- 'lang' : project .language ,
104
- 'author' : [user .username for user in project .users .all ()],
105
- 'url' : project .get_absolute_url (),
106
- 'tags' : None ,
107
- 'weight' : project_scale ,
108
- })
108
+ project_obj .index_document (
109
+ data = {
110
+ 'id' : project .pk ,
111
+ 'name' : project .name ,
112
+ 'slug' : project .slug ,
113
+ 'description' : project .description ,
114
+ 'lang' : project .language ,
115
+ 'author' : [user .username for user in project .users .all ()],
116
+ 'url' : project .get_absolute_url (),
117
+ 'tags' : None ,
118
+ 'weight' : project_scale ,
119
+ })
109
120
110
121
page_obj = PageIndex ()
111
122
section_obj = SectionIndex ()
@@ -114,7 +125,7 @@ def index_search_request(version, page_list, commit, project_scale, page_scale,
114
125
routes = [project .slug ]
115
126
routes .extend ([p .parent .slug for p in project .superprojects .all ()])
116
127
for page in page_list :
117
- log .debug (" Indexing page: %s:%s" , project .slug , page ['path' ])
128
+ log .debug (' Indexing page: %s:%s' , project .slug , page ['path' ])
118
129
to_hash = '-' .join ([project .slug , version .slug , page ['path' ]])
119
130
page_id = hashlib .md5 (to_hash .encode ('utf-8' )).hexdigest ()
120
131
index_list .append ({
@@ -131,8 +142,12 @@ def index_search_request(version, page_list, commit, project_scale, page_scale,
131
142
})
132
143
if section :
133
144
for sect in page ['sections' ]:
134
- id_to_hash = '-' .join ([project .slug , version .slug ,
135
- page ['path' ], sect ['id' ]])
145
+ id_to_hash = '-' .join ([
146
+ project .slug ,
147
+ version .slug ,
148
+ page ['path' ],
149
+ sect ['id' ],
150
+ ])
136
151
section_index_list .append ({
137
152
'id' : (hashlib .md5 (id_to_hash .encode ('utf-8' )).hexdigest ()),
138
153
'project' : project .slug ,
@@ -144,29 +159,40 @@ def index_search_request(version, page_list, commit, project_scale, page_scale,
144
159
'weight' : page_scale ,
145
160
})
146
161
for route in routes :
147
- section_obj .bulk_index (section_index_list , parent = page_id ,
148
- routing = route )
162
+ section_obj .bulk_index (
163
+ section_index_list ,
164
+ parent = page_id ,
165
+ routing = route ,
166
+ )
149
167
150
168
for route in routes :
151
169
page_obj .bulk_index (index_list , parent = project .slug , routing = route )
152
170
153
171
if delete :
154
- log .info (" Deleting files not in commit: %s" , commit )
172
+ log .info (' Deleting files not in commit: %s' , commit )
155
173
# TODO: AK Make sure this works
156
174
delete_query = {
157
- "query" : {
158
- "bool" : {
159
- "must" : [
160
- {"term" : {"project" : project .slug , }},
161
- {"term" : {"version" : version .slug , }},
175
+ 'query' : {
176
+ 'bool' : {
177
+ 'must' : [
178
+ {
179
+ 'term' : {
180
+ 'project' : project .slug ,
181
+ },
182
+ },
183
+ {
184
+ 'term' : {
185
+ 'version' : version .slug ,
186
+ },
187
+ },
162
188
],
163
- " must_not" : {
164
- " term" : {
165
- " commit" : commit
166
- }
167
- }
168
- }
169
- }
189
+ ' must_not' : {
190
+ ' term' : {
191
+ ' commit' : commit ,
192
+ },
193
+ },
194
+ },
195
+ },
170
196
}
171
197
page_obj .delete_document (body = delete_query )
172
198
0 commit comments