Class: Source

Inherits:
Thor
  • Object
show all
Defined in:
lib/dscli/source.rb

Instance Method Summary collapse

Instance Method Details

#delete(id) ⇒ Object



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/dscli/source.rb', line 71

def delete(id)
  api = Dscli::API.new

  begin

    response = api.source_delete(id)

    if response[:http][:status] == 204
      puts "Source '#{id}' deleted successfully"
    else
      response
    end
  rescue ApiResourceNotFoundError => e
    puts "Source '#{id}' not found. It may have been deleted."
  end

end

#get(id) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
# File 'lib/dscli/source.rb', line 18

def get(id)
  
  begin
    api = Dscli::API.new
    response = api.source_get(id)
    puts response[:data].to_yaml
  rescue ApiResourceNotFoundError => e
    puts "Specified managed source '#{id}' was not found. It may have been deleted."
  end

end

#list(page = 1) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/dscli/source.rb', line 4

def list(page = 1)
  api = Dscli::API.new
  results = api.source_list(page)

  puts "\nTotal Managed Sources: #{results.count}\n\n"
  puts 'ID                               | Name                 | Type                 | Status'
  puts '-----------------------------------------------------------------------------------------------------'

  results[:sources].each { |s| puts "#{s[:id]} | #{ '%-20.20s' % s[:name] } | #{ '%-20.20s' % s[:source_type] } | #{s[:status]}" }
  puts "\n"

end

#logs(id = nil) ⇒ Object



90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/dscli/source.rb', line 90

def logs(id = nil)
  api = Dscli::API.new

  begin

    results = api.source_log(id)

   puts "\nMessage count: #{results[:count]}\n\n"
   puts ' Time                     | Message                                          '
   puts '-----------------------------------------------------------------------------------------------------------------'
   
   results[:log_entries].each { |s| puts "#{Time.at(s[:event_time]) } | #{ '%-50.50s' % s[:message] }" }
   puts "\n"

  rescue ApiResourceNotFoundError => e
    puts "Specified source '#{id}' not found. It may have been deleted."
  end
 
end

#start(id) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/dscli/source.rb', line 31

def start(id)

  api = Dscli::API.new
    
  begin
    response = api.source_start(id)

    if response[:http][:status] == 200
      puts "Managed source '#{id}' started successfully"
    else
      # TODO: How do we handle a different code?
      response
    end
  rescue ApiResourceNotFoundError => e
    puts "Specified source '#{id}' not found. It may have been deleted."
  end

end

#stop(id) ⇒ Object



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

def stop(id)

  api = Dscli::API.new
    
  begin
    response = api.source_stop(id)

    if response[:http][:status] == 200
      puts "Managed source '#{id}' stopped successfully"
    else
      # TODO: How do we handle a different code?
      response
    end
  rescue ApiResourceNotFoundError => e
    puts "Specified source '#{id}' not found. It may have been deleted."
  end

end