cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bhais...@apache.org
Subject [11/50] [abbrv] git commit: Get latest changes, merge branch 'master' into api_refactoring
Date Wed, 09 Jan 2013 04:37:25 GMT
Get latest changes, merge branch 'master' into api_refactoring

Conflicts:
	api/src/com/cloud/network/element/RemoteAccessVPNServiceProvider.java
	server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
	server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
	setup/db/db/schema-40to410.sql

Signed-off-by: Rohit Yadav <bhaisaab@apache.org>


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

Branch: refs/heads/master
Commit: 5119785cf74c0412f46b72320e193e5eef5f876e
Parents: dea8227 3d9dc36
Author: Rohit Yadav <bhaisaab@apache.org>
Authored: Fri Jan 4 22:21:20 2013 -0800
Committer: Rohit Yadav <bhaisaab@apache.org>
Committed: Fri Jan 4 22:21:20 2013 -0800

----------------------------------------------------------------------
 api/src/com/cloud/agent/api/to/FirewallRuleTO.java |    1 +
 api/src/com/cloud/agent/api/to/LoadBalancerTO.java |   12 +-
 .../com/cloud/agent/api/to/StaticNatRuleTO.java    |    5 +
 api/src/com/cloud/network/Network.java             |    1 +
 api/src/com/cloud/network/element/IpDeployer.java  |    3 +
 .../network/element/IpDeployingRequester.java      |   28 ++
 .../element/LoadBalancingServiceProvider.java      |    3 +-
 .../element/PortForwardingServiceProvider.java     |    4 +-
 .../element/RemoteAccessVPNServiceProvider.java    |    4 +-
 .../network/element/SourceNatServiceProvider.java  |    5 +-
 .../network/element/StaticNatServiceProvider.java  |    4 +-
 api/src/com/cloud/offering/NetworkOffering.java    |    1 +
 .../network/lb/ElasticLoadBalancerManagerImpl.java |    2 +-
 .../cloud/api/response/F5LoadBalancerResponse.java |    7 -
 .../element/F5ExternalLoadBalancerElement.java     |   16 +-
 .../cloud/network/resource/F5BigIpResource.java    |   94 ++---
 .../element/JuniperSRXExternalFirewallElement.java |   21 +-
 .../cloud/network/resource/JuniperSrxResource.java |  239 ++++++++++-
 .../response/NetscalerLoadBalancerResponse.java    |    7 -
 .../cloud/network/element/NetscalerElement.java    |   33 +-
 .../network/juniper/firewall-filter-term-add.xml   |   43 ++
 .../juniper/firewall-filter-term-getone.xml        |   32 ++
 scripts/network/juniper/template-entry.xml         |   21 +
 server/src/com/cloud/api/ApiResponseHelper.java    |    5 +
 .../configuration/ConfigurationManagerImpl.java    |   23 +-
 .../network/ExternalFirewallDeviceManager.java     |    9 +
 .../network/ExternalFirewallDeviceManagerImpl.java |  185 +++++++--
 .../ExternalLoadBalancerDeviceManagerImpl.java     |  320 +++++++++------
 .../network/ExternalLoadBalancerDeviceVO.java      |   18 +-
 .../cloud/network/InlineLoadBalancerNicMapVO.java  |   10 +-
 server/src/com/cloud/network/NetworkManager.java   |   11 +
 .../src/com/cloud/network/NetworkManagerImpl.java  |  214 +++++++----
 .../com/cloud/network/dao/FirewallRulesDao.java    |    4 +-
 .../cloud/network/dao/FirewallRulesDaoImpl.java    |   15 +
 .../network/lb/LoadBalancingRulesManagerImpl.java  |   16 +-
 .../router/VirtualNetworkApplianceManagerImpl.java |    4 +-
 .../src/com/cloud/offerings/NetworkOfferingVO.java |   11 +-
 .../com/cloud/server/ConfigurationServerImpl.java  |    2 +-
 .../com/cloud/network/MockNetworkManagerImpl.java  |   35 ++
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |   33 ++
 setup/db/create-schema.sql                         |    4 +-
 setup/db/db/schema-40to410.sql                     |    9 +-
 42 files changed, 1133 insertions(+), 381 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/agent/api/to/FirewallRuleTO.java
index 1f963ec,8ce3def..95ac57c
--- a/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
+++ b/api/src/com/cloud/agent/api/to/FirewallRuleTO.java
@@@ -54,11 -53,12 +54,12 @@@ public class FirewallRuleTO implements 
  
      protected FirewallRuleTO() {
      }
 -    
 +
      public FirewallRuleTO(long id, String srcIp, String protocol, Integer srcPortStart,
Integer srcPortEnd, boolean revoked, boolean alreadyAdded, FirewallRule.Purpose purpose, List<String>
sourceCidr,Integer icmpType,Integer icmpCode) {
         this(id,null,srcIp,protocol,srcPortStart,srcPortEnd,revoked,alreadyAdded,purpose,sourceCidr,icmpType,icmpCode);
 -    } 
 +    }
      public FirewallRuleTO(long id,String srcVlanTag, String srcIp, String protocol, Integer
srcPortStart, Integer srcPortEnd, boolean revoked, boolean alreadyAdded, FirewallRule.Purpose
purpose, List<String> sourceCidr,Integer icmpType,Integer icmpCode) {
+         this.id = id;
          this.srcVlanTag = srcVlanTag;
          this.srcIp = srcIp;
          this.protocol = protocol;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/api/src/com/cloud/agent/api/to/StaticNatRuleTO.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/api/src/com/cloud/network/Network.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/api/src/com/cloud/network/element/LoadBalancingServiceProvider.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/api/src/com/cloud/network/element/RemoteAccessVPNServiceProvider.java
----------------------------------------------------------------------
diff --cc api/src/com/cloud/network/element/RemoteAccessVPNServiceProvider.java
index 43daa14,b4c54cb..4625d22
--- a/api/src/com/cloud/network/element/RemoteAccessVPNServiceProvider.java
+++ b/api/src/com/cloud/network/element/RemoteAccessVPNServiceProvider.java
@@@ -27,8 -27,6 +27,6 @@@ public interface RemoteAccessVPNService
      String[] applyVpnUsers(RemoteAccessVpn vpn, List<? extends VpnUser> users) throws
ResourceUnavailableException;
  
      boolean startVpn(Network network, RemoteAccessVpn vpn) throws ResourceUnavailableException;
 -    
 +
      boolean stopVpn(Network network, RemoteAccessVpn vpn) throws ResourceUnavailableException;
- 
-     IpDeployer getIpDeployer(Network network);
  }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/api/src/com/cloud/offering/NetworkOffering.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/plugins/network-elements/elastic-loadbalancer/src/com/cloud/network/lb/ElasticLoadBalancerManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/plugins/network-elements/f5/src/com/cloud/api/response/F5LoadBalancerResponse.java
----------------------------------------------------------------------
diff --cc plugins/network-elements/f5/src/com/cloud/api/response/F5LoadBalancerResponse.java
index 9f6d645,275fca6..19e6726
--- a/plugins/network-elements/f5/src/com/cloud/api/response/F5LoadBalancerResponse.java
+++ b/plugins/network-elements/f5/src/com/cloud/api/response/F5LoadBalancerResponse.java
@@@ -46,12 -43,9 +46,9 @@@ public class F5LoadBalancerResponse ext
      @SerializedName(ApiConstants.LOAD_BALANCER_DEVICE_DEDICATED) @Param(description="true
if device is dedicated for an account")
      private Boolean dedicatedLoadBalancer;
  
-     @SerializedName(ApiConstants.INLINE) @Param(description="true if device is inline with
firewall device")
-     private Boolean inlineLoadBalancer;
- 
      @SerializedName(ApiConstants.PUBLIC_INTERFACE) @Param(description="the public interface
of the load balancer")
      private String publicInterface;
 -    
 +
      @SerializedName(ApiConstants.PRIVATE_INTERFACE) @Param(description="the private interface
of the load balancer")
      private String privateInterface;
  

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/plugins/network-elements/netscaler/src/com/cloud/api/response/NetscalerLoadBalancerResponse.java
----------------------------------------------------------------------
diff --cc plugins/network-elements/netscaler/src/com/cloud/api/response/NetscalerLoadBalancerResponse.java
index 2c0e90b,7bc70dc..40be29e
--- a/plugins/network-elements/netscaler/src/com/cloud/api/response/NetscalerLoadBalancerResponse.java
+++ b/plugins/network-elements/netscaler/src/com/cloud/api/response/NetscalerLoadBalancerResponse.java
@@@ -50,12 -49,9 +50,9 @@@ public class NetscalerLoadBalancerRespo
      @SerializedName(ApiConstants.LOAD_BALANCER_DEVICE_DEDICATED) @Param(description="true
if device is dedicated for an account")
      private Boolean dedicatedLoadBalancer;
  
-     @SerializedName(ApiConstants.INLINE) @Param(description="true if device is inline with
firewall device")
-     private Boolean inlineLoadBalancer;
- 
      @SerializedName(ApiConstants.PUBLIC_INTERFACE) @Param(description="the public interface
of the load balancer")
      private String publicInterface;
 -    
 +
      @SerializedName(ApiConstants.PRIVATE_INTERFACE) @Param(description="the private interface
of the load balancer")
      private String privateInterface;
  

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/configuration/ConfigurationManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
index 553dc50,4b67840..1ad5fdc
--- a/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
+++ b/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
@@@ -58,9 -61,13 +60,10 @@@ import com.cloud.host.Host
  import com.cloud.host.HostVO;
  import com.cloud.host.dao.HostDao;
  import com.cloud.host.dao.HostDetailsDao;
 -import com.cloud.network.ExternalFirewallDeviceVO.FirewallDeviceState;
 -import com.cloud.network.ExternalNetworkDeviceManager.NetworkDevice;
 -import com.cloud.network.Network.Capability;
 -import com.cloud.network.Network.Service;
 +import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
  import com.cloud.network.Networks.TrafficType;
  import com.cloud.network.dao.ExternalFirewallDeviceDao;
+ import com.cloud.network.dao.FirewallRulesDao;
  import com.cloud.network.dao.IPAddressDao;
  import com.cloud.network.dao.InlineLoadBalancerNicMapDao;
  import com.cloud.network.dao.LoadBalancerDao;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
----------------------------------------------------------------------
diff --cc server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
index 42cd694,c37d53f..d9c4fd1
--- a/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
+++ b/server/src/com/cloud/network/ExternalLoadBalancerDeviceManagerImpl.java
@@@ -63,7 -63,8 +63,8 @@@ import com.cloud.host.dao.HostDao
  import com.cloud.host.dao.HostDetailsDao;
  import com.cloud.network.ExternalLoadBalancerDeviceVO.LBDeviceAllocationState;
  import com.cloud.network.ExternalLoadBalancerDeviceVO.LBDeviceState;
 -import com.cloud.network.ExternalNetworkDeviceManager.NetworkDevice;
 +import org.apache.cloudstack.network.ExternalNetworkDeviceManager.NetworkDevice;
+ import com.cloud.network.Network.Provider;
  import com.cloud.network.Network.Service;
  import com.cloud.network.Networks.TrafficType;
  import com.cloud.network.addr.PublicIp;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/network/ExternalLoadBalancerDeviceVO.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/network/InlineLoadBalancerNicMapVO.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/network/lb/LoadBalancingRulesManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/src/com/cloud/offerings/NetworkOfferingVO.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/test/com/cloud/network/MockNetworkManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/setup/db/create-schema.sql
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5119785c/setup/db/db/schema-40to410.sql
----------------------------------------------------------------------
diff --cc setup/db/db/schema-40to410.sql
index 18e1ceb,5245a49..a66fd7a
--- a/setup/db/db/schema-40to410.sql
+++ b/setup/db/db/schema-40to410.sql
@@@ -66,834 -69,6 +69,836 @@@ ALTER TABLE `sync_queue` ADD `queue_siz
  
  ALTER TABLE `sync_queue_item` ADD `queue_proc_time` DATETIME NOT NULL COMMENT 'when processing
started for the item' AFTER `queue_proc_number`;
  
+ ALTER TABLE `cloud`.`inline_load_balancer_nic_map` DROP FOREIGN KEY fk_inline_load_balancer_nic_map__load_balancer_id;
+ 
+ ALTER TABLE `cloud`.`inline_load_balancer_nic_map` DROP COLUMN load_balancer_id;
++
 +ALTER TABLE upload ADD uuid VARCHAR(40);
 +ALTER TABLE async_job modify job_cmd VARCHAR(255);
 +
 +-- populate uuid column with db id if uuid is null
 +UPDATE `cloud`.`account` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`alert` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`async_job` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`cluster` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`data_center` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`disk_offering` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`domain` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`event` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`external_firewall_devices` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`external_load_balancer_devices` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`external_nicira_nvp_devices` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`firewall_rules` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`guest_os` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`guest_os_category` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`host` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`host_pod_ref` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`hypervisor_capabilities` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`instance_group` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`load_balancer_stickiness_policies` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`network_external_firewall_device_map` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`network_external_lb_device_map` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`network_offerings` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`networks` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`nics` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`physical_network` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`physical_network_service_providers` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`physical_network_traffic_types` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`port_profile` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`project_invitations` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`projects` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`resource_tags` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`s2s_customer_gateway` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`s2s_vpn_connection` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`s2s_vpn_gateway` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`security_group` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`security_group_rule` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`snapshot_schedule` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`snapshots` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`static_routes` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`storage_pool` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`swift` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`upload` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`user` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`user_ip_address` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`user_vm_temp` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`virtual_router_providers` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`virtual_supervisor_module` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`vlan` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`vm_instance` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`vm_template` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`vpc` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`vpc_gateways` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`vpc_offerings` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`vpn_users` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`volumes` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`autoscale_vmgroups` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`autoscale_vmprofiles` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`autoscale_policies` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`counter` set uuid=id WHERE uuid is NULL;
 +UPDATE `cloud`.`conditions` set uuid=id WHERE uuid is NULL;
 +
 +
 +--- DB views for list api ---
 +DROP VIEW IF EXISTS `cloud`.`user_vm_view`;
 +CREATE VIEW `cloud`.`user_vm_view` AS
 +select
 +vm_instance.id id,
 +vm_instance.name name,
 +user_vm.display_name display_name,
 +user_vm.user_data user_data,
 +account.id account_id,
 +account.uuid account_uuid,
 +account.account_name account_name,
 +account.type account_type,
 +domain.id domain_id,
 +domain.uuid domain_uuid,
 +domain.name domain_name,
 +domain.path domain_path,
 +projects.id project_id,
 +projects.uuid project_uuid,
 +projects.name project_name,
 +instance_group.id instance_group_id,
 +instance_group.uuid instance_group_uuid,
 +instance_group.name instance_group_name,
 +vm_instance.uuid uuid,
 +vm_instance.last_host_id last_host_id,
 +vm_instance.vm_type type,
 +vm_instance.vnc_password vnc_password,
 +vm_instance.limit_cpu_use limit_cpu_use,
 +vm_instance.created created,
 +vm_instance.state state,
 +vm_instance.removed removed,
 +vm_instance.ha_enabled ha_enabled,
 +vm_instance.hypervisor_type hypervisor_type,
 +vm_instance.instance_name instance_name,
 +vm_instance.guest_os_id guest_os_id,
 +guest_os.uuid guest_os_uuid,
 +vm_instance.pod_id pod_id,
 +host_pod_ref.uuid pod_uuid,
 +vm_instance.private_ip_address private_ip_address,
 +vm_instance.private_mac_address private_mac_address,
 +vm_instance.vm_type vm_type,
 +data_center.id data_center_id,
 +data_center.uuid data_center_uuid,
 +data_center.name data_center_name,
 +data_center.is_security_group_enabled security_group_enabled,
 +host.id host_id,
 +host.uuid host_uuid,
 +host.name host_name,
 +vm_template.id template_id,
 +vm_template.uuid template_uuid,
 +vm_template.name template_name,
 +vm_template.display_text template_display_text,
 +vm_template.enable_password password_enabled,
 +iso.id iso_id,
 +iso.uuid iso_uuid,
 +iso.name iso_name,
 +iso.display_text iso_display_text,
 +service_offering.id service_offering_id,
 +disk_offering.uuid service_offering_uuid,
 +service_offering.cpu cpu,
 +service_offering.speed speed,
 +service_offering.ram_size ram_size,
 +disk_offering.name service_offering_name,
 +storage_pool.id pool_id,
 +storage_pool.uuid pool_uuid,
 +storage_pool.pool_type pool_type,
 +volumes.id volume_id,
 +volumes.uuid volume_uuid,
 +volumes.device_id volume_device_id,
 +volumes.volume_type volume_type,
 +security_group.id security_group_id,
 +security_group.uuid security_group_uuid,
 +security_group.name security_group_name,
 +security_group.description security_group_description,
 +nics.id nic_id,
 +nics.uuid nic_uuid,
 +nics.network_id network_id,
 +nics.ip4_address ip_address,
 +nics.default_nic is_default_nic,
 +nics.gateway gateway,
 +nics.netmask netmask,
 +nics.mac_address mac_address,
 +nics.broadcast_uri broadcast_uri,
 +nics.isolation_uri isolation_uri,
 +vpc.id vpc_id,
 +vpc.uuid vpc_uuid,
 +networks.uuid network_uuid,
 +networks.traffic_type traffic_type,
 +networks.guest_type guest_type,
 +user_ip_address.id public_ip_id,
 +user_ip_address.uuid public_ip_uuid,
 +user_ip_address.public_ip_address public_ip_address,
 +ssh_keypairs.keypair_name keypair_name,
 +resource_tags.id tag_id,
 +resource_tags.uuid tag_uuid,
 +resource_tags.key tag_key,
 +resource_tags.value tag_value,
 +resource_tags.domain_id tag_domain_id,
 +resource_tags.account_id tag_account_id,
 +resource_tags.resource_id tag_resource_id,
 +resource_tags.resource_uuid tag_resource_uuid,
 +resource_tags.resource_type tag_resource_type,
 +resource_tags.customer tag_customer,
 +async_job.id job_id,
 +async_job.uuid job_uuid,
 +async_job.job_status job_status,
 +async_job.account_id job_account_id
 +from user_vm
 +inner join vm_instance on vm_instance.id = user_vm.id and vm_instance.removed is NULL
 +inner join account on vm_instance.account_id=account.id
 +inner join domain on vm_instance.domain_id=domain.id
 +left join guest_os on vm_instance.guest_os_id = guest_os.id
 +left join host_pod_ref on vm_instance.pod_id = host_pod_ref.id
 +left join projects on projects.project_account_id = account.id
 +left join instance_group_vm_map on vm_instance.id=instance_group_vm_map.instance_id
 +left join instance_group on instance_group_vm_map.group_id=instance_group.id
 +left join data_center on vm_instance.data_center_id=data_center.id
 +left join host on vm_instance.host_id=host.id
 +left join vm_template on vm_instance.vm_template_id=vm_template.id
 +left join vm_template iso on iso.id=user_vm.iso_id
 +left join service_offering on vm_instance.service_offering_id=service_offering.id
 +left join disk_offering  on vm_instance.service_offering_id=disk_offering.id
 +left join volumes on vm_instance.id=volumes.instance_id
 +left join storage_pool on volumes.pool_id=storage_pool.id
 +left join security_group_vm_map on vm_instance.id=security_group_vm_map.instance_id
 +left join security_group on security_group_vm_map.security_group_id=security_group.id
 +left join nics on vm_instance.id=nics.instance_id
 +left join networks on nics.network_id=networks.id
 +left join vpc on networks.vpc_id = vpc.id
 +left join user_ip_address on user_ip_address.vm_id=vm_instance.id
 +left join user_vm_details on user_vm_details.vm_id=vm_instance.id and user_vm_details.name
= "SSH.PublicKey"
 +left join ssh_keypairs on ssh_keypairs.public_key = user_vm_details.value
 +left join resource_tags on resource_tags.resource_id = vm_instance.id and resource_tags.resource_type
= "UserVm"
 +left join async_job on async_job.instance_id = vm_instance.id and async_job.instance_type
= "VirtualMachine" and async_job.job_status = 0;
 +
 +DROP VIEW IF EXISTS `cloud`.`domain_router_view`;
 +CREATE VIEW domain_router_view AS
 +select
 +vm_instance.id id,
 +vm_instance.name name,
 +account.id account_id,
 +account.uuid account_uuid,
 +account.account_name account_name,
 +account.type account_type,
 +domain.id domain_id,
 +domain.uuid domain_uuid,
 +domain.name domain_name,
 +domain.path domain_path,
 +projects.id project_id,
 +projects.uuid project_uuid,
 +projects.name project_name,
 +vm_instance.uuid uuid,
 +vm_instance.created created,
 +vm_instance.state state,
 +vm_instance.removed removed,
 +vm_instance.pod_id pod_id,
 +vm_instance.instance_name instance_name,
 +host_pod_ref.uuid pod_uuid,
 +data_center.id data_center_id,
 +data_center.uuid data_center_uuid,
 +data_center.name data_center_name,
 +data_center.dns1 dns1,
 +data_center.dns2 dns2,
 +host.id host_id,
 +host.uuid host_uuid,
 +host.name host_name,
 +vm_template.id template_id,
 +vm_template.uuid template_uuid,
 +service_offering.id service_offering_id,
 +disk_offering.uuid service_offering_uuid,
 +disk_offering.name service_offering_name,
 +nics.id nic_id,
 +nics.uuid nic_uuid,
 +nics.network_id network_id,
 +nics.ip4_address ip_address,
 +nics.default_nic is_default_nic,
 +nics.gateway gateway,
 +nics.netmask netmask,
 +nics.mac_address mac_address,
 +nics.broadcast_uri broadcast_uri,
 +nics.isolation_uri isolation_uri,
 +vpc.id vpc_id,
 +vpc.uuid vpc_uuid,
 +networks.uuid network_uuid,
 +networks.name network_name,
 +networks.network_domain network_domain,
 +networks.traffic_type traffic_type,
 +networks.guest_type guest_type,
 +async_job.id job_id,
 +async_job.uuid job_uuid,
 +async_job.job_status job_status,
 +async_job.account_id job_account_id,
 +domain_router.template_version template_version,
 +domain_router.scripts_version scripts_version,
 +domain_router.is_redundant_router is_redundant_router,
 +domain_router.redundant_state redundant_state,
 +domain_router.stop_pending stop_pending
 +from domain_router
 +inner join vm_instance on vm_instance.id = domain_router.id
 +inner join account on vm_instance.account_id=account.id
 +inner join domain on vm_instance.domain_id=domain.id
 +left join host_pod_ref on vm_instance.pod_id = host_pod_ref.id
 +left join projects on projects.project_account_id = account.id
 +left join data_center on vm_instance.data_center_id=data_center.id
 +left join host on vm_instance.host_id=host.id
 +left join vm_template on vm_instance.vm_template_id=vm_template.id
 +left join service_offering on vm_instance.service_offering_id=service_offering.id
 +left join disk_offering  on vm_instance.service_offering_id=disk_offering.id
 +left join volumes on vm_instance.id=volumes.instance_id
 +left join storage_pool on volumes.pool_id=storage_pool.id
 +left join nics on vm_instance.id=nics.instance_id
 +left join networks on nics.network_id=networks.id
 +left join vpc on networks.vpc_id = vpc.id
 +left join async_job on async_job.instance_id = vm_instance.id and async_job.instance_type
= "DomainRouter" and async_job.job_status = 0;
 +
 +DROP VIEW IF EXISTS `cloud`.`security_group_view`;
 +CREATE VIEW security_group_view AS
 +select
 +security_group.id id,
 +security_group.name name,
 +security_group.description description,
 +security_group.uuid uuid,
 +account.id account_id,
 +account.uuid account_uuid,
 +account.account_name account_name,
 +account.type account_type,
 +domain.id domain_id,
 +domain.uuid domain_uuid,
 +domain.name domain_name,
 +domain.path domain_path,
 +projects.id project_id,
 +projects.uuid project_uuid,
 +projects.name project_name,
 +security_group_rule.id rule_id,
 +security_group_rule.uuid rule_uuid,
 +security_group_rule.type rule_type,
 +security_group_rule.start_port rule_start_port,
 +security_group_rule.end_port rule_end_port,
 +security_group_rule.protocol rule_protocol,
 +security_group_rule.allowed_network_id rule_allowed_network_id,
 +security_group_rule.allowed_ip_cidr rule_allowed_ip_cidr,
 +security_group_rule.create_status rule_create_status,
 +resource_tags.id tag_id,
 +resource_tags.uuid tag_uuid,
 +resource_tags.key tag_key,
 +resource_tags.value tag_value,
 +resource_tags.domain_id tag_domain_id,
 +resource_tags.account_id tag_account_id,
 +resource_tags.resource_id tag_resource_id,
 +resource_tags.resource_uuid tag_resource_uuid,
 +resource_tags.resource_type tag_resource_type,
 +resource_tags.customer tag_customer,
 +async_job.id job_id,
 +async_job.uuid job_uuid,
 +async_job.job_status job_status,
 +async_job.account_id job_account_id
 +from security_group
 +left join security_group_rule on security_group.id = security_group_rule.security_group_id
 +inner join account on security_group.account_id=account.id
 +inner join domain on security_group.domain_id=domain.id
 +left join projects on projects.project_account_id = security_group.account_id
 +left join resource_tags on resource_tags.resource_id = security_group.id and resource_tags.resource_type
= "SecurityGroup"
 +left join async_job on async_job.instance_id = security_group.id and async_job.instance_type
= "SecurityGroup" and async_job.job_status = 0;
 +
 +DROP VIEW IF EXISTS `cloud`.`resource_tag_view`;
 +CREATE VIEW resource_tag_view AS
 +select
 +resource_tags.id,
 +resource_tags.uuid,
 +resource_tags.key,
 +resource_tags.value,
 +resource_tags.resource_id,
 +resource_tags.resource_uuid,
 +resource_tags.resource_type,
 +resource_tags.customer,
 +account.id account_id,
 +account.uuid account_uuid,
 +account.account_name account_name,
 +account.type account_type,
 +domain.id domain_id,
 +domain.uuid domain_uuid,
 +domain.name domain_name,
 +domain.path domain_path,
 +projects.id project_id,
 +projects.uuid project_uuid,
 +projects.name project_name
 +from resource_tags
 +inner join account on resource_tags.account_id=account.id
 +inner join domain on resource_tags.domain_id=domain.id
 +left join projects on projects.project_account_id = resource_tags.account_id;
 +
 +
 +DROP VIEW IF EXISTS `cloud`.`event_view`;
 +CREATE VIEW event_view AS
 +select
 +event.id,
 +event.uuid,
 +event.type,
 +event.state,
 +event.description,
 +event.created,
 +event.level,
 +event.parameters,
 +event.start_id,
 +eve.uuid start_uuid,
 +event.user_id,
 +user.username user_name,
 +account.id account_id,
 +account.uuid account_uuid,
 +account.account_name account_name,
 +account.type account_type,
 +domain.id domain_id,
 +domain.uuid domain_uuid,
 +domain.name domain_name,
 +domain.path domain_path,
 +projects.id project_id,
 +projects.uuid project_uuid,
 +projects.name project_name
 +from event
 +inner join account on event.account_id=account.id
 +inner join domain on event.domain_id=domain.id
 +inner join user on event.user_id = user.id
 +left join projects on projects.project_account_id = event.account_id
 +left join event eve on event.start_id = eve.id;
 +
 +DROP VIEW IF EXISTS `cloud`.`instance_group_view`;
 +CREATE VIEW instance_group_view AS
 +select
 +instance_group.id,
 +instance_group.uuid,
 +instance_group.name,
 +instance_group.removed,
 +instance_group.created,
 +account.id account_id,
 +account.uuid account_uuid,
 +account.account_name account_name,
 +account.type account_type,
 +domain.id domain_id,
 +domain.uuid domain_uuid,
 +domain.name domain_name,
 +domain.path domain_path,
 +projects.id project_id,
 +projects.uuid project_uuid,
 +projects.name project_name
 +from instance_group
 +inner join account on instance_group.account_id=account.id
 +inner join domain on account.domain_id=domain.id
 +left join projects on projects.project_account_id = instance_group.account_id;
 +
 +DROP VIEW IF EXISTS `cloud`.`user_view`;
 +CREATE VIEW user_view AS
 +select 
 +user.id,
 +user.uuid,
 +user.username,
 +user.password,
 +user.firstname,
 +user.lastname,
 +user.email,
 +user.state,
 +user.api_key,
 +user.secret_key,
 +user.created,
 +user.removed,
 +user.timezone,
 +user.registration_token,
 +user.is_registered,
 +user.incorrect_login_attempts,
 +account.id account_id, 
 +account.uuid account_uuid,
 +account.account_name account_name,
 +account.type account_type,
 +domain.id domain_id, 
 +domain.uuid domain_uuid,
 +domain.name domain_name, 
 +domain.path domain_path,
 +async_job.id job_id,
 +async_job.uuid job_uuid,
 +async_job.job_status job_status,
 +async_job.account_id job_account_id
 +from user 
 +inner join account on user.account_id = account.id
 +inner join domain on account.domain_id=domain.id
 +left join async_job on async_job.instance_id = user.id and async_job.instance_type = "User"
and async_job.job_status = 0;
 +
 +
 +DROP VIEW IF EXISTS `cloud`.`project_view`;
 +CREATE VIEW project_view AS
 +select
 +projects.id,
 +projects.uuid,
 +projects.name,
 +projects.display_text,
 +projects.state,
 +projects.removed,
 +projects.created,
 +account.account_name owner,
 +pacct.account_id,
 +domain.id domain_id,
 +domain.uuid domain_uuid,
 +domain.name domain_name,
 +domain.path domain_path,
 +resource_tags.id tag_id,
 +resource_tags.uuid tag_uuid,
 +resource_tags.key tag_key,
 +resource_tags.value tag_value,
 +resource_tags.domain_id tag_domain_id,
 +resource_tags.account_id tag_account_id,
 +resource_tags.resource_id tag_resource_id,
 +resource_tags.resource_uuid tag_resource_uuid,
 +resource_tags.resource_type tag_resource_type,
 +resource_tags.customer tag_customer
 +from projects
 +inner join domain on projects.domain_id=domain.id
 +inner join project_account on projects.id = project_account.project_id and project_account.account_role
= "Admin"
 +inner join account on account.id = project_account.account_id
 +left join resource_tags on resource_tags.resource_id = projects.id and resource_tags.resource_type
= "Project"
 +left join project_account pacct on projects.id = pacct.project_id;
 +
 +DROP VIEW IF EXISTS `cloud`.`project_account_view`;
 +CREATE VIEW project_account_view AS
 +select
 +project_account.id,
 +account.id account_id,
 +account.uuid account_uuid,
 +account.account_name,
 +account.type account_type,
 +project_account.account_role,
 +projects.id project_id,
 +projects.uuid project_uuid,
 +projects.name project_name,
 +domain.id domain_id,
 +domain.uuid domain_uuid,
 +domain.name domain_name,
 +domain.path domain_path
 +from project_account
 +inner join account on project_account.account_id = account.id
 +inner join domain on account.domain_id=domain.id
 +inner join projects on projects.id = project_account.project_id;
 +
 +DROP VIEW IF EXISTS `cloud`.`project_invitation_view`;
 +CREATE VIEW project_invitation_view AS
 +select
 +project_invitations.id,
 +project_invitations.uuid,
 +project_invitations.email,
 +project_invitations.created,
 +project_invitations.state,
 +projects.id project_id,
 +projects.uuid project_uuid,
 +projects.name project_name,
 +account.id account_id,
 +account.uuid account_uuid,
 +account.account_name,
 +account.type account_type,
 +domain.id domain_id,
 +domain.uuid domain_uuid,
 +domain.name domain_name,
 +domain.path domain_path
 +from project_invitations
 +left join account on project_invitations.account_id = account.id
 +left join domain on project_invitations.domain_id=domain.id
 +left join projects on projects.id = project_invitations.project_id;
 +
 +DROP VIEW IF EXISTS `cloud`.`host_view`;
 +CREATE VIEW host_view AS
 +select 
 +host.id,
 +host.uuid,
 +host.name,
 +host.status,
 +host.disconnected,
 +host.type,
 +host.private_ip_address,
 +host.version,
 +host.hypervisor_type,
 +host.hypervisor_version,
 +host.capabilities,
 +host.last_ping,
 +host.created,
 +host.removed,
 +host.resource_state,
 +host.mgmt_server_id,
 +host.cpus,
 +host.speed,
 +host.ram,
 +cluster.id cluster_id,
 +cluster.uuid cluster_uuid,
 +cluster.name cluster_name,
 +cluster.cluster_type,
 +data_center.id data_center_id, 
 +data_center.uuid data_center_uuid,
 +data_center.name data_center_name, 
 +host_pod_ref.id pod_id, 
 +host_pod_ref.uuid pod_uuid,
 +host_pod_ref.name pod_name,
 +host_tags.tag,
 +guest_os_category.id guest_os_category_id,
 +guest_os_category.uuid guest_os_category_uuid,
 +guest_os_category.name guest_os_category_name,
 +mem_caps.used_capacity memory_used_capacity,
 +mem_caps.reserved_capacity memory_reserved_capacity,
 +cpu_caps.used_capacity cpu_used_capacity,
 +cpu_caps.reserved_capacity cpu_reserved_capacity,
 +async_job.id job_id,
 +async_job.uuid job_uuid,
 +async_job.job_status job_status,
 +async_job.account_id job_account_id
 +from host 
 +left join cluster on host.cluster_id = cluster.id
 +left join data_center on host.data_center_id = data_center.id
 +left join host_pod_ref on host.pod_id = host_pod_ref.id
 +left join host_details on host.id = host_details.id and host_details.name = "guest.os.category.id"
 +left join guest_os_category on guest_os_category.id = CONVERT( host_details.value, UNSIGNED
)
 +left join host_tags on host_tags.host_id = host.id
 +left join op_host_capacity mem_caps on host.id = mem_caps.host_id and mem_caps.capacity_type
= 0
 +left join op_host_capacity cpu_caps on host.id = cpu_caps.host_id and cpu_caps.capacity_type
= 1
 +left join async_job on async_job.instance_id = host.id and async_job.instance_type = "Host"
and async_job.job_status = 0;
 +
 +DROP VIEW IF EXISTS `cloud`.`volume_view`;
 +CREATE VIEW volume_view AS
 +select 
 +volumes.id,
 +volumes.uuid,
 +volumes.name,
 +volumes.device_id,
 +volumes.volume_type,
 +volumes.size,
 +volumes.created,
 +volumes.state,
 +volumes.attached,
 +volumes.removed,
 +volumes.pod_id,
 +account.id account_id, 
 +account.uuid account_uuid,
 +account.account_name account_name,
 +account.type account_type,
 +domain.id domain_id, 
 +domain.uuid domain_uuid,
 +domain.name domain_name, 
 +domain.path domain_path,
 +projects.id project_id,
 +projects.uuid project_uuid,
 +projects.name project_name,
 +data_center.id data_center_id, 
 +data_center.uuid data_center_uuid,
 +data_center.name data_center_name, 
 +vm_instance.id vm_id,
 +vm_instance.uuid vm_uuid,
 +vm_instance.name vm_name,
 +vm_instance.state vm_state,
 +vm_instance.vm_type,
 +user_vm.display_name vm_display_name,
 +volume_host_ref.size volume_host_size,
 +volume_host_ref.created volume_host_created,
 +volume_host_ref.format,
 +volume_host_ref.download_pct,
 +volume_host_ref.download_state,
 +volume_host_ref.error_str,
 +disk_offering.id disk_offering_id,
 +disk_offering.uuid disk_offering_uuid,
 +disk_offering.name disk_offering_name,
 +disk_offering.display_text disk_offering_display_text,
 +disk_offering.use_local_storage,
 +disk_offering.system_use,
 +storage_pool.id pool_id,
 +storage_pool.uuid pool_uuid,
 +storage_pool.name pool_name,
 +cluster.hypervisor_type,
 +vm_template.id template_id,
 +vm_template.uuid template_uuid,
 +vm_template.extractable,
 +vm_template.type template_type,
 +resource_tags.id tag_id, 
 +resource_tags.uuid tag_uuid,
 +resource_tags.key tag_key,
 +resource_tags.value tag_value,
 +resource_tags.domain_id tag_domain_id, 
 +resource_tags.account_id tag_account_id, 
 +resource_tags.resource_id tag_resource_id, 
 +resource_tags.resource_uuid tag_resource_uuid, 
 +resource_tags.resource_type tag_resource_type, 
 +resource_tags.customer tag_customer,
 +async_job.id job_id,
 +async_job.uuid job_uuid,
 +async_job.job_status job_status,
 +async_job.account_id job_account_id
 +from volumes 
 +inner join account on volumes.account_id=account.id 
 +inner join domain on volumes.domain_id=domain.id
 +left join projects on projects.project_account_id = account.id
 +left join data_center on volumes.data_center_id = data_center.id
 +left join vm_instance on volumes.instance_id = vm_instance.id
 +left join user_vm on user_vm.id = vm_instance.id
 +left join volume_host_ref on volumes.id = volume_host_ref.volume_id and volumes.data_center_id
= volume_host_ref.zone_id
 +left join disk_offering on volumes.disk_offering_id = disk_offering.id
 +left join storage_pool on volumes.pool_id = storage_pool.id
 +left join cluster on storage_pool.cluster_id = cluster.id
 +left join vm_template on volumes.template_id = vm_template.id
 +left join resource_tags on resource_tags.resource_id = volumes.id and resource_tags.resource_type
= "Volume"
 +left join async_job on async_job.instance_id = volumes.id and async_job.instance_type =
"Volume" and async_job.job_status = 0;
 +
 +DROP VIEW IF EXISTS `cloud`.`account_netstats_view`;
 +CREATE VIEW account_netstats_view AS
 +SELECT account_id, 
 +sum(net_bytes_received)+ sum(current_bytes_received) as bytesReceived,
 +sum(net_bytes_sent)+ sum(current_bytes_sent) as bytesSent
 +FROM user_statistics
 +group by account_id;
 +
 +
 +DROP VIEW IF EXISTS `cloud`.`account_vmstats_view`;
 +CREATE VIEW account_vmstats_view AS
 +SELECT account_id, state, count(*) as vmcount
 +from vm_instance
 +group by account_id, state;
 +
 +DROP VIEW IF EXISTS `cloud`.`free_ip_view`;
 +CREATE VIEW free_ip_view AS
 +select count(user_ip_address.id) free_ip
 +from user_ip_address
 +inner join vlan on vlan.id = user_ip_address.vlan_db_id and vlan.vlan_type = "VirtualNetwork"
 +where state = "Free"
 +
 +DROP VIEW IF EXISTS `cloud`.`account_view`;
 +CREATE VIEW account_view AS
 +select 
 +account.id,
 +account.uuid,
 +account.account_name,
 +account.type,
 +account.state,
 +account.removed,
 +account.cleanup_needed,
 +account.network_domain,
 +domain.id domain_id, 
 +domain.uuid domain_uuid,
 +domain.name domain_name, 
 +domain.path domain_path,
 +data_center.id data_center_id,
 +data_center.uuid data_center_uuid,
 +data_center.name data_center_name,
 +account_netstats_view.bytesReceived,
 +account_netstats_view.bytesSent,
 +vmlimit.max vmLimit,
 +vmcount.count vmTotal,
 +runningvm.vmcount runningVms,
 +stoppedvm.vmcount stoppedVms,
 +iplimit.max ipLimit,
 +ipcount.count ipTotal,
 +free_ip_view.free_ip ipFree,
 +volumelimit.max volumeLimit,
 +volumecount.count volumeTotal,
 +snapshotlimit.max snapshotLimit,
 +snapshotcount.count snapshotTotal,
 +templatelimit.max templateLimit,
 +templatecount.count templateTotal,
 +vpclimit.max vpcLimit,
 +vpccount.count vpcTotal,
 +projectlimit.max projectLimit,
 +projectcount.count projectTotal,
 +networklimit.max networkLimit,
 +networkcount.count networkTotal,
 +async_job.id job_id,
 +async_job.uuid job_uuid,
 +async_job.job_status job_status,
 +async_job.account_id job_account_id
 +from free_ip_view, account 
 +inner join domain on account.domain_id=domain.id
 +left join data_center on account.default_zone_id = data_center.id
 +left join account_netstats_view on account.id = account_netstats_view.account_id
 +left join resource_limit vmlimit on account.id = vmlimit.account_id and vmlimit.type = "user_vm"
 +left join resource_count vmcount on account.id = vmcount.account_id and vmcount.type = "user_vm"
 +left join account_vmstats_view runningvm on account.id = runningvm.account_id and runningvm.state
= "Running"
 +left join account_vmstats_view stoppedvm on account.id = stoppedvm.account_id and stoppedvm.state
= "Stopped"
 +left join resource_limit iplimit on account.id = iplimit.account_id and iplimit.type = "public_ip"
 +left join resource_count ipcount on account.id = ipcount.account_id and ipcount.type = "public_ip"
 +left join resource_limit volumelimit on account.id = volumelimit.account_id and volumelimit.type
= "volume"
 +left join resource_count volumecount on account.id = volumecount.account_id and volumecount.type
= "volume"
 +left join resource_limit snapshotlimit on account.id = snapshotlimit.account_id and snapshotlimit.type
= "snapshot"
 +left join resource_count snapshotcount on account.id = snapshotcount.account_id and snapshotcount.type
= "snapshot"
 +left join resource_limit templatelimit on account.id = templatelimit.account_id and templatelimit.type
= "template"
 +left join resource_count templatecount on account.id = templatecount.account_id and templatecount.type
= "template"
 +left join resource_limit vpclimit on account.id = vpclimit.account_id and vpclimit.type
= "vpc"
 +left join resource_count vpccount on account.id = vpccount.account_id and vpccount.type
= "vpc"
 +left join resource_limit projectlimit on account.id = projectlimit.account_id and projectlimit.type
= "project"
 +left join resource_count projectcount on account.id = projectcount.account_id and projectcount.type
= "project"
 +left join resource_limit networklimit on account.id = networklimit.account_id and networklimit.type
= "network"
 +left join resource_count networkcount on account.id = networkcount.account_id and networkcount.type
= "network"
 +left join async_job on async_job.instance_id = account.id and async_job.instance_type =
"Account" and async_job.job_status = 0;
 +
 +DROP VIEW IF EXISTS `cloud`.`async_job_view`;
 +CREATE VIEW async_job_view AS
 +select 
 +account.id account_id, 
 +account.uuid account_uuid,
 +account.account_name account_name,
 +account.type account_type,
 +domain.id domain_id, 
 +domain.uuid domain_uuid,
 +domain.name domain_name, 
 +domain.path domain_path,
 +user.id user_id,
 +user.uuid user_uuid,
 +async_job.id,
 +async_job.uuid,
 +async_job.job_cmd,
 +async_job.job_status,
 +async_job.job_process_status,
 +async_job.job_result_code,
 +async_job.job_result,
 +async_job.created,
 +async_job.removed,
 +async_job.instance_type,
 +async_job.instance_id,
 +CASE 
 +WHEN async_job.instance_type = 'Volume' THEN volumes.uuid 
 +WHEN async_job.instance_type = 'Template' or async_job.instance_type = 'Iso' THEN vm_template.uuid
 +WHEN async_job.instance_type = 'VirtualMachine' or async_job.instance_type = 'ConsoleProxy'
or async_job.instance_type = 'SystemVm' or async_job.instance_type = 'DomainRouter' THEN vm_instance.uuid

 +WHEN async_job.instance_type = 'Snapshot' THEN snapshots.uuid 
 +WHEN async_job.instance_type = 'Host' THEN host.uuid 
 +WHEN async_job.instance_type = 'StoragePool' THEN storage_pool.uuid 
 +WHEN async_job.instance_type = 'IpAddress' THEN user_ip_address.uuid 
 +WHEN async_job.instance_type = 'SecurityGroup' THEN security_group.uuid 
 +WHEN async_job.instance_type = 'PhysicalNetwork' THEN physical_network.uuid 
 +WHEN async_job.instance_type = 'TrafficType' THEN physical_network_traffic_types.uuid 
 +WHEN async_job.instance_type = 'PhysicalNetworkServiceProvider' THEN physical_network_service_providers.uuid
 +WHEN async_job.instance_type = 'FirewallRule' THEN firewall_rules.uuid
 +WHEN async_job.instance_type = 'Account' THEN acct.uuid
 +WHEN async_job.instance_type = 'User' THEN us.uuid
 +WHEN async_job.instance_type = 'StaticRoute' THEN static_routes.uuid
 +WHEN async_job.instance_type = 'PrivateGateway' THEN vpc_gateways.uuid
 +WHEN async_job.instance_type = 'Counter' THEN counter.uuid
 +WHEN async_job.instance_type = 'Condition' THEN conditions.uuid
 +WHEN async_job.instance_type = 'AutoScalePolicy' THEN autoscale_policies.uuid
 +WHEN async_job.instance_type = 'AutoScaleVmProfile' THEN autoscale_vmprofiles.uuid
 +WHEN async_job.instance_type = 'AutoScaleVmGroup' THEN autoscale_vmgroups.uuid
 +ELSE null
 +END instance_uuid
 +from async_job
 +left join account on async_job.account_id = account.id
 +left join domain on domain.id = account.domain_id
 +left join user on async_job.user_id = user.id
 +left join volumes on async_job.instance_id = volumes.id
 +left join vm_template on async_job.instance_id = vm_template.id
 +left join vm_instance on async_job.instance_id = vm_instance.id
 +left join snapshots on async_job.instance_id = snapshots.id
 +left join host on async_job.instance_id = host.id
 +left join storage_pool on async_job.instance_id = storage_pool.id
 +left join user_ip_address on async_job.instance_id = user_ip_address.id
 +left join security_group on async_job.instance_id = security_group.id
 +left join physical_network on async_job.instance_id = physical_network.id
 +left join physical_network_traffic_types on async_job.instance_id = physical_network_traffic_types.id
 +left join physical_network_service_providers on async_job.instance_id = physical_network_service_providers.id
 +left join firewall_rules on async_job.instance_id = firewall_rules.id
 +left join account acct on async_job.instance_id = acct.id
 +left join user us on async_job.instance_id = us.id
 +left join static_routes on async_job.instance_id = static_routes.id
 +left join vpc_gateways on async_job.instance_id = vpc_gateways.id
 +left join counter on async_job.instance_id = counter.id
 +left join conditions on async_job.instance_id = conditions.id
 +left join autoscale_policies on async_job.instance_id = autoscale_policies.id
 +left join autoscale_vmprofiles on async_job.instance_id = autoscale_vmprofiles.id
 +left join autoscale_vmgroups on async_job.instance_id = autoscale_vmgroups.id;
- 
- 


Mime
View raw message