select e.instance_uid::text as instance_uid e.display_name e.service_id e.descr e.specification_item_id e.is_auxiliary to_char(e.dt_created, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as instance_config_dt_created to_char(e.dt_updated, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as instance_config_dt_updated d.contract_id i.specification_id s.specification i.quantity i.price v.svc v.code v.man e.updater_id u.login as updater_login u.shortname as updater_shortname cast(st.instance_data->>'params' as json)->>'resourceRealm' as resource_realm coalesce((io.dt_start IS NOT NULL AND io.dt_finish IS NULL AND io.submit_result='201'),false) as operation_is_in_progress coalesce((io.dt_start IS NULL AND io.submit_result='201'),false) as operation_is_pending case when io.operation IN ('delete', 'suspend') AND io.is_successful then 0 /*null*/ when io.is_successful then extract('epoch' from CURRENT_TIMESTAMP - coalesce(io.dt_finish,CURRENT_TIMESTAMP)) else 0 end as uptime (case when st.instance_uid IS NULL then 'not created' when st.is_deleted = 'true' then 'deleted' when st.is_suspended = 'true' then 'suspended' /*when coalesce(st.is_deleted,'false') = 'false' AND coalesce(st.is_suspended, 'false') = 'false' then 'running'*/ when coalesce(st.is_deleted,'false') = 'false' AND coalesce(st.is_suspended, 'false') = 'false' then 'running' when io.instance_uid IS NULL then 'not configured' else null end ) as explained_status (select count(distinct r.resource_realm) from resource_realm r join resource_realm_access a on ( r.resource_realm_id=a.resource_realm_id AND (a.contract_id IN ( select contract_id from contract d where d.contragent_id=k.contragent_id AND NOT d.is_closed ) OR a.contract_id=0) /*0 means access to any contract*/ AND a.is_enabled) where r.resource_realm_type_id=v.resource_realm_type_id) as resource_realm_cnt from instance e left outer join specification_item i on (e.specification_item_id=i.specification_item_id) left outer join specification s on (i.specification_id=s.specification_id) left outer join contract d on (s.contract_id=d.contract_id) left outer join contragent k on (d.contragent_id=k.contragent_id) left outer join svc v on (e.service_id=v.svc_id) left outer join usr u on (e.updater_id=u.usr_id) left outer join (select ist.instance_state_uid, ist.instance_uid, ist.version, ist.dt_state, ist.is_test ,(ist.instance_data->>'isSuspended') as is_suspended ,(ist.instance_data->>'isDeleted') as is_deleted ,ist.instance_data from instance_state ist join (select instance_uid, max(version) as version from instance_state group by 1) lastv on (ist.instance_uid=lastv.instance_uid AND ist.version=lastv.version) ) st on (e.instance_uid=st.instance_uid) left outer join (select o.instance_operation_uid, o.instance_uid, o.operation, o.dt_submit, o.submit_result, o.dt_start, o.dt_finish, o.is_successful from instance_operation o join (select instance_uid, max(dt_submit) as dt_submit from instance_operation group by 1) lastv on (o.instance_uid=lastv.instance_uid AND o.dt_submit=lastv.dt_submit) ) io on (e.instance_uid=io.instance_uid) where e.instance_uid= AND s.specification_id= select st.instance_state_uid::text as instance_state_uid st.version st.creator_id to_char(st.dt_state, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_state st.is_test st.instance_operation_uid::text as instance_operation_uid st.instance_data->>'out' as out st.instance_data->>'params' as params st.instance_data->>'vault' as vault (st.instance_data->>'isDeleted')::boolean as is_deleted (st.instance_data->>'isSuspended')::boolean as is_suspended from instance_state st where st.instance_uid= order by st.version desc limit 1 select o.instance_operation_uid::text as instance_operation_uid status.instance_state_uid::text as instance_state_uid status.version as state_version o.operation o.resource_realm_id r.resource_realm to_char(o.dt_submit, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_submit o.submit_result to_char(o.dt_start, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_start to_char(o.dt_finish, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_finish extract('epoch' from coalesce(o.dt_finish,CURRENT_TIMESTAMP)- o.dt_start) as duration round(extract('epoch' from CURRENT_TIMESTAMP - coalesce(o.dt_finish,CURRENT_TIMESTAMP)),1) as seconds_passed o.is_successful to_char(o.dt_created, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_created o.error_log u.login as updater_login u.shortname as updater_shortname coalesce((o.dt_start IS NOT NULL AND o.dt_finish IS NULL AND o.submit_result='201'),false) as is_in_progress coalesce((o.dt_start IS NULL AND o.submit_result='201'),false) as is_pending from instance_operation o left outer join usr u on (o.updater_id=u.usr_id) left outer join resource_realm r on o.resource_realm_id=r.resource_realm_id left outer join (select instance_operation_uid, max(version) as version from instance_state group by instance_operation_uid) sts on (o.instance_operation_uid=sts.instance_operation_uid) left outer join instance_state status on (sts.instance_operation_uid=status.instance_operation_uid AND sts.version=status.version) where o.instance_uid= --order by status.version desc order by o.dt_created desc (select io.operation from instance_operation io where io.instance_uid=e.instance_uid order by dt_submit desc limit 1) as current_operation ---> select so.svc_operation_id so.operation (select instance_operation_uid::text from instance_operation io where io.instance_uid= AND io.operation=so.operation AND io.dt_submit IS NULL order by io.dt_created desc limit 1 )as instance_operation_uid from svc_operation so where so.svc_id= AND NOT so.operation='create' AND so.operation='create' AND 1=0 order by so.svc_operation_id select p.param sop.descr s.svc_id s.svc s.code sop.label p.param_value as uid r.display_name r.is_auxiliary c.contract_id c.contract to_char(c.dt_contract, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_contract k.external_code from instance_cfs_param p left outer join instance_operation_cfs_param iop on (p.instance_operation_cfs_param_uid=iop.instance_operation_cfs_param_uid) left outer join instance_operation o on (iop.instance_operation_uid=o.instance_operation_uid) left outer join instance e on (o.instance_uid=e.instance_uid) left outer join svc_operation so on (o.operation=so.operation AND e.service_id=so.svc_id) left outer join svc_operation_cfs_param sop on (so.svc_operation_id=sop.svc_operation_id AND p.param=sop.svc_operation_cfs_param) left outer join svc s on (sop.ref_svc_id=s.svc_id) join instance r on (p.param_value=r.instance_uid::text) left outer join specification_item si on (r.specification_item_id=si.specification_item_id) left outer join specification sp on (si.specification_id=sp.specification_id) left outer join contract c on (sp.contract_id=c.contract_id) left outer join contragent k on (c.contragent_id=k.contragent_id) where p.instance_uid= AND sop.ref_svc_id > 0 order by sop.sort, p.param select p.param sop.descr s.svc_id s.svc s.code sop.label e.instance_uid::text as uid e.display_name e.is_auxiliary c.contract_id c.contract to_char(c.dt_contract, 'YYYY-MM-DD"T"HH24:MI:SS.FF3TZHTZM') as dt_contract k.external_code from instance_cfs_param p left outer join instance_operation_cfs_param iop on (p.instance_operation_cfs_param_uid=iop.instance_operation_cfs_param_uid) left outer join instance_operation o on (iop.instance_operation_uid=o.instance_operation_uid) left outer join instance e on (o.instance_uid=e.instance_uid) left outer join svc s on (e.service_id=s.svc_id) left outer join svc_operation so on (o.operation=so.operation AND e.service_id=so.svc_id) left outer join svc_operation_cfs_param sop on (so.svc_operation_id=sop.svc_operation_id AND p.param=sop.svc_operation_cfs_param) left outer join svc r on (sop.ref_svc_id=r.svc_id) left outer join specification_item si on (e.specification_item_id=si.specification_item_id) left outer join specification sp on (si.specification_id=sp.specification_id) left outer join contract c on (sp.contract_id=c.contract_id) left outer join contragent k on (c.contragent_id=k.contragent_id) where p.param_value= AND r.svc_id=(select i.service_id from instance i where i.instance_uid=) select p.svc_operation_cfs_param ,p.svc_operation_cfs_param_id ,p.label ,p.descr ,p.is_sensitive ,p.data_type ,null as data_descriptor ,(select instance_operation_cfs_param_uid from instance_operation_cfs_param iop join svc_operation_cfs_param sop on (iop.svc_operation_cfs_param_id=sop.svc_operation_cfs_param_id) join instance_operation io on (iop.instance_operation_uid=io.instance_operation_uid) where sop.svc_operation_cfs_param_id=p.svc_operation_cfs_param_id AND io.instance_uid=) from svc_operation_cfs_param p join svc_operation o on (p.svc_operation_id=o.svc_operation_id) join svc on (o.svc_id=svc.svc_id) where svc.svc_id= AND o.operation='create' update instance set dt_updated= ,updater_id= ,display_name= ,descr= where instance_uid=; --select @@rowcount as cnt; select count(*) as cnt from instance e join specification_item si on (e.specification_item_id=si.specification_item_id) where e.instance_uid= AND si.specification_id= select count(*) as cnt from instance_operation io where io.dt_finish IS NULL AND io.submit_result like '2%' /*201 etc*/ AND io.instance_uid= select count(*) as cnt from instance_state st where st.instance_uid= delete from instance_state where instance_uid=; delete from instance_operation where instance_uid=; delete from instance where instance_uid=;