Class: AptlyCli::AptlySnapshot

Inherits:
AptlyCommand show all
Includes:
HTTParty
Defined in:
lib/aptly_snapshot.rb

Overview

Aptly class to work with Snapshot API

Instance Attribute Summary

Attributes inherited from AptlyCommand

#config

Instance Method Summary collapse

Methods inherited from AptlyCommand

#delete, #get, #initialize, #post, #process_response, #put

Constructor Details

This class inherits a constructor from AptlyCli::AptlyCommand

Instance Method Details

#snapshot_create(name, repo, description = nil) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/aptly_snapshot.rb', line 24

def snapshot_create(name, repo, description=nil)
  # Build uri to create snapshot, requires name of snap and name of repo
  uri = "/repos/#{repo}/" + 'snapshots'

  post(uri, :body =>
                  { 'Name' => name,
                    'Description' => description }.to_json,
                       :headers => { 'Content-Type' => 'application/json' })
end

#snapshot_create_ref(name, description = nil, sourcesnapshots = [], packagerefs = []) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/aptly_snapshot.rb', line 34

def snapshot_create_ref(name, description=nil,
                        sourcesnapshots=[], packagerefs=[])
  uri = '/snapshots'
  begin
    post(uri,
                    :body => { 'Name' => name, 'Description' => description,
                             'SourceSnapshots' => sourcesnapshots,
                             'PackageRefs' => packagerefs }.to_json,
                    :headers => { 'Content-Type' => 'application/json' })
  rescue HTTParty::Error => e
    return e
  end
end

#snapshot_delete(name, force = nil) ⇒ Object



12
13
14
15
16
# File 'lib/aptly_snapshot.rb', line 12

def snapshot_delete(name, force=nil)
  uri = "/snapshots/#{name}"
  uri += '?force=1' if force == true
  delete(uri)
end

#snapshot_diff(name, with_snapshot) ⇒ Object



48
49
50
51
# File 'lib/aptly_snapshot.rb', line 48

def snapshot_diff(name, with_snapshot)
  uri = "/snapshots/#{name}/diff/#{with_snapshot}"
  get(uri)
end

#snapshot_list(sort = nil) ⇒ Object



18
19
20
21
22
# File 'lib/aptly_snapshot.rb', line 18

def snapshot_list(sort=nil)
  uri = '/snapshots'
  uri += "?sort=#{sort}" if sort
  get(uri)
end

#snapshot_search(name, search_options = {}) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/aptly_snapshot.rb', line 53

def snapshot_search(name, search_options={})
  uri = "/snapshots/#{name}/packages"
  @options = { query: {} }

  if search_options.key?(:format)
    @options[:query] = { format: search_options[:format].to_s }
  end

  if search_options.key?(:q)
    @options[:query] = { q: "Name (~ #{search_options[:q]})" }
  end

  @options[:query] = { withDeps:  '1' } if search_options[:withDeps] == true
  get(uri, @options)
end

#snapshot_show(name) ⇒ Object



69
70
71
72
# File 'lib/aptly_snapshot.rb', line 69

def snapshot_show(name)
  uri = "/snapshots/#{name}"
  get(uri)
end

#snapshot_update(name, new_name, description = nil) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/aptly_snapshot.rb', line 74

def snapshot_update(name, new_name, description=nil)
  uri = "/snapshots/#{name}"
  snap_name = if new_name.nil?
                name
              else
                new_name
              end
  @query = {}
  @query[:Name] = snap_name
  @query[:Description] = description unless description.nil?
  @query_json = @query.to_json
  begin
    put(uri, :body => @query_json, :headers =>
                   { 'Content-Type' => 'application/json' })
  rescue HTTParty::Error => e
    puts e
  end
end