Giter Site home page Giter Site logo

jeto's People

Contributors

abondis avatar calystod avatar pierrepaul avatar vevmesteren avatar

Stargazers

 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

jeto's Issues

Support instance metadata from JSON file.

Support getting the metadata for an instance from a JSON file in its directory. The file could be named jetofile.json or simply jeto.json.

The following properties of a instance could be in this file

  • Project

Additionally, it would be nice to have the following properties supported and displayed in the UI

  • Version
  • Description

The following properties are instance specific and should always be specified when creating an ew instance

  • Host
  • Environment

Pass jeto.json values to vagrant

that would permit to use for example the version number in the provisioning

workaround, in the Vagrantfile

require 'json'
jeto_file = File.read('jeto.json')
jeto_infos = JSON.parse(jeto_file)

Desktop notification

Not sure if it's doable, but that would be cool if the browser could notify when a provisioning is done.

status doesn't send environment

if a Vagrantfile has two machines, one only beeing created in a specific environment, the status only shows one machine.
worker.py +274:
def status(path, host):
models/vagrant.py +150

Link project to domain

Domains should be linked to project, so they can be set from the instance interface (when the instance is up).

Bad sanitizing on project admin save

When saving for a new git_address, the values are not (or poorly) sanitized.
In my a case a < br /> was added at the end, breaking the refresh on the git_references on this project.

Sync button

When using git to create the project, a "sync" button would be nice. If the instance is created from a branch, it should sync the data with the git server.

Refactoring live events

Right now live events/console works, but they are binded to a user (via the job id). Events should be bound to instances and, optionally, bound to users. Like this, everyone would be able to see events on each instances going on at all times.

Instance creation process UI idea

Creating a new machine in Jeto is a breeze.
A nifty little feature when in the "Create a new machine" form, would be to add a checkbox next to the "Create" Button that not only creates the machine, but takes me to the next screen and starts the vagrant up / provision process.
Either a checkbox, or a second button "Create & Start". UX skills anyone?

Infinite load of a instance page

When visiting an instance page, the loader is displayed for ever without any other kind of feedback.

If I open the the JavaScript console, I can that a request to /api/instance/{id} failed with a 502 error. But the UI does not provide any feedback. Please add error handling to at least let the user known when something went wrong without requiring her to work with an open JavaScript console.

'destroy' button

it could be usefull to have a 'destroy' button, so we could recreate the whole instance without having to remove it and configure a new one.

Open the API

Jeto should be able to generate a Token for a specific user. Using this token the user should be able to make request to Jeto like in the interface.

proxy pass uses http

if the host beeing proxied has https setup, the proxy still uses http:

upstream myupstream {
    server 10.0.3.111:443;
}
server {
    listen 443;
    ...
    location / {
        proxy_pass http://myupstream
    }
    ...
}

which gives "The plain HTTP request was sent to HTTPS port"

Task timeout is too small

When using external provider like vmware or amazon, a vagrant up can take up to ten minutes (and the provision didnt run yet). We need to raise the timeout.

Can't edit params on host

After doing an edit on the params of a host, the params gets saved with
,

etc.
Params needs to be cleaned properly.

API Documentation

Please provide a documentation of Jeto's (or it components') public REST APIs (ie. those usable by external applications to automate deployment).

Support execution of scripts in an instance

Add support for executing pre-defined, named scripts inside an instance, fron the UI. This is not to be used for provisioning (ie. provisioning of he instance should be done using Vagrant provisioning), but rather for scripts that an administrator may want to run manually on a machine. The script could be run using the vagrant ssh -c "$SCRIPT".

For instance, being able to run the following kind of scripts from the UI would be nice:

  • Extraction of a DB dump
  • Execution of a cleanup method

Scripts could be specified per-instance. Either from the UI, or using a JSON file (see #8). With the later being able to have something like the following in a JSON would be great:

{
  ...
  "scripts": {
    "database-dump": "/vagrant/src/scripts/dbdump.sh"
    "database-cleanup": "cd /vagrant/src/cleanup && npm start"
  }
  ...
}

Lock button

a button to lock an instance in the state it is, so nobody but me can act on it, or at least other users would have to unlock the machine on purpose.
for example:
I start a machine that will be the production DB, I would like to make sure it is not destroyed by mistake. I could lock the machine, so if someone wants to destroy it, they would have to go into the instance details, unlock and delete. This would ensure this precious instance would not have been deleted by inadvertently clicking "destroy" + "yes" without looking at the machine's name.

Instance activitiy log

It should be possible to read logs of previous provisioning activity, when accessing the instance screen

Status: index out of range

in the loop models/vagrant.py:194 item is sometimes empty so -1 gives an 'index out of range'
maybe item[-1:] could work

        for result in results:
            result = result.replace('\', ' ')
            if ',' in result and len(item) > 0:
                formatted.append(item)
                item = []

            if ',' in result:
                try:
                    item = result.split(',')
                    item[-1] = item[-1].replace('%!(VAGRANT_COMMA)', ',')
                    formatted.append(item)
                except:
                    app.logger.debug("INDEX OOR: exception {}".format(item))
            else:
                try:
                    result = result.replace('%!(VAGRANT_COMMA)', ',')
                    item[-1] = item[-1] + result
                except:
                    app.logger.debug("INDEX OOR: exception{}".format(item))

Vagrant worker error are not reported back to the user

In addition to not letting the user known something went wrong (see #52), error in vagrant worker are not forwarded to the client, so the user has not way of knowing if she did something wrong or if there is a bug in Jeto, which make usage of Jeto quite uncomfortable.

Make the log/console window taller, or at least resizeable

Make the log/console window taller, or at least realizable. When launching a machine with provisioning, the console is uncomfortable to use because it only display about 6 lines of text.

Niceties:

  • Use a mono-spaced font
  • Keep a small ~6 lines box bu default, extend it ot a taller box when the output grow larger.

Launch button!

We should be able to launch a full jeto instance with all apis on either heroku or amazon ec2. From a single button.

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.