Re: Example code for GUI

2013-05-17 Thread Mike Tutkowski
Yes, Pranav, that makes sense - thanks for that info!


On Fri, May 17, 2013 at 7:30 PM, Pranav Saxena wrote:

> I am assuming that when you make the changes in the UI code , then you
> probably build them using (mvn -P developer -pl :cloud-client-ui
> -DskipTests=true ) . This would only copy your changes to the server
> without having to stop the jetty . Once your changes are copied to the
> server and then , when you refresh your browser , that is the time the JS
> is loaded into the browser and in case it's got any compilation errors it
> would reflect in the Firebug console  . It's not about triggering a
> particular function on clicking something but the compilation is done for
> the JS file as a whole unless you have errors in which the response from
> the API is undefined or something. In this case it would throw an error
> when you perform that particular action . To summarize ,the widget /front
> end code is compiled as a whole entity .
>
> Hope you got my point here.
>
> Thanks,
> Pranav
>
> -Original Message-
> From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> Sent: Saturday, May 18, 2013 6:53 AM
> To: Pranav Saxena
> Cc: dev@cloudstack.apache.org
> Subject: Re: Example code for GUI
>
> So, Pranav, I'm curious when (and how) these JavaScript files get
> interpreted (or compiled). I noticed the code where I was missing a comma
> was related to a dialog that I never tried to open (wasn't able to get that
> far) yet the entire Service Offerings tab was not rendered.
>
> It looks like the JIT compiler encountered my code quite early (even
> though it wasn't actively being executed) and generated the problem. Are
> these JS files loaded at a single time and really compiled or are they just
> syntax checked and then later interpreted?
>
> Thanks!
>
>
> On Fri, May 17, 2013 at 7:15 PM, Pranav Saxena  >wrote:
>
> >  So yes , you are right . If you encounter something like this , it
> > indicates a JS compilation error which can be easily traced using
> > Firebug console . It would show you the exact line number where the
> > compilation error occurred . 
> >
> > ** **
> >
> > *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> > *Sent:* Saturday, May 18, 2013 3:15 AM
> > *To:* Pranav Saxena
> > *Cc:* dev@cloudstack.apache.org
> >
> > *Subject:* Re: Example code for GUI
> >
> > ** **
> >
> > Once I found the JavaScript Console in Chrome, it was easy to
> > determine I was missing a comma in one place. It works as expected
> > now. :)
> >
> > ** **
> >
> > On Fri, May 17, 2013 at 3:19 PM, Mike Tutkowski <
> > mike.tutkow...@solidfire.com> wrote:
> >
> > I found the JavaScript Console in Chrome. I've been doing Java for
> > over 15 years, but am still pretty new to JavaScript. :)
> >
> > ** **
> >
> > On Fri, May 17, 2013 at 2:37 PM, Mike Tutkowski <
> > mike.tutkow...@solidfire.com> wrote:
> >
> > Pranav - Quick question for you (or, of course, anyone else who might
> > know):
> >
> > ** **
> >
> > I've made some changes to the JavaScript and rebuilt the system.
> >
> > ** **
> >
> > When I log into the GUI and look down at the Service Offerings tab at
> > the bottom left, there is an icon, but no text. If I click on it,
> > nothing is displayed. :) I'm not that familiar with JavaScript
> > debugging. What do you suggest I do in such a situation to debug the
> > problem? I've read and re-read my code looking for simple syntax
> > errors and such, but don't see any. I did update from master this
> > morning, so hopefully this is not just a problem that's in master at
> > the time being and I didn't notice it until I made my changes.
> >
> > ** **
> >
> > Thanks!
> >
> > ** **
> >
> > On Fri, May 17, 2013 at 8:24 AM, Mike Tutkowski <
> > mike.tutkow...@solidfire.com> wrote:
> >
> > Thanks, Pranav!
> >
> > ** **
> >
> > On Thu, May 16, 2013 at 11:20 PM, Pranav Saxena
> > 
> > wrote:
> >
> > So within this block  , you could use anyone of the exception handling
> > mechanisms as shown below - 
> >
> >  
> >
> >
> >   $.ajax({
> >  url:'API CMD',
> >  data:data ,
> >   success:function(args){
> >  args.response.success();
> >
> >         },
> >
> >
> 

RE: Example code for GUI

2013-05-17 Thread Pranav Saxena
I am assuming that when you make the changes in the UI code , then you probably 
build them using (mvn -P developer -pl :cloud-client-ui -DskipTests=true ) . 
This would only copy your changes to the server without having to stop the 
jetty . Once your changes are copied to the server and then , when you refresh 
your browser , that is the time the JS is loaded into the browser and in case 
it's got any compilation errors it would reflect in the Firebug console  . It's 
not about triggering a particular function on clicking something but the 
compilation is done for the JS file as a whole unless you have errors in which 
the response from the API is undefined or something. In this case it would 
throw an error when you perform that particular action . To summarize ,the 
widget /front end code is compiled as a whole entity . 

Hope you got my point here. 

Thanks,
Pranav

-Original Message-
From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com] 
Sent: Saturday, May 18, 2013 6:53 AM
To: Pranav Saxena
Cc: dev@cloudstack.apache.org
Subject: Re: Example code for GUI

So, Pranav, I'm curious when (and how) these JavaScript files get interpreted 
(or compiled). I noticed the code where I was missing a comma was related to a 
dialog that I never tried to open (wasn't able to get that
far) yet the entire Service Offerings tab was not rendered.

It looks like the JIT compiler encountered my code quite early (even though it 
wasn't actively being executed) and generated the problem. Are these JS files 
loaded at a single time and really compiled or are they just syntax checked and 
then later interpreted?

Thanks!


On Fri, May 17, 2013 at 7:15 PM, Pranav Saxena wrote:

>  So yes , you are right . If you encounter something like this , it 
> indicates a JS compilation error which can be easily traced using 
> Firebug console . It would show you the exact line number where the 
> compilation error occurred . 
>
> ** **
>
> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> *Sent:* Saturday, May 18, 2013 3:15 AM
> *To:* Pranav Saxena
> *Cc:* dev@cloudstack.apache.org
>
> *Subject:* Re: Example code for GUI
>
> ** **
>
> Once I found the JavaScript Console in Chrome, it was easy to 
> determine I was missing a comma in one place. It works as expected 
> now. :)
>
> ** **
>
> On Fri, May 17, 2013 at 3:19 PM, Mike Tutkowski < 
> mike.tutkow...@solidfire.com> wrote:
>
> I found the JavaScript Console in Chrome. I've been doing Java for 
> over 15 years, but am still pretty new to JavaScript. :)
>
> ** **
>
> On Fri, May 17, 2013 at 2:37 PM, Mike Tutkowski < 
> mike.tutkow...@solidfire.com> wrote:
>
> Pranav - Quick question for you (or, of course, anyone else who might
> know):
>
> ** **
>
> I've made some changes to the JavaScript and rebuilt the system.
>
> ** **
>
> When I log into the GUI and look down at the Service Offerings tab at 
> the bottom left, there is an icon, but no text. If I click on it, 
> nothing is displayed. :) I'm not that familiar with JavaScript 
> debugging. What do you suggest I do in such a situation to debug the 
> problem? I've read and re-read my code looking for simple syntax 
> errors and such, but don't see any. I did update from master this 
> morning, so hopefully this is not just a problem that's in master at 
> the time being and I didn't notice it until I made my changes.
>
> ** **
>
> Thanks!
>
> ** **
>
> On Fri, May 17, 2013 at 8:24 AM, Mike Tutkowski < 
> mike.tutkow...@solidfire.com> wrote:
>
> Thanks, Pranav!
>
> ** **
>
> On Thu, May 16, 2013 at 11:20 PM, Pranav Saxena 
> 
> wrote:
>
> So within this block  , you could use anyone of the exception handling 
> mechanisms as shown below - 
>
>  
>
>
>   $.ajax({
>  url:'API CMD',
>  data:data ,
>   success:function(args){
>  args.response.success();
>
> },
>
>
> error:function(args){
>   
>
>  args.response.error(parseXMLHttpResponse(json)); // 
> This would handle the exception handling when the API throws an 
> error
>
>  OR
>
>         cloudStack.dialog.notice( { message:_l(' Minlops valus 
> is greater than Max lops , please enter a correct value ')  });
>
> }
>   });
>
> Thanks,
>
> Pranav
>
>  
>
> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> *Sent:* Friday, May 17, 2013 10:44 AM
> *To:* Pranav Saxena
>
>
> *Subj

Re: Example code for GUI

2013-05-17 Thread Mike Tutkowski
So, Pranav, I'm curious when (and how) these JavaScript files get
interpreted (or compiled). I noticed the code where I was missing a comma
was related to a dialog that I never tried to open (wasn't able to get that
far) yet the entire Service Offerings tab was not rendered.

It looks like the JIT compiler encountered my code quite early (even though
it wasn't actively being executed) and generated the problem. Are these JS
files loaded at a single time and really compiled or are they just syntax
checked and then later interpreted?

Thanks!


On Fri, May 17, 2013 at 7:15 PM, Pranav Saxena wrote:

>  So yes , you are right . If you encounter something like this , it
> indicates a JS compilation error which can be easily traced using Firebug
> console . It would show you the exact line number where the compilation
> error occurred . 
>
> ** **
>
> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> *Sent:* Saturday, May 18, 2013 3:15 AM
> *To:* Pranav Saxena
> *Cc:* dev@cloudstack.apache.org
>
> *Subject:* Re: Example code for GUI
>
> ** **
>
> Once I found the JavaScript Console in Chrome, it was easy to determine I
> was missing a comma in one place. It works as expected now. :)
>
> ** **
>
> On Fri, May 17, 2013 at 3:19 PM, Mike Tutkowski <
> mike.tutkow...@solidfire.com> wrote:
>
> I found the JavaScript Console in Chrome. I've been doing Java for over 15
> years, but am still pretty new to JavaScript. :)
>
> ** **
>
> On Fri, May 17, 2013 at 2:37 PM, Mike Tutkowski <
> mike.tutkow...@solidfire.com> wrote:
>
> Pranav - Quick question for you (or, of course, anyone else who might
> know):
>
> ** **
>
> I've made some changes to the JavaScript and rebuilt the system.
>
> ** **
>
> When I log into the GUI and look down at the Service Offerings tab at the
> bottom left, there is an icon, but no text. If I click on it, nothing is
> displayed. :) I'm not that familiar with JavaScript debugging. What do you
> suggest I do in such a situation to debug the problem? I've read and
> re-read my code looking for simple syntax errors and such, but don't see
> any. I did update from master this morning, so hopefully this is not just a
> problem that's in master at the time being and I didn't notice it until I
> made my changes.
>
> ** **
>
> Thanks!
>
> ** **
>
> On Fri, May 17, 2013 at 8:24 AM, Mike Tutkowski <
> mike.tutkow...@solidfire.com> wrote:
>
> Thanks, Pranav!
>
> ** **
>
> On Thu, May 16, 2013 at 11:20 PM, Pranav Saxena 
> wrote:
>
> So within this block  , you could use anyone of the exception handling
> mechanisms as shown below – 
>
>  
>
>
>   $.ajax({
>  url:'API CMD',
>  data:data ,
>   success:function(args){
>  args.response.success();
>
> },
>
>
> error:function(args){
>   
>
>  args.response.error(parseXMLHttpResponse(json)); // This
> would handle the exception handling when the API throws an error
>
>  OR
>
>     cloudStack.dialog.notice( { message:_l(‘ Minlops valus is
> greater than Max lops , please enter a correct value ‘)  });
>
> }
>   });
>
> Thanks,
>
> Pranav
>
>  
>
> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> *Sent:* Friday, May 17, 2013 10:44 AM
> *To:* Pranav Saxena
>
>
> *Subject:* Re: Example code for GUI
>
>  
>
> Great, thanks!
>
>  
>
> One quick question comes to mind: If the criteria I'm checking fails, is
> there a way I should exit the code block and have an error message
> displayed or should those kinds of problems be returned once the API call
> is executing on the server side?
>
>  
>
> Thanks again!
>
>  
>
> On Thu, May 16, 2013 at 10:59 PM, Pranav Saxena 
> wrote:
>
> Yeah , so these dependencies/relationships would be handled when you are
> passing these parameters to the API call within the actions block. Below is
> the code snippet which will help you accomplish your tasks (might require
> little tweaking ) but that's how the structure should look like .
>
>action: function(args) {
> var dataObj = {
>   minlops: args.data.minlops,
>  maxlops:args.data.maxlops,
>  burstlops:args.data.burstlops
>
>  };
>
> if(args.data.minlops != "" &am

RE: Example code for GUI

2013-05-17 Thread Pranav Saxena
So yes , you are right . If you encounter something like this , it indicates a 
JS compilation error which can be easily traced using Firebug console . It 
would show you the exact line number where the compilation error occurred .

From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
Sent: Saturday, May 18, 2013 3:15 AM
To: Pranav Saxena
Cc: dev@cloudstack.apache.org
Subject: Re: Example code for GUI

Once I found the JavaScript Console in Chrome, it was easy to determine I was 
missing a comma in one place. It works as expected now. :)

On Fri, May 17, 2013 at 3:19 PM, Mike Tutkowski 
mailto:mike.tutkow...@solidfire.com>> wrote:
I found the JavaScript Console in Chrome. I've been doing Java for over 15 
years, but am still pretty new to JavaScript. :)

On Fri, May 17, 2013 at 2:37 PM, Mike Tutkowski 
mailto:mike.tutkow...@solidfire.com>> wrote:
Pranav - Quick question for you (or, of course, anyone else who might know):

I've made some changes to the JavaScript and rebuilt the system.

When I log into the GUI and look down at the Service Offerings tab at the 
bottom left, there is an icon, but no text. If I click on it, nothing is 
displayed. :) I'm not that familiar with JavaScript debugging. What do you 
suggest I do in such a situation to debug the problem? I've read and re-read my 
code looking for simple syntax errors and such, but don't see any. I did update 
from master this morning, so hopefully this is not just a problem that's in 
master at the time being and I didn't notice it until I made my changes.

Thanks!

On Fri, May 17, 2013 at 8:24 AM, Mike Tutkowski 
mailto:mike.tutkow...@solidfire.com>> wrote:
Thanks, Pranav!

On Thu, May 16, 2013 at 11:20 PM, Pranav Saxena 
mailto:pranav.sax...@citrix.com>> wrote:
So within this block  , you could use anyone of the exception handling 
mechanisms as shown below -


  $.ajax({
 url:'API CMD',
 data:data ,
  success:function(args){
 args.response.success();
},

error:function(args){

 args.response.error(parseXMLHttpResponse(json)); // This would 
handle the exception handling when the API throws an error
 OR
cloudStack.dialog.notice( { message:_l(' Minlops valus is 
greater than Max lops , please enter a correct value ')  });
}
  });

Thanks,
Pranav

From: Mike Tutkowski 
[mailto:mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com>]
Sent: Friday, May 17, 2013 10:44 AM
To: Pranav Saxena

Subject: Re: Example code for GUI

Great, thanks!

One quick question comes to mind: If the criteria I'm checking fails, is there 
a way I should exit the code block and have an error message displayed or 
should those kinds of problems be returned once the API call is executing on 
the server side?

Thanks again!

On Thu, May 16, 2013 at 10:59 PM, Pranav Saxena 
mailto:pranav.sax...@citrix.com>> wrote:
Yeah , so these dependencies/relationships would be handled when you are 
passing these parameters to the API call within the actions block. Below is the 
code snippet which will help you accomplish your tasks (might require little 
tweaking ) but that's how the structure should look like .

   action: function(args) {
var dataObj = {
  minlops: args.data.minlops,
 maxlops:args.data.maxlops,
 burstlops:args.data.burstlops

 };

if(args.data.minlops != "" && args.data.maxlops !="" && 
args.data.burstlops !="") {

 if(args.data.maxlops >= args.data.minlops){
  $.extend(data, dataObj)
  });
 }
}

  $.ajax({
 url:'API CMD',
 data:data ,
  success:function(args){
 args.response.success();
},



  });


Let me know if you need any more help.

Thanks,
Pranav

-Original Message-
From: Mike Tutkowski 
[mailto:mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com>]
Sent: Friday, May 17, 2013 9:40 AM
To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>
Subject: Re: Example code for GUI
Hi Pranav,

Thanks for posting the link to your commit, as well. :)

I'm trying to set up my fields based on the pattern we already have today where 
the Admin can check a box to allow the User to specify a disk size.

In my case, I'd like the Admin to check a box if he wants the User to 
potentially specify Min, Max, and Burst IOPS. The trick is that Min, Max, and 
Burst IOPS should either all be filled in or none of them filled in (and Max 
has to be >= Min and Burst has to be >= Max). Right now, I'm playing around 
with code that makes these three fields depend 

Re: Example code for GUI

2013-05-17 Thread Mike Tutkowski
Hi Wei,

I was wondering if you and I should coordinate on what we want to call
these IOPS values?

As you know, mine are Min, Max, and Burst IOPS as relates to a SAN. Do you
think I should put the word "Storage" or something in front of mine to
distinguish from your Max Hypervisor IOPS?

Thanks!


On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU  wrote:

> Mike,
>
> I am working on Disk I/O Throttling now. The source code has been verified
> on 4.0.2. It need more test on master branch.
> I hope to finish it before the deadline of 4.2 feature freeze (31-5-2013).
>
> For more information:
> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
>
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Throttling
>
> Wei
>
>
> 2013/5/16 Mike Tutkowski 
>
> > Hi everyone,
> >
> > I'm trying to add a few fields to the GUI's Add Disk Offering dialog
> (min,
> > max, and burst IOPS).
> >
> > Once I have these fields in place, they will of course need to pass this
> > information to the backend and the data will need to end up in new fields
> > in the DB.
> >
> > I was wondering if anyone knew of example code I might be able to pattern
> > my changes off of. The one that comes to mind is CPU and RAM overcommit
> > changes to the Add Cluster dialog (but I'm having a hard time tracking
> > these down in Git).
> >
> > Thanks!
> >
> > --
> > *Mike Tutkowski*
> > *Senior CloudStack Developer, SolidFire Inc.*
> > e: mike.tutkow...@solidfire.com
> > o: 303.746.7302
> > Advancing the way the world uses the
> > cloud
> > *™*
> >
>



-- 
*Mike Tutkowski*
*Senior CloudStack Developer, SolidFire Inc.*
e: mike.tutkow...@solidfire.com
o: 303.746.7302
Advancing the way the world uses the
cloud
*™*


Re: Example code for GUI

2013-05-17 Thread Mike Tutkowski
Once I found the JavaScript Console in Chrome, it was easy to determine I
was missing a comma in one place. It works as expected now. :)


On Fri, May 17, 2013 at 3:19 PM, Mike Tutkowski <
mike.tutkow...@solidfire.com> wrote:

> I found the JavaScript Console in Chrome. I've been doing Java for over 15
> years, but am still pretty new to JavaScript. :)
>
>
> On Fri, May 17, 2013 at 2:37 PM, Mike Tutkowski <
> mike.tutkow...@solidfire.com> wrote:
>
>> Pranav - Quick question for you (or, of course, anyone else who might
>> know):
>>
>> I've made some changes to the JavaScript and rebuilt the system.
>>
>> When I log into the GUI and look down at the Service Offerings tab at the
>> bottom left, there is an icon, but no text. If I click on it, nothing is
>> displayed. :) I'm not that familiar with JavaScript debugging. What do you
>> suggest I do in such a situation to debug the problem? I've read and
>> re-read my code looking for simple syntax errors and such, but don't see
>> any. I did update from master this morning, so hopefully this is not just a
>> problem that's in master at the time being and I didn't notice it until I
>> made my changes.
>>
>> Thanks!
>>
>>
>> On Fri, May 17, 2013 at 8:24 AM, Mike Tutkowski <
>> mike.tutkow...@solidfire.com> wrote:
>>
>>> Thanks, Pranav!
>>>
>>>
>>> On Thu, May 16, 2013 at 11:20 PM, Pranav Saxena <
>>> pranav.sax...@citrix.com> wrote:
>>>
>>>>  So within this block  , you could use anyone of the exception
>>>> handling mechanisms as shown below – 
>>>>
>>>> ** **
>>>>
>>>>
>>>>   $.ajax({
>>>>  url:'API CMD',
>>>>  data:data ,
>>>>   success:function(args){
>>>>  args.response.success();
>>>> },
>>>>
>>>>
>>>> error:function(args){
>>>>   
>>>>
>>>>  args.response.error(parseXMLHttpResponse(json)); //
>>>> This would handle the exception handling when the API throws an error**
>>>> **
>>>>
>>>>  OR
>>>>
>>>> cloudStack.dialog.notice( { message:_l(‘ Minlops valus
>>>> is greater than Max lops , please enter a correct value ‘)  });
>>>>
>>>> }
>>>>   });
>>>>
>>>> Thanks,
>>>>
>>>> Pranav
>>>>
>>>> ** **
>>>>
>>>> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
>>>> *Sent:* Friday, May 17, 2013 10:44 AM
>>>> *To:* Pranav Saxena
>>>>
>>>> *Subject:* Re: Example code for GUI
>>>>
>>>> ** **
>>>>
>>>> Great, thanks!
>>>>
>>>> ** **
>>>>
>>>> One quick question comes to mind: If the criteria I'm checking fails,
>>>> is there a way I should exit the code block and have an error message
>>>> displayed or should those kinds of problems be returned once the API call
>>>> is executing on the server side?
>>>>
>>>> ** **
>>>>
>>>> Thanks again!
>>>>
>>>> ** **
>>>>
>>>> On Thu, May 16, 2013 at 10:59 PM, Pranav Saxena <
>>>> pranav.sax...@citrix.com> wrote:
>>>>
>>>> Yeah , so these dependencies/relationships would be handled when you
>>>> are passing these parameters to the API call within the actions block.
>>>> Below is the code snippet which will help you accomplish your tasks (might
>>>> require little tweaking ) but that's how the structure should look like .
>>>>
>>>>action: function(args) {
>>>> var dataObj = {
>>>>   minlops: args.data.minlops,
>>>>  maxlops:args.data.maxlops,
>>>>  burstlops:args.data.burstlops
>>>>
>>>>  };
>>>>
>>>> if(args.data.minlops != "" && args.data.maxlops !="" &&
>>>> args.data.burstlops !="") {
>>>>
>>>>  if(args.data.maxlops >= args.data.minlops){
>>>&g

Re: Example code for GUI

2013-05-17 Thread Mike Tutkowski
I found the JavaScript Console in Chrome. I've been doing Java for over 15
years, but am still pretty new to JavaScript. :)


On Fri, May 17, 2013 at 2:37 PM, Mike Tutkowski <
mike.tutkow...@solidfire.com> wrote:

> Pranav - Quick question for you (or, of course, anyone else who might
> know):
>
> I've made some changes to the JavaScript and rebuilt the system.
>
> When I log into the GUI and look down at the Service Offerings tab at the
> bottom left, there is an icon, but no text. If I click on it, nothing is
> displayed. :) I'm not that familiar with JavaScript debugging. What do you
> suggest I do in such a situation to debug the problem? I've read and
> re-read my code looking for simple syntax errors and such, but don't see
> any. I did update from master this morning, so hopefully this is not just a
> problem that's in master at the time being and I didn't notice it until I
> made my changes.
>
> Thanks!
>
>
> On Fri, May 17, 2013 at 8:24 AM, Mike Tutkowski <
> mike.tutkow...@solidfire.com> wrote:
>
>> Thanks, Pranav!
>>
>>
>> On Thu, May 16, 2013 at 11:20 PM, Pranav Saxena > > wrote:
>>
>>>  So within this block  , you could use anyone of the exception handling
>>> mechanisms as shown below – 
>>>
>>> ** **
>>>
>>>
>>>   $.ajax({
>>>  url:'API CMD',
>>>  data:data ,
>>>   success:function(args){
>>>  args.response.success();
>>> },
>>>
>>>
>>> error:function(args){
>>>   
>>>
>>>  args.response.error(parseXMLHttpResponse(json)); //
>>> This would handle the exception handling when the API throws an error***
>>> *
>>>
>>>  OR
>>>
>>> cloudStack.dialog.notice( { message:_l(‘ Minlops valus
>>> is greater than Max lops , please enter a correct value ‘)  });
>>>
>>> }
>>>   });
>>>
>>> Thanks,
>>>
>>> Pranav
>>>
>>> ** **
>>>
>>> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
>>> *Sent:* Friday, May 17, 2013 10:44 AM
>>> *To:* Pranav Saxena
>>>
>>> *Subject:* Re: Example code for GUI
>>>
>>> ** **
>>>
>>> Great, thanks!
>>>
>>> ** **
>>>
>>> One quick question comes to mind: If the criteria I'm checking fails, is
>>> there a way I should exit the code block and have an error message
>>> displayed or should those kinds of problems be returned once the API call
>>> is executing on the server side?
>>>
>>> ** **
>>>
>>> Thanks again!
>>>
>>> ** **
>>>
>>> On Thu, May 16, 2013 at 10:59 PM, Pranav Saxena <
>>> pranav.sax...@citrix.com> wrote:
>>>
>>> Yeah , so these dependencies/relationships would be handled when you are
>>> passing these parameters to the API call within the actions block. Below is
>>> the code snippet which will help you accomplish your tasks (might require
>>> little tweaking ) but that's how the structure should look like .
>>>
>>>action: function(args) {
>>> var dataObj = {
>>>   minlops: args.data.minlops,
>>>  maxlops:args.data.maxlops,
>>>  burstlops:args.data.burstlops
>>>
>>>          };
>>>
>>> if(args.data.minlops != "" && args.data.maxlops !="" &&
>>> args.data.burstlops !="") {
>>>
>>>  if(args.data.maxlops >= args.data.minlops){
>>>   $.extend(data, dataObj)
>>>   });
>>>  }
>>> }
>>>
>>>   $.ajax({
>>>  url:'API CMD',
>>>  data:data ,
>>>   success:function(args){
>>>  args.response.success();
>>> },
>>>
>>>
>>>
>>>
>>>   });
>>>
>>>
>>> Let me know if you need any more help.
>>>
>>> Thanks,
>>> Pranav
>>>
>>>
>>> -Original Message-
>>> From: Mike Tutko

Re: Example code for GUI

2013-05-17 Thread Mike Tutkowski
Pranav - Quick question for you (or, of course, anyone else who might know):

I've made some changes to the JavaScript and rebuilt the system.

When I log into the GUI and look down at the Service Offerings tab at the
bottom left, there is an icon, but no text. If I click on it, nothing is
displayed. :) I'm not that familiar with JavaScript debugging. What do you
suggest I do in such a situation to debug the problem? I've read and
re-read my code looking for simple syntax errors and such, but don't see
any. I did update from master this morning, so hopefully this is not just a
problem that's in master at the time being and I didn't notice it until I
made my changes.

Thanks!


On Fri, May 17, 2013 at 8:24 AM, Mike Tutkowski <
mike.tutkow...@solidfire.com> wrote:

> Thanks, Pranav!
>
>
> On Thu, May 16, 2013 at 11:20 PM, Pranav Saxena 
> wrote:
>
>>  So within this block  , you could use anyone of the exception handling
>> mechanisms as shown below – 
>>
>> ** **
>>
>>
>>   $.ajax({
>>  url:'API CMD',
>>  data:data ,
>>   success:function(args){
>>  args.response.success();
>> },
>>
>>
>> error:function(args){
>>   
>>
>>  args.response.error(parseXMLHttpResponse(json)); // This
>> would handle the exception handling when the API throws an error
>>
>>  OR
>>
>> cloudStack.dialog.notice( { message:_l(‘ Minlops valus is
>> greater than Max lops , please enter a correct value ‘)  });
>>
>>         }
>>       });
>>
>> Thanks,
>>
>> Pranav
>>
>> ** **
>>
>> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
>> *Sent:* Friday, May 17, 2013 10:44 AM
>> *To:* Pranav Saxena
>>
>> *Subject:* Re: Example code for GUI
>>
>> ** **
>>
>> Great, thanks!
>>
>> ** **
>>
>> One quick question comes to mind: If the criteria I'm checking fails, is
>> there a way I should exit the code block and have an error message
>> displayed or should those kinds of problems be returned once the API call
>> is executing on the server side?
>>
>> ** **
>>
>> Thanks again!
>>
>> ** **
>>
>> On Thu, May 16, 2013 at 10:59 PM, Pranav Saxena 
>> wrote:
>>
>> Yeah , so these dependencies/relationships would be handled when you are
>> passing these parameters to the API call within the actions block. Below is
>> the code snippet which will help you accomplish your tasks (might require
>> little tweaking ) but that's how the structure should look like .
>>
>>action: function(args) {
>> var dataObj = {
>>   minlops: args.data.minlops,
>>  maxlops:args.data.maxlops,
>>  burstlops:args.data.burstlops
>>
>>  };
>>
>> if(args.data.minlops != "" && args.data.maxlops !="" &&
>> args.data.burstlops !="") {
>>
>>  if(args.data.maxlops >= args.data.minlops){
>>           $.extend(data, dataObj)
>>   });
>>  }
>> }
>>
>>   $.ajax({
>>  url:'API CMD',
>>  data:data ,
>>   success:function(args){
>>  args.response.success();
>> },
>>
>>
>>
>>
>>   });
>>
>>
>> Let me know if you need any more help.
>>
>> Thanks,
>> Pranav
>>
>>
>> -Original Message-
>> From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
>>
>> Sent: Friday, May 17, 2013 9:40 AM
>> To: dev@cloudstack.apache.org
>> Subject: Re: Example code for GUI
>>
>> Hi Pranav,
>>
>> Thanks for posting the link to your commit, as well. :)
>>
>> I'm trying to set up my fields based on the pattern we already have today
>> where the Admin can check a box to allow the User to specify a disk size.
>>
>> In my case, I'd like the Admin to check a box if he wants the User to
>> potentially specify Min, Max, and Burst IOPS. The trick is that Min, Max,
>> and Burst IOPS should either all be filled in or none of them filled in
>> (and Max has to be >= Min and Burst has to be >= Max). 

Re: Example code for GUI

2013-05-17 Thread Mike Tutkowski
Thanks, Pranav!


On Thu, May 16, 2013 at 11:20 PM, Pranav Saxena wrote:

>  So within this block  , you could use anyone of the exception handling
> mechanisms as shown below – 
>
> ** **
>
>
>   $.ajax({
>  url:'API CMD',
>  data:data ,
>   success:function(args){
>  args.response.success();
> },
>
>
> error:function(args){
>   
>
>  args.response.error(parseXMLHttpResponse(json)); // This
> would handle the exception handling when the API throws an error
>
>  OR
>
> cloudStack.dialog.notice( { message:_l(‘ Minlops valus is
> greater than Max lops , please enter a correct value ‘)  });
>
> }
>   });
>
> Thanks,
>
> Pranav
>
> ** **
>
> *From:* Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> *Sent:* Friday, May 17, 2013 10:44 AM
> *To:* Pranav Saxena
>
> *Subject:* Re: Example code for GUI
>
> ** **
>
> Great, thanks!
>
> ** **
>
> One quick question comes to mind: If the criteria I'm checking fails, is
> there a way I should exit the code block and have an error message
> displayed or should those kinds of problems be returned once the API call
> is executing on the server side?
>
> ** **
>
> Thanks again!
>
> ** **
>
> On Thu, May 16, 2013 at 10:59 PM, Pranav Saxena 
> wrote:
>
> Yeah , so these dependencies/relationships would be handled when you are
> passing these parameters to the API call within the actions block. Below is
> the code snippet which will help you accomplish your tasks (might require
> little tweaking ) but that's how the structure should look like .
>
>action: function(args) {
> var dataObj = {
>   minlops: args.data.minlops,
>  maxlops:args.data.maxlops,
>  burstlops:args.data.burstlops
>
>  };
>
> if(args.data.minlops != "" && args.data.maxlops !="" &&
> args.data.burstlops !="") {
>
>  if(args.data.maxlops >= args.data.minlops){
>   $.extend(data, dataObj)
>   });
>  }
> }
>
>   $.ajax({
>  url:'API CMD',
>  data:data ,
>   success:function(args){
>          args.response.success();
> },
>
>
>
>
>   });
>
>
> Let me know if you need any more help.
>
> Thanks,
> Pranav
>
>
> -Original Message-
> From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
>
> Sent: Friday, May 17, 2013 9:40 AM
> To: dev@cloudstack.apache.org
> Subject: Re: Example code for GUI
>
> Hi Pranav,
>
> Thanks for posting the link to your commit, as well. :)
>
> I'm trying to set up my fields based on the pattern we already have today
> where the Admin can check a box to allow the User to specify a disk size.
>
> In my case, I'd like the Admin to check a box if he wants the User to
> potentially specify Min, Max, and Burst IOPS. The trick is that Min, Max,
> and Burst IOPS should either all be filled in or none of them filled in
> (and Max has to be >= Min and Burst has to be >= Max). Right now, I'm
> playing around with code that makes these three fields depend on the
> checkbox (if it's checked, they get displayed). Can you teach me a bit
> about how I might specify the relationships I'm looking for?
>
> Thanks!
>
> Here's what I have right now (I believe it handles displaying the IOPS
> fields if the checkbox is selected, but that's about it):
>
>   isIopsCustomized: {
> label: 'label.custom.disk.iops',
> docID: 'helpDiskOfferingCustomDiskIops',
> isBoolean: true,
> isReverse: true,
> isChecked: false
>   },
>   minIops: {
> label: 'label.disk.iops.min',
> docID: 'helpDiskOfferingDiskIopsMin',
> dependsOn: 'isIopsCustomized',
> validation: { required: true, number: true }
>   },
>   maxIops: {
> label: 'label.disk.iops.max',
> docID: 'helpDiskOfferingDiskIopsMax',
> dependsOn: 'isIopsCus

RE: Example code for GUI

2013-05-16 Thread Pranav Saxena
So within this block  , you could use anyone of the exception handling 
mechanisms as shown below -


  $.ajax({
 url:'API CMD',
 data:data ,
  success:function(args){
 args.response.success();
},

error:function(args){

 args.response.error(parseXMLHttpResponse(json)); // This would 
handle the exception handling when the API throws an error
 OR
cloudStack.dialog.notice( { message:_l(' Minlops valus is 
greater than Max lops , please enter a correct value ')  });
}
  });

Thanks,
Pranav

From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
Sent: Friday, May 17, 2013 10:44 AM
To: Pranav Saxena
Subject: Re: Example code for GUI

Great, thanks!

One quick question comes to mind: If the criteria I'm checking fails, is there 
a way I should exit the code block and have an error message displayed or 
should those kinds of problems be returned once the API call is executing on 
the server side?

Thanks again!

On Thu, May 16, 2013 at 10:59 PM, Pranav Saxena 
mailto:pranav.sax...@citrix.com>> wrote:
Yeah , so these dependencies/relationships would be handled when you are 
passing these parameters to the API call within the actions block. Below is the 
code snippet which will help you accomplish your tasks (might require little 
tweaking ) but that's how the structure should look like .

   action: function(args) {
var dataObj = {
  minlops: args.data.minlops,
 maxlops:args.data.maxlops,
 burstlops:args.data.burstlops

 };

if(args.data.minlops != "" && args.data.maxlops !="" && 
args.data.burstlops !="") {

 if(args.data.maxlops >= args.data.minlops){
  $.extend(data, dataObj)
  });
 }
}

  $.ajax({
 url:'API CMD',
 data:data ,
  success:function(args){
 args.response.success();
},



  });


Let me know if you need any more help.

Thanks,
Pranav

-Original Message-
From: Mike Tutkowski 
[mailto:mike.tutkow...@solidfire.com<mailto:mike.tutkow...@solidfire.com>]
Sent: Friday, May 17, 2013 9:40 AM
To: dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>
Subject: Re: Example code for GUI
Hi Pranav,

Thanks for posting the link to your commit, as well. :)

I'm trying to set up my fields based on the pattern we already have today where 
the Admin can check a box to allow the User to specify a disk size.

In my case, I'd like the Admin to check a box if he wants the User to 
potentially specify Min, Max, and Burst IOPS. The trick is that Min, Max, and 
Burst IOPS should either all be filled in or none of them filled in (and Max 
has to be >= Min and Burst has to be >= Max). Right now, I'm playing around 
with code that makes these three fields depend on the checkbox (if it's 
checked, they get displayed). Can you teach me a bit about how I might specify 
the relationships I'm looking for?

Thanks!

Here's what I have right now (I believe it handles displaying the IOPS fields 
if the checkbox is selected, but that's about it):

  isIopsCustomized: {
label: 'label.custom.disk.iops',
docID: 'helpDiskOfferingCustomDiskIops',
isBoolean: true,
isReverse: true,
isChecked: false
  },
  minIops: {
label: 'label.disk.iops.min',
docID: 'helpDiskOfferingDiskIopsMin',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },
  maxIops: {
label: 'label.disk.iops.max',
docID: 'helpDiskOfferingDiskIopsMax',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },
  burstIops: {
label: 'label.disk.iops.burst',
docID: 'helpDiskOfferingDiskIopsBurst',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },


On Thu, May 16, 2013 at 8:40 PM, Pranav Saxena 
mailto:pranav.sax...@citrix.com>>wrote:

> Hey Ilya ,
>
> So this is how you declare the following items -
>
>  :{
>
>createForm:{
>
>  fields:{
>
>  //CheckBox Item
>:{
>Label:

RE: Example code for GUI

2013-05-16 Thread Pranav Saxena
You might also need to provide a logic at the API layer that It correctly 
handles the case for all 3 parameters being supplied together and thrown an 
exception if any one of the three parameters is missing . Moreover , you should 
also implement an API level check for the minlops and maxlops to ensure that if 
somebody triggers an API call without using the UI , the conditions aren't 
violated . 

Thanks,
Pranav

-Original Message-
From: Pranav Saxena [mailto:pranav.sax...@citrix.com] 
Sent: Friday, May 17, 2013 10:30 AM
To: dev@cloudstack.apache.org
Cc: Mike Tutkowski (mike.tutkow...@solidfire.com)
Subject: RE: Example code for GUI

Yeah , so these dependencies/relationships would be handled when you are 
passing these parameters to the API call within the actions block. Below is the 
code snippet which will help you accomplish your tasks (might require little 
tweaking ) but that's how the structure should look like . 

   action: function(args) {
var dataObj = {
  minlops: args.data.minlops,
 maxlops:args.data.maxlops,
 burstlops:args.data.burstlops
 
 };

if(args.data.minlops != "" && args.data.maxlops !="" && 
args.data.burstlops !="") {

 if(args.data.maxlops >= args.data.minlops){
  $.extend(data, dataObj)
  });
 }
}

  $.ajax({
 url:'API CMD',
 data:data ,
  success:function(args){
 args.response.success();
}


  });


Let me know if you need any more help.

Thanks,
Pranav

-Original Message-
From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
Sent: Friday, May 17, 2013 9:40 AM
To: dev@cloudstack.apache.org
Subject: Re: Example code for GUI

Hi Pranav,

Thanks for posting the link to your commit, as well. :)

I'm trying to set up my fields based on the pattern we already have today where 
the Admin can check a box to allow the User to specify a disk size.

In my case, I'd like the Admin to check a box if he wants the User to 
potentially specify Min, Max, and Burst IOPS. The trick is that Min, Max, and 
Burst IOPS should either all be filled in or none of them filled in (and Max 
has to be >= Min and Burst has to be >= Max). Right now, I'm playing around 
with code that makes these three fields depend on the checkbox (if it's 
checked, they get displayed). Can you teach me a bit about how I might specify 
the relationships I'm looking for?

Thanks!

Here's what I have right now (I believe it handles displaying the IOPS fields 
if the checkbox is selected, but that's about it):

  isIopsCustomized: {
label: 'label.custom.disk.iops',
docID: 'helpDiskOfferingCustomDiskIops',
isBoolean: true,
isReverse: true,
isChecked: false
  },
  minIops: {
label: 'label.disk.iops.min',
docID: 'helpDiskOfferingDiskIopsMin',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },
  maxIops: {
label: 'label.disk.iops.max',
docID: 'helpDiskOfferingDiskIopsMax',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },
  burstIops: {
label: 'label.disk.iops.burst',
docID: 'helpDiskOfferingDiskIopsBurst',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },


On Thu, May 16, 2013 at 8:40 PM, Pranav Saxena wrote:

> Hey Ilya ,
>
> So this is how you declare the following items -
>
>  :{
>
>createForm:{
>
>  fields:{
>
>  //CheckBox Item
>:{
>Label:'Label Name',
>isBoolean:true,// This statement creates a checkbox
> for you
>isChecked: true   // make it  false for the checkbox to
> be unchecked by default
>
>
>
>},
>
>//Drop Down
>   :{
> Label:'label name2',
>  select:function(args):{
>   var items=[];
> items.push(id:'memory' , description: 'the 
> description appears in the drop down');
>
>  }
> 

RE: Example code for GUI

2013-05-16 Thread Pranav Saxena
Yeah , so these dependencies/relationships would be handled when you are 
passing these parameters to the API call within the actions block. Below is the 
code snippet which will help you accomplish your tasks (might require little 
tweaking ) but that's how the structure should look like . 

   action: function(args) {
var dataObj = {
  minlops: args.data.minlops,
 maxlops:args.data.maxlops,
 burstlops:args.data.burstlops
 
 };

if(args.data.minlops != "" && args.data.maxlops !="" && 
args.data.burstlops !="") {

 if(args.data.maxlops >= args.data.minlops){
  $.extend(data, dataObj)
  });
 }
}

  $.ajax({
 url:'API CMD',
 data:data ,
  success:function(args){
 args.response.success();
}


  });


Let me know if you need any more help.

Thanks,
Pranav

-Original Message-
From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com] 
Sent: Friday, May 17, 2013 9:40 AM
To: dev@cloudstack.apache.org
Subject: Re: Example code for GUI

Hi Pranav,

Thanks for posting the link to your commit, as well. :)

I'm trying to set up my fields based on the pattern we already have today where 
the Admin can check a box to allow the User to specify a disk size.

In my case, I'd like the Admin to check a box if he wants the User to 
potentially specify Min, Max, and Burst IOPS. The trick is that Min, Max, and 
Burst IOPS should either all be filled in or none of them filled in (and Max 
has to be >= Min and Burst has to be >= Max). Right now, I'm playing around 
with code that makes these three fields depend on the checkbox (if it's 
checked, they get displayed). Can you teach me a bit about how I might specify 
the relationships I'm looking for?

Thanks!

Here's what I have right now (I believe it handles displaying the IOPS fields 
if the checkbox is selected, but that's about it):

  isIopsCustomized: {
label: 'label.custom.disk.iops',
docID: 'helpDiskOfferingCustomDiskIops',
isBoolean: true,
isReverse: true,
isChecked: false
  },
  minIops: {
label: 'label.disk.iops.min',
docID: 'helpDiskOfferingDiskIopsMin',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },
  maxIops: {
label: 'label.disk.iops.max',
docID: 'helpDiskOfferingDiskIopsMax',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },
  burstIops: {
label: 'label.disk.iops.burst',
docID: 'helpDiskOfferingDiskIopsBurst',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },


On Thu, May 16, 2013 at 8:40 PM, Pranav Saxena wrote:

> Hey Ilya ,
>
> So this is how you declare the following items -
>
>  :{
>
>createForm:{
>
>  fields:{
>
>  //CheckBox Item
>:{
>Label:'Label Name',
>isBoolean:true,// This statement creates a checkbox
> for you
>isChecked: true   // make it  false for the checkbox to
> be unchecked by default
>
>
>
>},
>
>//Drop Down
>   :{
> Label:'label name2',
>  select:function(args):{
>   var items=[];
> items.push(id:'memory' , description: 'the 
> description appears in the drop down');
>
>  }
>}
> }
>   }
>
>   }
>
>  The actual handling is done by the widgets (dialog.js) , once you 
> follow the above mentioned code structure . In case you want to design 
> a multi-edit table (entering multiple values in a single table ), the 
> structure for that is prepared by another widget (multiEdit.js) . That 
> has a slightly complex way to invoke the relevant widget functions. 
> Let me know in case you need any more information on this . The CPU 
> overcommit and memory overcommit feature was committed by me  . Here 
> is the commit -
>
> https://git-wip-us.apache.org/repos/asf?

Re: Example code for GUI

2013-05-16 Thread Mike Tutkowski
Perhaps I need to place my checks in the Action area?


On Thu, May 16, 2013 at 10:10 PM, Mike Tutkowski <
mike.tutkow...@solidfire.com> wrote:

> Hi Pranav,
>
> Thanks for posting the link to your commit, as well. :)
>
> I'm trying to set up my fields based on the pattern we already have today
> where the Admin can check a box to allow the User to specify a disk size.
>
> In my case, I'd like the Admin to check a box if he wants the User to
> potentially specify Min, Max, and Burst IOPS. The trick is that Min, Max,
> and Burst IOPS should either all be filled in or none of them filled in
> (and Max has to be >= Min and Burst has to be >= Max). Right now, I'm
> playing around with code that makes these three fields depend on the
> checkbox (if it's checked, they get displayed). Can you teach me a bit
> about how I might specify the relationships I'm looking for?
>
> Thanks!
>
> Here's what I have right now (I believe it handles displaying the IOPS
> fields if the checkbox is selected, but that's about it):
>
>   isIopsCustomized: {
> label: 'label.custom.disk.iops',
> docID: 'helpDiskOfferingCustomDiskIops',
> isBoolean: true,
> isReverse: true,
> isChecked: false
>   },
>   minIops: {
> label: 'label.disk.iops.min',
> docID: 'helpDiskOfferingDiskIopsMin',
> dependsOn: 'isIopsCustomized',
> validation: { required: true, number: true }
>   },
>   maxIops: {
> label: 'label.disk.iops.max',
> docID: 'helpDiskOfferingDiskIopsMax',
> dependsOn: 'isIopsCustomized',
> validation: { required: true, number: true }
>   },
>   burstIops: {
> label: 'label.disk.iops.burst',
> docID: 'helpDiskOfferingDiskIopsBurst',
> dependsOn: 'isIopsCustomized',
> validation: { required: true, number: true }
>   },
>
>
> On Thu, May 16, 2013 at 8:40 PM, Pranav Saxena 
> wrote:
>
>> Hey Ilya ,
>>
>> So this is how you declare the following items -
>>
>>  :{
>>
>>createForm:{
>>
>>  fields:{
>>
>>  //CheckBox Item
>>:{
>>Label:'Label Name',
>>isBoolean:true,// This statement creates a
>> checkbox for you
>>isChecked: true   // make it  false for the checkbox
>> to be unchecked by default
>>
>>
>>
>>},
>>
>>//Drop Down
>>   :{
>> Label:'label name2',
>>  select:function(args):{
>>   var items=[];
>> items.push(id:'memory' , description: 'the
>> description appears in the drop down');
>>
>>  }
>>}
>> }
>>   }
>>
>>   }
>>
>>  The actual handling is done by the widgets (dialog.js) , once you follow
>> the above mentioned code structure . In case you want to design a
>> multi-edit table (entering multiple values in a single table ), the
>> structure for that is prepared by another widget (multiEdit.js) . That has
>> a slightly complex way to invoke the relevant widget functions. Let me know
>> in case you need any more information on this . The CPU overcommit and
>> memory overcommit feature was committed by me  . Here is the commit -
>>
>> https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=blobdiff;f=ui/scripts/system.js;h=d76aa3e6a2e8d0d009728174f07d600c28febd89;hp=e51bf90ba81445f176607823857e38f930d17c11;hb=215621daa3dde4f09d55fde49e0bf0cd75f5;hpb=2beb66fd32bd8b176a7b4eff2d0a34aa4d278045
>>
>> Let me know if you need any more help on this .
>>
>> Thanks,
>> Pranav
>>
>> -Original Message-
>> From: Musayev, Ilya [mailto:imusa...@webmd.net]
>> Sent: Friday, May 17, 2013 6:56 AM
>> To: dev@cloudstack.apache.org
>> Subject: Re: Example code for GUI
>>
>> Thanks Isaac
>> Regards
>> Ilya
>>
>>
>>
>>  Original message 
>> From:

Re: Example code for GUI

2013-05-16 Thread Mike Tutkowski
Hi Pranav,

Thanks for posting the link to your commit, as well. :)

I'm trying to set up my fields based on the pattern we already have today
where the Admin can check a box to allow the User to specify a disk size.

In my case, I'd like the Admin to check a box if he wants the User to
potentially specify Min, Max, and Burst IOPS. The trick is that Min, Max,
and Burst IOPS should either all be filled in or none of them filled in
(and Max has to be >= Min and Burst has to be >= Max). Right now, I'm
playing around with code that makes these three fields depend on the
checkbox (if it's checked, they get displayed). Can you teach me a bit
about how I might specify the relationships I'm looking for?

Thanks!

Here's what I have right now (I believe it handles displaying the IOPS
fields if the checkbox is selected, but that's about it):

  isIopsCustomized: {
label: 'label.custom.disk.iops',
docID: 'helpDiskOfferingCustomDiskIops',
isBoolean: true,
isReverse: true,
isChecked: false
  },
  minIops: {
label: 'label.disk.iops.min',
docID: 'helpDiskOfferingDiskIopsMin',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },
  maxIops: {
label: 'label.disk.iops.max',
docID: 'helpDiskOfferingDiskIopsMax',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },
  burstIops: {
label: 'label.disk.iops.burst',
docID: 'helpDiskOfferingDiskIopsBurst',
dependsOn: 'isIopsCustomized',
validation: { required: true, number: true }
  },


On Thu, May 16, 2013 at 8:40 PM, Pranav Saxena wrote:

> Hey Ilya ,
>
> So this is how you declare the following items -
>
>  :{
>
>createForm:{
>
>  fields:{
>
>  //CheckBox Item
>:{
>Label:'Label Name',
>isBoolean:true,// This statement creates a checkbox
> for you
>isChecked: true   // make it  false for the checkbox to
> be unchecked by default
>
>
>
>},
>
>//Drop Down
>   :{
> Label:'label name2',
>  select:function(args):{
>   var items=[];
> items.push(id:'memory' , description: 'the
> description appears in the drop down');
>
>  }
>}
> }
>   }
>
>   }
>
>  The actual handling is done by the widgets (dialog.js) , once you follow
> the above mentioned code structure . In case you want to design a
> multi-edit table (entering multiple values in a single table ), the
> structure for that is prepared by another widget (multiEdit.js) . That has
> a slightly complex way to invoke the relevant widget functions. Let me know
> in case you need any more information on this . The CPU overcommit and
> memory overcommit feature was committed by me  . Here is the commit -
>
> https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=blobdiff;f=ui/scripts/system.js;h=d76aa3e6a2e8d0d009728174f07d600c28febd89;hp=e51bf90ba81445f176607823857e38f930d17c11;hb=215621daa88883dde4f09d55fde49e0bf0cd75f5;hpb=2beb66fd32bd8b176a7b4eff2d0a34aa4d278045
>
> Let me know if you need any more help on this .
>
> Thanks,
> Pranav
>
> -----Original Message-----
> From: Musayev, Ilya [mailto:imusa...@webmd.net]
> Sent: Friday, May 17, 2013 6:56 AM
> To: dev@cloudstack.apache.org
> Subject: Re: Example code for GUI
>
> Thanks Isaac
> Regards
> Ilya
>
>
>
>  Original message 
> From: Isaac Chiang 
> Date:
> To: dev@cloudstack.apache.org,"Musayev, Ilya" 
> Subject: Re: Example code for GUI
>
>
> Hi Musayev,
>You'll find out that there are "createForm" object under
> listView(or detailView) actions in each file, e.g., instance.js,
> accounts.js. If you need a selection, you can just define a attribute for
> createForm like following:
>
> select: function(args) {
> //...
> }
>
> and pass returned data from ajax call to
>
> args.response.success({data: 'your json data'})
>
> Then the CS's frontend engine will make a 

RE: Example code for GUI

2013-05-16 Thread Pranav Saxena
Hey Ilya , 

So this is how you declare the following items - 

 :{
 
   createForm:{

 fields:{

 //CheckBox Item
   :{
   Label:'Label Name',
   isBoolean:true,// This statement creates a checkbox for 
you 
   isChecked: true   // make it  false for the checkbox to be 
unchecked by default



   },

   //Drop Down
  :{
Label:'label name2',
 select:function(args):{
  var items=[];
items.push(id:'memory' , description: 'the 
description appears in the drop down');
 
 }
   }
} 
  }

  }
 
 The actual handling is done by the widgets (dialog.js) , once you follow the 
above mentioned code structure . In case you want to design a multi-edit table 
(entering multiple values in a single table ), the structure for that is 
prepared by another widget (multiEdit.js) . That has a slightly complex way to 
invoke the relevant widget functions. Let me know in case you need any more 
information on this . The CPU overcommit and memory overcommit feature was 
committed by me  . Here is the commit - 
https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=blobdiff;f=ui/scripts/system.js;h=d76aa3e6a2e8d0d009728174f07d600c28febd89;hp=e51bf90ba81445f176607823857e38f930d17c11;hb=215621daa3dde4f09d55fde49e0bf0cd75f5;hpb=2beb66fd32bd8b176a7b4eff2d0a34aa4d278045

Let me know if you need any more help on this .

Thanks,
Pranav

-Original Message-
From: Musayev, Ilya [mailto:imusa...@webmd.net] 
Sent: Friday, May 17, 2013 6:56 AM
To: dev@cloudstack.apache.org
Subject: Re: Example code for GUI

Thanks Isaac
Regards
Ilya



 Original message 
From: Isaac Chiang 
Date:
To: dev@cloudstack.apache.org,"Musayev, Ilya" 
Subject: Re: Example code for GUI


Hi Musayev,
   You'll find out that there are "createForm" object under listView(or 
detailView) actions in each file, e.g., instance.js, accounts.js. If you need a 
selection, you can just define a attribute for createForm like following:

select: function(args) {
//...
}

and pass returned data from ajax call to

args.response.success({data: 'your json data'})

Then the CS's frontend engine will make a selection for you.

Regards

Isaac


On Fri, May 17, 2013 at 7:48 AM, Musayev, Ilya  wrote:

> Thank you Wei .
>
> Any idea on how can I change the field type from in UI from text field 
> to multi-select or checkbox group? Is this CSS only change or is there 
> more to it?
>
>
>
> ---- Original message 
> From: Wei ZHOU 
> Date:
> To: dev@cloudstack.apache.org
> Subject: Re: Example code for GUI
>
>
> From my point view:
>
> (1) UI:
>ui/scripts/*.js (such as network.js, configuration.js)
>ui/dictionary.jsp
>client/WEB-INF/classes/resources/messages.properties
>
> (2) Java
>*Cmd.java (commands)
>*VO.java (tables)
>*Manager.java
>*ManagerImpl.java
>
> Wei
>
>
> 2013/5/17 Musayev, Ilya 
>
> > We actually have a similar question on the GUI part, we've done lots 
> > of backend work, but the GUI part does not seem very 
> > straightforward. Would someone know how to add options into GUI?
> >
> > Also,  How can I change the field type from in UI from text field to 
> > multi-select or checkbox group? What is the controlling 
> > configuration
> file?
> >
> > If you can mention general flow on making GUI changes/addition and
> perhaps
> > point to an example, it would be truly appreciated.
> >
> > Thanks
> > ilya
> >
> > > -Original Message-
> > > From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> > > Sent: Thursday, May 16, 2013 6:26 PM
> > > To: dev@cloudstack.apache.org
> > > Subject: Re: Example code for GUI
> > >
> > > It looks like your feature revolves around rate limiting, if I
> understand
> > > correctly.
> > >
> > > It seems like I could leverage a bit of what you're doing here, 
> > > but I'd
> > need
> > > additional fields in the Add Disk Offering dialog (and DB) since 
> > > we
> > support
> > > min, max, and burst values for IOPS (as opposed to just a max).
> > >
> > > What do you think?
> > >
> > >
> > > On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski < 
> > > mike.tutkow...@solidfire.com> wrote:
> > >
> > > > Thanks for the info, Wei.
> > > >
> > > > I am in the proc

Re: Example code for GUI

2013-05-16 Thread Mike Tutkowski
Hi Wei,

Thank you for the information.

Your commit info should be quite valuable for me as a template for my own
work.

Talk to you later!


On Thu, May 16, 2013 at 4:50 PM, Wei ZHOU  wrote:

> Mike,
>
> The features are totally different.  For the VM Disk I/O Throttling, I want
> to limit the vm disk I/O in the hypervisors (support KVM only now).
> However, you do it in the storage device (such as SAN).
>
> I added two fields: bps and iops (maximum, not average/minimum/burst) in
> disk_offering and service_offering.
> I also changed cloudstack UI (configuration.js) to add/list the fields.
> The source codes was put on
>
> https://github.com/ustcweizhou/VMDiskIOThrottling/commit/ae9e1fe3ff1f82aa9dedc5e50536b4e959a81fe7
>
> Wei
>
>
> 2013/5/17 Mike Tutkowski 
>
> > It looks like your feature revolves around rate limiting, if I understand
> > correctly.
> >
> > It seems like I could leverage a bit of what you're doing here, but I'd
> > need additional fields in the Add Disk Offering dialog (and DB) since we
> > support min, max, and burst values for IOPS (as opposed to just a max).
> >
> > What do you think?
> >
> >
> > On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski <
> > mike.tutkow...@solidfire.com> wrote:
> >
> > > Thanks for the info, Wei.
> > >
> > > I am in the process of writing a storage plug-in for Edison's new
> storage
> > > framework. The idea is to be able to have a single SAN volume
> associated
> > > with a single data disk. In our SAN, you can set Min, Max, and Burst
> IOPS
> > > values on a volume-by-volume basis and I'd like to see CloudStack
> support
> > > this.
> > >
> > > Can you tell me a bit about how you see our features overlapping?
> Perhaps
> > > I will not need to update the GUI at all because you might already be
> > > putting in place such new fields?
> > >
> > > Thanks!
> > >
> > >
> > > On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU 
> wrote:
> > >
> > >> Mike,
> > >>
> > >> I am working on Disk I/O Throttling now. The source code has been
> > verified
> > >> on 4.0.2. It need more test on master branch.
> > >> I hope to finish it before the deadline of 4.2 feature freeze
> > (31-5-2013).
> > >>
> > >> For more information:
> > >> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
> > >>
> > >>
> >
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Throttling
> > >>
> > >> Wei
> > >>
> > >>
> > >> 2013/5/16 Mike Tutkowski 
> > >>
> > >> > Hi everyone,
> > >> >
> > >> > I'm trying to add a few fields to the GUI's Add Disk Offering dialog
> > >> (min,
> > >> > max, and burst IOPS).
> > >> >
> > >> > Once I have these fields in place, they will of course need to pass
> > this
> > >> > information to the backend and the data will need to end up in new
> > >> fields
> > >> > in the DB.
> > >> >
> > >> > I was wondering if anyone knew of example code I might be able to
> > >> pattern
> > >> > my changes off of. The one that comes to mind is CPU and RAM
> > overcommit
> > >> > changes to the Add Cluster dialog (but I'm having a hard time
> tracking
> > >> > these down in Git).
> > >> >
> > >> > Thanks!
> > >> >
> > >> > --
> > >> > *Mike Tutkowski*
> > >> > *Senior CloudStack Developer, SolidFire Inc.*
> > >> > e: mike.tutkow...@solidfire.com
> > >> > o: 303.746.7302
> > >> > Advancing the way the world uses the
> > >> > cloud
> > >> > *™*
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > *Mike Tutkowski*
> > > *Senior CloudStack Developer, SolidFire Inc.*
> > > e: mike.tutkow...@solidfire.com
> > > o: 303.746.7302
> > > Advancing the way the world uses the cloud<
> > http://solidfire.com/solution/overview/?video=play>
> > > *™*
> > >
> >
> >
> >
> > --
> > *Mike Tutkowski*
> > *Senior CloudStack Developer, SolidFire Inc.*
> > e: mike.tutkow...@solidfire.com
> > o: 303.746.7302
> > Advancing the way the world uses the
> > cloud
> > *™*
> >
>



-- 
*Mike Tutkowski*
*Senior CloudStack Developer, SolidFire Inc.*
e: mike.tutkow...@solidfire.com
o: 303.746.7302
Advancing the way the world uses the
cloud
*™*


Re: Example code for GUI

2013-05-16 Thread Musayev, Ilya
Thanks Isaac
Regards
Ilya



 Original message 
From: Isaac Chiang 
Date:
To: dev@cloudstack.apache.org,"Musayev, Ilya" 
Subject: Re: Example code for GUI


Hi Musayev,
   You'll find out that there are "createForm" object under
listView(or detailView) actions in each file, e.g., instance.js,
accounts.js. If you need a selection, you can just define a attribute for
createForm like following:

select: function(args) {
//...
}

and pass returned data from ajax call to

args.response.success({data: 'your json data'})

Then the CS's frontend engine will make a selection for you.

Regards

Isaac


On Fri, May 17, 2013 at 7:48 AM, Musayev, Ilya  wrote:

> Thank you Wei .
>
> Any idea on how can I change the field type from in UI from text field to
> multi-select or checkbox group? Is this CSS only change or is there more to
> it?
>
>
>
>  Original message 
> From: Wei ZHOU 
> Date:
> To: dev@cloudstack.apache.org
> Subject: Re: Example code for GUI
>
>
> From my point view:
>
> (1) UI:
>ui/scripts/*.js (such as network.js, configuration.js)
>ui/dictionary.jsp
>client/WEB-INF/classes/resources/messages.properties
>
> (2) Java
>*Cmd.java (commands)
>*VO.java (tables)
>*Manager.java
>*ManagerImpl.java
>
> Wei
>
>
> 2013/5/17 Musayev, Ilya 
>
> > We actually have a similar question on the GUI part, we've done lots of
> > backend work, but the GUI part does not seem very straightforward. Would
> > someone know how to add options into GUI?
> >
> > Also,  How can I change the field type from in UI from text field to
> > multi-select or checkbox group? What is the controlling configuration
> file?
> >
> > If you can mention general flow on making GUI changes/addition and
> perhaps
> > point to an example, it would be truly appreciated.
> >
> > Thanks
> > ilya
> >
> > > -Original Message-
> > > From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> > > Sent: Thursday, May 16, 2013 6:26 PM
> > > To: dev@cloudstack.apache.org
> > > Subject: Re: Example code for GUI
> > >
> > > It looks like your feature revolves around rate limiting, if I
> understand
> > > correctly.
> > >
> > > It seems like I could leverage a bit of what you're doing here, but I'd
> > need
> > > additional fields in the Add Disk Offering dialog (and DB) since we
> > support
> > > min, max, and burst values for IOPS (as opposed to just a max).
> > >
> > > What do you think?
> > >
> > >
> > > On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski <
> > > mike.tutkow...@solidfire.com> wrote:
> > >
> > > > Thanks for the info, Wei.
> > > >
> > > > I am in the process of writing a storage plug-in for Edison's new
> > > > storage framework. The idea is to be able to have a single SAN volume
> > > > associated with a single data disk. In our SAN, you can set Min, Max,
> > > > and Burst IOPS values on a volume-by-volume basis and I'd like to see
> > > > CloudStack support this.
> > > >
> > > > Can you tell me a bit about how you see our features overlapping?
> > > > Perhaps I will not need to update the GUI at all because you might
> > > > already be putting in place such new fields?
> > > >
> > > > Thanks!
> > > >
> > > >
> > > > On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU 
> > > wrote:
> > > >
> > > >> Mike,
> > > >>
> > > >> I am working on Disk I/O Throttling now. The source code has been
> > > >> verified on 4.0.2. It need more test on master branch.
> > > >> I hope to finish it before the deadline of 4.2 feature freeze
> > (31-5-2013).
> > > >>
> > > >> For more information:
> > > >> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
> > > >>
> > > >>
> > > https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Th
> > > r
> > > >> ottling
> > > >>
> > > >> Wei
> > > >>
> > > >>
> > > >> 2013/5/16 Mike Tutkowski 
> > > >>
> > > >> > Hi everyone,
> > > >> >
> > > >> > I'm trying to add a few fields to the GUI's Add Disk Offering
> > > >> > dialog
> > > >> 

Re: Example code for GUI

2013-05-16 Thread Isaac Chiang
Hi Musayev,
   You'll find out that there are "createForm" object under
listView(or detailView) actions in each file, e.g., instance.js,
accounts.js. If you need a selection, you can just define a attribute for
createForm like following:

select: function(args) {
//...
}

and pass returned data from ajax call to

args.response.success({data: 'your json data'})

Then the CS's frontend engine will make a selection for you.

Regards

Isaac


On Fri, May 17, 2013 at 7:48 AM, Musayev, Ilya  wrote:

> Thank you Wei .
>
> Any idea on how can I change the field type from in UI from text field to
> multi-select or checkbox group? Is this CSS only change or is there more to
> it?
>
>
>
>  Original message 
> From: Wei ZHOU 
> Date:
> To: dev@cloudstack.apache.org
> Subject: Re: Example code for GUI
>
>
> From my point view:
>
> (1) UI:
>ui/scripts/*.js (such as network.js, configuration.js)
>ui/dictionary.jsp
>client/WEB-INF/classes/resources/messages.properties
>
> (2) Java
>*Cmd.java (commands)
>*VO.java (tables)
>*Manager.java
>*ManagerImpl.java
>
> Wei
>
>
> 2013/5/17 Musayev, Ilya 
>
> > We actually have a similar question on the GUI part, we've done lots of
> > backend work, but the GUI part does not seem very straightforward. Would
> > someone know how to add options into GUI?
> >
> > Also,  How can I change the field type from in UI from text field to
> > multi-select or checkbox group? What is the controlling configuration
> file?
> >
> > If you can mention general flow on making GUI changes/addition and
> perhaps
> > point to an example, it would be truly appreciated.
> >
> > Thanks
> > ilya
> >
> > > -Original Message-
> > > From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> > > Sent: Thursday, May 16, 2013 6:26 PM
> > > To: dev@cloudstack.apache.org
> > > Subject: Re: Example code for GUI
> > >
> > > It looks like your feature revolves around rate limiting, if I
> understand
> > > correctly.
> > >
> > > It seems like I could leverage a bit of what you're doing here, but I'd
> > need
> > > additional fields in the Add Disk Offering dialog (and DB) since we
> > support
> > > min, max, and burst values for IOPS (as opposed to just a max).
> > >
> > > What do you think?
> > >
> > >
> > > On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski <
> > > mike.tutkow...@solidfire.com> wrote:
> > >
> > > > Thanks for the info, Wei.
> > > >
> > > > I am in the process of writing a storage plug-in for Edison's new
> > > > storage framework. The idea is to be able to have a single SAN volume
> > > > associated with a single data disk. In our SAN, you can set Min, Max,
> > > > and Burst IOPS values on a volume-by-volume basis and I'd like to see
> > > > CloudStack support this.
> > > >
> > > > Can you tell me a bit about how you see our features overlapping?
> > > > Perhaps I will not need to update the GUI at all because you might
> > > > already be putting in place such new fields?
> > > >
> > > > Thanks!
> > > >
> > > >
> > > > On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU 
> > > wrote:
> > > >
> > > >> Mike,
> > > >>
> > > >> I am working on Disk I/O Throttling now. The source code has been
> > > >> verified on 4.0.2. It need more test on master branch.
> > > >> I hope to finish it before the deadline of 4.2 feature freeze
> > (31-5-2013).
> > > >>
> > > >> For more information:
> > > >> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
> > > >>
> > > >>
> > > https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Th
> > > r
> > > >> ottling
> > > >>
> > > >> Wei
> > > >>
> > > >>
> > > >> 2013/5/16 Mike Tutkowski 
> > > >>
> > > >> > Hi everyone,
> > > >> >
> > > >> > I'm trying to add a few fields to the GUI's Add Disk Offering
> > > >> > dialog
> > > >> (min,
> > > >> > max, and burst IOPS).
> > > >> >
> > > >> > Once I have these fields in place, they will of course need to
&g

Re: Example code for GUI

2013-05-16 Thread Musayev, Ilya
Thank you Wei .

Any idea on how can I change the field type from in UI from text field to 
multi-select or checkbox group? Is this CSS only change or is there more to it?



 Original message 
From: Wei ZHOU 
Date:
To: dev@cloudstack.apache.org
Subject: Re: Example code for GUI


From my point view:

(1) UI:
   ui/scripts/*.js (such as network.js, configuration.js)
   ui/dictionary.jsp
   client/WEB-INF/classes/resources/messages.properties

(2) Java
   *Cmd.java (commands)
   *VO.java (tables)
   *Manager.java
   *ManagerImpl.java

Wei


2013/5/17 Musayev, Ilya 

> We actually have a similar question on the GUI part, we've done lots of
> backend work, but the GUI part does not seem very straightforward. Would
> someone know how to add options into GUI?
>
> Also,  How can I change the field type from in UI from text field to
> multi-select or checkbox group? What is the controlling configuration file?
>
> If you can mention general flow on making GUI changes/addition and perhaps
> point to an example, it would be truly appreciated.
>
> Thanks
> ilya
>
> > -Original Message-
> > From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> > Sent: Thursday, May 16, 2013 6:26 PM
> > To: dev@cloudstack.apache.org
> > Subject: Re: Example code for GUI
> >
> > It looks like your feature revolves around rate limiting, if I understand
> > correctly.
> >
> > It seems like I could leverage a bit of what you're doing here, but I'd
> need
> > additional fields in the Add Disk Offering dialog (and DB) since we
> support
> > min, max, and burst values for IOPS (as opposed to just a max).
> >
> > What do you think?
> >
> >
> > On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski <
> > mike.tutkow...@solidfire.com> wrote:
> >
> > > Thanks for the info, Wei.
> > >
> > > I am in the process of writing a storage plug-in for Edison's new
> > > storage framework. The idea is to be able to have a single SAN volume
> > > associated with a single data disk. In our SAN, you can set Min, Max,
> > > and Burst IOPS values on a volume-by-volume basis and I'd like to see
> > > CloudStack support this.
> > >
> > > Can you tell me a bit about how you see our features overlapping?
> > > Perhaps I will not need to update the GUI at all because you might
> > > already be putting in place such new fields?
> > >
> > > Thanks!
> > >
> > >
> > > On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU 
> > wrote:
> > >
> > >> Mike,
> > >>
> > >> I am working on Disk I/O Throttling now. The source code has been
> > >> verified on 4.0.2. It need more test on master branch.
> > >> I hope to finish it before the deadline of 4.2 feature freeze
> (31-5-2013).
> > >>
> > >> For more information:
> > >> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
> > >>
> > >>
> > https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Th
> > r
> > >> ottling
> > >>
> > >> Wei
> > >>
> > >>
> > >> 2013/5/16 Mike Tutkowski 
> > >>
> > >> > Hi everyone,
> > >> >
> > >> > I'm trying to add a few fields to the GUI's Add Disk Offering
> > >> > dialog
> > >> (min,
> > >> > max, and burst IOPS).
> > >> >
> > >> > Once I have these fields in place, they will of course need to pass
> > >> > this information to the backend and the data will need to end up in
> > >> > new
> > >> fields
> > >> > in the DB.
> > >> >
> > >> > I was wondering if anyone knew of example code I might be able to
> > >> pattern
> > >> > my changes off of. The one that comes to mind is CPU and RAM
> > >> > overcommit changes to the Add Cluster dialog (but I'm having a hard
> > >> > time tracking these down in Git).
> > >> >
> > >> > Thanks!
> > >> >
> > >> > --
> > >> > *Mike Tutkowski*
> > >> > *Senior CloudStack Developer, SolidFire Inc.*
> > >> > e: mike.tutkow...@solidfire.com
> > >> > o: 303.746.7302
> > >> > Advancing the way the world uses the
> > >> > cloud<http://solidfire.com/solution/overview/?video=play>
> > >> > *(tm)*
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > *Mike Tutkowski*
> > > *Senior CloudStack Developer, SolidFire Inc.*
> > > e: mike.tutkow...@solidfire.com
> > > o: 303.746.7302
> > > Advancing the way the world uses the
> > > cloud<http://solidfire.com/solution/overview/?video=play>
> > > *(tm)*
> > >
> >
> >
> >
> > --
> > *Mike Tutkowski*
> > *Senior CloudStack Developer, SolidFire Inc.*
> > e: mike.tutkow...@solidfire.com
> > o: 303.746.7302
> > Advancing the way the world uses the
> > cloud<http://solidfire.com/solution/overview/?video=play>
> > *(tm)*
>
>


Re: Example code for GUI

2013-05-16 Thread Wei ZHOU
>From my point view:

(1) UI:
   ui/scripts/*.js (such as network.js, configuration.js)
   ui/dictionary.jsp
   client/WEB-INF/classes/resources/messages.properties

(2) Java
   *Cmd.java (commands)
   *VO.java (tables)
   *Manager.java
   *ManagerImpl.java

Wei


2013/5/17 Musayev, Ilya 

> We actually have a similar question on the GUI part, we've done lots of
> backend work, but the GUI part does not seem very straightforward. Would
> someone know how to add options into GUI?
>
> Also,  How can I change the field type from in UI from text field to
> multi-select or checkbox group? What is the controlling configuration file?
>
> If you can mention general flow on making GUI changes/addition and perhaps
> point to an example, it would be truly appreciated.
>
> Thanks
> ilya
>
> > -Original Message-
> > From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> > Sent: Thursday, May 16, 2013 6:26 PM
> > To: dev@cloudstack.apache.org
> > Subject: Re: Example code for GUI
> >
> > It looks like your feature revolves around rate limiting, if I understand
> > correctly.
> >
> > It seems like I could leverage a bit of what you're doing here, but I'd
> need
> > additional fields in the Add Disk Offering dialog (and DB) since we
> support
> > min, max, and burst values for IOPS (as opposed to just a max).
> >
> > What do you think?
> >
> >
> > On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski <
> > mike.tutkow...@solidfire.com> wrote:
> >
> > > Thanks for the info, Wei.
> > >
> > > I am in the process of writing a storage plug-in for Edison's new
> > > storage framework. The idea is to be able to have a single SAN volume
> > > associated with a single data disk. In our SAN, you can set Min, Max,
> > > and Burst IOPS values on a volume-by-volume basis and I'd like to see
> > > CloudStack support this.
> > >
> > > Can you tell me a bit about how you see our features overlapping?
> > > Perhaps I will not need to update the GUI at all because you might
> > > already be putting in place such new fields?
> > >
> > > Thanks!
> > >
> > >
> > > On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU 
> > wrote:
> > >
> > >> Mike,
> > >>
> > >> I am working on Disk I/O Throttling now. The source code has been
> > >> verified on 4.0.2. It need more test on master branch.
> > >> I hope to finish it before the deadline of 4.2 feature freeze
> (31-5-2013).
> > >>
> > >> For more information:
> > >> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
> > >>
> > >>
> > https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Th
> > r
> > >> ottling
> > >>
> > >> Wei
> > >>
> > >>
> > >> 2013/5/16 Mike Tutkowski 
> > >>
> > >> > Hi everyone,
> > >> >
> > >> > I'm trying to add a few fields to the GUI's Add Disk Offering
> > >> > dialog
> > >> (min,
> > >> > max, and burst IOPS).
> > >> >
> > >> > Once I have these fields in place, they will of course need to pass
> > >> > this information to the backend and the data will need to end up in
> > >> > new
> > >> fields
> > >> > in the DB.
> > >> >
> > >> > I was wondering if anyone knew of example code I might be able to
> > >> pattern
> > >> > my changes off of. The one that comes to mind is CPU and RAM
> > >> > overcommit changes to the Add Cluster dialog (but I'm having a hard
> > >> > time tracking these down in Git).
> > >> >
> > >> > Thanks!
> > >> >
> > >> > --
> > >> > *Mike Tutkowski*
> > >> > *Senior CloudStack Developer, SolidFire Inc.*
> > >> > e: mike.tutkow...@solidfire.com
> > >> > o: 303.746.7302
> > >> > Advancing the way the world uses the
> > >> > cloud<http://solidfire.com/solution/overview/?video=play>
> > >> > *(tm)*
> > >> >
> > >>
> > >
> > >
> > >
> > > --
> > > *Mike Tutkowski*
> > > *Senior CloudStack Developer, SolidFire Inc.*
> > > e: mike.tutkow...@solidfire.com
> > > o: 303.746.7302
> > > Advancing the way the world uses the
> > > cloud<http://solidfire.com/solution/overview/?video=play>
> > > *(tm)*
> > >
> >
> >
> >
> > --
> > *Mike Tutkowski*
> > *Senior CloudStack Developer, SolidFire Inc.*
> > e: mike.tutkow...@solidfire.com
> > o: 303.746.7302
> > Advancing the way the world uses the
> > cloud<http://solidfire.com/solution/overview/?video=play>
> > *(tm)*
>
>


RE: Example code for GUI

2013-05-16 Thread Musayev, Ilya
We actually have a similar question on the GUI part, we've done lots of backend 
work, but the GUI part does not seem very straightforward. Would someone know 
how to add options into GUI?

Also,  How can I change the field type from in UI from text field to 
multi-select or checkbox group? What is the controlling configuration file?

If you can mention general flow on making GUI changes/addition and perhaps 
point to an example, it would be truly appreciated.

Thanks
ilya

> -Original Message-
> From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com]
> Sent: Thursday, May 16, 2013 6:26 PM
> To: dev@cloudstack.apache.org
> Subject: Re: Example code for GUI
> 
> It looks like your feature revolves around rate limiting, if I understand
> correctly.
> 
> It seems like I could leverage a bit of what you're doing here, but I'd need
> additional fields in the Add Disk Offering dialog (and DB) since we support
> min, max, and burst values for IOPS (as opposed to just a max).
> 
> What do you think?
> 
> 
> On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski <
> mike.tutkow...@solidfire.com> wrote:
> 
> > Thanks for the info, Wei.
> >
> > I am in the process of writing a storage plug-in for Edison's new
> > storage framework. The idea is to be able to have a single SAN volume
> > associated with a single data disk. In our SAN, you can set Min, Max,
> > and Burst IOPS values on a volume-by-volume basis and I'd like to see
> > CloudStack support this.
> >
> > Can you tell me a bit about how you see our features overlapping?
> > Perhaps I will not need to update the GUI at all because you might
> > already be putting in place such new fields?
> >
> > Thanks!
> >
> >
> > On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU 
> wrote:
> >
> >> Mike,
> >>
> >> I am working on Disk I/O Throttling now. The source code has been
> >> verified on 4.0.2. It need more test on master branch.
> >> I hope to finish it before the deadline of 4.2 feature freeze (31-5-2013).
> >>
> >> For more information:
> >> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
> >>
> >>
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Th
> r
> >> ottling
> >>
> >> Wei
> >>
> >>
> >> 2013/5/16 Mike Tutkowski 
> >>
> >> > Hi everyone,
> >> >
> >> > I'm trying to add a few fields to the GUI's Add Disk Offering
> >> > dialog
> >> (min,
> >> > max, and burst IOPS).
> >> >
> >> > Once I have these fields in place, they will of course need to pass
> >> > this information to the backend and the data will need to end up in
> >> > new
> >> fields
> >> > in the DB.
> >> >
> >> > I was wondering if anyone knew of example code I might be able to
> >> pattern
> >> > my changes off of. The one that comes to mind is CPU and RAM
> >> > overcommit changes to the Add Cluster dialog (but I'm having a hard
> >> > time tracking these down in Git).
> >> >
> >> > Thanks!
> >> >
> >> > --
> >> > *Mike Tutkowski*
> >> > *Senior CloudStack Developer, SolidFire Inc.*
> >> > e: mike.tutkow...@solidfire.com
> >> > o: 303.746.7302
> >> > Advancing the way the world uses the
> >> > cloud<http://solidfire.com/solution/overview/?video=play>
> >> > *(tm)*
> >> >
> >>
> >
> >
> >
> > --
> > *Mike Tutkowski*
> > *Senior CloudStack Developer, SolidFire Inc.*
> > e: mike.tutkow...@solidfire.com
> > o: 303.746.7302
> > Advancing the way the world uses the
> > cloud<http://solidfire.com/solution/overview/?video=play>
> > *(tm)*
> >
> 
> 
> 
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: mike.tutkow...@solidfire.com
> o: 303.746.7302
> Advancing the way the world uses the
> cloud<http://solidfire.com/solution/overview/?video=play>
> *(tm)*



Re: Example code for GUI

2013-05-16 Thread Wei ZHOU
Mike,

The features are totally different.  For the VM Disk I/O Throttling, I want
to limit the vm disk I/O in the hypervisors (support KVM only now).
However, you do it in the storage device (such as SAN).

I added two fields: bps and iops (maximum, not average/minimum/burst) in
disk_offering and service_offering.
I also changed cloudstack UI (configuration.js) to add/list the fields.
The source codes was put on
https://github.com/ustcweizhou/VMDiskIOThrottling/commit/ae9e1fe3ff1f82aa9dedc5e50536b4e959a81fe7

Wei


2013/5/17 Mike Tutkowski 

> It looks like your feature revolves around rate limiting, if I understand
> correctly.
>
> It seems like I could leverage a bit of what you're doing here, but I'd
> need additional fields in the Add Disk Offering dialog (and DB) since we
> support min, max, and burst values for IOPS (as opposed to just a max).
>
> What do you think?
>
>
> On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski <
> mike.tutkow...@solidfire.com> wrote:
>
> > Thanks for the info, Wei.
> >
> > I am in the process of writing a storage plug-in for Edison's new storage
> > framework. The idea is to be able to have a single SAN volume associated
> > with a single data disk. In our SAN, you can set Min, Max, and Burst IOPS
> > values on a volume-by-volume basis and I'd like to see CloudStack support
> > this.
> >
> > Can you tell me a bit about how you see our features overlapping? Perhaps
> > I will not need to update the GUI at all because you might already be
> > putting in place such new fields?
> >
> > Thanks!
> >
> >
> > On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU  wrote:
> >
> >> Mike,
> >>
> >> I am working on Disk I/O Throttling now. The source code has been
> verified
> >> on 4.0.2. It need more test on master branch.
> >> I hope to finish it before the deadline of 4.2 feature freeze
> (31-5-2013).
> >>
> >> For more information:
> >> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
> >>
> >>
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Throttling
> >>
> >> Wei
> >>
> >>
> >> 2013/5/16 Mike Tutkowski 
> >>
> >> > Hi everyone,
> >> >
> >> > I'm trying to add a few fields to the GUI's Add Disk Offering dialog
> >> (min,
> >> > max, and burst IOPS).
> >> >
> >> > Once I have these fields in place, they will of course need to pass
> this
> >> > information to the backend and the data will need to end up in new
> >> fields
> >> > in the DB.
> >> >
> >> > I was wondering if anyone knew of example code I might be able to
> >> pattern
> >> > my changes off of. The one that comes to mind is CPU and RAM
> overcommit
> >> > changes to the Add Cluster dialog (but I'm having a hard time tracking
> >> > these down in Git).
> >> >
> >> > Thanks!
> >> >
> >> > --
> >> > *Mike Tutkowski*
> >> > *Senior CloudStack Developer, SolidFire Inc.*
> >> > e: mike.tutkow...@solidfire.com
> >> > o: 303.746.7302
> >> > Advancing the way the world uses the
> >> > cloud
> >> > *™*
> >> >
> >>
> >
> >
> >
> > --
> > *Mike Tutkowski*
> > *Senior CloudStack Developer, SolidFire Inc.*
> > e: mike.tutkow...@solidfire.com
> > o: 303.746.7302
> > Advancing the way the world uses the cloud<
> http://solidfire.com/solution/overview/?video=play>
> > *™*
> >
>
>
>
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: mike.tutkow...@solidfire.com
> o: 303.746.7302
> Advancing the way the world uses the
> cloud
> *™*
>


Re: Example code for GUI

2013-05-16 Thread Mike Tutkowski
It looks like your feature revolves around rate limiting, if I understand
correctly.

It seems like I could leverage a bit of what you're doing here, but I'd
need additional fields in the Add Disk Offering dialog (and DB) since we
support min, max, and burst values for IOPS (as opposed to just a max).

What do you think?


On Thu, May 16, 2013 at 4:18 PM, Mike Tutkowski <
mike.tutkow...@solidfire.com> wrote:

> Thanks for the info, Wei.
>
> I am in the process of writing a storage plug-in for Edison's new storage
> framework. The idea is to be able to have a single SAN volume associated
> with a single data disk. In our SAN, you can set Min, Max, and Burst IOPS
> values on a volume-by-volume basis and I'd like to see CloudStack support
> this.
>
> Can you tell me a bit about how you see our features overlapping? Perhaps
> I will not need to update the GUI at all because you might already be
> putting in place such new fields?
>
> Thanks!
>
>
> On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU  wrote:
>
>> Mike,
>>
>> I am working on Disk I/O Throttling now. The source code has been verified
>> on 4.0.2. It need more test on master branch.
>> I hope to finish it before the deadline of 4.2 feature freeze (31-5-2013).
>>
>> For more information:
>> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
>>
>> https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Throttling
>>
>> Wei
>>
>>
>> 2013/5/16 Mike Tutkowski 
>>
>> > Hi everyone,
>> >
>> > I'm trying to add a few fields to the GUI's Add Disk Offering dialog
>> (min,
>> > max, and burst IOPS).
>> >
>> > Once I have these fields in place, they will of course need to pass this
>> > information to the backend and the data will need to end up in new
>> fields
>> > in the DB.
>> >
>> > I was wondering if anyone knew of example code I might be able to
>> pattern
>> > my changes off of. The one that comes to mind is CPU and RAM overcommit
>> > changes to the Add Cluster dialog (but I'm having a hard time tracking
>> > these down in Git).
>> >
>> > Thanks!
>> >
>> > --
>> > *Mike Tutkowski*
>> > *Senior CloudStack Developer, SolidFire Inc.*
>> > e: mike.tutkow...@solidfire.com
>> > o: 303.746.7302
>> > Advancing the way the world uses the
>> > cloud
>> > *™*
>> >
>>
>
>
>
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: mike.tutkow...@solidfire.com
> o: 303.746.7302
> Advancing the way the world uses the 
> cloud
> *™*
>



-- 
*Mike Tutkowski*
*Senior CloudStack Developer, SolidFire Inc.*
e: mike.tutkow...@solidfire.com
o: 303.746.7302
Advancing the way the world uses the
cloud
*™*


Re: Example code for GUI

2013-05-16 Thread Mike Tutkowski
Thanks for the info, Wei.

I am in the process of writing a storage plug-in for Edison's new storage
framework. The idea is to be able to have a single SAN volume associated
with a single data disk. In our SAN, you can set Min, Max, and Burst IOPS
values on a volume-by-volume basis and I'd like to see CloudStack support
this.

Can you tell me a bit about how you see our features overlapping? Perhaps I
will not need to update the GUI at all because you might already be putting
in place such new fields?

Thanks!


On Thu, May 16, 2013 at 4:13 PM, Wei ZHOU  wrote:

> Mike,
>
> I am working on Disk I/O Throttling now. The source code has been verified
> on 4.0.2. It need more test on master branch.
> I hope to finish it before the deadline of 4.2 feature freeze (31-5-2013).
>
> For more information:
> https://issues.apache.org/jira/browse/CLOUDSTACK-1301
>
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Throttling
>
> Wei
>
>
> 2013/5/16 Mike Tutkowski 
>
> > Hi everyone,
> >
> > I'm trying to add a few fields to the GUI's Add Disk Offering dialog
> (min,
> > max, and burst IOPS).
> >
> > Once I have these fields in place, they will of course need to pass this
> > information to the backend and the data will need to end up in new fields
> > in the DB.
> >
> > I was wondering if anyone knew of example code I might be able to pattern
> > my changes off of. The one that comes to mind is CPU and RAM overcommit
> > changes to the Add Cluster dialog (but I'm having a hard time tracking
> > these down in Git).
> >
> > Thanks!
> >
> > --
> > *Mike Tutkowski*
> > *Senior CloudStack Developer, SolidFire Inc.*
> > e: mike.tutkow...@solidfire.com
> > o: 303.746.7302
> > Advancing the way the world uses the
> > cloud
> > *™*
> >
>



-- 
*Mike Tutkowski*
*Senior CloudStack Developer, SolidFire Inc.*
e: mike.tutkow...@solidfire.com
o: 303.746.7302
Advancing the way the world uses the
cloud
*™*


Re: Example code for GUI

2013-05-16 Thread Wei ZHOU
Mike,

I am working on Disk I/O Throttling now. The source code has been verified
on 4.0.2. It need more test on master branch.
I hope to finish it before the deadline of 4.2 feature freeze (31-5-2013).

For more information:
https://issues.apache.org/jira/browse/CLOUDSTACK-1301
https://cwiki.apache.org/confluence/display/CLOUDSTACK/VM+Disk+IO+Throttling

Wei


2013/5/16 Mike Tutkowski 

> Hi everyone,
>
> I'm trying to add a few fields to the GUI's Add Disk Offering dialog (min,
> max, and burst IOPS).
>
> Once I have these fields in place, they will of course need to pass this
> information to the backend and the data will need to end up in new fields
> in the DB.
>
> I was wondering if anyone knew of example code I might be able to pattern
> my changes off of. The one that comes to mind is CPU and RAM overcommit
> changes to the Add Cluster dialog (but I'm having a hard time tracking
> these down in Git).
>
> Thanks!
>
> --
> *Mike Tutkowski*
> *Senior CloudStack Developer, SolidFire Inc.*
> e: mike.tutkow...@solidfire.com
> o: 303.746.7302
> Advancing the way the world uses the
> cloud
> *™*
>