mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Separate db view creation into create-schema-view.sql.
This commit is contained in:
parent
102fcf370b
commit
32f035c9fa
@ -212,7 +212,7 @@ for full help
|
|||||||
""),
|
""),
|
||||||
)
|
)
|
||||||
|
|
||||||
for f in ["create-database","create-schema","create-database-premium","create-schema-premium"]:
|
for f in ["create-database","create-schema", "create-database-premium","create-schema-premium", "create-schema-view"]:
|
||||||
p = os.path.join(self.dbFilesPath,"%s.sql"%f)
|
p = os.path.join(self.dbFilesPath,"%s.sql"%f)
|
||||||
if not os.path.exists(p): continue
|
if not os.path.exists(p): continue
|
||||||
text = file(p).read()
|
text = file(p).read()
|
||||||
@ -359,7 +359,7 @@ for example:
|
|||||||
if not os.path.exists(dbf):
|
if not os.path.exists(dbf):
|
||||||
self.errorAndExit("Cannot find %s"%dbf)
|
self.errorAndExit("Cannot find %s"%dbf)
|
||||||
|
|
||||||
coreSchemas = ['create-database.sql', 'create-schema.sql', 'templates.sql', 'create-index-fk.sql']
|
coreSchemas = ['create-database.sql', 'create-schema.sql', 'create-schema-view.sql', 'templates.sql', 'create-index-fk.sql']
|
||||||
if not self.serversetup:
|
if not self.serversetup:
|
||||||
coreSchemas.append('server-setup.sql')
|
coreSchemas.append('server-setup.sql')
|
||||||
|
|
||||||
|
|||||||
784
setup/db/create-schema-view.sql
Executable file
784
setup/db/create-schema-view.sql
Executable file
@ -0,0 +1,784 @@
|
|||||||
|
-- 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.
|
||||||
|
use cloud;
|
||||||
|
|
||||||
|
--- 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;
|
||||||
|
|
||||||
@ -2548,771 +2548,3 @@ INSERT INTO `cloud`.`counter` (id, source, name, value,created) VALUES (100,'net
|
|||||||
|
|
||||||
SET foreign_key_checks = 1;
|
SET foreign_key_checks = 1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
--- 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;
|
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,11 @@ if [ ! -f create-index-fk.sql ]; then
|
|||||||
exit 6;
|
exit 6;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -f create-schema-view.sql ]; then
|
||||||
|
printf "Error: Unable to find create-schema-view.sql\n"
|
||||||
|
exit 7
|
||||||
|
fi
|
||||||
|
|
||||||
PATHSEP=':'
|
PATHSEP=':'
|
||||||
if [[ $OSTYPE == "cygwin" ]] ; then
|
if [[ $OSTYPE == "cygwin" ]] ; then
|
||||||
export CATALINA_HOME=`cygpath -m $CATALINA_HOME`
|
export CATALINA_HOME=`cygpath -m $CATALINA_HOME`
|
||||||
@ -100,6 +105,12 @@ if [ $? -ne 0 ]; then
|
|||||||
exit 11
|
exit 11
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
mysql --user=cloud --password=cloud cloud < create-schema-view.sql
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
printf "Error: Cannot execute create-schema-view.sql\n"
|
||||||
|
exit 11
|
||||||
|
fi
|
||||||
|
|
||||||
CP=./
|
CP=./
|
||||||
|
|
||||||
CP=${CP}$PATHSEP$CATALINA_HOME/conf
|
CP=${CP}$PATHSEP$CATALINA_HOME/conf
|
||||||
|
|||||||
@ -55,6 +55,12 @@ if [ ! -f create-index-fk.sql ]; then
|
|||||||
exit 6;
|
exit 6;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -f create-schema-view.sql ]; then
|
||||||
|
printf "Error: Unable to find create-schema-view.sql\n"
|
||||||
|
exit 7
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
PATHSEP=':'
|
PATHSEP=':'
|
||||||
if [[ $OSTYPE == "cygwin" ]] ; then
|
if [[ $OSTYPE == "cygwin" ]] ; then
|
||||||
export CATALINA_HOME=`cygpath -m $CATALINA_HOME`
|
export CATALINA_HOME=`cygpath -m $CATALINA_HOME`
|
||||||
@ -103,6 +109,12 @@ if [ $? -ne 0 ]; then
|
|||||||
exit 11
|
exit 11
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
mysql --user=cloud --password=cloud cloud < create-schema-view.sql
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
printf "Error: Cannot execute create-schema-view.sql\n"
|
||||||
|
exit 11
|
||||||
|
fi
|
||||||
|
|
||||||
mysql --user=cloud --password=cloud cloud < create-schema-simulator.sql
|
mysql --user=cloud --password=cloud cloud < create-schema-simulator.sql
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
printf "Error: Cannot execute create-schema-simulator.sql\n"
|
printf "Error: Cannot execute create-schema-simulator.sql\n"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user