Coder Social home page Coder Social logo

cloudfoundry-attic / vmc Goto Github PK

View Code? Open in Web Editor NEW
377.0 69.0 121.0 59.97 MB

The command line client for Cloud Foundry - the open platform as a service project

Home Page: http://www.cloudfoundry.org

License: Apache License 2.0

Ruby 99.57% Shell 0.43%

vmc's Introduction

Build Status Gem Version Code Climate

The vmc tool only supports v1 Cloud Foundry and is deprecated for v2.

For v2, vmc and its plugins have been renamed to cf. You can find the current version of the code for this gem at http://github.com/cloudfoundry/cf

CLI for Cloud Foundry (compatible with v1 only)

The CLI for Cloud Foundry is being completely rewritten. Installation, usage & contribution instructions are below.

To use this CLI, your Cloud Foundry installation must be running the v1 cloud controller.

Installation

$ gem install vmc
$ vmc -v
vmc 0.4.2

Development

$ git clone [email protected]:cloudfoundry/vmc.git
$ cd vmc
$ bundle install
$ rake gem:install

Usage

$ vmc help --all
Getting Started
  info            	Display information on the current target, user, etc.
  target [URL]    	Set or display the target cloud, organization, and space
  targets         	List known targets.
  login [USERNAME]	Authenticate with the target
  logout          	Log out from the target
  register [EMAIL]	Create a user and log in
  colors          	Show color configuration

Applications
  app [APP]	Show app information
  apps     	List your applications

  Management
    delete APPS...     	Delete an application
    push [NAME]        	Push an application, syncing changes if it exists
    rename [APP] [NAME]	Rename an application
    restart APPS...    	Stop and start an application
    start APPS...      	Start an application
    stop APPS...       	Stop an application

  Information
    crashes APPS...         	List an app's crashed instances
    env [APP]               	Show all environment variables set for an app
    set-env APP NAME [VALUE]	Set an environment variable
    unset-env APP NAME      	Remove an environment variable
    file APP [PATH]         	Print out an app's file contents
    files APP [PATH]        	Examine an app's files
    tail APP [PATH]         	Stream an app's file contents
    health APPS...          	Get application health
    instances APPS...       	List an app's instances
    logs [APP]              	Print out an app's logs
    crashlogs APP           	Print out the logs for an app's crashed instances
    map APP URL             	Add a URL mapping for an app
    unmap APP [URL]         	Remove a URL mapping from an app
    scale [APP]             	Update the instances/memory limit for an application
    stats [APP]             	Display application instance status

Services
  service INSTANCE	Show service instance information
  services        	List your service instances

  Management
    bind-service [INSTANCE] [APP]  	Bind a service instance to an application
    unbind-service [INSTANCE] [APP]	Unbind a service from an application
    create-service [SERVICE] [NAME]	Create a service
    delete-service [INSTANCE]      	Delete a service
    rename-service [SERVICE] [NAME]	Rename a service
    tunnel [INSTANCE] [CLIENT]     	Tells you to install tunnel-vmc-plugin

Organizations
  create-org [NAME]               	Create an organization
  delete-org [ORGANIZATION]       	Delete an organization
  org [ORGANIZATION]              	Show organization information
  orgs                            	List available organizations
  rename-org [ORGANIZATION] [NAME]	Rename an organization

Spaces
  create-space [NAME] [ORGANIZATION]	Create a space in an organization
  delete-space SPACES...            	Delete a space and its contents
  rename-space [SPACE] [NAME]       	Rename a space
  space [SPACE]                     	Show space information
  spaces [ORGANIZATION]             	List spaces in an organization
  take-space NAME                   	Switch to a space, creating it if it doesn't exist

Routes
  create-route [URL]  	Create a route
  delete-route [ROUTE]	Delete a route
  routes              	List routes in a space

Domains
  add-domain NAME       	Add a domain to a space
  create-domain NAME    	Create a domain
  delete-domain [DOMAIN]	Delete a domain
  domains [SPACE]       	List domains in a space
  remove-domain [DOMAIN]	Remove a domain from a space

Administration
  users	List all users

  User Management
    create-user [EMAIL]	Create a user
    delete-user EMAIL  	Delete a user
    passwd [USER]      	Update a user's password

Options:
      --[no-]color       Use colorful output
      --[no-]script      Shortcut for --quiet and --force
  -V, --verbose          Print extra information
  -f, --[no-]force       Skip interaction when possible
  -h, --help             Show command usage & instructions
  -m, --manifest FILE    Path to manifest file to use
  -q, --[no-]quiet       Simplify output format
  -t, --trace            Show API requests and responses
  -u, --proxy EMAIL      Run this command as another user (admin only)
  -v, --version          Print version number

Cloud Foundry Resources

Cloud Foundry Open Source Platform as a Service

Learn

Our documentation, currently a work in progress, is available here: http://cloudfoundry.github.com/

Ask Questions

Questions about the Cloud Foundry Open Source Project can be directed to our Google Groups.

File a bug

Bugs can be filed using Github Issues within the various repositories of the Cloud Foundry components.

OSS Contributions

The Cloud Foundry team uses GitHub and accepts contributions via pull request

Follow these steps to make a contribution to any of our open source repositories:

  1. Complete our CLA Agreement for individuals or corporations

  2. Set your name and email

    git config --global user.name "Firstname Lastname" git config --global user.email "[email protected]"

Fork the repo

Make your changes on a topic branch, commit, and push to github and open a pull request.

Once your commits are approved by Travis CI and reviewed by the core team, they will be merged.

vmc's People

Contributors

admgre avatar bfad avatar cf-frameworks avatar derekcollison avatar drnic avatar fb3 avatar garethr avatar giorgian avatar kushmerick avatar mariash avatar mmb avatar mreider avatar oppegard avatar paulj avatar pmenglund avatar ramnivas avatar reepong avatar schinen avatar stefanschneider avatar svaiyapu avatar timf avatar tlang avatar trotter avatar uhurugit avatar vito avatar yudai avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vmc's Issues

Deprecated?

According to the README, VMC is "Deprecated." To me, that means it should no longer be used.

On the other hand, the cf client does not correctly target api.cloudfoundry.com: The error is

V1 targets are no longer supported.

According to a response I received on Twitter, VMC is still the correct client to use for connecting to api.cloudfoundry.com:

https://twitter.com/cloudfoundry/status/322041328101888001

Also, according to this recently closed issue on the cf project, VMC is still the correct client to use when targeting api.cloudfoundry.com:

cloudfoundry-attic/cf#1

I wonder if it might be helpful to make this clearer in the documentation and in the README file. Perhaps "Deprecated" is not the best choice of words at this time.

Poor diagnostics when vmc is used against v2 CF instance

I recently targeted a v2 deployment in order to debug a v2 bug but was unaware that "vmc" has been superseded by "cf" (at least that's what a colleague told me). I got an obscure crash during vmc push rather than a helpful diagnostic much earlier. Ideally I would like a message like "use the cf gem" but I would settle for an error code that could quickly be traced to the need to use the cf gem.

If thousands of vmc users are going to migrate to use v2, this will be a common complaint and waste of people's time.

Restler call causes 502

I tried to deploy a simple node demo I've been working on here. It uses restler to communicate with a REST API (the github API in this case). When I push this app to cloudfoundry, it doesn't work and gets a 502. The logs don't say anything.

When I removed the restler call and just return a string, it works fine. Does cloud foundry restrict internet calls out?

vmc push --no-start throws a ruby error

I am using vmc 0.5.1.rc4. When I attempt to do a vmc push --no-start, I am receiving the following error (using the same application from when I logged issue 65):

Uploading part... FAILED
Upload failed. Try again with 'vmc push'.
NoMethodError: undefined method `each' for nil:NilClass
For more information, see ~/.vmc/crash

Below is the resulting crash report:

Time of crash:
  2013-03-20 22:01:22 -0500

NoMethodError: undefined method `each' for nil:NilClass

cfoundry-0.5.3.rc5/lib/cfoundry/upload_helpers.rb:193:in `make_fingerprints'
cfoundry-0.5.3.rc5/lib/cfoundry/upload_helpers.rb:152:in `determine_resources'
cfoundry-0.5.3.rc5/lib/cfoundry/upload_helpers.rb:44:in `upload'
vmc-0.5.1.rc4/lib/vmc/cli/app/push.rb:90:in `block in upload_app'
interact-0.5.2/lib/interact/progress.rb:98:in `with_progress'
vmc-0.5.1.rc4/lib/vmc/cli/app/push.rb:89:in `upload_app'
vmc-0.5.1.rc4/lib/vmc/cli/app/push.rb:69:in `setup_new_app'
vmc-0.5.1.rc4/lib/vmc/cli/app/push.rb:52:in `push'
mothership-0.5.1/lib/mothership/base.rb:66:in `run'
mothership-0.5.1/lib/mothership/command.rb:72:in `block in invoke'
manifests-vmc-plugin-0.6.3.rc2/lib/manifests-vmc-plugin/plugin.rb:142:in `call'
manifests-vmc-plugin-0.6.3.rc2/lib/manifests-vmc-plugin/plugin.rb:142:in `block in create_and_save_manifest'
mothership-0.5.1/lib/mothership/callbacks.rb:74:in `with_filters'
manifests-vmc-plugin-0.6.3.rc2/lib/manifests-vmc-plugin/plugin.rb:140:in `create_and_save_manifest'
manifests-vmc-plugin-0.6.3.rc2/lib/manifests-vmc-plugin/plugin.rb:80:in `wrap_push'
manifests-vmc-plugin-0.6.3.rc2/lib/manifests-vmc-plugin/plugin.rb:29:in `block in <class:ManifestsPlugin>'
mothership-0.5.1/lib/mothership/command.rb:82:in `instance_exec'
mothership-0.5.1/lib/mothership/command.rb:82:in `block (2 levels) in invoke'
mothership-0.5.1/lib/mothership/command.rb:86:in `instance_exec'
mothership-0.5.1/lib/mothership/command.rb:86:in `invoke'
mothership-0.5.1/lib/mothership/base.rb:55:in `execute'
vmc-0.5.1.rc4/lib/vmc/cli.rb:150:in `block (2 levels) in execute'
vmc-0.5.1.rc4/lib/vmc/cli.rb:161:in `save_token_if_it_changes'
vmc-0.5.1.rc4/lib/vmc/cli.rb:149:in `block in execute'
vmc-0.5.1.rc4/lib/vmc/cli.rb:100:in `wrap_errors'
vmc-0.5.1.rc4/lib/vmc/cli.rb:145:in `execute'
mothership-0.5.1/lib/mothership.rb:45:in `start'
vmc-0.5.1.rc4/bin/vmc:11:in `<top (required)>'
ruby-2.0.0-p0/bin/vmc:23:in `load'
ruby-2.0.0-p0/bin/vmc:23:in `<main>'
ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `eval'
ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `<main>'

Become resilient to npm packages that install symlinks in .bin

There are lots of popular nodejs modules (e.g. express, less, jade) that install symlinks in node_modules/.bin that point back to the bin subdirectory in their respective subtree.

Currently vmc update complains about them due to a failure in understanding the symlink structure:

Error: Can't deploy application containing links '/Users/davida/src/foo/node_modules/.bin/jade' that reach outside its root '/Users/davida/src/foo'

I suspect the root bug is the fact that the symlink is assessed to reach outside its root, even though it clearly isn't:

root: /Users/davida/src/foo
link: /Users/davida/src/foo/node_modules/.bin/jade

add .vmcignore file for vmc push (and document current filters)

It seems that when you do a "vmc push", not all files will get pushed up to cloudfoundry (they are note found when I do "vmc files myapp app"). Currently, it looks like .git, .svn, *~, #foo log/development.log are filtered. But some files that you might want to prevent being uploaded do get uploaded (e.g., I tried log/development.log-orig, which got uploaded).

I think there should be a mechanism for the developer to specify a set of files to ignore during upload, and there should be some clear documentation as to which files are already filtered. I should be able to prevent entire directories "log", allow a directory, but not contents "log/*/" and filetypes *.sqlite3.

Receive ruby error when trying to do a push --no-start

I have a Spring web application that I'm attempting to deploy via vmc (version 0.5.0 with Ruby v1.9.2p290). From the target of my maven build, I'm executing the following command:

$ vmc push --no-start

However, when I do, I receive the following error:

Uploading partition... FAILED
Upload failed. Try again with 'vmc push'.
TypeError: can't convert nil into String
For more information, see ~/.vmc/crash

The contents of the ~/.vmc/crash are:

Time of crash:
  2013-03-12 10:05:32 -0500

TypeError: can't convert nil into String

multipart-post-1.1.5/lib/composite_io.rb:84:in `initialize'
multipart-post-1.1.5/lib/composite_io.rb:84:in `open'
multipart-post-1.1.5/lib/composite_io.rb:84:in `initialize'
cfoundry-0.5.2/lib/cfoundry/v1/base.rb:57:in `new'
cfoundry-0.5.2/lib/cfoundry/v1/base.rb:57:in `upload_app'
cfoundry-0.5.2/lib/cfoundry/upload_helpers.rb:48:in `upload'
vmc-0.5.0/lib/vmc/cli/app/push.rb:86:in `block in upload_app'
interact-0.5.2/lib/interact/progress.rb:98:in `with_progress'
vmc-0.5.0/lib/vmc/cli/app/push.rb:85:in `upload_app'
vmc-0.5.0/lib/vmc/cli/app/push.rb:65:in `setup_new_app'
vmc-0.5.0/lib/vmc/cli/app/push.rb:48:in `push'
mothership-0.5.1/lib/mothership/base.rb:66:in `run'
mothership-0.5.1/lib/mothership/command.rb:72:in `block in invoke'
manifests-vmc-plugin-0.6.2/lib/manifests-vmc-plugin/plugin.rb:142:in `call'
manifests-vmc-plugin-0.6.2/lib/manifests-vmc-plugin/plugin.rb:142:in `block in create_and_save_manifest'
mothership-0.5.1/lib/mothership/callbacks.rb:74:in `with_filters'
manifests-vmc-plugin-0.6.2/lib/manifests-vmc-plugin/plugin.rb:141:in `create_and_save_manifest'
manifests-vmc-plugin-0.6.2/lib/manifests-vmc-plugin/plugin.rb:80:in `wrap_push'
manifests-vmc-plugin-0.6.2/lib/manifests-vmc-plugin/plugin.rb:29:in `block in <class:ManifestsPlugin>'
mothership-0.5.1/lib/mothership/command.rb:82:in `instance_exec'
mothership-0.5.1/lib/mothership/command.rb:82:in `block (2 levels) in invoke'
mothership-0.5.1/lib/mothership/command.rb:86:in `instance_exec'
mothership-0.5.1/lib/mothership/command.rb:86:in `invoke'
mothership-0.5.1/lib/mothership/base.rb:55:in `execute'
vmc-0.5.0/lib/vmc/cli.rb:150:in `block (2 levels) in execute'
vmc-0.5.0/lib/vmc/cli.rb:161:in `save_token_if_it_changes'
vmc-0.5.0/lib/vmc/cli.rb:149:in `block in execute'
vmc-0.5.0/lib/vmc/cli.rb:100:in `wrap_errors'
vmc-0.5.0/lib/vmc/cli.rb:145:in `execute'
mothership-0.5.1/lib/mothership.rb:45:in `start'
vmc-0.5.0/bin/vmc:11:in `<top (required)>'
ruby-1.9.2-p290/bin/vmc:23:in `load'
ruby-1.9.2-p290/bin/vmc:23:in `<main>'

Help doesn't detail how to choose a runtime

I needed to choose the ruby19 runtime, but couldn't find anything in the help on how to create new applications or modify current applications to use that runtime instead of the ruby18.

vmc targets returning an error when no auth token are defined

undefined method 'empty?' for nil:NilClass
/home/greg/cloudfoundry/.deployments/devbox/deploy/rubies/ruby-1.9.2-p180/lib/ruby/gems/1.9.1/gems/vmc-0.3.15/lib/cli/commands/misc.rb:16:in `'targets'

tracked it to vmc-0.3.15/lib/cli/config.rb

def all_tokens
token_file = File.expand_path(TOKEN_FILE)
return nil unless File.exists? token_file
contents = lock_and_read(token_file).strip
JSON.parse(contents)
end
alias :targets :all_tokens

Should either not return nil or vmc misc.rb targets method should handle it (certainly the latter).

Might try to propose a fix tomorrow

unable to bind serivce to app due to VMC error

For VMC 0.4.7,

Time of crash:
2013-02-27 16:17:34 +0800

NoMethodError: undefined method `service_by_name' for #CFoundry::V1::Client:0x00000001f92508

vmc-0.4.7/lib/vmc/cli.rb:406:in block in by_name' mothership-0.3.5/lib/mothership/inputs.rb:150:ininstance_exec'
mothership-0.3.5/lib/mothership/inputs.rb:150:in convert_given' mothership-0.3.5/lib/mothership/inputs.rb:113:inget'
mothership-0.3.5/lib/mothership/inputs.rb:69:in []' vmc-0.4.7/lib/vmc/cli/service/bind.rb:15:inbind_service'
mothership-0.3.5/lib/mothership/base.rb:61:in run' mothership-0.3.5/lib/mothership/command.rb:68:inblock in invoke'
mothership-0.3.5/lib/mothership/command.rb:82:in instance_exec' mothership-0.3.5/lib/mothership/command.rb:82:ininvoke'
mothership-0.3.5/lib/mothership/base.rb:50:in execute' vmc-0.4.7/lib/vmc/cli.rb:106:inexecute'
mothership-0.3.5/lib/mothership.rb:45:in start' vmc-0.4.7/bin/vmc:11:in<top (required)>'
/opt/cf/.deployments/devbox/deploy/rubies/ruby-1.9.2-p180/bin/vmc:23:in load' /opt/cf/.deployments/devbox/deploy/rubies/ruby-1.9.2-p180/bin/vmc:23:in

'

original CF-216

Remove port from suggested URL

I'm accessing vcap via a non-standard port, specifically because I'm port forwarding from my local machine to a virtual machine. This works perfectly well, just use the port when calling target.

However, when creating applications via push this causes the suggested url to contain the port as well, which isn't needed and won't work for creating the app in vcap.

My branch has a fix for this at garethr@41eda4d

rubyzip2 dependency is failing

I can no longer gem install vmc, because it seems that rubyzip2, a dependency of vmc, has disappeared from the Internet. All versions have been yanked from rubygems.org and all copies on github seem to be gone. Any help on resolving this would be appreciated. Thanks.

vmc register doesn't work if the cloud_controller doesn't use UAA

With vmc 0.5.0.beta.12:

[andrea@ac hello]$ vmc register [email protected]
Password> ****

Confirm Password> ****
NoMethodError: undefined method `request_uri' for #<URI::Generic:0x007fb0c38b9540 URL:/password/score>
For more information, see ~/.vmc/crash
[andrea@ac hello]$ cat ~/.vmc/crash
Time of crash:
  2013-02-16 21:21:08 +0100

NoMethodError: undefined method `request_uri' for #<URI::Generic:0x007fb0c38b9540 URL:/password/score>

cf-uaa-lib-1.3.7/lib/uaa/http.rb:145:in `net_http_request'
cf-uaa-lib-1.3.7/lib/uaa/http.rb:129:in `request'
cf-uaa-lib-1.3.7/lib/uaa/misc.rb:100:in `password_strength'
cfoundry-0.5.0/lib/cfoundry/uaaclient.rb:46:in `block in password_score'
cfoundry-0.5.0/lib/cfoundry/uaaclient.rb:89:in `wrap_uaa_errors'
cfoundry-0.5.0/lib/cfoundry/uaaclient.rb:45:in `password_score'
vmc-0.5.0.beta.12/lib/vmc/cli/user/base.rb:22:in `validate_password_strength!'
vmc-0.5.0.beta.12/lib/vmc/cli/user/base.rb:14:in `validate_password!'
vmc-0.5.0.beta.12/lib/vmc/cli/user/register.rb:17:in `register'
mothership-0.5.0/lib/mothership/base.rb:66:in `run'
mothership-0.5.0/lib/mothership/command.rb:72:in `block in invoke'
mothership-0.5.0/lib/mothership/command.rb:86:in `instance_exec'
mothership-0.5.0/lib/mothership/command.rb:86:in `invoke'
mothership-0.5.0/lib/mothership/base.rb:55:in `execute'
vmc-0.5.0.beta.12/lib/vmc/cli.rb:105:in `execute'
mothership-0.5.0/lib/mothership.rb:45:in `start'
vmc-0.5.0.beta.12/bin/vmc:11:in `<top (required)>'
ruby-1.9.3-p286@chef/bin/vmc:19:in `load'
ruby-1.9.3-p286@chef/bin/vmc:19:in `<main>'
ruby-1.9.3-p286@chef/bin/ruby_noexec_wrapper:14:in `eval'
ruby-1.9.3-p286@chef/bin/ruby_noexec_wrapper:14:in `<main>'

"unknown file type META-INF/maven/" when trying to upload war file

E:\deploy-war>vmc push test-app
Would you like to deploy from the current directory? [Yn]:
Pushing application 'test-app'...
Creating Application: OK
Uploading Application:
unknown file type META-INF/maven/
C:/Ruby193/lib/ruby/gems/1.9.1/gems/rubyzip-0.9.6.1/lib/zip/zip_entry.rb:209:in extract' C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/zip_util.rb:46:inblock in unpack'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/rubyzip-0.9.6.1/lib/zip/zip_entry_set.rb:31:in each' C:/Ruby193/lib/ruby/gems/1.9.1/gems/rubyzip-0.9.6.1/lib/zip/zip_entry_set.rb:31:ineach'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/rubyzip-0.9.6.1/lib/zip/zip_central_directory.rb:113:in each' C:/Ruby193/lib/ruby/gems/1.9.1/gems/rubyzip-0.9.6.1/lib/zip/zip_file.rb:117:inblock in foreach'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/rubyzip-0.9.6.1/lib/zip/zip_file.rb:86:in open' C:/Ruby193/lib/ruby/gems/1.9.1/gems/rubyzip-0.9.6.1/lib/zip/zip_file.rb:116:inforeach'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/zip_util.rb:42:in unpack' C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/commands/apps.rb:416:inblock in upload_app_bits'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/commands/apps.rb:413:in chdir' C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/commands/apps.rb:413:inupload_app_bits'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/commands/apps.rb:1015:in do_push' C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/commands/apps.rb:302:inblock in push'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/manifest_helper.rb:28:in block in each_app' C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/manifest_helper.rb:23:ineach'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/manifest_helper.rb:23:in each_app' C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/commands/apps.rb:300:inpush'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/runner.rb:454:in run' C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/lib/cli/runner.rb:14:inrun'
C:/Ruby193/lib/ruby/gems/1.9.1/gems/vmc-0.3.16.beta.3/bin/vmc:5:in <top (required)>' C:/Ruby193/bin/vmc:19:inload'
C:/Ruby193/bin/vmc:19:in `

'

Rubygems.org 500 Error

Hello

We are having an issue in some of our ruby projects where the VMC gem exists in the project's gem dependencies. Bundle install fails with an "Internal Server Error" message. I believe this is because bundler is trying to access this endpoint: https://api.rubygems.org/api/v1/dependencies?gems=vmc

The endpoint returns a 500 error for the vmc gem, but for other gems the endpoint serves the gem's dependencies file like normal.

Mark

Broken set-env when value contains = signal

If I do:

$ vmc set-env my-app BLA="-Dfile.encoding=UTF-8"

What I get is:

$ vmc env my-app
Using manifest file manifest.yml

Getting env for my-app... OK

BLA: -Dfile.encoding

Issue using bundle install on VMC gem

Hi there,

We're having some issues when trying to install the vmc gem on some of our ruby projects - when trying to do a bundle install, we get the following error message:

Retrying dependency api due to error (2/4): Bundler::HTTPError Network error while fetching https://bundler.rubygems.org/api/v1/dependencies?gems=vmc

However, if we run with bundle i --full-index, it works fine. Following the URL above takes a while, but eventually downloads a 6.3MB dependencies file.

I found this issue from a month or so ago, could be a similar issue?

I've posted this issue to rubygems a well here.

Thanks,
Tom

Service names with whitespaces or strange chars

I can create new services with whitespace or strange chars but I'm unable to delete them. That's because vmc uses a json post for adding a new service, but an http plain post for deleting them.

An example:

~frodenas$ vmc create-service redis "foo bar"
Creating Service: OK

~ frodenas$ vmc delete-service "foo bar"
Deleting service [foo bar]: Cannot access target (bad URI(is not URI?): http://api.cloudfoundry.com/services/foo bar)

Don't Conflict with CLI Gem

If there is another gem named cli (such as https://rubygems.org/gems/cli), then vmc will conflict with that other gem. This is problematic.

Right now, I can

$ gem install vmc
$ irb
ruby > require 'cli'
 => true
ruby > VMC
 => VMC

This is because the file structure looks like

lib/
  cli/
  vmc/
  cli.rb
  vmc.rb

Instead, the file structure should be re-arranged to look like the standard gem structure

lib/
  vmc/
    cli/
    cli.rb
  vmc.rb

and then in order to use the cli you would do

  $ irb
  ruby > require 'vmc/cli'
   => true

Warning on install due to rubyzip2 being deprecated

Installing vmc (on a fresh OS X install) results in the following warning. This due to rubyzip2 being deprecated.

rickette-macbook:travel rickette$ sudo gem install vmc
Password:

DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED!
DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED!

 \ The rubyzip2 gem is deprecated. Instead, please use:

  * rubyzip       https://github.com/aussiegeek/rubyzip
 \ * archive-zip   https://github.com/javanthropus/archive-zip

DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED!
DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED! DEPRECATED!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.