~hopem/charms/trusty/neutron-gateway/ensure-tmpdir-cleanup

« back to all changes in this revision

Viewing changes to hooks/charmhelpers/fetch/giturl.py

  • Committer: james.page at ubuntu
  • Date: 2015-06-10 14:09:04 UTC
  • mfrom: (103.2.34 neutron-gateway)
  • Revision ID: james.page@ubuntu.com-20150610140904-ys7u0pyicqb70n7c
Update for deploy from source:

Use python venv for install
Clone git repos with depth=1 for speed

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
        else:
46
46
            return True
47
47
 
48
 
    def clone(self, source, dest, branch):
 
48
    def clone(self, source, dest, branch, depth=None):
49
49
        if not self.can_handle(source):
50
50
            raise UnhandledSource("Cannot handle {}".format(source))
51
51
 
52
 
        repo = Repo.clone_from(source, dest)
53
 
        repo.git.checkout(branch)
 
52
        if depth:
 
53
            Repo.clone_from(source, dest, branch=branch, depth=depth)
 
54
        else:
 
55
            Repo.clone_from(source, dest, branch=branch)
54
56
 
55
 
    def install(self, source, branch="master", dest=None):
 
57
    def install(self, source, branch="master", dest=None, depth=None):
56
58
        url_parts = self.parse_url(source)
57
59
        branch_name = url_parts.path.strip("/").split("/")[-1]
58
60
        if dest:
63
65
        if not os.path.exists(dest_dir):
64
66
            mkdir(dest_dir, perms=0o755)
65
67
        try:
66
 
            self.clone(source, dest_dir, branch)
 
68
            self.clone(source, dest_dir, branch, depth)
67
69
        except GitCommandError as e:
68
70
            raise UnhandledSource(e.message)
69
71
        except OSError as e: