5 Replies Latest reply on Dec 28, 2011 7:59 AM by j2d

    BoxGrinder IDE development

    taha.ozket

      Hi,

       

      I have an experince on Eclipse IDE development. I want to contribute BoxGrinder IDE project. I contacted with Marek Goldmann. We discussed on this project. I am sending my maillings for your opinions.

       

      ------

      I want to contribute open source world with your BoxGrinder IDE project personally. I want to ask, is there any developer reference for BoxGrinder Studio or IDE? Any UML diagrams or screen sketches? If there is nothing, I can start without them, no problem, I can make a poc work for BoxGrinder IDE then I send source to you after that I get your opinions then we can continue over them.

       

      For IDE prototype; I have a some ideas; I want to share with you. I think create a layer on top of BoxGrinder Build is not an good option, IDE has to be different connection definitions and user select Build server then manage this. (over REST)

       

      Did you use Apache Directory Studio? I have an idea like this studio, it is connecting to LDAP server, then getting ldap tree for modifying/adding ldap entries. Like this; we can connect IDE to BoxGrinder REST server. BoxGrinder Rest server does not only responses REST requests. Can we store appliance templates on this server? IDE connects to this server, then get appliance templates, then developer can create appliance from this templates. Or create template from scratch, for this we provide a template editor/wizard to developer. After create an appliance then connect developer to created appliances over ssh terminal, monitor appliances (cpu, memory vs), convert appliances, etc.

       

      There is an architectural question about BoxGrinder REST; will this server only responses REST requests and queue build tasks? Can we store appliance templates and IDE required data? Or add a new server type on BoxGrinder, like ManagementServer (?) for this requirement. I am sending two different arch. designs. If we store appliance definitions on any server, I think it will the best benefit for developer.

       

      Creating a studio on the web a good option, but desktop IDE must I cant use VMware web app, a.js, b.js and another new js! and new errors.. I am using desktop vsphere client and also I hate amazon aws web app, it is very slow and useless. If I can connect over desktop, I will choose desktop one. I think todays web browsers (include chrome) not ready for ultra powerful  web applications. (like server management).

       

      For future; users will manage IaaS layer with this IDE. This IDE will an eclipse plugin, so that for PaaS solutions (ex. makara) can easily extend this plugins and use this IDE for PaaS requirements. Then extend plugin for SaaS. Developer developes the code, right click select Platform (managed via IDE) select Infra. (managed via same IDE!) then deploy to cloud. It will very easy

       

      I have a draft plan, I want to share this plan with you;

       

      Step 1- I want to create a prototype for see what can we do on Eclipse. I dont want to start any forum thread without coding anything (But I started for your opinions.-- taha ) For that, I wont wait for REST project, I will use boxgrinder build locally.

       

      For prototype I have a feature list;

       

      -- Wizards

      --- Create appliance definition wizard

      -- Editors

      --- Appliance definition (modify,delete,override etc)

      -- Configuration

      --- BoxGrinder Plugin Configuration Screens (amazon keys, etc)

      -- Run Configurations

      --- Build Image

      --- Convert Image

      --- Deploy Image

      -- "My Appliances"

      --- List created appliances for connect over ssh.

       

      Step 2 - Create a new thread on forums. I will publish source code and features for get community opinions.

       

      Step 3 - I think Local IDE will be good start point for next steps. Also I think this prototype will help BoxGrinder Studio project about requirements.

       

      This work can be only a start point, we put this IDE to trash and continue with Studio But today someone has to be start work on something for user interface of BoxGrinder. I think BoxGrinder is the best and simple tool for cloud world and have new ideas for this new world (convert vm). I want to help BoxGrinder for move next good step.

        • 1. BoxGrinder IDE development
          bfulton

          If there are templating constructs that would increase the power of appliance definitions, I'd prefer to see them introduced to the core structures instead of a different project.  As for editing appliance definitions, I'm pretty happy with the YAML mode and VCS integration in my IDE, so a wizard backed by custom storage sounds unappealing.  Might try a plugin that provides BG-specific syntax highlighting, warnings, refactorings.

           

          As for running builds, wouldn't tight Ant/Maven/Gradle/Rake integration be the fastest path to allowing people to leverage their existing build systems?

          • 2. Re: BoxGrinder IDE development
            taha.ozket

            Hi,

             

            Thanks for your suggestions. After posting forum thread, I started to coding eclipse plugin and now sending some screenshots of IDE.

             

            Appliance Editor

            http://oi56.tinypic.com/281zv41.jpg

             

            YAML Editor

            http://i53.tinypic.com/2nsxob8.png

             

            Build Progress

            http://i55.tinypic.com/1zztvn.png

             

            New Appliance

            http://i54.tinypic.com/raw6so.png

             

            BoxGrinder Preferences

            http://i51.tinypic.com/nx8awz.png

             

            These screenshots covers following bold ones;

            -- Wizards
            --- Create appliance definition wizard
            -- Editors
            --- Appliance definition (modify,delete,override etc)
            -- Configuration
            --- BoxGrinder Plugin Configuration Screens (amazon keys, etc)

            -- Run Configurations

            --- Build Image

            --- Convert Image

            --- Deploy Image

            -- "My Appliances"

            --- List created appliances for connect over ssh.

            and new features -forum post suggestions- YAML Editor and VCS Integration

             

             

            ps. I have some problems with running boxgrinder locally as sudo inside eclipse (now I am running boxgrinder with wheel group user with nopass). When I fix this problem, I will share plugin codes.

            • 3. Re: BoxGrinder IDE development
              goldmann

              This looks very nice, especially the Appliance Definition editor!

               

              One comment re BoxGrinder configuration:

               

              It would be good to use a tree structure in BoxGrinder configuration. In root you could have general BoxGrinder configuration, then a "Plugins" section under "BoxGrinder" and under Plugins section plugin name (for example "S3") with configuration for this selected plugin. WDYT?

                ps. I have some problems with running boxgrinder locally as sudo inside eclipse (now I am running boxgrinder with wheel group user with nopass). When I fix this problem, I will share plugin codes.

              Yes, you need to add your user to wheel group or alernatively add this line using visudo:

               

              goldmann        ALL=NOPASSWD: /usr/bin/boxgrinder-build
              

               

              Replacing "goldmann" with your username. I'll add this to FAQ.

               

              Thank you!

              • 4. Re: BoxGrinder IDE development
                taha.ozket

                Thanks for your response.

                 

                It would be good to use a tree structure in BoxGrinder configuration. In root you could have general BoxGrinder configuration, then a "Plugins" section under "BoxGrinder" and under Plugins section plugin name (for example "S3") with configuration for this selected plugin. WDYT?

                 

                You are right. I am reorganizing Preferences page. I will use tree style menu and detail page.

                 

                Yes, you need to add your user to wheel group or alernatively add this line using visudo:

                 

                goldmann        ALL=NOPASSWD: /usr/bin/boxgrinder-build

                 

                Replacing "goldmann" with your username. I'll add this to FAQ.

                 

                This solved my problem. Thanks!

                 

                Also there is a good progress about plugin. I want to share this with you; Eclipse has a RCP/RAP concept. You develop a plugin with SWT for desktop and then you can reach this plugin on web with RAP. [1] I was hopeless about this concept for BoxGrinder IDE. But I tried today and yes! It can be open under web. It is not need any changes. RAP is using equinox OSGI container and jetty bundle for serving web pages. It is using qooxdoo js framework for generating visual items on web. It can be deploy on jetty (or another servlet container) with war package. I am sending screenshots of Appliance Editor on web browser.

                 

                Appliance Editor (Firefox)

                http://i56.tinypic.com/29uw2t4.png

                 

                [1] http://www.eclipse.org/rap/

                • 5. Re: BoxGrinder IDE development
                  j2d

                  I find this interesting.

                  Is there a beta version of this IDE currently available ? If not, when is it expected?