class Porkadot::Cmd::Etcd::Cli

def self.subcommand_prefix

def self.subcommand_prefix
  'etcd'
end

def all

def all
  "Use restore or backup sub commands."
end

def backup

def backup
  require 'date'
  filename = "etcd-#{DateTime.now.to_s}.db"
  path = File.join(options[:path], filename)
  logger.info "Backing up etcd data to #{path}"
  kubelets = Porkadot::Install::KubeletList.new(self.config)
  kubelets.backup_etcd host: options[:node], path: path
  ""
end

def restore

def restore
  invoke :stop, [], options
  path = Dir.glob(File.join(options[:path], "etcd-*.db")).sort.reverse[0]
  unless path
    return "No backup data found...: #{options[:path]}"
  end
  logger.info "Restore etcd from #{path}"
  kubelets = Porkadot::Install::KubeletList.new(self.config)
  kubelets.restore_etcd path: path
  invoke :start, [], options
  ""
end

def start

def start
  logger.info "Start etcd"
  kubelets = Porkadot::Install::KubeletList.new(self.config)
  kubelets.start_etcd hosts: options[:node]
  ""
end

def stop

def stop
  logger.info "Start etcd"
  kubelets = Porkadot::Install::KubeletList.new(self.config)
  kubelets.stop_etcd hosts: options[:node]
  ""
end