Class: Kerbi::Cli::StateHandler

Inherits:
BaseHandler show all
Defined in:
lib/cli/state_handler.rb

Instance Method Summary collapse

Instance Method Details

#delete(tag_expr) ⇒ Object

Parameters:

  • tag_expr (String)

    e.g 1.9.1, @latest



78
79
80
81
82
83
# File 'lib/cli/state_handler.rb', line 78

def delete(tag_expr)
  entry = find_readable_entry(tag_expr)
  state_backend.delete_entry(entry)
  new_count = state_backend.entries.count
  puts "Deleted state[#{entry.tag}]. Remaining entries: #{new_count}"
end

#demote(tag_expr) ⇒ Object

Parameters:

  • tag_expr (String)

    e.g 1.9.1, @latest



60
61
62
63
64
# File 'lib/cli/state_handler.rb', line 60

def demote(tag_expr)
  entry = find_readable_entry(tag_expr)
  old_name = entry.demote
  touch_and_save_entry(entry, tag: old_name)
end

#init(namespace) ⇒ Object

Parameters:

  • namespace (String)

    refers to a Kubernetes namespace



6
7
8
9
10
11
12
# File 'lib/cli/state_handler.rb', line 6

def init(namespace)
  state_backend(namespace).provision_missing_resources(
    verbose: run_opts.verbose?
  )
  ns_key = Kerbi::Consts::OptionSchemas::NAMESPACE
  Kerbi::ConfigFile.patch({ns_key => namespace})
end

#listObject



20
21
22
23
24
25
26
27
# File 'lib/cli/state_handler.rb', line 20

def list
  prep_opts(Kerbi::Consts::OptionDefaults::LIST_STATE)
  echo_data(
    state_backend.entries,
    table_serializer: Kerbi::Cli::EntryRowSerializer,
    serializer: Kerbi::Cli::EntryYamlJsonSerializer
  )
end

#promote(tag_expr) ⇒ Object

Parameters:

  • tag_expr (String)

    e.g 1.9.1, @latest



52
53
54
55
56
# File 'lib/cli/state_handler.rb', line 52

def promote(tag_expr)
  entry = find_readable_entry(tag_expr)
  old_name = entry.promote
  touch_and_save_entry(entry, tag: old_name)
end

#prune_candidatesObject



86
87
88
89
90
91
92
# File 'lib/cli/state_handler.rb', line 86

def prune_candidates
  old_count = entry_set.entries.count
  entry_set.prune_candidates
  state_backend.save
  new_count = entry_set.entries.count
  puts "Pruned #{old_count - new_count} state entries"
end

#retag(old_tag_expr, new_tag_expr) ⇒ Object

Parameters:

  • old_tag_expr (String)

    e.g 1.9.1, @latest

  • new_tag_expr (String)

    e.g 1.9.1, @latest



44
45
46
47
48
# File 'lib/cli/state_handler.rb', line 44

def retag(old_tag_expr, new_tag_expr)
  entry = find_readable_entry(old_tag_expr)
  old_tag = entry.retag(new_tag_expr)
  touch_and_save_entry(entry, tag: old_tag)
end

#set(tag_expr, attr_name, new_value) ⇒ Object

Parameters:

  • tag_expr (String)

    e.g 1.9.1, @latest

  • attr_name (String)

    e.g message

  • new_value (String)

    e.g i am a new message



70
71
72
73
74
# File 'lib/cli/state_handler.rb', line 70

def set(tag_expr, attr_name, new_value)
  entry = find_readable_entry(tag_expr)
  old_value = entry.assign_attr(attr_name, new_value)
  touch_and_save_entry(entry, attr_name => old_value)
end

#show(tag_expr) ⇒ Object

Parameters:

  • tag_expr (String)

    e.g 1.9.1, @latest



31
32
33
34
35
36
37
38
39
# File 'lib/cli/state_handler.rb', line 31

def show(tag_expr)
  prep_opts(Kerbi::Consts::OptionDefaults::LIST_STATE)
  entry = find_readable_entry(tag_expr)
  echo_data(
    entry,
    table_serializer: Kerbi::Cli::FullEntryRowSerializer,
    serializer: Kerbi::Cli::EntryYamlJsonSerializer
  )
end

#statusObject



15
16
17
# File 'lib/cli/state_handler.rb', line 15

def status
  state_backend.test_connection(verbose: run_opts.verbose?)
end