You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2013/04/21 19:03:12 UTC

[01/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Updated Branches:
  refs/heads/marvin_refactor 23dd00b04 -> 0b5fe9a90


Add zone filter drop-down to header (needs styling)


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4b853ccd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4b853ccd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4b853ccd

Branch: refs/heads/marvin_refactor
Commit: 4b853ccdc74ba7f247d48a604e8fb0d7051ee528
Parents: 7efbcfa
Author: Brian Federle <br...@citrix.com>
Authored: Wed Apr 10 13:09:43 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Wed Apr 10 13:09:43 2013 -0700

----------------------------------------------------------------------
 ui/index.jsp                       |    1 +
 ui/scripts/ui-custom/zoneFilter.js |   31 +++++++++++++++++++++++++++++++
 2 files changed, 32 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4b853ccd/ui/index.jsp
----------------------------------------------------------------------
diff --git a/ui/index.jsp b/ui/index.jsp
index 3b8f378..003790e 100644
--- a/ui/index.jsp
+++ b/ui/index.jsp
@@ -1659,6 +1659,7 @@ under the License.
     <script type="text/javascript" src="scripts/events.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/regions.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/ui-custom/regions.js?t=<%=now%>"></script>
+    <script type="text/javascript" src="scripts/ui-custom/zoneFilter.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/ui-custom/ipRules.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/ui-custom/enableStaticNAT.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/ui-custom/securityRules.js?t=<%=now%>"></script>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4b853ccd/ui/scripts/ui-custom/zoneFilter.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/zoneFilter.js b/ui/scripts/ui-custom/zoneFilter.js
new file mode 100644
index 0000000..d298e4f
--- /dev/null
+++ b/ui/scripts/ui-custom/zoneFilter.js
@@ -0,0 +1,31 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+(function($, cloudStack) {
+  $(window).bind('cloudStack.ready', function() {
+    var $header = $('#header .controls');
+    var $zoneFilter = $('<div>').addClass('zone-filter');
+    var $zoneTypeSelect = $('<select>').append(
+      $('<option>').attr('value', 'basic').html(_l('Basic')),
+      $('<option>').attr('value', 'advanced').html(_l('Advanced'))
+    );
+
+    $zoneTypeSelect.appendTo($zoneFilter);
+    $zoneFilter.insertAfter($header.find('#user'));
+  });
+}(jQuery, cloudStack));      
+


[26/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-387: Actually adding the build-nonoss.xml file...


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e8251d99
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e8251d99
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e8251d99

Branch: refs/heads/marvin_refactor
Commit: e8251d998f60c1209d763021a70455c0c929df37
Parents: 99cbe3a
Author: Joe Brockmeier <jz...@zonker.net>
Authored: Fri Apr 19 08:51:14 2013 -0500
Committer: Joe Brockmeier <jz...@zonker.net>
Committed: Fri Apr 19 08:52:06 2013 -0500

----------------------------------------------------------------------
 docs/en-US/build-nonoss.xml |   49 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e8251d99/docs/en-US/build-nonoss.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/build-nonoss.xml b/docs/en-US/build-nonoss.xml
new file mode 100644
index 0000000..fceca60
--- /dev/null
+++ b/docs/en-US/build-nonoss.xml
@@ -0,0 +1,49 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
+%BOOK_ENTITIES;
+]>
+
+<!-- Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<section id="sect-source-nonoss">
+    <title>Building Non-OSS</title>
+    <para>If you need support for the VMware, NetApp, F5, NetScaler, SRX, or any other non-Open Source Software (nonoss) plugins, you'll need to download a few components on your own and follow a slightly different procedure to build from source.</para>
+    <note><title>Why Non-OSS?</title>
+        <para>Some of the plugins supported by &PRODUCT; cannot be distributed with &PRODUCT; for licensing reasons. In some cases, some of the required libraries/JARs are under a proprietary license. In other cases, the required libraries may be under a license that's not compatible with <ulink url="http://www.apache.org/legal/resolved.html#category-x">Apache's licensing guidelines for third-party products</ulink>.</para>
+    </note>
+    <orderedlist>
+        <listitem>
+            <para>To build the Non-OSS plugins, you'll need to have the requisite JARs installed under the <filename>deps</filename> directory.</para>
+            <para>Because these modules require dependencies that can't be distributed with &PRODUCT; you'll need to download them yourself. Links to the most recent dependencies are listed on the <ulink url="https://cwiki.apache.org/CLOUDSTACK/how-to-build-on-master-branch.html"><emphasis>How to build on master branch</emphasis></ulink> page on the wiki.</para></listitem>
+        <listitem>
+            <para>You may also need to download <ulink url="http://download.cloud.com.s3.amazonaws.com/tools/vhd-util">vhd-util</ulink>, which was removed due to licensing issues. You'll copy vhd-util to the <filename>scripts/vm/hypervisor/xenserver/</filename> directory.</para>
+        </listitem>
+        <listitem>
+            <para>Once you have all the dependencies copied over, you'll be able to build &PRODUCT; with the <command>nonoss</command> option:</para>
+            <programlisting language="Bash">
+                <prompt>$</prompt> mvn clean
+                <prompt>$</prompt> mvn install -Dnonoss
+            </programlisting>
+        </listitem>
+        <listitem>
+            <para>Once you've built &PRODUCT; with the <command>nonoss</command> profile, you can package it using the <xref linkend="sect-source-buildrpm" /> or <xref linkend="sect-source-builddebs" /> instructions.</para>
+        </listitem>
+    </orderedlist>
+</section>


[10/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2038: cloudstack UI - mixed zone management - network menu - guest network section - show/hide Add Guest Network action upon selected zone type on top menu.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/65448791
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/65448791
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/65448791

Branch: refs/heads/marvin_refactor
Commit: 65448791ed55be8e4291223f37ed81256ffc0e1e
Parents: f85ab8a
Author: Jessica Wang <je...@citrix.com>
Authored: Mon Apr 15 14:56:36 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Mon Apr 15 14:56:36 2013 -0700

----------------------------------------------------------------------
 ui/scripts/network.js |   19 ++++++-------------
 1 files changed, 6 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/65448791/ui/scripts/network.js
----------------------------------------------------------------------
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index dfb9f10..a9a1a6b 100755
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -320,21 +320,14 @@
         title: 'label.guest.networks',
         listView: {
           actions: {
-            add: {
+            add: { //add Isolated guest network (can't add Shared guest network here)
               label: 'label.add.guest.network',
 
-              preFilter: function(args) {
-                var advSgDisabledZones;
-								$.ajax({
-									url: createURL('listZones'),
-									async: false,
-									success: function(json) {									 
-										advSgDisabledZones = $.grep(json.listzonesresponse.zone, function(zone) {
-											return (zone.networktype == 'Advanced' && zone.securitygroupsenabled	!= true); //Isolated networks can only be created in Advanced SG-disabled zone (but not in Basic zone nor Advanced SG-enabled zone)
-										});										
-									}
-								});								
-								return (advSgDisabledZones != null && advSgDisabledZones.length > 0);							
+              preFilter: function(args) { //Isolated networks is only supported in Advanced (SG-disabled) zone 
+                if(args.context.zoneType != 'Basic') 
+								  return true;
+								else
+								  return false;								
               },
 
               createForm: {


[23/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Storage Motion UI development


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fc4f19f9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fc4f19f9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fc4f19f9

Branch: refs/heads/marvin_refactor
Commit: fc4f19f915e8edc5ccc0076122fb20c19ad2646a
Parents: 59bee8d
Author: Pranav Saxena <pr...@citrix.com>
Authored: Fri Apr 19 18:27:07 2013 +0530
Committer: Pranav Saxena <pr...@citrix.com>
Committed: Fri Apr 19 18:27:07 2013 +0530

----------------------------------------------------------------------
 ui/css/cloudstack3.css  |   11 ++++++
 ui/scripts/instances.js |   64 ++++++++++++++++++++++++++-----------
 ui/scripts/storage.js   |   73 +++++++++++++++++++++++++++++++++++++++++-
 3 files changed, 128 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fc4f19f9/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index d4c670c..b971cbf 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -11603,6 +11603,17 @@ div.ui-dialog div.autoscaler div.field-group div.form-container form div.form-it
   background-position: 0px -707px;
 }
 
+.migrate .icon,
+.migrateVolume .icon {
+  background-position: 0px -125px;
+}
+
+.migrate:hover .icon,
+.migrateVolume:hover .icon {
+  background-position: 0px -707px;
+}
+
+
 .attach .icon,
 .attachISO .icon,
 .attachDisk .icon {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fc4f19f9/ui/scripts/instances.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index b2d9dde..bd8b7f6 100644
--- a/ui/scripts/instances.js
+++ b/ui/scripts/instances.js
@@ -15,6 +15,7 @@
 // specific language governing permissions and limitations
 // under the License.
 (function($, cloudStack) {
+  var requiresStorageMotion = false;
   cloudStack.sections.instances = {
     title: 'label.instances',
     id: 'instances',
@@ -958,17 +959,31 @@
                   validation: { required: true },
                   select: function(args) {
                     $.ajax({
-                      url: createURL("listHosts&VirtualMachineId=" + args.context.instances[0].id),
+                      url: createURL("findHostsForMigration&VirtualMachineId=" + args.context.instances[0].id),
                       //url: createURL("listHosts"),	//for testing only, comment it out before checking in.
                       dataType: "json",
                       async: true,
                       success: function(json) {
-                        var hosts = json.listhostsresponse.host;
+                        if(json.findhostsformigrationresponse.host != undefined){
+                        var hosts = json.findhostsformigrationresponse.host;
+                        requiresStorageMotion =  json.findhostsformigrationresponse.host[0].requiresStorageMotion;
                         var items = [];
                         $(hosts).each(function() {
-                          items.push({id: this.id, description: (this.name + " (" + (this.suitableformigration? "Suitable": "Not Suitable") + ")")});
-                        });
+                        if(this.requiresStorageMotion == true){
+                          items.push({id: this.id, description: (this.name + " (" + (this.suitableformigration? "Suitable, ": "Not Suitable, ")  +  "Storage migration required)"  )});
+
+                        }
+                        else {
+                     
+                          items.push({id: this.id, description: (this.name + " (" + (this.suitableformigration? "Suitable": "Not Suitable")  + ")"  )});
+
+                          }
+                         });
                         args.response.success({data: items});
+                        }
+                       else
+                          cloudStack.dialog.notice({ message: _l('No Hosts are avaialble for Migration') }); //Only a single host in the set up 
+                        
                       }
                     });
                   }
@@ -976,7 +991,31 @@
               }
             },
             action: function(args) {
+              
+            if(requiresStorageMotion == true){   
               $.ajax({
+                url: createURL("migrateVirtualMachineWithVolume&hostid=" + args.data.hostId + "&virtualmachineid=" + args.context.instances[0].id),
+                dataType: "json",
+                async: true,
+                success: function(json) {
+                  var jid = json.migratevirtualmachinewithvolumeresponse.jobid;
+                  args.response.success(
+                    {_custom:
+                     {jobId: jid,
+                      getUpdatedItem: function(json) {
+                        return json.queryasyncjobresultresponse.jobresult.virtualmachine;
+                      },
+                      getActionFilter: function() {
+                        return vmActionfilter;
+                      }
+                     }
+                    }
+                  );
+                }
+              });
+             }
+             else{
+                  $.ajax({
                 url: createURL("migrateVirtualMachine&hostid=" + args.data.hostId + "&virtualmachineid=" + args.context.instances[0].id),
                 dataType: "json",
                 async: true,
@@ -987,21 +1026,6 @@
                      {jobId: jid,
                       getUpdatedItem: function(json) {
                         return json.queryasyncjobresultresponse.jobresult.virtualmachine;
-                        /*
-                         var vmObj;
-                         $.ajax({
-                         url: createURL("listVirtualMachines&id=" + args.context.instances[0].id),
-                         dataType: "json",
-                         async: false,
-                         success: function(json) {
-                         var items =  json.listvirtualmachinesresponse.virtualmachine;
-                         if(items != null && items.length > 0) {
-                         vmObj = items[0];
-                         }
-                         }
-                         });
-                         return vmObj;
-                         */
                       },
                       getActionFilter: function() {
                         return vmActionfilter;
@@ -1011,6 +1035,8 @@
                   );
                 }
               });
+
+              } 
             },
             notification: {
               poll: pollAsyncJobResult

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fc4f19f9/ui/scripts/storage.js
----------------------------------------------------------------------
diff --git a/ui/scripts/storage.js b/ui/scripts/storage.js
index 54605e2..8fd9594 100644
--- a/ui/scripts/storage.js
+++ b/ui/scripts/storage.js
@@ -395,6 +395,69 @@
             name: 'Volume details',
             viewAll: { path: 'storage.snapshots', label: 'label.snapshots' },
             actions: {
+
+             migrateVolume:{
+                 label:'Migrate Volume',
+               messages: {
+                  confirm: function(args) {
+                    return 'Do you want to migrate this volume ?' ;
+                  },
+                  notification: function(args) {
+                    return 'Volume migrated';
+                  }
+                },
+
+             createForm: {
+              title: 'Migrate Volume',
+              desc: '',
+              fields: {
+                storagePool: {
+                  label: 'Storage Pool',
+                  validation: { required: true },
+                  select: function(args) {
+                    $.ajax({
+                      url: createURL("findStoragePoolsForMigration&id=" + args.context.volumes[0].id),
+                      dataType: "json",
+                      async: true,
+                      success: function(json) {
+                            var pools = json.findstoragepoolsformigrationresponse.storagepool;
+                            var items = [];
+                            $(pools).each(function() {
+                              items.push({id: this.id, description: this.name + " (" + (this.suitableformigration? "Suitable": "Not Suitable")+")"   });
+                            });
+                            args.response.success({data: items});
+
+                        }                     
+                    });
+                  }
+                }
+              }
+           
+            },
+
+                 action: function(args) {
+                  $.ajax({
+                    url: createURL("migrateVolume&livemigrate=true&storageid=" + args.data.storagePool + "&volumeid=" + args.context.volumes[0].id ),
+                    dataType: "json",
+                    async: true,
+                    success: function(json) {
+                      var jid = json.migratevolumeresponse.jobid;
+                      args.response.success(
+                        {_custom:
+                         {
+                            jobId: jid
+                         }
+                        }
+                      );
+                    }
+                  });
+                },
+                notification: {
+                  poll: pollAsyncJobResult
+                }
+
+               },
+
               takeSnapshot: {
                 label: 'label.action.take.snapshot',
                 messages: {
@@ -961,7 +1024,7 @@
                 },
                 action: function(args) {
                   $.ajax({
-                    url: createURL("migrateVolume&storageid=" + args.data.storageId + "&volumeid=" + args.context.volumes[0].id),
+                    url: createURL("migrateVolume&storageid=" + args.data.storagePool + "&volumeid=" + args.context.volumes[0].id),
                     dataType: "json",
                     async: true,
                     success: function(json) {
@@ -1538,6 +1601,7 @@
     var jsonObj = args.context.item;
     var allowedActions = [];
 
+    
     if (jsonObj.state == 'Destroyed' || jsonObj.state == 'Migrating' || jsonObj.state == 'Uploading') {
       return [];
     }
@@ -1557,6 +1621,13 @@
         allowedActions.push("downloadVolume");
       }
     }
+
+   if(jsonObj.type == "ROOT" || jsonObj.type =="DATADISK"){ 
+    if(jsonObj.state == "Ready" && isAdmin() && jsonObj.virtualmachineid != null ){
+         allowedActions.push("migrateVolume");
+    }
+  }
+
     if(jsonObj.state != "Creating") {
       if(jsonObj.type == "ROOT") {
         if (jsonObj.vmstate == "Stopped") {


[39/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-1004: Adding fqdn info to NFS setup instructions. Why this should be necessary puzzles me.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b888450e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b888450e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b888450e

Branch: refs/heads/marvin_refactor
Commit: b888450ec803d7d61b2c30c3528b305e26ce1fb4
Parents: 489e13e
Author: Joe Brockmeier <jz...@zonker.net>
Authored: Fri Apr 19 17:46:39 2013 -0500
Committer: Joe Brockmeier <jz...@zonker.net>
Committed: Fri Apr 19 17:46:39 2013 -0500

----------------------------------------------------------------------
 docs/en-US/advanced-zone-configuration.xml |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b888450e/docs/en-US/advanced-zone-configuration.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/advanced-zone-configuration.xml b/docs/en-US/advanced-zone-configuration.xml
index 03a082f..43b9391 100644
--- a/docs/en-US/advanced-zone-configuration.xml
+++ b/docs/en-US/advanced-zone-configuration.xml
@@ -362,7 +362,7 @@
         Secondary Storage :</para>
       <itemizedlist>
         <listitem>
-          <para><emphasis role="bold">NFS Server.</emphasis> The IP address of the server.</para>
+          <para><emphasis role="bold">NFS Server.</emphasis> The IP address of the server or fully qualified domain name of the server.</para>
         </listitem>
         <listitem>
           <para><emphasis role="bold">Path.</emphasis> The exported path from the server.</para>


[19/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'ui-new-project-switcher' into ui-mixed-zone-management

Conflicts:
	ui/scripts/ui-custom/projectSelect.js


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5891f09d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5891f09d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5891f09d

Branch: refs/heads/marvin_refactor
Commit: 5891f09d8c1420e8d27db44e62c0dab89eeb0d55
Parents: 5d05e49 d529eba
Author: Brian Federle <br...@citrix.com>
Authored: Tue Apr 16 11:47:19 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Tue Apr 16 11:47:19 2013 -0700

----------------------------------------------------------------------
 ui/scripts/ui-custom/projectSelect.js |   38 ++++++++++++++++++++++++++-
 ui/scripts/ui-custom/projects.js      |    6 +++-
 2 files changed, 41 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[08/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2038: cloudstack UI - mixed zone management - instance wizard.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d146f3d9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d146f3d9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d146f3d9

Branch: refs/heads/marvin_refactor
Commit: d146f3d93aef1ea0b95ad3f6b81647fe926f5d53
Parents: fa8b835
Author: Jessica Wang <je...@citrix.com>
Authored: Mon Apr 15 13:55:51 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Mon Apr 15 13:55:51 2013 -0700

----------------------------------------------------------------------
 ui/scripts/instanceWizard.js |   37 +++++++++++++++++++++++++++----------
 1 files changed, 27 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d146f3d9/ui/scripts/instanceWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instanceWizard.js b/ui/scripts/instanceWizard.js
index e1aeafd..13828c8 100644
--- a/ui/scripts/instanceWizard.js
+++ b/ui/scripts/instanceWizard.js
@@ -70,14 +70,19 @@
     steps: [
     
 		// Step 1: Setup
-    function(args) {
-		  if(args.initArgs.pluginForm != null && args.initArgs.pluginForm.name == "vpcTierInstanceWizard") { //from VPC Tier chart			  
-			  //populate only one zone to the dropdown, the zone which the VPC is under.
-				zoneObjs = [{
-				  id: args.context.vpc[0].zoneid, 
-					name: args.context.vpc[0].zonename, 
-					networktype: 'Advanced'
-				}];	        		
+    function(args) {		  
+		  if(args.initArgs.pluginForm != null && args.initArgs.pluginForm.name == "vpcTierInstanceWizard") { //from VPC Tier chart	(VPC is only available in Advanced zone)	 
+				if(args.context.zoneType ==	'Basic'){  //Basic type
+				  zoneObjs = [];				
+        }
+        else { //Advanced type or all types          
+					//populate only one zone to the dropdown, the zone which the VPC is under. (networktype should be 'Advanced' since VPC is only available in Advanced zone)
+					zoneObjs = [{
+						id: args.context.vpc[0].zoneid, 
+						name: args.context.vpc[0].zonename, 
+						networktype: 'Advanced'
+					}];	   
+        }				
 				args.response.success({ data: {zones: zoneObjs}});
 			}
 			else { //from Instance page 			 
@@ -85,8 +90,20 @@
 					url: createURL("listZones&available=true"),
 					dataType: "json",
 					async: false,
-					success: function(json) {
-						zoneObjs = json.listzonesresponse.zone;						
+					success: function(json) {					  
+						if(args.context.zoneType == null || args.context.zoneType == '') { //all types
+						  zoneObjs = json.listzonesresponse.zone;			
+            }
+            else { //Basic type or Advanced type
+              zoneObjs = [];
+							var items = json.listzonesresponse.zone;
+							if(items != null) {
+							  for(var i = 0; i < items.length; i++) {
+								  if(items[i].networktype == args.context.zoneType) 
+								    zoneObjs.push(items[i]);
+								}
+							}
+            }						
 						args.response.success({ data: {zones: zoneObjs}});
 					}
 				});				


[20/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'master' into ui-mixed-zone-management


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c3009e31
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c3009e31
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c3009e31

Branch: refs/heads/marvin_refactor
Commit: c3009e316b31609f8e8e29b11756593f264afa2b
Parents: 5891f09 5ee3cc4
Author: Brian Federle <br...@citrix.com>
Authored: Wed Apr 17 11:09:01 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Wed Apr 17 11:09:01 2013 -0700

----------------------------------------------------------------------
 api/src/com/cloud/network/NetworkService.java      |    2 +-
 api/src/com/cloud/network/PhysicalNetwork.java     |    5 +-
 api/src/com/cloud/server/ManagementService.java    |    2 -
 .../org/apache/cloudstack/api/ApiConstants.java    |    2 +-
 .../admin/config/ListDeploymentPlannersCmd.java    |   71 ---
 .../admin/network/UpdatePhysicalNetworkCmd.java    |    8 +-
 .../admin/offering/CreateServiceOfferingCmd.java   |    6 -
 .../api/command/user/tag/CreateTagsCmd.java        |    2 +-
 .../api/command/user/tag/DeleteTagsCmd.java        |    2 +-
 .../api/command/user/tag/ListTagsCmd.java          |    2 +-
 client/tomcatconf/applicationContext.xml.in        |    1 -
 docs/en-US/Release_Notes.xml                       |  334 +++++++--------
 docs/en-US/source-build.xml                        |    4 +-
 .../hypervisor/kvm/resource/KVMHAMonitor.java      |   51 +++-
 .../kvm/resource/LibvirtComputingResource.java     |   22 +-
 .../CloudStackPrimaryDataStoreLifeCycleImpl.java   |    3 +-
 server/src/com/cloud/api/ApiResponseHelper.java    |    3 +-
 server/src/com/cloud/configuration/Config.java     |    2 +-
 .../cloud/configuration/ConfigurationManager.java  |    3 +-
 .../configuration/ConfigurationManagerImpl.java    |   19 +-
 server/src/com/cloud/dc/dao/DataCenterVnetDao.java |    6 +
 .../com/cloud/dc/dao/DataCenterVnetDaoImpl.java    |   50 +++-
 .../network/ExternalFirewallDeviceManagerImpl.java |   14 +-
 .../src/com/cloud/network/NetworkServiceImpl.java  |  289 +++++++++----
 .../com/cloud/network/dao/PhysicalNetworkVO.java   |   20 +-
 .../com/cloud/network/guru/GuestNetworkGuru.java   |   14 +-
 .../src/com/cloud/server/ManagementServerImpl.java |   19 -
 .../src/com/cloud/service/ServiceOfferingVO.java   |   23 -
 .../src/com/cloud/storage/StorageManagerImpl.java  |    4 +-
 server/src/com/cloud/vm/UserVmManagerImpl.java     |    5 +
 .../gslb/GlobalLoadBalancingRulesServiceImpl.java  |   11 +
 .../configuration/ConfigurationManagerTest.java    |    4 +-
 .../com/cloud/network/MockNetworkManagerImpl.java  |    2 +-
 .../cloud/network/UpdatePhysicalNetworkTest.java   |   68 +++
 .../cloud/vpc/MockConfigurationManagerImpl.java    |    2 +-
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |    2 +-
 setup/db/db/schema-410to420.sql                    |    1 -
 test/integration/component/test_accounts.py        |   10 +-
 .../component/test_allocation_states.py            |    2 +-
 test/integration/component/test_blocker_bugs.py    |    8 +-
 test/integration/component/test_egress_rules.py    |   13 +-
 test/integration/component/test_eip_elb.py         |    3 +-
 .../integration/component/test_network_offering.py |    5 +-
 test/integration/component/test_project_configs.py |    6 +-
 test/integration/component/test_project_limits.py  |    4 +-
 .../component/test_project_resources.py            |    7 +-
 test/integration/component/test_project_usage.py   |   10 +-
 test/integration/component/test_projects.py        |    8 +-
 test/integration/component/test_resource_limits.py |    4 +-
 test/integration/component/test_routers.py         |    5 +-
 test/integration/component/test_security_groups.py |    9 +-
 test/integration/component/test_snapshots.py       |    8 +-
 test/integration/component/test_templates.py       |    3 +-
 test/integration/component/test_usage.py           |   10 +-
 .../integration/component/test_vm_passwdenabled.py |    1 +
 test/integration/component/test_volumes.py         |    6 +-
 test/integration/smoke/test_non_contigiousvlan.py  |  125 ++++++
 tools/apidoc/gen_toc.py                            |    1 +
 tools/marvin/marvin/asyncJobMgr.py                 |    2 +-
 tools/marvin/marvin/cloudstackConnection.py        |  238 ++++++-----
 tools/marvin/marvin/cloudstackTestClient.py        |    3 +-
 tools/marvin/marvin/codegenerator.py               |    4 +-
 tools/marvin/marvin/deployDataCenter.py            |    1 -
 tools/marvin/marvin/jsonHelper.py                  |    7 +-
 tools/marvin/setup.py                              |    1 +
 ui/scripts/cloudStack.js                           |    6 +-
 ui/scripts/regions.js                              |  308 ++++++++++++--
 ui/scripts/system.js                               |   52 ++-
 ui/scripts/zoneWizard.js                           |   16 +-
 69 files changed, 1334 insertions(+), 630 deletions(-)
----------------------------------------------------------------------



[41/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Fixing the incorrect zone typo

zone.networktype reference corrected as part of commit
5ee3cc41fecb08b0dba16341fef12684a50ecc98


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d0108b81
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d0108b81
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d0108b81

Branch: refs/heads/marvin_refactor
Commit: d0108b8132242385912f3659deb449bfe742eb19
Parents: 0e689db
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 12:32:28 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 12:33:00 2013 +0530

----------------------------------------------------------------------
 test/integration/component/test_accounts.py        |   16 +++++-----
 .../component/test_allocation_states.py            |    2 +-
 test/integration/component/test_blocker_bugs.py    |   12 ++++----
 test/integration/component/test_egress_rules.py    |   22 +++++++-------
 test/integration/component/test_eip_elb.py         |    4 +-
 .../integration/component/test_network_offering.py |    8 +++---
 test/integration/component/test_project_configs.py |   10 +++---
 test/integration/component/test_project_limits.py  |    6 ++--
 .../component/test_project_resources.py            |   12 ++++----
 test/integration/component/test_project_usage.py   |   18 ++++++------
 test/integration/component/test_projects.py        |   14 +++++-----
 test/integration/component/test_resource_limits.py |    6 ++--
 test/integration/component/test_routers.py         |    8 +++---
 test/integration/component/test_security_groups.py |   14 +++++-----
 test/integration/component/test_snapshots.py       |   14 +++++-----
 test/integration/component/test_storage_motion.py  |    4 +-
 test/integration/component/test_templates.py       |    4 +-
 test/integration/component/test_usage.py           |   18 ++++++------
 .../integration/component/test_vm_passwdenabled.py |    2 +-
 test/integration/component/test_volumes.py         |   10 +++---
 test/integration/smoke/test_ScaleVm.py             |    2 +-
 test/integration/smoke/test_iso.py                 |    2 +-
 test/integration/smoke/test_network.py             |    2 +-
 test/integration/smoke/test_routers.py             |    2 +-
 test/integration/smoke/test_templates.py           |    2 +-
 test/integration/smoke/test_volumes.py             |    2 +-
 26 files changed, 108 insertions(+), 108 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_accounts.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_accounts.py b/test/integration/component/test_accounts.py
index 882423e..459cfb3 100644
--- a/test/integration/component/test_accounts.py
+++ b/test/integration/component/test_accounts.py
@@ -109,7 +109,7 @@ class TestAccounts(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -239,7 +239,7 @@ class TestRemoveUserFromAccount(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -507,7 +507,7 @@ class TestNonRootAdminsPrivileges(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone settings
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         # Create an account, domain etc
         cls.domain = Domain.create(
                                    cls.api_client,
@@ -853,7 +853,7 @@ class TesttemplateHierarchy(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone settings
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["template"]["zoneid"] = cls.zone.id
 
         # Create domains, accounts and template
@@ -1002,7 +1002,7 @@ class TestAddVmToSubDomain(cloudstackTestCase):
                                cls.api_client,
                                cls.services,
                                )
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.sub_domain = Domain.create(
                                    cls.api_client,
                                    cls.services["domain"],
@@ -1148,7 +1148,7 @@ class TestUserDetails(cloudstackTestCase):
         # Get Zone, Domain etc
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls._cleanup = []
         return
 
@@ -1455,7 +1455,7 @@ class TestUserLogin(cloudstackTestCase):
         # Get Zone, Domain etc
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls._cleanup = []
         return
 
@@ -1620,7 +1620,7 @@ class TestDomainForceRemove(cloudstackTestCase):
                                cls.api_client,
                                cls.services,
                                )
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_allocation_states.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_allocation_states.py b/test/integration/component/test_allocation_states.py
index efbb3ba..fe4c35f 100644
--- a/test/integration/component/test_allocation_states.py
+++ b/test/integration/component/test_allocation_states.py
@@ -93,7 +93,7 @@ class TestAllocationState(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls._cleanup = []
         return
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_blocker_bugs.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_blocker_bugs.py b/test/integration/component/test_blocker_bugs.py
index e85a073..bfd1c13 100644
--- a/test/integration/component/test_blocker_bugs.py
+++ b/test/integration/component/test_blocker_bugs.py
@@ -113,7 +113,7 @@ class TestSnapshots(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -421,7 +421,7 @@ class TestTemplate(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["virtual_machine"]["zoneid"] = cls.zone.id
         cls.services["templates"]["zoneid"] = cls.zone.id
 
@@ -543,7 +543,7 @@ class TestNATRules(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -738,7 +738,7 @@ class TestRouters(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -865,7 +865,7 @@ class TestRouterRestart(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -995,7 +995,7 @@ class TestTemplates(cloudstackTestCase):
         # Get Zone, templates etc
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_egress_rules.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_egress_rules.py b/test/integration/component/test_egress_rules.py
index ffcb299..7972aa5 100644
--- a/test/integration/component/test_egress_rules.py
+++ b/test/integration/component/test_egress_rules.py
@@ -154,7 +154,7 @@ class TestDefaultSecurityGroupEgress(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -313,7 +313,7 @@ class TestAuthorizeIngressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -471,7 +471,7 @@ class TestDefaultGroupEgress(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -672,7 +672,7 @@ class TestDefaultGroupEgressAfterDeploy(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -855,7 +855,7 @@ class TestRevokeEgressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1117,7 +1117,7 @@ class TestInvalidAccountAuthroize(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1239,7 +1239,7 @@ class TestMultipleAccountsEgressRuleNeg(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1487,7 +1487,7 @@ class TestMultipleAccountsEgressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1784,7 +1784,7 @@ class TestStartStopVMWithEgressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1996,7 +1996,7 @@ class TestInvalidParametersForEgress(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -2179,7 +2179,7 @@ class TestEgressAfterHostMaintainance(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.pod = get_pod(
                           cls.api_client,
                           zoneid=cls.zone.id

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_eip_elb.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_eip_elb.py b/test/integration/component/test_eip_elb.py
index c588c1b..c1ad505 100644
--- a/test/integration/component/test_eip_elb.py
+++ b/test/integration/component/test_eip_elb.py
@@ -96,7 +96,7 @@ class TestEIP(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -919,7 +919,7 @@ class TestELB(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_network_offering.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_network_offering.py b/test/integration/component/test_network_offering.py
index cc6f25e..8b12525 100644
--- a/test/integration/component/test_network_offering.py
+++ b/test/integration/component/test_network_offering.py
@@ -157,7 +157,7 @@ class TestNOVirtualRouter(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -736,7 +736,7 @@ class TestNOWithNetscaler(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1372,7 +1372,7 @@ class TestNetworkUpgrade(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1829,7 +1829,7 @@ class TestSharedNetworkWithoutIp(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_project_configs.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_configs.py b/test/integration/component/test_project_configs.py
index 92290d0..f1469f2 100644
--- a/test/integration/component/test_project_configs.py
+++ b/test/integration/component/test_project_configs.py
@@ -116,7 +116,7 @@ class TestUserProjectCreation(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         configs = Configurations.list(
                                       cls.api_client,
@@ -282,7 +282,7 @@ class TestProjectCreationNegative(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Checking for prereqisits - global configs
         configs = Configurations.list(
@@ -428,7 +428,7 @@ class TestProjectInviteRequired(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = get_domain(cls.api_client, cls.services)
@@ -580,7 +580,7 @@ class TestProjectInviteRequiredTrue(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = get_domain(cls.api_client, cls.services)
@@ -733,7 +733,7 @@ class TestProjectInviteTimeout(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = get_domain(cls.api_client, cls.services)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_project_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_limits.py b/test/integration/component/test_project_limits.py
index 2eceb88..ab13238 100644
--- a/test/integration/component/test_project_limits.py
+++ b/test/integration/component/test_project_limits.py
@@ -130,7 +130,7 @@ class TestProjectLimits(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = Domain.create(
@@ -481,7 +481,7 @@ class TestResourceLimitsProject(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -922,7 +922,7 @@ class TestMaxProjectNetworks(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_project_resources.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_resources.py b/test/integration/component/test_project_resources.py
index 9ad0365..191ceb5 100644
--- a/test/integration/component/test_project_resources.py
+++ b/test/integration/component/test_project_resources.py
@@ -148,7 +148,7 @@ class TestOfferings(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone and template
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -329,7 +329,7 @@ class TestNetwork(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone and template
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -517,7 +517,7 @@ class TestTemplates(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -747,7 +747,7 @@ class TestSnapshots(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -894,7 +894,7 @@ class TestPublicIpAddress(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -1194,7 +1194,7 @@ class TestSecurityGroup(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_project_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_project_usage.py b/test/integration/component/test_project_usage.py
index 34335b7..03c42fd 100644
--- a/test/integration/component/test_project_usage.py
+++ b/test/integration/component/test_project_usage.py
@@ -124,7 +124,7 @@ class TestVmUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -319,7 +319,7 @@ class TestPublicIPUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -491,7 +491,7 @@ class TestVolumeUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -676,7 +676,7 @@ class TestTemplateUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["server"]["zoneid"] = cls.zone.id
         template = get_template(
                             cls.api_client,
@@ -849,7 +849,7 @@ class TestISOUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["server"]["zoneid"] = cls.zone.id
         cls.services["iso"]["zoneid"] = cls.zone.id
         # Create Account, ISO image etc
@@ -997,7 +997,7 @@ class TestLBRuleUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1180,7 +1180,7 @@ class TestSnapshotUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1358,7 +1358,7 @@ class TestNatRuleUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1541,7 +1541,7 @@ class TestVpnUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_projects.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_projects.py b/test/integration/component/test_projects.py
index 767cb06..95df5bf 100644
--- a/test/integration/component/test_projects.py
+++ b/test/integration/component/test_projects.py
@@ -110,7 +110,7 @@ class TestMultipleProjectCreation(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         # Create domains, account etc.
         cls.domain = get_domain(
@@ -323,7 +323,7 @@ class TestCrossDomainAccountAdd(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.domain = get_domain(
                                    cls.api_client,
                                    cls.services
@@ -457,7 +457,7 @@ class TestDeleteAccountWithProject(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.domain = get_domain(
                                    cls.api_client,
                                    cls.services
@@ -571,7 +571,7 @@ class TestDeleteDomainWithProject(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         configs = Configurations.list(
                                       cls.api_client,
@@ -716,7 +716,7 @@ class TestProjectOwners(cloudstackTestCase):
                                    cls.services
                                    )
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         configs = Configurations.list(
                                       cls.api_client,
@@ -1140,7 +1140,7 @@ class TestProjectResources(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.domain = get_domain(
                                    cls.api_client,
                                    cls.services
@@ -1449,7 +1449,7 @@ class TestProjectSuspendActivate(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, domain, template etc
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.domain = get_domain(
                                    cls.api_client,
                                    cls.services

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_resource_limits.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_resource_limits.py b/test/integration/component/test_resource_limits.py
index 3e7548e..641825b 100644
--- a/test/integration/component/test_resource_limits.py
+++ b/test/integration/component/test_resource_limits.py
@@ -117,7 +117,7 @@ class TestResourceLimitsAccount(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -881,7 +881,7 @@ class TestResourceLimitsDomain(cloudstackTestCase):
         cls.services = Services().services
         # Get Zone, Domain and templates
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -1339,7 +1339,7 @@ class TestMaxAccountNetworks(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_routers.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_routers.py b/test/integration/component/test_routers.py
index 41bf23f..452c034 100644
--- a/test/integration/component/test_routers.py
+++ b/test/integration/component/test_routers.py
@@ -104,7 +104,7 @@ class TestRouterServices(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -592,7 +592,7 @@ class TestRouterStopCreatePF(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -804,7 +804,7 @@ class TestRouterStopCreateLB(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1016,7 +1016,7 @@ class TestRouterStopCreateFW(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_security_groups.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_security_groups.py b/test/integration/component/test_security_groups.py
index 4255d42..7459d2a 100644
--- a/test/integration/component/test_security_groups.py
+++ b/test/integration/component/test_security_groups.py
@@ -123,7 +123,7 @@ class TestDefaultSecurityGroup(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -396,7 +396,7 @@ class TestAuthorizeIngressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -532,7 +532,7 @@ class TestRevokeIngressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -691,7 +691,7 @@ class TestDhcpOnlyRouter(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -828,7 +828,7 @@ class TestdeployVMWithUserData(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -988,7 +988,7 @@ class TestDeleteSecurityGroup(cloudstackTestCase):
         # Get Zone, Domain and templates
         self.domain = get_domain(self.apiclient, self.services)
         self.zone = get_zone(self.apiclient, self.services)
-        self.services['mode'] = zone.networktype
+        self.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             self.apiclient,
@@ -1234,7 +1234,7 @@ class TestIngressRule(cloudstackTestCase):
         # Get Zone, Domain and templates
         self.domain = get_domain(self.apiclient, self.services)
         self.zone = get_zone(self.apiclient, self.services)
-        self.services['mode'] = zone.networktype
+        self.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             self.apiclient,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_snapshots.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_snapshots.py b/test/integration/component/test_snapshots.py
index 9ff57ab..5567917 100644
--- a/test/integration/component/test_snapshots.py
+++ b/test/integration/component/test_snapshots.py
@@ -133,7 +133,7 @@ class TestSnapshotRootDisk(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -356,7 +356,7 @@ class TestSnapshots(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -1191,7 +1191,7 @@ class TestCreateVMsnapshotTemplate(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.template = get_template(
                             cls.api_client,
@@ -1487,7 +1487,7 @@ class TestAccountSnapshotClean(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1836,7 +1836,7 @@ class TestSnapshotDetachedDisk(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
@@ -2124,7 +2124,7 @@ class TestSnapshotLimit(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -2383,7 +2383,7 @@ class TestSnapshotEvents(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_storage_motion.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_storage_motion.py b/test/integration/component/test_storage_motion.py
index cc55a08..b893b8b 100644
--- a/test/integration/component/test_storage_motion.py
+++ b/test/integration/component/test_storage_motion.py
@@ -99,7 +99,7 @@ class TestStorageMotion(cloudstackTestCase):
         # Get Zone, Domain and templates
         domain = get_domain(cls.api_client, cls.services)
         zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -295,4 +295,4 @@ class TestStorageMotion(cloudstackTestCase):
                              "Check volume is on migrated pool"
                              )
 
-        return
\ No newline at end of file
+        return

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_templates.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_templates.py b/test/integration/component/test_templates.py
index 980640d..a743bf7 100644
--- a/test/integration/component/test_templates.py
+++ b/test/integration/component/test_templates.py
@@ -127,7 +127,7 @@ class TestCreateTemplate(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["virtual_machine"]["zoneid"] = cls.zone.id
 
         cls.service_offering = ServiceOffering.create(
@@ -283,7 +283,7 @@ class TestTemplates(cloudstackTestCase):
         # Get Zone, templates etc
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         #populate second zone id for iso copy
         cmd = listZones.listZonesCmd()
         zones = cls.api_client.listZones(cmd)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_usage.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_usage.py b/test/integration/component/test_usage.py
index 27e3719..39228ba 100644
--- a/test/integration/component/test_usage.py
+++ b/test/integration/component/test_usage.py
@@ -117,7 +117,7 @@ class TestVmUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -301,7 +301,7 @@ class TestPublicIPUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -453,7 +453,7 @@ class TestVolumeUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -627,7 +627,7 @@ class TestTemplateUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["server"]["zoneid"] = cls.zone.id
         template = get_template(
                             cls.api_client,
@@ -792,7 +792,7 @@ class TestISOUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.services["server"]["zoneid"] = cls.zone.id
         cls.services["iso"]["zoneid"] = cls.zone.id
         # Create Account, ISO image etc
@@ -929,7 +929,7 @@ class TestLBRuleUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1091,7 +1091,7 @@ class TestSnapshotUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,
@@ -1258,7 +1258,7 @@ class TestNatRuleUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,
@@ -1420,7 +1420,7 @@ class TestVpnUsage(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_vm_passwdenabled.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_vm_passwdenabled.py b/test/integration/component/test_vm_passwdenabled.py
index eccc488..e3bcf67 100644
--- a/test/integration/component/test_vm_passwdenabled.py
+++ b/test/integration/component/test_vm_passwdenabled.py
@@ -83,7 +83,7 @@ class TestVMPasswordEnabled(cloudstackTestCase):
         # Get Zone, Domain and templates
         domain = get_domain(cls.api_client, cls.services)
         zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
             cls.api_client,
             zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/component/test_volumes.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_volumes.py b/test/integration/component/test_volumes.py
index d1f3cf5..f50113b 100644
--- a/test/integration/component/test_volumes.py
+++ b/test/integration/component/test_volumes.py
@@ -100,7 +100,7 @@ class TestAttachVolume(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -371,7 +371,7 @@ class TestAttachDetachVolume(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -617,7 +617,7 @@ class TestAttachVolumeISO(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -809,7 +809,7 @@ class TestVolumes(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]
@@ -1049,7 +1049,7 @@ class TestDeployVmWithCustomDisk(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"],

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_ScaleVm.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_ScaleVm.py b/test/integration/smoke/test_ScaleVm.py
index 64fe4dc..81a477e 100644
--- a/test/integration/smoke/test_ScaleVm.py
+++ b/test/integration/smoke/test_ScaleVm.py
@@ -105,7 +105,7 @@ class TestScaleVm(cloudstackTestCase):
         # Get Zone, Domain and templates
         domain = get_domain(cls.api_client, cls.services)
         zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
 
         template = get_template(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_iso.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_iso.py b/test/integration/smoke/test_iso.py
index 3f8f11a..0b7d276 100644
--- a/test/integration/smoke/test_iso.py
+++ b/test/integration/smoke/test_iso.py
@@ -91,7 +91,7 @@ class TestCreateIso(cloudstackTestCase):
         # Get Zone, Domain and templates
         self.domain = get_domain(self.apiclient, self.services)
         self.zone = get_zone(self.apiclient, self.services)
-        self.services['mode'] = zone.networktype
+        self.services['mode'] = self.zone.networktype
         self.services["domainid"] = self.domain.id
         self.services["iso_2"]["zoneid"] = self.zone.id
         

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_network.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_network.py b/test/integration/smoke/test_network.py
index e2c63a4..df89eaa 100644
--- a/test/integration/smoke/test_network.py
+++ b/test/integration/smoke/test_network.py
@@ -118,7 +118,7 @@ class TestPublicIP(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         # Create Accounts & networks
         cls.account = Account.create(
                             cls.api_client,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_routers.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_routers.py b/test/integration/smoke/test_routers.py
index 93116bf..86ed4e9 100644
--- a/test/integration/smoke/test_routers.py
+++ b/test/integration/smoke/test_routers.py
@@ -80,7 +80,7 @@ class TestRouterServices(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        self.services['mode'] = zone.networktype
+        self.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_templates.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_templates.py b/test/integration/smoke/test_templates.py
index 2b0e2f5..a648098 100644
--- a/test/integration/smoke/test_templates.py
+++ b/test/integration/smoke/test_templates.py
@@ -124,7 +124,7 @@ class TestCreateTemplate(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d0108b81/test/integration/smoke/test_volumes.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_volumes.py b/test/integration/smoke/test_volumes.py
index 9aa44eb..750f985 100644
--- a/test/integration/smoke/test_volumes.py
+++ b/test/integration/smoke/test_volumes.py
@@ -99,7 +99,7 @@ class TestCreateVolume(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         cls.disk_offering = DiskOffering.create(
                                     cls.api_client,
                                     cls.services["disk_offering"]


[07/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Project switcher: Add label


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c529c5a1
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c529c5a1
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c529c5a1

Branch: refs/heads/marvin_refactor
Commit: c529c5a18d7f18a72cf2d2de6368526966a6ac3e
Parents: aa5ed0a
Author: Brian Federle <br...@citrix.com>
Authored: Wed Apr 10 14:42:22 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Wed Apr 10 14:43:52 2013 -0700

----------------------------------------------------------------------
 ui/css/cloudstack3.css                |    9 ++++++++-
 ui/scripts/ui-custom/projectSelect.js |    3 ++-
 2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c529c5a1/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index bf3cfb5..61e5ab4 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -8913,6 +8913,13 @@ div.ui-dialog div.multi-edit-add-list div.view div.data-table table.body tbody t
   padding: 9px 17px 0 0;
 }
 
+.project-switcher label {
+  position: absolute;
+  top: -2px;
+  color: #FFFFFF;
+  font-size: 11px;
+}
+
 .project-switcher select {
   width: 100%;
   font-size: 12px;
@@ -11390,7 +11397,7 @@ div.ui-dialog div.autoscaler div.field-group div.form-container form div.form-it
   border-bottom: 1px solid #FFFFFF;
   height: 28px;
   float: left;
-  margin: 4px 13px 0 0;
+  margin: 5px 13px 0 0;
   cursor: pointer;
   /*+box-shadow:inset 0px 1px 1px #000000;*/
   -moz-box-shadow: inset 0px 1px 1px #000000;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c529c5a1/ui/scripts/ui-custom/projectSelect.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/projectSelect.js b/ui/scripts/ui-custom/projectSelect.js
index ae3d8f9..f93fefc 100644
--- a/ui/scripts/ui-custom/projectSelect.js
+++ b/ui/scripts/ui-custom/projectSelect.js
@@ -23,8 +23,9 @@
       $('<option>').attr('value', 'basic').html(_l('Project 1')),
       $('<option>').attr('value', 'advanced').html(_l('Project 2'))
     );
+    var $label = $('<label>').html('Project:');
 
-    $projectSelect.appendTo($projectSwitcher);
+    $projectSwitcher.append($label, $projectSelect);
     $projectSwitcher.insertBefore($header.find('.region-switcher'));
   });
 }(jQuery, cloudStack));      


[15/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2038: cloudstack UI - mixed zone management - template menu - copy ISO action - populate zone dropdown upon selected zone type on top menu.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/dd62b3de
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/dd62b3de
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/dd62b3de

Branch: refs/heads/marvin_refactor
Commit: dd62b3de7e57fd3eeb75502e7e57564b6560b6b0
Parents: 6c2f2d3
Author: Jessica Wang <je...@citrix.com>
Authored: Mon Apr 15 16:42:40 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Mon Apr 15 16:42:40 2013 -0700

----------------------------------------------------------------------
 ui/scripts/templates.js |   32 ++++++++++++++++++++++++--------
 1 files changed, 24 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dd62b3de/ui/scripts/templates.js
----------------------------------------------------------------------
diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js
index c1e01c1..52e1135 100644
--- a/ui/scripts/templates.js
+++ b/ui/scripts/templates.js
@@ -1222,14 +1222,30 @@
                           url: createURL("listZones&available=true"),
                           dataType: "json",
                           async: true,
-                          success: function(json) {
-                            var zoneObjs = json.listzonesresponse.zone;
-                            var items = [];
-                            $(zoneObjs).each(function() {
-                              if(this.id != args.context.isos[0].zoneid)
-                                items.push({id: this.id, description: this.name});
-                            });
-                            args.response.success({data: items});
+                          success: function(json) {      
+														var zoneObjs = [];
+														var items = json.listzonesresponse.zone;														
+														if(args.context.zoneType == null || args.context.zoneType == '') { //all types
+														  if(items != null) {
+																for(var i = 0; i < items.length; i++) {																																	
+																	if(items[i].id != args.context.isos[0].zoneid) { //destination zone must be different from source zone
+																		zoneObjs.push({id: items[i].id, description: items[i].name});
+																	}																	
+																}
+															}
+														}
+														else {	//Basic type or Advanced type													
+															if(items != null) {
+																for(var i = 0; i < items.length; i++) {
+																	if(items[i].networktype == args.context.zoneType) {	//type must be matched													
+																		if(items[i].id != args.context.isos[0].zoneid) { //destination zone must be different from source zone
+																			zoneObjs.push({id: items[i].id, description: items[i].name});
+																		}
+																	}
+																}
+															}
+														}
+                            args.response.success({data: zoneObjs});			
                           }
                         });
                       }


[17/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Project selector UI functionality


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d529eba9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d529eba9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d529eba9

Branch: refs/heads/marvin_refactor
Commit: d529eba941f626d458d1e08bad860e97797d90fa
Parents: a748988
Author: Brian Federle <br...@citrix.com>
Authored: Tue Apr 16 11:44:00 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Tue Apr 16 11:44:00 2013 -0700

----------------------------------------------------------------------
 ui/scripts/ui-custom/projectSelect.js |   38 ++++++++++++++++++++++++++-
 ui/scripts/ui-custom/projects.js      |    6 +++-
 2 files changed, 41 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d529eba9/ui/scripts/ui-custom/projectSelect.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/projectSelect.js b/ui/scripts/ui-custom/projectSelect.js
index f93fefc..82d02c1 100644
--- a/ui/scripts/ui-custom/projectSelect.js
+++ b/ui/scripts/ui-custom/projectSelect.js
@@ -20,13 +20,47 @@
     var $header = $('#header .controls');
     var $projectSwitcher = $('<div>').addClass('project-switcher');
     var $projectSelect = $('<select>').append(
-      $('<option>').attr('value', 'basic').html(_l('Project 1')),
-      $('<option>').attr('value', 'advanced').html(_l('Project 2'))
+      $('<option>').attr('value', '-1').html(_l('Default view'))
     );
     var $label = $('<label>').html('Project:');
 
+    // Get project list
+    cloudStack.projects.dataProvider({
+      context: cloudStack.context,
+      response: {
+        success: function(args) {
+          var projects = args.data;
+
+          $(projects).map(function(index, project) {
+            var $option = $('<option>').val(project.id);
+
+            $option.html(project.displaytext ? project.displaytext : project.name);
+            $option.appendTo($projectSelect);
+          });
+        },
+        error: function() {}
+      }
+    });
+
     $projectSwitcher.append($label, $projectSelect);
     $projectSwitcher.insertBefore($header.find('.region-switcher'));
+
+    // Change project event
+    $projectSelect.change(function() {
+      var projectID = $projectSelect.val();
+
+      if (projectID != -1) {
+        cloudStack.context.projects = [{
+          id: projectID
+        }];
+
+        cloudStack.uiCustom.projects({ alreadySelected: true });
+      } else {
+        cloudStack.context.projects = null;
+        $('#cloudStack3-container').removeClass('project-view');
+        $('#navigation li.dashboard').click();
+      }
+    });
   });
 }(jQuery, cloudStack));      
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d529eba9/ui/scripts/ui-custom/projects.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/projects.js b/ui/scripts/ui-custom/projects.js
index 117c433..82abadd 100644
--- a/ui/scripts/ui-custom/projects.js
+++ b/ui/scripts/ui-custom/projects.js
@@ -728,7 +728,11 @@
     };
     $dashboardNavItem.bind('click', event);
 
-    pageElems.selector(args);
+    if (args.alreadySelected) {
+      showDashboard();
+    } else {
+      pageElems.selector(args);
+    }
   };
 
   /**


[40/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2096 Deployment Planner - Deployment planner is not looking for hosts in other clusters when vm is being started.

Changes:
- Cloud-engine 2 step reserver and deploy flow was not retrying out of clusters, if there are no resources in the volume's cluster.
- Fixed this by letting the reservationm step not error out and continue to let deploy step find out resources outside cluster


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0e689dbc
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0e689dbc
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0e689dbc

Branch: refs/heads/marvin_refactor
Commit: 0e689dbcc7a0df19a628698bd985173856568278
Parents: b888450
Author: Prachi Damle <pr...@cloud.com>
Authored: Fri Apr 19 17:53:37 2013 -0700
Committer: Prachi Damle <pr...@cloud.com>
Committed: Fri Apr 19 17:55:37 2013 -0700

----------------------------------------------------------------------
 .../engine/cloud/entity/api/VMEntityManager.java   |    2 +-
 .../cloud/entity/api/VMEntityManagerImpl.java      |   53 +++++++++------
 .../cloud/entity/api/VirtualMachineEntityImpl.java |    2 +-
 3 files changed, 34 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0e689dbc/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
index 82c580f..ca0a777 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManager.java
@@ -37,7 +37,7 @@ public interface VMEntityManager {
 
 	String reserveVirtualMachine(VMEntityVO vmEntityVO, String plannerToUse, DeploymentPlan plan, ExcludeList exclude) throws InsufficientCapacityException, ResourceUnavailableException;
 
-    void deployVirtualMachine(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException;
+    void deployVirtualMachine(String reservationId, VMEntityVO vmEntityVO, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException;
 
     boolean stopvirtualmachine(VMEntityVO vmEntityVO, String caller) throws ResourceUnavailableException;
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0e689dbc/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
index ec813b2..25e7423 100755
--- a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VMEntityManagerImpl.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 import javax.inject.Inject;
 
@@ -136,6 +137,7 @@ public class VMEntityManagerImpl implements VMEntityManager {
             plan = new DataCenterDeployment(planToDeploy.getDataCenterId(), planToDeploy.getPodId(), planToDeploy.getClusterId(), planToDeploy.getHostId(), planToDeploy.getPoolId(), planToDeploy.getPhysicalNetworkId());
         }
 
+        boolean planChangedByReadyVolume = false;
         List<VolumeVO> vols = _volsDao.findReadyRootVolumesByInstance(vm.getId());
         if(!vols.isEmpty()){
             VolumeVO vol = vols.get(0);
@@ -158,7 +160,7 @@ public class VMEntityManagerImpl implements VMEntityManager {
                     plan = new DataCenterDeployment(planToDeploy.getDataCenterId(), planToDeploy.getPodId(), planToDeploy.getClusterId(), planToDeploy.getHostId(), vol.getPoolId(), null, null);
                 }else{
                     plan = new DataCenterDeployment(rootVolDcId, rootVolPodId, rootVolClusterId, null, vol.getPoolId(), null, null);
-
+                    planChangedByReadyVolume = true;
                 }
             }
 
@@ -187,6 +189,10 @@ public class VMEntityManagerImpl implements VMEntityManager {
             _vmEntityDao.persist(vmEntityVO);
 
             return vmReservation.getUuid();
+        } else if (planChangedByReadyVolume) {
+            // we could not reserve in the Volume's cluster - let the deploy
+            // call retry it.
+            return UUID.randomUUID().toString();
         }else{
             throw new InsufficientServerCapacityException("Unable to create a deployment for " + vmProfile, DataCenter.class, plan.getDataCenterId());
         }
@@ -194,31 +200,36 @@ public class VMEntityManagerImpl implements VMEntityManager {
     }
 
     @Override
-    public void deployVirtualMachine(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException{
+    public void deployVirtualMachine(String reservationId, VMEntityVO vmEntityVO, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException{
         //grab the VM Id and destination using the reservationId.
 
+        VMInstanceVO vm = _vmDao.findByUuid(vmEntityVO.getUuid());
+
         VMReservationVO vmReservation = _reservationDao.findByReservationId(reservationId);
-        long vmId = vmReservation.getVmId();
-
-        VMInstanceVO vm = _vmDao.findById(vmId);
-        //Pass it down
-        Long poolId = null;
-        Map<Long,Long> storage = vmReservation.getVolumeReservation();
-        if(storage != null){
-            List<Long> volIdList = new ArrayList<Long>(storage.keySet());
-            if(volIdList !=null && !volIdList.isEmpty()){
-                poolId = storage.get(volIdList.get(0));
+        if(vmReservation != null){
+            // Pass it down
+            Long poolId = null;
+            Map<Long, Long> storage = vmReservation.getVolumeReservation();
+            if (storage != null) {
+                List<Long> volIdList = new ArrayList<Long>(storage.keySet());
+                if (volIdList != null && !volIdList.isEmpty()) {
+                    poolId = storage.get(volIdList.get(0));
+                }
             }
-        }
 
-        DataCenterDeployment reservedPlan = new DataCenterDeployment(vm.getDataCenterId(), vmReservation.getPodId(), vmReservation.getClusterId(),
-                vmReservation.getHostId(), null , null);
-        try{
-            VMInstanceVO vmDeployed = _itMgr.start(vm, params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()), reservedPlan);
-        }catch(Exception ex){
-            //Retry the deployment without using the reservation plan
-            DataCenterDeployment plan = new DataCenterDeployment(vm.getDataCenterId(), null, null,null, null , null);
-            _itMgr.start(vm, params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()), plan);
+            DataCenterDeployment reservedPlan = new DataCenterDeployment(vm.getDataCenterId(),
+                    vmReservation.getPodId(), vmReservation.getClusterId(), vmReservation.getHostId(), null, null);
+            try {
+                VMInstanceVO vmDeployed = _itMgr.start(vm, params, _userDao.findById(new Long(caller)),
+                        _accountDao.findById(vm.getAccountId()), reservedPlan);
+            } catch (Exception ex) {
+                // Retry the deployment without using the reservation plan
+                _itMgr.start(vm, params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()),
+                        null);
+            }
+        } else {
+            // no reservation found. Let VirtualMachineManager retry
+            _itMgr.start(vm, params, _userDao.findById(new Long(caller)), _accountDao.findById(vm.getAccountId()), null);
         }
 
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0e689dbc/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
index c2ca729..dd57f9a 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/cloud/entity/api/VirtualMachineEntityImpl.java
@@ -206,7 +206,7 @@ public class VirtualMachineEntityImpl implements VirtualMachineEntity {
 
 	@Override
 	public void deploy(String reservationId, String caller, Map<VirtualMachineProfile.Param, Object> params) throws InsufficientCapacityException, ResourceUnavailableException{
-	    manager.deployVirtualMachine(reservationId, caller, params);
+        manager.deployVirtualMachine(reservationId, this.vmEntityVO, caller, params);
 	}
 
 	@Override


[28/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Give some more details on what is expected of an IpDeployer.

Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4a3a9dfb
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4a3a9dfb
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4a3a9dfb

Branch: refs/heads/marvin_refactor
Commit: 4a3a9dfbc2832766594c6ede449d202dc2ed8c66
Parents: a28a199
Author: Hugo Trippaers <tr...@gmail.com>
Authored: Fri Apr 19 16:37:22 2013 +0200
Committer: Hugo Trippaers <tr...@gmail.com>
Committed: Fri Apr 19 16:37:22 2013 +0200

----------------------------------------------------------------------
 api/src/com/cloud/network/element/IpDeployer.java |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a3a9dfb/api/src/com/cloud/network/element/IpDeployer.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/element/IpDeployer.java b/api/src/com/cloud/network/element/IpDeployer.java
index c92d3e3..d356c3b 100644
--- a/api/src/com/cloud/network/element/IpDeployer.java
+++ b/api/src/com/cloud/network/element/IpDeployer.java
@@ -28,7 +28,11 @@ import com.cloud.utils.component.Adapter;
 
 public interface IpDeployer extends Adapter{
     /**
-     * Apply ip addresses to this network
+     * Modify ip addresses on this network
+     * Depending on the State of the ip addresses the element should take
+     * appropriate action. 
+     * If state is Releasing the ip address should be de-allocated
+     * If state is Allocating or Allocated the ip address should be provisioned
      * @param network
      * @param ipAddress
      * @return


[35/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CHANGES file history from past releases

Signed-off-by: Chip Childers <ch...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a1ecc739
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a1ecc739
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a1ecc739

Branch: refs/heads/marvin_refactor
Commit: a1ecc7398ccb1ed99a3042b019de85e8ddbd0500
Parents: e593665
Author: Chip Childers <ch...@apache.org>
Authored: Fri Apr 19 15:03:03 2013 -0400
Committer: Chip Childers <ch...@apache.org>
Committed: Fri Apr 19 15:03:03 2013 -0400

----------------------------------------------------------------------
 CHANGES |  385 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 382 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a1ecc739/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index a1edfda..054e7b0 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,7 +1,387 @@
-Apache CloudStack (Incubating) CHANGES
+Apache CloudStack CHANGES
 ======================================
 
-Full release notes for each release are located in the project's documentation website:  http://cloudstack.apache.org/docs
+Full release notes for each release are located in the project's documentation website:  
+http://cloudstack.apache.org/docs
+
+Version 4.2.0
+------------------------
+
+In progress
+
+
+
+
+Version 4.1.0
+------------------------
+
+This is the second major release of CloudStack from within the Apache Software Foundation, and the
+first major release as a Top-Level Project (TLP). 
+
+Build Tool Changes:
+
+ * The project now uses Maven 3 exclusively to build. 
+
+New Features:
+* CLOUDSTACK-101: OVS support in KVM
+* CLOUDSTACK-132: Mash up marvin into an interactive auto-completing API shell for CloudStack
+* CLOUDSTACK-241: AWS Style Regions
+* CLOUDSTACK-297: Reset SSH Key to access VM (similar to reset password)
+* CLOUDSTACK-299: Egress firewall rules for guest network
+* CLOUDSTACK-306: Support SRX & F5 inline mode
+* CLOUDSTACK-618: API request throttling to avoid malicious attacks on MS per account through frequent API request.
+* CLOUDSTACK-637: AutoScale
+* CLOUDSTACK-644: Resize volumes feature
+* CLOUDSTACK-706: Persistent Networks without running a VM
+* CLOUDSTACK-726: Implement L3 Router functionality in Nicira Nvp Plugin
+* CLOUDSTACK-780: Additional VMX Settings
+* CLOUDSTACK-926: ApiDiscoverService: Implement a plugin mechanism that exposes the list of APIs through a discovery service on the management server
+
+Bug Fixes:
+
+* CLOUDSTACK-1600 Typo in dpkg-buildpackage command
+* CLOUDSTACK-1574 updateResourceCount API is failed saying to specify valida resource type even after parsing the valid resource type
+* CLOUDSTACK-1562 Replace the short-cut solution of supportting @DB with the formal one
+* CLOUDSTACK-1541 NPE while deleting snapshot :Unexpected exception while executing org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd
+* CLOUDSTACK-1521 Redundant router: Services are not stopped when switch to BACKUP state
+* CLOUDSTACK-1509 Failed to implement network elements and resources while provisioning for persistent network(createVlanIpRange to an account]
+* CLOUDSTACK-1496 List API Performance: listAccounts failing with OOME for high values of pagesize (>1000 )
+* CLOUDSTACK-1487 cloudstack-setup-agent fails to set private.network.device on KVM host add
+* CLOUDSTACK-1485 Add Baremetal Provider back to 4.1 branch
+* CLOUDSTACK-1484 "API Throttling : api.throttling.enabled, Global setting missing"
+* CLOUDSTACK-1473 deleteDomain is failing with NPE
+* CLOUDSTACK-1470 unhandled exception executing api command: deployVirtualMachine
+* CLOUDSTACK-1469 kvm agent: agent service fails to start up
+* CLOUDSTACK-1465 List Zones returns null under create instance when logged is as user
+* CLOUDSTACK-1449 listAccounts and listProjectAccounts API lists all the users not account-specific users for each account returned
+* CLOUDSTACK-1447 [UI]Persistent Status is not displayed for VPC Tiers
+* CLOUDSTACK-1436 4.1 management server fails to start from RPM build artifacts
+* CLOUDSTACK-1429 single account is unable to use same vnet across multiple physical networks
+* CLOUDSTACK-1425 unhandled exception executing api command: migrateVirtualMachine & recoverVirtualMachine
+* CLOUDSTACK-1420 Ensure trademarks are properly attributed in publican brand.
+* CLOUDSTACK-1419 Apache-ify and apply trademark logos in the UI
+* CLOUDSTACK-1418 "As regular user , we are not allowed to deploy VM on a shared network."
+* CLOUDSTACK-1417 "When invalid values are passed to createNetwork() , error message does not indicate the parameter name that has invalid values."
+* CLOUDSTACK-1414 Redundant router: BACKUP switch cancelled due to lock timeout after a glitch in network
+* CLOUDSTACK-1403 Storage and console-proxy related error
+* CLOUDSTACK-1402 listRouters API response doesn't return linklocal IP and public IP details
+* CLOUDSTACK-1399 Unhandled exception executing api command: stopVirtualMachine
+* CLOUDSTACK-1397 Static Nat configuration is failing with NPE
+* CLOUDSTACK-1391 EventBus is not getting injected after javelin merge
+* CLOUDSTACK-1383 Deploying basic zone on 4.1 fails in NPE
+* CLOUDSTACK-1382 "vm deploy fails with Error ""cannot find DeployPlannerSelector for vm"""
+* CLOUDSTACK-1375 deploydb failing with acs master
+* CLOUDSTACK-1369 "Ipv6 - In dual Stack network , guest VM does not have the Ipv6 address of the router programmed in /etc/resolv.conf for DNS resolution."
+* CLOUDSTACK-1367 NPE noticed in logs while AgentMonitor is monitoring the host ping interval
+* CLOUDSTACK-1357 "Autoscale: Provisioned VMs from Netscaler not being added to lb vserver, provserver fails with provserver_err_asynctaskpoll"
+* CLOUDSTACK-1350 Management server Stop and start causes previously downloaded ISOs and templates to redownload & reinstall
+* CLOUDSTACK-1347 "Not able to delete network. Error - ""Unable to insert queue item into database, DB is full?"""
+* CLOUDSTACK-1346 "Check to see if external devices are used in the network, is hardcoded for specific devices"
+* CLOUDSTACK-1345 BigSwitch plugin introduces 'VNS' isolation in UI without backend implementation
+* CLOUDSTACK-1344 Typo in use.external.dns setting description
+* CLOUDSTACK-1343 Porting Baremetal related UI changes to ACS
+* CLOUDSTACK-1341 URL for the KEYs file is wrong in the installation guide
+* CLOUDSTACK-1339 ASF 4.1: Management server becomes unresponsive
+* CLOUDSTACK-1338 Deploy VM failed using ISO
+* CLOUDSTACK-1334 vmware.root.disk.controller doesn't work.
+* CLOUDSTACK-1332 IPV6 - Router and guest Vms should be able to use an IPV6 address for external DNS entry.
+* CLOUDSTACK-1331 Upgrade fails for a 2.2.14 Zone having multiple guest networks using network_tags and Public Vlan
+* CLOUDSTACK-1330 ec2-run-instances - When -n option is used to deploy multiple Vms API returns error even though few of the Vms have been deployed successfully.
+* CLOUDSTACK-1320 Routers naming convention is changed to hostname
+* CLOUDSTACK-1319 createCustomerVpnGateway response gives TypeError: json.createvpncustomergatewayresponse is undefined
+* CLOUDSTACK-1315 [F5-SRX-InlineMode] Network implement failed with Run time Exception during network upgrade from VR to SRX-F5
+* CLOUDSTACK-1313 Working with Volumes Section Is Missing
+* CLOUDSTACK-1312 "Fix rolling upgrades from 4.0 to 4.1 in 4.1 release, fix db schemas to be same as 4.0"
+* CLOUDSTACK-1307 Noticed NPE when we put host in maintenance mode in clustered management setup
+* CLOUDSTACK-1303 Ipv6 - java.lang.NullPointerException when executing listnetworks() and deployVirtualMachine() after extending the Ipv4 range of a dual stack network.
+* CLOUDSTACK-1300 section in wrong order in installation guide
+* CLOUDSTACK-1299 Errors in 4.5.5 section of installation guide
+* CLOUDSTACK-1295 NPE in usage parsers due to missing @Component inject
+* CLOUDSTACK-1289 [F5-SRX-InlineMode] Usage stats are not generated for Juniper SRX Firewall in inlinemode
+* CLOUDSTACK-1288 [F5-SRX-InlineMode] classCastException during network restart with cleanup option true
+* CLOUDSTACK-1277 ApiResponseHelper.createUserVmResponse failed to populate password field set from UserVm object
+* CLOUDSTACK-1272 Autoscale: createAutoScaleVmProfile fails due to unable to retrieve Service Offering id
+* CLOUDSTACK-1267 KVM's cloudstack-agent service doesn't log (log4j)
+* CLOUDSTACK-1265 logrotate dnsmasq configuration is wrong
+* CLOUDSTACK-1262 "Failed to Prepare Secondary Storage in VMware,"
+* CLOUDSTACK-1251 Baremetal zone doesn't need primary/secondary storage in UI wizard
+* CLOUDSTACK-1243 Failed to cleanup account :java.lang.NullPointerException
+* CLOUDSTACK-1242 [F5-SRX-InlineMode] Failed to create LB rule with F5-SRX inlinemode deployement
+* CLOUDSTACK-1241 Network apply rules logic is broken
+* CLOUDSTACK-1237 "Register Template fails with ""Cannot find template adapter for XenServer"""
+* CLOUDSTACK-1234 Unable to start KVM agent with 4.1 build
+* CLOUDSTACK-1233 Veewee configuration files are inappropriately identified as ASLv2 licensed files
+* CLOUDSTACK-1232 "Ipv6 - Guest Vms are not able to get Ipaddress when executing dhclient command when using ""/96"" network."
+* CLOUDSTACK-1226 Error while running Cloudstack-setup-databases
+* CLOUDSTACK-1223 Exception while starting jetty server: org.springframework.beans.factory.BeanCreationException Error creating bean with name 'apiServer':
+* CLOUDSTACK-1222 API rate limit configs: removed double quote in upgrade script
+* CLOUDSTACK-1220 Ipv6 - Better error message when deploy Vm fails to get a free Ip address.
+* CLOUDSTACK-1219 Ipv6 - Provide better error messages when deploying a Vm with Ip an address that is outside the network's ip range / if the ip address already is assigned to another Vm.
+* CLOUDSTACK-1216 UUID is null for admin and failed to register user key with 4.1
+* CLOUDSTACK-1210 Make all pluggable services return list of api cmd classes
+* CLOUDSTACK-1206 Failure in Copy of System templates
+* CLOUDSTACK-1205 Ipv6 - Ubuntu 12.10 guest Vms looses default route (after it expiration time ~ 30 mts) when ipv6.autoconfig parameters are disabled except for net.ipv6.conf.lo.autoconf which is enabled.
+* CLOUDSTACK-1204 Fail to create advance zone due to fail to add host
+* CLOUDSTACK-1201 "Failed to create ssh key for user ""cloud"" /var/lib/cloud/management/.ssh/id_rsa and failed to start management server"
+* CLOUDSTACK-1190 Make APIChecker interface throw a single sensible exception
+* CLOUDSTACK-1181 mvn deploy db failing with NPE
+* CLOUDSTACK-1176 Issue with snapshots(create/list)
+* CLOUDSTACK-1174 Snapshots related SQL error
+* CLOUDSTACK-1173 ConsoleProxyResource instantiation exception
+* CLOUDSTACK-1168 Create firewall rule broken
+* CLOUDSTACK-1163 Failed with NPE while creating firewall rule
+* CLOUDSTACK-1161 Differences between 4.1 and master in ongoing-config-of-external-firewalls-lb.xml
+* CLOUDSTACK-1154 Account/Users related API failed due to RegionService inject exception
+* CLOUDSTACK-1153 "Ipv6 - Vm deployment fails with ""n must be positive"" error."
+* CLOUDSTACK-1152 Missing tag in host-add.xml
+* CLOUDSTACK-1141 "Ipv6 - After network restart (and reboot router) , we do not see the existing vms dnsentries not being programmed in the router."
+* CLOUDSTACK-1138 "Providing invalid values for gateway, netmask etc in the zoneWizard blocks the VLAN container to load , throwing an error"
+* CLOUDSTACK-1123 ListStoragePools API broken by refactor
+* CLOUDSTACK-1113 "Ipv6 - Not able to deploy a new VM in this network because of ""Unable to allocate Unique Ipv6 address"""
+* CLOUDSTACK-1112 "Errors in ""Prepare the System VM Template"""
+* CLOUDSTACK-1111 Ipv6 - listRouters() does not return guestipaddress/
+* CLOUDSTACK-1109 "Ipv6 - Unable to expunge User Vms that are ""Destroyed""."
+* CLOUDSTACK-1108 Ipv6 - Not able to restart Networks.
+* CLOUDSTACK-1107 Ipv6 - Unable to extend Ip range for a Ipv6 network using craeteVlanIpRange() command - Error code 530 returned.
+* CLOUDSTACK-1105 "IpV6 - listVirtualMachines() does not return netmask ,gateway,ipaddress."
+* CLOUDSTACK-1104 Ipv6 - listVlanIpRanges() returns error 530.
+* CLOUDSTACK-1103 "IpV6 - listNetwork() command does not retrun gateway,netmask,cidr"
+* CLOUDSTACK-1095 Ipv6 - dhclient command needs to be run manually on the Vms to get the Ipv6 address.
+* CLOUDSTACK-1088 EnableStaticNat error will clear the data in database
+* CLOUDSTACK-1087 Update the Developer Guide for ASFCS 4.1 Release
+* CLOUDSTACK-1083 listUsageRecords api: removed project results in NPE
+* CLOUDSTACK-1082 UI doesn't throw any error message when trying to delete ip range from a network that is in use
+* CLOUDSTACK-1079 Deploying AWSAPI with mvn -pl :cloud-awsapi jetty:run fails
+* CLOUDSTACK-1070 javelin: NPE on executing registerIso API
+* CLOUDSTACK-1064 A type error occurs when trying to add account/register template....
+* CLOUDSTACK-1063 "SG Enabled Advanced Zone - ""Add Guest Networks"" - When user tries to add a guest Network with scope as ""Account"" , he should NOT be presented with ""Offering for shared security group enabled"""
+* CLOUDSTACK-1057 regression of changeServiceForVirtualMachine API - fails to find service offering by serviceOfferingId parameter
+* CLOUDSTACK-1056 S3 secondary storage fails to upload systemvm template due to KVMHA directory
+* CLOUDSTACK-1055 "The overlay still exists when the ""Recurring Snapshots"" dialog is canceled by pressing esc key."
+* CLOUDSTACK-1051 API dispatcher unable to find objectVO corresponding to DeleteTemplatecmd
+* CLOUDSTACK-1050 No Documentation on Adding a Load Balancer Rule
+* CLOUDSTACK-1037 "Make cloudmonkey awesome-er: Online help docs and api discovery, better colored output, parameter value autocompletion"
+* CLOUDSTACK-1029 Enter the token to specified project is malfunctioned
+* CLOUDSTACK-1027 """Update SSL certificate"" button should properly reflect it's functionality"
+* CLOUDSTACK-1024 Regression: Unable to add Xenserver host with latest build
+* CLOUDSTACK-1021 the vlan is not creat to right nic. when i creat multi guest network.
+* CLOUDSTACK-1016 Not able to deploy VM.
+* CLOUDSTACK-1014 Merge ManagementServer and ManagementServerExt
+* CLOUDSTACK-1013 running cloudstack overwrites default public/private ssh keys
+* CLOUDSTACK-1011 KVM host getting disconnected in cluster environment
+* CLOUDSTACK-1010 Host count and Secondary storage count always shows 1 in UI
+* CLOUDSTACK-1002 Not able to start VM.
+* CLOUDSTACK-995  Not able to add the KVM host.
+* CLOUDSTACK-993  """admin"" user is not getting created when management server is started."
+* CLOUDSTACK-987  Sections missing in Working With Snapshots
+* CLOUDSTACK-985  Different MAC address for RvR caused issue in short term network outrage
+* CLOUDSTACK-978  TypeError: instance.displayname is undefined while adding VM's to the LB rule.
+* CLOUDSTACK-968  marvin: vlan should be an attribute of the physical_network and not the zone
+* CLOUDSTACK-959  Missing sub-sections in document section System Service Offerings
+* CLOUDSTACK-938  s2s VPN trouble
+* CLOUDSTACK-928  [Simulator] Latency for Agent Commands - change unit of wait from seconds to milliseconds
+* CLOUDSTACK-863  Non-printable characters (ASCII control character) such as %00 or %0025 are getting stored in raw/non encoded form in the database.
+* CLOUDSTACK-819  Create Account/User API logging password in access logs
+* CLOUDSTACK-799  [Load Test] Check router statistics falls behind in gathering stats by more than 2 times the set value
+* CLOUDSTACK-798  Move usage related cmd classes from cloud-server to cloud-api
+* CLOUDSTACK-736  Integration smoke tests: Fix check for vm name for the deployvm smoke test
+* CLOUDSTACK-734  api_refactoring: CreateAccountCmd fails to send response due to NPE in service layer
+* CLOUDSTACK-725  UI: Error when the Egress rules tab is selected for a network
+* CLOUDSTACK-721  Bytes sent/received in user statistics is empty (CloudStack 4.0)
+* CLOUDSTACK-720  Fail to load a png image when accessing the web console
+* CLOUDSTACK-717  cloudmonkey fails to parse/print response
+* CLOUDSTACK-693  Adding a VPC virtual router to a NiciraNVP enabled network fails
+* CLOUDSTACK-691  A warning dialog box shows after reloading the welcome page
+* CLOUDSTACK-689  RVR: Stop pending flag is not cleared when user start the disconnected router from another host
+* CLOUDSTACK-683  Image Is Missing in the Accessing VM Section
+* CLOUDSTACK-660  Network Traffic Labels are not functional in Marvin
+* CLOUDSTACK-648  The normal users could change their own login password
+* CLOUDSTACK-639  API Refactoring: Adapters for ACL
+* CLOUDSTACK-617  Unable to edit a Sub domain
+* CLOUDSTACK-614  "ListTemplates API is not returning ""Enable SSH Key"" attribute for any given template"
+* CLOUDSTACK-606  Starting VM fails with 'ConcurrentOperationException' in a clustered MS scenario
+* CLOUDSTACK-605  Host physical CPU is incorrectly calculated for Vmware hosts
+* CLOUDSTACK-599  DhcpEntryCommand fails on Router VM on CS4.0 and vSphere5 with Advanced Network Zone
+* CLOUDSTACK-596  DeployVM command takes a lot of time to return job id
+* CLOUDSTACK-584  "typos in ""Apache_CloudStack-4.0.0-incubating-CloudStack_Nicira_NVP_Guide-en-US"""
+* CLOUDSTACK-573  "NPE at ""com.cloud.network.NetworkManagerImpl.networkOfferingIsConfiguredForExternalNetworking(NetworkManagerImpl.java:4345)"" when create network from the network offering having NULL provider for the service"
+* CLOUDSTACK-572  SG Enabled Advanced Zone - Not able to deploy a VM in an account specific shared network.
+* CLOUDSTACK-560  Usage server doesn't work in 4.0.0 due to missing db changes
+* CLOUDSTACK-556  Erratic window behavior in Quick View tooltip
+* CLOUDSTACK-553  "SRX - When adding SRX device make ""Public Network"" - default to ""untrusted"" and ""Private Network"" - default to ""trusted"" as un-editable fields."
+* CLOUDSTACK-552  ]Quick view details for a volume displays scroll bar in place of name of the volume when the name of the volume has more no of characters
+* CLOUDSTACK-539  Cropped Text in UI under Quick View
+* CLOUDSTACK-536  remove citrix cloudpatform from 4.0 build - CloudStack is ASF project
+* CLOUDSTACK-527  List API performance optimization by using DB views and removing UUID conversion.
+* CLOUDSTACK-522  Log requests in cloudmonkey's log file
+* CLOUDSTACK-520  Dependency jar names mismatch with install-non-oss.sh
+* CLOUDSTACK-518  API refactoring -- change @Parameter annotation and remove the @IdentityMapper annotation
+* CLOUDSTACK-514  Marvin and Cloudmonkey don't work when an API target uses https or an alternate path
+* CLOUDSTACK-510  Add button not visible when adding public IPs to physical network
+* CLOUDSTACK-508  CLVM copies template to primary storage unnecessarily
+* CLOUDSTACK-507  fix api docs for listSSHKeyPairs
+* CLOUDSTACK-504  Duplicate guest password scripts in codebase
+* CLOUDSTACK-501  Apidocs and marvin does not know how to handle Autoscaling docs
+* CLOUDSTACK-500  Passwd-server iptables rules are dropped on domr on fresh start or on reboot
+* CLOUDSTACK-499  cloudmonkey CLI can't accept complex parameters
+* CLOUDSTACK-493  2.2.x-3.0 DB upgrade support for Advance SG enabled networks
+* CLOUDSTACK-481  Installation Guide Doc Error
+* CLOUDSTACK-467  Developer's Guide points to cloud.com for API reference
+* CLOUDSTACK-465  French language file quotes are dropping javascript syntax errors
+* CLOUDSTACK-464  "Regression in AWSAPI docs, entire sections removed"
+* CLOUDSTACK-462  A few corrections to make to the 4.0.0 installation guide
+* CLOUDSTACK-459  [Optional Public IP assignment for EIP with Basic Zone] Associate IP Checkbox in Create Network Offering Dialog is Displayed When Elastic LB is Selected
+* CLOUDSTACK-456  License tag in SPEC isn't what RPM is expecting
+* CLOUDSTACK-448  SSVM bootstrap failure on XenServer hosts with E3 CPU
+* CLOUDSTACK-446  "Host going to alert state, if you are adding already added host"
+* CLOUDSTACK-441  Running mgmt server using jetty fails to start api server
+* CLOUDSTACK-435  Vmware network labels are ignored when creating a Zone using basic networking
+* CLOUDSTACK-427  Change hardcoded step number references to dynamic links
+* CLOUDSTACK-424  Updated userdata not propagating to the VR.
+* CLOUDSTACK-417  Handle password server securely to run on port 8080 on VR
+* CLOUDSTACK-416  XCP 1.6beta2 (61002c) - can't add a host
+* CLOUDSTACK-404  Update docs on the usage of cloud-setup-databases
+* CLOUDSTACK-398  Install Guide: Section 11.17.3 (Using VPN with Mac OSX): Not complete?
+* CLOUDSTACK-397  Install Guide: Section 11.1 (Guest Traffic): Diagram is the wrong diagram
+* CLOUDSTACK-390  Install Guide: Section 4.5.7 (Prepare the System VM Template): Links go to cloud.com
+* CLOUDSTACK-378  mavenize marvin on master
+* CLOUDSTACK-377  provide deployment config access to marvin's testcase
+* CLOUDSTACK-373  "static NAT and Firewall is not working on external firewall device SRX, it needs to be implemented"
+* CLOUDSTACK-369  ASF 4.0 - unable to support XenServer 6.1 host
+* CLOUDSTACK-364  Docs point to download.cloud.com for AWS API script
+* CLOUDSTACK-361  Wrong creation of guest networks on a KVM host in Multiple Physical Networks with guest traffic
+* CLOUDSTACK-359  PropagateResourceEventCommand failes in cluster configuration
+* CLOUDSTACK-357  "ISOs can be deleted while still attached to a running VM, and they subsequently cannot be detached from a running VM"
+* CLOUDSTACK-355  "Fix ""count"" in a bunch of API commands"
+* CLOUDSTACK-348  deleteNetwork does not clean up network resource count correctly
+* CLOUDSTACK-347  listNetworks API: return vlan information only when the caller is ROOT admin
+* CLOUDSTACK-346  Cannot add Vmware cluster with class loader conflict exception
+* CLOUDSTACK-335  KVM VPC load balancer not working
+* CLOUDSTACK-333  When Datacenter name in VCenter has spaces Primary Storage (VMFS) discovery will fail
+* CLOUDSTACK-332  """count"" property in list* API response should be equal to how many entries in database, not how many objects in API response"
+* CLOUDSTACK-318  Adding XenServer Host Fails - 6.0.2 fails with 4.0.0
+* CLOUDSTACK-304  Add synchronization for createSnapshot command per host basis
+* CLOUDSTACK-293  "We do awful, hacky things in our spec file for client"
+* CLOUDSTACK-290  3.0.0 template also needed for 2.2.14 to 3.0.5 direct upgrade.
+* CLOUDSTACK-284  listVirtualMachines does not return deleted machines when zone is specified
+* CLOUDSTACK-279  deleteProject fails when executed by the regular user (works fine for root/domain admin)
+* CLOUDSTACK-274  Two error codes mapped to same value in API
+* CLOUDSTACK-271  updatePhysicalNetwork dies with an NPE when the vlan range is empty
+* CLOUDSTACK-256  "vpn:As an admin user , not able to delete VPN user which is present in a regular user's network."
+* CLOUDSTACK-250  Incorrect description of maintenance mode in admin guide
+* CLOUDSTACK-249  Add host id to failed VM deploy alerts
+* CLOUDSTACK-235  Network rate can be set in 2 places. Clarify docs on how this works.
+* CLOUDSTACK-232  Zone infrastructure chart -- disable resource total display
+* CLOUDSTACK-228  UI provides an option to reconnect a disconnected host - ServerApiException is thrown on an attempt
+* CLOUDSTACK-227  ReconnectHostCmd: NullPointerException: Unable to get host Information for XenServer 6.0.2 host - on intentionally changing the traffic labels on the physical network
+* CLOUDSTACK-226  UpdatePhysicalNetworkcommand failed due to java.sql.BatchUpdateException ; Tried to extend the existing Guest VLAN Range of one physical network into the Guest VLAN range of the other physical network
+* CLOUDSTACK-225  API Docs: Request params repeated with different descriptions
+* CLOUDSTACK-222  Admin UI prompts to restart Management server with cancel edit operation
+* CLOUDSTACK-178  Expose name parameter of VM in list Vm view.
+* CLOUDSTACK-130  Clarify docs on tags parameter in API reference
+* CLOUDSTACK-119  Move Agent-Simulator in to the hypervisor plugin model
+* CLOUDSTACK-118  "Status of host resorce stuck in ""ErrorInMaintenance"""
+* CLOUDSTACK-95   IP address allocation not working when a user tries to allocate IP addresses in a Project.
+* CLOUDSTACK-70   Improve Network Restart Behaviour for Basic Zone: Restarting Network Fails
+* CLOUDSTACK-46   Remnants of mycloud remain
+
+Security Fixes:
+
+ * CVE-2012-4501: Apache CloudStack configuration vulnerability
+
+
+Version 4.0.2
+------------------------
+
+This is a maintenance release for the Apache CloudStack 4.0.x series, with no new features.
+
+Issues fixed in this release:
+
+* CLOUDSTACK-354: Display of storage statistics is wrong.
+* CLOUDSTACK-397: Install Guide: Section 11.1 (Guest Traffic): Diagram is the wrong diagram
+* CLOUDSTACK-398: Install Guide: Section 11.17.3 (Using VPN with Mac OSX): Not complete?
+* CLOUDSTACK-462: A few corrections to make to the 4.0.0 installation guide
+* CLOUDSTACK-524: http proxy used by ssvm (secstorage.proxy) NOT working
+* CLOUDSTACK-587: MEMORY_CONSTRAINT_VIOLATIONMemory limits must satisfy:
+* CLOUDSTACK-803: HA gets triggered even when the host investigator is unable to determine the state of the host
+* CLOUDSTACK-810: Make DirectAgent thread pool size configurable
+* CLOUDSTACK-976: unable to start cloudstack (error: "java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64URLSafeString([B)Ljava/lang/String;")
+* CLOUDSTACK-988: HV version must be updated in hypervisor_version column of host table
+* CLOUDSTACK-990: Documentation issue with libvirtd.conf tcp_port configuration
+* CLOUDSTACK-1088: EnableStaticNat error will clear the data in database
+* CLOUDSTACK-1106: Missing documentation for cloud-setup-databases
+* CLOUDSTACK-1110: Documentation missing "Management Server Load Balancing"
+* CLOUDSTACK-1112: Errors in "Prepare the System VM Template"
+* CLOUDSTACK-1137: Force reconnect of a disconnected state complains about the state of the host.
+* CLOUDSTACK-1150: Documentation for libvirt on Ubuntu 12.04
+* CLOUDSTACK-1151: vmware systemVm template upgrade is missing in 4.0 upgrade
+* CLOUDSTACK-1211: Network operations are Blocked for the Read-only file system of Virtual Router
+* CLOUDSTACK-1265: logrotate dnsmasq configuration is wrong
+* CLOUDSTACK-1291: duplicate arguments in commands.xml prevents cloudapis.py to run to completion
+* CLOUDSTACK-1298: typo in deb package setup
+* CLOUDSTACK-1299: Errors in 4.5.5 section of installation guide
+* CLOUDSTACK-1300: section in wrong order in installation guide
+* CLOUDSTACK-1341: URL for the KEYs file is wrong in the installation guide
+* CLOUDSTACK-1419: Apache-ify and apply trademark logos in the UI
+* CLOUDSTACK-1420: Ensure trademarks are properly attributed in publican brand.
+* CLOUDSTACK-1589: Ubuntu 4.0 packages depend on non-existent chkconfig
+* CLOUDSTACK-1629: Need to move location or conflict with antlr
+* CLOUDSTACK-1642: Add support CentOS 6.4
+* CLOUDSTACK-1648: Unable to add KVM host
+* CLOUDSTACK-1652: /etc/hosts error in virtual router when deploy instance with the name same to previous instances
+* CLOUDSTACK-1666: KVM VPC NetworkUsage doesnot work
+* CLOUDSTACK-1668: IP conflict in VPC tier
+* CLOUDSTACK-1761: Available local storage disk capacity incorrectly reported in KVM to manager.
+* CLOUDSTACK-1845: KVM - storage migration often fails
+* CLOUDSTACK-1846: KVM - storage pools can silently fail to be unregistered, leading to failure to register later
+* CLOUDSTACK-2003: Deleting domain while deleted account is cleaning up leaves VMs expunging forever due to 'Failed to update resource count'
+* CLOUDSTACK-2090: Upgrade from version 4.0.1 to version 4.0.2 triggers the 4.0.0 to 4.0.1. 
+* CLOUDSTACK-2091: Error in API documentation for 4.0.x.
+
+
+Version 4.0.1-incubating
+------------------------
+
+This is a bugfix release for Apache CloudStack 4.0.0-incubating, with no new features. 
+
+Security Fixes:
+
+* CVE-2012-5616: Local Information Disclosure Vulnerability (See CLOUDSTACK-505)
+
+Bugs fixed in this release:
+
+* CLOUDSTACK-359: PropagateResourceEventCommand fails in cluster configuration
+* CLOUDSTACK-374: When running cloud-setup-databases, it auto chooses the highest priority nic (lowest number ie: eth0)
+* CLOUDSTACK-389: Install Guide: Section 4.5.5 (Prepare NFS Shares): Confusing statement about iSCSI
+* CLOUDSTACK-395: Primary Storage and Secondary Storage sections missing sub-sections
+* CLOUDSTACK-411: Add another step during kvm agent installation on Ubuntu machine
+* CLOUDSTACK-415: restartNetwork call causes VM to be unreachable when Nicira based SDN is used.
+* CLOUDSTACK-422: XSL files missing license header.
+* CLOUDSTACK-426: SetVPCStaticNatRules unimplemented for KVM.
+* CLOUDSTACK-448: SSVM bootstrap failure on XenServer hosts with E3 CPU.
+* CLOUDSTACK-465: French language file quotes are dropping javascript syntax errors.
+* CLOUDSTACK-473: API Doc for uploadCustomCertificate doesn't explain how to use the optional parameters well.
+* CLOUDSTACK-480: Installation Documentation error: Section 4.5.5.2 needs to mention nfs-kernel-server.
+* CLOUDSTACK-481: Installation Guide Doc Error
+* CLOUDSTACK-498: Missing dependency in RPM of KVM Agent.
+* CLOUDSTACK-502: VPC router needs to resolve its hostname.
+* CLOUDSTACK-505: cloudstack logs the private key in plaintext.
+* CLOUDSTACK-507: fix api docs for listSSHKeyPairs.
+* CLOUDSTACK-515: NVP installation.
+* CLOUDSTACK-536: remove citrix cloudpatform from 4.0 build - CloudStack is ASF project.
+* CLOUDSTACK-560: Usage server doesn't work in 4.0.0 due to missing db changes.
+* CLOUDSTACK-580: Packages are named with 4.0 with 4.0.1 build.
+* CLOUDSTACK-591: Wrong vnet in iptables on KVM hypervisors after VM reboot.
+* CLOUDSTACK-595: Recreate root volume scenarios doesn't work in VMware
+* CLOUDSTACK-603: Upgrade from 4.0 to 4.0.1 is not enabled.
+* CLOUDSTACK-605: Host physical CPU is incorrectly calculated for VMware host
+* CLOUDSTACK-622: In the add primary storage dialog in the ui the RBD fields don't disappear when changing from RBD to another protocol.
+* CLOUDSTACK-683: Image is missing in the Accessing VM Section
+* CLOUDSTACK-685: CloudStack 4.0 Network Usage is ZERO
+* CLOUDSTACK-938: s2s VPN trouble
+* CLOUDSTACK-961: Installation docs don't detail dependencies for building RPMs
+* CLOUDSTACK-995: Not able to add the KVM host
+
 
 Version 4.0.0-incubating
 ------------------------
@@ -34,4 +414,3 @@ New Features:
 Security Fixes:
 
  * CVE-2012-4501: Apache CloudStack configuration vulnerability
-


[36/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-1343: cloudstack UI - baremetal - zone wizard - ask whether to enable the zone or not after zone creation is completed.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/28572345
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/28572345
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/28572345

Branch: refs/heads/marvin_refactor
Commit: 28572345d9734117f77755b98c3a64fce4bb67e8
Parents: a1ecc73
Author: Jessica Wang <je...@citrix.com>
Authored: Fri Apr 19 12:26:46 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Fri Apr 19 12:27:28 2013 -0700

----------------------------------------------------------------------
 ui/scripts/zoneWizard.js |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/28572345/ui/scripts/zoneWizard.js
----------------------------------------------------------------------
diff --git a/ui/scripts/zoneWizard.js b/ui/scripts/zoneWizard.js
index 6299fab..aa2c2fa 100755
--- a/ui/scripts/zoneWizard.js
+++ b/ui/scripts/zoneWizard.js
@@ -3052,16 +3052,16 @@
               success: function(json) {
                 args.data.returnedGuestNetwork.returnedVlanIpRange = json.createvlaniprangeresponse.vlan;
                 
-								//when hypervisor is BareMetal (begin)   						
-								if(args.data.zone.hypervisor == "BareMetal") {
-								  alert('Zone creation is completed. Please refresh this page.');
+								if(args.data.zone.hypervisor == "BareMetal") { //if hypervisor is BareMetal, zone creation is completed at this point.										  
+									complete({
+										data: args.data
+									});									
 								}								
 								else {
 									stepFns.addCluster({
 										data: args.data
 									});
-								}
-								//when hypervisor is BareMetal (end)   
+								}								
               },
               error: function(XMLHttpResponse) {
                 var errorMsg = parseXMLHttpResponse(XMLHttpResponse);


[27/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2092 Don't push IP to the Nicira Controller when it is about
to be released.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a28a1996
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a28a1996
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a28a1996

Branch: refs/heads/marvin_refactor
Commit: a28a19962aa4df91a4b4f17e8affc59c300f907e
Parents: e8251d9
Author: Hugo Trippaers <tr...@gmail.com>
Authored: Fri Apr 19 14:38:09 2013 +0200
Committer: Hugo Trippaers <tr...@gmail.com>
Committed: Fri Apr 19 16:28:53 2013 +0200

----------------------------------------------------------------------
 .../cloud/network/element/NiciraNvpElement.java    |    5 +
 .../network/element/NiciraNvpElementTest.java      |  238 ++++++++++-----
 2 files changed, 169 insertions(+), 74 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a28a1996/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
index 3ca3447..c22f669 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
@@ -843,6 +843,11 @@ NiciraNvpElementService, ResourceStateAdapter, IpDeployer {
 
             List<String> cidrs = new ArrayList<String>();
             for (PublicIpAddress ip : ipAddress) {
+                if (ip.getState() == IpAddress.State.Releasing) {
+                    // If we are releasing we don't need to push this ip to
+                    // the Logical Router
+                    continue;
+                }
                 cidrs.add(ip.getAddress().addr() + "/" + NetUtils.getCidrSize(ip.getNetmask()));
             }
             ConfigurePublicIpsOnLogicalRouterCommand cmd = new ConfigurePublicIpsOnLogicalRouterCommand(routermapping.getLogicalRouterUuid(),

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a28a1996/plugins/network-elements/nicira-nvp/test/com/cloud/network/element/NiciraNvpElementTest.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/test/com/cloud/network/element/NiciraNvpElementTest.java b/plugins/network-elements/nicira-nvp/test/com/cloud/network/element/NiciraNvpElementTest.java
index 09d50a3..40685fa 100644
--- a/plugins/network-elements/nicira-nvp/test/com/cloud/network/element/NiciraNvpElementTest.java
+++ b/plugins/network-elements/nicira-nvp/test/com/cloud/network/element/NiciraNvpElementTest.java
@@ -16,107 +16,197 @@
 // under the License.
 package com.cloud.network.element;
 
+import java.util.ArrayList;
 import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
 
 import javax.naming.ConfigurationException;
 
 import org.junit.Before;
 import org.junit.Test;
+import org.mockito.ArgumentMatcher;
 
+import com.cloud.agent.AgentManager;
+import com.cloud.agent.api.Command;
+import com.cloud.agent.api.ConfigurePublicIpsOnLogicalRouterAnswer;
+import com.cloud.agent.api.ConfigurePublicIpsOnLogicalRouterCommand;
 import com.cloud.deploy.DeployDestination;
 import com.cloud.domain.Domain;
 import com.cloud.exception.ConcurrentOperationException;
 import com.cloud.exception.InsufficientCapacityException;
 import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.host.HostVO;
+import com.cloud.host.dao.HostDao;
 import com.cloud.network.Network;
 import com.cloud.network.Network.GuestType;
 import com.cloud.network.Network.Provider;
 import com.cloud.network.Network.Service;
+import com.cloud.network.IpAddress;
 import com.cloud.network.NetworkManager;
 import com.cloud.network.NetworkModel;
 import com.cloud.network.Networks.BroadcastDomainType;
 import com.cloud.network.Networks.TrafficType;
+import com.cloud.network.NiciraNvpDeviceVO;
+import com.cloud.network.NiciraNvpRouterMappingVO;
+import com.cloud.network.PublicIpAddress;
 import com.cloud.network.dao.NetworkServiceMapDao;
+import com.cloud.network.dao.NiciraNvpDao;
+import com.cloud.network.dao.NiciraNvpRouterMappingDao;
+import com.cloud.network.nicira.NatRule;
 import com.cloud.offering.NetworkOffering;
 import com.cloud.resource.ResourceManager;
 import com.cloud.user.Account;
+import com.cloud.utils.net.Ip;
 import com.cloud.vm.ReservationContext;
 
 import static org.junit.Assert.*;
+import static org.mockito.Matchers.argThat;
+import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.*;
 
 public class NiciraNvpElementTest {
-	
-	NiciraNvpElement _element = new NiciraNvpElement();
-	NetworkManager _networkManager = mock(NetworkManager.class);
-	NetworkModel _networkModel = mock(NetworkModel.class);
-	NetworkServiceMapDao _ntwkSrvcDao = mock (NetworkServiceMapDao.class);
-	
-	@Before
-	public void setUp() throws ConfigurationException {
-		_element._resourceMgr = mock(ResourceManager.class);
-		_element._networkManager = _networkManager;
-		_element._ntwkSrvcDao = _ntwkSrvcDao;
-		_element._networkModel = _networkModel;
-		
-		// Standard responses
-		when(_networkModel.isProviderForNetwork(Provider.NiciraNvp, 42L)).thenReturn(true);
-		
-		_element.configure("NiciraNvpTestElement", Collections.<String, Object> emptyMap());
-	}
-
-	@Test
-	public void canHandleTest() {
-		Network net = mock(Network.class);
-		when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch);
-		when(net.getId()).thenReturn(42L);
-		
-		when(_ntwkSrvcDao.canProviderSupportServiceInNetwork(42L, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true);	
-		//  Golden path
-		assertTrue(_element.canHandle(net, Service.Connectivity));
-		
-		when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan);
-		// Only broadcastdomaintype lswitch is supported
-		assertFalse(_element.canHandle(net, Service.Connectivity));
-		
-		when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch);
-		when(_ntwkSrvcDao.canProviderSupportServiceInNetwork(42L, Service.Connectivity, Provider.NiciraNvp)).thenReturn(false);
-		// No nvp provider in the network
-		assertFalse(_element.canHandle(net, Service.Connectivity));
-		
-		when(_networkModel.isProviderForNetwork(Provider.NiciraNvp, 42L)).thenReturn(false);
-		when(_ntwkSrvcDao.canProviderSupportServiceInNetwork(42L, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true);
-		// NVP provider does not provide Connectivity for this network
-		assertFalse(_element.canHandle(net, Service.Connectivity));
-		
-		when(_networkModel.isProviderForNetwork(Provider.NiciraNvp, 42L)).thenReturn(true);
-		// Only service Connectivity is supported
-		assertFalse(_element.canHandle(net, Service.Dhcp));
-		
-	}
-	
-	@Test
-	public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
-		Network network = mock(Network.class);
-		when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch);
-		when(network.getId()).thenReturn(42L);
-		
-		NetworkOffering offering = mock(NetworkOffering.class);
-		when(offering.getId()).thenReturn(42L);
-		when(offering.getTrafficType()).thenReturn(TrafficType.Guest);
-		when(offering.getGuestType()).thenReturn(GuestType.Isolated);
-		
-		DeployDestination dest = mock(DeployDestination.class);
-		
-		Domain dom = mock(Domain.class);
-		when(dom.getName()).thenReturn("domain");
-		Account acc = mock(Account.class);
-		when(acc.getAccountName()).thenReturn("accountname");
-		ReservationContext context = mock(ReservationContext.class);
-		when(context.getDomain()).thenReturn(dom);
-		when(context.getAccount()).thenReturn(acc);
-		
-		//assertTrue(_element.implement(network, offering, dest, context));
-	}
-
-}
+
+    NiciraNvpElement _element = new NiciraNvpElement();
+    NetworkManager _networkManager = mock(NetworkManager.class);
+    NetworkModel _networkModel = mock(NetworkModel.class);
+    NetworkServiceMapDao _ntwkSrvcDao = mock(NetworkServiceMapDao.class);
+    AgentManager _agentManager = mock(AgentManager.class);
+    HostDao _hostDao = mock(HostDao.class);
+    NiciraNvpDao _niciraNvpDao = mock(NiciraNvpDao.class);
+    NiciraNvpRouterMappingDao _niciraNvpRouterMappingDao = mock(NiciraNvpRouterMappingDao.class);
+
+    @Before
+    public void setUp() throws ConfigurationException {
+        _element._resourceMgr = mock(ResourceManager.class);
+        _element._networkManager = _networkManager;
+        _element._ntwkSrvcDao = _ntwkSrvcDao;
+        _element._networkModel = _networkModel;
+        _element._agentMgr = _agentManager;
+        _element._hostDao = _hostDao;
+        _element._niciraNvpDao = _niciraNvpDao;
+        _element._niciraNvpRouterMappingDao = _niciraNvpRouterMappingDao;
+
+        // Standard responses
+        when(_networkModel.isProviderForNetwork(Provider.NiciraNvp, 42L)).thenReturn(true);
+
+        _element.configure("NiciraNvpTestElement", Collections.<String, Object> emptyMap());
+    }
+
+    @Test
+    public void canHandleTest() {
+        Network net = mock(Network.class);
+        when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch);
+        when(net.getId()).thenReturn(42L);
+
+        when(_ntwkSrvcDao.canProviderSupportServiceInNetwork(42L, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true);
+        // Golden path
+        assertTrue(_element.canHandle(net, Service.Connectivity));
+
+        when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Vlan);
+        // Only broadcastdomaintype lswitch is supported
+        assertFalse(_element.canHandle(net, Service.Connectivity));
+
+        when(net.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch);
+        when(_ntwkSrvcDao.canProviderSupportServiceInNetwork(42L, Service.Connectivity, Provider.NiciraNvp)).thenReturn(false);
+        // No nvp provider in the network
+        assertFalse(_element.canHandle(net, Service.Connectivity));
+
+        when(_networkModel.isProviderForNetwork(Provider.NiciraNvp, 42L)).thenReturn(false);
+        when(_ntwkSrvcDao.canProviderSupportServiceInNetwork(42L, Service.Connectivity, Provider.NiciraNvp)).thenReturn(true);
+        // NVP provider does not provide Connectivity for this network
+        assertFalse(_element.canHandle(net, Service.Connectivity));
+
+        when(_networkModel.isProviderForNetwork(Provider.NiciraNvp, 42L)).thenReturn(true);
+        // Only service Connectivity is supported
+        assertFalse(_element.canHandle(net, Service.Dhcp));
+
+    }
+
+    @Test
+    public void implementTest() throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
+        Network network = mock(Network.class);
+        when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch);
+        when(network.getId()).thenReturn(42L);
+
+        NetworkOffering offering = mock(NetworkOffering.class);
+        when(offering.getId()).thenReturn(42L);
+        when(offering.getTrafficType()).thenReturn(TrafficType.Guest);
+        when(offering.getGuestType()).thenReturn(GuestType.Isolated);
+
+        DeployDestination dest = mock(DeployDestination.class);
+
+        Domain dom = mock(Domain.class);
+        when(dom.getName()).thenReturn("domain");
+        Account acc = mock(Account.class);
+        when(acc.getAccountName()).thenReturn("accountname");
+        ReservationContext context = mock(ReservationContext.class);
+        when(context.getDomain()).thenReturn(dom);
+        when(context.getAccount()).thenReturn(acc);
+
+        // assertTrue(_element.implement(network, offering, dest, context));
+    }
+
+    @Test
+    public void applyIpTest() throws ResourceUnavailableException {
+        Network network = mock(Network.class);
+        when(network.getBroadcastDomainType()).thenReturn(BroadcastDomainType.Lswitch);
+        when(network.getId()).thenReturn(42L);
+        when(network.getPhysicalNetworkId()).thenReturn(42L);
+
+        NetworkOffering offering = mock(NetworkOffering.class);
+        when(offering.getId()).thenReturn(42L);
+        when(offering.getTrafficType()).thenReturn(TrafficType.Guest);
+        when(offering.getGuestType()).thenReturn(GuestType.Isolated);
+
+        List<PublicIpAddress> ipAddresses = new ArrayList<PublicIpAddress>();
+        PublicIpAddress pipReleased = mock(PublicIpAddress.class);
+        PublicIpAddress pipAllocated = mock(PublicIpAddress.class);
+        Ip ipReleased = new Ip("42.10.10.10");
+        Ip ipAllocated = new Ip("10.10.10.10");
+        when(pipAllocated.getState()).thenReturn(IpAddress.State.Allocated);
+        when(pipAllocated.getAddress()).thenReturn(ipAllocated);
+        when(pipAllocated.getNetmask()).thenReturn("255.255.255.0");
+        when(pipReleased.getState()).thenReturn(IpAddress.State.Releasing);
+        when(pipReleased.getAddress()).thenReturn(ipReleased);
+        when(pipReleased.getNetmask()).thenReturn("255.255.255.0");
+        ipAddresses.add(pipAllocated);
+        ipAddresses.add(pipReleased);
+
+        Set<Service> services = new HashSet<Service>();
+        services.add(Service.SourceNat);
+        services.add(Service.StaticNat);
+        services.add(Service.PortForwarding);
+
+        List<NiciraNvpDeviceVO> deviceList = new ArrayList<NiciraNvpDeviceVO>();
+        NiciraNvpDeviceVO nndVO = mock(NiciraNvpDeviceVO.class);
+        NiciraNvpRouterMappingVO nnrmVO = mock(NiciraNvpRouterMappingVO.class);
+        when(_niciraNvpRouterMappingDao.findByNetworkId(42L)).thenReturn(nnrmVO);
+        when(nnrmVO.getLogicalRouterUuid()).thenReturn("abcde");
+        when(nndVO.getHostId()).thenReturn(42L);
+        HostVO hvo = mock(HostVO.class);
+        when(hvo.getId()).thenReturn(42L);
+        when(hvo.getDetail("l3gatewayserviceuuid")).thenReturn("abcde");
+        when(_hostDao.findById(42L)).thenReturn(hvo);
+        deviceList.add(nndVO);
+        when(_niciraNvpDao.listByPhysicalNetwork(42L)).thenReturn(deviceList);
+
+        ConfigurePublicIpsOnLogicalRouterAnswer answer = mock(ConfigurePublicIpsOnLogicalRouterAnswer.class);
+        when(answer.getResult()).thenReturn(true);
+        when(_agentManager.easySend(eq(42L), any(ConfigurePublicIpsOnLogicalRouterCommand.class))).thenReturn(answer);
+
+        assertTrue(_element.applyIps(network, ipAddresses, services));
+
+        verify(_agentManager, atLeast(1)).easySend(eq(42L),
+                argThat(new ArgumentMatcher<ConfigurePublicIpsOnLogicalRouterCommand>() {
+                    @Override
+                    public boolean matches(Object argument) {
+                        ConfigurePublicIpsOnLogicalRouterCommand command = (ConfigurePublicIpsOnLogicalRouterCommand) argument;
+                        if (command.getPublicCidrs().size() == 1)
+                            return true;
+                        return false;
+                    }
+                }));
+    }
+}
\ No newline at end of file


[33/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Fixed VPC api unittests


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/2ca75849
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/2ca75849
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/2ca75849

Branch: refs/heads/marvin_refactor
Commit: 2ca7584994585307330182c5aca314692c732e47
Parents: 8d8a0eb
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Fri Apr 19 11:00:43 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Fri Apr 19 11:26:32 2013 -0700

----------------------------------------------------------------------
 server/pom.xml                                     |    1 -
 server/test/com/cloud/vpc/Site2SiteVpnTest.java    |    2 +-
 server/test/com/cloud/vpc/VpcApiUnitTest.java      |  167 ++++----------
 .../test/com/cloud/vpc/VpcTestConfiguration.java   |   73 ++++---
 4 files changed, 91 insertions(+), 152 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ca75849/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index ca56851..7249c55 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -153,7 +153,6 @@
             <exclude>com/cloud/snapshot/*</exclude>
             <exclude>com/cloud/storage/dao/*</exclude>
             <exclude>com/cloud/vm/dao/*</exclude>
-            <exclude>com/cloud/vpc/*</exclude>
             <exclude>com/cloud/api/ListPerfTest.java</exclude>
             <exclude>com/cloud/network/vpn/RemoteAccessVpnTest.java</exclude>
             <exclude>com/cloud/network/security/SecurityGroupManagerImpl2Test.java</exclude>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ca75849/server/test/com/cloud/vpc/Site2SiteVpnTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/Site2SiteVpnTest.java b/server/test/com/cloud/vpc/Site2SiteVpnTest.java
index 8e1b093..083cf25 100644
--- a/server/test/com/cloud/vpc/Site2SiteVpnTest.java
+++ b/server/test/com/cloud/vpc/Site2SiteVpnTest.java
@@ -25,7 +25,7 @@ import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 @RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations="classpath:/testContext.xml")
+@ContextConfiguration(locations="classpath:/VpcTestContext.xml")
 public class Site2SiteVpnTest {
     private final static Logger s_logger = Logger.getLogger(Site2SiteVpnTest.class);
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ca75849/server/test/com/cloud/vpc/VpcApiUnitTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/VpcApiUnitTest.java b/server/test/com/cloud/vpc/VpcApiUnitTest.java
index d4d5b29..e141c96 100644
--- a/server/test/com/cloud/vpc/VpcApiUnitTest.java
+++ b/server/test/com/cloud/vpc/VpcApiUnitTest.java
@@ -23,7 +23,6 @@ import javax.inject.Inject;
 
 import junit.framework.TestCase;
 
-import org.apache.log4j.Logger;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,68 +39,18 @@ import com.cloud.utils.component.ComponentContext;
 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration(locations = "classpath:/VpcTestContext.xml")
 public class VpcApiUnitTest extends TestCase{
-    private static final Logger s_logger = Logger.getLogger(VpcApiUnitTest.class);
     @Inject VpcManagerImpl _vpcService = null;
 
-    @Override
     @Before
     public void setUp() throws Exception {
         ComponentContext.initComponentsLifeCycle();
     }
     
-    @Test
-    public void test() {
-        s_logger.debug("Starting test for VpcService interface");
-        //Vpc service methods
-        //getActiveVpc();
-        //deleteVpc();
-        
-        //Vpc manager methods
-        validateNtwkOffForVpc();
-        //destroyVpc();
-       
-    }
-    
-    protected void deleteVpc() {
-        //delete existing offering
-        boolean result = false;
-        String msg = null;
-        try {
-            List<String> svcs = new ArrayList<String>();
-            svcs.add(Service.SourceNat.getName());
-            result = _vpcService.deleteVpc(1);
-        }  catch (Exception ex) {
-            msg = ex.getMessage();
-        } finally {
-            if (result) {
-                s_logger.debug("Delete vpc: Test passed, vpc is deleted");
-            } else {
-                s_logger.error("Delete vpc: TEST FAILED, vpc failed to delete " + msg);
-            }
-        }
-        
-        //delete non-existing offering
-        result = false;
-        msg = null;
-        try {
-            List<String> svcs = new ArrayList<String>();
-            svcs.add(Service.SourceNat.getName());
-            result = _vpcService.deleteVpc(100);
-        }  catch (Exception ex) {
-            msg = ex.getMessage();
-        } finally {
-            if (!result) {
-                s_logger.debug("Delete vpc: Test passed, non existing vpc failed to delete ");
-            } else {
-                s_logger.error("Delete vpc: TEST FAILED, true is returned when try to delete non existing vpc");
-            }
-        }
-    }
     
-    protected void getActiveVpc() {
+    @Test
+    public void getActiveVpc() {
         //test for active vpc
         boolean result = false;
-        String msg = null;
         Vpc vpc = null;
         try {
             List<String> svcs = new ArrayList<String>();
@@ -111,18 +60,12 @@ public class VpcApiUnitTest extends TestCase{
                 result = true;
             }
         }  catch (Exception ex) {
-            msg = ex.getMessage();
         } finally {
-            if (result) {
-                s_logger.debug("Get active Vpc: Test passed, active vpc is returned");
-            } else {
-                s_logger.error("Get active Vpc: TEST FAILED, active vpc is not returned " + msg);
-            }
+            assertTrue("Get active Vpc: TEST FAILED, active vpc is not returned", result);
         }
         
         //test for inactive vpc
         result = false;
-        msg = null;
         vpc = null;
         try {
             List<String> svcs = new ArrayList<String>();
@@ -132,66 +75,43 @@ public class VpcApiUnitTest extends TestCase{
                 result = true;
             }
         }  catch (Exception ex) {
-            msg = ex.getMessage();
         } finally {
-            if (!result) {
-                s_logger.debug("Get active Vpc: Test passed, no vpc is returned");
-            } else {
-                s_logger.error("Get active Vpc: TEST FAILED, non active vpc is returned");
-            }
+            assertFalse("Get active Vpc: TEST FAILED, non active vpc is returned", result);
         }
     }
     
-    protected void destroyVpc() {
-        try {
-            _vpcService.destroyVpc(_vpcService.getVpc(1), new AccountVO(), 1L);
-        } catch (Exception ex) {
-            s_logger.error("Destroy VPC TEST FAILED due to exc ", ex);
-        }
-    }
 
-    protected void validateNtwkOffForVpc() {
+    @Test
+    public void validateNtwkOffForVpc() {
         //validate network offering
         //1) correct network offering
         boolean result = false;
         try {
             _vpcService.validateNtwkOffForNtwkInVpc(2L, 1, "0.0.0.0", "111-", _vpcService.getVpc(1), "10.1.1.1", new AccountVO());
             result = true;
-            s_logger.debug("Validate network offering: Test passed: the offering is valid for vpc creation");
         } catch (Exception ex) {
-            s_logger.error("Validate network offering: TEST FAILED due to exc ", ex);
+        } finally {
+            assertTrue("Validate network offering: Test passed: the offering is valid for vpc creation", result);
         }
         
         //2) invalid offering - source nat is not included
         result = false;
-        String msg = null;
         try {
             _vpcService.validateNtwkOffForNtwkInVpc(2L, 2, "0.0.0.0", "111-", _vpcService.getVpc(1), "10.1.1.1", new AccountVO());
             result = true;
         } catch (InvalidParameterValueException ex) {
-            msg = ex.getMessage();
         } finally {
-            if (!result) {
-                s_logger.debug("Validate network offering: Test passed: "  + msg);
-            } else {
-                s_logger.error("Validate network offering: TEST FAILED, can't use network offering without SourceNat service");
-            }
+            assertFalse("Validate network offering: TEST FAILED, can't use network offering without SourceNat service", result);
         }
         
         //3) invalid offering - conserve mode is off
         result = false;
-        msg = null;
         try {
             _vpcService.validateNtwkOffForNtwkInVpc(2L, 3, "0.0.0.0", "111-", _vpcService.getVpc(1), "10.1.1.1", new AccountVO());
             result = true;
         } catch (InvalidParameterValueException ex) {
-            msg = ex.getMessage();
         } finally {
-            if (!result) {
-                s_logger.debug("Validate network offering: Test passed: " + msg);
-            } else {
-                s_logger.error("Validate network offering: TEST FAILED, can't use network offering without conserve mode = true");
-            }
+            assertFalse("Validate network offering: TEST FAILED, can't use network offering without conserve mode = true", result);
         }
         
         //4) invalid offering - guest type shared
@@ -200,13 +120,8 @@ public class VpcApiUnitTest extends TestCase{
             _vpcService.validateNtwkOffForNtwkInVpc(2L, 4, "0.0.0.0", "111-", _vpcService.getVpc(1), "10.1.1.1", new AccountVO());
             result = true;
         } catch (InvalidParameterValueException ex) {
-            msg = ex.getMessage();
         } finally {
-            if (!result) {
-                s_logger.debug("Validate network offering: Test passed: " + msg);
-            } else {
-                s_logger.error("Validate network offering: TEST FAILED, can't use network offering with guest type = Shared");
-            }
+            assertFalse("Validate network offering: TEST FAILED, can't use network offering with guest type = Shared", result);
         }
         
         //5) Invalid offering - no redundant router support
@@ -215,30 +130,44 @@ public class VpcApiUnitTest extends TestCase{
             _vpcService.validateNtwkOffForNtwkInVpc(2L, 5, "0.0.0.0", "111-", _vpcService.getVpc(1), "10.1.1.1", new AccountVO());
             result = true;
         } catch (InvalidParameterValueException ex) {
-            msg = ex.getMessage();
         } finally {
-            if (!result) {
-                s_logger.debug("Validate network offering: Test passed: " + msg);
-            } else {
-                s_logger.error("TEST FAILED, can't use network offering with guest type = Shared");
-            }
-        }
-        
-        //6) Only one network in the VPC can support LB service - negative scenario
-        result = false;
-        try {
-            _vpcService.validateNtwkOffForNtwkInVpc(2L, 6, "0.0.0.0", "111-", _vpcService.getVpc(1), "10.1.1.1", new AccountVO());
-            result = true;
-            s_logger.debug("Validate network offering: Test passed: the offering is valid for vpc creation");
-        } catch (InvalidParameterValueException ex) {
-            msg = ex.getMessage();
-        } finally {
-            if (!result) {
-                s_logger.debug("Test passed : " + msg);
-            } else {
-                s_logger.error("Validate network offering: TEST FAILED, can't use network offering with guest type = Shared");
-            }
+            assertFalse("TEST FAILED, can't use network offering with guest type = Shared", result);
         }
     }
-
+    
+    
+//    public void destroyVpc() {
+//        boolean result = false;
+//        try {
+//            result = _vpcService.destroyVpc(_vpcService.getVpc(1), new AccountVO(), 1L);
+//        } catch (Exception ex) {
+//            s_logger.debug(ex);
+//        } finally {
+//            assertTrue("Failed to destroy VPC", result);
+//        }
+//    }
+//
+//    public void deleteVpc() {
+//        //delete existing offering
+//        boolean result = false;
+//        try {
+//            List<String> svcs = new ArrayList<String>();
+//            svcs.add(Service.SourceNat.getName());
+//            result = _vpcService.deleteVpc(1);
+//        }  catch (Exception ex) {
+//        } finally {
+//            assertTrue("Delete vpc: TEST FAILED, vpc failed to delete" + result, result);
+//        }
+//        
+//        //delete non-existing offering
+//        result = false;
+//        try {
+//            List<String> svcs = new ArrayList<String>();
+//            svcs.add(Service.SourceNat.getName());
+//            result = _vpcService.deleteVpc(100);
+//        }  catch (Exception ex) {
+//        } finally {
+//            assertFalse("Delete vpc: TEST FAILED, true is returned when try to delete non existing vpc" + result, result);
+//        }
+//    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2ca75849/server/test/com/cloud/vpc/VpcTestConfiguration.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/VpcTestConfiguration.java b/server/test/com/cloud/vpc/VpcTestConfiguration.java
index df73a6c..b1f2f80 100644
--- a/server/test/com/cloud/vpc/VpcTestConfiguration.java
+++ b/server/test/com/cloud/vpc/VpcTestConfiguration.java
@@ -32,6 +32,7 @@ import org.springframework.core.type.filter.TypeFilter;
 import com.cloud.alert.AlertManager;
 import com.cloud.cluster.agentlb.dao.HostTransferMapDaoImpl;
 import com.cloud.configuration.dao.ConfigurationDaoImpl;
+import com.cloud.configuration.dao.ResourceCountDaoImpl;
 import com.cloud.configuration.dao.ResourceLimitDaoImpl;
 import com.cloud.dao.EntityManagerImpl;
 import com.cloud.dc.dao.AccountVlanMapDaoImpl;
@@ -44,63 +45,66 @@ import com.cloud.dc.dao.DcDetailsDaoImpl;
 import com.cloud.dc.dao.HostPodDaoImpl;
 import com.cloud.dc.dao.PodVlanDaoImpl;
 import com.cloud.dc.dao.PodVlanMapDaoImpl;
+import com.cloud.dc.dao.VlanDaoImpl;
 import com.cloud.domain.dao.DomainDaoImpl;
 import com.cloud.event.dao.UsageEventDao;
 import com.cloud.host.dao.HostDaoImpl;
 import com.cloud.host.dao.HostDetailsDaoImpl;
 import com.cloud.host.dao.HostTagsDaoImpl;
-import com.cloud.vpc.MockNetworkModelImpl;
+import com.cloud.network.Ipv6AddressManagerImpl;
 import com.cloud.network.StorageNetworkManager;
-import com.cloud.network.dao.IPAddressDaoImpl;
-import com.cloud.network.lb.LoadBalancingRulesManager;
-import com.cloud.network.rules.RulesManager;
-import com.cloud.network.vpc.VpcManagerImpl;
-import com.cloud.network.vpc.dao.PrivateIpDaoImpl;
-import com.cloud.network.vpc.dao.StaticRouteDaoImpl;
-import com.cloud.network.vpc.dao.VpcDao;
-import com.cloud.network.vpc.dao.VpcGatewayDaoImpl;
-import com.cloud.network.vpc.dao.VpcOfferingDao;
-import com.cloud.utils.component.SpringComponentScanUtils;
-import com.cloud.vm.UserVmManager;
-import com.cloud.vm.dao.DomainRouterDaoImpl;
-import com.cloud.vm.dao.NicDaoImpl;
-import com.cloud.vm.dao.UserVmDaoImpl;
-import com.cloud.vm.dao.UserVmDetailsDaoImpl;
-import com.cloud.vm.dao.VMInstanceDaoImpl;
-import com.cloud.vpc.dao.MockNetworkOfferingDaoImpl;
-import com.cloud.vpc.dao.MockNetworkOfferingServiceMapDaoImpl;
-import com.cloud.vpc.dao.MockNetworkServiceMapDaoImpl;
-import com.cloud.vpc.dao.MockVpcOfferingDaoImpl;
-import com.cloud.vpc.dao.MockVpcOfferingServiceMapDaoImpl;
-
-
-import com.cloud.configuration.dao.ResourceCountDaoImpl;
-import com.cloud.dc.dao.VlanDaoImpl;
 import com.cloud.network.dao.FirewallRulesCidrsDaoImpl;
 import com.cloud.network.dao.FirewallRulesDaoImpl;
+import com.cloud.network.dao.IPAddressDaoImpl;
 import com.cloud.network.dao.LoadBalancerDaoImpl;
 import com.cloud.network.dao.NetworkDao;
 import com.cloud.network.dao.PhysicalNetworkDaoImpl;
 import com.cloud.network.dao.PhysicalNetworkTrafficTypeDaoImpl;
 import com.cloud.network.dao.RouterNetworkDaoImpl;
 import com.cloud.network.dao.Site2SiteVpnGatewayDaoImpl;
+import com.cloud.network.dao.UserIpv6AddressDaoImpl;
 import com.cloud.network.dao.VirtualRouterProviderDaoImpl;
 import com.cloud.network.element.NetworkElement;
 import com.cloud.network.element.Site2SiteVpnServiceProvider;
+import com.cloud.network.lb.LoadBalancingRulesManager;
+import com.cloud.network.rules.RulesManager;
+import com.cloud.network.vpc.VpcManagerImpl;
+import com.cloud.network.vpc.dao.PrivateIpDaoImpl;
+import com.cloud.network.vpc.dao.StaticRouteDaoImpl;
+import com.cloud.network.vpc.dao.VpcDao;
+import com.cloud.network.vpc.dao.VpcGatewayDaoImpl;
+import com.cloud.network.vpc.dao.VpcOfferingDao;
+import com.cloud.network.vpc.dao.VpcServiceMapDaoImpl;
 import com.cloud.network.vpn.RemoteAccessVpnService;
 import com.cloud.network.vpn.Site2SiteVpnManager;
 import com.cloud.projects.dao.ProjectAccountDaoImpl;
 import com.cloud.projects.dao.ProjectDaoImpl;
 import com.cloud.resourcelimit.ResourceLimitManagerImpl;
+import com.cloud.service.dao.ServiceOfferingDaoImpl;
 import com.cloud.storage.dao.SnapshotDaoImpl;
 import com.cloud.storage.dao.VMTemplateDaoImpl;
 import com.cloud.storage.dao.VMTemplateDetailsDaoImpl;
+import com.cloud.storage.dao.VMTemplateHostDaoImpl;
 import com.cloud.storage.dao.VMTemplateZoneDaoImpl;
 import com.cloud.storage.dao.VolumeDaoImpl;
 import com.cloud.tags.dao.ResourceTagsDaoImpl;
 import com.cloud.user.AccountManager;
 import com.cloud.user.dao.AccountDaoImpl;
 import com.cloud.user.dao.UserStatisticsDaoImpl;
+import com.cloud.utils.component.SpringComponentScanUtils;
+import com.cloud.vm.UserVmManager;
+import com.cloud.vm.dao.DomainRouterDaoImpl;
+import com.cloud.vm.dao.NicDaoImpl;
+import com.cloud.vm.dao.NicSecondaryIpDaoImpl;
+import com.cloud.vm.dao.UserVmDaoImpl;
+import com.cloud.vm.dao.UserVmDetailsDaoImpl;
+import com.cloud.vm.dao.VMInstanceDaoImpl;
+import com.cloud.vpc.dao.MockNetworkOfferingDaoImpl;
+import com.cloud.vpc.dao.MockNetworkOfferingServiceMapDaoImpl;
+import com.cloud.vpc.dao.MockNetworkServiceMapDaoImpl;
+import com.cloud.vpc.dao.MockVpcDaoImpl;
+import com.cloud.vpc.dao.MockVpcOfferingDaoImpl;
+import com.cloud.vpc.dao.MockVpcOfferingServiceMapDaoImpl;
 
 
 @Configuration
@@ -141,12 +145,18 @@ import com.cloud.user.dao.UserStatisticsDaoImpl;
         SnapshotDaoImpl.class,
         VMInstanceDaoImpl.class,
         VolumeDaoImpl.class,
+        UserIpv6AddressDaoImpl.class,
+        NicSecondaryIpDaoImpl.class,
+        VpcServiceMapDaoImpl.class,
+        ServiceOfferingDaoImpl.class,
+        VMTemplateHostDaoImpl.class,
+        MockVpcDaoImpl.class,
         VMTemplateDaoImpl.class,VMTemplateZoneDaoImpl.class,VMTemplateDetailsDaoImpl.class,DataCenterDaoImpl.class,DataCenterIpAddressDaoImpl.class,DataCenterLinkLocalIpAddressDaoImpl.class,DataCenterVnetDaoImpl.class,PodVlanDaoImpl.class,
         DcDetailsDaoImpl.class,MockNetworkManagerImpl.class,MockVpcVirtualNetworkApplianceManager.class,
         EntityManagerImpl.class,LoadBalancerDaoImpl.class,FirewallRulesCidrsDaoImpl.class,VirtualRouterProviderDaoImpl.class,
         ProjectDaoImpl.class,ProjectAccountDaoImpl.class,MockVpcOfferingDaoImpl.class,
         MockConfigurationManagerImpl.class, MockNetworkOfferingServiceMapDaoImpl.class,
-        MockNetworkServiceMapDaoImpl.class,MockVpcOfferingServiceMapDaoImpl.class,MockNetworkOfferingDaoImpl.class, MockNetworkModelImpl.class},
+        MockNetworkServiceMapDaoImpl.class,MockVpcOfferingServiceMapDaoImpl.class,MockNetworkOfferingDaoImpl.class, MockNetworkModelImpl.class, Ipv6AddressManagerImpl.class},
         includeFilters={@Filter(value=VpcTestConfiguration.VpcLibrary.class, type=FilterType.CUSTOM)},
         useDefaultFilters=false
         )
@@ -210,15 +220,16 @@ public class VpcTestConfiguration {
         return Mockito.mock(RemoteAccessVpnService.class);
     }
 
-    @Bean
-    public VpcDao vpcDao() {
-        return Mockito.mock(VpcDao.class);
-    }
+//    @Bean
+//    public VpcDao vpcDao() {
+//        return Mockito.mock(VpcDao.class);
+//    }
 
     @Bean
     public NetworkDao networkDao() {
         return Mockito.mock(NetworkDao.class);
     }
+    
 
     public static class VpcLibrary implements TypeFilter {
         @Override


[42/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
naming conventions for test_modules

Pythonesque is better. Also test_modules should not have executable bit
set as the test runner will not find them.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/dc87d932
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/dc87d932
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/dc87d932

Branch: refs/heads/marvin_refactor
Commit: dc87d9325e98bc161f1ff1898ae64cc82d42be3e
Parents: d0108b8
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 14:26:27 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 14:26:27 2013 +0530

----------------------------------------------------------------------
 test/integration/smoke/test_ScaleVm.py         |  221 -------------------
 test/integration/smoke/test_UpdateCfg.py       |   85 -------
 test/integration/smoke/test_global_settings.py |   85 +++++++
 test/integration/smoke/test_scale_vm.py        |  221 +++++++++++++++++++
 4 files changed, 306 insertions(+), 306 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/component/test_asa1000v_fw.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_asa1000v_fw.py b/test/integration/component/test_asa1000v_fw.py
old mode 100755
new mode 100644

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/smoke/test_ScaleVm.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_ScaleVm.py b/test/integration/smoke/test_ScaleVm.py
deleted file mode 100644
index 81a477e..0000000
--- a/test/integration/smoke/test_ScaleVm.py
+++ /dev/null
@@ -1,221 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-# 
-#   http://www.apache.org/licenses/LICENSE-2.0
-# 
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-""" P1 tests for Scaling up Vm
-"""
-#Import Local Modules
-import marvin
-from marvin.cloudstackTestCase import *
-from marvin.cloudstackAPI import *
-from marvin.remoteSSHClient import remoteSSHClient
-from marvin.integration.lib.utils import *
-from marvin.integration.lib.base import *
-from marvin.integration.lib.common import *
-from nose.plugins.attrib import attr
-#Import System modules
-import time
-
-_multiprocess_shared_ = True
-class Services:
-    """Test VM Life Cycle Services
-    """
-
-    def __init__(self):
-        self.services = {
-
-                "account": {
-                    "email": "test@test.com",
-                    "firstname": "Test",
-                    "lastname": "User",
-                    "username": "test",
-                    # Random characters are appended in create account to 
-                    # ensure unique username generated each time
-                    "password": "password",
-                },
-                "small":
-                # Create a small virtual machine instance with disk offering 
-                {
-                    "displayname": "testserver",
-                    "username": "root", # VM creds for SSH
-                    "password": "password",
-                    "ssh_port": 22,
-                    "hypervisor": 'XenServer',
-                    "privateport": 22,
-                    "publicport": 22,
-                    "protocol": 'TCP',
-                },
-                "service_offerings":
-                {
-                 "small":
-                    {
-                     # Small service offering ID to for change VM 
-                     # service offering from medium to small
-                        "name": "SmallInstance",
-                        "displaytext": "SmallInstance",
-                        "cpunumber": 1,
-                        "cpuspeed": 100,
-                        "memory": 256,
-                    },
-                "big":
-                    {
-                     # Big service offering ID to for change VM 
-                        "name": "BigInstance",
-                        "displaytext": "BigInstance",
-                        "cpunumber": 1,
-                        "cpuspeed": 100,
-                        "memory": 512,
-                    }
-                },
-                #Change this
-                "template": {
-                    "displaytext": "xs",
-                    "name": "xs",
-                    "passwordenabled": False,
-                },
-            "diskdevice": '/dev/xvdd',
-            # Disk device where ISO is attached to instance
-            "mount_dir": "/mnt/tmp",
-            "sleep": 60,
-            "timeout": 10,
-            #Migrate VM to hostid
-            "ostype": 'CentOS 5.3 (64-bit)',
-            # CentOS 5.3 (64-bit)
-        }
-
-class TestScaleVm(cloudstackTestCase):
-
-    @classmethod
-    def setUpClass(cls):
-        cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
-        cls.services = Services().services
-
-        # Get Zone, Domain and templates
-        domain = get_domain(cls.api_client, cls.services)
-        zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = cls.zone.networktype
-
-        template = get_template(
-                            cls.api_client,
-                            zone.id,
-                            cls.services["ostype"]
-                            )
-        # Set Zones and disk offerings ??
-        cls.services["small"]["zoneid"] = zone.id
-        cls.services["small"]["template"] = template.id
-
-        # Create account, service offerings, vm.
-        cls.account = Account.create(
-                            cls.api_client,
-                            cls.services["account"],
-                            domainid=domain.id
-                            )
-
-        cls.small_offering = ServiceOffering.create(
-                                    cls.api_client,
-                                    cls.services["service_offerings"]["small"]
-                                    )
-        
-        cls.big_offering = ServiceOffering.create(
-                                    cls.api_client,
-                                    cls.services["service_offerings"]["big"]
-                                    )
-
-        #create a virtual machine
-        cls.virtual_machine = VirtualMachine.create(
-                                        cls.api_client,
-                                        cls.services["small"],
-                                        accountid=cls.account.account.name,
-                                        domainid=cls.account.account.domainid,
-                                        serviceofferingid=cls.small_offering.id,
-                                        mode=cls.services["mode"]
-                                        )
-        #how does it work ??
-        cls._cleanup = [
-                        cls.small_offering,
-                        cls.account
-                        ]
-
-    @classmethod
-    def tearDownClass(cls):
-        cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
-        cleanup_resources(cls.api_client, cls._cleanup)
-        return
-
-    def setUp(self):
-        self.apiclient = self.testClient.getApiClient()
-        self.dbclient = self.testClient.getDbConnection()
-        self.cleanup = []
-
-    def tearDown(self):
-        #Clean up, terminate the created ISOs
-        cleanup_resources(self.apiclient, self.cleanup)
-        return
-
-    @attr(tags = ["xenserver", "advanced", "basic"])
-    def test_01_scale_vm(self):
-        """Test scale virtual machine 
-        """
-        # Validate the following
-        # Scale up the vm and see if it scales to the new svc offering and is finally in running state
-        
-      
-      
-        self.debug("Scaling VM-ID: %s to service offering: %s" % (
-                                        self.virtual_machine.id,
-                                        self.big_offering.id
-                                        ))
-        
-        cmd = scaleVirtualMachine.scaleVirtualMachineCmd()
-        cmd.serviceofferingid = self.big_offering.id
-        cmd.id = self.virtual_machine.id
-        self.apiclient.scaleVirtualMachine(cmd)  
-
-        list_vm_response = list_virtual_machines(
-                                            self.apiclient,
-                                            id=self.virtual_machine.id
-                                            )
-        self.assertEqual(
-                        isinstance(list_vm_response, list),
-                        True,
-                        "Check list response returns a valid list"
-                        )
-
-        self.assertNotEqual(
-                            list_vm_response,
-                            None,
-                            "Check virtual machine is listVirtualMachines"
-                            )
-
-        vm_response = list_vm_response[0]
-
-        self.assertEqual(
-                        vm_response.id,
-                        self.virtual_machine.id,
-                        "Check virtual machine ID of scaled VM"
-                        )
-
-        self.assertEqual(
-                        vm_response.serviceofferingid,
-                        self.big_offering.id,
-                        "Check service offering of the VM"
-                        )
-
-        self.assertEqual(
-                        vm_response.state,
-                        'Running',
-                        "Check the state of VM"
-                        )
-        return

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/smoke/test_UpdateCfg.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_UpdateCfg.py b/test/integration/smoke/test_UpdateCfg.py
deleted file mode 100644
index be501b9..0000000
--- a/test/integration/smoke/test_UpdateCfg.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-""" P1 tests for updating the granular Configuration parameter with scope and resource id provided.
-"""
-#Import Local Modules
-import marvin
-from marvin.cloudstackTestCase import *
-from marvin.cloudstackAPI import *
-from marvin.remoteSSHClient import remoteSSHClient
-from marvin.integration.lib.utils import *
-from marvin.integration.lib.base import *
-from marvin.integration.lib.common import *
-from nose.plugins.attrib import attr
-#Import System modules
-import unittest
-import hashlib
-import random
-
-class TestUpdateConfigWithScope(cloudstackTestCase):
-    """
-    This test updates the value of a configuration parameter
-    which is at zone level(scope)
-    """
-    def setUp(self):
-        """
-        CloudStack internally saves its passwords in md5 form and that is how we
-        specify it in the API. Python's hashlib library helps us to quickly hash
-        strings as follows
-        """
-        mdf = hashlib.md5()
-        mdf.update('password')
-        mdf_pass = mdf.hexdigest()
-
-        self.apiClient = self.testClient.getApiClient() #Get ourselves an API client
-
-
-
-    def test_UpdateConfigParamWithScope(self):
-
-        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
-        updateConfigurationCmd.name = "use.external.dns"
-        updateConfigurationCmd.value = "true"
-        updateConfigurationCmd.scope = "zone"
-        updateConfigurationCmd.id = 1
-
-        updateConfigurationResponse = self.apiClient.updateConfiguration(updateConfigurationCmd)
-        self.debug("updated the parameter %s with value %s"%(updateConfigurationResponse.name, updateConfigurationResponse.value))
-
-        listConfigurationsCmd = listConfigurations.listConfigurationsCmd()
-        listConfigurationsCmd.cfgName = updateConfigurationResponse.name
-        listConfigurationsCmd.scope = "zone"
-        listConfigurationsCmd.id = 1
-        listConfigurationsResponse = self.apiClient.listConfigurations(listConfigurationsCmd)
-
-        self.assertNotEqual(len(listConfigurationsResponse), 0, "Check if the list API \
-                            returns a non-empty response")
-
-        configParam = listConfigurationsResponse[0]
-
-        self.assertEqual(configParam.value, updateConfigurationResponse.value, "Check if the update API returned \
-                         is the same as the one we got in the list API")
-
-
-    def tearDown(self):
-
-        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
-        updateConfigurationCmd.name = "use.external.dns"
-        updateConfigurationCmd.value = "false"
-        updateConfigurationCmd.scope = "zone"
-        updateConfigurationCmd.id = 1
-        self.apiClient.updateConfiguration(updateConfigurationCmd)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/smoke/test_global_settings.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_global_settings.py b/test/integration/smoke/test_global_settings.py
new file mode 100644
index 0000000..be501b9
--- /dev/null
+++ b/test/integration/smoke/test_global_settings.py
@@ -0,0 +1,85 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+""" P1 tests for updating the granular Configuration parameter with scope and resource id provided.
+"""
+#Import Local Modules
+import marvin
+from marvin.cloudstackTestCase import *
+from marvin.cloudstackAPI import *
+from marvin.remoteSSHClient import remoteSSHClient
+from marvin.integration.lib.utils import *
+from marvin.integration.lib.base import *
+from marvin.integration.lib.common import *
+from nose.plugins.attrib import attr
+#Import System modules
+import unittest
+import hashlib
+import random
+
+class TestUpdateConfigWithScope(cloudstackTestCase):
+    """
+    This test updates the value of a configuration parameter
+    which is at zone level(scope)
+    """
+    def setUp(self):
+        """
+        CloudStack internally saves its passwords in md5 form and that is how we
+        specify it in the API. Python's hashlib library helps us to quickly hash
+        strings as follows
+        """
+        mdf = hashlib.md5()
+        mdf.update('password')
+        mdf_pass = mdf.hexdigest()
+
+        self.apiClient = self.testClient.getApiClient() #Get ourselves an API client
+
+
+
+    def test_UpdateConfigParamWithScope(self):
+
+        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
+        updateConfigurationCmd.name = "use.external.dns"
+        updateConfigurationCmd.value = "true"
+        updateConfigurationCmd.scope = "zone"
+        updateConfigurationCmd.id = 1
+
+        updateConfigurationResponse = self.apiClient.updateConfiguration(updateConfigurationCmd)
+        self.debug("updated the parameter %s with value %s"%(updateConfigurationResponse.name, updateConfigurationResponse.value))
+
+        listConfigurationsCmd = listConfigurations.listConfigurationsCmd()
+        listConfigurationsCmd.cfgName = updateConfigurationResponse.name
+        listConfigurationsCmd.scope = "zone"
+        listConfigurationsCmd.id = 1
+        listConfigurationsResponse = self.apiClient.listConfigurations(listConfigurationsCmd)
+
+        self.assertNotEqual(len(listConfigurationsResponse), 0, "Check if the list API \
+                            returns a non-empty response")
+
+        configParam = listConfigurationsResponse[0]
+
+        self.assertEqual(configParam.value, updateConfigurationResponse.value, "Check if the update API returned \
+                         is the same as the one we got in the list API")
+
+
+    def tearDown(self):
+
+        updateConfigurationCmd = updateConfiguration.updateConfigurationCmd()
+        updateConfigurationCmd.name = "use.external.dns"
+        updateConfigurationCmd.value = "false"
+        updateConfigurationCmd.scope = "zone"
+        updateConfigurationCmd.id = 1
+        self.apiClient.updateConfiguration(updateConfigurationCmd)

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dc87d932/test/integration/smoke/test_scale_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_scale_vm.py b/test/integration/smoke/test_scale_vm.py
new file mode 100644
index 0000000..81a477e
--- /dev/null
+++ b/test/integration/smoke/test_scale_vm.py
@@ -0,0 +1,221 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+""" P1 tests for Scaling up Vm
+"""
+#Import Local Modules
+import marvin
+from marvin.cloudstackTestCase import *
+from marvin.cloudstackAPI import *
+from marvin.remoteSSHClient import remoteSSHClient
+from marvin.integration.lib.utils import *
+from marvin.integration.lib.base import *
+from marvin.integration.lib.common import *
+from nose.plugins.attrib import attr
+#Import System modules
+import time
+
+_multiprocess_shared_ = True
+class Services:
+    """Test VM Life Cycle Services
+    """
+
+    def __init__(self):
+        self.services = {
+
+                "account": {
+                    "email": "test@test.com",
+                    "firstname": "Test",
+                    "lastname": "User",
+                    "username": "test",
+                    # Random characters are appended in create account to 
+                    # ensure unique username generated each time
+                    "password": "password",
+                },
+                "small":
+                # Create a small virtual machine instance with disk offering 
+                {
+                    "displayname": "testserver",
+                    "username": "root", # VM creds for SSH
+                    "password": "password",
+                    "ssh_port": 22,
+                    "hypervisor": 'XenServer',
+                    "privateport": 22,
+                    "publicport": 22,
+                    "protocol": 'TCP',
+                },
+                "service_offerings":
+                {
+                 "small":
+                    {
+                     # Small service offering ID to for change VM 
+                     # service offering from medium to small
+                        "name": "SmallInstance",
+                        "displaytext": "SmallInstance",
+                        "cpunumber": 1,
+                        "cpuspeed": 100,
+                        "memory": 256,
+                    },
+                "big":
+                    {
+                     # Big service offering ID to for change VM 
+                        "name": "BigInstance",
+                        "displaytext": "BigInstance",
+                        "cpunumber": 1,
+                        "cpuspeed": 100,
+                        "memory": 512,
+                    }
+                },
+                #Change this
+                "template": {
+                    "displaytext": "xs",
+                    "name": "xs",
+                    "passwordenabled": False,
+                },
+            "diskdevice": '/dev/xvdd',
+            # Disk device where ISO is attached to instance
+            "mount_dir": "/mnt/tmp",
+            "sleep": 60,
+            "timeout": 10,
+            #Migrate VM to hostid
+            "ostype": 'CentOS 5.3 (64-bit)',
+            # CentOS 5.3 (64-bit)
+        }
+
+class TestScaleVm(cloudstackTestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
+        cls.services = Services().services
+
+        # Get Zone, Domain and templates
+        domain = get_domain(cls.api_client, cls.services)
+        zone = get_zone(cls.api_client, cls.services)
+        cls.services['mode'] = cls.zone.networktype
+
+        template = get_template(
+                            cls.api_client,
+                            zone.id,
+                            cls.services["ostype"]
+                            )
+        # Set Zones and disk offerings ??
+        cls.services["small"]["zoneid"] = zone.id
+        cls.services["small"]["template"] = template.id
+
+        # Create account, service offerings, vm.
+        cls.account = Account.create(
+                            cls.api_client,
+                            cls.services["account"],
+                            domainid=domain.id
+                            )
+
+        cls.small_offering = ServiceOffering.create(
+                                    cls.api_client,
+                                    cls.services["service_offerings"]["small"]
+                                    )
+        
+        cls.big_offering = ServiceOffering.create(
+                                    cls.api_client,
+                                    cls.services["service_offerings"]["big"]
+                                    )
+
+        #create a virtual machine
+        cls.virtual_machine = VirtualMachine.create(
+                                        cls.api_client,
+                                        cls.services["small"],
+                                        accountid=cls.account.account.name,
+                                        domainid=cls.account.account.domainid,
+                                        serviceofferingid=cls.small_offering.id,
+                                        mode=cls.services["mode"]
+                                        )
+        #how does it work ??
+        cls._cleanup = [
+                        cls.small_offering,
+                        cls.account
+                        ]
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
+        cleanup_resources(cls.api_client, cls._cleanup)
+        return
+
+    def setUp(self):
+        self.apiclient = self.testClient.getApiClient()
+        self.dbclient = self.testClient.getDbConnection()
+        self.cleanup = []
+
+    def tearDown(self):
+        #Clean up, terminate the created ISOs
+        cleanup_resources(self.apiclient, self.cleanup)
+        return
+
+    @attr(tags = ["xenserver", "advanced", "basic"])
+    def test_01_scale_vm(self):
+        """Test scale virtual machine 
+        """
+        # Validate the following
+        # Scale up the vm and see if it scales to the new svc offering and is finally in running state
+        
+      
+      
+        self.debug("Scaling VM-ID: %s to service offering: %s" % (
+                                        self.virtual_machine.id,
+                                        self.big_offering.id
+                                        ))
+        
+        cmd = scaleVirtualMachine.scaleVirtualMachineCmd()
+        cmd.serviceofferingid = self.big_offering.id
+        cmd.id = self.virtual_machine.id
+        self.apiclient.scaleVirtualMachine(cmd)  
+
+        list_vm_response = list_virtual_machines(
+                                            self.apiclient,
+                                            id=self.virtual_machine.id
+                                            )
+        self.assertEqual(
+                        isinstance(list_vm_response, list),
+                        True,
+                        "Check list response returns a valid list"
+                        )
+
+        self.assertNotEqual(
+                            list_vm_response,
+                            None,
+                            "Check virtual machine is listVirtualMachines"
+                            )
+
+        vm_response = list_vm_response[0]
+
+        self.assertEqual(
+                        vm_response.id,
+                        self.virtual_machine.id,
+                        "Check virtual machine ID of scaled VM"
+                        )
+
+        self.assertEqual(
+                        vm_response.serviceofferingid,
+                        self.big_offering.id,
+                        "Check service offering of the VM"
+                        )
+
+        self.assertEqual(
+                        vm_response.state,
+                        'Running',
+                        "Check the state of VM"
+                        )
+        return


[12/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2038: cloudstack UI - mixed zone management - template menu - register template action - populate zone dropdown upon selected zone type on top menu.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/2431c814
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/2431c814
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/2431c814

Branch: refs/heads/marvin_refactor
Commit: 2431c814a8b070f55e36f9a94d08066cb81ea870
Parents: ba7e49f
Author: Jessica Wang <je...@citrix.com>
Authored: Mon Apr 15 15:57:37 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Mon Apr 15 15:57:37 2013 -0700

----------------------------------------------------------------------
 ui/scripts/templates.js |   36 ++++++++++++++++++++++++++----------
 1 files changed, 26 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2431c814/ui/scripts/templates.js
----------------------------------------------------------------------
diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js
index 6268f6b..f579c50 100644
--- a/ui/scripts/templates.js
+++ b/ui/scripts/templates.js
@@ -115,16 +115,32 @@
                         url: createURL("listZones&available=true"),
                         dataType: "json",
                         async: true,
-                        success: function(json) {
-                          var zoneObjs = json.listzonesresponse.zone;
-                          var items = [];
-                          if (isAdmin() && !(cloudStack.context.projects &&
-                                             cloudStack.context.projects[0]))
-                            items.push({id: -1, description: "All Zones"});
-                          $(zoneObjs).each(function() {
-                            items.push({id: this.id, description: this.name});
-                          });
-                          args.response.success({data: items});
+                        success: function(json) {    
+													var zoneObjs;
+							            if(args.context.zoneType == null || args.context.zoneType == '') { //all types
+														zoneObjs = [];
+														var items = json.listzonesresponse.zone;
+														if(items != null) {
+															for(var i = 0; i < items.length; i++) {																
+																zoneObjs.push({id: items[i].id, description: items[i].name});		
+															}
+														}
+													}
+													else { //Basic type or Advanced type
+														zoneObjs = [];
+														var items = json.listzonesresponse.zone;
+														if(items != null) {
+															for(var i = 0; i < items.length; i++) {
+																if(items[i].networktype == args.context.zoneType) {
+																  zoneObjs.push({id: items[i].id, description: items[i].name});																	
+																}
+															}
+														}
+													}		
+													if (isAdmin() && !(cloudStack.context.projects && cloudStack.context.projects[0])){
+                            zoneObjs.unshift({id: -1, description: "All Zones"});
+                          }																										
+													args.response.success({data: zoneObjs});     
                         }
                       });
                     }


[29/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'master' into ui-mixed-zone-management


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/355b9101
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/355b9101
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/355b9101

Branch: refs/heads/marvin_refactor
Commit: 355b910173799d52124ee46efd4cef489775e68c
Parents: e044303 4a3a9df
Author: Brian Federle <br...@citrix.com>
Authored: Fri Apr 19 10:23:15 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Fri Apr 19 10:23:15 2013 -0700

----------------------------------------------------------------------
 .../cloud/agent/api/MigrateWithStorageAnswer.java  |   39 ++
 .../cloud/agent/api/MigrateWithStorageCommand.java |   45 ++
 .../api/MigrateWithStorageCompleteAnswer.java      |   38 ++
 .../api/MigrateWithStorageCompleteCommand.java     |   36 ++
 .../agent/api/MigrateWithStorageReceiveAnswer.java |   55 +++
 .../api/MigrateWithStorageReceiveCommand.java      |   45 ++
 .../agent/api/MigrateWithStorageSendAnswer.java    |   39 ++
 .../agent/api/MigrateWithStorageSendCommand.java   |   58 +++
 .../agent/api/storage/MigrateVolumeAnswer.java     |   38 ++
 .../agent/api/storage/MigrateVolumeCommand.java    |   51 ++
 .../cloud/hypervisor/HypervisorCapabilities.java   |    2 +
 api/src/com/cloud/network/element/IpDeployer.java  |    6 +-
 api/src/com/cloud/server/ManagementService.java    |   19 +-
 api/src/com/cloud/vm/UserVmService.java            |   27 ++
 .../org/apache/cloudstack/api/ApiConstants.java    |    2 +
 .../apache/cloudstack/api/ResponseGenerator.java   |    6 +
 .../api/command/admin/config/ListCfgsByCmd.java    |   24 +-
 .../api/command/admin/config/UpdateCfgCmd.java     |   22 +-
 .../admin/host/FindHostsForMigrationCmd.java       |  107 +++++
 .../api/command/admin/host/ListHostsCmd.java       |    7 +-
 .../storage/FindStoragePoolsForMigrationCmd.java   |   98 ++++
 .../vm/MigrateVirtualMachineWithVolumeCmd.java     |  160 +++++++
 .../api/command/user/volume/MigrateVolumeCmd.java  |    8 +
 .../api/response/ConfigurationResponse.java        |   12 +
 .../api/response/HostForMigrationResponse.java     |  365 +++++++++++++++
 .../cloudstack/api/response/HostResponse.java      |    1 -
 .../response/StoragePoolForMigrationResponse.java  |  248 ++++++++++
 .../api/response/StoragePoolResponse.java          |    3 -
 .../api/command/test/ListCfgCmdTest.java           |   89 ++++
 .../api/command/test/UpdateCfgCmdTest.java         |  116 +++++
 client/tomcatconf/applicationContext.xml.in        |    1 +
 client/tomcatconf/commands.properties.in           |    3 +
 .../cloud/hypervisor/HypervisorCapabilitiesVO.java |   24 +-
 docs/en-US/build-nonoss.xml                        |   49 ++
 docs/en-US/source.xml                              |    1 +
 .../troubleshooting-working-with-server-logs.xml   |    6 +-
 .../api/storage/ObjectInDataStoreStateMachine.java |    2 +
 .../subsystem/api/storage/VolumeService.java       |    7 +-
 .../datastore/db/StoragePoolDetailsDao.java        |    1 +
 .../image/motion/DefaultImageMotionStrategy.java   |   18 +
 .../storage/test/MockStorageMotionStrategy.java    |   19 +
 .../storage/motion/AncientDataMotionStrategy.java  |   84 ++++-
 .../storage/motion/DataMotionService.java          |    9 +
 .../storage/motion/DataMotionServiceImpl.java      |   16 +
 .../storage/motion/DataMotionStrategy.java         |   10 +
 .../cloudstack/storage/volume/VolumeObject.java    |    2 +
 .../storage/volume/VolumeServiceImpl.java          |  174 +++++++-
 .../debian/config/etc/init.d/cloud-early-config    |   53 +--
 .../manager/allocator/impl/RandomAllocator.java    |   56 +++
 .../xen/resource/CitrixResourceBase.java           |    4 +-
 .../xen/resource/XenServer56FP1Resource.java       |    1 +
 .../xen/resource/XenServer610Resource.java         |  359 ++++++++++++++-
 .../motion/XenServerStorageMotionStrategy.java     |  239 ++++++++++
 .../cloud/network/element/NiciraNvpElement.java    |    5 +
 .../network/element/NiciraNvpElementTest.java      |  238 +++++++---
 .../agent/manager/allocator/HostAllocator.java     |   23 +-
 .../manager/allocator/impl/FirstFitAllocator.java  |   47 ++
 .../manager/allocator/impl/TestingAllocator.java   |    7 +
 server/src/com/cloud/api/ApiDBUtils.java           |   19 +
 server/src/com/cloud/api/ApiResponseHelper.java    |   27 +-
 .../com/cloud/api/query/ViewResponseHelper.java    |   37 ++
 .../src/com/cloud/api/query/dao/HostJoinDao.java   |    5 +
 .../com/cloud/api/query/dao/HostJoinDaoImpl.java   |  135 ++++++-
 .../cloud/api/query/dao/StoragePoolJoinDao.java    |    6 +
 .../api/query/dao/StoragePoolJoinDaoImpl.java      |   59 +++-
 server/src/com/cloud/configuration/Config.java     |   54 ++-
 .../cloud/configuration/ConfigurationManager.java  |    2 +-
 .../configuration/ConfigurationManagerImpl.java    |   51 ++-
 .../cloud/configuration/dao/ConfigurationDao.java  |    1 +
 server/src/com/cloud/dc/dao/VlanDao.java           |    2 +
 server/src/com/cloud/dc/dao/VlanDaoImpl.java       |   19 +
 .../src/com/cloud/network/NetworkManagerImpl.java  |   20 +-
 .../src/com/cloud/network/NetworkServiceImpl.java  |    6 +-
 .../router/VirtualNetworkApplianceManagerImpl.java |    5 +-
 .../src/com/cloud/server/ConfigurationServer.java  |    5 +
 .../com/cloud/server/ConfigurationServerImpl.java  |   93 ++++-
 .../src/com/cloud/server/ManagementServerImpl.java |  308 +++++++++++--
 server/src/com/cloud/storage/VolumeManager.java    |    8 +
 .../src/com/cloud/storage/VolumeManagerImpl.java   |  112 +++++-
 .../storage/dao/StoragePoolDetailsDaoImpl.java     |    9 +
 server/src/com/cloud/vm/UserVmManagerImpl.java     |  123 +++++
 server/src/com/cloud/vm/VirtualMachineManager.java |    4 +
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |  233 +++++++++-
 .../test/com/cloud/vm/MockUserVmManagerImpl.java   |    8 +
 .../cloud/vm/MockVirtualMachineManagerImpl.java    |   10 +
 .../cloud/vm/VirtualMachineManagerImplTest.java    |  231 +++++++++-
 .../cloud/vpc/MockConfigurationManagerImpl.java    |    5 +-
 setup/db/db/schema-410to420.sql                    |    2 +
 test/integration/component/test_storage_motion.py  |  298 ++++++++++++
 test/integration/smoke/test_UpdateCfg.py           |   85 ++++
 .../definitions/systemvmtemplate/cleanup.sh        |    1 -
 .../definitions/systemvmtemplate64/cleanup.sh      |    1 -
 tools/marvin/marvin/integration/lib/base.py        |   22 +
 ui/css/cloudstack3.css                             |   11 +
 ui/scripts/instances.js                            |   66 ++-
 ui/scripts/storage.js                              |   73 +++-
 96 files changed, 5111 insertions(+), 269 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/355b9101/ui/css/cloudstack3.css
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/355b9101/ui/scripts/storage.js
----------------------------------------------------------------------


[21/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'master' into ui-mixed-zone-management


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e0443030
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e0443030
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e0443030

Branch: refs/heads/marvin_refactor
Commit: e04430302dff167d70d741a93b3219bc9f6aec3e
Parents: c3009e3 977162b
Author: Brian Federle <br...@citrix.com>
Authored: Thu Apr 18 15:18:43 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Thu Apr 18 15:18:43 2013 -0700

----------------------------------------------------------------------
 api/src/com/cloud/network/IpAddress.java           |    9 -
 api/src/com/cloud/network/PublicIpAddress.java     |    3 -
 api/src/com/cloud/user/Account.java                |    4 +
 api/src/com/cloud/user/User.java                   |    2 +
 .../cloudstack/affinity/AffinityGroupResponse.java |    5 +-
 .../api/command/user/vm/DeployVMCmd.java           |    5 +-
 .../cloudstack/api/command/user/vm/ListVMsCmd.java |    2 +-
 .../cloudstack/api/response/AccountResponse.java   |    7 +
 .../cloudstack/api/response/UserResponse.java      |    8 +
 core/src/com/cloud/user/AccountVO.java             |    7 +
 core/src/com/cloud/user/UserVO.java                |   11 +-
 docs/en-US/Release_Notes.xml                       |  389 ++++++++++-----
 packaging/debian/init/cloud-management             |    2 +-
 packaging/debian/replace.properties                |    2 +-
 .../kvm/resource/LibvirtComputingResource.java     |    3 +-
 pom.xml                                            |   16 +
 server/src/com/cloud/api/ApiResponseHelper.java    |    9 +-
 .../src/com/cloud/api/query/QueryManagerImpl.java  |   11 +-
 .../cloud/api/query/dao/AccountJoinDaoImpl.java    |    8 +-
 .../api/query/dao/AffinityGroupJoinDaoImpl.java    |    1 +
 .../api/query/dao/UserAccountJoinDaoImpl.java      |    1 +
 .../src/com/cloud/api/query/vo/AccountJoinVO.java  |   10 +
 .../cloud/api/query/vo/AffinityGroupJoinVO.java    |   11 +
 .../com/cloud/api/query/vo/UserAccountJoinVO.java  |   16 +-
 .../src/com/cloud/network/NetworkServiceImpl.java  |    6 +-
 server/src/com/cloud/network/addr/PublicIp.java    |   18 +-
 server/src/com/cloud/network/dao/IPAddressVO.java  |    2 -
 .../network/element/VirtualRouterElement.java      |    2 +-
 .../com/cloud/server/ConfigurationServerImpl.java  |   12 +-
 server/src/com/cloud/user/AccountManagerImpl.java  |   15 +-
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |    5 +
 .../affinity/AffinityGroupServiceImpl.java         |    2 +-
 .../cloudstack/affinity/AffinityGroupVO.java       |    2 +-
 setup/db/db/schema-410to420.sql                    |  337 ++++++++------
 test/integration/smoke/test_public_ip_range.py     |    2 +-
 tools/build/build_asf.sh                           |    2 +-
 tools/marvin/marvin/cloudstackConnection.py        |   92 +++--
 ui/css/cloudstack3.css                             |   11 +
 ui/index.jsp                                       |    5 +-
 ui/modules/modules.js                              |   20 +
 ui/scripts/plugins.js                              |   95 +++--
 ui/scripts/ui-custom/pluginListing.js              |  109 ++++
 ui/scripts/ui-custom/plugins.js                    |  109 ----
 ui/scripts/zoneWizard.js                           |    2 +-
 44 files changed, 851 insertions(+), 539 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e0443030/ui/css/cloudstack3.css
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e0443030/ui/index.jsp
----------------------------------------------------------------------
diff --cc ui/index.jsp
index 41ad491,5e5a7f2..9e1743e
--- a/ui/index.jsp
+++ b/ui/index.jsp
@@@ -1678,13 -1678,12 +1678,14 @@@ under the License
      <script type="text/javascript" src="scripts/system.js?t=<%=now%>"></script>
      <script type="text/javascript" src="scripts/domains.js?t=<%=now%>"></script>
      <script type="text/javascript" src="scripts/docs.js?t=<%=now%>"></script>
 -    <script type="text/javascript" src="scripts/vm_snapshots.js?t=<%=now%>"></script>  
 +    <script type="text/javascript" src="scripts/vm_snapshots.js?t=<%=now%>"></script>
 +    <script type="text/javascript" src="scripts/ui-custom/projectSelect.js?t=<%=now%>"></script>
 +    <script type="text/javascript" src="scripts/ui-custom/zoneFilter.js?t=<%=now%>"></script>
  
-     <!-- Plugins -->
-     <script type="text/javascript" src="scripts/ui-custom/plugins.js?t=<%=now%>"></script>
+     <!-- Plugin/module API -->
+     <script type="text/javascript" src="scripts/ui-custom/pluginListing.js?t=<%=now%>"></script>
      <script type="text/javascript" src="plugins/plugins.js?t=<%=now%>"></script>
+     <script type="text/javascript" src="modules/modules.js?t=<%=now%>"></script>
      <script type="text/javascript" src="scripts/plugins.js?t=<%=now%>"></script>
    </body>
  </html>


[11/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2038: cloudstack UI - mixed zone management - storage menu - volume section - Add volume action, Upload volume action - populate zone dropdown upon selected zone type on top menu.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ba7e49f1
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ba7e49f1
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ba7e49f1

Branch: refs/heads/marvin_refactor
Commit: ba7e49f11cd1c482ced8f814a518539ee153b040
Parents: 6544879
Author: Jessica Wang <je...@citrix.com>
Authored: Mon Apr 15 15:14:42 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Mon Apr 15 15:14:42 2013 -0700

----------------------------------------------------------------------
 ui/scripts/storage.js |   44 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 35 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ba7e49f1/ui/scripts/storage.js
----------------------------------------------------------------------
diff --git a/ui/scripts/storage.js b/ui/scripts/storage.js
index 54605e2..9f7baf0 100644
--- a/ui/scripts/storage.js
+++ b/ui/scripts/storage.js
@@ -88,9 +88,22 @@
                         url: createURL("listZones&available=true"),
                         dataType: "json",
                         async: true,
-                        success: function(json) {
-                          var items = json.listzonesresponse.zone;
-                          args.response.success({descriptionField: 'name', data: items});
+                        success: function(json) {												 
+													var zoneObjs;
+							            if(args.context.zoneType == null || args.context.zoneType == '') { //all types
+														zoneObjs = json.listzonesresponse.zone;			
+													}
+													else { //Basic type or Advanced type
+														zoneObjs = [];
+														var items = json.listzonesresponse.zone;
+														if(items != null) {
+															for(var i = 0; i < items.length; i++) {
+																if(items[i].networktype == args.context.zoneType) 
+																	zoneObjs.push(items[i]);
+															}
+														}
+													}						
+													args.response.success({descriptionField: 'name', data: zoneObjs});													                      
                         }
                       });
                     }
@@ -208,16 +221,29 @@
                   availabilityZone: {
                     label: 'label.availability.zone',
                     docID: 'helpUploadVolumeZone',
-                    select: function(args) {
-                      $.ajax({
+                    select: function(args) {                      
+											$.ajax({
                         url: createURL("listZones&available=true"),
                         dataType: "json",
                         async: true,
-                        success: function(json) {
-                          var items = json.listzonesresponse.zone;
-                          args.response.success({descriptionField: 'name', data: items});
+                        success: function(json) {												 
+													var zoneObjs;
+							            if(args.context.zoneType == null || args.context.zoneType == '') { //all types
+														zoneObjs = json.listzonesresponse.zone;			
+													}
+													else { //Basic type or Advanced type
+														zoneObjs = [];
+														var items = json.listzonesresponse.zone;
+														if(items != null) {
+															for(var i = 0; i < items.length; i++) {
+																if(items[i].networktype == args.context.zoneType) 
+																	zoneObjs.push(items[i]);
+															}
+														}
+													}						
+													args.response.success({descriptionField: 'name', data: zoneObjs});													                      
                         }
-                      });
+                      });											
                     }
                   },
                   format: {


[47/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
ipaddress factories

ipaddress doesn't require id to associate but only when disassociate


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e7ac9e68
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e7ac9e68
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e7ac9e68

Branch: refs/heads/marvin_refactor
Commit: e7ac9e687b7787420883e3557fc13d42a51e91b7
Parents: f4006bf
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 22:31:00 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 22:31:00 2013 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/base/IpAddress.py             |    2 +-
 tools/marvin/marvin/factory/IpAddressFactory.py   |    4 +-
 tools/marvin/marvin/factory/test/testFactories.py |   43 +++++++++++++++-
 3 files changed, 45 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7ac9e68/tools/marvin/marvin/base/IpAddress.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/base/IpAddress.py b/tools/marvin/marvin/base/IpAddress.py
index 6fdfe1e..43d82a1 100644
--- a/tools/marvin/marvin/base/IpAddress.py
+++ b/tools/marvin/marvin/base/IpAddress.py
@@ -36,7 +36,7 @@ class IpAddress(CloudStackEntity.CloudStackEntity):
 
     def associate(self, apiclient, **kwargs):
         cmd = associateIpAddress.associateIpAddressCmd()
-        cmd.id = self.id
+#        cmd.id = self.id
         [setattr(cmd, key, value) for key,value in kwargs.iteritems()]
         ipaddress = apiclient.associateIpAddress(cmd)
         return ipaddress

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7ac9e68/tools/marvin/marvin/factory/IpAddressFactory.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/factory/IpAddressFactory.py b/tools/marvin/marvin/factory/IpAddressFactory.py
index 6c14e9a..bb4cc8b 100644
--- a/tools/marvin/marvin/factory/IpAddressFactory.py
+++ b/tools/marvin/marvin/factory/IpAddressFactory.py
@@ -15,10 +15,10 @@
 # specific language governing permissions and limitations
 # under the License.
 import factory
-from marvin.base import IpAddress
+from marvin.base.IpAddress import IpAddress
 
 
 class IpAddressFactory(factory.Factory):
 
-    FACTORY_FOR = IpAddress.IpAddress
+    FACTORY_FOR = IpAddress
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e7ac9e68/tools/marvin/marvin/factory/test/testFactories.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/factory/test/testFactories.py b/tools/marvin/marvin/factory/test/testFactories.py
index 81bcca6..d4e947e 100644
--- a/tools/marvin/marvin/factory/test/testFactories.py
+++ b/tools/marvin/marvin/factory/test/testFactories.py
@@ -28,9 +28,12 @@ from marvin.factory.VirtualMachineFactory import *
 from marvin.factory.UserFactory import *
 
 
-from marvin.base.Zone import *
+from marvin.base.ServiceOffering import ServiceOffering
+from marvin.base.Zone import Zone
 from marvin.base.Account import Account
 from marvin.base.Template import Template
+from marvin.base.IpAddress import IpAddress
+from marvin.base.Network import Network
 
 
 
@@ -148,3 +151,41 @@ class UserFactorySubFactoryTest(unittest.TestCase):
         self.assert_(uf.username == user[0].username, msg="Usernames don't match")
 
 
+class IpAddressFactoryTest(unittest.TestCase):
+    def setUp(self):
+        self.apiClient = cloudstackTestClient(mgtSvr='localhost', logging=logging.getLogger('factories.cloudstack')).getApiClient()
+
+    def tearDown(self):
+        pass
+
+    def test_associateIpAddress(self):
+        all_ips = IpAddress.list(apiclient=self.apiClient)
+        self.assert_(len(all_ips) > 0, msg="No free public IPs")
+        firstip = all_ips[0]
+        firstip.associate(apiclient=self.apiClient, zoneid=firstip.zoneid)
+
+    def test_vpcAssociateIpAddress(self):
+        #FIXME: To be written
+        self.assert_(1 == 1)
+
+    def test_associateIpAddressToNetwork(self):
+        accnt = AccountFactory.create(apiclient=self.apiClient)
+        self.assert_(accnt is not None)
+        self.assert_(isinstance(accnt, Account))
+        service = ServiceOffering.list(apiclient=self.apiClient, displaytext='Small')
+        self.assert_(len(service) > 0)
+        template = Template.list(apiclient=self.apiClient, templatefilter="featured")
+        self.assert_(len(template) > 0)
+        zones = Zone.list(apiclient=self.apiClient)
+        vm = VirtualMachineFactory.create(
+            apiclient=self.apiClient,
+            serviceofferingid = service[0].id,
+            templateid = template[0].id,
+            zoneid = zones[0].id,
+            account=accnt.account.name,
+            domainid=accnt.account.domainid)
+        all_ips = IpAddress.list(apiclient=self.apiClient)
+        firstip = all_ips[0]
+        networks = Network.list(apiclient=self.apiClient, account = accnt.account.name, domainid = accnt.account.domainid)
+        firstip.associate(apiclient=self.apiClient, networkid = networks[0].id)
+        vm.destroy(apiclient=self.apiClient)
\ No newline at end of file


[06/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Zone type switcher: Style, add functionality

- Add top label to zone switcher, add more styling

- Implement zone switching functionality, which on change sets
  cloudStack.context.zoneType to the relevant filter option, or null
  for 'All' zone types


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fa8b8358
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fa8b8358
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fa8b8358

Branch: refs/heads/marvin_refactor
Commit: fa8b83581bd39230f98806ed43f4103bb5454469
Parents: 5014073
Author: Brian Federle <br...@citrix.com>
Authored: Wed Apr 10 14:43:42 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Wed Apr 10 14:43:42 2013 -0700

----------------------------------------------------------------------
 ui/css/cloudstack3.css             |   30 ++++++++++++++++++++++++++++++
 ui/index.jsp                       |    2 +-
 ui/scripts/ui-custom/zoneFilter.js |   16 ++++++++++++----
 3 files changed, 43 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fa8b8358/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index 61e5ab4..3211130 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -2277,6 +2277,34 @@ div.detail-group.actions td {
   top: 13px;
 }
 
+/** Zone filter (mixed zone management)*/
+#header .zone-filter {
+  float: left;
+  width: 111px;
+  margin: 9px 20px 0 2px;
+}
+
+#header .zone-filter label {
+  position: absolute;
+  top: -3px;
+  color: #FFFFFF;
+  font-size: 11px;
+}
+
+#header .zone-filter select {
+  width: 100%;
+  font-size: 12px;
+  border: 1px solid #000000;
+  border-bottom: #FFFFFF;
+  /*+border-radius:4px;*/
+  -moz-border-radius: 4px;
+  -webkit-border-radius: 4px;
+  -khtml-border-radius: 4px;
+  border-radius: 4px;
+  background: #ECECEC;
+  margin-top: 2px;
+}
+
 /*Navigation*/
 #navigation,
 #browser {
@@ -8930,6 +8958,8 @@ div.ui-dialog div.multi-edit-add-list div.view div.data-table table.body tbody t
   -webkit-border-radius: 4px;
   -khtml-border-radius: 4px;
   border-radius: 4px;
+  background: #ECECEC;
+  margin-top: 2px;
 }
 
 /*** Select project*/

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fa8b8358/ui/index.jsp
----------------------------------------------------------------------
diff --git a/ui/index.jsp b/ui/index.jsp
index 5b3ef3a..6b7d431 100644
--- a/ui/index.jsp
+++ b/ui/index.jsp
@@ -1659,7 +1659,6 @@ under the License.
     <script type="text/javascript" src="scripts/events.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/regions.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/ui-custom/regions.js?t=<%=now%>"></script>
-    <script type="text/javascript" src="scripts/ui-custom/zoneFilter.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/ui-custom/ipRules.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/ui-custom/enableStaticNAT.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/ui-custom/securityRules.js?t=<%=now%>"></script>
@@ -1681,6 +1680,7 @@ under the License.
     <script type="text/javascript" src="scripts/docs.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/vm_snapshots.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/ui-custom/projectSelect.js?t=<%=now%>"></script>
+    <script type="text/javascript" src="scripts/ui-custom/zoneFilter.js?t=<%=now%>"></script>
 
     <!-- Plugins -->
     <script type="text/javascript" src="scripts/ui-custom/plugins.js?t=<%=now%>"></script>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fa8b8358/ui/scripts/ui-custom/zoneFilter.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/zoneFilter.js b/ui/scripts/ui-custom/zoneFilter.js
index d298e4f..9e6a493 100644
--- a/ui/scripts/ui-custom/zoneFilter.js
+++ b/ui/scripts/ui-custom/zoneFilter.js
@@ -20,12 +20,20 @@
     var $header = $('#header .controls');
     var $zoneFilter = $('<div>').addClass('zone-filter');
     var $zoneTypeSelect = $('<select>').append(
-      $('<option>').attr('value', 'basic').html(_l('Basic')),
-      $('<option>').attr('value', 'advanced').html(_l('Advanced'))
+      $('<option>').attr('value', '').html(_l('All zones')),
+      $('<option>').attr('value', 'Basic').html(_l('Basic')),
+      $('<option>').attr('value', 'Advanced').html(_l('Advanced'))
     );
+    var $label = $('<label>').html('Zone type:');
 
-    $zoneTypeSelect.appendTo($zoneFilter);
-    $zoneFilter.insertAfter($header.find('#user'));
+    $zoneFilter.append($label, $zoneTypeSelect);
+    $zoneFilter.insertAfter($header.find('.project-switcher'));
+    $zoneTypeSelect.change(function() {
+      cloudStack.context.zoneType = $zoneTypeSelect.val();
+
+      // Go to default/start page (dashboard)
+      $('#breadcrumbs .home').click();
+    });
   });
 }(jQuery, cloudStack));      
 


[38/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-382: Clarifying storage type in documentation as secondary storage.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/489e13ea
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/489e13ea
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/489e13ea

Branch: refs/heads/marvin_refactor
Commit: 489e13eabcef57a32380875b06a2f38a5e4e64a7
Parents: 39abaf6
Author: Joe Brockmeier <jz...@zonker.net>
Authored: Fri Apr 19 17:41:23 2013 -0500
Committer: Joe Brockmeier <jz...@zonker.net>
Committed: Fri Apr 19 17:42:28 2013 -0500

----------------------------------------------------------------------
 docs/en-US/advanced-zone-network-traffic-types.xml |    2 +-
 docs/en-US/basic-zone-network-traffic-types.xml    |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/489e13ea/docs/en-US/advanced-zone-network-traffic-types.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/advanced-zone-network-traffic-types.xml b/docs/en-US/advanced-zone-network-traffic-types.xml
index d803592..4d1f465 100644
--- a/docs/en-US/advanced-zone-network-traffic-types.xml
+++ b/docs/en-US/advanced-zone-network-traffic-types.xml
@@ -28,7 +28,7 @@
         <listitem><para>Guest. When end users run VMs, they generate guest traffic. The guest VMs communicate with each other over a network that can be referred to as the guest network. This network can be isolated or shared. In an isolated guest network, the administrator needs to reserve VLAN ranges to provide isolation for each &PRODUCT; account’s network (potentially a large number of VLANs). In a shared guest network, all guest VMs share a single network.</para></listitem>
         <listitem><para>Management. When &PRODUCT;’s internal resources communicate with each other, they generate management traffic. This includes communication between hosts, system VMs (VMs used by &PRODUCT; to perform various tasks in the cloud), and any other component that communicates directly with the &PRODUCT; Management Server. You must configure the IP range for the system VMs to use.</para></listitem>
         <listitem><para>Public. Public traffic is generated when VMs in the cloud access the Internet. Publicly accessible IPs must be allocated for this purpose. End users can use the &PRODUCT; UI to acquire these IPs to implement NAT between their guest network and the public network, as described in “Acquiring a New IP Address” in the Administration Guide.</para></listitem>
-        <listitem><para>Storage. Traffic such as VM templates and snapshots, which is sent between the secondary storage VM and secondary storage servers. &PRODUCT; uses a separate Network Interface Controller (NIC) named storage NIC for storage network traffic. Use of a storage NIC that always operates on a high bandwidth network allows fast template and snapshot copying. You must configure the IP range to use for the storage network.</para></listitem>
+        <listitem><para>Storage. While labeled "storage" this is specifically about secondary storage, and doesn't affect traffic for primary storage. This includes traffic such as VM templates and snapshots, which is sent between the secondary storage VM and secondary storage servers. &PRODUCT; uses a separate Network Interface Controller (NIC) named storage NIC for storage network traffic. Use of a storage NIC that always operates on a high bandwidth network allows fast template and snapshot copying. You must configure the IP range to use for the storage network.</para></listitem>
     </itemizedlist>
     <para>These traffic types can each be on a separate physical network, or they can be combined with certain restrictions. When you use the Add Zone wizard in the UI to create a new zone, you are guided into making only valid choices.</para>
 </section>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/489e13ea/docs/en-US/basic-zone-network-traffic-types.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/basic-zone-network-traffic-types.xml b/docs/en-US/basic-zone-network-traffic-types.xml
index 70789d0..8503736 100644
--- a/docs/en-US/basic-zone-network-traffic-types.xml
+++ b/docs/en-US/basic-zone-network-traffic-types.xml
@@ -26,10 +26,10 @@
     <para>When basic networking is used, there can be only one physical network in the zone. That physical network carries the following traffic types:</para>
     <itemizedlist>
         <listitem><para>Guest. When end users run VMs, they generate guest traffic. The guest VMs communicate with each other over a network that can be referred to as the guest network. Each pod in a basic zone is a broadcast domain, and therefore each pod has a different IP range for the guest network. The administrator must configure the IP range for each pod.</para></listitem>
-        <listitem><para>Management. When &PRODUCT;’s internal resources communicate with each other, they generate management traffic. This includes communication between hosts, system VMs (VMs used by &PRODUCT; to perform various tasks in the cloud), and any other component that communicates directly with the &PRODUCT; Management Server. You must configure the IP range for the system VMs to use.</para>
+        <listitem><para>Management. When &PRODUCT;'s internal resources communicate with each other, they generate management traffic. This includes communication between hosts, system VMs (VMs used by &PRODUCT; to perform various tasks in the cloud), and any other component that communicates directly with the &PRODUCT; Management Server. You must configure the IP range for the system VMs to use.</para>
             <note><para>We strongly recommend the use of separate NICs for management traffic and guest traffic.</para></note></listitem>
         <listitem><para>Public. Public traffic is generated when VMs in the cloud access the Internet. Publicly accessible IPs must be allocated for this purpose. End users can use the &PRODUCT; UI to acquire these IPs to implement NAT between their guest network and the public network, as described in Acquiring a New IP Address.</para></listitem>
-        <listitem><para>Storage. Traffic such as VM templates and snapshots, which is sent between the secondary storage VM and secondary storage servers. &PRODUCT; uses a separate Network Interface Controller (NIC) named storage NIC for storage network traffic. Use of a storage NIC that always operates on a high bandwidth network allows fast template and snapshot copying. You must configure the IP range to use for the storage network.</para></listitem>
+        <listitem><para>Storage. While labeled "storage" this is specifically about secondary storage, and doesn't affect traffic for primary storage. This includes traffic such as VM templates and snapshots, which is sent between the secondary storage VM and secondary storage servers. &PRODUCT; uses a separate Network Interface Controller (NIC) named storage NIC for storage network traffic. Use of a storage NIC that always operates on a high bandwidth network allows fast template and snapshot copying. You must configure the IP range to use for the storage network.</para></listitem>
     </itemizedlist>
     <para>In a basic network, configuring the physical network is fairly straightforward. In most cases, you only need to configure one guest network to carry traffic that is generated by guest VMs. If you use a NetScaler load balancer and enable its elastic IP and elastic load balancing (EIP and ELB) features, you must also configure a network to carry public traffic. &PRODUCT; takes care of presenting the necessary network configuration steps to you in the UI when you add a new zone.</para>
 </section>


[46/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
AccountFactory doesn't need hashing

SHA encryption is applied by the server


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f4006bf3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f4006bf3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f4006bf3

Branch: refs/heads/marvin_refactor
Commit: f4006bf35080c3da58529a8248f91bf741270b37
Parents: 447d51d
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 22:30:19 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 22:30:19 2013 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/factory/AccountFactory.py      |   10 +++-------
 tools/marvin/marvin/factory/TemplateFactory.py     |    2 +-
 .../marvin/marvin/factory/VirtualMachineFactory.py |    6 +++---
 tools/marvin/marvin/factory/ZoneFactory.py         |    2 +-
 tools/marvin/marvin/factory/test/testFactories.py  |   14 ++++++++------
 5 files changed, 16 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f4006bf3/tools/marvin/marvin/factory/AccountFactory.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/factory/AccountFactory.py b/tools/marvin/marvin/factory/AccountFactory.py
index 5b97332..3c07683 100644
--- a/tools/marvin/marvin/factory/AccountFactory.py
+++ b/tools/marvin/marvin/factory/AccountFactory.py
@@ -15,8 +15,8 @@
 # specific language governing permissions and limitations
 # under the License.
 
-import hashlib
-from marvin.factory.CloudStackBaseFactory import *
+import factory
+from marvin.factory.CloudStackBaseFactory import CloudStackBaseFactory
 from marvin.base import Account
 from marvin.utils import random_gen
 
@@ -30,11 +30,7 @@ class AccountFactory(CloudStackBaseFactory):
     lastname = factory.Sequence(lambda n: random_gen())
     email = factory.LazyAttribute(lambda e: '{0}.{1}@cloudstack.org'.format(e.firstname, e.lastname).lower())
     username = factory.Sequence(lambda n: random_gen())
-
-    # Password Encoding
-    mdf = hashlib.md5()
-    mdf.update('password')
-    password = mdf.hexdigest()
+    password = 'password'
 
 
 class AdminAccountFactory(AccountFactory):

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f4006bf3/tools/marvin/marvin/factory/TemplateFactory.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/factory/TemplateFactory.py b/tools/marvin/marvin/factory/TemplateFactory.py
index 85c383f..6d71277 100644
--- a/tools/marvin/marvin/factory/TemplateFactory.py
+++ b/tools/marvin/marvin/factory/TemplateFactory.py
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 from marvin.base import Template
-from marvin.factory import CloudStackBaseFactory
+from marvin.factory.CloudStackBaseFactory import CloudStackBaseFactory
 
 class TemplateFactory(CloudStackBaseFactory):
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f4006bf3/tools/marvin/marvin/factory/VirtualMachineFactory.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/factory/VirtualMachineFactory.py b/tools/marvin/marvin/factory/VirtualMachineFactory.py
index 4d8a4d6..6c6e44e 100644
--- a/tools/marvin/marvin/factory/VirtualMachineFactory.py
+++ b/tools/marvin/marvin/factory/VirtualMachineFactory.py
@@ -15,12 +15,12 @@
 # specific language governing permissions and limitations
 # under the License.
 
-from marvin.base import VirtualMachine
-from marvin.factory import CloudStackBaseFactory
+from marvin.base.VirtualMachine import VirtualMachine
+from marvin.factory.CloudStackBaseFactory import CloudStackBaseFactory
 
 class VirtualMachineFactory(CloudStackBaseFactory):
 
-    FACTORY_FOR = VirtualMachine.VirtualMachine
+    FACTORY_FOR = VirtualMachine
 
     serviceofferingid = None
     templateid = None

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f4006bf3/tools/marvin/marvin/factory/ZoneFactory.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/factory/ZoneFactory.py b/tools/marvin/marvin/factory/ZoneFactory.py
index bc0f6a5..41221c8 100644
--- a/tools/marvin/marvin/factory/ZoneFactory.py
+++ b/tools/marvin/marvin/factory/ZoneFactory.py
@@ -21,7 +21,7 @@ from marvin.utils import random_gen
 
 class ZoneFactory(CloudStackBaseFactory):
 
-    FACTORY_FOR = Zone
+    FACTORY_FOR = Zone.Zone
 
     dns1 = "8.8.8.8"
     internaldns1 = "8.8.8.8"

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f4006bf3/tools/marvin/marvin/factory/test/testFactories.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/factory/test/testFactories.py b/tools/marvin/marvin/factory/test/testFactories.py
index 4e8a606..81bcca6 100644
--- a/tools/marvin/marvin/factory/test/testFactories.py
+++ b/tools/marvin/marvin/factory/test/testFactories.py
@@ -17,22 +17,24 @@
 
 import unittest
 import logging
+
 from marvin.cloudstackTestClient import cloudstackTestClient
-from marvin.base import Account, Zone, Template, User
 
 from marvin.factory.AccountFactory import *
-
 from marvin.factory.ServiceOfferingFactory import *
-
 from marvin.factory.NetworkOfferingFactory import *
-
 from marvin.factory.TemplateFactory import *
-
 from marvin.factory.VirtualMachineFactory import *
-
 from marvin.factory.UserFactory import *
 
 
+from marvin.base.Zone import *
+from marvin.base.Account import Account
+from marvin.base.Template import Template
+
+
+
+
 class BuildVsCreateStrategyTest(unittest.TestCase):
     def setUp(self):
         self.apiClient = cloudstackTestClient(mgtSvr='localhost', logging=logging.getLogger('factories.cloudstack')).getApiClient()


[34/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Updating README.md to reflect graduation and 4.2.0 release number for master branch

Signed-off-by: Chip Childers <ch...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e593665d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e593665d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e593665d

Branch: refs/heads/marvin_refactor
Commit: e593665d790a780c3e31b9be5af589efb239c5ad
Parents: 2ca7584
Author: Chip Childers <ch...@apache.org>
Authored: Fri Apr 19 14:49:50 2013 -0400
Committer: Chip Childers <ch...@apache.org>
Committed: Fri Apr 19 14:49:50 2013 -0400

----------------------------------------------------------------------
 README.md |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e593665d/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 7fb9b57..fda0b89 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
-Apache CloudStack (Incubating) Version 4.0.0
+Apache CloudStack Version 4.2.0
 
-# About Apache CloudStack (Incubating)
+# About Apache CloudStack
 
-Apache CloudStack (Incubating) is software designed to deploy 
+Apache CloudStack is software designed to deploy 
 and manage large networks of virtual machines, as a highly 
 available, highly scalable Infrastructure as a Service (IaaS) 
 cloud computing platform. CloudStack is used by a number of 


[32/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2105.
While releasing an IP range from an acount if any of the Public IPs in the range is a source nat ip then the IP is not disassociated.
During the check CS also checks if the network the IP is associted with is not null. This results in an NPE for an account that has VPC s
because the public IP of a VPC domain router is common to all VPC tiers and not associated with a network
Remove the check to find the network associted with a source nat IP for both ReleasePublicIpRange and DeleteVlanPublicIpRange


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/8d8a0ebe
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/8d8a0ebe
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/8d8a0ebe

Branch: refs/heads/marvin_refactor
Commit: 8d8a0ebe109ae6e9896caee945e29fd8ac778d2c
Parents: ff4a487
Author: Likitha Shetty <li...@citrix.com>
Authored: Fri Apr 19 23:16:47 2013 +0530
Committer: Likitha Shetty <li...@citrix.com>
Committed: Fri Apr 19 23:31:52 2013 +0530

----------------------------------------------------------------------
 .../configuration/ConfigurationManagerImpl.java    |    9 ++++-----
 1 files changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/8d8a0ebe/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
index d142ca6..b5734a2 100755
--- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
+++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
@@ -2673,9 +2673,9 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                                     " as ip " + ip + " belonging to the range is used for static nat purposes. Cleanup the rules first");
                         }
                         
-                        if (ip.isSourceNat() && _networkModel.getNetwork(ip.getAssociatedWithNetworkId()) != null) {
-                            throw new InvalidParameterValueException("Can't delete account specific vlan " + vlanDbId + 
-                                    " as ip " + ip + " belonging to the range is a source nat ip for the network id=" + ip.getSourceNetworkId() + 
+                        if (ip.isSourceNat()) {
+                            throw new InvalidParameterValueException("Can't delete account specific vlan " + vlanDbId +
+                                    " as ip " + ip + " belonging to the range is a source nat ip for the network id=" + ip.getSourceNetworkId() +
                                     ". IP range with the source nat ip address can be removed either as a part of Network, or account removal");
                         }
                         
@@ -2829,8 +2829,7 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati
                 List<IPAddressVO> ips = _publicIpAddressDao.listByVlanId(vlanDbId);
                 for (IPAddressVO ip : ips) {
                     // Disassociate allocated IP's that are not in use
-                    if ( !ip.isOneToOneNat() && !(ip.isSourceNat() && _networkModel.getNetwork(ip.getAssociatedWithNetworkId()) != null) &&
-                            !(_firewallDao.countRulesByIpId(ip.getId()) > 0) ) {
+                    if ( !ip.isOneToOneNat() && !ip.isSourceNat()  && !(_firewallDao.countRulesByIpId(ip.getId()) > 0) ) {
                         if (s_logger.isDebugEnabled()) {
                             s_logger.debug("Releasing Public IP addresses" + ip  +" of vlan " + vlanDbId + " as part of Public IP" +
                                     " range release to the system pool");


[48/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
The SubFactory with SelfAttribute carrying the apiclient


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b079723b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b079723b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b079723b

Branch: refs/heads/marvin_refactor
Commit: b079723b7e33ea998fa99ea4934053b347cfc602
Parents: e7ac9e6
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 22:31:40 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 22:31:40 2013 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/factory/UserFactory.py |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b079723b/tools/marvin/marvin/factory/UserFactory.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/factory/UserFactory.py b/tools/marvin/marvin/factory/UserFactory.py
index 45f28ff..f70089d 100644
--- a/tools/marvin/marvin/factory/UserFactory.py
+++ b/tools/marvin/marvin/factory/UserFactory.py
@@ -16,13 +16,14 @@
 # under the License.
 import factory
 from marvin.base import User
-from marvin.factory import CloudStackBaseFactory, AccountFactory
+from marvin.factory.CloudStackBaseFactory import CloudStackBaseFactory
+from marvin.factory.AccountFactory import AccountFactory
 
 class UserFactory(CloudStackBaseFactory):
 
     FACTORY_FOR = User.User
 
-    account = factory.SubFactory(AccountFactory).factory()
+    account = factory.SubFactory(AccountFactory, apiclient=factory.SelfAttribute('..apiclient')).factory()
     email = account.email
     firstname = account.firstname
     lastname = account.lastname


[05/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Project switcher: Add label


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/50140735
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/50140735
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/50140735

Branch: refs/heads/marvin_refactor
Commit: 50140735c7cc584b052105df1d16f861bc080475
Parents: f51ccfc
Author: Brian Federle <br...@citrix.com>
Authored: Wed Apr 10 14:42:22 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Wed Apr 10 14:42:22 2013 -0700

----------------------------------------------------------------------
 ui/css/cloudstack3.css                |    9 ++++++++-
 ui/scripts/ui-custom/projectSelect.js |    3 ++-
 2 files changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140735/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index bf3cfb5..61e5ab4 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -8913,6 +8913,13 @@ div.ui-dialog div.multi-edit-add-list div.view div.data-table table.body tbody t
   padding: 9px 17px 0 0;
 }
 
+.project-switcher label {
+  position: absolute;
+  top: -2px;
+  color: #FFFFFF;
+  font-size: 11px;
+}
+
 .project-switcher select {
   width: 100%;
   font-size: 12px;
@@ -11390,7 +11397,7 @@ div.ui-dialog div.autoscaler div.field-group div.form-container form div.form-it
   border-bottom: 1px solid #FFFFFF;
   height: 28px;
   float: left;
-  margin: 4px 13px 0 0;
+  margin: 5px 13px 0 0;
   cursor: pointer;
   /*+box-shadow:inset 0px 1px 1px #000000;*/
   -moz-box-shadow: inset 0px 1px 1px #000000;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/50140735/ui/scripts/ui-custom/projectSelect.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/projectSelect.js b/ui/scripts/ui-custom/projectSelect.js
index ae3d8f9..f93fefc 100644
--- a/ui/scripts/ui-custom/projectSelect.js
+++ b/ui/scripts/ui-custom/projectSelect.js
@@ -23,8 +23,9 @@
       $('<option>').attr('value', 'basic').html(_l('Project 1')),
       $('<option>').attr('value', 'advanced').html(_l('Project 2'))
     );
+    var $label = $('<label>').html('Project:');
 
-    $projectSelect.appendTo($projectSwitcher);
+    $projectSwitcher.append($label, $projectSelect);
     $projectSwitcher.insertBefore($header.find('.region-switcher'));
   });
 }(jQuery, cloudStack));      


[24/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-387: Adding information on building optional targets.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b59e5787
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b59e5787
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b59e5787

Branch: refs/heads/marvin_refactor
Commit: b59e5787a0e2380cfba2a6d798f590f601c5347c
Parents: fc4f19f
Author: Joe Brockmeier <jz...@zonker.net>
Authored: Fri Apr 19 08:25:26 2013 -0500
Committer: Joe Brockmeier <jz...@zonker.net>
Committed: Fri Apr 19 08:26:57 2013 -0500

----------------------------------------------------------------------
 docs/en-US/source.xml |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b59e5787/docs/en-US/source.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/source.xml b/docs/en-US/source.xml
index 5d911c2..ea30000 100644
--- a/docs/en-US/source.xml
+++ b/docs/en-US/source.xml
@@ -34,4 +34,5 @@
     <xi:include href="extracting-source.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
     <xi:include href="build-deb.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />
     <xi:include href="build-rpm.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />  
+    <xi:include href="build-nonoss.xml" xmlns:xi="http://www.w3.org/2001/XInclude" />  
 </chapter>


[45/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
no more integration.lib module to package


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/447d51d7
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/447d51d7
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/447d51d7

Branch: refs/heads/marvin_refactor
Commit: 447d51d753f972b909ce3806610de56685da1c95
Parents: 23dd00b
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 19:44:25 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 19:44:25 2013 +0530

----------------------------------------------------------------------
 tools/marvin/setup.py |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/447d51d7/tools/marvin/setup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/setup.py b/tools/marvin/setup.py
index eb61e54..68b466f 100644
--- a/tools/marvin/setup.py
+++ b/tools/marvin/setup.py
@@ -39,9 +39,8 @@ setup(name="Marvin",
     long_description="Marvin is the Apache CloudStack python client written around the unittest framework",
     platforms=("Any",),
     url="https://builds.apache.org/view/CloudStack/job/cloudstack-marvin/",
-    packages=["marvin", "marvin.cloudstackAPI", "marvin.integration",
-              "marvin.integration.lib", "marvin.integration.lib.base", "marvin.integration.lib.factory",
-              "marvin.sandbox", "marvin.sandbox.advanced", "marvin.sandbox.basic"],
+    packages=["marvin", "marvin.cloudstackAPI", "marvin.base",
+              "marvin.factory", "marvin.sandbox", "marvin.sandbox.advanced", "marvin.sandbox.basic"],
     license="LICENSE.txt",
     install_requires=[
         "mysql-connector-python",


[02/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Layout new project selector (only dummy data for now)


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/aa5ed0a0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/aa5ed0a0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/aa5ed0a0

Branch: refs/heads/marvin_refactor
Commit: aa5ed0a0fb3878bb6cf04d0770cd456dafcd9f4b
Parents: f66b9b5
Author: Brian Federle <br...@citrix.com>
Authored: Wed Apr 10 13:34:25 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Wed Apr 10 13:34:25 2013 -0700

----------------------------------------------------------------------
 ui/css/cloudstack3.css                |   27 ++++++++++++++++++++---
 ui/index.jsp                          |    3 +-
 ui/scripts/ui-custom/projectSelect.js |   31 ++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aa5ed0a0/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index 7ebda9b..bf3cfb5 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -8839,6 +8839,7 @@ div.ui-dialog div.multi-edit-add-list div.view div.data-table table.body tbody t
   left: 0px;
   top: -10px;
   margin-right: 9px;
+  display: none;
 }
 
 #header div.view-switcher.alt {
@@ -8905,6 +8906,25 @@ div.ui-dialog div.multi-edit-add-list div.view div.data-table table.body tbody t
   padding: 3px 0 4px;
 }
 
+/*** View switcher (drop-down)*/
+.project-switcher {
+  float: left;
+  width: 141px;
+  padding: 9px 17px 0 0;
+}
+
+.project-switcher select {
+  width: 100%;
+  font-size: 12px;
+  border: 1px solid #000000;
+  border-bottom: #FFFFFF;
+  /*+border-radius:4px;*/
+  -moz-border-radius: 4px;
+  -webkit-border-radius: 4px;
+  -khtml-border-radius: 4px;
+  border-radius: 4px;
+}
+
 /*** Select project*/
 .project-selector {
   display: inline-block;
@@ -11761,12 +11781,11 @@ div.ui-dialog div.autoscaler div.field-group div.form-container form div.form-it
 .updateResourceLimits:hover .icon {
   background-position: -100px -614px;
 }
- 
+
 .addVlanRange .icon {
   background-position: -168px -31px;
 }
 
-
 .addVlanRange:hover .icon {
   background-position: -168px -613px;
 }
@@ -11796,8 +11815,8 @@ div.ui-dialog div.autoscaler div.field-group div.form-container form div.form-it
   background-position: -168px -31px;
 }
 
-.reset .icon ,
-.scaleUp .icon{
+.reset .icon,
+.scaleUp .icon {
   background-position: -168px -31px;
 }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aa5ed0a0/ui/index.jsp
----------------------------------------------------------------------
diff --git a/ui/index.jsp b/ui/index.jsp
index 3b8f378..fcc3d69 100644
--- a/ui/index.jsp
+++ b/ui/index.jsp
@@ -1678,7 +1678,8 @@ under the License.
     <script type="text/javascript" src="scripts/system.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/domains.js?t=<%=now%>"></script>
     <script type="text/javascript" src="scripts/docs.js?t=<%=now%>"></script>
-    <script type="text/javascript" src="scripts/vm_snapshots.js?t=<%=now%>"></script>  
+    <script type="text/javascript" src="scripts/vm_snapshots.js?t=<%=now%>"></script>
+    <script type="text/javascript" src="scripts/ui-custom/projectSelect.js?t=<%=now%>"></script>
 
     <!-- Plugins -->
     <script type="text/javascript" src="scripts/ui-custom/plugins.js?t=<%=now%>"></script>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aa5ed0a0/ui/scripts/ui-custom/projectSelect.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui-custom/projectSelect.js b/ui/scripts/ui-custom/projectSelect.js
new file mode 100644
index 0000000..ae3d8f9
--- /dev/null
+++ b/ui/scripts/ui-custom/projectSelect.js
@@ -0,0 +1,31 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+(function($, cloudStack) {
+  $(window).bind('cloudStack.ready', function() {
+    var $header = $('#header .controls');
+    var $projectSwitcher = $('<div>').addClass('project-switcher');
+    var $projectSelect = $('<select>').append(
+      $('<option>').attr('value', 'basic').html(_l('Project 1')),
+      $('<option>').attr('value', 'advanced').html(_l('Project 2'))
+    );
+
+    $projectSelect.appendTo($projectSwitcher);
+    $projectSwitcher.insertBefore($header.find('.region-switcher'));
+  });
+}(jQuery, cloudStack));      
+


[04/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'ui-new-project-switcher' into ui-mixed-zone-management


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f51ccfcf
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f51ccfcf
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f51ccfcf

Branch: refs/heads/marvin_refactor
Commit: f51ccfcfb900a29a7c2f4c52620a493446e39925
Parents: 3fef24d aa5ed0a
Author: Brian Federle <br...@citrix.com>
Authored: Wed Apr 10 13:36:20 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Wed Apr 10 13:36:20 2013 -0700

----------------------------------------------------------------------
 ui/css/cloudstack3.css                |   27 ++++++++++++++++++++---
 ui/index.jsp                          |    3 +-
 ui/scripts/ui-custom/projectSelect.js |   31 ++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f51ccfcf/ui/index.jsp
----------------------------------------------------------------------


[44/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
return a ready template even if ostype doesn't match


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5a0f4b63
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5a0f4b63
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5a0f4b63

Branch: refs/heads/marvin_refactor
Commit: 5a0f4b63303fd6339b1d7aab20bc3833206a5a43
Parents: 4a0b05a
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 17:06:01 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 17:06:01 2013 +0530

----------------------------------------------------------------------
 test/integration/smoke/test_routers.py        |    2 +-
 tools/marvin/marvin/integration/lib/common.py |    4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5a0f4b63/test/integration/smoke/test_routers.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_routers.py b/test/integration/smoke/test_routers.py
index 86ed4e9..7785576 100644
--- a/test/integration/smoke/test_routers.py
+++ b/test/integration/smoke/test_routers.py
@@ -80,7 +80,7 @@ class TestRouterServices(cloudstackTestCase):
         # Get Zone, Domain and templates
         cls.domain = get_domain(cls.api_client, cls.services)
         cls.zone = get_zone(cls.api_client, cls.services)
-        self.services['mode'] = cls.zone.networktype
+        cls.services['mode'] = cls.zone.networktype
         template = get_template(
                             cls.api_client,
                             cls.zone.id,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5a0f4b63/tools/marvin/marvin/integration/lib/common.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/common.py b/tools/marvin/marvin/integration/lib/common.py
index 69aa733..e78f64a 100644
--- a/tools/marvin/marvin/integration/lib/common.py
+++ b/tools/marvin/marvin/integration/lib/common.py
@@ -134,6 +134,8 @@ def get_template(apiclient, zoneid, ostype, services=None):
         for template in list_templates:
             if template.ostypeid == ostypeid:
                 return template
+            elif template.isready:
+                return template
 
     raise Exception("Exception: Failed to find template with OSTypeID: %s" %
                                                                     ostypeid)
@@ -566,4 +568,4 @@ def list_vpc_offerings(apiclient, **kwargs):
 
     cmd = listVPCOfferings.listVPCOfferingsCmd()
     [setattr(cmd, k, v) for k, v in kwargs.items()]
-    return(apiclient.listVPCOfferings(cmd))
\ No newline at end of file
+    return(apiclient.listVPCOfferings(cmd))


[31/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Adding affinitygroupid search parameter to listVMsCmd


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ff4a4876
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ff4a4876
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ff4a4876

Branch: refs/heads/marvin_refactor
Commit: ff4a4876c767cec15e4248821cc48bb01bf55051
Parents: fc08c23
Author: Prachi Damle <pr...@cloud.com>
Authored: Fri Apr 19 10:49:04 2013 -0700
Committer: Prachi Damle <pr...@cloud.com>
Committed: Fri Apr 19 10:49:37 2013 -0700

----------------------------------------------------------------------
 .../org/apache/cloudstack/api/ApiConstants.java    |    1 +
 .../cloudstack/api/command/user/vm/ListVMsCmd.java |    9 +++++++
 .../src/com/cloud/api/query/QueryManagerImpl.java  |   18 +++++++++++---
 server/src/com/cloud/server/Criteria.java          |   11 +++++----
 4 files changed, 30 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ff4a4876/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java
index edaaeb3..d73f309 100755
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@ -479,6 +479,7 @@ public class ApiConstants {
     public static final String AFFINITY_GROUP_IDS = "affinitygroupids";
     public static final String AFFINITY_GROUP_NAMES = "affinitygroupnames";
     public static final String ASA_INSIDE_PORT_PROFILE = "insideportprofile";
+    public static final String AFFINITY_GROUP_ID = "affinitygroupid";
 
     public enum HostDetails {
         all, capacity, events, stats, min;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ff4a4876/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java b/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
index 08f9457..dae9df3 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vm/ListVMsCmd.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.EnumSet;
 import java.util.List;
 
+import org.apache.cloudstack.affinity.AffinityGroupResponse;
 import org.apache.cloudstack.api.APICommand;
 import org.apache.cloudstack.api.ApiConstants;
 import org.apache.cloudstack.api.ApiConstants.VMDetails;
@@ -110,6 +111,10 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd {
     @Parameter(name=ApiConstants.VPC_ID, type=CommandType.UUID, entityType=VpcResponse.class,
             description="list vms by vpc")
     private Long vpcId;
+
+    @Parameter(name = ApiConstants.AFFINITY_GROUP_ID, type = CommandType.UUID, entityType = AffinityGroupResponse.class, description = "list vms by affinity group")
+    private Long affinityGroupId;
+
     /////////////////////////////////////////////////////
     /////////////////// Accessors ///////////////////////
     /////////////////////////////////////////////////////
@@ -174,6 +179,10 @@ public class ListVMsCmd extends BaseListTaggedResourcesCmd {
         return vpcId;
     }
 
+    public Long getAffinityGroupId() {
+        return affinityGroupId;
+    }
+
     public EnumSet<VMDetails> getDetails() throws InvalidParameterValueException {
         EnumSet<VMDetails> dv;
         if (viewDetails==null || viewDetails.size() <=0){

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ff4a4876/server/src/com/cloud/api/query/QueryManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/QueryManagerImpl.java b/server/src/com/cloud/api/query/QueryManagerImpl.java
index 3114ea5..2298252 100644
--- a/server/src/com/cloud/api/query/QueryManagerImpl.java
+++ b/server/src/com/cloud/api/query/QueryManagerImpl.java
@@ -638,6 +638,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
         c.addCriteria(Criteria.TEMPLATE_ID, cmd.getTemplateId());
         c.addCriteria(Criteria.ISO_ID, cmd.getIsoId());
         c.addCriteria(Criteria.VPC_ID, cmd.getVpcId());
+        c.addCriteria(Criteria.AFFINITY_GROUP_ID, cmd.getAffinityGroupId());
 
         if (domainId != null) {
             c.addCriteria(Criteria.DOMAINID, domainId);
@@ -693,6 +694,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
         Object templateId = c.getCriteria(Criteria.TEMPLATE_ID);
         Object isoId = c.getCriteria(Criteria.ISO_ID);
         Object vpcId = c.getCriteria(Criteria.VPC_ID);
+        Object affinityGroupId = c.getCriteria(Criteria.AFFINITY_GROUP_ID);
 
         sb.and("displayName", sb.entity().getDisplayName(), SearchCriteria.Op.LIKE);
         sb.and("id", sb.entity().getId(), SearchCriteria.Op.EQ);
@@ -733,6 +735,10 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
             sb.and("poolId", sb.entity().getPoolId(), SearchCriteria.Op.EQ);
         }
 
+        if (affinityGroupId != null) {
+            sb.and("affinityGroupId", sb.entity().getAffinityGroupId(), SearchCriteria.Op.EQ);
+        }
+
         // populate the search criteria with the values passed in
         SearchCriteria<UserVmJoinVO> sc = sb.create();
 
@@ -830,6 +836,10 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
             sc.setParameters("poolId", storageId);
         }
 
+        if (affinityGroupId != null) {
+            sc.setParameters("affinityGroupId", affinityGroupId);
+        }
+
         // search vm details by ids
         Pair<List<UserVmJoinVO>, Integer> uniqueVmPair =  _userVmJoinDao.searchAndCount(sc, searchFilter);
         Integer count = uniqueVmPair.second();
@@ -1976,14 +1986,14 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
                 domainRecord = _domainDao.findById(domainRecord.getParent());
                 domainIds.add(domainRecord.getId());
             }
-            
+
             SearchCriteria<DiskOfferingJoinVO> spc = _diskOfferingJoinDao.createSearchCriteria();
 
             spc.addOr("domainId", SearchCriteria.Op.IN, domainIds.toArray());
             spc.addOr("domainId", SearchCriteria.Op.NULL); // include public offering as where
             sc.addAnd("domainId", SearchCriteria.Op.SC, spc);
             sc.addAnd("systemUse", SearchCriteria.Op.EQ, false); // non-root users should not see system offering at all
-            
+
         }
 
          if (keyword != null) {
@@ -2001,7 +2011,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
         if (name != null) {
             sc.addAnd("name", SearchCriteria.Op.EQ, name);
         }
-        
+
         // FIXME: disk offerings should search back up the hierarchy for
         // available disk offerings...
         /*
@@ -2081,7 +2091,7 @@ public class QueryManagerImpl extends ManagerBase implements QueryService {
        // boolean includePublicOfferings = false;
         if ((caller.getType() == Account.ACCOUNT_TYPE_NORMAL || caller.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN)
                 || caller.getType() == Account.ACCOUNT_TYPE_RESOURCE_DOMAIN_ADMIN) {
-            // For non-root users. 
+            // For non-root users.
             if (isSystem) {
                 throw new InvalidParameterValueException("Only root admins can access system's offering");
             }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ff4a4876/server/src/com/cloud/server/Criteria.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/server/Criteria.java b/server/src/com/cloud/server/Criteria.java
index 35186f8..d54aaf5 100755
--- a/server/src/com/cloud/server/Criteria.java
+++ b/server/src/com/cloud/server/Criteria.java
@@ -19,7 +19,7 @@ package com.cloud.server;
 import java.util.HashMap;
 
 public class Criteria {
-	
+
 	private Long offset;
 	private Long limit;
 	private String orderBy;
@@ -82,6 +82,7 @@ public class Criteria {
     public static final String TEMPLATE_ID = "templateid";
     public static final String ISO_ID = "isoid";
     public static final String VPC_ID = "vpcId";
+    public static final String AFFINITY_GROUP_ID = "affinitygroupid";
 
 	public Criteria(String orderBy, Boolean ascending, Long offset, Long limit) {
 		this.offset = offset;
@@ -90,7 +91,7 @@ public class Criteria {
 		this.ascending = ascending;
 		criteria = new HashMap<String, Object>();
 	}
-	
+
 	public Criteria() {
 		criteria = new HashMap<String, Object>();
 		this.ascending = false;
@@ -99,11 +100,11 @@ public class Criteria {
 	public Long getOffset() {
 		return offset;
 	}
-	
+
 	public void addCriteria(String name, Object val) {
 		criteria.put(name, val);
 	}
-	
+
 	public Object getCriteria(String name) {
 		return criteria.get(name);
 	}
@@ -135,5 +136,5 @@ public class Criteria {
 	public void setAscending(Boolean ascending) {
 		this.ascending = ascending;
 	}
-	
+
 }


[03/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'master' into ui-mixed-zone-management


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3fef24d3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3fef24d3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3fef24d3

Branch: refs/heads/marvin_refactor
Commit: 3fef24d3e86b18ef03ca67179f03d00661e1e7cc
Parents: 4b853cc f66b9b5
Author: Brian Federle <br...@citrix.com>
Authored: Wed Apr 10 13:36:13 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Wed Apr 10 13:36:13 2013 -0700

----------------------------------------------------------------------
 api/src/com/cloud/agent/api/to/FirewallRuleTO.java |    6 +
 .../cloud/entity/api/VMEntityManagerImpl.java      |    2 +-
 .../debian/config/etc/init.d/cloud-early-config    |   54 ++--
 .../element/JuniperSRXExternalFirewallElement.java |    2 +-
 .../cloud/network/resource/JuniperSrxResource.java |  322 +++++++++++----
 scripts/network/juniper/application-add.xml        |    2 +-
 scripts/network/juniper/security-policy-add.xml    |    4 +-
 scripts/vm/hypervisor/kvm/patchviasocket.pl        |    2 +-
 server/src/com/cloud/deploy/FirstFitPlanner.java   |   39 +-
 .../network/ExternalFirewallDeviceManagerImpl.java |   12 +-
 .../src/com/cloud/upgrade/dao/Upgrade410to420.java |   60 +++
 .../definitions/systemvmtemplate/postinstall.sh    |   27 +-
 .../definitions/systemvmtemplate/preseed.cfg       |    8 +-
 .../definitions/systemvmtemplate64/postinstall.sh  |   27 +-
 .../definitions/systemvmtemplate64/preseed.cfg     |    8 +-
 15 files changed, 416 insertions(+), 159 deletions(-)
----------------------------------------------------------------------



[16/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'master' into ui-new-project-switcher


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a7489889
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a7489889
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a7489889

Branch: refs/heads/marvin_refactor
Commit: a7489889f28f824f664dd22d8e397ba51e45bddb
Parents: c529c5a 90e8158
Author: Brian Federle <br...@citrix.com>
Authored: Tue Apr 16 11:02:14 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Tue Apr 16 11:02:14 2013 -0700

----------------------------------------------------------------------
 DISCLAIMER                                         |    7 -
 .../agent/api/DeleteSnapshotBackupCommand.java     |    6 +-
 api/src/com/cloud/async/AsyncJob.java              |    3 +-
 .../cloud/configuration/ConfigurationService.java  |    6 +
 api/src/com/cloud/event/EventTypes.java            |   12 +-
 .../cloud/exception/AffinityConflictException.java |   34 +
 api/src/com/cloud/network/Network.java             |   15 +-
 api/src/com/cloud/network/NetworkService.java      |    2 +-
 api/src/com/cloud/offering/NetworkOffering.java    |    2 +
 api/src/com/cloud/server/ManagementService.java    |    4 +-
 api/src/com/cloud/vm/DiskProfile.java              |    2 +-
 api/src/com/cloud/vm/UserVmService.java            |  183 +-
 .../apache/cloudstack/affinity/AffinityGroup.java  |   31 +
 .../affinity/AffinityGroupProcessor.java           |   49 +
 .../cloudstack/affinity/AffinityGroupResponse.java |  155 +
 .../cloudstack/affinity/AffinityGroupService.java  |   79 +
 .../affinity/AffinityGroupTypeResponse.java        |   48 +
 .../cloudstack/affinity/AffinityProcessorBase.java |   44 +
 .../org/apache/cloudstack/api/ApiConstants.java    |    6 +-
 api/src/org/apache/cloudstack/api/BaseCmd.java     |    8 +-
 .../apache/cloudstack/api/ResponseGenerator.java   |   18 +-
 .../command/admin/cluster/UpdateClusterCmd.java    |   15 +-
 .../admin/config/ListDeploymentPlannersCmd.java    |   71 +
 .../admin/offering/CreateServiceOfferingCmd.java   |    7 +
 .../admin/vlan/DedicatePublicIpRangeCmd.java       |  108 +
 .../admin/vlan/ReleasePublicIpRangeCmd.java        |   77 +
 .../command/user/address/AssociateIPAddrCmd.java   |   31 +-
 .../user/affinitygroup/CreateAffinityGroupCmd.java |  167 +
 .../user/affinitygroup/DeleteAffinityGroupCmd.java |  154 +
 .../affinitygroup/ListAffinityGroupTypesCmd.java   |   67 +
 .../user/affinitygroup/ListAffinityGroupsCmd.java  |   90 +
 .../affinitygroup/UpdateVMAffinityGroupCmd.java    |  164 +
 .../ha/gslb/CreateGlobalLoadBalancerRuleCmd.java   |    3 +
 .../api/command/user/vm/DeployVMCmd.java           |   41 +-
 .../api/response/DeploymentPlannersResponse.java   |   37 +
 .../api/response/GlobalLoadBalancerResponse.java   |    8 +
 .../cloudstack/api/response/UserVmResponse.java    |   14 +
 .../network/ExternalNetworkDeviceManager.java      |    1 +
 .../org/apache/cloudstack/query/QueryService.java  |    4 +
 .../com/cloud/bridge/service/EC2RestServlet.java   |    2 +-
 build/replace.properties                           |    1 +
 client/pom.xml                                     |   17 +-
 client/tomcatconf/applicationContext.xml.in        |   23 +-
 client/tomcatconf/commands.properties.in           |   20 +
 client/tomcatconf/componentContext.xml.in          |   20 +-
 client/tomcatconf/nonossComponentContext.xml.in    |   28 +
 client/tomcatconf/simulatorComponentContext.xml.in |   30 +-
 core/src/com/cloud/vm/VmDetailConstants.java       |    1 +
 debian/cloudstack-awsapi.install                   |   10 +-
 debian/rules                                       |   20 +-
 docs/en-US/Admin_Guide.xml                         |    2 +-
 docs/en-US/Book_Info.xml                           |    2 +-
 docs/en-US/CloudStack_Nicira_NVP_Guide.xml         |    2 +-
 docs/en-US/Developers_Guide.xml                    |    2 +-
 docs/en-US/Installation_Guide.xml                  |    2 +-
 docs/en-US/Release_Notes.xml                       | 4413 ++++++++++++++-
 docs/en-US/hypervisor-kvm-install-flow.xml         |    1 +
 docs/en-US/images/VMSnapshotButton.png             |  Bin 0 -> 967 bytes
 docs/en-US/images/revert-vm.png                    |  Bin 0 -> 860 bytes
 docs/en-US/ipv6-support.xml                        |    4 +-
 docs/en-US/virtual-machines.xml                    |    1 +
 docs/en-US/vm-snapshots.xml                        |  146 +
 .../subsystem/api/storage/CommandResult.java       |    2 +-
 .../api/storage/ObjectInDataStoreStateMachine.java |    2 +-
 .../cloud/entity/api/VMEntityManagerImpl.java      |   82 +-
 .../platform/orchestration/CloudOrchestrator.java  |   63 +-
 .../driver/AncientImageDataStoreDriverImpl.java    |   10 +-
 .../image/motion/DefaultImageMotionStrategy.java   |    4 +-
 .../cloudstack/storage/test/DirectAgentTest.java   |    4 +-
 .../test/MockHypervisorHostEndPointRpcServer.java  |   72 +
 .../test/MockHypervsiorHostEndPointRpcServer.java  |   72 -
 .../integration-test/test/resource/component.xml   |    2 +-
 .../storage/snapshot/SnapshotObject.java           |    2 +-
 .../storage/HypervisorHostEndPointRpcServer.java   |  119 +
 .../storage/HypervsiorHostEndPointRpcServer.java   |  119 -
 .../allocator/AbstractStoragePoolAllocator.java    |    2 +-
 .../allocator/ZoneWideStoragePoolAllocator.java    |    2 +-
 .../command/CreateVolumeFromBaseImageCommand.java  |    6 +-
 .../storage/datastore/DataObjectManagerImpl.java   |    6 +-
 .../provider/DataStoreProviderManagerImpl.java     |    4 +-
 .../storage/to/ImageOnPrimaryDataStoreTO.java      |   44 +
 .../storage/to/ImageOnPrimayDataStoreTO.java       |   44 -
 .../driver/DefaultPrimaryDataStoreDriverImpl.java  |    4 +-
 .../DefaultPrimaryDatastoreProviderImpl.java       |    6 +-
 .../volume/TemplateInstallStrategyImpl.java        |    6 +-
 packaging/centos63/cloud-usage.rc                  |    2 +-
 packaging/centos63/cloud.spec                      |   14 +-
 packaging/centos63/replace.properties              |    2 +-
 .../host-anti-affinity/pom.xml                     |   33 +
 .../affinity/HostAntiAffinityProcessor.java        |   93 +
 .../cloudstack/syslog/AlertsSyslogAppender.java    |    4 +-
 .../src/com/cloud/hypervisor/guru/VMwareGuru.java  |   37 +-
 .../vmware/manager/VmwareManagerImpl.java          |    3 +-
 .../hypervisor/vmware/resource/VmwareResource.java |   31 +-
 .../xen/resource/XenServerStorageResource.java     |    4 +-
 plugins/network-elements/cisco-vnmc/pom.xml        |   42 +
 .../scripts/network/cisco/assoc-asa1000v.xml       |   34 +
 .../network/cisco/associate-acl-policy-set.xml     |   37 +
 .../network/cisco/associate-dhcp-policy.xml        |   34 +
 .../network/cisco/associate-dhcp-server.xml        |   32 +
 .../network/cisco/associate-nat-policy-set.xml     |   35 +
 .../network/cisco/associate-route-policy.xml       |   33 +
 .../network/cisco/create-acl-policy-ref.xml        |   38 +
 .../network/cisco/create-acl-policy-set.xml        |   36 +
 .../scripts/network/cisco/create-acl-policy.xml    |   35 +
 .../network/cisco/create-acl-rule-for-dnat.xml     |   82 +
 .../network/cisco/create-acl-rule-for-pf.xml       |  156 +
 .../scripts/network/cisco/create-dhcp-policy.xml   |   72 +
 .../scripts/network/cisco/create-dnat-rule.xml     |   91 +
 .../network/cisco/create-edge-device-profile.xml   |   32 +
 .../cisco/create-edge-device-route-policy.xml      |   30 +
 .../network/cisco/create-edge-device-route.xml     |   35 +
 .../scripts/network/cisco/create-edge-firewall.xml |   89 +
 .../network/cisco/create-edge-security-profile.xml |   41 +
 .../network/cisco/create-egress-acl-rule.xml       |  201 +
 .../cisco/create-generic-egress-acl-rule.xml       |  122 +
 .../cisco/create-generic-ingress-acl-rule.xml      |  121 +
 .../network/cisco/create-ingress-acl-rule.xml      |  201 +
 .../scripts/network/cisco/create-ip-pool.xml       |   58 +
 .../network/cisco/create-nat-policy-ref.xml        |   38 +
 .../network/cisco/create-nat-policy-set.xml        |   37 +
 .../scripts/network/cisco/create-nat-policy.xml    |   33 +
 .../scripts/network/cisco/create-pf-rule.xml       |  166 +
 .../scripts/network/cisco/create-port-pool.xml     |   72 +
 .../network/cisco/create-source-nat-pool.xml       |   58 +
 .../network/cisco/create-source-nat-rule.xml       |  103 +
 .../scripts/network/cisco/create-tenant.xml        |   29 +
 .../scripts/network/cisco/create-vdc.xml           |   30 +
 .../network/cisco/delete-acl-policy-set.xml        |   30 +
 .../scripts/network/cisco/delete-acl-policy.xml    |   33 +
 .../scripts/network/cisco/delete-edge-firewall.xml |   30 +
 .../network/cisco/delete-edge-security-profile.xml |   38 +
 .../network/cisco/delete-nat-policy-set.xml        |   30 +
 .../scripts/network/cisco/delete-nat-policy.xml    |   33 +
 .../scripts/network/cisco/delete-rule.xml          |   31 +
 .../scripts/network/cisco/delete-tenant.xml        |   30 +
 .../scripts/network/cisco/delete-vdc.xml           |   30 +
 .../scripts/network/cisco/disassoc-asa1000v.xml    |   30 +
 .../scripts/network/cisco/list-acl-policies.xml    |   31 +
 .../scripts/network/cisco/list-children.xml        |   27 +
 .../scripts/network/cisco/list-nat-policies.xml    |   31 +
 .../network/cisco/list-policyrefs-in-policyset.xml |   31 +
 .../scripts/network/cisco/list-tenants.xml         |   26 +
 .../network/cisco/list-unassigned-asa1000v.xml     |   39 +
 .../cisco-vnmc/scripts/network/cisco/login.xml     |   20 +
 ...AssociateAsaWithLogicalEdgeFirewallCommand.java |   53 +
 .../api/CleanupLogicalEdgeFirewallCommand.java     |   43 +
 .../agent/api/ConfigureNexusVsmForAsaCommand.java  |   95 +
 .../api/CreateLogicalEdgeFirewallCommand.java      |   94 +
 .../api/commands/AddCiscoAsa1000vResourceCmd.java  |  116 +
 .../api/commands/AddCiscoVnmcResourceCmd.java      |  115 +
 .../commands/DeleteCiscoAsa1000vResourceCmd.java   |   93 +
 .../api/commands/DeleteCiscoVnmcResourceCmd.java   |   93 +
 .../commands/ListCiscoAsa1000vResourcesCmd.java    |  110 +
 .../api/commands/ListCiscoVnmcResourcesCmd.java    |  106 +
 .../response/CiscoAsa1000vResourceResponse.java    |   88 +
 .../api/response/CiscoVnmcResourceResponse.java    |   75 +
 .../cloud/network/cisco/CiscoAsa1000vDevice.java   |   39 +
 .../cloud/network/cisco/CiscoAsa1000vDeviceVO.java |  101 +
 .../cloud/network/cisco/CiscoVnmcConnection.java   |  196 +
 .../network/cisco/CiscoVnmcConnectionImpl.java     | 1415 +++++
 .../cloud/network/cisco/CiscoVnmcController.java   |   40 +
 .../cloud/network/cisco/CiscoVnmcControllerVO.java |  102 +
 .../cloud/network/cisco/NetworkAsa1000vMap.java    |   31 +
 .../cloud/network/cisco/NetworkAsa1000vMapVO.java  |   73 +
 .../com/cloud/network/dao/CiscoAsa1000vDao.java    |   33 +
 .../cloud/network/dao/CiscoAsa1000vDaoImpl.java    |   63 +
 .../src/com/cloud/network/dao/CiscoVnmcDao.java    |   32 +
 .../com/cloud/network/dao/CiscoVnmcDaoImpl.java    |   51 +
 .../cloud/network/dao/NetworkAsa1000vMapDao.java   |   28 +
 .../network/dao/NetworkAsa1000vMapDaoImpl.java     |   61 +
 .../network/element/CiscoAsa1000vService.java      |   43 +
 .../cloud/network/element/CiscoVnmcElement.java    |  928 +++
 .../network/element/CiscoVnmcElementService.java   |   42 +
 .../cloud/network/resource/CiscoVnmcResource.java  |  780 +++
 .../contrib/ssl/EasySSLProtocolSocketFactory.java  |  232 +
 .../contrib/ssl/EasyX509TrustManager.java          |  114 +
 .../network/cisco/CiscoVnmcConnectionTest.java     |  248 +
 .../network/element/CiscoVnmcElementTest.java      |  401 ++
 .../network/resource/CiscoVnmcResourceTest.java    |  285 +
 .../dns-notifier/resources/components-example.xml  |    2 +-
 .../element/F5ExternalLoadBalancerElement.java     |   15 +-
 .../element/JuniperSRXExternalFirewallElement.java |   58 +-
 .../cloud/network/element/NetscalerElement.java    |    3 +-
 plugins/pom.xml                                    |    2 +
 .../CloudStackPrimaryDataStoreProviderImpl.java    |    6 +-
 server/pom.xml                                     |    2 -
 server/src/com/cloud/api/ApiDBUtils.java           |   28 +-
 server/src/com/cloud/api/ApiResponseHelper.java    |   75 +-
 .../src/com/cloud/api/query/QueryManagerImpl.java  |  177 +-
 .../com/cloud/api/query/ViewResponseHelper.java    |   20 +-
 .../cloud/api/query/dao/AffinityGroupJoinDao.java  |   37 +
 .../api/query/dao/AffinityGroupJoinDaoImpl.java    |  142 +
 .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java |   27 +
 .../cloud/api/query/vo/AffinityGroupJoinVO.java    |  248 +
 .../src/com/cloud/api/query/vo/UserVmJoinVO.java   |   37 +
 server/src/com/cloud/configuration/Config.java     |    3 +
 .../cloud/configuration/ConfigurationManager.java  |    8 +-
 .../configuration/ConfigurationManagerImpl.java    |  216 +-
 .../AgentBasedConsoleProxyManager.java             |    8 +-
 .../AgentBasedConsoleProxyManager.java.orig        |  298 -
 .../src/com/cloud/consoleproxy/AgentHookBase.java  |   50 +-
 .../consoleproxy/ConsoleProxyManagerImpl.java      |   21 +-
 .../cloud/deploy/DeploymentPlanningManager.java    |   45 +
 .../deploy/DeploymentPlanningManagerImpl.java      |  106 +
 server/src/com/cloud/deploy/FirstFitPlanner.java   |   56 +-
 server/src/com/cloud/domain/dao/DomainDaoImpl.java |   11 +-
 .../cloud/network/ExteralIpAddressAllocator.java   |  165 -
 .../cloud/network/ExternalIpAddressAllocator.java  |  165 +
 server/src/com/cloud/network/IpAddrAllocator.java  |    2 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  |  317 +-
 server/src/com/cloud/network/NetworkModelImpl.java |   26 +-
 .../src/com/cloud/network/NetworkServiceImpl.java  |  109 +-
 .../com/cloud/network/rules/RulesManagerImpl.java  |   16 +-
 .../src/com/cloud/offerings/NetworkOfferingVO.java |   12 +-
 .../com/cloud/resource/ResourceManagerImpl.java    |   22 +-
 .../com/cloud/server/ConfigurationServerImpl.java  |   25 +-
 server/src/com/cloud/server/ManagementServer.java  |    3 +
 .../src/com/cloud/server/ManagementServerImpl.java |  199 +-
 .../src/com/cloud/service/ServiceOfferingVO.java   |   81 +-
 .../ConsoleProxyPasswordBasedEncryptor.java        |   99 +-
 .../src/com/cloud/servlet/ConsoleProxyServlet.java |   16 +-
 .../storage/snapshot/SnapshotManagerImpl.java      |   11 +-
 .../com/cloud/template/TemplateManagerImpl.java    |    2 +-
 .../src/com/cloud/upgrade/dao/Upgrade410to420.java |   44 +-
 server/src/com/cloud/user/AccountManagerImpl.java  |   15 +-
 server/src/com/cloud/vm/UserVmManagerImpl.java     |   73 +-
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |  132 +-
 .../affinity/AffinityGroupServiceImpl.java         |  346 ++
 .../cloudstack/affinity/AffinityGroupVMMapVO.java  |   66 +
 .../cloudstack/affinity/AffinityGroupVO.java       |  114 +
 .../cloudstack/affinity/dao/AffinityGroupDao.java  |   30 +
 .../affinity/dao/AffinityGroupDaoImpl.java         |  102 +
 .../affinity/dao/AffinityGroupVMMapDao.java        |   47 +
 .../affinity/dao/AffinityGroupVMMapDaoImpl.java    |  167 +
 .../configuration/ConfigurationManagerTest.java    |  413 ++
 .../com/cloud/network/MockNetworkManagerImpl.java  |   38 +-
 .../test/com/cloud/vm/MockUserVmManagerImpl.java   |   16 +-
 .../cloud/vpc/MockConfigurationManagerImpl.java    |   25 +-
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |   54 +-
 .../affinity/AffinityApiTestConfiguration.java     |  344 ++
 .../cloudstack/affinity/AffinityApiUnitTest.java   |  187 +
 .../networkoffering/ChildTestConfiguration.java    |    7 +-
 .../networkoffering/CreateNetworkOfferingTest.java |    1 -
 server/test/resources/affinityContext.xml          |   47 +
 server/test/resources/network-mgr-component.xml    |    2 +-
 .../ConsoleProxyPasswordBasedEncryptor.java        |  253 +-
 setup/db/db/schema-410to420.sql                    |  277 +-
 test/integration/component/test_asa1000v_fw.py     |  134 +
 test/integration/smoke/test_ScaleVm.py             |    4 +-
 test/integration/smoke/test_affinity_groups.py     |  194 +
 test/integration/smoke/test_iso.py                 |    3 +-
 test/integration/smoke/test_network.py             |    4 +-
 test/integration/smoke/test_public_ip_range.py     |  173 +
 test/integration/smoke/test_routers.py             |    2 +-
 test/integration/smoke/test_templates.py           |    3 +-
 test/integration/smoke/test_vm_life_cycle.py       |    2 +-
 test/integration/smoke/test_volumes.py             |   55 +-
 tools/apidoc/gen_toc.py                            |    4 +-
 tools/build/build_asf.sh                           |   12 +-
 tools/build/build_docs.sh                          |   19 +-
 tools/cli/cloudmonkey/requester.py                 |    4 +-
 tools/marvin/marvin/integration/lib/base.py        |  122 +-
 ui/css/cloudstack3.css                             |    6 +-
 ui/index.jsp                                       |    2 +-
 ui/scripts/cloudStack.js                           |    4 +-
 ui/scripts/dashboard.js                            |    2 +-
 ui/scripts/instances.js                            |   29 +-
 ui/scripts/network.js                              |   10 +-
 ui/scripts/regions.js                              |  169 +-
 ui/scripts/sharedFunctions.js                      |   28 +-
 ui/scripts/system.js                               |    5 +-
 ui/scripts/ui-custom/regions.js                    |    2 +-
 ui/scripts/ui/widgets/listView.js                  |    6 +-
 usage/pom.xml                                      |    5 +
 usage/src/com/cloud/usage/UsageServer.java         |   16 +-
 utils/src/com/cloud/utils/SerialVersionUID.java    |    1 +
 .../cloud/utils/cisco/n1kv/vsm/NetconfHelper.java  |   22 +
 .../com/cloud/utils/cisco/n1kv/vsm/VsmCommand.java |  213 +
 .../cloud/utils/component/ComponentContext.java    |    4 +-
 .../hypervisor/vmware/mo/HypervisorHostHelper.java |   45 +-
 281 files changed, 21503 insertions(+), 2184 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a7489889/ui/css/cloudstack3.css
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a7489889/ui/index.jsp
----------------------------------------------------------------------


[49/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'master' into marvin_refactor


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0b5fe9a9
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0b5fe9a9
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0b5fe9a9

Branch: refs/heads/marvin_refactor
Commit: 0b5fe9a9061dda4ad4f91fb1e413373d11e75169
Parents: b079723 5a0f4b6
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 22:32:50 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 22:32:50 2013 +0530

----------------------------------------------------------------------
 CHANGES                                            |  385 ++++++++++++++-
 README.md                                          |    6 +-
 api/src/com/cloud/network/element/IpDeployer.java  |    6 +-
 .../org/apache/cloudstack/api/ApiConstants.java    |    1 +
 .../cloudstack/api/command/user/vm/ListVMsCmd.java |    9 +
 docs/en-US/advanced-zone-configuration.xml         |    2 +-
 docs/en-US/advanced-zone-network-traffic-types.xml |    2 +-
 docs/en-US/basic-zone-network-traffic-types.xml    |    4 +-
 docs/en-US/build-nonoss.xml                        |   49 ++
 docs/en-US/source.xml                              |    1 +
 .../troubleshooting-working-with-server-logs.xml   |    6 +-
 .../engine/cloud/entity/api/VMEntityManager.java   |    2 +-
 .../cloud/entity/api/VMEntityManagerImpl.java      |   53 ++-
 .../cloud/entity/api/VirtualMachineEntityImpl.java |    2 +-
 .../debian/config/etc/init.d/cloud-early-config    |   53 +-
 .../cloud/network/element/NiciraNvpElement.java    |    5 +
 .../network/element/NiciraNvpElementTest.java      |  238 ++++++---
 server/pom.xml                                     |    2 +-
 .../src/com/cloud/api/query/QueryManagerImpl.java  |   18 +-
 .../configuration/ConfigurationManagerImpl.java    |    9 +-
 server/src/com/cloud/server/Criteria.java          |   11 +-
 server/test/com/cloud/vpc/Site2SiteVpnTest.java    |    2 +-
 server/test/com/cloud/vpc/VpcApiUnitTest.java      |  167 ++-----
 .../test/com/cloud/vpc/VpcTestConfiguration.java   |   73 ++--
 test/integration/component/test_accounts.py        |   16 +-
 .../component/test_allocation_states.py            |    2 +-
 test/integration/component/test_blocker_bugs.py    |   12 +-
 test/integration/component/test_egress_rules.py    |   22 +-
 test/integration/component/test_eip_elb.py         |    4 +-
 .../integration/component/test_network_offering.py |    8 +-
 test/integration/component/test_project_configs.py |   10 +-
 test/integration/component/test_project_limits.py  |    6 +-
 .../component/test_project_resources.py            |   12 +-
 test/integration/component/test_project_usage.py   |   18 +-
 test/integration/component/test_projects.py        |   14 +-
 test/integration/component/test_resource_limits.py |    6 +-
 test/integration/component/test_routers.py         |    8 +-
 test/integration/component/test_security_groups.py |   14 +-
 test/integration/component/test_snapshots.py       |   14 +-
 test/integration/component/test_storage_motion.py  |    4 +-
 test/integration/component/test_templates.py       |    4 +-
 test/integration/component/test_usage.py           |   18 +-
 .../integration/component/test_vm_passwdenabled.py |    2 +-
 test/integration/component/test_volumes.py         |   10 +-
 test/integration/smoke/test_ScaleVm.py             |  221 ---------
 test/integration/smoke/test_UpdateCfg.py           |   85 ----
 test/integration/smoke/test_global_settings.py     |   85 ++++
 test/integration/smoke/test_iso.py                 |    2 +-
 test/integration/smoke/test_network.py             |    2 +-
 test/integration/smoke/test_routers.py             |    2 +-
 test/integration/smoke/test_scale_vm.py            |  221 +++++++++
 test/integration/smoke/test_templates.py           |    2 +-
 test/integration/smoke/test_volumes.py             |    2 +-
 tools/marvin/marvin/common.py                      |    4 +-
 ui/css/cloudstack3.css                             |   70 +++-
 ui/index.jsp                                       |    4 +-
 ui/scripts/instanceWizard.js                       |   37 +-
 ui/scripts/instances.js                            |   64 ++-
 ui/scripts/network.js                              |   46 +--
 ui/scripts/storage.js                              |  117 ++++-
 ui/scripts/templates.js                            |  134 ++++--
 ui/scripts/ui-custom/projectSelect.js              |   66 +++
 ui/scripts/ui-custom/projects.js                   |    6 +-
 ui/scripts/ui-custom/zoneFilter.js                 |   39 ++
 ui/scripts/zoneWizard.js                           |   10 +-
 65 files changed, 1691 insertions(+), 838 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0b5fe9a9/server/pom.xml
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0b5fe9a9/test/integration/smoke/test_scale_vm.py
----------------------------------------------------------------------
diff --cc test/integration/smoke/test_scale_vm.py
index 0000000,64fe4dc..1f20258
mode 000000,100644..100644
--- a/test/integration/smoke/test_scale_vm.py
+++ b/test/integration/smoke/test_scale_vm.py
@@@ -1,0 -1,221 +1,221 @@@
+ # Licensed to the Apache Software Foundation (ASF) under one
+ # or more contributor license agreements.  See the NOTICE file
+ # distributed with this work for additional information
+ # regarding copyright ownership.  The ASF licenses this file
+ # to you under the Apache License, Version 2.0 (the
+ # "License"); you may not use this file except in compliance
+ # with the License.  You may obtain a copy of the License at
 -# 
++#
+ #   http://www.apache.org/licenses/LICENSE-2.0
 -# 
++#
+ # Unless required by applicable law or agreed to in writing,
+ # software distributed under the License is distributed on an
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ # KIND, either express or implied.  See the License for the
+ # specific language governing permissions and limitations
+ # under the License.
+ """ P1 tests for Scaling up Vm
+ """
+ #Import Local Modules
+ import marvin
+ from marvin.cloudstackTestCase import *
+ from marvin.cloudstackAPI import *
+ from marvin.remoteSSHClient import remoteSSHClient
+ from marvin.integration.lib.utils import *
+ from marvin.integration.lib.base import *
+ from marvin.integration.lib.common import *
+ from nose.plugins.attrib import attr
+ #Import System modules
+ import time
+ 
+ _multiprocess_shared_ = True
+ class Services:
+     """Test VM Life Cycle Services
+     """
+ 
+     def __init__(self):
+         self.services = {
+ 
+                 "account": {
+                     "email": "test@test.com",
+                     "firstname": "Test",
+                     "lastname": "User",
+                     "username": "test",
 -                    # Random characters are appended in create account to 
++                    # Random characters are appended in create account to
+                     # ensure unique username generated each time
+                     "password": "password",
+                 },
+                 "small":
 -                # Create a small virtual machine instance with disk offering 
++                # Create a small virtual machine instance with disk offering
+                 {
+                     "displayname": "testserver",
+                     "username": "root", # VM creds for SSH
+                     "password": "password",
+                     "ssh_port": 22,
+                     "hypervisor": 'XenServer',
+                     "privateport": 22,
+                     "publicport": 22,
+                     "protocol": 'TCP',
+                 },
+                 "service_offerings":
+                 {
+                  "small":
+                     {
 -                     # Small service offering ID to for change VM 
++                     # Small service offering ID to for change VM
+                      # service offering from medium to small
+                         "name": "SmallInstance",
+                         "displaytext": "SmallInstance",
+                         "cpunumber": 1,
+                         "cpuspeed": 100,
+                         "memory": 256,
+                     },
+                 "big":
+                     {
 -                     # Big service offering ID to for change VM 
++                     # Big service offering ID to for change VM
+                         "name": "BigInstance",
+                         "displaytext": "BigInstance",
+                         "cpunumber": 1,
+                         "cpuspeed": 100,
+                         "memory": 512,
+                     }
+                 },
+                 #Change this
+                 "template": {
+                     "displaytext": "xs",
+                     "name": "xs",
+                     "passwordenabled": False,
+                 },
+             "diskdevice": '/dev/xvdd',
+             # Disk device where ISO is attached to instance
+             "mount_dir": "/mnt/tmp",
+             "sleep": 60,
+             "timeout": 10,
+             #Migrate VM to hostid
+             "ostype": 'CentOS 5.3 (64-bit)',
+             # CentOS 5.3 (64-bit)
+         }
+ 
+ class TestScaleVm(cloudstackTestCase):
+ 
+     @classmethod
+     def setUpClass(cls):
+         cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
+         cls.services = Services().services
+ 
+         # Get Zone, Domain and templates
+         domain = get_domain(cls.api_client, cls.services)
+         zone = get_zone(cls.api_client, cls.services)
+         cls.services['mode'] = zone.networktype
+ 
+         template = get_template(
+                             cls.api_client,
+                             zone.id,
+                             cls.services["ostype"]
+                             )
+         # Set Zones and disk offerings ??
+         cls.services["small"]["zoneid"] = zone.id
+         cls.services["small"]["template"] = template.id
+ 
+         # Create account, service offerings, vm.
+         cls.account = Account.create(
+                             cls.api_client,
+                             cls.services["account"],
+                             domainid=domain.id
+                             )
+ 
+         cls.small_offering = ServiceOffering.create(
+                                     cls.api_client,
+                                     cls.services["service_offerings"]["small"]
+                                     )
 -        
++
+         cls.big_offering = ServiceOffering.create(
+                                     cls.api_client,
+                                     cls.services["service_offerings"]["big"]
+                                     )
+ 
+         #create a virtual machine
+         cls.virtual_machine = VirtualMachine.create(
+                                         cls.api_client,
+                                         cls.services["small"],
+                                         accountid=cls.account.account.name,
+                                         domainid=cls.account.account.domainid,
+                                         serviceofferingid=cls.small_offering.id,
+                                         mode=cls.services["mode"]
+                                         )
+         #how does it work ??
+         cls._cleanup = [
+                         cls.small_offering,
+                         cls.account
+                         ]
+ 
+     @classmethod
+     def tearDownClass(cls):
+         cls.api_client = super(TestScaleVm, cls).getClsTestClient().getApiClient()
+         cleanup_resources(cls.api_client, cls._cleanup)
+         return
+ 
+     def setUp(self):
+         self.apiclient = self.testClient.getApiClient()
+         self.dbclient = self.testClient.getDbConnection()
+         self.cleanup = []
+ 
+     def tearDown(self):
+         #Clean up, terminate the created ISOs
+         cleanup_resources(self.apiclient, self.cleanup)
+         return
+ 
+     @attr(tags = ["xenserver", "advanced", "basic"])
+     def test_01_scale_vm(self):
 -        """Test scale virtual machine 
++        """Test scale virtual machine
+         """
+         # Validate the following
+         # Scale up the vm and see if it scales to the new svc offering and is finally in running state
 -        
 -      
 -      
++
++
++
+         self.debug("Scaling VM-ID: %s to service offering: %s" % (
+                                         self.virtual_machine.id,
+                                         self.big_offering.id
+                                         ))
 -        
++
+         cmd = scaleVirtualMachine.scaleVirtualMachineCmd()
+         cmd.serviceofferingid = self.big_offering.id
+         cmd.id = self.virtual_machine.id
 -        self.apiclient.scaleVirtualMachine(cmd)  
++        self.apiclient.scaleVirtualMachine(cmd)
+ 
+         list_vm_response = list_virtual_machines(
+                                             self.apiclient,
+                                             id=self.virtual_machine.id
+                                             )
+         self.assertEqual(
+                         isinstance(list_vm_response, list),
+                         True,
+                         "Check list response returns a valid list"
+                         )
+ 
+         self.assertNotEqual(
+                             list_vm_response,
+                             None,
+                             "Check virtual machine is listVirtualMachines"
+                             )
+ 
+         vm_response = list_vm_response[0]
+ 
+         self.assertEqual(
+                         vm_response.id,
+                         self.virtual_machine.id,
+                         "Check virtual machine ID of scaled VM"
+                         )
+ 
+         self.assertEqual(
+                         vm_response.serviceofferingid,
+                         self.big_offering.id,
+                         "Check service offering of the VM"
+                         )
+ 
+         self.assertEqual(
+                         vm_response.state,
+                         'Running',
+                         "Check the state of VM"
+                         )
+         return

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0b5fe9a9/tools/marvin/marvin/common.py
----------------------------------------------------------------------
diff --cc tools/marvin/marvin/common.py
index 36e4435,0000000..0c71607
mode 100644,000000..100644
--- a/tools/marvin/marvin/common.py
+++ b/tools/marvin/marvin/common.py
@@@ -1,566 -1,0 +1,568 @@@
 +# Licensed to the Apache Software Foundation (ASF) under one
 +# or more contributor license agreements.  See the NOTICE file
 +# distributed with this work for additional information
 +# regarding copyright ownership.  The ASF licenses this file
 +# to you under the Apache License, Version 2.0 (the
 +# "License"); you may not use this file except in compliance
 +# with the License.  You may obtain a copy of the License at
 +# 
 +#   http://www.apache.org/licenses/LICENSE-2.0
 +# 
 +# Unless required by applicable law or agreed to in writing,
 +# software distributed under the License is distributed on an
 +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 +# KIND, either express or implied.  See the License for the
 +# specific language governing permissions and limitations
 +# under the License.
 +"""Common functions
 +"""
 +
 +#Import Local Modules
 +from marvin.cloudstackTestCase import *
 +from marvin.remoteSSHClient import remoteSSHClient
 +from marvin.utils import *
 +
 +#Import System modules
 +import time
 +
 +
 +def wait_for_cleanup(apiclient, configs=None):
 +    """Sleeps till the cleanup configs passed"""
 +
 +    # Configs list consists of the list of global configs
 +    if not isinstance(configs, list):
 +        return
 +    for config in configs:
 +        cmd = listConfigurations.listConfigurationsCmd()
 +        cmd.name = config
 +        cmd.listall = True
 +        try:
 +            config_descs = apiclient.listConfigurations(cmd)
 +        except Exception as e:
 +            raise Exception("Failed to fetch configurations: %s" % e)
 +
 +        if not isinstance(config_descs, list):
 +            raise Exception("List configs didn't returned a valid data")
 +
 +        config_desc = config_descs[0]
 +        # Sleep for the config_desc.value time
 +        time.sleep(int(config_desc.value))
 +    return
 +
 +
 +def get_domain(apiclient, services=None):
 +    "Returns a default domain"
 +
 +    cmd = listDomains.listDomainsCmd()
 +    if services:
 +        if "domainid" in services:
 +            cmd.id = services["domainid"]
 +
 +    domains = apiclient.listDomains(cmd)
 +
 +    if isinstance(domains, list):
 +        assert len(domains) > 0
 +        return domains[0]
 +    else:
 +        raise Exception("Failed to find specified domain.")
 +
 +
 +def get_zone(apiclient, services=None):
 +    "Returns a default zone"
 +
 +    cmd = listZones.listZonesCmd()
 +    if services:
 +        if "zoneid" in services:
 +            cmd.id = services["zoneid"]
 +
 +    zones = apiclient.listZones(cmd)
 +
 +    if isinstance(zones, list):
 +        assert len(zones) > 0, "There are no available zones in the deployment"
 +        return zones[0]
 +    else:
 +        raise Exception("Failed to find specified zone.")
 +
 +
 +def get_pod(apiclient, zoneid, services=None):
 +    "Returns a default pod for specified zone"
 +
 +    cmd = listPods.listPodsCmd()
 +    cmd.zoneid = zoneid
 +
 +    if services:
 +        if "podid" in services:
 +            cmd.id = services["podid"]
 +
 +    pods = apiclient.listPods(cmd)
 +
 +    if isinstance(pods, list):
 +        assert len(pods) > 0, "No pods found for zone %s"%zoneid
 +        return pods[0]
 +    else:
 +        raise Exception("Exception: Failed to find specified pod.")
 +
 +
 +def get_template(apiclient, zoneid, ostype, services=None):
 +    "Returns a template"
 +
 +    cmd = listOsTypes.listOsTypesCmd()
 +    cmd.description = ostype
 +    ostypes = apiclient.listOsTypes(cmd)
 +
 +    if isinstance(ostypes, list):
 +        ostypeid = ostypes[0].id
 +    else:
 +        raise Exception(
 +            "Failed to find OS type with description: %s" % ostype)
 +
 +    cmd = listTemplates.listTemplatesCmd()
 +    cmd.templatefilter = 'featured'
 +    cmd.zoneid = zoneid
 +
 +    if services:
 +        if "template" in services:
 +            cmd.id = services["template"]
 +
 +    list_templates = apiclient.listTemplates(cmd)
 +
 +    if isinstance(list_templates, list):
 +        assert len(list_templates) > 0, "received empty response on template of type %s"%ostype
 +        for template in list_templates:
 +            if template.ostypeid == ostypeid:
 +                return template
++            elif template.isready:
++                return template
 +
 +    raise Exception("Exception: Failed to find template with OSTypeID: %s" %
 +                                                                    ostypeid)
 +    return
 +
 +
 +def download_systemplates_sec_storage(server, services):
 +    """Download System templates on sec storage"""
 +
 +    try:
 +        # Login to management server
 +        ssh = remoteSSHClient(
 +                                          server["ipaddress"],
 +                                          server["port"],
 +                                          server["username"],
 +                                          server["password"]
 +                             )
 +    except Exception:
 +        raise Exception("SSH access failted for server with IP address: %s" %
 +                                                            server["ipaddess"])
 +    # Mount Secondary Storage on Management Server
 +    cmds = [
 +            "mkdir -p %s" % services["mnt_dir"],
 +            "mount -t nfs %s:/%s %s" % (
 +                                        services["sec_storage"],
 +                                        services["path"],
 +                                        services["mnt_dir"]
 +                                        ),
 +            "%s -m %s -u %s -h %s -F" % (
 +                                         services["command"],
 +                                         services["mnt_dir"],
 +                                         services["download_url"],
 +                                         services["hypervisor"]
 +                                        )
 +            ]
 +    for c in cmds:
 +        result = ssh.execute(c)
 +
 +    res = str(result)
 +
 +    # Unmount the Secondary storage
 +    ssh.execute("umount %s" % (services["mnt_dir"]))
 +
 +    if res.count("Successfully installed system VM template") == 1:
 +        return
 +    else:
 +        raise Exception("Failed to download System Templates on Sec Storage")
 +    return
 +
 +
 +def wait_for_ssvms(apiclient, zoneid, podid, interval=60):
 +    """After setup wait for SSVMs to come Up"""
 +
 +    time.sleep(interval)
 +    timeout = 40
 +    while True:
 +            list_ssvm_response = list_ssvms(
 +                                        apiclient,
 +                                        systemvmtype='secondarystoragevm',
 +                                        zoneid=zoneid,
 +                                        podid=podid
 +                                        )
 +            ssvm = list_ssvm_response[0]
 +            if ssvm.state != 'Running':
 +                # Sleep to ensure SSVMs are Up and Running
 +                time.sleep(interval)
 +                timeout = timeout - 1
 +            elif ssvm.state == 'Running':
 +                break
 +            elif timeout == 0:
 +                raise Exception("SSVM failed to come up")
 +                break
 +
 +    timeout = 40
 +    while True:
 +            list_ssvm_response = list_ssvms(
 +                                        apiclient,
 +                                        systemvmtype='consoleproxy',
 +                                        zoneid=zoneid,
 +                                        podid=podid
 +                                        )
 +            cpvm = list_ssvm_response[0]
 +            if cpvm.state != 'Running':
 +                # Sleep to ensure SSVMs are Up and Running
 +                time.sleep(interval)
 +                timeout = timeout - 1
 +            elif cpvm.state == 'Running':
 +                break
 +            elif timeout == 0:
 +                raise Exception("CPVM failed to come up")
 +                break
 +    return
 +
 +
 +def download_builtin_templates(apiclient, zoneid, hypervisor, host,
 +                                                linklocalip, interval=60):
 +    """After setup wait till builtin templates are downloaded"""
 +
 +    # Change IPTABLES Rules
 +    get_process_status(
 +                        host["ipaddress"],
 +                        host["port"],
 +                        host["username"],
 +                        host["password"],
 +                        linklocalip,
 +                        "iptables -P INPUT ACCEPT"
 +                    )
 +    time.sleep(interval)
 +    # Find the BUILTIN Templates for given Zone, Hypervisor
 +    list_template_response = list_templates(
 +                                    apiclient,
 +                                    hypervisor=hypervisor,
 +                                    zoneid=zoneid,
 +                                    templatefilter='self'
 +                                    )
 +
 +    if not isinstance(list_template_response, list):
 +        raise Exception("Failed to download BUILTIN templates")
 +
 +    # Ensure all BUILTIN templates are downloaded
 +    templateid = None
 +    for template in list_template_response:
 +        if template.templatetype == "BUILTIN":
 +                templateid = template.id
 +
 +    # Sleep to ensure that template is in downloading state after adding
 +    # Sec storage
 +    time.sleep(interval)
 +    while True:
 +        template_response = list_templates(
 +                                    apiclient,
 +                                    id=templateid,
 +                                    zoneid=zoneid,
 +                                    templatefilter='self'
 +                                    )
 +        template = template_response[0]
 +        # If template is ready,
 +        # template.status = Download Complete
 +        # Downloading - x% Downloaded
 +        # Error - Any other string
 +        if template.status == 'Download Complete':
 +            break
 +
 +        elif 'Downloaded' in template.status:
 +            time.sleep(interval)
 +
 +        elif 'Installing' not in template.status:
 +            raise Exception("ErrorInDownload")
 +
 +    return
 +
 +
 +def update_resource_limit(apiclient, resourcetype, account=None,
 +                                    domainid=None, max=None, projectid=None):
 +    """Updates the resource limit to 'max' for given account"""
 +
 +    cmd = updateResourceLimit.updateResourceLimitCmd()
 +    cmd.resourcetype = resourcetype
 +    if account:
 +        cmd.account = account
 +    if domainid:
 +        cmd.domainid = domainid
 +    if max:
 +        cmd.max = max
 +    if projectid:
 +        cmd.projectid = projectid
 +    apiclient.updateResourceLimit(cmd)
 +    return
 +
 +
 +def list_os_types(apiclient, **kwargs):
 +    """List all os types matching criteria"""
 +
 +    cmd = listOsTypes.listOsTypesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listOsTypes(cmd))
 +
 +
 +def list_routers(apiclient, **kwargs):
 +    """List all Routers matching criteria"""
 +
 +    cmd = listRouters.listRoutersCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listRouters(cmd))
 +
 +
 +def list_zones(apiclient, **kwargs):
 +    """List all Zones matching criteria"""
 +
 +    cmd = listZones.listZonesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listZones(cmd))
 +
 +
 +def list_networks(apiclient, **kwargs):
 +    """List all Networks matching criteria"""
 +
 +    cmd = listNetworks.listNetworksCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listNetworks(cmd))
 +
 +
 +def list_clusters(apiclient, **kwargs):
 +    """List all Clusters matching criteria"""
 +
 +    cmd = listClusters.listClustersCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listClusters(cmd))
 +
 +
 +def list_ssvms(apiclient, **kwargs):
 +    """List all SSVMs matching criteria"""
 +
 +    cmd = listSystemVms.listSystemVmsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listSystemVms(cmd))
 +
 +
 +def list_storage_pools(apiclient, **kwargs):
 +    """List all storage pools matching criteria"""
 +
 +    cmd = listStoragePools.listStoragePoolsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listStoragePools(cmd))
 +
 +
 +def list_virtual_machines(apiclient, **kwargs):
 +    """List all VMs matching criteria"""
 +
 +    cmd = listVirtualMachines.listVirtualMachinesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listVirtualMachines(cmd))
 +
 +
 +def list_hosts(apiclient, **kwargs):
 +    """List all Hosts matching criteria"""
 +
 +    cmd = listHosts.listHostsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listHosts(cmd))
 +
 +
 +def list_configurations(apiclient, **kwargs):
 +    """List configuration with specified name"""
 +
 +    cmd = listConfigurations.listConfigurationsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listConfigurations(cmd))
 +
 +
 +def list_publicIP(apiclient, **kwargs):
 +    """List all Public IPs matching criteria"""
 +
 +    cmd = listPublicIpAddresses.listPublicIpAddressesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listPublicIpAddresses(cmd))
 +
 +
 +def list_nat_rules(apiclient, **kwargs):
 +    """List all NAT rules matching criteria"""
 +
 +    cmd = listPortForwardingRules.listPortForwardingRulesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listPortForwardingRules(cmd))
 +
 +
 +def list_lb_rules(apiclient, **kwargs):
 +    """List all Load balancing rules matching criteria"""
 +
 +    cmd = listLoadBalancerRules.listLoadBalancerRulesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listLoadBalancerRules(cmd))
 +
 +
 +def list_lb_instances(apiclient, **kwargs):
 +    """List all Load balancing instances matching criteria"""
 +
 +    cmd = listLoadBalancerRuleInstances.listLoadBalancerRuleInstancesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listLoadBalancerRuleInstances(cmd))
 +
 +
 +def list_firewall_rules(apiclient, **kwargs):
 +    """List all Firewall Rules matching criteria"""
 +
 +    cmd = listFirewallRules.listFirewallRulesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listFirewallRules(cmd))
 +
 +
 +def list_volumes(apiclient, **kwargs):
 +    """List all volumes matching criteria"""
 +
 +    cmd = listVolumes.listVolumesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listVolumes(cmd))
 +
 +
 +def list_isos(apiclient, **kwargs):
 +    """Lists all available ISO files."""
 +
 +    cmd = listIsos.listIsosCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listIsos(cmd))
 +
 +
 +def list_snapshots(apiclient, **kwargs):
 +    """List all snapshots matching criteria"""
 +
 +    cmd = listSnapshots.listSnapshotsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listSnapshots(cmd))
 +
 +
 +def list_templates(apiclient, **kwargs):
 +    """List all templates matching criteria"""
 +
 +    cmd = listTemplates.listTemplatesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listTemplates(cmd))
 +
 +
 +def list_domains(apiclient, **kwargs):
 +    """Lists domains"""
 +
 +    cmd = listDomains.listDomainsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listDomains(cmd))
 +
 +
 +def list_accounts(apiclient, **kwargs):
 +    """Lists accounts and provides detailed account information for
 +    listed accounts"""
 +
 +    cmd = listAccounts.listAccountsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listAccounts(cmd))
 +
 +
 +def list_users(apiclient, **kwargs):
 +    """Lists users and provides detailed account information for
 +    listed users"""
 +
 +    cmd = listUsers.listUsersCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listUsers(cmd))
 +
 +
 +def list_snapshot_policy(apiclient, **kwargs):
 +    """Lists snapshot policies."""
 +
 +    cmd = listSnapshotPolicies.listSnapshotPoliciesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listSnapshotPolicies(cmd))
 +
 +
 +def list_events(apiclient, **kwargs):
 +    """Lists events"""
 +
 +    cmd = listEvents.listEventsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listEvents(cmd))
 +
 +
 +def list_disk_offering(apiclient, **kwargs):
 +    """Lists all available disk offerings."""
 +
 +    cmd = listDiskOfferings.listDiskOfferingsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listDiskOfferings(cmd))
 +
 +
 +def list_service_offering(apiclient, **kwargs):
 +    """Lists all available service offerings."""
 +
 +    cmd = listServiceOfferings.listServiceOfferingsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listServiceOfferings(cmd))
 +
 +
 +def list_vlan_ipranges(apiclient, **kwargs):
 +    """Lists all VLAN IP ranges."""
 +
 +    cmd = listVlanIpRanges.listVlanIpRangesCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listVlanIpRanges(cmd))
 +
 +
 +def list_usage_records(apiclient, **kwargs):
 +    """Lists usage records for accounts"""
 +
 +    cmd = listUsageRecords.listUsageRecordsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listUsageRecords(cmd))
 +
 +
 +def list_nw_service_prividers(apiclient, **kwargs):
 +    """Lists Network service providers"""
 +
 +    cmd = listNetworkServiceProviders.listNetworkServiceProvidersCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listNetworkServiceProviders(cmd))
 +
 +
 +def list_virtual_router_elements(apiclient, **kwargs):
 +    """Lists Virtual Router elements"""
 +
 +    cmd = listVirtualRouterElements.listVirtualRouterElementsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listVirtualRouterElements(cmd))
 +
 +
 +def list_network_offerings(apiclient, **kwargs):
 +    """Lists network offerings"""
 +
 +    cmd = listNetworkOfferings.listNetworkOfferingsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listNetworkOfferings(cmd))
 +
 +
 +def list_resource_limits(apiclient, **kwargs):
 +    """Lists resource limits"""
 +
 +    cmd = listResourceLimits.listResourceLimitsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
 +    return(apiclient.listResourceLimits(cmd))
 +
 +def list_vpc_offerings(apiclient, **kwargs):
 +    """ Lists VPC offerings """
 +
 +    cmd = listVPCOfferings.listVPCOfferingsCmd()
 +    [setattr(cmd, k, v) for k, v in kwargs.items()]
-     return(apiclient.listVPCOfferings(cmd))
++    return(apiclient.listVPCOfferings(cmd))

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0b5fe9a9/ui/scripts/zoneWizard.js
----------------------------------------------------------------------


[30/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'ui-mixed-zone-management'


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fc08c237
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fc08c237
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fc08c237

Branch: refs/heads/marvin_refactor
Commit: fc08c2372ca80c6a1f8e4ecfcc2e2a77e64589a9
Parents: 4a3a9df 355b910
Author: Brian Federle <br...@citrix.com>
Authored: Fri Apr 19 10:25:39 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Fri Apr 19 10:25:39 2013 -0700

----------------------------------------------------------------------
 ui/css/cloudstack3.css                |   59 ++++++++++++-
 ui/index.jsp                          |    4 +-
 ui/scripts/instanceWizard.js          |   37 ++++++--
 ui/scripts/network.js                 |   46 ++--------
 ui/scripts/storage.js                 |   44 +++++++--
 ui/scripts/templates.js               |  134 ++++++++++++++++++++-------
 ui/scripts/ui-custom/projectSelect.js |   66 ++++++++++++++
 ui/scripts/ui-custom/projects.js      |    6 +-
 ui/scripts/ui-custom/zoneFilter.js    |   39 ++++++++
 9 files changed, 340 insertions(+), 95 deletions(-)
----------------------------------------------------------------------



[22/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2118 added delay for interface to come up in cloud-early-config In cloud-early-config ifup is taking some time to setup the interface ip So in setup_interface waiting for some time for interface to come up

Signed-off-by: Abhinandan Prateek <ap...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/59bee8d1
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/59bee8d1
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/59bee8d1

Branch: refs/heads/marvin_refactor
Commit: 59bee8d1b4d1ffff3e7e4a00788dfcd1d8eafa2a
Parents: b01f631
Author: Jayapal <ja...@citrix.com>
Authored: Fri Apr 19 17:31:19 2013 +0530
Committer: Abhinandan Prateek <ap...@apache.org>
Committed: Fri Apr 19 17:43:36 2013 +0530

----------------------------------------------------------------------
 .../debian/config/etc/init.d/cloud-early-config    |   53 +++++++--------
 1 files changed, 26 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/59bee8d1/patches/systemvm/debian/config/etc/init.d/cloud-early-config
----------------------------------------------------------------------
diff --git a/patches/systemvm/debian/config/etc/init.d/cloud-early-config b/patches/systemvm/debian/config/etc/init.d/cloud-early-config
index 3faa1bd..b8ddaf1 100755
--- a/patches/systemvm/debian/config/etc/init.d/cloud-early-config
+++ b/patches/systemvm/debian/config/etc/init.d/cloud-early-config
@@ -27,6 +27,8 @@
 # under the License.
 
 PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"
+#set -x
+#exec 3>&0 4>&1 > /var/log/test.log 2>&1
 
 # Fix haproxy directory issue
 mkdir -p /var/lib/haproxy
@@ -227,7 +229,29 @@ setup_interface() {
       ifdown $intf
       if [ "$RROUTER" != "1" -o "$1" != "2" ]
       then
-            ifup $intf
+          ifup $intf
+          timer=0
+          log_it "checking that $intf has IP "
+          while true
+          do
+              ip=$(ifconfig $intf | grep "inet addr:" | awk '{print $2}' | awk -F: '{print $2}')
+              if [ -z $ip ]
+              then
+                  sleep 1;
+                  #waiting for the interface to setup with ip
+                  log_it "waiting for $intf interface setup with ip timer=$timer"
+              else
+                  break
+              fi
+
+              if [ $timer -gt 15 ]
+              then
+                  log_it  "interface $intf is not set up with ip... exiting";
+                  break
+              fi
+
+              timer=`expr $timer + 1`
+          done
       fi
   fi
 }
@@ -392,33 +416,8 @@ setup_common() {
       gwdev="eth0"
     fi
 
-    timer=0
-    #default route add fails if we run before interface configured with ip
-    log_it "checking that $gwdev has IP before setting default route to $GW"
-    echo "checking that $gwdev has IP before setting default route to $GW"
-    while true
-    do
-      ip=$(ifconfig $gwdev | grep "inet addr:" | awk '{print $2}' | awk -F: '{print $2}')
-      if [ -z $ip ] 
-      then
-	      sleep 1;
-	      #waiting for the interface to setup with ip
-              log_it "waiting for $gwdev interface setup with ip"
-	      echo "waiting for $gwdev interface setup with ip"
-      else
-              ip route add default via $GW dev $gwdev
-	      break
-      fi
+    ip route add default via $GW dev $gwdev
 
-      if [ $timer -gt 15 ] 
-      then
-          log_it  "interface $gwdev is not set up with ip... configuring default route failed";
-          echo "interface $gwdev is not set up with ip... configuring default route failed"
-	  break
-      fi
-      timer=`expr $timer + 1`
-    done
-      
   fi
  
   # a hacking way to activate vSwitch under VMware


[18/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Merge branch 'master' into ui-mixed-zone-management


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5d05e49f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5d05e49f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5d05e49f

Branch: refs/heads/marvin_refactor
Commit: 5d05e49fa650c58301ee1b492e160e07f85e4294
Parents: dd62b3d 90e8158
Author: Brian Federle <br...@citrix.com>
Authored: Tue Apr 16 11:45:05 2013 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Tue Apr 16 11:45:05 2013 -0700

----------------------------------------------------------------------
 DISCLAIMER                                         |    7 -
 .../agent/api/DeleteSnapshotBackupCommand.java     |    6 +-
 api/src/com/cloud/async/AsyncJob.java              |    3 +-
 .../cloud/configuration/ConfigurationService.java  |    6 +
 api/src/com/cloud/event/EventTypes.java            |   12 +-
 .../cloud/exception/AffinityConflictException.java |   34 +
 api/src/com/cloud/network/Network.java             |   15 +-
 api/src/com/cloud/network/NetworkService.java      |    2 +-
 api/src/com/cloud/offering/NetworkOffering.java    |    2 +
 api/src/com/cloud/server/ManagementService.java    |    4 +-
 api/src/com/cloud/vm/DiskProfile.java              |    2 +-
 api/src/com/cloud/vm/UserVmService.java            |  183 +-
 .../apache/cloudstack/affinity/AffinityGroup.java  |   31 +
 .../affinity/AffinityGroupProcessor.java           |   49 +
 .../cloudstack/affinity/AffinityGroupResponse.java |  155 +
 .../cloudstack/affinity/AffinityGroupService.java  |   79 +
 .../affinity/AffinityGroupTypeResponse.java        |   48 +
 .../cloudstack/affinity/AffinityProcessorBase.java |   44 +
 .../org/apache/cloudstack/api/ApiConstants.java    |    6 +-
 api/src/org/apache/cloudstack/api/BaseCmd.java     |    8 +-
 .../apache/cloudstack/api/ResponseGenerator.java   |   18 +-
 .../command/admin/cluster/UpdateClusterCmd.java    |   15 +-
 .../admin/config/ListDeploymentPlannersCmd.java    |   71 +
 .../admin/offering/CreateServiceOfferingCmd.java   |    7 +
 .../admin/vlan/DedicatePublicIpRangeCmd.java       |  108 +
 .../admin/vlan/ReleasePublicIpRangeCmd.java        |   77 +
 .../command/user/address/AssociateIPAddrCmd.java   |   31 +-
 .../user/affinitygroup/CreateAffinityGroupCmd.java |  167 +
 .../user/affinitygroup/DeleteAffinityGroupCmd.java |  154 +
 .../affinitygroup/ListAffinityGroupTypesCmd.java   |   67 +
 .../user/affinitygroup/ListAffinityGroupsCmd.java  |   90 +
 .../affinitygroup/UpdateVMAffinityGroupCmd.java    |  164 +
 .../ha/gslb/CreateGlobalLoadBalancerRuleCmd.java   |    3 +
 .../api/command/user/vm/DeployVMCmd.java           |   41 +-
 .../api/response/DeploymentPlannersResponse.java   |   37 +
 .../api/response/GlobalLoadBalancerResponse.java   |    8 +
 .../cloudstack/api/response/UserVmResponse.java    |   14 +
 .../network/ExternalNetworkDeviceManager.java      |    1 +
 .../org/apache/cloudstack/query/QueryService.java  |    4 +
 .../com/cloud/bridge/service/EC2RestServlet.java   |    2 +-
 build/replace.properties                           |    1 +
 client/pom.xml                                     |   17 +-
 client/tomcatconf/applicationContext.xml.in        |   23 +-
 client/tomcatconf/commands.properties.in           |   20 +
 client/tomcatconf/componentContext.xml.in          |   20 +-
 client/tomcatconf/nonossComponentContext.xml.in    |   28 +
 client/tomcatconf/simulatorComponentContext.xml.in |   30 +-
 core/src/com/cloud/vm/VmDetailConstants.java       |    1 +
 debian/cloudstack-awsapi.install                   |   10 +-
 debian/rules                                       |   20 +-
 docs/en-US/Admin_Guide.xml                         |    2 +-
 docs/en-US/Book_Info.xml                           |    2 +-
 docs/en-US/CloudStack_Nicira_NVP_Guide.xml         |    2 +-
 docs/en-US/Developers_Guide.xml                    |    2 +-
 docs/en-US/Installation_Guide.xml                  |    2 +-
 docs/en-US/Release_Notes.xml                       | 4413 ++++++++++++++-
 docs/en-US/hypervisor-kvm-install-flow.xml         |    1 +
 docs/en-US/images/VMSnapshotButton.png             |  Bin 0 -> 967 bytes
 docs/en-US/images/revert-vm.png                    |  Bin 0 -> 860 bytes
 docs/en-US/ipv6-support.xml                        |    4 +-
 docs/en-US/virtual-machines.xml                    |    1 +
 docs/en-US/vm-snapshots.xml                        |  146 +
 .../subsystem/api/storage/CommandResult.java       |    2 +-
 .../api/storage/ObjectInDataStoreStateMachine.java |    2 +-
 .../cloud/entity/api/VMEntityManagerImpl.java      |   82 +-
 .../platform/orchestration/CloudOrchestrator.java  |   63 +-
 .../driver/AncientImageDataStoreDriverImpl.java    |   10 +-
 .../image/motion/DefaultImageMotionStrategy.java   |    4 +-
 .../cloudstack/storage/test/DirectAgentTest.java   |    4 +-
 .../test/MockHypervisorHostEndPointRpcServer.java  |   72 +
 .../test/MockHypervsiorHostEndPointRpcServer.java  |   72 -
 .../integration-test/test/resource/component.xml   |    2 +-
 .../storage/snapshot/SnapshotObject.java           |    2 +-
 .../storage/HypervisorHostEndPointRpcServer.java   |  119 +
 .../storage/HypervsiorHostEndPointRpcServer.java   |  119 -
 .../allocator/AbstractStoragePoolAllocator.java    |    2 +-
 .../allocator/ZoneWideStoragePoolAllocator.java    |    2 +-
 .../command/CreateVolumeFromBaseImageCommand.java  |    6 +-
 .../storage/datastore/DataObjectManagerImpl.java   |    6 +-
 .../provider/DataStoreProviderManagerImpl.java     |    4 +-
 .../storage/to/ImageOnPrimaryDataStoreTO.java      |   44 +
 .../storage/to/ImageOnPrimayDataStoreTO.java       |   44 -
 .../driver/DefaultPrimaryDataStoreDriverImpl.java  |    4 +-
 .../DefaultPrimaryDatastoreProviderImpl.java       |    6 +-
 .../volume/TemplateInstallStrategyImpl.java        |    6 +-
 packaging/centos63/cloud-usage.rc                  |    2 +-
 packaging/centos63/cloud.spec                      |   14 +-
 packaging/centos63/replace.properties              |    2 +-
 .../host-anti-affinity/pom.xml                     |   33 +
 .../affinity/HostAntiAffinityProcessor.java        |   93 +
 .../cloudstack/syslog/AlertsSyslogAppender.java    |    4 +-
 .../src/com/cloud/hypervisor/guru/VMwareGuru.java  |   37 +-
 .../vmware/manager/VmwareManagerImpl.java          |    3 +-
 .../hypervisor/vmware/resource/VmwareResource.java |   31 +-
 .../xen/resource/XenServerStorageResource.java     |    4 +-
 plugins/network-elements/cisco-vnmc/pom.xml        |   42 +
 .../scripts/network/cisco/assoc-asa1000v.xml       |   34 +
 .../network/cisco/associate-acl-policy-set.xml     |   37 +
 .../network/cisco/associate-dhcp-policy.xml        |   34 +
 .../network/cisco/associate-dhcp-server.xml        |   32 +
 .../network/cisco/associate-nat-policy-set.xml     |   35 +
 .../network/cisco/associate-route-policy.xml       |   33 +
 .../network/cisco/create-acl-policy-ref.xml        |   38 +
 .../network/cisco/create-acl-policy-set.xml        |   36 +
 .../scripts/network/cisco/create-acl-policy.xml    |   35 +
 .../network/cisco/create-acl-rule-for-dnat.xml     |   82 +
 .../network/cisco/create-acl-rule-for-pf.xml       |  156 +
 .../scripts/network/cisco/create-dhcp-policy.xml   |   72 +
 .../scripts/network/cisco/create-dnat-rule.xml     |   91 +
 .../network/cisco/create-edge-device-profile.xml   |   32 +
 .../cisco/create-edge-device-route-policy.xml      |   30 +
 .../network/cisco/create-edge-device-route.xml     |   35 +
 .../scripts/network/cisco/create-edge-firewall.xml |   89 +
 .../network/cisco/create-edge-security-profile.xml |   41 +
 .../network/cisco/create-egress-acl-rule.xml       |  201 +
 .../cisco/create-generic-egress-acl-rule.xml       |  122 +
 .../cisco/create-generic-ingress-acl-rule.xml      |  121 +
 .../network/cisco/create-ingress-acl-rule.xml      |  201 +
 .../scripts/network/cisco/create-ip-pool.xml       |   58 +
 .../network/cisco/create-nat-policy-ref.xml        |   38 +
 .../network/cisco/create-nat-policy-set.xml        |   37 +
 .../scripts/network/cisco/create-nat-policy.xml    |   33 +
 .../scripts/network/cisco/create-pf-rule.xml       |  166 +
 .../scripts/network/cisco/create-port-pool.xml     |   72 +
 .../network/cisco/create-source-nat-pool.xml       |   58 +
 .../network/cisco/create-source-nat-rule.xml       |  103 +
 .../scripts/network/cisco/create-tenant.xml        |   29 +
 .../scripts/network/cisco/create-vdc.xml           |   30 +
 .../network/cisco/delete-acl-policy-set.xml        |   30 +
 .../scripts/network/cisco/delete-acl-policy.xml    |   33 +
 .../scripts/network/cisco/delete-edge-firewall.xml |   30 +
 .../network/cisco/delete-edge-security-profile.xml |   38 +
 .../network/cisco/delete-nat-policy-set.xml        |   30 +
 .../scripts/network/cisco/delete-nat-policy.xml    |   33 +
 .../scripts/network/cisco/delete-rule.xml          |   31 +
 .../scripts/network/cisco/delete-tenant.xml        |   30 +
 .../scripts/network/cisco/delete-vdc.xml           |   30 +
 .../scripts/network/cisco/disassoc-asa1000v.xml    |   30 +
 .../scripts/network/cisco/list-acl-policies.xml    |   31 +
 .../scripts/network/cisco/list-children.xml        |   27 +
 .../scripts/network/cisco/list-nat-policies.xml    |   31 +
 .../network/cisco/list-policyrefs-in-policyset.xml |   31 +
 .../scripts/network/cisco/list-tenants.xml         |   26 +
 .../network/cisco/list-unassigned-asa1000v.xml     |   39 +
 .../cisco-vnmc/scripts/network/cisco/login.xml     |   20 +
 ...AssociateAsaWithLogicalEdgeFirewallCommand.java |   53 +
 .../api/CleanupLogicalEdgeFirewallCommand.java     |   43 +
 .../agent/api/ConfigureNexusVsmForAsaCommand.java  |   95 +
 .../api/CreateLogicalEdgeFirewallCommand.java      |   94 +
 .../api/commands/AddCiscoAsa1000vResourceCmd.java  |  116 +
 .../api/commands/AddCiscoVnmcResourceCmd.java      |  115 +
 .../commands/DeleteCiscoAsa1000vResourceCmd.java   |   93 +
 .../api/commands/DeleteCiscoVnmcResourceCmd.java   |   93 +
 .../commands/ListCiscoAsa1000vResourcesCmd.java    |  110 +
 .../api/commands/ListCiscoVnmcResourcesCmd.java    |  106 +
 .../response/CiscoAsa1000vResourceResponse.java    |   88 +
 .../api/response/CiscoVnmcResourceResponse.java    |   75 +
 .../cloud/network/cisco/CiscoAsa1000vDevice.java   |   39 +
 .../cloud/network/cisco/CiscoAsa1000vDeviceVO.java |  101 +
 .../cloud/network/cisco/CiscoVnmcConnection.java   |  196 +
 .../network/cisco/CiscoVnmcConnectionImpl.java     | 1415 +++++
 .../cloud/network/cisco/CiscoVnmcController.java   |   40 +
 .../cloud/network/cisco/CiscoVnmcControllerVO.java |  102 +
 .../cloud/network/cisco/NetworkAsa1000vMap.java    |   31 +
 .../cloud/network/cisco/NetworkAsa1000vMapVO.java  |   73 +
 .../com/cloud/network/dao/CiscoAsa1000vDao.java    |   33 +
 .../cloud/network/dao/CiscoAsa1000vDaoImpl.java    |   63 +
 .../src/com/cloud/network/dao/CiscoVnmcDao.java    |   32 +
 .../com/cloud/network/dao/CiscoVnmcDaoImpl.java    |   51 +
 .../cloud/network/dao/NetworkAsa1000vMapDao.java   |   28 +
 .../network/dao/NetworkAsa1000vMapDaoImpl.java     |   61 +
 .../network/element/CiscoAsa1000vService.java      |   43 +
 .../cloud/network/element/CiscoVnmcElement.java    |  928 +++
 .../network/element/CiscoVnmcElementService.java   |   42 +
 .../cloud/network/resource/CiscoVnmcResource.java  |  780 +++
 .../contrib/ssl/EasySSLProtocolSocketFactory.java  |  232 +
 .../contrib/ssl/EasyX509TrustManager.java          |  114 +
 .../network/cisco/CiscoVnmcConnectionTest.java     |  248 +
 .../network/element/CiscoVnmcElementTest.java      |  401 ++
 .../network/resource/CiscoVnmcResourceTest.java    |  285 +
 .../dns-notifier/resources/components-example.xml  |    2 +-
 .../element/F5ExternalLoadBalancerElement.java     |   15 +-
 .../element/JuniperSRXExternalFirewallElement.java |   58 +-
 .../cloud/network/element/NetscalerElement.java    |    3 +-
 plugins/pom.xml                                    |    2 +
 .../CloudStackPrimaryDataStoreProviderImpl.java    |    6 +-
 server/pom.xml                                     |    2 -
 server/src/com/cloud/api/ApiDBUtils.java           |   28 +-
 server/src/com/cloud/api/ApiResponseHelper.java    |   75 +-
 .../src/com/cloud/api/query/QueryManagerImpl.java  |  177 +-
 .../com/cloud/api/query/ViewResponseHelper.java    |   20 +-
 .../cloud/api/query/dao/AffinityGroupJoinDao.java  |   37 +
 .../api/query/dao/AffinityGroupJoinDaoImpl.java    |  142 +
 .../com/cloud/api/query/dao/UserVmJoinDaoImpl.java |   27 +
 .../cloud/api/query/vo/AffinityGroupJoinVO.java    |  248 +
 .../src/com/cloud/api/query/vo/UserVmJoinVO.java   |   37 +
 server/src/com/cloud/configuration/Config.java     |    3 +
 .../cloud/configuration/ConfigurationManager.java  |    8 +-
 .../configuration/ConfigurationManagerImpl.java    |  216 +-
 .../AgentBasedConsoleProxyManager.java             |    8 +-
 .../AgentBasedConsoleProxyManager.java.orig        |  298 -
 .../src/com/cloud/consoleproxy/AgentHookBase.java  |   50 +-
 .../consoleproxy/ConsoleProxyManagerImpl.java      |   21 +-
 .../cloud/deploy/DeploymentPlanningManager.java    |   45 +
 .../deploy/DeploymentPlanningManagerImpl.java      |  106 +
 server/src/com/cloud/deploy/FirstFitPlanner.java   |   56 +-
 server/src/com/cloud/domain/dao/DomainDaoImpl.java |   11 +-
 .../cloud/network/ExteralIpAddressAllocator.java   |  165 -
 .../cloud/network/ExternalIpAddressAllocator.java  |  165 +
 server/src/com/cloud/network/IpAddrAllocator.java  |    2 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  |  317 +-
 server/src/com/cloud/network/NetworkModelImpl.java |   26 +-
 .../src/com/cloud/network/NetworkServiceImpl.java  |  109 +-
 .../com/cloud/network/rules/RulesManagerImpl.java  |   16 +-
 .../src/com/cloud/offerings/NetworkOfferingVO.java |   12 +-
 .../com/cloud/resource/ResourceManagerImpl.java    |   22 +-
 .../com/cloud/server/ConfigurationServerImpl.java  |   25 +-
 server/src/com/cloud/server/ManagementServer.java  |    3 +
 .../src/com/cloud/server/ManagementServerImpl.java |  199 +-
 .../src/com/cloud/service/ServiceOfferingVO.java   |   81 +-
 .../ConsoleProxyPasswordBasedEncryptor.java        |   99 +-
 .../src/com/cloud/servlet/ConsoleProxyServlet.java |   16 +-
 .../storage/snapshot/SnapshotManagerImpl.java      |   11 +-
 .../com/cloud/template/TemplateManagerImpl.java    |    2 +-
 .../src/com/cloud/upgrade/dao/Upgrade410to420.java |   44 +-
 server/src/com/cloud/user/AccountManagerImpl.java  |   15 +-
 server/src/com/cloud/vm/UserVmManagerImpl.java     |   73 +-
 .../com/cloud/vm/VirtualMachineManagerImpl.java    |  132 +-
 .../affinity/AffinityGroupServiceImpl.java         |  346 ++
 .../cloudstack/affinity/AffinityGroupVMMapVO.java  |   66 +
 .../cloudstack/affinity/AffinityGroupVO.java       |  114 +
 .../cloudstack/affinity/dao/AffinityGroupDao.java  |   30 +
 .../affinity/dao/AffinityGroupDaoImpl.java         |  102 +
 .../affinity/dao/AffinityGroupVMMapDao.java        |   47 +
 .../affinity/dao/AffinityGroupVMMapDaoImpl.java    |  167 +
 .../configuration/ConfigurationManagerTest.java    |  413 ++
 .../com/cloud/network/MockNetworkManagerImpl.java  |   38 +-
 .../test/com/cloud/vm/MockUserVmManagerImpl.java   |   16 +-
 .../cloud/vpc/MockConfigurationManagerImpl.java    |   25 +-
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |   54 +-
 .../affinity/AffinityApiTestConfiguration.java     |  344 ++
 .../cloudstack/affinity/AffinityApiUnitTest.java   |  187 +
 .../networkoffering/ChildTestConfiguration.java    |    7 +-
 .../networkoffering/CreateNetworkOfferingTest.java |    1 -
 server/test/resources/affinityContext.xml          |   47 +
 server/test/resources/network-mgr-component.xml    |    2 +-
 .../ConsoleProxyPasswordBasedEncryptor.java        |  253 +-
 setup/db/db/schema-410to420.sql                    |  277 +-
 test/integration/component/test_asa1000v_fw.py     |  134 +
 test/integration/smoke/test_ScaleVm.py             |    4 +-
 test/integration/smoke/test_affinity_groups.py     |  194 +
 test/integration/smoke/test_iso.py                 |    3 +-
 test/integration/smoke/test_network.py             |    4 +-
 test/integration/smoke/test_public_ip_range.py     |  173 +
 test/integration/smoke/test_routers.py             |    2 +-
 test/integration/smoke/test_templates.py           |    3 +-
 test/integration/smoke/test_vm_life_cycle.py       |    2 +-
 test/integration/smoke/test_volumes.py             |   55 +-
 tools/apidoc/gen_toc.py                            |    4 +-
 tools/build/build_asf.sh                           |   12 +-
 tools/build/build_docs.sh                          |   19 +-
 tools/cli/cloudmonkey/requester.py                 |    4 +-
 tools/marvin/marvin/integration/lib/base.py        |  122 +-
 ui/css/cloudstack3.css                             |    6 +-
 ui/index.jsp                                       |    2 +-
 ui/scripts/cloudStack.js                           |    4 +-
 ui/scripts/dashboard.js                            |    2 +-
 ui/scripts/instances.js                            |   29 +-
 ui/scripts/network.js                              |   10 +-
 ui/scripts/regions.js                              |  169 +-
 ui/scripts/sharedFunctions.js                      |   28 +-
 ui/scripts/system.js                               |    5 +-
 ui/scripts/ui-custom/regions.js                    |    2 +-
 ui/scripts/ui/widgets/listView.js                  |    6 +-
 usage/pom.xml                                      |    5 +
 usage/src/com/cloud/usage/UsageServer.java         |   16 +-
 utils/src/com/cloud/utils/SerialVersionUID.java    |    1 +
 .../cloud/utils/cisco/n1kv/vsm/NetconfHelper.java  |   22 +
 .../com/cloud/utils/cisco/n1kv/vsm/VsmCommand.java |  213 +
 .../cloud/utils/component/ComponentContext.java    |    4 +-
 .../hypervisor/vmware/mo/HypervisorHostHelper.java |   45 +-
 281 files changed, 21503 insertions(+), 2184 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d05e49f/ui/css/cloudstack3.css
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d05e49f/ui/index.jsp
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5d05e49f/ui/scripts/network.js
----------------------------------------------------------------------


[25/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2103: correcting documentation to reflect /var/log/cloudstack instead of /var/log/cloud for new installations

Signed-off-by: Chip Childers <ch...@gmail.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/99cbe3af
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/99cbe3af
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/99cbe3af

Branch: refs/heads/marvin_refactor
Commit: 99cbe3aff42d43ddc656bac5df07d1d209e7fd42
Parents: b59e578
Author: Chip Childers <ch...@gmail.com>
Authored: Fri Apr 19 14:35:12 2013 +0100
Committer: Chip Childers <ch...@gmail.com>
Committed: Fri Apr 19 14:35:12 2013 +0100

----------------------------------------------------------------------
 .../troubleshooting-working-with-server-logs.xml   |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99cbe3af/docs/en-US/troubleshooting-working-with-server-logs.xml
----------------------------------------------------------------------
diff --git a/docs/en-US/troubleshooting-working-with-server-logs.xml b/docs/en-US/troubleshooting-working-with-server-logs.xml
index 1017bf5..fa0f78c 100644
--- a/docs/en-US/troubleshooting-working-with-server-logs.xml
+++ b/docs/en-US/troubleshooting-working-with-server-logs.xml
@@ -24,10 +24,10 @@
 
 <section id="troubleshooting-working-with-server-logs">
     <title>Working with Server Logs</title>
-    <para>The &PRODUCT; Management Server logs all web site, middle tier, and database activities for diagnostics purposes in /var/log/cloud/management/.  The &PRODUCT; logs a variety of error messages.  We recommend this command to find the problematic output in the Management Server log:.</para>
+    <para>The &PRODUCT; Management Server logs all web site, middle tier, and database activities for diagnostics purposes in /var/log/cloudstack/management/.  The &PRODUCT; logs a variety of error messages.  We recommend this command to find the problematic output in the Management Server log:.</para>
     <note><para>When copying and pasting a command, be sure the command has pasted as a single line before executing. Some document viewers may introduce unwanted line breaks in copied text.</para></note>
     <programlisting>
-        grep -i -E 'exception|unable|fail|invalid|leak|warn|error' /var/log/cloud/management/management-server.log
+        grep -i -E 'exception|unable|fail|invalid|leak|warn|error' /var/log/cloudstack/management/management-server.log
     </programlisting>
     <para>The &PRODUCT; processes requests with a Job ID. If you find an error in the logs and you are interested in debugging the issue you can grep for this job ID in the management server log. For example, suppose that you find the following ERROR message:</para>
     <programlisting>
@@ -37,5 +37,5 @@
     <programlisting>
         grep "job-1076)" management-server.log
     </programlisting>
-    <para>The &PRODUCT; Agent Server logs its activities in /var/log/cloud/agent/.</para>
+    <para>The &PRODUCT; Agent Server logs its activities in /var/log/cloudstack/agent/.</para>
 </section>


[13/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2038: cloudstack UI - mixed zone management - template menu - register ISO action - populate zone dropdown upon selected zone type on top menu.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9e392d25
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9e392d25
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9e392d25

Branch: refs/heads/marvin_refactor
Commit: 9e392d25ba38b04f62a7f61b39ffb26676c5fd09
Parents: 2431c81
Author: Jessica Wang <je...@citrix.com>
Authored: Mon Apr 15 16:05:01 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Mon Apr 15 16:05:01 2013 -0700

----------------------------------------------------------------------
 ui/scripts/templates.js |   36 ++++++++++++++++++++++++++----------
 1 files changed, 26 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9e392d25/ui/scripts/templates.js
----------------------------------------------------------------------
diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js
index f579c50..b924841 100644
--- a/ui/scripts/templates.js
+++ b/ui/scripts/templates.js
@@ -877,16 +877,32 @@
                         url: createURL("listZones&available=true"),
                         dataType: "json",
                         async: true,
-                        success: function(json) {
-                          var zoneObjs = json.listzonesresponse.zone;
-                          var items = [];
-                          if (isAdmin() && !(cloudStack.context.projects &&
-                                              cloudStack.context.projects[0]))
-                            items.push({id: -1, description: "All Zones"});
-                          $(zoneObjs).each(function() {
-                            items.push({id: this.id, description: this.name});
-                          });
-                          args.response.success({data: items});
+                        success: function(json) {													
+													var zoneObjs;
+							            if(args.context.zoneType == null || args.context.zoneType == '') { //all types
+														zoneObjs = [];
+														var items = json.listzonesresponse.zone;
+														if(items != null) {
+															for(var i = 0; i < items.length; i++) {																
+																zoneObjs.push({id: items[i].id, description: items[i].name});		
+															}
+														}
+													}
+													else { //Basic type or Advanced type
+														zoneObjs = [];
+														var items = json.listzonesresponse.zone;
+														if(items != null) {
+															for(var i = 0; i < items.length; i++) {
+																if(items[i].networktype == args.context.zoneType) {
+																  zoneObjs.push({id: items[i].id, description: items[i].name});																	
+																}
+															}
+														}
+													}		
+													if (isAdmin() && !(cloudStack.context.projects && cloudStack.context.projects[0])){
+                            zoneObjs.unshift({id: -1, description: "All Zones"});
+                          }																										
+													args.response.success({data: zoneObjs});  
                         }
                       });
                     }


[14/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2038: cloudstack UI - mixed zone management - template menu - copy template action - populate zone dropdown upon selected zone type on top menu.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6c2f2d3a
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6c2f2d3a
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6c2f2d3a

Branch: refs/heads/marvin_refactor
Commit: 6c2f2d3a9de1d255854afcce8bd2fc3519696498
Parents: 9e392d2
Author: Jessica Wang <je...@citrix.com>
Authored: Mon Apr 15 16:35:07 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Mon Apr 15 16:35:07 2013 -0700

----------------------------------------------------------------------
 ui/scripts/templates.js |   30 +++++++++++++++++++++++-------
 1 files changed, 23 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6c2f2d3a/ui/scripts/templates.js
----------------------------------------------------------------------
diff --git a/ui/scripts/templates.js b/ui/scripts/templates.js
index b924841..c1e01c1 100644
--- a/ui/scripts/templates.js
+++ b/ui/scripts/templates.js
@@ -547,13 +547,29 @@
                           dataType: "json",
                           async: true,
                           success: function(json) {
-                            var zoneObjs = json.listzonesresponse.zone;
-                            var items = [];
-                            $(zoneObjs).each(function() {
-                              if(this.id != args.context.templates[0].zoneid)
-                                items.push({id: this.id, description: this.name});
-                            });
-                            args.response.success({data: items});
+														var zoneObjs = [];
+														var items = json.listzonesresponse.zone;														
+														if(args.context.zoneType == null || args.context.zoneType == '') { //all types
+														  if(items != null) {
+																for(var i = 0; i < items.length; i++) {																																	
+																	if(items[i].id != args.context.templates[0].zoneid) { //destination zone must be different from source zone
+																		zoneObjs.push({id: items[i].id, description: items[i].name});
+																	}																	
+																}
+															}
+														}
+														else {	//Basic type or Advanced type													
+															if(items != null) {
+																for(var i = 0; i < items.length; i++) {
+																	if(items[i].networktype == args.context.zoneType) {	//type must be matched													
+																		if(items[i].id != args.context.templates[0].zoneid) { //destination zone must be different from source zone
+																			zoneObjs.push({id: items[i].id, description: items[i].name});
+																		}
+																	}
+																}
+															}
+														}
+                            args.response.success({data: zoneObjs});
                           }
                         });
                       }


[43/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
correcting the zone reference in scalevm test

Signed-off-by: Prasanna Santhanam <ts...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4a0b05a0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4a0b05a0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4a0b05a0

Branch: refs/heads/marvin_refactor
Commit: 4a0b05a0b21557029559c5498fbb026cbe135d58
Parents: dc87d93
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sun Apr 21 16:54:45 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sun Apr 21 16:54:45 2013 +0530

----------------------------------------------------------------------
 test/integration/smoke/test_scale_vm.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4a0b05a0/test/integration/smoke/test_scale_vm.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_scale_vm.py b/test/integration/smoke/test_scale_vm.py
index 81a477e..64fe4dc 100644
--- a/test/integration/smoke/test_scale_vm.py
+++ b/test/integration/smoke/test_scale_vm.py
@@ -105,7 +105,7 @@ class TestScaleVm(cloudstackTestCase):
         # Get Zone, Domain and templates
         domain = get_domain(cls.api_client, cls.services)
         zone = get_zone(cls.api_client, cls.services)
-        cls.services['mode'] = cls.zone.networktype
+        cls.services['mode'] = zone.networktype
 
         template = get_template(
                             cls.api_client,


[09/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
CLOUDSTACK-2038: cloudstack UI - mixed zone management - network menu - show different sections upon selected zone type on top menu.


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f85ab8a2
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f85ab8a2
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f85ab8a2

Branch: refs/heads/marvin_refactor
Commit: f85ab8a26b48a022b1f025ce35a9b9a12c7dac04
Parents: d146f3d
Author: Jessica Wang <je...@citrix.com>
Authored: Mon Apr 15 14:34:14 2013 -0700
Committer: Jessica Wang <je...@citrix.com>
Committed: Mon Apr 15 14:34:14 2013 -0700

----------------------------------------------------------------------
 ui/scripts/network.js |   27 ++-------------------------
 1 files changed, 2 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f85ab8a2/ui/scripts/network.js
----------------------------------------------------------------------
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index 6c31192..dfb9f10 100755
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -281,29 +281,7 @@
     id: 'network',
     sectionSelect: {
       preFilter: function(args) {
-        var havingSecurityGroupNetwork = false;
-        var havingBasicZones = false;
-        var havingAdvancedZones = true;
-
-        // Get zone types
-        $.ajax({
-          url: createURL('listZones'),
-          async: false,
-          success: function(json) {
-            var zones = json.listzonesresponse.zone ?
-                  json.listzonesresponse.zone : [];
-            var basicZones = $.grep(zones, function(zone) {
-              return zone.networktype == 'Basic';
-            });
-            var advancedZones = $.grep(zones, function(zone) {
-              return zone.networktype == 'Advanced';
-            });
-
-            
-            havingBasicZones = basicZones.length ? true : false;
-            havingAdvancedZones = advancedZones.length ? true : false;    
-      }
-        });
+        var havingSecurityGroupNetwork = false;           
         
         $.ajax({
           url: createURL('listNetworks', { ignoreProject: true }),
@@ -322,11 +300,10 @@
 
         var sectionsToShow = ['networks'];
 
-        if (havingAdvancedZones) {
+        if(args.context.zoneType != 'Basic') { //Advanced type or all types				
           sectionsToShow.push('vpc');
           sectionsToShow.push('vpnCustomerGateway');
         }
-
         
         if(havingSecurityGroupNetwork == true)
           sectionsToShow.push('securityGroups');


[37/49] git commit: updated refs/heads/marvin_refactor to 0b5fe9a

Posted by ts...@apache.org.
Temporarely disabing vpc test as some part of it requires connection to the real DB. Will re-enable after fixing the problem


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/39abaf64
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/39abaf64
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/39abaf64

Branch: refs/heads/marvin_refactor
Commit: 39abaf645258bc6fb75022850b2bfce0a7e7ae6f
Parents: 2857234
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Fri Apr 19 12:41:56 2013 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Fri Apr 19 12:42:42 2013 -0700

----------------------------------------------------------------------
 server/pom.xml |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/39abaf64/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index 7249c55..8b64335 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -157,6 +157,7 @@
             <exclude>com/cloud/network/vpn/RemoteAccessVpnTest.java</exclude>
             <exclude>com/cloud/network/security/SecurityGroupManagerImpl2Test.java</exclude>
             <exclude>com/cloud/network/security/SecurityGroupManagerImpl2Test.java</exclude>
+            <exclude>com/cloud/vpc/*</exclude>
           </excludes>
         </configuration>
       </plugin>