Example #1
0
    def __init__(self, start_ts, end_ts):
        """Build a query to get a distinct list of instance_id bewteen sart and end ts."""
        az_query = db.session.query(Hypervisor).join(AvailabilityZone).\
                     filter(Hypervisor.availability_zone_id == AvailabilityZone.id).\
                     filter(AvailabilityZone.name.like("sa%")).\
                     with_entities(Hypervisor.id).subquery()

        self.query = BaseQuery([Snapshot, InstanceState], db.session()).\
                  filter(Snapshot.ts >= start_ts, Snapshot.ts < end_ts).\
                  filter(InstanceState.snapshot_id == Snapshot.id).\
                  with_entities(InstanceState.instance_id).\
                  distinct(InstanceState.instance_id).\
                  filter(InstanceState.hypervisor_id.in_(az_query))
Example #2
0
    def _query(self, start_ts, end_ts):
        """Build a query to get a list of all instance status and hypervisor bewteen sart and end ts."""

        # To use BaseQuery.paginate
        query = BaseQuery([Snapshot, InstanceState, Instance, Hypervisor, Account, Tenant, Flavor], db.session()).\
                  filter(Snapshot.ts >= start_ts, Snapshot.ts < end_ts).\
                  filter(InstanceState.snapshot_id == Snapshot.id).\
                  filter(Instance.id == InstanceState.instance_id).\
                  filter(InstanceState.hypervisor_id == Hypervisor.id).\
                  filter(Account.id == Instance.account_id).\
                  filter(Tenant.id == Instance.tenant_id).\
                  filter(Flavor.id == Instance.flavor_id).\
                  with_entities(Snapshot.ts, Instance.openstack_id, InstanceState.name,
                                Hypervisor.name, Account.openstack_id, Tenant.openstack_id,
                                Instance.flavor_id)
        return query
Example #3
0
    def _query(self, start_ts, end_ts):
        """Build a query to get a list of all instance status and hypervisor bewteen sart and end ts."""

        # To use BaseQuery.paginate
        query = BaseQuery([Snapshot, InstanceState, Instance, Hypervisor, Account, Tenant, Flavor], db.session()).\
                  filter(Snapshot.ts >= start_ts, Snapshot.ts < end_ts).\
                  filter(InstanceState.snapshot_id == Snapshot.id).\
                  filter(Instance.id == InstanceState.instance_id).\
                  filter(InstanceState.hypervisor_id == Hypervisor.id).\
                  filter(Account.id == Instance.account_id).\
                  filter(Tenant.id == Instance.tenant_id).\
                  filter(Flavor.id == Instance.flavor_id).\
                  with_entities(Snapshot.ts, Instance.openstack_id, InstanceState.name,
                                Hypervisor.name, Account.openstack_id, Tenant.openstack_id,
                                Instance.flavor_id)
        return query