From 6da7ab03ddb6b8f09a39884980f3c314ef0f59cc Mon Sep 17 00:00:00 2001 From: zryfish Date: Tue, 15 Dec 2020 11:32:05 +0800 Subject: [PATCH] remove unused package (#3204) Signed-off-by: Jeff --- Makefile | 8 +- pkg/db/Dockerfile | 13 - pkg/db/condition.go | 109 --------- pkg/db/condition_test.go | 88 ------- pkg/db/db.go | 283 ---------------------- pkg/db/ddl/devops.sql | 2 - pkg/db/error.go | 31 --- pkg/db/event.go | 55 ----- pkg/db/schema/devops/V0_1__init.sql | 23 -- pkg/db/schema/devops/V0_2__credential.sql | 8 - pkg/db/schema/devops/V0_3__workspace.sql | 15 -- pkg/db/scripts/ddl_init.sh | 17 -- 12 files changed, 4 insertions(+), 648 deletions(-) delete mode 100644 pkg/db/Dockerfile delete mode 100644 pkg/db/condition.go delete mode 100644 pkg/db/condition_test.go delete mode 100644 pkg/db/db.go delete mode 100644 pkg/db/ddl/devops.sql delete mode 100644 pkg/db/error.go delete mode 100644 pkg/db/event.go delete mode 100644 pkg/db/schema/devops/V0_1__init.sql delete mode 100644 pkg/db/schema/devops/V0_2__credential.sql delete mode 100644 pkg/db/schema/devops/V0_3__workspace.sql delete mode 100755 pkg/db/scripts/ddl_init.sh diff --git a/Makefile b/Makefile index fe40dd0b4..cab4df019 100644 --- a/Makefile +++ b/Makefile @@ -34,14 +34,14 @@ define ALL_HELP_INFO # debugging tools like delve. endef .PHONY: all -all: test ks-apiserver controller-manager +all: test ks-apiserver ks-controller-manager # Build ks-apiserver binary ks-apiserver: fmt vet hack/gobuild.sh cmd/ks-apiserver -# Build controller-manager binary -controller-manager: fmt vet +# Build ks-controller-manager binary +ks-controller-manager: fmt vet hack/gobuild.sh cmd/controller-manager # Run go fmt against code @@ -79,7 +79,7 @@ openapi: # Build the docker image docker-build: all hack/docker_build.sh -docker-build-no-test: ks-apiserver controller-manager +docker-build-no-test: ks-apiserver ks-controller-manager hack/docker_build.sh # Run tests diff --git a/pkg/db/Dockerfile b/pkg/db/Dockerfile deleted file mode 100644 index e100801a6..000000000 --- a/pkg/db/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -# Copyright 2017 The KubeSphere Authors. All rights reserved. -# Use of this source code is governed by a Apache license -# that can be found in the LICENSE file. - -FROM openpitrix/flyway:alpine - -USER root - -RUN apk add --no-cache mysql-client - -COPY ./schema /flyway/sql -COPY ./ddl /flyway/sql/ddl -COPY ./scripts /flyway/sql/ddl diff --git a/pkg/db/condition.go b/pkg/db/condition.go deleted file mode 100644 index 7386106dc..000000000 --- a/pkg/db/condition.go +++ /dev/null @@ -1,109 +0,0 @@ -/* -Copyright 2018 The KubeSphere Authors. -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 db - -import ( - "strings" - - "github.com/gocraft/dbr" -) - -const ( - placeholder = "?" -) - -type EqCondition struct { - dbr.Builder - Column string - Value interface{} -} - -// Copy From vendor/github.com/gocraft/dbr/condition.go:36 -func buildCmp(d dbr.Dialect, buf dbr.Buffer, pred string, column string, value interface{}) error { - buf.WriteString(d.QuoteIdent(column)) - buf.WriteString(" ") - buf.WriteString(pred) - buf.WriteString(" ") - buf.WriteString(placeholder) - - buf.WriteValue(value) - return nil -} - -// And creates AND from a list of conditions -func And(cond ...dbr.Builder) dbr.Builder { - return dbr.And(cond...) -} - -// Or creates OR from a list of conditions -func Or(cond ...dbr.Builder) dbr.Builder { - return dbr.Or(cond...) -} - -func escape(str string) string { - return strings.Map(func(r rune) rune { - switch r { - case '%', '\'', '^', '[', ']', '!', '_': - return ' ' - } - return r - }, str) -} - -func Like(column string, value string) dbr.Builder { - value = "%" + strings.TrimSpace(escape(value)) + "%" - return dbr.BuildFunc(func(d dbr.Dialect, buf dbr.Buffer) error { - return buildCmp(d, buf, "LIKE", column, value) - }) -} - -// Eq is `=`. -// When value is nil, it will be translated to `IS NULL`. -// When value is a slice, it will be translated to `IN`. -// Otherwise it will be translated to `=`. -func Eq(column string, value interface{}) dbr.Builder { - return &EqCondition{ - Builder: dbr.Eq(column, value), - Column: column, - Value: value, - } -} - -// Neq is `!=`. -// When value is nil, it will be translated to `IS NOT NULL`. -// When value is a slice, it will be translated to `NOT IN`. -// Otherwise it will be translated to `!=`. -func Neq(column string, value interface{}) dbr.Builder { - return dbr.Neq(column, value) -} - -// Gt is `>`. -func Gt(column string, value interface{}) dbr.Builder { - return dbr.Gt(column, value) -} - -// Gte is '>='. -func Gte(column string, value interface{}) dbr.Builder { - return dbr.Gte(column, value) -} - -// Lt is '<'. -func Lt(column string, value interface{}) dbr.Builder { - return dbr.Lt(column, value) -} - -// Lte is `<=`. -func Lte(column string, value interface{}) dbr.Builder { - return dbr.Lte(column, value) -} diff --git a/pkg/db/condition_test.go b/pkg/db/condition_test.go deleted file mode 100644 index dadeb5bc8..000000000 --- a/pkg/db/condition_test.go +++ /dev/null @@ -1,88 +0,0 @@ -/* -Copyright 2018 The KubeSphere Authors. -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 db - -import ( - "testing" - - "github.com/gocraft/dbr" - "github.com/gocraft/dbr/dialect" - "github.com/stretchr/testify/assert" -) - -// Ref: https://github.com/gocraft/dbr/blob/5d59a8b3aa915660960329efb3af5513e7a0db07/condition_test.go -func TestCondition(t *testing.T) { - for _, test := range []struct { - cond dbr.Builder - query string - value []interface{} - }{ - { - cond: Eq("col", 1), - query: "`col` = ?", - value: []interface{}{1}, - }, - { - cond: Eq("col", nil), - query: "`col` IS NULL", - value: nil, - }, - { - cond: Eq("col", []int{}), - query: "0", - value: nil, - }, - { - cond: Neq("col", 1), - query: "`col` != ?", - value: []interface{}{1}, - }, - { - cond: Neq("col", nil), - query: "`col` IS NOT NULL", - value: nil, - }, - { - cond: Gt("col", 1), - query: "`col` > ?", - value: []interface{}{1}, - }, - { - cond: Gte("col", 1), - query: "`col` >= ?", - value: []interface{}{1}, - }, - { - cond: Lt("col", 1), - query: "`col` < ?", - value: []interface{}{1}, - }, - { - cond: Lte("col", 1), - query: "`col` <= ?", - value: []interface{}{1}, - }, - { - cond: And(Lt("a", 1), Or(Gt("b", 2), Neq("c", 3))), - query: "(`a` < ?) AND ((`b` > ?) OR (`c` != ?))", - value: []interface{}{1, 2, 3}, - }, - } { - buf := dbr.NewBuffer() - err := test.cond.Build(dialect.MySQL, buf) - assert.NoError(t, err) - assert.Equal(t, test.query, buf.String()) - assert.Equal(t, test.value, buf.Value()) - } -} diff --git a/pkg/db/db.go b/pkg/db/db.go deleted file mode 100644 index ee2822d56..000000000 --- a/pkg/db/db.go +++ /dev/null @@ -1,283 +0,0 @@ -/* -Copyright 2018 The KubeSphere Authors. -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 db - -import ( - "database/sql" - "fmt" - "strings" - - _ "github.com/go-sql-driver/mysql" - "github.com/gocraft/dbr" -) - -const ( - DefaultSelectLimit = 200 -) - -func GetLimit(n uint64) uint64 { - if n < 0 { - n = 0 - } - if n > DefaultSelectLimit { - n = DefaultSelectLimit - } - return n -} - -func GetOffset(n uint64) uint64 { - if n < 0 { - n = 0 - } - return n -} - -type InsertHook func(query *InsertQuery) -type UpdateHook func(query *UpdateQuery) -type DeleteHook func(query *DeleteQuery) - -type Database struct { - *dbr.Session - InsertHook InsertHook - UpdateHook UpdateHook - DeleteHook DeleteHook -} - -type SelectQuery struct { - *dbr.SelectBuilder - JoinCount int // for join filter -} - -type InsertQuery struct { - *dbr.InsertBuilder - Hook InsertHook -} - -type DeleteQuery struct { - *dbr.DeleteBuilder - Hook DeleteHook -} - -type UpdateQuery struct { - *dbr.UpdateBuilder - Hook UpdateHook -} - -type UpsertQuery struct { - table string - *dbr.Session - whereConds map[string]string - upsertValues map[string]interface{} -} - -// SelectQuery -// Example: Select().From().Where().Limit().Offset().OrderDir().Load() -// Select().From().Where().Limit().Offset().OrderDir().LoadOne() -// Select().From().Where().Count() -// SelectAll().From().Where().Limit().Offset().OrderDir().Load() -// SelectAll().From().Where().Limit().Offset().OrderDir().LoadOne() -// SelectAll().From().Where().Count() - -func (db *Database) Select(columns ...string) *SelectQuery { - return &SelectQuery{db.Session.Select(columns...), 0} -} - -func (db *Database) SelectBySql(query string, value ...interface{}) *SelectQuery { - return &SelectQuery{db.Session.SelectBySql(query, value...), 0} -} - -func (db *Database) SelectAll(columns ...string) *SelectQuery { - return &SelectQuery{db.Session.Select("*"), 0} -} - -func (b *SelectQuery) Join(table, on interface{}) *SelectQuery { - b.SelectBuilder.Join(table, on) - return b -} - -func (b *SelectQuery) JoinAs(table string, alias string, on interface{}) *SelectQuery { - b.SelectBuilder.Join(dbr.I(table).As(alias), on) - return b -} - -func (b *SelectQuery) From(table string) *SelectQuery { - b.SelectBuilder.From(table) - return b -} - -func (b *SelectQuery) Where(query interface{}, value ...interface{}) *SelectQuery { - b.SelectBuilder.Where(query, value...) - return b -} - -func (b *SelectQuery) GroupBy(col ...string) *SelectQuery { - b.SelectBuilder.GroupBy(col...) - return b -} - -func (b *SelectQuery) Distinct() *SelectQuery { - b.SelectBuilder.Distinct() - return b -} - -func (b *SelectQuery) Limit(n uint64) *SelectQuery { - n = GetLimit(n) - b.SelectBuilder.Limit(n) - return b -} - -func (b *SelectQuery) Offset(n uint64) *SelectQuery { - n = GetLimit(n) - b.SelectBuilder.Offset(n) - return b -} - -func (b *SelectQuery) OrderDir(col string, isAsc bool) *SelectQuery { - b.SelectBuilder.OrderDir(col, isAsc) - return b -} - -func (b *SelectQuery) Load(value interface{}) (int, error) { - return b.SelectBuilder.Load(value) -} - -func (b *SelectQuery) LoadOne(value interface{}) error { - return b.SelectBuilder.LoadOne(value) -} - -func getColumns(dbrColumns []interface{}) string { - var columns []string - for _, column := range dbrColumns { - if c, ok := column.(string); ok { - columns = append(columns, c) - } - } - return strings.Join(columns, ", ") -} - -func (b *SelectQuery) Count() (count uint32, err error) { - // cache SelectStmt - selectStmt := b.SelectStmt - - limit := selectStmt.LimitCount - offset := selectStmt.OffsetCount - column := selectStmt.Column - isDistinct := selectStmt.IsDistinct - order := selectStmt.Order - - b.SelectStmt.LimitCount = -1 - b.SelectStmt.OffsetCount = -1 - b.SelectStmt.Column = []interface{}{"COUNT(*)"} - b.SelectStmt.Order = []dbr.Builder{} - - if isDistinct { - b.SelectStmt.Column = []interface{}{fmt.Sprintf("COUNT(DISTINCT %s)", getColumns(column))} - b.SelectStmt.IsDistinct = false - } - - err = b.LoadOne(&count) - // fallback SelectStmt - selectStmt.LimitCount = limit - selectStmt.OffsetCount = offset - selectStmt.Column = column - selectStmt.IsDistinct = isDistinct - selectStmt.Order = order - b.SelectStmt = selectStmt - return -} - -// InsertQuery -// Example: InsertInto().Columns().Record().Exec() - -func (db *Database) InsertInto(table string) *InsertQuery { - return &InsertQuery{db.Session.InsertInto(table), db.InsertHook} -} - -func (b *InsertQuery) Exec() (sql.Result, error) { - result, err := b.InsertBuilder.Exec() - if b.Hook != nil && err == nil { - defer b.Hook(b) - } - return result, err -} - -func (b *InsertQuery) Columns(columns ...string) *InsertQuery { - b.InsertBuilder.Columns(columns...) - return b -} - -func (b *InsertQuery) Record(structValue interface{}) *InsertQuery { - b.InsertBuilder.Record(structValue) - return b -} - -// DeleteQuery -// Example: DeleteFrom().Where().Limit().Exec() - -func (db *Database) DeleteFrom(table string) *DeleteQuery { - return &DeleteQuery{db.Session.DeleteFrom(table), db.DeleteHook} -} - -func (b *DeleteQuery) Where(query interface{}, value ...interface{}) *DeleteQuery { - b.DeleteBuilder.Where(query, value...) - return b -} - -func (b *DeleteQuery) Limit(n uint64) *DeleteQuery { - b.DeleteBuilder.Limit(n) - return b -} - -func (b *DeleteQuery) Exec() (sql.Result, error) { - result, err := b.DeleteBuilder.Exec() - if b.Hook != nil && err == nil { - defer b.Hook(b) - } - return result, err -} - -// UpdateQuery -// Example: Update().Set().Where().Exec() - -func (db *Database) Update(table string) *UpdateQuery { - return &UpdateQuery{db.Session.Update(table), db.UpdateHook} -} - -func (b *UpdateQuery) Exec() (sql.Result, error) { - result, err := b.UpdateBuilder.Exec() - if b.Hook != nil && err == nil { - defer b.Hook(b) - } - return result, err -} - -func (b *UpdateQuery) Set(column string, value interface{}) *UpdateQuery { - b.UpdateBuilder.Set(column, value) - return b -} - -func (b *UpdateQuery) SetMap(m map[string]interface{}) *UpdateQuery { - b.UpdateBuilder.SetMap(m) - return b -} - -func (b *UpdateQuery) Where(query interface{}, value ...interface{}) *UpdateQuery { - b.UpdateBuilder.Where(query, value...) - return b -} - -func (b *UpdateQuery) Limit(n uint64) *UpdateQuery { - b.UpdateBuilder.Limit(n) - return b -} diff --git a/pkg/db/ddl/devops.sql b/pkg/db/ddl/devops.sql deleted file mode 100644 index 06a5b89be..000000000 --- a/pkg/db/ddl/devops.sql +++ /dev/null @@ -1,2 +0,0 @@ -CREATE DATABASE IF NOT EXISTS devops DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci; -CREATE DATABASE IF NOT EXISTS kubesphere DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci; diff --git a/pkg/db/error.go b/pkg/db/error.go deleted file mode 100644 index 2e3580650..000000000 --- a/pkg/db/error.go +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2018 The KubeSphere Authors. -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 db - -import ( - "github.com/gocraft/dbr" -) - -// package errors -var ( - ErrNotFound = dbr.ErrNotFound - ErrNotSupported = dbr.ErrNotSupported - ErrTableNotSpecified = dbr.ErrTableNotSpecified - ErrColumnNotSpecified = dbr.ErrColumnNotSpecified - ErrInvalidPointer = dbr.ErrInvalidPointer - ErrPlaceholderCount = dbr.ErrPlaceholderCount - ErrInvalidSliceLength = dbr.ErrInvalidSliceLength - ErrCantConvertToTime = dbr.ErrCantConvertToTime - ErrInvalidTimestring = dbr.ErrInvalidTimestring -) diff --git a/pkg/db/event.go b/pkg/db/event.go deleted file mode 100644 index 033fa3f1a..000000000 --- a/pkg/db/event.go +++ /dev/null @@ -1,55 +0,0 @@ -/* -Copyright 2018 The KubeSphere Authors. -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 db - -import ( - "k8s.io/klog" -) - -// EventReceiver is a sentinel EventReceiver; use it if the caller doesn't supply one -type EventReceiver struct{} - -// Event receives a simple notification when various events occur -func (n *EventReceiver) Event(eventName string) { - -} - -// EventKv receives a notification when various events occur along with -// optional key/value data -func (n *EventReceiver) EventKv(eventName string, kvs map[string]string) { -} - -// EventErr receives a notification of an error if one occurs -func (n *EventReceiver) EventErr(eventName string, err error) error { - return err -} - -// EventErrKv receives a notification of an error if one occurs along with -// optional key/value data -func (n *EventReceiver) EventErrKv(eventName string, err error, kvs map[string]string) error { - klog.Errorf("%+v", err) - klog.Errorf("%s: %+v", eventName, kvs) - return err -} - -// Timing receives the time an event took to happen -func (n *EventReceiver) Timing(eventName string, nanoseconds int64) { - -} - -// TimingKv receives the time an event took to happen along with optional key/value data -func (n *EventReceiver) TimingKv(eventName string, nanoseconds int64, kvs map[string]string) { - // TODO: Change logger level to debug - klog.Infof("%s spend %.2fms: %+v", eventName, float32(nanoseconds)/1000000, kvs) -} diff --git a/pkg/db/schema/devops/V0_1__init.sql b/pkg/db/schema/devops/V0_1__init.sql deleted file mode 100644 index 1c8ce547d..000000000 --- a/pkg/db/schema/devops/V0_1__init.sql +++ /dev/null @@ -1,23 +0,0 @@ -CREATE TABLE project ( - `project_id` VARCHAR(50) NOT NULL, - `name` VARCHAR(50) NOT NULL, - `description` TEXT NOT NULL, - `creator` VARCHAR(50) NOT NULL, - `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - `status` VARCHAR(50) NOT NULL, - `visibility` VARCHAR(50) NOT NULL, - `extra` TEXT NOT NULL, - PRIMARY KEY (`project_id`) -); - - - -CREATE TABLE `project_membership` ( - `username` VARCHAR(50) NOT NULL, - `project_id` VARCHAR(50) NOT NULL, - `role` VARCHAR(50) NOT NULL, - `status` VARCHAR(50) NOT NULL, - `grant_by` VARCHAR(50) NOT NULL, - PRIMARY KEY (`username`, `project_id`) -); - diff --git a/pkg/db/schema/devops/V0_2__credential.sql b/pkg/db/schema/devops/V0_2__credential.sql deleted file mode 100644 index 713744964..000000000 --- a/pkg/db/schema/devops/V0_2__credential.sql +++ /dev/null @@ -1,8 +0,0 @@ -CREATE TABLE `project_credential` ( - `project_id` VARCHAR(50) NOT NULL, - `credential_id` VARCHAR(255) NOT NULL, - `domain` VARCHAR(255) NOT NULL, - `creator` VARCHAR(50) NOT NULL, - `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`project_id`, `credential_id`, `domain`) -); diff --git a/pkg/db/schema/devops/V0_3__workspace.sql b/pkg/db/schema/devops/V0_3__workspace.sql deleted file mode 100644 index 6c9e7cef9..000000000 --- a/pkg/db/schema/devops/V0_3__workspace.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE TABLE IF NOT EXISTS `kubesphere`.`workspace_dp_bindings` ( - `workspace` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, - `dev_ops_project` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL, - PRIMARY KEY (`workspace`,`dev_ops_project`) -) ENGINE=InnoDB; - -ALTER TABLE kubesphere.workspace_dp_bindings -CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - -ALTER TABLE devops.project -ADD COLUMN workspace VARCHAR(255) NOT NULL DEFAULT ''; - -UPDATE devops.project t1 -INNER JOIN kubesphere.workspace_dp_bindings t2 ON t1.project_id= t2.dev_ops_project -SET t1.workspace=t2.workspace; diff --git a/pkg/db/scripts/ddl_init.sh b/pkg/db/scripts/ddl_init.sh deleted file mode 100755 index ab5d9cb19..000000000 --- a/pkg/db/scripts/ddl_init.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh - -cd /flyway/sql/ddl - -[ -n "$PASSWORD" ] && OPT="-p$(echo "$PASSWORD" | tr -d '\n')" - -for F in $(ls *.sql) -do - echo "Start process $F" - mysql "$@" "$OPT" < "$F" - if [ $? -ne 0 ]; then - echo "Process $F failed" - return 1 - else - echo "Process $F successful" - fi -done