@Override public List<? extends Instance> getInstancesWithHealtcheckEnabled(long accountId) { return create().select(INSTANCE.fields()) .from(INSTANCE) .join(HEALTHCHECK_INSTANCE) .on(HEALTHCHECK_INSTANCE.INSTANCE_ID.eq(INSTANCE.ID)) .and(HEALTHCHECK_INSTANCE.REMOVED.isNull()) .and(INSTANCE.REMOVED.isNull()) .and(INSTANCE.STATE.in(InstanceConstants.STATE_STARTING, InstanceConstants.STATE_RUNNING) .and(INSTANCE.ACCOUNT_ID.eq(accountId))) .fetchInto(InstanceRecord.class); }
@Override public List<? extends Instance> findInstancesFor(Service service) { return create() .select(INSTANCE.fields()) .from(INSTANCE) .join(SERVICE_EXPOSE_MAP) .on(SERVICE_EXPOSE_MAP.INSTANCE_ID.eq(INSTANCE.ID) .and(SERVICE_EXPOSE_MAP.SERVICE_ID.eq(service.getId())) .and(SERVICE_EXPOSE_MAP.STATE.in(CommonStatesConstants.ACTIVATING, CommonStatesConstants.ACTIVE, CommonStatesConstants.REQUESTED)) .and(INSTANCE.STATE.notIn(CommonStatesConstants.PURGING, CommonStatesConstants.PURGED, CommonStatesConstants.REMOVED, CommonStatesConstants.REMOVING))) .fetchInto(InstanceRecord.class); }
@Override public List<? extends Instance> getInstancesToUpgrade(Service service, String launchConfigName, String toVersion) { Condition condition = null; if (launchConfigName == null || launchConfigName.equals(service.getName()) || launchConfigName.equals(ServiceConstants.PRIMARY_LAUNCH_CONFIG_NAME)) { condition = SERVICE_EXPOSE_MAP.DNS_PREFIX.isNull(); } else { condition = SERVICE_EXPOSE_MAP.DNS_PREFIX.eq(launchConfigName); } // add all managed return create() .select(INSTANCE.fields()) .from(INSTANCE) .join(SERVICE_EXPOSE_MAP) .on(SERVICE_EXPOSE_MAP.INSTANCE_ID.eq(INSTANCE.ID) .and(SERVICE_EXPOSE_MAP.SERVICE_ID.eq(service.getId())) .and(SERVICE_EXPOSE_MAP.MANAGED.eq(true)) .and(SERVICE_EXPOSE_MAP.STATE.in(CommonStatesConstants.ACTIVATING, CommonStatesConstants.ACTIVE, CommonStatesConstants.REQUESTED)) .and(INSTANCE.STATE.notIn(CommonStatesConstants.PURGING, CommonStatesConstants.PURGED, CommonStatesConstants.REMOVED, CommonStatesConstants.REMOVING)).and(condition) .and(INSTANCE.VERSION.ne(toVersion))) .fetchInto(InstanceRecord.class); }
@Override public List<? extends Instance> getInstancesToCleanup(Service service, String launchConfigName, String toVersion) { Condition condition = null; if (launchConfigName == null || launchConfigName.equals(service.getName()) || launchConfigName.equals(ServiceConstants.PRIMARY_LAUNCH_CONFIG_NAME)) { condition = SERVICE_EXPOSE_MAP.DNS_PREFIX.isNull(); } else { condition = SERVICE_EXPOSE_MAP.DNS_PREFIX.eq(launchConfigName); } // add unmanaged and marked for upgrade return create() .select(INSTANCE.fields()) .from(INSTANCE) .join(SERVICE_EXPOSE_MAP) .on(SERVICE_EXPOSE_MAP.INSTANCE_ID.eq(INSTANCE.ID) .and(SERVICE_EXPOSE_MAP.SERVICE_ID.eq(service.getId())) .and(SERVICE_EXPOSE_MAP.MANAGED.eq(false)) .and(SERVICE_EXPOSE_MAP.UPGRADE.eq(true)) .and(SERVICE_EXPOSE_MAP.STATE.in(CommonStatesConstants.ACTIVATING, CommonStatesConstants.ACTIVE, CommonStatesConstants.REQUESTED)) .and(INSTANCE.STATE.notIn(CommonStatesConstants.PURGING, CommonStatesConstants.PURGED, CommonStatesConstants.REMOVED, CommonStatesConstants.REMOVING)).and(condition) .and(INSTANCE.VERSION.ne(toVersion))) .fetchInto(InstanceRecord.class); }
InstanceConstants.STATE_ERROR, InstanceConstants.STATE_ERRORING)) .and(condition)) .fetchInto(InstanceRecord.class);
@Override public List<? extends ServiceExposeMap> getUnmanagedServiceInstanceMapsToRemove(long serviceId) { return create() .select(SERVICE_EXPOSE_MAP.fields()) .from(SERVICE_EXPOSE_MAP) .join(INSTANCE) .on(SERVICE_EXPOSE_MAP.INSTANCE_ID.eq(INSTANCE.ID) .and(SERVICE_EXPOSE_MAP.SERVICE_ID.eq(serviceId)) .and(SERVICE_EXPOSE_MAP.REMOVED.isNull()) .and(SERVICE_EXPOSE_MAP.MANAGED.eq(false)) .and(SERVICE_EXPOSE_MAP.UPGRADE.eq(false)) .and(SERVICE_EXPOSE_MAP.STATE.notIn(CommonStatesConstants.REQUESTED, CommonStatesConstants.REMOVED, CommonStatesConstants.REMOVING))) .fetchInto(ServiceExposeMapRecord.class); }
@Override public List<? extends Instance> getUpgradedInstances(Service service, String launchConfigName, String toVersion, boolean managed) { Condition condition1 = null; if (launchConfigName == null || launchConfigName.equals(service.getName()) || launchConfigName.equals(ServiceConstants.PRIMARY_LAUNCH_CONFIG_NAME)) { condition1 = SERVICE_EXPOSE_MAP.DNS_PREFIX.isNull(); } else { condition1 = SERVICE_EXPOSE_MAP.DNS_PREFIX.eq(launchConfigName); } Condition condition2 = null; if (managed) { condition2 = SERVICE_EXPOSE_MAP.MANAGED.eq(true); } else { condition2 = SERVICE_EXPOSE_MAP.MANAGED.eq(false).and(SERVICE_EXPOSE_MAP.UPGRADE.eq(true)); } return create() .select(INSTANCE.fields()) .from(INSTANCE) .join(SERVICE_EXPOSE_MAP) .on(SERVICE_EXPOSE_MAP.INSTANCE_ID.eq(INSTANCE.ID) .and(SERVICE_EXPOSE_MAP.SERVICE_ID.eq(service.getId())) .and(SERVICE_EXPOSE_MAP.STATE.in(CommonStatesConstants.ACTIVATING, CommonStatesConstants.ACTIVE, CommonStatesConstants.REQUESTED)) .and(INSTANCE.STATE.notIn(CommonStatesConstants.PURGING, CommonStatesConstants.PURGED, CommonStatesConstants.REMOVED, CommonStatesConstants.REMOVING)).and(condition1) .and(condition2) .and(INSTANCE.VERSION.eq(toVersion))) .fetchInto(InstanceRecord.class); }
@Override public List<? extends Instance> listServiceManagedInstancesAll(Service service) { return create() .select(INSTANCE.fields()) .from(INSTANCE) .join(SERVICE_EXPOSE_MAP) .on(SERVICE_EXPOSE_MAP.INSTANCE_ID.eq(INSTANCE.ID) .and(SERVICE_EXPOSE_MAP.SERVICE_ID.eq(service.getId())) .and(SERVICE_EXPOSE_MAP.MANAGED.eq(true)) .and(SERVICE_EXPOSE_MAP.STATE.in(CommonStatesConstants.ACTIVATING, CommonStatesConstants.ACTIVE, CommonStatesConstants.REQUESTED)) .and(SERVICE_EXPOSE_MAP.DNS_PREFIX.isNull().or( SERVICE_EXPOSE_MAP.DNS_PREFIX.in(ServiceDiscoveryUtil .getServiceLaunchConfigNames(service))))) .fetchInto(InstanceRecord.class); }
@Override public List<? extends Instance> listServiceManagedInstances(Service service) { return create() .select(INSTANCE.fields()) .from(INSTANCE) .join(SERVICE_EXPOSE_MAP) .on(SERVICE_EXPOSE_MAP.INSTANCE_ID.eq(INSTANCE.ID) .and(SERVICE_EXPOSE_MAP.SERVICE_ID.eq(service.getId())) .and(SERVICE_EXPOSE_MAP.MANAGED.eq(true)) .and(SERVICE_EXPOSE_MAP.STATE.in(CommonStatesConstants.ACTIVATING, CommonStatesConstants.ACTIVE, CommonStatesConstants.REQUESTED)) .and(INSTANCE.STATE.notIn(CommonStatesConstants.PURGING, CommonStatesConstants.PURGED, CommonStatesConstants.REMOVED, CommonStatesConstants.REMOVING, InstanceConstants.STATE_ERROR, InstanceConstants.STATE_ERRORING)) .and(SERVICE_EXPOSE_MAP.DNS_PREFIX.isNull().or( SERVICE_EXPOSE_MAP.DNS_PREFIX.in(ServiceDiscoveryUtil .getServiceLaunchConfigNames(service))))) .fetchInto(InstanceRecord.class); }