OLD | NEW |
1 # Copyright 2015 The LUCI Authors. All rights reserved. | 1 # Copyright 2015 The LUCI Authors. All rights reserved. |
2 # Use of this source code is governed under the Apache License, Version 2.0 | 2 # Use of this source code is governed under the Apache License, Version 2.0 |
3 # that can be found in the LICENSE file. | 3 # that can be found in the LICENSE file. |
4 | 4 |
5 import copy | 5 import copy |
6 import errno | 6 import errno |
7 import logging | 7 import logging |
8 import operator | 8 import operator |
9 import os | 9 import os |
10 import subprocess | 10 import subprocess |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 | 202 |
203 def current(self): | 203 def current(self): |
204 return self.backend.commit_metadata(self.revision) | 204 return self.backend.commit_metadata(self.revision) |
205 | 205 |
206 def updates(self): | 206 def updates(self): |
207 """Returns a list of revisions on the branch between the pinned revision | 207 """Returns a list of revisions on the branch between the pinned revision |
208 and the tracked branch. | 208 and the tracked branch. |
209 | 209 |
210 Returns list(CommitMetadata) | 210 Returns list(CommitMetadata) |
211 """ | 211 """ |
212 spec = self.spec_pb() | 212 return self.backend.updates( |
213 | 213 self.revision, self.backend.resolve_refspec(self._branch_for_remote)) |
214 paths = [] | |
215 subdir = spec.recipes_path | |
216 if subdir: | |
217 # We add package_file to the list of paths to check because it might | |
218 # contain other upstream rolls, which we want. | |
219 paths.extend([subdir + os.path.sep, | |
220 InfraRepoConfig().relative_recipes_cfg]) | |
221 | |
222 other_revision = self.backend.resolve_refspec(self._branch_for_remote) | |
223 return self.backend.updates(self.revision, other_revision, paths) | |
224 | 214 |
225 def _components(self): | 215 def _components(self): |
226 return (self.project_id, self.repo, self.revision, self.path) | 216 return (self.project_id, self.repo, self.revision, self.path) |
227 | 217 |
228 def __eq__(self, other): | 218 def __eq__(self, other): |
229 if not isinstance(other, type(self)): | 219 if not isinstance(other, type(self)): |
230 return False | 220 return False |
231 return self._components() == other._components() | 221 return self._components() == other._components() |
232 | 222 |
233 | 223 |
234 class PathRepoSpec(RepoSpec): | 224 class PathRepoSpec(RepoSpec): |
235 """A RepoSpec implementation that uses a local filesystem path.""" | 225 """A RepoSpec implementation that uses a local filesystem path.""" |
236 | 226 |
237 def __init__(self, project_id, path): | 227 def __init__(self, project_id, path): |
238 self.project_id = project_id | 228 self.project_id = project_id |
239 self.path = path | 229 self.path = path |
240 | 230 |
241 def __str__(self): | 231 def __str__(self): |
242 return ( | 232 return ( |
243 'PathRepoSpec{project_id="%(project_id)s", path="%(path)s"}' | 233 'PathRepoSpec{project_id="%(project_id)s", path="%(path)s"}' |
244 % self.__dict__ | 234 % self.__dict__ |
245 ) | 235 ) |
246 | 236 |
247 def current(self): | 237 def current(self): |
248 return fetch.CommitMetadata( | 238 return fetch.CommitMetadata( |
249 '', | 239 '', |
250 '', | 240 '', |
251 0, | 241 0, |
252 (), | 242 (), |
253 self.spec_pb() | 243 self.spec_pb(), |
| 244 False |
254 ) | 245 ) |
255 | 246 |
256 def updates(self): | 247 def updates(self): |
257 return [] | 248 return [] |
258 | 249 |
259 def fetch(self): | 250 def fetch(self): |
260 pass | 251 pass |
261 | 252 |
262 def checkout(self, context): | 253 def checkout(self, context): |
263 pass | 254 pass |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 | 502 |
512 @property | 503 @property |
513 def packages(self): | 504 def packages(self): |
514 for p in self._packages.values(): | 505 for p in self._packages.values(): |
515 yield p | 506 yield p |
516 | 507 |
517 @property | 508 @property |
518 def engine_recipes_py(self): | 509 def engine_recipes_py(self): |
519 return os.path.join( | 510 return os.path.join( |
520 self._packages['recipe_engine'].repo_root, 'recipes.py') | 511 self._packages['recipe_engine'].repo_root, 'recipes.py') |
OLD | NEW |