Giter Club home page Giter Club logo

tsuru's Issues

Makefile

Um Makefile/Rakefile para o projeto.

if the target is down, cmd crashes

./main login [email protected]
Password: 

panic: runtime error: invalid memory address or nil pointer dereference
[signal 0xb code=0x1 addr=0x10 pc=0x1c676]

goroutine 1 [running]:
github.com/timeredbull/tsuru/cmd.(*Client).Do(0xf84008b388, 0xf84009b000, 0x0, 0x0, 0x0, ...)
    /Users/f/gocode/src/github.com/timeredbull/tsuru/cmd/client.go:28 +0xf2
github.com/timeredbull/tsuru/cmd.(*Login).Run(0xf84008b348, 0xf8400788c0, 0xf840071c90, 0xf84008b388, 0x0, ...)
    /var/folders/cb/8tl48y251cb56sfkfnj7gvmh0000gq/T/go-build687700959/github.com/timeredbull/tsuru/cmd/_obj/auth.cgo1.go:122 +0x2fd
github.com/timeredbull/tsuru/cmd.(*Manager).Run(0xf840078500, 0xf840077bf0, 0x100000001, 0xf84008b378)
    /Users/f/gocode/src/github.com/timeredbull/tsuru/cmd/cmd.go:46 +0x484
main.main()
    /Users/f/gocode/src/github.com/timeredbull/tsuru/cmd/main.go:22 +0x36c

goroutine 2 [syscall]:
created by runtime.main
    /Users/f/lib/go/src/pkg/runtime/proc.c:221

Here is the broken code: https://github.com/timeredbull/tsuru/blob/master/cmd/client.go#L27

In Go, a _ is a code smell :)

update all teams with new apps/keys

When a user is in two teams and he/she creates an app, tsuru should add a writable option in both teams, but it only created it to the last added team.
It also happens when adding a key.

cmd: hide password

user create and login commands display the password in plain-text mode. We should hide this:

How is it today:

% glb user create [email protected] 123 

How it should be:

% glb user create [email protected]
Password: 
User created

The password should not appear, as in shell login.

intermitent test

The tests in gitosis package are intermitent, because of the agent. The agent concurrently writes to gitosis.conf and commits and pushes to the repository, and there is a race.

Before any action, I prefer to enumerate the possible actions:

  • separate the agent in another package, that writes to another git repository
  • synchornize writes to the git repository
  • improve tests to not write in the git repository, running faster and avoiding races

I prefer the third option, but I'm not sure yet how to do this.

cmd/tsuru: info

it should be possible see the information of an app. Like name, state, ip and teams.

cmd: remove team

It should be possible remove a team via command line:

$ glb team remove teamname
Team "teamname" remove with success!

cmd: run

the user should be able to run a command locally in the app unit.

Should deal with euca2ools errors

Tsuru is always expecting a happy ending, but if something goes wrong, it simply ignores the error and returns success to the end user. We should fix this.

cmd: env-set and env-get

Should have a command to export (write in /etc/profile) and retrieve environment variables in app/service's units.
Maybe a bulk export would also be good, something like pass a file to env-set.

cmd: bind service

It should be possible bind an app with a service via command line

Improve output of CloneRepositoryHandler

This handler only return success or the error's code, should return the git clone's output, this way the user can have a better understanding of what is really happening.

cmd: add support to multiple targets

it should be possible to change the default target via the command line:

% glb target
tsuru.plataformas.glb.com
% glb target my.server.me
% glb target
my.server.me

The target can be stored in the $HOME/.tsuru_target file (as in CloudFoundry).

cmd: when a subcommand does not exist, manager panics

% tsuru env something-that-does-not-exist
panic: interface conversion: *cmd.Env is not cmd.Command: missing method Run

goroutine 1 [running]:
github.com/timeredbull/tsuru/cmd.(*Manager).Run(0xf84009c640, 0xf840077020, 0x100000001, 0xf84008b008)
    /Users/f/gocode/src/github.com/timeredbull/tsuru/cmd/cmd.go:47 +0x43f
main.main()
    /Users/f/gocode/src/github.com/timeredbull/tsuru/cmd/main.go:23 +0x34d

goroutine 2 [syscall]:
created by runtime.main
    /Users/f/lib/go/src/pkg/runtime/proc.c:221

goroutine 3 [chan receive]:
github.com/timeredbull/tsuru/api/app.collectEnvVars()
    /Users/f/gocode/src/github.com/timeredbull/tsuru/api/app/env.go:120 +0x43
created by github.com/timeredbull/tsuru/api/app.init·1
    /Users/f/gocode/src/github.com/timeredbull/tsuru/api/app/env.go:42 +0x1f

goroutine 4 [chan receive]:
github.com/timeredbull/tsuru/api/app.runCommands()
    /Users/f/gocode/src/github.com/timeredbull/tsuru/api/app/env.go:47 +0x4c
created by github.com/timeredbull/tsuru/api/app.init·1
    /Users/f/gocode/src/github.com/timeredbull/tsuru/api/app/env.go:43 +0x2d

REST API

We need a rest api that responds to to cloudfoundry's api.

Deploy only reloads app

Tsuru be more flexible after deploying an app, sometimes the user only needs a reload, sometimes, he/she needs a restart.
We should provide a way to the user decide whether he/she wants a reload or a restart an app after deploying.

when deploying, Python warnings pollute the output

% git push [email protected]:xikin.git master
Initialized empty Git repository in /mnt/repositories/xikin.git/
Counting objects: 45, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (43/43), done.
Writing objects: 100% (45/45), 6.42 KiB, done.
Total 45 (delta 20), reused 0 (delta 0)
remote:   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
remote:                                  Dload  Upload   Total   Spent    Left  Speed
remote: 103  1558    0  1558    0     0    277      0 --:--:--  0:00:05 --:--:--   433
remote: /usr/lib/python2.6/site-packages/juju/providers/ec2/files.py:8: DeprecationWarning: the sha module is deprecated; use the hashlib module instead import sha
2012-06-27 11:24:24,524 WARNING ssl-hostname-verification is disabled for this environment
2012-06-27 11:24:24,524 WARNING EC2 API calls not using secure transport
2012-06-27 11:24:24,524 WARNING S3 API calls not using secure transport
2012-06-27 11:24:24,525 WARNING Ubuntu Cloud Image lookups encrypted but not authenticated
2012-06-27 11:24:24,526 INFO Connecting to environment...
2012-06-27 11:24:25,147 INFO Connected to environment.
2012-06-27 11:24:25,252 INFO Coremote:  Initialized empty Git repository in /home/application/current/.git/
To [email protected]:xikin.git
 * [new branch]      master -> master

Should be possible to run pre/pos deploy commands

The user should have a way to run commands right before restart runs on the app's unit, and right after it.
The app should have an app.conf file, with two sections:

pre-restart:
    scripts/submodules.sh
pos-restart
    scripts/dunno.py

These paths points to executable files, that should be versioned with the app (as the app.conf), and should be executed in the described moments.

.tsuru_token

Theres a error when trying to create a user.

open ~/.tsuru_token: no such file or directory

Should not check this file at this moment.

Should record unit informations

And every app/service should have an associated unit. Also, the collector should update the unit instead of the app/service itself.

Collector doesn't update vm's state when vm is terminated

When we manually terminate an app's vm, its state is not updated by collector because when it runs juju status the vm is not in the retrieved list. Collector should be smart enough to see that, and mark the vm with a different state.

The state may be something like deleted or terminated.

cmd: remove user

It should be possible remove a user via command line:

$ glb user remove username
User "username" removed with success!

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.