civo / cli-rubygem

Command line interface for interacting with Civo's cloud API
https://www.civo.com
MIT License
15 stars 4 forks source link

civo_cli-0.3.9 blocking error #33

Closed alexellis closed 5 years ago

alexellis commented 5 years ago

I'm using:

Linux Ubuntu 16.04 Ruby 2.3.0

I installed civo and civo_cli using gem install, then got this when I ran civo:

/var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:8:in `<class:Instance>': uninitialized constant CivoCLI::NameGenerator (NameError)
Did you mean?  NameError
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:2:in `<module:CivoCLI>'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:1:in `<top (required)>'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `block in <top (required)>'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `each'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `<top (required)>'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/exe/civo:4:in `<top (required)>'
    from /usr/local/bin/civo:23:in `load'
    from /usr/local/bin/civo:23:in `<main>'

Please could someone take a look as this is a blocking error.

Thanks

Alex

kaihoffman commented 5 years ago

can't reproduce currently. Running 16.04, Ruby 2.3.1p112:

civo@icon-buffalo:~$ civo
Commands:
  civo apikey          # manage API keys stored in the client
  civo blueprint       # manage blueprints
  civo domain          # manage DNS domains
  civo domainrecord    # manage domain name DNS records for a domain
  civo firewall        # manage firewalls
  civo help [COMMAND]  # Describe available commands or one specific command
  civo instance        # manage instances
  civo kubernetes      # manage kubernetess
  civo network         # manage networks
  civo quota           # view the quota
  civo region          # manage regions
  civo size            # manage sizes
  civo snapshot        # manage snapshots
  civo sshkey          # manage uploaded SSH keys
  civo template        # manage templates
  civo version         # show the version of Civo CLI used
  civo volume          # manage volumes

clean install, sudo apt install ruby, sudo gem install civo_cli and then civo

Running 0.3.9 version of the gem.

alexellis commented 5 years ago

Thanks for investigating. I still have the error. this is my config:

$ ruby --version
ruby 2.3.1p112 (2016-04-26) [x86_64-linux-gnu]

$ cat /etc/os-release 
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.6 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial

$ civo
/var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:8:in `<class:Instance>': uninitialized constant CivoCLI::NameGenerator (NameError)
Did you mean?  NameError
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:2:in `<module:CivoCLI>'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:1:in `<top (required)>'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `block in <top (required)>'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `each'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `<top (required)>'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/exe/civo:4:in `<top (required)>'
    from /usr/local/bin/civo:23:in `load'
    from /usr/local/bin/civo:23:in `<main>'
alexellis commented 5 years ago
$ sudo gem install civo_cli
Successfully installed civo_cli-0.3.9
Parsing documentation for civo_cli-0.3.9
Done installing documentation for civo_cli after 0 seconds
1 gem installed
$ 
$ sudo gem install civo
Successfully installed civo-1.2.6
Parsing documentation for civo-1.2.6
Done installing documentation for civo after 0 seconds
1 gem installed
$ 
$ civo
/var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:8:in `<class:Instance>': uninitialized constant CivoCLI::NameGenerator (NameError)
Did you mean?  NameError
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:2:in `<module:CivoCLI>'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:1:in `<top (required)>'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `block in <top (required)>'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `each'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `<top (required)>'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/exe/civo:4:in `<top (required)>'
    from /usr/local/bin/civo:23:in `load'
    from /usr/local/bin/civo:23:in `<main>'
$ 
alexellis commented 5 years ago
  8     DEFAULT_HOSTNAME = CivoCLI::NameGenerator.create

This is line 8 in the file.

I guess that irb isn't happy either:

irb(main):010:0> require 'civo_cli'
NameError: uninitialized constant CivoCLI::NameGenerator
Did you mean?  NameError
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:8:in `<class:Instance>'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:2:in `<module:CivoCLI>'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/instance.rb:1:in `<top (required)>'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `block in <top (required)>'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `each'
    from /var/lib/gems/2.3.0/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `<top (required)>'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `require'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:127:in `rescue in require'
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:40:in `require'
    from (irb):10
    from /usr/bin/irb:11:in `<main>'
alexellis commented 5 years ago

I can also reproduce this error with docker

 docker run -ti ruby /bin/bash

root@134450f5ed90:/# gem install civo
Fetching: multi_json-1.13.1.gem (100%)
Successfully installed multi_json-1.13.1
Fetching: safe_yaml-1.0.5.gem (100%)
Successfully installed safe_yaml-1.0.5
Fetching: crack-0.4.3.gem (100%)
Successfully installed crack-0.4.3
Fetching: multipart-post-2.1.1.gem (100%)
Successfully installed multipart-post-2.1.1
Fetching: faraday-0.15.4.gem (100%)
Successfully installed faraday-0.15.4
Fetching: concurrent-ruby-1.1.5.gem (100%)
Successfully installed concurrent-ruby-1.1.5
Fetching: i18n-1.6.0.gem (100%)

HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
But that may break your application.

Please check your Rails app for 'config.i18n.fallbacks = true'.
If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
'config.i18n.fallbacks = [I18n.default_locale]'.
If not, fallbacks will be broken in your app by I18n 1.1.x.

For more info see:
https://github.com/svenfuchs/i18n/releases/tag/v1.1.0

Successfully installed i18n-1.6.0
Fetching: thread_safe-0.3.6.gem (100%)
Successfully installed thread_safe-0.3.6
Fetching: tzinfo-1.2.5.gem (100%)
Successfully installed tzinfo-1.2.5
Fetching: activesupport-5.2.3.gem (100%)
Successfully installed activesupport-5.2.3
Fetching: flexirest-1.7.9.gem (100%)
Successfully installed flexirest-1.7.9
Fetching: parslet-1.8.2.gem (100%)
Successfully installed parslet-1.8.2
Fetching: toml-0.2.0.gem (100%)
Successfully installed toml-0.2.0
Fetching: highline-2.0.2.gem (100%)
Successfully installed highline-2.0.2
Fetching: commander-4.4.7.gem (100%)
Successfully installed commander-4.4.7
Fetching: civo-1.2.6.gem (100%)
Successfully installed civo-1.2.6
16 gems installed
root@134450f5ed90:/# gem install civo_cli
Fetching: unicode-display_width-1.6.0.gem (100%)
Successfully installed unicode-display_width-1.6.0
Fetching: terminal-table-1.8.0.gem (100%)
Successfully installed terminal-table-1.8.0
Fetching: thor-0.20.3.gem (100%)
Successfully installed thor-0.20.3
Fetching: colorize-0.8.1.gem (100%)
Successfully installed colorize-0.8.1
Fetching: bundler-1.17.3.gem (100%)
Successfully installed bundler-1.17.3
Fetching: civo_cli-0.3.9.gem (100%)
Successfully installed civo_cli-0.3.9
6 gems installed
root@134450f5ed90:/# civo auth
Traceback (most recent call last):
    12: from /usr/local/bundle/bin/civo:23:in `<main>'
    11: from /usr/local/bundle/bin/civo:23:in `load'
    10: from /usr/local/bundle/gems/civo_cli-0.3.9/exe/civo:4:in `<top (required)>'
     9: from /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
     8: from /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
     7: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `<top (required)>'
     6: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `each'
     5: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `block in <top (required)>'
     4: from /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
     3: from /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
     2: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/instance.rb:1:in `<top (required)>'
     1: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/instance.rb:2:in `<module:CivoCLI>'
/usr/local/bundle/gems/civo_cli-0.3.9/lib/instance.rb:8:in `<class:Instance>': uninitialized constant CivoCLI::NameGenerator (NameError)
Did you mean?  NameError
root@134450f5ed90:/# civo 
Traceback (most recent call last):
    12: from /usr/local/bundle/bin/civo:23:in `<main>'
    11: from /usr/local/bundle/bin/civo:23:in `load'
    10: from /usr/local/bundle/gems/civo_cli-0.3.9/exe/civo:4:in `<top (required)>'
     9: from /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
     8: from /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
     7: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `<top (required)>'
     6: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `each'
     5: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/civo_cli.rb:8:in `block in <top (required)>'
     4: from /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
     3: from /usr/local/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
     2: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/instance.rb:1:in `<top (required)>'
     1: from /usr/local/bundle/gems/civo_cli-0.3.9/lib/instance.rb:2:in `<module:CivoCLI>'
/usr/local/bundle/gems/civo_cli-0.3.9/lib/instance.rb:8:in `<class:Instance>': uninitialized constant CivoCLI::NameGenerator (NameError)
Did you mean?  NameError
root@134450f5ed90:/# 
kaihoffman commented 5 years ago

As I was able to reproduce this finally, I have pushed a fix: https://github.com/civo/cli/commit/489a0ba6299819d5320bedfc602505c3054f3e81

Could you please try to download 0.3.10 with gem install civo_cli and try if it works?

alexellis commented 5 years ago

:+1:

I have re-tested on 2/3 of the Linux computers and it appears to be fixed now.

Thank you :smile: