/*
* Licensed 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.
*/
package com.facebook.presto.resourceGroups.db;
import org.skife.jdbi.v2.sqlobject.Bind;
import org.skife.jdbi.v2.sqlobject.SqlUpdate;
public interface H2ResourceGroupsDao
extends ResourceGroupsDao
{
@SqlUpdate("INSERT INTO resource_groups_global_properties\n" +
"(name, value) VALUES (:name, :value)")
void insertResourceGroupsGlobalProperties(
@Bind("name") String name,
@Bind("value") String value);
@SqlUpdate("UPDATE resource_groups_global_properties SET name = :name")
void updateResourceGroupsGlobalProperties(@Bind("name") String name);
@SqlUpdate("INSERT INTO resource_groups\n" +
"(resource_group_id, name, soft_memory_limit, max_queued, max_running, scheduling_policy, scheduling_weight, jmx_export, soft_cpu_limit, hard_cpu_limit, parent)\n" +
"VALUES (:resource_group_id, :name, :soft_memory_limit, :max_queued, :max_running, :scheduling_policy, :scheduling_weight, :jmx_export, :soft_cpu_limit, :hard_cpu_limit, :parent)")
void insertResourceGroup(
@Bind("resource_group_id") long resourceGroupId,
@Bind("name") String name,
@Bind("soft_memory_limit") String softMemoryLimit,
@Bind("max_queued") int maxQueued,
@Bind("max_running") int maxRunning,
@Bind("scheduling_policy") String schedulingPolicy,
@Bind("scheduling_weight") Integer schedulingWeight,
@Bind("jmx_export") Boolean jmxExport,
@Bind("soft_cpu_limit") String softCpuLimit,
@Bind("hard_cpu_limit") String hardCpuLimit,
@Bind("parent") Long parent
);
@SqlUpdate("UPDATE resource_groups SET\n" +
" resource_group_id = :resource_group_id\n" +
", name = :name\n" +
", soft_memory_limit = :soft_memory_limit\n" +
", max_queued = :max_queued\n" +
", max_running = :max_running\n" +
", scheduling_policy = :scheduling_policy\n" +
", scheduling_weight = :scheduling_weight\n" +
", jmx_export = :jmx_export\n" +
", soft_cpu_limit = :soft_cpu_limit\n" +
", hard_cpu_limit = :hard_cpu_limit\n" +
", parent = :parent\n" +
"WHERE resource_group_id = :resource_group_id")
void updateResourceGroup(
@Bind("resource_group_id") long resourceGroupId,
@Bind("name") String resourceGroup,
@Bind("soft_memory_limit") String softMemoryLimit,
@Bind("max_queued") int maxQueued,
@Bind("max_running") int maxRunning,
@Bind("scheduling_policy") String schedulingPolicy,
@Bind("scheduling_weight") Integer schedulingWeight,
@Bind("jmx_export") Boolean jmxExport,
@Bind("soft_cpu_limit") String softCpuLimit,
@Bind("hard_cpu_limit") String hardCpuLimit,
@Bind("parent") Long parent);
@SqlUpdate("DELETE FROM resource_groups WHERE resource_group_id = :resource_group_id")
void deleteResourceGroup(@Bind("resource_group_id") long resourceGroupId);
@SqlUpdate("INSERT INTO selectors\n" +
"(resource_group_id, user_regex, source_regex)\n" +
"VALUES (:resource_group_id, :user_regex, :source_regex)")
void insertSelector(
@Bind("resource_group_id") long resourceGroupId,
@Bind("user_regex") String userRegex,
@Bind("source_regex") String sourceRegex);
@SqlUpdate("UPDATE selectors SET\n" +
" resource_group_id = :resource_group_id\n" +
", user_regex = :user_regex\n" +
", source_regex = :source_regex\n" +
"WHERE resource_group_id = :resource_group_id\n" +
" AND ((user_regex IS NULL AND :old_user_regex IS NULL) OR user_regex = :old_user_regex)\n" +
" AND ((source_regex IS NULL AND :old_source_regex IS NULL) OR source_regex = :old_source_regex)")
void updateSelector(
@Bind("resource_group_id") long resourceGroupId,
@Bind("user_regex") String newUserRegex,
@Bind("source_regex") String newSourceRegex,
@Bind("old_user_regex") String oldUserRegex,
@Bind("old_source_regex") String oldSourceRegex);
@SqlUpdate("DELETE FROM selectors WHERE resource_group_id = :resource_group_id\n" +
" AND ((user_regex IS NULL AND :user_regex IS NULL) OR user_regex = :user_regex)\n" +
" AND ((source_regex IS NULL AND :source_regex IS NULL) OR source_regex = :source_regex)")
void deleteSelector(
@Bind("resource_group_id") long resourceGroupId,
@Bind("user_regex") String userRegex,
@Bind("source_regex") String sourceRegex);
@SqlUpdate("DELETE FROM selectors WHERE resource_group_id = :resource_group_id")
void deleteSelectors(@Bind("resource_group_id") long resourceGroup);
}