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