Sha256: 5ae8199338534deed19fd0e05d96881d2b44aec3ada7ffc0fe0c5018810e66cc

Contents?: true

Size: 1.61 KB

Versions: 3

Compression:

Stored size: 1.61 KB

Contents

require 'optparse'
require 'fog/openstack'
require_relative '../danarchy_sys'

module DanarchySys
  class CLI
    def initialize
      require_relative 'cli/menus'
      require_relative 'cli/providers'
      require_relative 'cli/instance_manager'
      # require_relative 'cli/keypair_manager'

      provider = Providers.chooser
      puts "OpenStack -> #{provider}"
      @os_compute = DanarchySys::OpenStack::Compute.new provider
      console
    end

    def instance_chooser
      inst_mgr = InstanceManager.new(@os_compute)
      instance = inst_mgr.chooser(@os_compute)

      until instance != false
        puts "\nReturning to Instance Chooser"
        instance = inst_mgr.chooser(@os_compute)
      end

      menus('main')
      puts "\nWorking with: #{instance.name}\tStatus: #{instance.state}"
      console(instance.name)
    end

    def console
      menu = Menus.numbered_menu('main')
      Menus.print_menu('main')

      loop do
        print 'command ~: '
        cmd = gets.chomp

        next if cmd.empty?
        if cmd =~ /^[0-9]*$/
          menu[cmd.to_i].map { |k, v| cmd = k } if menu.keys.include? cmd.to_i
        end

        if cmd == 'instance'
          InstanceManager.manager(@os_compute)
        elsif cmd == 'keypair'
          puts 'Keypair Manager not yet implemented!'
          # Keypair.manager(@os_compute)
        elsif cmd == 'help'
          Menus.print_menu('main')
        elsif cmd == 'exit'
          abort('Exiting!')
        else
          Menus.print_menu('main')
          puts "\nCommand \'#{cmd}\' not available. Enter a command from above."
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
danarchy_sys-0.2.12 lib/danarchy_sys/cli.rb
danarchy_sys-0.2.11 lib/danarchy_sys/cli.rb
danarchy_sys-0.2.10 lib/danarchy_sys/cli.rb