risedev/task/redis_service.rs
1// Copyright 2022 RisingWave Labs
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15use super::docker_service::{DockerService, DockerServiceConfig};
16use crate::RedisConfig;
17
18impl DockerServiceConfig for RedisConfig {
19 fn id(&self) -> String {
20 self.id.clone()
21 }
22
23 fn is_user_managed(&self) -> bool {
24 self.user_managed
25 }
26
27 fn image(&self) -> String {
28 self.image.clone()
29 }
30
31 fn ports(&self) -> Vec<(String, String)> {
32 vec![(self.port.to_string(), "6379".to_owned())]
33 }
34
35 fn data_path(&self) -> Option<String> {
36 self.persist_data.then(|| "/data".to_owned())
37 }
38}
39
40/// Docker-backed Redis service.
41pub type RedisService = DockerService<RedisConfig>;