Skip to content

Commit

Permalink
Add redis Instance page (#43)
Browse files Browse the repository at this point in the history
  • Loading branch information
lovehzj committed Jan 16, 2022
1 parent d401d0d commit ebb5a3c
Show file tree
Hide file tree
Showing 15 changed files with 347 additions and 49 deletions.
Binary file added assets/images/icons/grafana.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/icons/influxdb.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/icons/redis.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import 'package:paas_dashboard_flutter/ui/kubernetes/k8s_page.dart';
import 'package:paas_dashboard_flutter/ui/mongo/mongo_page.dart';
import 'package:paas_dashboard_flutter/ui/mysql/mysql_page.dart';
import 'package:paas_dashboard_flutter/ui/pulsar/pulsar_page.dart';
import 'package:paas_dashboard_flutter/ui/redis/redis_page.dart';
import 'package:paas_dashboard_flutter/ui/sql/sql_list_page.dart';
import 'package:paas_dashboard_flutter/vm/bk/bk_instance_list_view_model.dart';
import 'package:paas_dashboard_flutter/vm/code/code_list_view_model.dart';
Expand All @@ -30,6 +31,7 @@ import 'package:paas_dashboard_flutter/vm/pulsar/pulsar_sink_view_model.dart';
import 'package:paas_dashboard_flutter/vm/pulsar/pulsar_source_view_model.dart';
import 'package:paas_dashboard_flutter/vm/pulsar/pulsar_tenant_view_model.dart';
import 'package:paas_dashboard_flutter/vm/pulsar/pulsar_topic_view_model.dart';
import 'package:paas_dashboard_flutter/vm/redis/redis_instance_list_view_model.dart';
import 'package:paas_dashboard_flutter/vm/sql/sql_list_view_model.dart';
import 'package:paas_dashboard_flutter/vm/sql/sql_view_model.dart';
import 'package:provider/provider.dart';
Expand Down Expand Up @@ -91,6 +93,10 @@ class MyApp extends StatelessWidget {
create: (context) => PulsarInstanceListViewModel(),
child: PulsarPage(),
),
PageRouteConst.Redis: (context) => ChangeNotifierProvider(
create: (context) => RedisInstanceListViewModel(),
child: RedisPage(),
),
PageRouteConst.Settings: (context) => ChangeNotifierProvider(
create: (context) => SettingsViewModel(),
child: SettingsScreen(),
Expand Down
6 changes: 6 additions & 0 deletions lib/module/redis/const.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
class RedisConst {
static const String defaultHost = "localhost";
static const int defaultPort = 6379;
static const String defaultUsername = "";
static const String defaultPassword = "";
}
17 changes: 17 additions & 0 deletions lib/persistent/persistent.dart
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import 'package:paas_dashboard_flutter/persistent/po/k8s_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mongo_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mysql_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/pulsar_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/redis_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/sql_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/zk_instance_po.dart';

Expand Down Expand Up @@ -134,6 +135,22 @@ class Persistent {
return (await getApi()).codeList();
}

static Future<void> saveRedis(String name, String host, int port, String username, String password) async {
return (await getApi()).saveRedis(name, host, port, username, password);
}

static Future<void> deleteRedis(int id) async {
return (await getApi()).deleteRedis(id);
}

static Future<List<RedisInstancePo>> redisInstances() async {
return (await getApi()).redisInstances();
}

static Future<RedisInstancePo?> redisInstance(String name) async {
return await ((await getApi()).redisInstance(name));
}

static bool supportDb() {
return !kIsWeb;
}
Expand Down
9 changes: 9 additions & 0 deletions lib/persistent/persistent_api.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import 'package:paas_dashboard_flutter/persistent/po/k8s_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mongo_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mysql_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/pulsar_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/redis_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/sql_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/zk_instance_po.dart';

Expand Down Expand Up @@ -71,5 +72,13 @@ abstract class PersistentApi {

Future<List<CodePo>> codeList();

Future<void> saveRedis(String name, String host, int port, String username, String password);

Future<void> deleteRedis(int id);

Future<List<RedisInstancePo>> redisInstances();

Future<RedisInstancePo?> redisInstance(String name);

Future<CodePo?> codeInstance(String name);
}
103 changes: 74 additions & 29 deletions lib/persistent/persistent_db.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import 'package:paas_dashboard_flutter/module/bk/const.dart';
import 'package:paas_dashboard_flutter/module/mongo/const.dart';
import 'package:paas_dashboard_flutter/module/mysql/const.dart';
import 'package:paas_dashboard_flutter/module/pulsar/const.dart';
import 'package:paas_dashboard_flutter/module/redis/const.dart';
import 'package:paas_dashboard_flutter/module/ssh/ssh_step.dart';
import 'package:paas_dashboard_flutter/module/zk/const.dart';
import 'package:paas_dashboard_flutter/persistent/persistent_api.dart';
Expand All @@ -14,6 +15,7 @@ import 'package:paas_dashboard_flutter/persistent/po/k8s_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mongo_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/mysql_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/pulsar_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/redis_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/sql_instance_po.dart';
import 'package:paas_dashboard_flutter/persistent/po/zk_instance_po.dart';
import 'package:path/path.dart';
Expand Down Expand Up @@ -102,6 +104,12 @@ class PersistentDb implements PersistentApi {
await db.execute(
'CREATE TABLE code_list(id INTEGER PRIMARY KEY, name TEXT, code TEXT)',
);
await db.execute(
'CREATE TABLE redis_instances(id INTEGER PRIMARY KEY, name TEXT, host TEXT, port INTEGER, username TEXT, password TEXT)',
);
await db.execute(
'INSERT INTO redis_instances(name, host, port, username, password) VALUES ("example", "${RedisConst.defaultHost}", ${RedisConst.defaultPort}, "${RedisConst.defaultUsername}", "${RedisConst.defaultPassword}")',
);
}

@override
Expand Down Expand Up @@ -178,16 +186,16 @@ class PersistentDb implements PersistentApi {
}

@override
Future<void> deleteZooKeeper(int id) async {
Future<void> saveZooKeeper(String name, String host, int port) async {
var aux = await getInstance();
aux.database.delete('zookeeper_instances', where: 'id = ?', whereArgs: [id]);
var list = [name, host, port];
aux.database.execute('INSERT INTO zookeeper_instances(name, host, port) VALUES (?, ?, ?)', list);
}

@override
Future<void> saveZooKeeper(String name, String host, int port) async {
Future<void> deleteZooKeeper(int id) async {
var aux = await getInstance();
var list = [name, host, port];
aux.database.execute('INSERT INTO zookeeper_instances(name, host, port) VALUES (?, ?, ?)', list);
aux.database.delete('zookeeper_instances', where: 'id = ?', whereArgs: [id]);
}

@override
Expand Down Expand Up @@ -236,6 +244,13 @@ class PersistentDb implements PersistentApi {
throw UnimplementedError();
}

@override
Future<void> saveMongo(String name, String addr, String username, String password) async {
var aux = await getInstance();
var list = [name, addr, username, password];
aux.database.execute('INSERT INTO mongo_instances(name, addr, username, password) VALUES (?, ?, ?, ?)', list);
}

@override
Future<void> deleteMongo(int id) async {
var aux = await getInstance();
Expand Down Expand Up @@ -265,10 +280,11 @@ class PersistentDb implements PersistentApi {
}

@override
Future<void> saveMongo(String name, String addr, String username, String password) async {
Future<void> saveMysql(String name, String host, int port, String username, String password) async {
var aux = await getInstance();
var list = [name, addr, username, password];
aux.database.execute('INSERT INTO mongo_instances(name, addr, username, password) VALUES (?, ?, ?, ?)', list);
var list = [name, host, port, username, password];
aux.database
.execute('INSERT INTO mysql_instances(name, host, port, username, password) VALUES (?, ?, ?, ?, ?)', list);
}

@override
Expand All @@ -287,14 +303,6 @@ class PersistentDb implements PersistentApi {
});
}

@override
Future<void> saveMysql(String name, String host, int port, String username, String password) async {
var aux = await getInstance();
var list = [name, host, port, username, password];
aux.database
.execute('INSERT INTO mysql_instances(name, host, port, username, password) VALUES (?, ?, ?, ?, ?)', list);
}

@override
Future<MysqlInstancePo?> mysqlInstance(String name) async {
var aux = await getInstance();
Expand All @@ -309,16 +317,16 @@ class PersistentDb implements PersistentApi {
}

@override
Future<void> deleteSql(int id) async {
Future<void> saveSql(String name, String sql) async {
var aux = await getInstance();
aux.database.delete('sql_list', where: 'id = ?', whereArgs: [id]);
var list = [name, sql];
aux.database.execute('INSERT INTO sql_list(name, sql) VALUES (?, ?)', list);
}

@override
Future<void> saveSql(String name, String sql) async {
Future<void> deleteSql(int id) async {
var aux = await getInstance();
var list = [name, sql];
aux.database.execute('INSERT INTO sql_list(name, sql) VALUES (?, ?)', list);
aux.database.delete('sql_list', where: 'id = ?', whereArgs: [id]);
}

@override
Expand All @@ -342,6 +350,19 @@ class PersistentDb implements PersistentApi {
return SqlPo(current['id'], current['name'], current['sql']);
}

@override
Future<void> saveCode(String name, String code) async {
var aux = await getInstance();
var list = [name, code];
aux.database.execute('INSERT INTO code_list(name, code) VALUES (?, ?)', list);
}

@override
Future<void> deleteCode(int id) async {
var aux = await getInstance();
aux.database.delete('code_list', where: 'id = ?', whereArgs: [id]);
}

@override
Future<List<CodePo>> codeList() async {
var aux = await getInstance();
Expand All @@ -353,26 +374,50 @@ class PersistentDb implements PersistentApi {
}

@override
Future<void> deleteCode(int id) async {
Future<CodePo?> codeInstance(String name) async {
var aux = await getInstance();
aux.database.delete('code_list', where: 'id = ?', whereArgs: [id]);
final List<Map<String, dynamic>> maps = await aux.database.query('code_list', where: "name = ?", whereArgs: [name]);
if (maps.length == 0) {
return null;
}
var current = maps[0];
return CodePo(current['id'], current['name'], current['code']);
}

@override
Future<void> saveCode(String name, String code) async {
Future<void> saveRedis(String name, String host, int port, String username, String password) async {
var aux = await getInstance();
var list = [name, code];
aux.database.execute('INSERT INTO code_list(name, code) VALUES (?, ?)', list);
var list = [name, host, port, username, password];
aux.database
.execute('INSERT INTO redis_instances(name, host, port, username, password) VALUES (?, ?, ?, ?, ?)', list);
}

@override
Future<CodePo?> codeInstance(String name) async {
Future<void> deleteRedis(int id) async {
var aux = await getInstance();
final List<Map<String, dynamic>> maps = await aux.database.query('code_list', where: "name = ?", whereArgs: [name]);
aux.database.delete('redis_instances', where: 'id = ?', whereArgs: [id]);
}

@override
Future<List<RedisInstancePo>> redisInstances() async {
var aux = await getInstance();
final List<Map<String, dynamic>> maps = await aux.database.query('redis_instances');
return List.generate(maps.length, (i) {
var aux = maps[i];
return RedisInstancePo(aux['id'], aux['name'], aux['host'], aux['port'], aux['username'], aux['password']);
});
}

@override
Future<RedisInstancePo?> redisInstance(String name) async {
var aux = await getInstance();
final List<Map<String, dynamic>> maps =
await aux.database.query('redis_instances', where: "name = ?", whereArgs: [name]);
if (maps.length == 0) {
return null;
}
var current = maps[0];
return CodePo(current['id'], current['name'], current['code']);
return RedisInstancePo(
current['id'], current['name'], current['host'], current['port'], current['username'], current['password']);
}
}
Loading

0 comments on commit ebb5a3c

Please sign in to comment.