Giter VIP home page Giter VIP logo

subutai-io / peer-os Goto Github PK

View Code? Open in Web Editor NEW
63.0 63.0 34.0 118.23 MB

Subutai is a next generation peer to peer (P2P) cloud computing and Internet of Things platform. Subutai peers collaborate and share resources to create secure virtual environments tying together the shared network and machine resources across peers.

Home Page: https://subutai.io

License: Apache License 2.0

Java 80.62% Shell 0.65% JavaScript 12.35% CSS 3.42% HTML 2.96%

peer-os's People

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

Watchers

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

peer-os's Issues

[UI] [Advanced] Karaf Console's web UI is not visible.

For replay this bug you need:

Test case

  1. Go to SS and login under any account.
  2. Go to "System Settings"->"Advanced" page.

Result: It shows the CLI console, there still is no way to get into Karaf's UI based console.

[Docker] Generating sensible icons for manifest file.

First off we need some kind of descriptive manifest file. Or we need some kind of convention to package icons in the tar ball of our images. Like a simple icon.png in the tar ball top level could be enough. This can be easily accessed from the tarball to display the icon.

This however is not the main point of this enhancement issue. The main point is to generate icons for the hundreds if not thousands of docker images we will produce from the docker integration. They will look ugly and make our UI look ugly without images. I think our docker conversion tool should add some kind of automatic google "feeling lucky" lookup on google images for a picture and use that for the template icon. This is better than no icon and it's really easy to do.
#156 @p1gmale0n ping!

Parallel import of templates

Now parallel execution of import single template can break both imports.

We need to add support of parallel import. If one import of particular template already started second should just wait it.
Different template can be imported parallel without waiting.

Looks like lock files with template name could help with solving this problem.

Agent should send execution responses

Subutai Agent should send responses every 10 seconds even if responses empty to prove that command still active.
Now Agent sends only responses with output. And if there was no any output sending responses does not work.
We need to fix it.

[Environment] Takes TOO MUCH time to load templates.

For replay this bug you need:

Test case:

  1. Go to SS and login under any account.
  2. Go to Environment page.

Result: You can't observe templates. It takes from 5-10 sec to load them it's too much. If I renew the page or move back and forth from pages it starts to load them again.

Improvement: Improve the speed and add an indicator which will show the user that templates are running.

Commit ID c6e4298

[UI] Plugins, templates, and environments, and usability.

Plugins can do anything dealing with management aspects and we have many categories of them:

  1. plugins unrelated to templates
  2. plugins that manage groups of templates (Cassandra, Elastic Search, Mongo, etc.)
  3. plugins that manage several groups of templates in a framework (Usergrid, AppScale)

To manage additional template configuration aspects it's a major PITA to have to:

  1. Create and make changes to an environment, then
  2. Go to the "Bazaar"->"Installed" area,
  3. Find your plugin to manage those templates or groups of them,
  4. Go back and manage your environment again

Once plugins are installed and if they are associated with a specific template or a set of templates to do their thing (i.e. mongo plugin), then the environment should give a cue to the user that it, or a group of it's containers can be managed by their respective plugins. The user can then easily link to the plugin's management tab and MOST IMPORTANTLY the environment can automatically be selected in the plugin's environment selector since the user's focus is already on a specific environment.

[UI] [Logs] Log file should show from the bottom and nice if it can also tail the log file.

For replay this improvement you need:

Test case

  1. Go to SS and login under any account.
  2. Go to System Settings -> Advanced -> Logs.

Improvement: The log file text display area is always displaying the top of the file which could be days old. Scrolling all the way to the end is a PITA every time. How about starting off with display text at the bottom of the file. Would also be nice to have the following features:

  • colourized logs with exceptions in RED
  • tail the log file and actively view logs as they come in
  • size control that shows red ticks for exceptions in the log

[UI] [Console] Change text color in console.

For replay this improvement:

Test case

  1. Go to Subutai server (10.10.13.126) and login under admin;
  2. Go to 'Console' page.
    Result: We see console with green text
    Improvement: We need to use light-grey color (#FAFAFA), if it is not readable use white color (#FFFFFF)

Add support of setting CPU quotas in MHz

We need to add support of setting container CPU quotas in MHz to make containers performance closer on different systems.
We can keep back compatibility with current CPU quota mechanisms using following way:

  • If received value less than 100, we assume that this value mean number of percents;
  • If received value more than 100, we assume that this value mean number of MHz.

Agent fails to reconnect after SS redeploy

Steps to reproduce:

  1. Setup peer with 2 RHs. First time after approval both agents connect normally
  2. Redeploy SS inside MH container. Agents don't reconnect until restarted. Tested on develop/devel

Docker to Subutai

Make tool to convert Dockerfile on bash script. Created script installing running all command from Dockerfile, contains and deploy attached files and convert CMD command (from dockerfile) to system service.

[UI] [Environment Manager] Usability enhancements to templates listing.

There are several issues with the templates listing in the Environment Manager:

screen shot 2016-03-07 at 9 58 41 pm

1. The listing takes forever to load because it seems to be hitting the global Kurjun every time: instead an index file is needed listing the templates and their categories that is checksummed. Instead of pulling down this file every time from Kurjun, the checksum should be compared via REST, only if different would the peer download and cache this index file. 2. The listing does not currently paginate (list large set one block of 10, 20 etc at a time): the template listing will soon be huge (perhaps 2000+) with several docker containers, and when that happens usability will drop. 3. The listing should allow the user to select from a dropdown of categories. When a category is selected it should be remembered for the user (setting kept in the user's profile). Templates in categories can be expanded to be displayed using an accordion control. 4. Also we need to find a way to display some kind of icon for templates that do not have one. On the first pass we can use a default icon when the template does not have some icon in its manifest. Might want to add such a manifest, or some kind of optional metadata to our image templates with such a field.

[UI][Environment] Containers spinner synchronization while stopping containers.

For replay this bug you need:

Test case

  1. Go to SS and login under any account.
  2. Go to Environment page and create an environment with few templates.
  3. Go to Containers page and press the stop button on containers.

Result: the button turns into a spinner showing that it is stopping, then the spinner turns back into a button but is still a stop button. After a short while the page refreshes to show the button has turned into a “start” button. As far as I can tell we are not synchronizing the spinner to confirm the actual stopping of the container. The spinner is not really giving direct feedback but is probably set to some time. The same problem is not occurring when starting.

See the following attached screen video capture of this bug:

https://www.youtube.com/watch?v=lKa-BhRQ5yI

[UI] [Monitoring] Too many values impacts usability.

For replay this improvement you need:

Test case

  1. Go to SS and login under any account.
  2. Go to Monitoring page.

Improvement: On the Monitoring graphs (i.e. disk) usability is impacted by excessive values. The popup displayed is out of control. Let's condense some of the values into rows where it makes sense. For example here:
screen shot 2016-03-07 at 9 36 26 pm

On this popup let's condense the "avialable", "used" and "total" metrics in a nice way onto a single row instead of have each one of these on its own row.

Can not execute command with agent on management container

I tried to execute /opt/subutai-mng/bin/update-management --check on management container from system-manager module.
Agent does not give response after executing command on management container:

2016-03-05 18:19:32,138 | INFO  | qtp562559869-212 | CommandProcessor                 | 199 - io.subutai.core.executor.impl - 4.0.0.RC7-SNAPSHOT | Sending:
{
  "request": {
    "type": "EXECUTE_REQUEST",
    "id": "",
    "commandId": "fcbe2b4e-c924-4606-b8bc-a0bacdee912d",
    "workingDirectory": "/",
    "command": "/opt/subutai-mng/bin/update-management --check",
    "stdOut": "RETURN",
    "stdErr": "RETURN",
    "runAs": "root",
    "timeout": 30,
    "isDaemon": 0,
    "pid": 0
  }
}

How to reproduce:

  1. to execute command in karaf console:
localpeer:check-update-management

Tried execute command on management container manually on terminal, it is works fine

Implement simple REST trigger for Subutai Agent

Due to migration from MQTT to REST interconnection between SS Management and Agent, we are decided to implement simple trigger for forcing requests.

Agent listening 7070 tcp port for following REST calls:

Agent receives requests only from management host specified in agent.gcfg:

[management]
host = 10.10.10.1

Agent should be configured for rate limit of requests: 5 in 10 seconds.

Fix crash of Subutai Agent on stats call

Subutai Agent sometimes crashes on call stats binding if InfluxDB inaccessible or database empty.
We need to find a way to prevent crashes in these cases.
Subutai Agent could use local data if remote db inaccessible or get this data from Subutai Agent daemon.

[UI] [Environment] Templates don't provide any information for users.

For replay this improvement you need:

Test case

  1. Go to SS login page and login under any account.
  2. Go to 'Environment' page.

Result: User can observe templates but can not understand what does this templates mean.
Improvement: Should add more information about each template.

Implement log error subscription service

Since appender must load in the very beginning of Karaf boot up we can not use other modules like Hub module in it. WE need to make subscription(observer) so that interested modules will get notified about error logs.

[UI] [User management] Tab doesn't work.

For replay this bug you need:

Test case

  1. Go to SS and login under any account.
  2. Go to User management page -> Create user.
  3. Type your name and click on Tab to move to next field.

Result: it doesn't move. Tab doesn't work.
screenshot from 2016-03-09 09 51 02

Add support of setting single disk quota for whole container

Now we need to set separate quotas for rootfs, home, opt and var subvolumes.
Setting single disk quota for all subvolumes can give us more understandable format of containers.

Following command should set 4GB disk quota for container "cname":
subutai quota cname disk -s 4

This implementation should be back compatible with previous methods, until we get rid of them.

Cannot configure domain on container

Seems like UI bug, blocks reverse proxy functionality tests. How to reproduce:

  1. Create local environment
  2. Configure domain on this environment
  3. Go to the containers tab and click on "Configure" button in "Domain" row for this environment. Nothing will happen, error in karaf log will appear:
2016-02-15 08:27:51,590 | INFO  | qtp154595423-300 | CommandProcessor                 | 140 - io.subutai.core.executor.impl - 4.0.0.RC6 | Sending:
{
  "request": {
    "type": "EXECUTE_REQUEST",
    "id": "20BFBE7936C3DCC9F12EE90E4CE8E1A0C44A8028",
    "commandId": "70a75bda-266a-47b0-a8fd-560897048c9d",
    "workingDirectory": "/",
    "command": "subutai proxy",
    "args": [
      "check",
      "100",
      "-h",
      "192.168.1.2"
    ],
    "stdOut": "RETURN",
    "stdErr": "RETURN",
    "runAs": "root",
    "timeout": 30,
    "isDaemon": 0,
    "pid": 0
  }
}
2016-02-15 08:27:51,852 | INFO  | ://localhost#2-9 | CommandProcessor                 | 140 - io.subutai.core.executor.impl - 4.0.0.RC6 | Received:
{
  "response": {
    "type": "EXECUTE_RESPONSE",
    "id": "20BFBE7936C3DCC9F12EE90E4CE8E1A0C44A8028",
    "commandId": "70a75bda-266a-47b0-a8fd-560897048c9d",
    "pid": 0,
    "responseNumber": 1,
    "stdErr": "time\u003d\"2016-02-15 06:27:51\" level\u003dinfo msg\u003d\"[Node is not in domain]\" \n",
    "exitCode": 1
  }
}


2016-02-15 08:27:51,855 | ERROR | qtp154595423-300 | JAXRSUtils                       | 55 - org.apache.cxf.cxf-rt-frontend-jaxrs - 3.1.0 | No message body writer has been found for class java.lang.Boolean, ContentType: application/json

[Console] Tips on timeout and daemon.

For replay this improvement you need:

Test case

  1. Go to SS and login under any account;
  2. Go to 'Console' page.
    Result: We can observe timeout and daemon features, but user may not know what does that mean.
    Improvement: we need to have tips on them.

[UI] Hub notification control button's link should point to your peer link in the Hub.

For replay this improvement you need:

  1. Go to SS and login under any account.
  2. Click on menu icon 'Register peer' and register peer.
  3. When it'll change to 'Online' click on it again.

Improvement: Instead of the link "Go to Hub" taking you to just the Hub, it should take you to your peer's page on the Hub if registered with the Hub. Otherwise it can just take you to the Hub as it does now.

screen shot 2016-03-07 at 9 14 01 pm

Tips on timeout and daemon.

For replay this improvement you need:

Test case

  1. Go to Subutai server and login under any account.
  2. Go to 'Console' page.
    Result: We see timeout and daemon features, but user may not know what does that mean.
    Recommendation: we need to have tips on them.

[UI] [Containers] Add autostart checkbox.

For replay this improvement you need:

Test case

  1. Go to SS and login under any account.
  2. Go to Containers page.

Improvement: Right now after a restart none of the containers that were running in an environment start up automatically, even if running when the RH is power cycled. We need an autostart checkbox option for each container listed in the environment which signals that the RH should start the container up after it is power cycled.

screen shot 2016-03-07 at 9 44 58 pm

Also an autostart checkbox option for the entire environment should be added. It's behavior should be as follows:

  1. When checked it sets all container autostart checkboxes to checked for all containers
  2. When unchecked it sets all container autostart checkboxes to unchecked
  3. When even one container autostart checkbox is unchecked, the environment autostart checkbox is set to unchecked

[UI] [Share env] It is not clear what steps are required from user.

For replay this issue you need:

Test case

  1. Go to SS server and login under any account.
  2. Go to Environment page,
  3. Press 'share' button on created env.
    Result: It is not clear what steps are required from user
    Improvements: add arrows close to users, so individual using SS will understand what steps are required from him.

Execute key exchange command on first Subutai initalization

In order to enable execution of commands on MH we need to explicitly execute
"subutai import management -t {token}" on RH with MH one time during initializaiton of local peer.
Make sure command has succeeded otherwise retry with intervals until it succeeds

Update information in README.md

How about requirements on the system to make that work?
How does this get used?
How can it be put into a management template?

[UI] [Advanced] Karaf console authentication is different and preserved across SS authentications.

For replay this bug you need:

Test case

  1. Go to SS and login under any account.
  2. Go to "System Settings"->"Advanced"->"Console" page.

Result: When landing for the first time there the user is presented with a HTTP domain based authentication window:
screen shot 2016-03-07 at 9 31 41 pm

This authentication method needs to go away. The user authenticating into SS and having the permissions to access this console should be enough. The authentication not be integrated with SS security is creating issues for us like:

  • usability with a second log in when not required
  • when you log back out and log back in as another user it still seems to be available (security issue here)

Fix bug with cloning non Ubuntu container

We have added new non ubuntu base template - Debian.
This template does not includes some files, that need to be changed during clone operation. As a result of it we have following error that prevents successfully finish clone operation:

(amd64)root@rh1456988805:~# subutai clone debian qqq
INFO[2016-03-03 07:08:02] [Importing debian]                           
INFO[2016-03-03 07:08:05] Connecting to local Kurjun, dial tcp 10.10.10.1:8551: i/o timeout 
INFO[2016-03-03 07:08:08] [Downloading debian]                         
INFO[2016-03-03 07:08:09] [Unpacking template debian]                  
INFO[2016-03-03 07:08:10] [Installing template debian]                 
ERRO[2016-03-03 07:08:15] Writing resolv.conf, open /mnt/lib/lxc/qqq/rootfs/etc/resolvconf/resolv.conf.d/original: no such file or directory

We need to pass non critical error to make successful clone.

[UI] [Environment] Can duplicate the name of environment.

For replay this bug you need:

Test case

  1. Go to SS server and login under any account.
  2. Create environment with default name 'Environment name'.
  3. Create environment with default name 'Environment name'.

Result: you can observe two environments with the same name.

[UI] [Monitoring] Selector has unnecessary empty option with check in it.

For replay this bug you need:

Test case

  1. Go to SS and login under any account.
  2. Go to Environment and create simple environment.
  3. Go to Monitoring -> Environment tab.
  4. In selector chose the name of created environment -> click on appeared selector with empty name.

Result: You can observe that the first row is empty.

screen shot 2016-03-07 at 9 42 19 pm

Errors when running subutai from unprivileged user

When running subutai command on behalf on unprivileged user I can see huge error dump in output, instead of one line message about requirements of root privileges.
I've noticed this when was running the following commands:

subutai list -i
subutai start management

[UI] [Create user][Password] Should add the input description.

For replay this improvement you need:

Test case

  1. Go to SS and login under admin account.
  2. Go to User management page and click on 'Add user'.
  3. Fill out 'Create user' fields and put in the password 'secret' and click 'Save user'.

Result: You can observe Error message.
Improvement: Should add option to check symbols which helps user create password.

capture-for-jira-screenshot-20160223-222619-384

CLI destroy operation should cleanup everything after container.

We need to make CLI destroy operation workable even if container broken:

(amd64)root@rh1456988805:~# subutai -d destroy www
ERRO[2016-03-03 09:45:11] [www doesn't exist]                          
(amd64)root@rh1456988805:~# ls -l /mnt/lib/lxc/www/
total 12
-rw-r--r-- 1 root   root    258 Mar  3 09:37 defaults
-rw-r--r-- 1 root   root      0 Mar  3 09:37 fstab
drwxr-xr-x 1 131073 131073   14 Mar  3 07:08 home
drwxr-xr-x 1 131073 131073    0 Dec 16  2014 opt
-rw-r--r-- 1 root   root    623 Mar  3 09:37 public.pub
drwxr-xr-x 1 131072 131072  166 Mar  3 07:08 rootfs
-rw------- 1 root   root   1312 Mar  3 09:37 secret.sec
drwxr-xr-x 1 131073 131073   90 Mar  3 07:08 var

This binding should cleanup everything related to container, without check if container valid.

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.