diff --git a/.github/workflows/flutter_check_style.yaml b/.github/workflows/flutter_check_style.yaml index 385cda5..74c5624 100644 --- a/.github/workflows/flutter_check_style.yaml +++ b/.github/workflows/flutter_check_style.yaml @@ -14,4 +14,4 @@ jobs: with: channel: 'beta' - run: flutter pub get - - run: flutter format --set-exit-if-changed . + - run: flutter format --set-exit-if-changed -l 120 . diff --git a/lib/module/bk/const.dart b/lib/module/bk/const.dart new file mode 100644 index 0000000..c26d475 --- /dev/null +++ b/lib/module/bk/const.dart @@ -0,0 +1,4 @@ +class BkConst { + static const String defaultHost = "localhost"; + static const int defaultPort = 8080; +} diff --git a/lib/module/mongo/const.dart b/lib/module/mongo/const.dart new file mode 100644 index 0000000..cdba24b --- /dev/null +++ b/lib/module/mongo/const.dart @@ -0,0 +1,3 @@ +class MongoConst { + static const String defaultAddr = "mongodb://localhost:27017"; +} diff --git a/lib/module/pulsar/const.dart b/lib/module/pulsar/const.dart new file mode 100644 index 0000000..3922887 --- /dev/null +++ b/lib/module/pulsar/const.dart @@ -0,0 +1,5 @@ +class PulsarConst { + static const String defaultHost = "localhost"; + static const int defaultBrokerPort = 8080; + static const int defaultFunctionPort = 6650; +} diff --git a/lib/module/zk/const.dart b/lib/module/zk/const.dart new file mode 100644 index 0000000..7d112dc --- /dev/null +++ b/lib/module/zk/const.dart @@ -0,0 +1,4 @@ +class ZkConst { + static const String defaultHost = "localhost"; + static const int defaultPort = 8080; +} diff --git a/lib/persistent/persistent_api.dart b/lib/persistent/persistent_api.dart index c6d6488..b11e4ec 100644 --- a/lib/persistent/persistent_api.dart +++ b/lib/persistent/persistent_api.dart @@ -4,6 +4,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/zk_instance_po.dart'; abstract class PersistentApi { Future savePulsar(String name, String host, int port, @@ -19,6 +20,12 @@ abstract class PersistentApi { Future> bookkeeperInstances(); + Future saveZooKeeper(String name, String host, int port); + + Future deleteZooKeeper(int id); + + Future> zooKeeperInstances(); + Future saveKubernetesSsh(String name, List sshSteps); Future deleteKubernetes(int id); diff --git a/lib/persistent/persistent_db.dart b/lib/persistent/persistent_db.dart index 5fa734d..ec6535b 100644 --- a/lib/persistent/persistent_db.dart +++ b/lib/persistent/persistent_db.dart @@ -1,13 +1,19 @@ import 'dart:developer'; import 'dart:io'; +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/ssh/ssh_step.dart'; +import 'package:paas_dashboard_flutter/module/zk/const.dart'; import 'package:paas_dashboard_flutter/persistent/persistent_api.dart'; import 'package:paas_dashboard_flutter/persistent/po/bk_instance_po.dart'; 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/zk_instance_po.dart'; import 'package:path/path.dart'; import 'package:sqflite/sqflite.dart'; import 'package:sqflite_common_ffi/sqflite_ffi.dart'; @@ -55,19 +61,19 @@ class PersistentDb implements PersistentApi { 'CREATE TABLE pulsar_instances(id INTEGER PRIMARY KEY, name TEXT, host TEXT, port INTEGER, function_host TEXT, function_port INTEGER)', ); await db.execute( - 'INSERT INTO pulsar_instances(name, host, port, function_host, function_port) VALUES ("example", "localhost", 8080, "localhost", 8080)', + 'INSERT INTO pulsar_instances(name, host, port, function_host, function_port) VALUES ("example", "${PulsarConst.defaultHost}", ${PulsarConst.defaultBrokerPort}, "${PulsarConst.defaultHost}", ${PulsarConst.defaultFunctionPort})', ); await db.execute( 'CREATE TABLE bookkeeper_instances(id INTEGER PRIMARY KEY, name TEXT, host TEXT, port INTEGER)', ); await db.execute( - 'INSERT INTO bookkeeper_instances(name, host, port) VALUES ("example", "localhost", 8080)', + 'INSERT INTO bookkeeper_instances(name, host, port) VALUES ("example", "${BkConst.defaultHost}", ${BkConst.defaultPort})', ); await db.execute( 'CREATE TABLE zookeeper_instances(id INTEGER PRIMARY KEY, name TEXT, host TEXT, port INTEGER)', ); await db.execute( - 'INSERT INTO zookeeper_instances(name, host, port) VALUES ("example", "localhost", 8080)', + 'INSERT INTO zookeeper_instances(name, host, port) VALUES ("example", "${ZkConst.defaultHost}", ${ZkConst.defaultPort})', ); // type: api态host await db.execute( @@ -80,24 +86,22 @@ class PersistentDb implements PersistentApi { 'CREATE TABLE mongo_instances(id INTEGER PRIMARY KEY, name TEXT, addr TEXT, username TEXT, password TEXT)', ); await db.execute( - 'INSERT INTO mongo_instances(name, addr, username, password) VALUES ("example", "mongodb://localhost:27017", "", "")', + 'INSERT INTO mongo_instances(name, addr, username, password) VALUES ("example", "${MongoConst.defaultAddr}", "", "")', ); await db.execute( 'CREATE TABLE mysql_instances(id INTEGER PRIMARY KEY, name TEXT, host TEXT, port INTEGER, username TEXT, password TEXT)', ); await db.execute( - 'INSERT INTO mysql_instances(name, host, port, username, password) VALUES ("example", "localhost", 3306, "hzj", "Mysql@123")', + 'INSERT INTO mysql_instances(name, host, port, username, password) VALUES ("example", "${MysqlConst.defaultHost}", ${MysqlConst.defaultPort}, "${MysqlConst.defaultUsername}", "${MysqlConst.defaultPassword}")', ); } @override - Future savePulsar(String name, String host, int port, - String functionHost, int functionPort) async { + Future savePulsar(String name, String host, int port, String functionHost, int functionPort) async { var aux = await getInstance(); var list = [name, host, port, functionHost, functionPort]; aux.database.execute( - 'INSERT INTO pulsar_instances(name, host, port, function_host, function_port) VALUES (?, ?, ?, ?, ?)', - list); + 'INSERT INTO pulsar_instances(name, host, port, function_host, function_port) VALUES (?, ?, ?, ?, ?)', list); } @override @@ -109,12 +113,11 @@ class PersistentDb implements PersistentApi { @override Future> pulsarInstances() async { var aux = await getInstance(); - final List> maps = - await aux.database.query('pulsar_instances'); + final List> maps = await aux.database.query('pulsar_instances'); return List.generate(maps.length, (i) { var aux = maps[i]; - return PulsarInstancePo(aux['id'], aux['name'], aux['host'], aux['port'], - aux['function_host'], aux['function_port']); + return PulsarInstancePo( + aux['id'], aux['name'], aux['host'], aux['port'], aux['function_host'], aux['function_port']); }); } @@ -122,29 +125,48 @@ class PersistentDb implements PersistentApi { Future saveBookkeeper(String name, String host, int port) async { var aux = await getInstance(); var list = [name, host, port]; - aux.database.execute( - 'INSERT INTO bookkeeper_instances(name, host, port) VALUES (?, ?, ?)', - list); + aux.database.execute('INSERT INTO bookkeeper_instances(name, host, port) VALUES (?, ?, ?)', list); } @override Future deleteBookkeeper(int id) async { var aux = await getInstance(); - aux.database - .delete('bookkeeper_instances', where: 'id = ?', whereArgs: [id]); + aux.database.delete('bookkeeper_instances', where: 'id = ?', whereArgs: [id]); } @override Future> bookkeeperInstances() async { var aux = await getInstance(); - final List> maps = - await aux.database.query('bookkeeper_instances'); + final List> maps = await aux.database.query('bookkeeper_instances'); return List.generate(maps.length, (i) { var aux = maps[i]; return BkInstancePo(aux['id'], aux['name'], aux['host'], aux['port']); }); } + @override + Future deleteZooKeeper(int id) async { + var aux = await getInstance(); + aux.database.delete('zookeeper_instances', where: 'id = ?', whereArgs: [id]); + } + + @override + Future saveZooKeeper(String name, String host, int port) async { + var aux = await getInstance(); + var list = [name, host, port]; + aux.database.execute('INSERT INTO zookeeper_instances(name, host, port) VALUES (?, ?, ?)', list); + } + + @override + Future> zooKeeperInstances() async { + var aux = await getInstance(); + final List> maps = await aux.database.query('zookeeper_instances'); + return List.generate(maps.length, (i) { + var aux = maps[i]; + return ZkInstancePo(aux['id'], aux['name'], aux['host'], aux['port']); + }); + } + @override Future saveKubernetesSsh(String name, List sshSteps) { // TODO: implement saveKubernetesSsh @@ -172,23 +194,18 @@ class PersistentDb implements PersistentApi { @override Future> mongoInstances() async { var aux = await getInstance(); - final List> maps = - await aux.database.query('mongo_instances'); + final List> maps = await aux.database.query('mongo_instances'); return List.generate(maps.length, (i) { var aux = maps[i]; - return MongoInstancePo(aux['id'], aux['name'], aux['addr'], - aux['username'], aux['password']); + return MongoInstancePo(aux['id'], aux['name'], aux['addr'], aux['username'], aux['password']); }); } @override - Future saveMongo( - String name, String addr, String username, String password) async { + Future 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); + aux.database.execute('INSERT INTO mongo_instances(name, addr, username, password) VALUES (?, ?, ?, ?)', list); } @override @@ -200,22 +217,18 @@ class PersistentDb implements PersistentApi { @override Future> mysqlInstances() async { var aux = await getInstance(); - final List> maps = - await aux.database.query('mysql_instances'); + final List> maps = await aux.database.query('mysql_instances'); return List.generate(maps.length, (i) { var aux = maps[i]; - return MysqlInstancePo(aux['id'], aux['name'], aux['host'], aux['port'], - aux['username'], aux['password']); + return MysqlInstancePo(aux['id'], aux['name'], aux['host'], aux['port'], aux['username'], aux['password']); }); } @override - Future saveMysql(String name, String host, int port, String username, - String password) async { + Future 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); + aux.database + .execute('INSERT INTO mysql_instances(name, host, port, username, password) VALUES (?, ?, ?, ?, ?)', list); } } diff --git a/lib/persistent/persistent_memory.dart b/lib/persistent/persistent_memory.dart index fbd168a..d439701 100644 --- a/lib/persistent/persistent_memory.dart +++ b/lib/persistent/persistent_memory.dart @@ -1,15 +1,20 @@ +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/ssh/ssh_step.dart'; +import 'package:paas_dashboard_flutter/module/zk/const.dart'; import 'package:paas_dashboard_flutter/persistent/persistent_api.dart'; import 'package:paas_dashboard_flutter/persistent/po/bk_instance_po.dart'; 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/zk_instance_po.dart'; class PersistentMemory implements PersistentApi { @override - Future savePulsar(String name, String host, int port, - String functionHost, int functionPort) { + Future savePulsar(String name, String host, int port, String functionHost, int functionPort) { // TODO: implement savePulsar throw UnimplementedError(); } @@ -23,7 +28,8 @@ class PersistentMemory implements PersistentApi { @override Future> pulsarInstances() async { return [ - new PulsarInstancePo(0, "example", "localhost", 8080, "localhost", 8080) + new PulsarInstancePo(0, "example", PulsarConst.defaultHost, PulsarConst.defaultBrokerPort, + PulsarConst.defaultHost, PulsarConst.defaultFunctionPort) ]; } @@ -41,7 +47,24 @@ class PersistentMemory implements PersistentApi { @override Future> bookkeeperInstances() async { - return [new BkInstancePo(0, "example", "localhost", 8080)]; + return [new BkInstancePo(0, "example", BkConst.defaultHost, BkConst.defaultPort)]; + } + + @override + Future deleteZooKeeper(int id) { + // TODO: implement deleteZooKeeper + throw UnimplementedError(); + } + + @override + Future saveZooKeeper(String name, String host, int port) { + // TODO: implement saveZooKeeper + throw UnimplementedError(); + } + + @override + Future> zooKeeperInstances() async { + return [new ZkInstancePo(0, "example", ZkConst.defaultHost, ZkConst.defaultPort)]; } @override @@ -68,14 +91,11 @@ class PersistentMemory implements PersistentApi { @override Future> mongoInstances() async { - return [ - new MongoInstancePo(0, "example", "mongodb://localhost:27017", "", "") - ]; + return [new MongoInstancePo(0, "example", MongoConst.defaultAddr, "", "")]; } @override - Future saveMongo( - String name, String addr, String username, String password) { + Future saveMongo(String name, String addr, String username, String password) { throw UnimplementedError(); } @@ -88,13 +108,13 @@ class PersistentMemory implements PersistentApi { @override Future> mysqlInstances() async { return [ - new MysqlInstancePo(0, "example", "localhost", 3306, "hzj", "Mysql@123") + new MysqlInstancePo(0, "example", MysqlConst.defaultHost, MysqlConst.defaultPort, MysqlConst.defaultUsername, + MysqlConst.defaultPassword) ]; } @override - Future saveMysql( - String name, String host, int port, String username, String password) { + Future saveMysql(String name, String host, int port, String username, String password) { // TODO: implement saveMysql throw UnimplementedError(); } diff --git a/lib/persistent/po/zk_instance_po.dart b/lib/persistent/po/zk_instance_po.dart new file mode 100644 index 0000000..3082915 --- /dev/null +++ b/lib/persistent/po/zk_instance_po.dart @@ -0,0 +1,21 @@ +import 'package:paas_dashboard_flutter/persistent/po/http_endpoint.dart'; + +class ZkInstancePo extends HttpEndpoint { + final int id; + + ZkInstancePo(this.id, String name, String host, int port) : super(name, host, port); + + Map toMap() { + return { + 'id': id, + 'name': name, + 'host': host, + 'port': port, + }; + } + + @override + String toString() { + return 'ZooKeeperInstance{id: $id, name: $name, host: $host, port: $port}'; + } +} diff --git a/test/api/mongo/mongo_databases_api_query_test.dart b/test/api/mongo/mongo_databases_api_query_test.dart index 90868d4..18170a5 100644 --- a/test/api/mongo/mongo_databases_api_query_test.dart +++ b/test/api/mongo/mongo_databases_api_query_test.dart @@ -1,10 +1,11 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:paas_dashboard_flutter/api/mongo/mongo_databases_api.dart'; +import 'package:paas_dashboard_flutter/module/mongo/const.dart'; void main() { test("test_query_databases", () async { - var list = await MongoDatabaseApi.getDatabaseList( - "mongodb://localhost:27017", "", ""); + var list = + await MongoDatabaseApi.getDatabaseList(MongoConst.defaultAddr, "", ""); print(list); }); } diff --git a/test/api/mongo/mongo_tables_api_query_test.dart b/test/api/mongo/mongo_tables_api_query_test.dart index 547d648..8c77719 100644 --- a/test/api/mongo/mongo_tables_api_query_test.dart +++ b/test/api/mongo/mongo_tables_api_query_test.dart @@ -1,10 +1,11 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:paas_dashboard_flutter/api/mongo/mongo_tables_api.dart'; +import 'package:paas_dashboard_flutter/module/mongo/const.dart'; void main() { test("test_query_tables", () async { var list = await MongoTablesApi.getTableList( - "mongodb://localhost:27017", "", "", "admin"); + MongoConst.defaultAddr, "", "", "admin"); print(list); }); } diff --git a/test/api/pulsar/pulsar_sink_api_create_test.dart b/test/api/pulsar/pulsar_sink_api_create_test.dart index cde0268..1f13820 100644 --- a/test/api/pulsar/pulsar_sink_api_create_test.dart +++ b/test/api/pulsar/pulsar_sink_api_create_test.dart @@ -1,9 +1,18 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:paas_dashboard_flutter/api/pulsar/pulsar_sink_api.dart'; +import 'package:paas_dashboard_flutter/module/pulsar/const.dart'; void main() { test("test_create_sink", () async { - await PulsarSinkApi.createSink("localhost", 8080, "public", "default", - "sink_name", "sub_name", "topic", "pulsar", '{"topic":"xx"}'); + await PulsarSinkApi.createSink( + PulsarConst.defaultHost, + PulsarConst.defaultFunctionPort, + "public", + "default", + "sink_name", + "sub_name", + "topic", + "pulsar", + '{"topic":"xx"}'); }); } diff --git a/test/api/pulsar/pulsar_sink_api_query_test.dart b/test/api/pulsar/pulsar_sink_api_query_test.dart index 82b92f5..89891ca 100644 --- a/test/api/pulsar/pulsar_sink_api_query_test.dart +++ b/test/api/pulsar/pulsar_sink_api_query_test.dart @@ -1,10 +1,11 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:paas_dashboard_flutter/api/pulsar/pulsar_sink_api.dart'; +import 'package:paas_dashboard_flutter/module/pulsar/const.dart'; void main() { test("test_create_sink", () async { - var list = - await PulsarSinkApi.getSinkList("localhost", 8080, "public", "default"); + var list = await PulsarSinkApi.getSinkList(PulsarConst.defaultHost, + PulsarConst.defaultFunctionPort, "public", "default"); print(list); }); } diff --git a/test/api/pulsar/pulsar_topic_api_fetch_producers_test.dart b/test/api/pulsar/pulsar_topic_api_fetch_producers_test.dart index 1b0a7f3..c6451b8 100644 --- a/test/api/pulsar/pulsar_topic_api_fetch_producers_test.dart +++ b/test/api/pulsar/pulsar_topic_api_fetch_producers_test.dart @@ -1,10 +1,11 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:paas_dashboard_flutter/api/pulsar/pulsar_topic_api.dart'; +import 'package:paas_dashboard_flutter/module/pulsar/const.dart'; void main() { test("test_fetch_producers", () async { - var producers = await PulsarTopicApi.getProducers( - "localhost", 8080, "public", "default", "test_fetch_topic"); + var producers = await PulsarTopicApi.getProducers(PulsarConst.defaultHost, + PulsarConst.defaultBrokerPort, "public", "default", "test_fetch_topic"); print(producers); }); } diff --git a/test/api/pulsar/pulsar_topic_api_fetch_subscriptions_test.dart b/test/api/pulsar/pulsar_topic_api_fetch_subscriptions_test.dart index ca9d7b4..bda329a 100644 --- a/test/api/pulsar/pulsar_topic_api_fetch_subscriptions_test.dart +++ b/test/api/pulsar/pulsar_topic_api_fetch_subscriptions_test.dart @@ -1,10 +1,15 @@ import 'package:flutter_test/flutter_test.dart'; import 'package:paas_dashboard_flutter/api/pulsar/pulsar_topic_api.dart'; +import 'package:paas_dashboard_flutter/module/pulsar/const.dart'; void main() { test("test_fetch_subscriptions", () async { var subscription = await PulsarTopicApi.getSubscription( - "localhost", 8080, "public", "default", "test_fetch_topic"); + PulsarConst.defaultHost, + PulsarConst.defaultBrokerPort, + "public", + "default", + "test_fetch_topic"); print(subscription); }); }