cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mc...@apache.org
Subject [49/50] [abbrv] Merge branch 'master' into object_store.
Date Fri, 24 May 2013 01:01:55 GMT
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/98af4240/server/src/com/cloud/vm/VirtualMachineProfileImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/vm/VirtualMachineProfileImpl.java
index c4e8822,e777d5e..033daf3
--- a/server/src/com/cloud/vm/VirtualMachineProfileImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineProfileImpl.java
@@@ -16,14 -16,7 +16,14 @@@
  // under the License.
  package com.cloud.vm;
  
 -import com.cloud.agent.api.to.VolumeTO;
 +import java.util.ArrayList;
 +import java.util.HashMap;
 +import java.util.List;
 +import java.util.Map;
 +
 +
 +import com.cloud.agent.api.to.DiskTO;
- import com.cloud.agent.api.to.VolumeTO;
++
  import com.cloud.hypervisor.Hypervisor.HypervisorType;
  import com.cloud.offering.ServiceOffering;
  import com.cloud.service.ServiceOfferingVO;
@@@ -40,7 -38,7 +40,7 @@@ import com.cloud.user.dao.AccountDao
   *
   */
  public class VirtualMachineProfileImpl<T extends VMInstanceVO> implements VirtualMachineProfile<T>
{
--    
++
      T _vm;
      ServiceOfferingVO _offering;
      VMTemplateVO _template;
@@@ -55,7 -53,7 +55,7 @@@
      Float memoryOvercommitRatio = 1.0f;
  
      VirtualMachine.Type _type;
--    
++
      public VirtualMachineProfileImpl(T vm, VMTemplateVO template, ServiceOfferingVO offering,
Account owner, Map<Param, Object> params) {
          _vm = vm;
          _template = template;
@@@ -68,25 -66,25 +68,25 @@@
          if (vm != null)
          	_type = vm.getType();
      }
--    
++
      public VirtualMachineProfileImpl(T vm) {
          this(vm, null, null, null, null);
      }
--    
++
      public VirtualMachineProfileImpl(VirtualMachine.Type type) {
          _type = type;
      }
--    
++
      @Override
      public String toString() {
          return _vm.toString();
      }
--    
++
      @Override
      public T getVirtualMachine() {
          return _vm;
      }
--    
++
      @Override
      public ServiceOffering getServiceOffering() {
          if (_offering == null) {
@@@ -94,17 -92,17 +94,17 @@@
          }
          return _offering;
      }
--    
++
      @Override
      public void setParameter(Param name, Object value) {
          _params.put(name, value);
      }
--    
--    @Override 
++
++    @Override
      public void setBootLoaderType(BootloaderType bootLoader) {
      	this._bootloader = bootLoader;
      }
--    
++
      @Override
      public VirtualMachineTemplate getTemplate() {
          if (_template == null && _vm != null) {
@@@ -112,7 -110,7 +112,7 @@@
          }
          return _template;
      }
--    
++
      @Override
      public HypervisorType getHypervisorType() {
          return _vm.getHypervisorType();
@@@ -132,7 -130,7 +132,7 @@@
      public long getId() {
          return _vm.getId();
      }
--    
++
      @Override
      public String getUuid() {
  	return _vm.getUuid();
@@@ -141,48 -139,48 +141,48 @@@
      public void setNics(List<NicProfile> nics) {
          _nics = nics;
      }
--    
 -    public void setDisks(List<VolumeTO> disks) {
++
 +    public void setDisks(List<DiskTO> disks) {
          _disks = disks;
      }
--    
++
      @Override
      public List<NicProfile> getNics() {
          return _nics;
      }
--    
++
      @Override
 -    public List<VolumeTO> getDisks() {
 +    public List<DiskTO> getDisks() {
          return _disks;
      }
--    
++
      @Override
      public void addNic(int index, NicProfile nic) {
          _nics.add(index, nic);
      }
--    
++
      @Override
 -    public void addDisk(int index, VolumeTO disk) {
 +    public void addDisk(int index, DiskTO disk) {
          _disks.add(index, disk);
      }
--    
++
      @Override
      public StringBuilder getBootArgsBuilder() {
          return _bootArgs;
      }
--    
++
      @Override
      public void addBootArgs(String... args) {
          for (String arg : args) {
              _bootArgs.append(arg).append(" ");
          }
      }
--    
++
      @Override
      public VirtualMachine.Type getType() {
          return _type;
      }
--    
++
      @Override
      public Account getOwner() {
          if (_owner == null) {
@@@ -190,12 -188,12 +190,12 @@@
          }
          return _owner;
      }
--    
++
      @Override
      public String getBootArgs() {
          return _bootArgs.toString();
      }
--    
++
      static ServiceOfferingDao s_offeringDao;
      static VMTemplateDao s_templateDao;
      static AccountDao s_accountDao;
@@@ -219,12 -217,12 +219,12 @@@
      public Object getParameter(Param name) {
          return _params.get(name);
      }
--    
++
      @Override
      public String getHostName() {
          return _vm.getHostName();
      }
--    
++
      @Override
      public String getInstanceName() {
          return _vm.getInstanceName();
@@@ -234,28 -232,29 +234,29 @@@
  	public BootloaderType getBootLoaderType() {
  		return this._bootloader;
  	}
--	
++
  	@Override
  	public Map<Param, Object> getParameters() {
  	    return _params;
  	}
  
 -    public void setServiceOffering(ServiceOfferingVO offering) {
 -        _offering = offering;
 -    }
 +	public void setServiceOffering(ServiceOfferingVO offering) {
 +		_offering = offering;
 +	}
  
-     public void setcpuOvercommitRatio(Float cpuOvercommitRatio){
-         this.cpuOvercommitRatio= cpuOvercommitRatio;
+     public void setCpuOvercommitRatio(Float cpuOvercommitRatio) {
+         this.cpuOvercommitRatio = cpuOvercommitRatio;
  
      }
  
-     public void setramOvercommitRatio(Float memoryOvercommitRatio){
-         this.memoryOvercommitRatio= memoryOvercommitRatio;
+     public void setMemoryOvercommitRatio(Float memoryOvercommitRatio) {
+         this.memoryOvercommitRatio = memoryOvercommitRatio;
  
      }
+ 
      @Override
-    public Float getCpuOvercommitRatio(){
+     public Float getCpuOvercommitRatio() {
 -        return this.cpuOvercommitRatio;
 +        return  this.cpuOvercommitRatio;
      }
  
      @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/98af4240/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
----------------------------------------------------------------------
diff --cc server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
index f5cf442,f862a2a..df15ceb
--- a/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
+++ b/server/test/org/apache/cloudstack/networkoffering/ChildTestConfiguration.java
@@@ -19,6 -19,12 +19,12 @@@ package org.apache.cloudstack.networkof
  
  import java.io.IOException;
  
++
+ import org.apache.cloudstack.acl.SecurityChecker;
+ import org.apache.cloudstack.region.PortableIpDaoImpl;
+ import org.apache.cloudstack.region.dao.RegionDaoImpl;
 -import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
+ import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl;
+ import org.apache.cloudstack.test.utils.SpringUtils;
  import org.mockito.Mockito;
  import org.springframework.context.annotation.Bean;
  import org.springframework.context.annotation.ComponentScan;
@@@ -29,11 -35,6 +35,7 @@@ import org.springframework.core.type.cl
  import org.springframework.core.type.classreading.MetadataReaderFactory;
  import org.springframework.core.type.filter.TypeFilter;
  
- import org.apache.cloudstack.acl.SecurityChecker;
 +import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
- import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDaoImpl;
- import org.apache.cloudstack.test.utils.SpringUtils;
- 
  import com.cloud.agent.AgentManager;
  import com.cloud.alert.AlertManager;
  import com.cloud.api.query.dao.UserAccountJoinDaoImpl;
@@@ -350,11 -357,7 +358,11 @@@ public class ChildTestConfiguration 
          return Mockito.mock(AccountDetailsDao.class);
      }
  
 -    
 +    @Bean
 +    public DataStoreManager dataStoreManager() {
 +        return Mockito.mock(DataStoreManager.class);
 +    }
-     
++
      public static class Library implements TypeFilter {
  
          @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/98af4240/setup/db/db/schema-410to420.sql
----------------------------------------------------------------------
diff --cc setup/db/db/schema-410to420.sql
index 5ddf3b6,885eff4..fd2ac56
--- a/setup/db/db/schema-410to420.sql
+++ b/setup/db/db/schema-410to420.sql
@@@ -526,7 -393,16 +526,16 @@@ CREATE TABLE `cloud`.`vm_snapshots` 
  ALTER TABLE `cloud`.`hypervisor_capabilities` ADD COLUMN `vm_snapshot_enabled` tinyint(1)
DEFAULT 0 NOT NULL COMMENT 'Whether VM snapshot is supported by hypervisor';
  UPDATE `cloud`.`hypervisor_capabilities` SET `vm_snapshot_enabled`=1 WHERE `hypervisor_type`
in ('VMware', 'XenServer');
  
+ CREATE TABLE `cloud`.`service_offering_details` (
+   `id` bigint unsigned NOT NULL auto_increment,
+   `service_offering_id` bigint unsigned NOT NULL COMMENT 'service offering id',
+   `name` varchar(255) NOT NULL,
+   `value` varchar(255) NOT NULL,
+   PRIMARY KEY (`id`),
+   CONSTRAINT `fk_service_offering_details__service_offering_id` FOREIGN KEY (`service_offering_id`)
REFERENCES `service_offering`(`id`) ON DELETE CASCADE,
+   CONSTRAINT UNIQUE KEY `uk_service_offering_id_name` (`service_offering_id`, `name`)
+ ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 -
 +      
  DROP VIEW IF EXISTS `cloud`.`user_vm_view`;
  CREATE VIEW `cloud`.`user_vm_view` AS
      select 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/98af4240/test/integration/smoke/test_volumes.py
----------------------------------------------------------------------
diff --cc test/integration/smoke/test_volumes.py
index f29410d,89b013a..60fbb80
--- a/test/integration/smoke/test_volumes.py
+++ b/test/integration/smoke/test_volumes.py
@@@ -347,8 -344,9 +345,9 @@@ class TestVolumes(cloudstackTestCase)
                          cls.custom_resized_disk_offering,
                          cls.service_offering,
                          cls.disk_offering,
+                         cls.volume,
                          cls.account
 -        ]
 +                        ]
  
      @classmethod
      def tearDownClass(cls):

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/98af4240/tools/apidoc/gen_toc.py
----------------------------------------------------------------------
diff --cc tools/apidoc/gen_toc.py
index c01bf47,793f720..5d7e3be
--- a/tools/apidoc/gen_toc.py
+++ b/tools/apidoc/gen_toc.py
@@@ -141,12 -141,9 +141,13 @@@ known_categories = 
      'removeIpFromNic': 'Nic',
      'listNics':'Nic',
  	'AffinityGroup': 'Affinity Group',
 +    'addImageStore': 'Image Store',
 +    'listImageStore': 'Image Store',
 +    'deleteImageStore': 'Image Store',
 +    'createCacheStore': 'Image Store',
      'InternalLoadBalancer': 'Internal LB',
  	'DeploymentPlanners': 'Configuration',
+     'PortableIp': 'Portable IP'
      }
  
  

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/98af4240/ui/scripts/system.js
----------------------------------------------------------------------
diff --cc ui/scripts/system.js
index 76f797c,2e23fc4..c62229c
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@@ -2708,7 -2708,363 +2708,363 @@@
                }
              }
            },
 -			       
 +			
+           InternalLbVm: {
+             id: 'InternalLbVm',
+             label: 'InternalLbVm',
+             isMaximized: true,
+             type: 'detailView',
+             fields: {
+               name: { label: 'label.name' },
+               ipaddress: { label: 'label.ip.address' },
+               state: { label: 'label.status', indicator: { 'Enabled': 'on' } }
+             },
+             tabs: {
+               network: {
+                 title: 'label.network',
+                 fields: [
+                   {
+                     name: { label: 'label.name' }
+                   },
+                   {
+                     id: { label: 'label.id' },
+                     state: { label: 'label.state' },
+                     physicalnetworkid: { label: 'label.physical.network.ID' },
+                     destinationphysicalnetworkid: { label: 'label.destination.physical.network.id'
},
+                     supportedServices: { label: 'label.supported.services' }
+                   }
+                 ],
+                 dataProvider: function(args) {    
+                   refreshNspData("InternalLbVm");                  
+                   args.response.success({
+                     actionFilter: virtualRouterProviderActionFilter,
+                     data: $.extend(nspMap["InternalLbVm"], {
+                       supportedServices: nspMap["InternalLbVm"].servicelist.join(', ')
+                     })
+                   });   
+                 }
+               },
+ 
+               instances: {
+                 title: 'label.instances',
+                 listView: {
+                   label: 'label.virtual.appliances',
+                   id: 'internallbinstances',
+                   fields: {
+                     name: { label: 'label.name' },
+                     zonename: { label: 'label.zone' },
+                     routerType: {
+                       label: 'label.type'
+                     },
+                     state: {
+                       converter: function(str) {
+                         // For localization
+                         return str;
+                       },
+                       label: 'label.status',
+                       indicator: {
+                         'Running': 'on',
+                         'Stopped': 'off',
+                         'Error': 'off'
+                       }
+                     }
+                   },
+                   dataProvider: function(args) {
+                     var array1 = [];
+                     if(args.filterBy != null) {
+                       if(args.filterBy.search != null && args.filterBy.search.by
!= null && args.filterBy.search.value != null) {
+                         switch(args.filterBy.search.by) {
+                         case "name":
+                           if(args.filterBy.search.value.length > 0)
+                             array1.push("&keyword=" + args.filterBy.search.value);
+                           break;
+                         }
+                       }
+                     }
+                                                  
+                     var routers = [];
+                     $.ajax({
+                       url: createURL("listInternalLoadBalancerVMs&zoneid=" + selectedZoneObj.id
+ "&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("")),
+                       success: function(json) {
+                         var items = json.listinternallbvmssresponse.internalloadbalancervm
?
+                             json.listinternallbvmssresponse.internalloadbalancervm : [];
+ 
+                         $(items).map(function(index, item) {
+                           routers.push(item); 
+                         });
+ 
+                         // Get project routers
+                         $.ajax({
+                           url: createURL("listInternalLoadBalancerVMs&zoneid=" + selectedZoneObj.id
+ "&listAll=true&page=" + args.page + "&pagesize=" + pageSize + array1.join("")
+ "&projectid=-1"),
+                           success: function(json) {
+                             var items = json.listinternallbvmssresponse.internalloadbalancervm
?
+                                 json.listinternallbvmssresponse.internalloadbalancervm :
[];
+                             
+                             $(items).map(function(index, item) {
+                               routers.push(item); 
+                             });
+                             args.response.success({
+                               actionFilter: internallbinstanceActionfilter,
+                               data: $(routers).map(mapRouterType)
+                             });
+                           }
+                         });
+                       }
+                     });
+                   },
+                   detailView: {
+                     name: 'Virtual applicance details',
+                     actions: {
+                       start: {
+                         label: 'Start LB VM',
+                         messages: {
+                           confirm: function(args) {
+                             return 'Please confirm you want to start LB VM';
+                           },
+                           notification: function(args) {
+                             return 'Start LB VM';
+                           }
+                         },
+                         action: function(args) {                         
+                           $.ajax({
+                             url: createURL('startInternalLoadBalancerVM&id=' + args.context.internallbinstances[0].id),
+                             dataType: 'json',
+                             async: true,
+                             success: function(json) {                        
+                               var jid = json.startinternallbvmresponse.jobid;
+                               args.response.success({
+                                 _custom: {
+                                   jobId: jid,
+                                   getUpdatedItem: function(json) {                     
       
+                                     return json.queryasyncjobresultresponse.jobresult.internalloadbalancervm;
+                                   },
+                                   getActionFilter: function() {
+                                     return internallbinstanceActionfilter;
+                                   }
+                                 }
+                               });
+                             }
+                           });
+                         },
+                         notification: {
+                           poll: pollAsyncJobResult
+                         }
+                       },
+ 
+                       stop: {
+                         label: 'Stop LB VM',
+                         createForm: {
+                           title: 'Please confirm you want to stop LB VM',
+                           desc: 'Stop LB VM',
+                           fields: {
+                             forced: {
+                               label: 'force.stop',
+                               isBoolean: true,
+                               isChecked: false
+                             }
+                           }
+                         },
+                         messages: {
+                           notification: function(args) {
+                             return 'Stop LB VM';
+                           }
+                         },
+                         action: function(args) {
+                           var array1 = [];
+                           array1.push("&forced=" + (args.data.forced == "on"));    
                   
+                           $.ajax({
+                             url: createURL('stopInternalLoadBalancerVM&id=' + args.context.internallbinstances[0].id
+ array1.join("")),
+                             dataType: 'json',
+                             async: true,
+                             success: function(json) {
+                               var jid = json.stopinternallbvmresponse.jobid;
+                               args.response.success({
+                                 _custom: {
+                                   jobId: jid,
+                                   getUpdatedItem: function(json) {                     
   
+                                     return json.queryasyncjobresultresponse.jobresult.internalloadbalancervm;
+                                   },
+                                   getActionFilter: function() {
+                                     return internallbinstanceActionfilter;
+                                   }
+                                 }
+                               });
+                             }
+                           });
+                         },
+                         notification: {
+                           poll: pollAsyncJobResult
+                         }
+                       }            
+                     },
+                     tabs: {
+                       details: {
+                         title: 'label.details',
+                         preFilter: function(args) {
+                           var hiddenFields = [];
+                           if (!args.context.internallbinstances[0].project) {
+                             hiddenFields.push('project');
+                             hiddenFields.push('projectid');
+                           }
+                           if(selectedZoneObj.networktype == 'Basic') {
+                             hiddenFields.push('publicip'); //In Basic zone, guest IP is
public IP. So, publicip is not returned by listRouters API. Only guestipaddress is returned
by listRouters API.
+                           }
+                           return hiddenFields;
+                         },
+                         fields: [
+                           {
+                             name: { label: 'label.name' },
+                             project: { label: 'label.project' }
+                           },
+                           {
+                             id: { label: 'label.id' },
+                             projectid: { label: 'label.project.id' },
+                             state: { label: 'label.state' },
+                             guestnetworkid: { label: 'label.network.id' },
+                             publicip: { label: 'label.public.ip' },
+                             guestipaddress: { label: 'label.guest.ip' },
+                             linklocalip: { label: 'label.linklocal.ip' },
+                             hostname: { label: 'label.host' },
+                             serviceofferingname: { label: 'label.compute.offering' },
+                             networkdomain: { label: 'label.network.domain' },
+                             domain: { label: 'label.domain' },
+                             account: { label: 'label.account' },
+                             created: { label: 'label.created', converter: cloudStack.converters.toLocalDate
},
+                             isredundantrouter: {
+                               label: 'label.redundant.router',
+                               converter: cloudStack.converters.toBooleanText
+                             },
+                             redundantRouterState: { label: 'label.redundant.state' }
+                           }
+                         ],
+                         dataProvider: function(args) {        
+                           $.ajax({
+                             url: createURL("listInternalLoadBalancerVMs&id=" + args.context.internallbinstances[0].id),
+                             dataType: 'json',
+                             async: true,
+                             success: function(json) {
+                               var jsonObj = json.listinternallbvmssresponse.internalloadbalancervm[0];
                        
+                               addExtraPropertiesToRouterInstanceObject(jsonObj);       
                      
+                               args.response.success({
+                                 actionFilter: internallbinstanceActionfilter,
+                                 data: jsonObj
+                               });
+                             }
+                           });   
+                         }
+                       },
+                       nics: {
+                         title: 'label.nics',
+                         multiple: true,
+                         fields: [
+                           {
+                             name: { label: 'label.name', header: true },
+                             type: { label: 'label.type' },
+                             traffictype: { label: 'label.traffic.type' },
+                             networkname: { label: 'label.network.name' },
+                             netmask: { label: 'label.netmask' },
+                             ipaddress: { label: 'label.ip.address' },
+                             id: { label: 'label.id' },
+                             networkid: { label: 'label.network.id' },
+                             isolationuri: { label: 'label.isolation.uri' },
+                             broadcasturi: { label: 'label.broadcast.uri' }
+                           }
+                         ],
+                         dataProvider: function(args) {
+                           $.ajax({
+                             url: createURL("listInternalLoadBalancerVMs&id=" + args.context.internallbinstances[0].id),
+                             dataType: 'json',
+                             async: true,
+                             success: function(json) {                         
+                               var jsonObj = json.listinternallbvmssresponse.internalloadbalancervm[0].nic;
+ 
+                               args.response.success({
+                                 actionFilter: internallbinstanceActionfilter,
+                                 data: $.map(jsonObj, function(nic, index) {
+                                   var name = 'NIC ' + (index + 1);                    
+                                   if (nic.isdefault) {
+                                     name += ' (' + _l('label.default') + ')';
+                                   }
+                                   return $.extend(nic, {
+                                     name: name
+                                   });
+                                 })
+                               });
+                             }
+                           });
+                         }
+                       }
+                     }
+                   }
+                 }
+               }
+             },
+             actions: {
+               enable: {
+                 label: 'label.enable.provider',
+                 action: function(args) {
+                   $.ajax({
+                     url: createURL("updateNetworkServiceProvider&id=" + nspMap["InternalLbVm"].id
+ "&state=Enabled"),
+                     dataType: "json",
+                     success: function(json) {
+                       var jid = json.updatenetworkserviceproviderresponse.jobid;
+                       args.response.success(
+                         {_custom:
+                           {
+                             jobId: jid,
+                             getUpdatedItem: function(json) {
+                               $(window).trigger('cloudStack.fullRefresh');
+                             }
+                           }
+                         }
+                       );
+                     }
+                   });
+                 },
+                 messages: {
+                   confirm: function(args) {
+                     return 'message.confirm.enable.provider';
+                   },
+                   notification: function() {
+                     return 'label.enable.provider';
+                   }
+                 },
+                 notification: { poll: pollAsyncJobResult }
+               },
+               disable: {
+                 label: 'label.disable.provider',
+                 action: function(args) {
+                   $.ajax({
+                     url: createURL("updateNetworkServiceProvider&id=" + nspMap["InternalLbVm"].id
+ "&state=Disabled"),
+                     dataType: "json",
+                     success: function(json) {
+                       var jid = json.updatenetworkserviceproviderresponse.jobid;
+                       args.response.success(
+                         {_custom:
+                           {
+                             jobId: jid,
+                             getUpdatedItem: function(json) {
+                               $(window).trigger('cloudStack.fullRefresh');
+                             }
+                           }
+                         }
+                       );
+                     }
+                   });
+                 },
+                 messages: {
+                   confirm: function(args) {
+                     return 'message.confirm.disable.provider';
+                   },
+                   notification: function() {
+                     return 'label.disable.provider';
+                   }
+                 },
+                 notification: { poll: pollAsyncJobResult }
+               }
+             }
+           },
+               
  					vpcVirtualRouter: {
              id: 'vpcVirtualRouterProviders',
              label: 'VPC Virtual Router',
@@@ -12355,7 -12376,20 +12711,20 @@@
      }
      return allowedActions;
    }
 -  
 +
+   var internallbinstanceActionfilter = function(args) {
+     var jsonObj = args.context.item;
+     var allowedActions = [];
+ 
+     if (jsonObj.state == 'Running') {
+       allowedActions.push("stop");
+     }
+     else if (jsonObj.state == 'Stopped') {
+       allowedActions.push("start");      
+     }
+     return allowedActions;
+   }
+     
    var systemvmActionfilter = function(args) {
      var jsonObj = args.context.item;
      var allowedActions = [];
@@@ -12513,7 -12550,16 +12885,16 @@@
                      state: nspMap.midoNet? nspMap.midoNet.state : 'Disabled'
                  }
              );
+      	 
+ 		  nspHardcodingArray.push(
+         {
+           id: 'InternalLbVm',
+           name: 'InternalLbVm',
+           state: nspMap.InternalLbVm ? nspMap.InternalLbVm.state : 'Disabled'
+         }
+       );    
+ 		  		  
 -		  nspHardcodingArray.push(
 +            nspHardcodingArray.push(
                  {
  					id: 'vpcVirtualRouter',
  					name: 'VPC Virtual Router',

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


Mime
View raw message