From 6293f8797a989d58f062f2485344d5fd5b4f07b4 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 29 Jun 2023 11:23:56 -0400 Subject: [PATCH 01/84] springification --- .github/workflows/ci.yml | 20 + .gitignore | 2 + .goreleaser.yaml | 46 - .../BulkUpdateConfirmation.go | 99 -- ConfirmationDialog/confirmation.go | 95 -- README.adoc | 219 ----- RedisCommon/redis.go | 910 ------------------ RuleDialog/RuleDialog.go | 266 ----- RuleList/RuleList.go | 262 ----- RuleTtlView/RuleTtlView.go | 71 -- SortDialog/sortDialog.go | 150 --- TableList/TableList.go | 138 --- build.gradle | 55 ++ cmd/listqueries.go | 95 -- cmd/listtables.go | 74 -- cmd/makerule.go | 104 -- cmd/root.go | 85 -- go.mod | 36 - go.sum | 87 -- gradle.properties | 1 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 60756 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 240 +++++ main.go | 21 - mainMenu/mainMenu.go | 154 --- queryList/queryList.go | 220 ----- queryTtlView/queryTtl.go | 77 -- settings.gradle | 1 + .../com/redis/smartcache/cli/Application.java | 63 ++ .../com/redis/smartcache/cli/RedisConfig.java | 43 + .../redis/smartcache/cli/RedisService.java | 15 + .../smartcache/cli/RedisServiceImpl.java | 130 +++ .../cli/SmartCachePromptProvider.java | 15 + .../smartcache/cli/commands/Commands.java | 491 ++++++++++ .../AbstractTableSelectorComponent.java | 471 +++++++++ .../ConfirmationInputExtension.java | 115 +++ .../cli/components/StringInputExtension.java | 79 ++ .../cli/components/TableSelector.java | 168 ++++ .../smartcache/cli/structures/Action.java | 18 + .../smartcache/cli/structures/QueryInfo.java | 297 ++++++ .../smartcache/cli/structures/RowInfo.java | 5 + .../smartcache/cli/structures/RuleInfo.java | 109 +++ .../smartcache/cli/structures/RuleType.java | 22 + .../cli/structures/RuleTypeInfo.java | 25 + .../cli/structures/SortDirection.java | 16 + .../smartcache/cli/structures/SortField.java | 36 + .../smartcache/cli/structures/TableInfo.java | 99 ++ .../com/redis/smartcache/cli/util/Util.java | 97 ++ src/main/resources/application.properties | 2 + src/main/resources/banner.txt | 5 + src/main/resources/confirmation-input.stg | 40 + .../native-image/resource-config.json | 7 + src/main/resources/proxy-config.json | 5 + src/main/resources/reflection-config.json | 11 + src/main/resources/table-selector.stg | 45 + .../cli/SmartCacheCliApplicationTests.java | 13 + util/util.go | 53 - 57 files changed, 2766 insertions(+), 3262 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .goreleaser.yaml delete mode 100644 BulkUpdateConfirmation/BulkUpdateConfirmation.go delete mode 100644 ConfirmationDialog/confirmation.go delete mode 100644 README.adoc delete mode 100644 RedisCommon/redis.go delete mode 100644 RuleDialog/RuleDialog.go delete mode 100644 RuleList/RuleList.go delete mode 100644 RuleTtlView/RuleTtlView.go delete mode 100644 SortDialog/sortDialog.go delete mode 100644 TableList/TableList.go create mode 100644 build.gradle delete mode 100644 cmd/listqueries.go delete mode 100644 cmd/listtables.go delete mode 100644 cmd/makerule.go delete mode 100644 cmd/root.go delete mode 100644 go.mod delete mode 100644 go.sum create mode 100644 gradle.properties create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew delete mode 100644 main.go delete mode 100644 mainMenu/mainMenu.go delete mode 100644 queryList/queryList.go delete mode 100644 queryTtlView/queryTtl.go create mode 100644 settings.gradle create mode 100644 src/main/java/com/redis/smartcache/cli/Application.java create mode 100644 src/main/java/com/redis/smartcache/cli/RedisConfig.java create mode 100644 src/main/java/com/redis/smartcache/cli/RedisService.java create mode 100644 src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java create mode 100644 src/main/java/com/redis/smartcache/cli/SmartCachePromptProvider.java create mode 100644 src/main/java/com/redis/smartcache/cli/commands/Commands.java create mode 100644 src/main/java/com/redis/smartcache/cli/components/AbstractTableSelectorComponent.java create mode 100644 src/main/java/com/redis/smartcache/cli/components/ConfirmationInputExtension.java create mode 100644 src/main/java/com/redis/smartcache/cli/components/StringInputExtension.java create mode 100644 src/main/java/com/redis/smartcache/cli/components/TableSelector.java create mode 100644 src/main/java/com/redis/smartcache/cli/structures/Action.java create mode 100644 src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java create mode 100644 src/main/java/com/redis/smartcache/cli/structures/RowInfo.java create mode 100644 src/main/java/com/redis/smartcache/cli/structures/RuleInfo.java create mode 100644 src/main/java/com/redis/smartcache/cli/structures/RuleType.java create mode 100644 src/main/java/com/redis/smartcache/cli/structures/RuleTypeInfo.java create mode 100644 src/main/java/com/redis/smartcache/cli/structures/SortDirection.java create mode 100644 src/main/java/com/redis/smartcache/cli/structures/SortField.java create mode 100644 src/main/java/com/redis/smartcache/cli/structures/TableInfo.java create mode 100644 src/main/java/com/redis/smartcache/cli/util/Util.java create mode 100644 src/main/resources/application.properties create mode 100644 src/main/resources/banner.txt create mode 100644 src/main/resources/confirmation-input.stg create mode 100644 src/main/resources/native-image/resource-config.json create mode 100644 src/main/resources/proxy-config.json create mode 100644 src/main/resources/reflection-config.json create mode 100644 src/main/resources/table-selector.stg create mode 100644 src/test/java/com/redis/smartcache/cli/SmartCacheCliApplicationTests.java delete mode 100644 util/util.go diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..d674e87 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,20 @@ +name: CI +on: + push: + branches: [main] + pull_request: + branches: [main] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: graalvm/setup-graalvm@v1 + with: + java-version: '17' + distribution: 'graalvm' + - name: Gradle Build + run: gradlew build + - name: Native Compile + run: gradlew nativeCompile \ No newline at end of file diff --git a/.gitignore b/.gitignore index bdb0dfc..765a684 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,5 @@ redis-smartcache-bubbletea rsccli smart-cache-cli dist/ +.gradle +build diff --git a/.goreleaser.yaml b/.goreleaser.yaml deleted file mode 100644 index 308546c..0000000 --- a/.goreleaser.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# This is an example .goreleaser.yml file with some sensible defaults. -# Make sure to check the documentation at https://goreleaser.com -before: - hooks: - # You may remove this if you don't use go modules. - - go mod tidy - # you may remove this if you don't need go generate - - go generate ./... -builds: - - env: - - CGO_ENABLED=0 - goos: - - linux - - windows - - darwin - binary: smart-cache-cli - -archives: - - format: tar.gz - # this name template makes the OS and Arch compatible with the results of uname. - name_template: >- - {{ .ProjectName }}_ - {{- title .Os }}_ - {{- if eq .Arch "amd64" }}x86_64 - {{- else if eq .Arch "386" }}i386 - {{- else }}{{ .Arch }}{{ end }} - {{- if .Arm }}v{{ .Arm }}{{ end }} - # use zip for windows archives - format_overrides: - - goos: windows - format: zip -checksum: - name_template: 'checksums.txt' -snapshot: - name_template: "{{ incpatch .Version }}-next" -changelog: - sort: asc - filters: - exclude: - - '^docs:' - - '^test:' - -# The lines beneath this are called `modelines`. See `:help modeline` -# Feel free to remove those if you don't want/use them. -# yaml-language-server: $schema=https://goreleaser.com/static/schema.json -# vim: set ts=2 sw=2 tw=0 fo=cnqoj diff --git a/BulkUpdateConfirmation/BulkUpdateConfirmation.go b/BulkUpdateConfirmation/BulkUpdateConfirmation.go deleted file mode 100644 index 42c9b01..0000000 --- a/BulkUpdateConfirmation/BulkUpdateConfirmation.go +++ /dev/null @@ -1,99 +0,0 @@ -package BulkUpdateConfirmation - -import ( - "fmt" - "smart-cache-cli/RedisCommon" - "strings" - - "github.com/charmbracelet/bubbles/textinput" - tea "github.com/charmbracelet/bubbletea" - "github.com/redis/go-redis/v9" -) - -func (m Model) Init() tea.Cmd { - return nil -} - -type BulkConfirmationMessage struct { - Message string - ConfirmedUpdate bool -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - var cmd tea.Cmd - - switch msg := msg.(type) { - case tea.KeyMsg: - s := msg.String() - switch s { - case tea.KeyEsc.String(), tea.KeyCtrlC.String(), "q": - return m, tea.Quit - case "y", "Y": - RedisCommon.UpdateRules(m.rdb, m.rulesToAdd, m.rulesToUpdate, m.rulesToDelete, m.applicationName) - m.parentModel, _ = m.parentModel.Update(BulkConfirmationMessage{ - Message: "Rule Updates Committed to Redis.", - ConfirmedUpdate: true, - }) - return m.parentModel, cmd - case "n", "N": - m.parentModel.Update(BulkConfirmationMessage{ - ConfirmedUpdate: false, - }) - return m.parentModel, cmd - } - } - - return m, cmd -} - -func (m Model) View() string { - body := strings.Builder{} - - if len(m.rulesToAdd) > 0 { - body.WriteString("====== Rules to Add ======\n") - for _, r := range m.rulesToAdd { - body.WriteString(r.Formatted() + "\n") - } - } - - if len(m.rulesToUpdate) > 0 { - body.WriteString("\n\n====== Rules To Update ======\n") - for _, r := range m.rulesToUpdate { - body.WriteString(fmt.Sprintf("%s\n", r.Formatted())) - } - } - - if len(m.rulesToDelete) > 0 { - body.WriteString("\n\n====== Rules to Delete ======\n") - for _, r := range m.rulesToDelete { - body.WriteString(fmt.Sprintf("%s\n", r.Formatted())) - } - } - - body.WriteString("Do you want to continue? (y/N)") - return body.String() -} - -type Model struct { - parentModel tea.Model - inputMode textinput.Model - rulesToAdd []RedisCommon.Rule - rulesToUpdate map[int]RedisCommon.Rule - rulesToDelete map[int]RedisCommon.Rule - rdb *redis.Client - applicationName string -} - -func New(parentModel tea.Model, rulesToAdd []RedisCommon.Rule, rulesToUpdate map[int]RedisCommon.Rule, rulesToDelete map[int]RedisCommon.Rule, rdb *redis.Client, applicationName string) Model { - ti := textinput.New() - ti.Focus() - return Model{ - parentModel: parentModel, - inputMode: ti, - rulesToAdd: rulesToAdd, - rulesToDelete: rulesToDelete, - rulesToUpdate: rulesToUpdate, - rdb: rdb, - applicationName: applicationName, - } -} diff --git a/ConfirmationDialog/confirmation.go b/ConfirmationDialog/confirmation.go deleted file mode 100644 index 73521e1..0000000 --- a/ConfirmationDialog/confirmation.go +++ /dev/null @@ -1,95 +0,0 @@ -package ConfirmationDialog - -import ( - "fmt" - "github.com/charmbracelet/bubbles/textinput" - tea "github.com/charmbracelet/bubbletea" - "smart-cache-cli/RedisCommon" - "strings" -) - -func (m Model) Init() tea.Cmd { - return nil -} - -type ConfirmationMessage struct { - Message string - ConfirmedUpdate bool -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - var cmd tea.Cmd - - switch msg := msg.(type) { - case tea.KeyMsg: - s := msg.String() - switch s { - case tea.KeyEsc.String(), "b": - m.parentModel, _ = m.parentModel.Update(msg) - return m.parentModel, nil - case tea.KeyCtrlC.String(), "q": - m.parentModel, _ = m.parentModel.Update(msg) - return m.parentModel, tea.Quit - case "y", "Y": - if m.parentModel == nil { - m.Confirmed = true - return m, tea.Quit - } - m.parentModel, _ = m.parentModel.Update(ConfirmationMessage{ - Message: "Rule Updates Committed to Redis.", - ConfirmedUpdate: true, - }) - return m.parentModel, cmd - - case "n", "N": - if m.parentModel == nil { - m.Confirmed = false - return m, tea.Quit - } - m.parentModel.Update(ConfirmationMessage{ - ConfirmedUpdate: false, - }) - return m.parentModel, cmd - - } - } - - return m, cmd -} - -func (m Model) View() string { - body := strings.Builder{} - noun := "rule" - if len(m.pendingRules) > 1 { - noun = "rules" - } - - body.WriteString(fmt.Sprintf("Would you like to commit the following caching %s?\n", noun)) - body.WriteString("============= Rules to Commit ==============\n") - for _, r := range m.pendingRules { - body.WriteString(r.Formatted()) - body.WriteString("\n") - - } - - body.WriteString("============================================\n") - body.WriteString("(y)es / (N)o?") - return body.String() -} - -type Model struct { - parentModel tea.Model - inputMode textinput.Model - pendingRules map[string]RedisCommon.Rule - Confirmed bool -} - -func New(parentModel tea.Model, pendingRules map[string]RedisCommon.Rule) Model { - ti := textinput.New() - ti.Focus() - return Model{ - parentModel: parentModel, - inputMode: ti, - pendingRules: pendingRules, - } -} diff --git a/README.adoc b/README.adoc deleted file mode 100644 index 6d43717..0000000 --- a/README.adoc +++ /dev/null @@ -1,219 +0,0 @@ -:linkattrs: -:project-owner: redis-field-engineering -:project-name: redis-smart-cache-cli -:project-group: com.redis -:project-version: 0.0.2 -:project-url: https://github.com/{project-owner}/{project-name} -:product-name: Redis Smart Cache CLI -:property-prefix: smartcache -:grafana-dir: demo/redis-smart-cache-demo/grafana -:imagesdir: .github/images -:toc: -:toc-placement!: - -= Redis Smart Cache CLI - -The Redis Smart Cache CLI is a tool for managing and configuring https://github.com/redis-field-engineering/redis-smart-cache[Redis Smart Cache]. - -This CLI lets you view your application's queries, analyze query performance, and select which queries you want cached. - -== Installation - -=== Homebrew - -You can install the Redis Smart Cache CLI by running: - -`brew install redis-field-engineering/tap/smart-cache-cli` - -=== Download the Binaries - -You can also download the Redis Smart Cache CLI binaries directly, select the https://github.com/redis-field-engineering/redis-smart-cache-cli/releases[latest release to download]. We provide builds for Linux, macOS, and Windows, across a variety of architectures. - -== Usage - -There are two ways to use the CLI: - -1. In **interactive mode**, you can navigate the CLI's menus to observe the queries and tables being profiled by Smart Cache. You can then apply updates to the rules used to guide Smart Cache's caching decisions. -2. In **scripted mode**, you can run ad-hoc commands. This is useful when scripting interactions with Smart Cache. - -=== Common Flags - -[cols="1,1,1,1,1"] -|=== -|Flag Name|Shortcut|Type|Description|Default - -| --application -| -s -| string -| The application namespace to use -| smartcache - -| --host -| -n -| string -| Host to connect to Redis on -| localhost - -| --port -| -p -| string -| Port to connect to Redis on -| 6379 - -| --user -| -u -| string -| User to authenticate to Redis with -| default - -| --password -| -a -| string -| Redis password - -| --help -| -| -| help for smart-cache-cli -| - -|=== - -=== Interactive - -To run Redis Smart Cache CLI in interactive mode, execute `smart-cache-cli` with the flags needed to connect to your Redis instance. You'll then see a text-based dialog with the following options: - -. List Queries -. Rule List -. Create Rule -. Table List - -==== List Queries - -The List Queries table shows you the queries that Smart Cache is currently tracking: - -image:query-list-table.png[Query List Table] - -This dialog lets you choose which queries you want to create rules for. To create a pending rule for a given query, select the query you want and then press _return_. -This will open a rule dialog which will show you expanded details for the query. You can then provide a TTL, which will enable caching for this query. - -image:query-rule-dialog.png[Query Rule Dialog] - -==== List Rules - -The List Rules dialog displays the rules currently in force for Smart Cache. You can batch the creation, editing, and deletion of rules. - -image:rule-list.png[Rule List] - -==== Rule Creation - -The Rule Creation dialog allows you to create and prioritize caching rules. - -image:rule-creation.png[Rule Creation Dialog] - -==== Table List - -The Table List view provides you a table-level view of the profiling done by Smart Cache. - -You can see your tables, their access frequency, and the mean query time for all queries executed against them. You can also see whether a query is cached, including the configured TTL for any cached queries. - -image:table-list.png[Table List] - -=== Non-Interactive Commands - -The Smart Cache CLI provides several non-interactive (i.e., scriptable) commands. These include: - -1. List Queries -2. Create Rules - -==== List Queries - -The List Queries command lists the queries seen by Smart Cache. Example: - -``` -smart-cache-cli listqueries -``` - -image:list-queries.png[List Queries] - -===== List Queries flags - -[cols="1,1,1,1,1"] -|=== -|Flag Name|Shortcut|Type|Description|Default - -|--sortDirection -|-d -|string -|The direction to sort by. Valid options include DESC and ASC. -|DESC - -|--sortby -|-b -|string -|The column to sort by. Valid options include 'queryTime', 'accessFrequency', 'tables', and 'id'. -|queryTime - -|=== - -==== Rule Creation - -The `makerule` command lets you create rules on the fly. This command is non-interactive (i.e., scriptable) when you include the `y` flag (to confirm rule creation). See the flag descriptions below for details: - -===== Rule Creation Flags - -[cols="1,1,1,1,1"] -|=== -|Flag Name|Shortcut|Type|Description|required - -|--ttl -|-t -|string -|The time to live as a duration (e.g. 5m, 300s, 2d) the rule. Essentially, this is how long the query will be cached for. -|yes - -|--confirm -|-y -| -| Provide this flag with a value of `-y` to run this command in non-interactive (i.e., scripted) mode. -|no - -|--queryIds -|-q -|string -|Comma-delimited unordered list of the IDs of the queries that the rule will apply to. -|no - -|--regex -|-r -|string -|The regex to use to match this rule. If the regex matches, the rule will apply. -|no - -|--tablesAll -|-l -|string -|Comma-delimited unordered set of table names. Matches if **all** of these tables in the set appear in the query (other tables may appear, as well). -|no - -|--tablesAny -|-x -|string -|Comma-delimited unordered set of table names. Matches if **any** of these tables appear in the query. -|no - -|--tablesExact -|-e -|string -|Comma-delimited unordered set of table names. Matches of all of these tables – and no others – appear in the query. -|no - -|=== - -== Support - -{product-name} is supported by Redis, Inc. on a good faith effort basis. To report bugs, request features, or receive assistance, please {project-url}/issues[file an issue]. - -== License - -{product-name} is licensed under the MIT License. Copyright (C) 2023 Redis, Inc. \ No newline at end of file diff --git a/RedisCommon/redis.go b/RedisCommon/redis.go deleted file mode 100644 index 3edca88..0000000 --- a/RedisCommon/redis.go +++ /dev/null @@ -1,910 +0,0 @@ -package RedisCommon - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "hash/fnv" - "reflect" - "regexp" - "smart-cache-cli/SortDialog" - "smart-cache-cli/util" - "sort" - "strconv" - "strings" - - "github.com/charmbracelet/lipgloss" - "github.com/evertras/bubble-table/table" - "github.com/redis/go-redis/v9" -) - -var ctx = context.Background() - -type IndexType int -type SortField string -type Direction string -type RuleType string - -const ( - All RuleType = "All" - Regex RuleType = "Regex" - Tables RuleType = "Tables Exact" - TablesAny RuleType = "Tables Any" - TablesAll RuleType = "Tables All" - QueryIds RuleType = "Query IDs" - Unknown RuleType = "Unknown" -) - -const ( - hashIdx IndexType = iota - jsonIdx -) - -const ( - queryTime = "Query Time" - accessFrequency = "Access Frequency" -) - -const ( - ascending = "ascending" - descending = "descending" -) - -type Table struct { - Name string - AccessFrequency uint64 - QueryTime float64 - Rule *Rule -} - -type Query struct { - Id string - Table string - Sql string - Key string - Count int - MeanTime float64 - Selected bool - Rule *Rule - PendingRule *Rule -} - -func (t Table) GetTtl() string { - if t.Rule != nil { - return t.Rule.Ttl - } - return "" -} - -func MatchTableAndRule(table Table, rules []Rule) *Rule { - for _, rule := range rules { - if rule.TablesAny != nil { - if contains(rule.TablesAny, table.Name) { - return &rule - } - } - - if rule.TablesAll == nil && rule.Tables == nil && rule.TablesAny == nil && rule.Regex == nil && rule.QueryIds == nil { - return &rule - } - - if rule.Tables != nil && contains(rule.Tables, table.Name) { - return &rule - } - - if rule.TablesAll != nil && contains(rule.TablesAll, table.Name) { - return &rule - } - } - return nil -} - -func GetTables(rdb *redis.Client, applicationName string) []Table { - res, err := rdb.Do(ctx, "FT.AGGREGATE", fmt.Sprintf("%s-query-idx", applicationName), "*", "APPLY", "split(@table, ',')", "AS", "name", "GROUPBY", "1", "@name", "REDUCE", "SUM", "1", "count", "as", "accessFrequency", "REDUCE", "AVG", "1", "mean", "AS", "avgQueryTime").Result() - - if err != nil { - panic(err) - } - - rules, err := GetRules(rdb, applicationName) - - if err != nil { - panic(err) - } - outerArr := res.([]interface{}) - tables := make([]Table, outerArr[0].(int64)) - for i, item := range outerArr[1:] { - innerArr := item.([]interface{}) - dict := ToMap(innerArr) - name, _ := dict["name"] - accessFrequencyStr, _ := dict["accessFrequency"] - accessFrequency, _ := strconv.ParseUint(accessFrequencyStr, 10, 64) - avgQueryTimeStr, _ := dict["avgQueryTime"] - avgQueryTime, _ := strconv.ParseFloat(avgQueryTimeStr, 64) - tables[i] = Table{ - Name: name, - AccessFrequency: accessFrequency, - QueryTime: avgQueryTime, - } - } - - for i, table := range tables { - tables[i].Rule = MatchTableAndRule(table, rules) - } - - return tables -} - -func GetPendingOrEmptyString(query *Query) string { - if query.PendingRule == nil { - return "" - } - return query.PendingRule.Ttl -} - -func GetTtlOrEmptyString(query *Query) string { - if query.Rule == nil { - return "" - } - return query.Rule.Ttl -} - -func makeColumn(key string, title string, columnWidth int) table.Column { - return table.NewColumn(key, title, columnWidth).WithStyle( - lipgloss.NewStyle(). - Faint(true). - Foreground(lipgloss.Color("#88f")). - Align(lipgloss.Center)) -} - -func GetColumnNames() []string { - return []string{ - "Id", - "Pending Rule", - "Key", - "Table", - "Sql", - "Access Frequency", - "Mean Query Time", - "Current ttl", - } -} - -func CreateColumns(sortColumn string, direction SortDialog.Direction, colNames []string, colWidth int) []table.Column { - columns := make(map[string]table.Column) - - for _, colName := range colNames { - columns[colName] = makeColumn(colName, colName, colWidth) - } - _, ok := columns[sortColumn] - - if ok { - var symbol string - if direction == SortDialog.Ascending { - symbol = "↑" - } else { - symbol = "↓" - } - columns[sortColumn] = makeColumn(sortColumn, fmt.Sprintf("%s %s", sortColumn, symbol), colWidth) - } - - ret := make([]table.Column, len(colNames)) - for i, c := range colNames { - ret[i] = columns[c] - } - - return ret -} - -func GetColumnsOfRule(sortColumn string, direction SortDialog.Direction) []table.Column { - colWidth := 30 - colNames := []string{ - "TTL", "Rule Type", "Matches", - } - - cols := CreateColumns(sortColumn, direction, colNames, colWidth) - var symbol string - if sortColumn == "RowId" { - if direction == SortDialog.Ascending { - symbol = " ↑" - } else { - symbol = " ↓" - } - } - cols = append([]table.Column{makeColumn("RowId", fmt.Sprintf("Rule Precedence%s", symbol), colWidth)}, cols...) - return cols -} - -func GetColumnsOfQuery(sortColumn string, direction SortDialog.Direction) []table.Column { - - colNames := []string{ - "Id", "Pending Rule", "Key", "Table", "Sql", "Access Frequency", "Mean Query Time", "Caching Enabled", "Current ttl", - } - - return CreateColumns(sortColumn, direction, colNames, 20) -} - -func GetColumnsOfTable(sortColumn string, direction SortDialog.Direction) []table.Column { - colNames := []string{ - "Table Name", - "Query Time", - "Access Frequency", - "TTL", - } - - return CreateColumns(sortColumn, direction, colNames, 20) -} - -func (t *Table) GetAsRow(rowId int) table.Row { - return table.NewRow(table.RowData{ - "Table Name": t.Name, - "Query Time": fmt.Sprintf("%.2f", t.QueryTime), - "Access Frequency": t.AccessFrequency, - "TTL": t.GetTtl(), - "RowId": rowId, - }) -} - -func (query *Query) GetAsRow(rowId int) table.Row { - cachingEnabled := "TRUE" - if GetTtlOrEmptyString(query) == "" { - cachingEnabled = "FALSE" - } - return table.NewRow(table.RowData{ - "Id": query.Id, - "Pending Rule": GetPendingOrEmptyString(query), - "Key": query.Key, - "Table": query.Table, - "Sql": query.Sql, - "Access Frequency": strconv.Itoa(query.Count), - "Mean Query Time": fmt.Sprintf("%.2fms", query.MeanTime), - "Current ttl": GetTtlOrEmptyString(query), - "RowId": rowId, - "Caching Enabled": cachingEnabled, - }) -} - -func (r Rule) Formatted() string { - builder := strings.Builder{} - builder.WriteString(fmt.Sprintf("Rule Type:%s\nRule TTL:%s\n", r.GetType(), r.Ttl)) - - if r.Tables != nil { - builder.WriteString(fmt.Sprintf("Tables: %s\n", strings.Join(r.Tables, ","))) - } - - if r.TablesAll != nil { - builder.WriteString(fmt.Sprintf("Tables All: %s\n", strings.Join(r.TablesAll, ","))) - } - - if r.TablesAny != nil { - builder.WriteString(fmt.Sprintf("Tables Any: %s\n", strings.Join(r.TablesAny, ","))) - } - - if r.QueryIds != nil { - builder.WriteString(fmt.Sprintf("Query IDs: %s\n", strings.Join(r.QueryIds, ","))) - } - - if r.Regex != nil { - builder.WriteString(fmt.Sprintf("Regex: %s\n", *r.Regex)) - } - - return builder.String() -} - -func (t Table) Formatted() string { - return fmt.Sprintf( - ` -Table: -Name: %s -TTL: %s`, - t.Name, - t.GetTtl()) -} - -func splitAcrossLines(s string, width int) string { - var substrings []string - - for i := 0; i < len(s); i += width { - endIndex := i + width - if endIndex > len(s) { - endIndex = len(s) - } - - substrings = append(substrings, s[i:endIndex]) - } - - return strings.Join(substrings, "\n") -} - -func (query *Query) Formatted(width int) string { - builder := strings.Builder{} - - builder.WriteString("=== Query Details ===\n\n") - builder.WriteString(fmt.Sprintf("Id:\t\t\t%s\n", query.Id)) - builder.WriteString(fmt.Sprintf("Pending rule:\t%s\n", GetPendingOrEmptyString(query))) - builder.WriteString(fmt.Sprintf("Key:\t\t\t%s\n", query.Key)) - builder.WriteString(fmt.Sprintf("Table:\t\t\t%s\n", query.Table)) - if len(query.Sql)+4 > width { - builder.WriteString(fmt.Sprintf("SQL:\n\n%s\n\n", splitAcrossLines(query.Sql, width))) - } else { - builder.WriteString(fmt.Sprintf("SQL:%s\n", query.Sql)) - } - builder.WriteString(fmt.Sprintf("Access frequency %s\n", strconv.Itoa(query.Count))) - builder.WriteString(fmt.Sprintf("Mean query time: %.2fms\n", query.MeanTime)) - builder.WriteString(fmt.Sprintf("Current TTL: %s\n", GetTtlOrEmptyString(query))) - - return builder.String() -} - -func (table *Table) GetRow(colWidth int) string { - row := "|" - row += util.CenterString(table.Name, colWidth) + "|" - row += util.CenterString(strconv.FormatUint(table.AccessFrequency, 10), colWidth) + "|" - row += util.CenterString(fmt.Sprintf("%.2f", table.QueryTime), colWidth) + "|" - row += util.CenterString(table.GetTtl(), colWidth) + "|" - return row -} - -func (query *Query) GetRow(colWidth int) string { - row := "|" - - row += util.CenterString(query.Id, colWidth) + "|" - row += util.CenterString(GetPendingOrEmptyString(query), colWidth) + "|" - row += util.CenterString(query.Key, colWidth) + "|" - row += util.CenterString(query.Table, colWidth) + "|" - row += util.CenterString(query.Sql, colWidth) + "|" - row += util.CenterString(strconv.Itoa(query.Count), colWidth) + "|" - row += util.CenterString(fmt.Sprintf("%.2fms", query.MeanTime), colWidth) + "|" - row += util.CenterString(GetTtlOrEmptyString(query), colWidth) + "|" - return row -} - -func GetTablesTableHeader(colWidth int) string { - row := "|" - row += util.CenterString("Name", colWidth) + "|" - row += util.CenterString("Access Frequency", colWidth) + "|" - row += util.CenterString("Query Time", colWidth) + "|" - row += util.CenterString("TTL", colWidth) + "|" - return row -} - -func GetHeader(colWidth int) string { - row := "|" - row += util.CenterString("id", colWidth) + "|" - row += util.CenterString("Pending TTL", colWidth) + "|" - row += util.CenterString("keyName", colWidth) + "|" - row += util.CenterString("table", colWidth) + "|" - row += util.CenterString("sql", colWidth) + "|" - row += util.CenterString("Access Freq.", colWidth) + "|" - row += util.CenterString("Mean Query Time", colWidth) + "|" - row += util.CenterString("Current TTL", colWidth) + "|" - return row -} - -func (r Rule) GetJson() string { - b, err := json.Marshal(r) - if err != nil { - fmt.Println("Error: Unable to serialize rule.") - panic(r) - } - - return string(b) -} - -func (r Rule) Equal(other Rule) bool { - return reflect.DeepEqual(r, other) -} - -type Rule struct { - Tables []string `json:"tables"` - TablesAny []string `json:"tablesAny"` - TablesAll []string `json:"tablesAll"` - Regex *string `json:"regex"` - QueryIds []string `json:"queryIds"` - Ttl string `json:"ttl"` -} - -func (r Rule) Type() { - -} - -type SearchResult struct { - count int64 - documents map[string]interface{} - indexType IndexType -} - -func ToMap(res []interface{}) map[string]string { - m := make(map[string]string, len(res)/2) - for i := 0; i < len(res); i += 2 { - m[res[i].(string)] = res[i+1].(string) - } - return m -} - -func ToLabelsMap(res []interface{}) map[string]string { - m := make(map[string]string, len(res)/2) - for _, item := range res { - fvp := item.([]interface{}) - m[fvp[0].(string)] = fvp[1].(string) - } - return m -} - -func GetQueries(rdb *redis.Client, applicationName string) ([]*Query, error) { - res, err := rdb.Do(ctx, "TS.MGET", "WITHLABELS", "FILTER", "name=query", "stat=(count,mean)").Result() - if err != nil { - return nil, err - } - rules, err := GetRules(rdb, applicationName) - if err != nil { - return nil, err - } - - arr, ok := res.([]interface{}) - if !ok { - return nil, errors.New("Error: Failed to parse result from Redis") - } - - queries := make(map[string]*Query) - - for _, item := range arr { - labelArr := item.([]interface{})[1] - labels := ToLabelsMap(labelArr.([]interface{})) - id := labels["id"] - - _, exists := queries[id] - - if !exists { - q := new(Query) - q.Id = id - q.Key = fmt.Sprintf("%s:queries:%s", applicationName, id) - queries[id] = q - } - - if labels["stat"] == "mean" { - queries[id].MeanTime, err = strconv.ParseFloat(item.([]interface{})[2].([]interface{})[1].(string), 64) - if err != nil { - return nil, err - } - } - - if labels["stat"] == "count" { - queries[id].Count, err = strconv.Atoi(item.([]interface{})[2].([]interface{})[1].(string)) - if err != nil { - return nil, err - } - } - } - - pipeResults := make(map[string]*redis.MapStringStringCmd) - pipe := rdb.Pipeline() - for id := range queries { - pipeResults[id] = pipe.HGetAll(ctx, fmt.Sprintf("%s:query:%s", applicationName, id)) - } - - _, err = pipe.Exec(ctx) - - if err != nil { - return nil, err - } - - for id := range pipeResults { - result, err := pipeResults[id].Result() - if err != nil { - continue - } - - table, present := result["table"] - if present { - queries[id].Table = table - } - - sql, present := result["sql"] - if present { - queries[id].Sql = sql - } - } - querySlice := make([]*Query, len(queries)) - j := 0 - for k := range queries { - MatchRule(queries[k], rules) - querySlice[j] = queries[k] - j++ - } - - return querySlice, nil -} - -func contains(s []string, str string) bool { - for _, v := range s { - if v == str { - return true - } - } - - return false -} - -func (r Rule) GetType() RuleType { - if r.Tables != nil { - return Tables - } - - if r.TablesAny != nil { - return TablesAny - } - - if r.TablesAll != nil { - return TablesAll - } - - if r.QueryIds != nil { - return QueryIds - } - - if r.Regex != nil { - return Regex - } - - return All -} - -func (r Rule) AsRow(rowId int) table.Row { - - rd := table.RowData{} - rd["TTL"] = r.Ttl - rd["Matches"] = "any" - rd["Rule Type"] = r.GetType() - if r.Tables != nil { - rd["Matches"] = strings.Join(r.Tables, ",") - } - - if r.TablesAny != nil { - rd["Matches"] = strings.Join(r.TablesAny, ",") - } - - if r.TablesAll != nil { - rd["Matches"] = strings.Join(r.TablesAll, ",") - } - - if r.QueryIds != nil { - rd["Matches"] = strings.Join(r.QueryIds, ",") - } - - if r.Regex != nil { - rd["Matches"] = *r.Regex - } - - rd["RowId"] = rowId - - return table.NewRow(rd) -} - -func GetRules(rdb *redis.Client, applicationName string) ([]Rule, error) { - - res, err := rdb.XRevRangeN(ctx, fmt.Sprintf("%s:config", applicationName), "+", "-", 1).Result() - - if err != nil { - return nil, err - } - - if len(res) < 1 { - return make([]Rule, 0), nil - } - - ruleMap := make(map[int]Rule) - - for key, _ := range res[0].Values { - value := res[0].Values[key] - split := strings.Split(key, ".") - if len(split) < 3 { - fmt.Printf("Skipping invalid rule '%s'\n", res[0].Values[key]) - continue - } - - ruleNum, err := strconv.Atoi(split[1]) - if err != nil { - fmt.Printf("Skipping rule '%s'. Invalid rule number %s\n", key) - continue - } - - rule, ruleInMap := ruleMap[ruleNum] - if !ruleInMap { - rule = Rule{} - } - - ruleComponent := split[2] - - switch ruleComponent { - case "tables": - if rule.Tables == nil { - rule.Tables = make([]string, 0) - } - rule.Tables = append(rule.Tables, value.(string)) - case "tables-any": - if rule.TablesAny == nil { - rule.TablesAny = make([]string, 0) - } - rule.TablesAny = append(rule.TablesAny, value.(string)) - case "tables-all": - if rule.TablesAll == nil { - rule.TablesAll = make([]string, 0) - } - rule.TablesAll = append(rule.TablesAll, value.(string)) - case "query-ids": - if rule.QueryIds == nil { - rule.QueryIds = make([]string, 0) - } - rule.QueryIds = append(rule.QueryIds, value.(string)) - case "regex": - r := value.(string) - rule.Regex = &r - case "ttl": - rule.Ttl = value.(string) - } - - ruleMap[ruleNum] = rule - - } - - rules := make([]Rule, len(ruleMap)) - - for i, rule := range ruleMap { - rules[i-1] = rule - } - - return rules, nil -} - -func MatchRule(query *Query, rules []Rule) { - tables := strings.Split(query.Table, ",") - for _, rule := range rules { - match := true - for _, table := range tables { - match = match && contains(rule.Tables, table) - } - - if match { - query.Rule = &rule - return - } - - match = true - for _, table := range rule.TablesAll { - match = match && contains(tables, table) - } - - if match && rule.TablesAll != nil && len(rule.TablesAll) > 0 { - query.Rule = &rule - return - } - - match = false - for _, table := range tables { - match = match || contains(rule.TablesAny, table) - } - - if match { - query.Rule = &rule - return - } - - if rule.Regex != nil { - match, err := regexp.MatchString(*rule.Regex, query.Sql) - if err != nil { - match = false - } - - if match { - query.Rule = &rule - return - } - - } - - if contains(rule.QueryIds, query.Id) { - query.Rule = &rule - return - } - - if rule.TablesAny == nil && rule.Tables == nil && rule.TablesAll == nil && rule.Regex == nil && rule.QueryIds == nil { - query.Rule = &rule - return - } - } -} - -func NewRule(id string, ttl string) *Rule { - return &Rule{ - QueryIds: []string{id}, - Ttl: ttl, - } -} - -func (r Rule) Hash() uint64 { - h := fnv.New64a() - h.Write([]byte(string(r.Ttl))) - for _, s := range r.QueryIds { - h.Write([]byte(string(s))) - } - for _, s := range r.Tables { - h.Write([]byte(string(s))) - } - for _, s := range r.TablesAny { - h.Write([]byte(string(s))) - } - for _, s := range r.TablesAll { - h.Write([]byte(string(s))) - } - if r.Regex != nil { - h.Write([]byte(string(*r.Regex))) - } - - return h.Sum64() -} - -func (r Rule) NumArgs() int { - num := 1 // for ttl - if r.Regex != nil { - num++ - } - if r.TablesAny != nil { - num++ - } - if r.Tables != nil { - num++ - } - if r.TablesAll != nil { - num++ - } - if r.QueryIds != nil { - num++ - } - return num -} - -func serializeToJacksonArr(arr []string, component string, ruleNum int) []string { - var res []string - for i, item := range arr { - res = append(res, fmt.Sprintf("rules.%d.%s.%d", ruleNum, component, i+1)) - res = append(res, item) - } - - return res -} - -func (r Rule) SerializeToStreamMsg(ruleNum int) []string { - var ret []string - ret = append(ret, fmt.Sprintf("rules.%d.ttl", ruleNum)) - ret = append(ret, r.Ttl) - if r.Regex != nil { - ret = append(ret, fmt.Sprintf("rules.%d.regex", ruleNum)) - ret = append(ret, *r.Regex) - } - if r.TablesAny != nil { - ret = append(ret, serializeToJacksonArr(r.TablesAny, "tables-any", ruleNum)...) - } - if r.Tables != nil { - ret = append(ret, serializeToJacksonArr(r.Tables, "tables", ruleNum)...) - } - if r.TablesAll != nil { - ret = append(ret, serializeToJacksonArr(r.TablesAll, "tables-all", ruleNum)...) - } - if r.QueryIds != nil { - ret = append(ret, serializeToJacksonArr(r.QueryIds, "query-ids", ruleNum)...) - } - - return ret -} - -func CommitNewRules(rdb *redis.Client, rules []Rule, applicationName string) (string, error) { - currentRules, err := GetRules(rdb, applicationName) - if err != nil { - panic(err) - } - - args := make([]string, 0) - - for i, rule := range rules { - args = append(args, rule.SerializeToStreamMsg(i+1)...) - } - - for i, rule := range currentRules { - args = append(args, rule.SerializeToStreamMsg(i+1+len(rules))...) - } - - xAddArgs := redis.XAddArgs{Stream: fmt.Sprintf("%s:config", applicationName), Values: args} - - id, err := rdb.XAdd(ctx, &xAddArgs).Result() - if err != nil { - return "", err - } - - return id, nil -} - -func UpdateRules(rdb *redis.Client, rulesToAdd []Rule, rulesToUpdate map[int]Rule, rulesToDelete map[int]Rule, applicationName string) error { - currentRules, err := GetRules(rdb, applicationName) - - if err != nil { - panic(err) - } - - rulesToCommit := make([]Rule, len(currentRules)) - copy(rulesToCommit, currentRules) - - for index, rule := range rulesToUpdate { - if index >= len(currentRules) { - return fmt.Errorf("Unable to update rules: rules out of sync.") - } - - rulesToCommit[index] = rule - } - - indexesToPop := make([]int, len(rulesToDelete)) - i := 0 - for index, _ := range rulesToDelete { - indexesToPop[i] = index - i++ - } - - sort.Slice(indexesToPop, func(i, j int) bool { - return indexesToPop[i] > indexesToPop[j] - }) - - for _, i := range indexesToPop { - rulesToCommit = append(rulesToCommit[:i], rulesToCommit[i+1:]...) - } - - for _, rule := range rulesToAdd { - rulesToCommit = append([]Rule{rule}, rulesToCommit...) - } - - args := make([]string, 0) - - for i, rule := range rulesToCommit { - args = append(args, rule.SerializeToStreamMsg(i+1)...) - } - - if len(args) == 0 { - args = append(args, "rule.1.ttl") - args = append(args, "0s") - } - - xAddArgs := redis.XAddArgs{Stream: fmt.Sprintf("%s:config", applicationName), Values: args} - - _, err = rdb.XAdd(ctx, &xAddArgs).Result() - if err != nil { - return err - } - return nil -} - -func Ping(rdb *redis.Client) error { - _, err := rdb.Ping(ctx).Result() - return err -} - -func CheckSmartCacheIndex(rdb *redis.Client, applicationName string) error { - res, err := rdb.Do(ctx, "FT._LIST").Result() - if err != nil { - return err - } - - arr := res.([]interface{}) - - strs := make([]string, len(arr)) - - for index, i := range arr { - strs[index] = i.(string) - } - - if !contains(strs, fmt.Sprintf("%s-query-idx", applicationName)) { - return errors.New(fmt.Sprintf("Redis Smart Cache does not appear to be configured for application '%s'. "+ - "Please ensure that Redis Smart Cache is running, configured with application '%s', and pointed at the correct Redis instance.", applicationName, applicationName)) - } - - return nil -} diff --git a/RuleDialog/RuleDialog.go b/RuleDialog/RuleDialog.go deleted file mode 100644 index f8688a9..0000000 --- a/RuleDialog/RuleDialog.go +++ /dev/null @@ -1,266 +0,0 @@ -package RuleDialog - -import ( - "fmt" - "io" - "smart-cache-cli/ConfirmationDialog" - "smart-cache-cli/RedisCommon" - "smart-cache-cli/util" - "strings" - - "github.com/charmbracelet/bubbles/list" - "github.com/charmbracelet/bubbles/textinput" - tea "github.com/charmbracelet/bubbletea" - "github.com/charmbracelet/lipgloss" - "github.com/redis/go-redis/v9" -) - -type item struct{ ruleType RedisCommon.RuleType } - -func (i item) FilterValue() string { return "" } - -type itemDelegate struct{} - -func (d itemDelegate) Height() int { return 1 } -func (d itemDelegate) Spacing() int { return 0 } -func (d itemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd { return nil } -func (d itemDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) { - i, ok := listItem.(item) - if !ok { - return - } - - str := fmt.Sprintf("%s", i.ruleType) - - fn := itemStyle.Render - if index == m.Index() { - fn = func(s ...string) string { - return selectedItemStyle.Render("> " + s[0]) - } - } - - fmt.Fprint(w, fn(str)) -} - -var ( - focusedStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("205")) - blurredStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("240")) - cursorStyle = focusedStyle.Copy() - noStyle = lipgloss.NewStyle() - itemStyle = lipgloss.NewStyle().PaddingLeft(4) - selectedItemStyle = lipgloss.NewStyle().PaddingLeft(2).Foreground(lipgloss.Color("170")) - helpStyle = blurredStyle.Copy() - cursorModeHelpStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("244")) - - focusedButton = focusedStyle.Copy().Render("[ Submit ]") - blurredButton = fmt.Sprintf("[ %s ]", blurredStyle.Render("Submit")) -) - -type RuleMsg struct { - Rule RedisCommon.Rule - IsNew bool -} - -type Model struct { - typeSelectorList list.Model - focusIndex int - error string - parentModel tea.Model - rdb *redis.Client - confirm bool - isNew bool - applicationName string - ruleType RedisCommon.RuleType - ttl string - match string - textInput textinput.Model - wasPreset bool -} - -func New(parentModel tea.Model, rdb *redis.Client, rule *RedisCommon.Rule, confirm bool, applicationName string, ruleType RedisCommon.RuleType) Model { - items := []list.Item{ - item{RedisCommon.Tables}, - item{RedisCommon.TablesAll}, - item{RedisCommon.TablesAny}, - item{RedisCommon.Regex}, - item{RedisCommon.All}, - } - typeSelectList := list.New(items, itemDelegate{}, 50, 15) - typeSelectList.Title = "Select a Rule Type" - - ti := textinput.New() - - ti.Focus() - ti.CharLimit = 30 - ti.Width = 30 - wasPreset := ruleType != RedisCommon.Unknown - - m := Model{ - parentModel: parentModel, - rdb: rdb, - confirm: confirm, - isNew: rule == nil, - applicationName: applicationName, - typeSelectorList: typeSelectList, - ruleType: ruleType, - textInput: ti, - ttl: "", - wasPreset: wasPreset, - } - - return m -} - -func (m Model) Init() tea.Cmd { - return textinput.Blink -} - -func (m Model) GetRuleFromModel() (*RedisCommon.Rule, error) { - - rule := RedisCommon.Rule{ - Ttl: m.ttl, - } - - switch m.ruleType { - case RedisCommon.Tables: - rule.Tables = strings.Split(m.match, ",") - case RedisCommon.TablesAny: - rule.TablesAny = strings.Split(m.match, ",") - case RedisCommon.TablesAll: - rule.TablesAll = strings.Split(m.match, ",") - case RedisCommon.QueryIds: - rule.QueryIds = strings.Split(m.match, ",") - case RedisCommon.Regex: - rule.Regex = &m.match - } - - return &rule, nil -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - switch msg := msg.(type) { - case ConfirmationDialog.ConfirmationMessage: - m.parentModel, _ = m.parentModel.Update(msg) - rule, _ := m.GetRuleFromModel() - _, err := RedisCommon.CommitNewRules(m.rdb, []RedisCommon.Rule{*rule}, m.applicationName) - if err != nil { - confMsg := ConfirmationDialog.ConfirmationMessage{ - Message: "Failed to update Redis", - } - - m.parentModel, _ = m.parentModel.Update(confMsg) - } - return m.parentModel, nil - case tea.KeyMsg: - if m.ruleType == RedisCommon.Unknown { - m.typeSelectorList, _ = m.typeSelectorList.Update(msg) - } - switch msg.String() { - case tea.KeyCtrlC.String(): - m.parentModel, _ = m.parentModel.Update(msg) - return m.parentModel, tea.Quit - case tea.KeyCtrlB.String(), tea.KeyEsc.String(): - m.textInput.SetValue("") - if util.ValidateTimeout(m.ttl) == nil { - m.ttl = "" - return m, nil - } - if m.match != "" { - m.match = "" - return m, nil - } else if m.ruleType != RedisCommon.Unknown && !m.wasPreset { - m.ruleType = RedisCommon.Unknown - return m, nil - } - - m.parentModel, _ = m.parentModel.Update(ConfirmationDialog.ConfirmationMessage{ConfirmedUpdate: true}) - return m.parentModel, nil - case tea.KeyTab.String(), tea.KeyShiftTab.String(), tea.KeyEnter.String(), tea.KeyUp.String(), tea.KeyDown.String(): - s := msg.String() - - if s == "enter" { - if m.ruleType == RedisCommon.Unknown { - i, _ := m.typeSelectorList.SelectedItem().(item) - m.ruleType = i.ruleType - return m, nil - } else if m.match == "" && m.ruleType != RedisCommon.All { - if m.textInput.Value() != "" { - m.match = m.textInput.Value() - m.textInput.SetValue("") - return m, nil - } - } else if util.ValidateTimeout(m.ttl) != nil { - candidateTtl := m.textInput.Value() - if util.ValidateTimeout(candidateTtl) == nil { - m.ttl = candidateTtl - m.textInput.SetValue("") - m.textInput.Placeholder = "" - rule, err := m.GetRuleFromModel() - if err != nil { - m.error = err.Error() - return m, nil - } - - if !m.confirm { - respMsg := RuleMsg{ - Rule: *rule, - IsNew: m.isNew, - } - - m.parentModel, _ = m.parentModel.Update(respMsg) - return m.parentModel, nil - } - - ruleMap := make(map[string]RedisCommon.Rule) - ruleMap[rule.Ttl] = *rule - return ConfirmationDialog.New(m, ruleMap), nil - } - } - } - } - if m.ruleType != RedisCommon.Unknown { - m.textInput, _ = m.textInput.Update(msg) - } - - } - return m, nil - -} - -func (m Model) ruleSoFar() string { - var b strings.Builder - if m.ruleType != RedisCommon.Unknown { - b.WriteString(fmt.Sprintf("Rule Type: %s\n", m.ruleType)) - } - if m.match != "" { - b.WriteString(fmt.Sprintf("Match Against: %s\n", m.match)) - } - - return b.String() -} - -func (m Model) View() string { - var b strings.Builder - - if m.ruleType == RedisCommon.Unknown { - b.WriteString(" == Create rule menu ==\n\n Select the type of rule you want to create.\n Press [CTRL+B] to return to the previous screen.\n\n") - b.WriteString(m.typeSelectorList.View()) - return b.String() - } else if m.match == "" && m.ruleType != RedisCommon.All { - b.WriteString(m.ruleSoFar()) - if m.ruleType == RedisCommon.Regex { - b.WriteString("Enter a regular expression to match against:") - } else if m.ruleType == RedisCommon.QueryIds { - b.WriteString("Enter a comma-separated list of Query IDs to match against:") - } else { - b.WriteString("Enter a comma-separated list of tables to match against:") - } - b.WriteString(m.textInput.View()) - } else { - b.WriteString(m.ruleSoFar()) - b.WriteString("Enter a TTL in the form of a duration (e.g. 1h, 300s, 5m):") - b.WriteString(m.textInput.View()) - } - - return b.String() -} diff --git a/RuleList/RuleList.go b/RuleList/RuleList.go deleted file mode 100644 index e8ac2f3..0000000 --- a/RuleList/RuleList.go +++ /dev/null @@ -1,262 +0,0 @@ -package RuleList - -import ( - "smart-cache-cli/BulkUpdateConfirmation" - "smart-cache-cli/ConfirmationDialog" - "smart-cache-cli/RedisCommon" - "smart-cache-cli/RuleDialog" - "smart-cache-cli/SortDialog" - "smart-cache-cli/util" - "strings" - - tea "github.com/charmbracelet/bubbletea" - "github.com/charmbracelet/lipgloss" - "github.com/evertras/bubble-table/table" - "github.com/redis/go-redis/v9" -) - -type Model struct { - parentModel tea.Model - table table.Model - rules []RedisCommon.Rule - backupRules map[uint64]*RedisCommon.Rule - Selection int - rdb *redis.Client - committed bool - sortColumn string - sortDirection SortDialog.Direction - indexesWithPendingUpdates []int - indexesWithPendingDeletes []int - indexesWithNewRules []int - applicationName string -} - -var ( - customBorder = table.Border{ - Top: "─", - Left: "│", - Right: "│", - Bottom: "─", - - TopRight: "╮", - TopLeft: "╭", - BottomRight: "╯", - BottomLeft: "╰", - - TopJunction: "╥", - LeftJunction: "├", - RightJunction: "┤", - BottomJunction: "╨", - InnerJunction: "╫", - - InnerDivider: "║", - } -) - -func (m Model) Init() tea.Cmd { - return nil -} - -func (m Model) DeleteRow(rowId int) Model { - if contains(rowId, m.indexesWithNewRules) { - util.Remove(m.indexesWithNewRules, rowId) - util.Remove(m.rules, rowId) - } else { - m.indexesWithPendingDeletes = append(m.indexesWithPendingDeletes, rowId) - } - m.table = m.RefreshRows() - return m -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - var cmd tea.Cmd - m.table, cmd = m.table.Update(msg) - rowId := -1 - if len(m.rules) != 0 { - rowId = m.table.HighlightedRow().Data["RowId"].(int) - } - - switch msg := msg.(type) { - case tea.KeyMsg: - s := msg.String() - switch s { - case tea.KeyCtrlC.String(), "q": - return m.parentModel, tea.Quit - case "b", tea.KeyEsc.String(): - m.parentModel, _ = m.parentModel.Update(ConfirmationDialog.ConfirmationMessage{ConfirmedUpdate: true}) - return m.parentModel, nil - case "n": - return RuleDialog.New(m, m.rdb, nil, false, m.applicationName, RedisCommon.Unknown), nil - case "r": - idxInDelete := indexOf(rowId, m.indexesWithPendingDeletes) - if idxInDelete >= 0 { - m.indexesWithPendingDeletes = util.Remove(m.indexesWithPendingDeletes, idxInDelete) - m.table = m.RefreshRows() - } - - idxOfEdit := indexOf(rowId, m.indexesWithPendingUpdates) - if idxOfEdit >= 0 { - h := m.rules[rowId].Hash() - backUp, ok := m.backupRules[h] - if ok { - m.rules[rowId] = *backUp - } - m.indexesWithPendingUpdates = util.Remove(m.indexesWithPendingUpdates, idxOfEdit) - m.table = m.RefreshRows() - } - return m, nil - case "d": - m = m.DeleteRow(rowId) - return m, nil - case "c": - rulesToAdd := make([]RedisCommon.Rule, len(m.indexesWithNewRules)) - for i, idx := range m.indexesWithNewRules { - rulesToAdd[i] = m.rules[idx] - } - - rulesToUpdate := make(map[int]RedisCommon.Rule) - for _, idx := range m.indexesWithPendingUpdates { - rulesToUpdate[idx+len(m.indexesWithNewRules)] = m.rules[idx] - } - - rulesToDelete := make(map[int]RedisCommon.Rule) - for _, idx := range m.indexesWithPendingDeletes { - rulesToDelete[idx+len(m.indexesWithNewRules)] = m.rules[idx] - } - confirmationDialog := BulkUpdateConfirmation.New(m, rulesToAdd, rulesToUpdate, rulesToDelete, m.rdb, m.applicationName) - return confirmationDialog, nil - - case tea.KeyTab.String(), tea.KeySpace.String(), tea.KeyEnter.String(), "e": - if rowId >= 0 { - // pop open editor - rule := m.rules[rowId] - return RuleDialog.New(m, m.rdb, &rule, false, m.applicationName, rule.GetType()), nil - } - } - case BulkUpdateConfirmation.BulkConfirmationMessage: - if msg.ConfirmedUpdate { - m.table = m.table.WithStaticFooter(msg.Message) - m.indexesWithNewRules = m.indexesWithNewRules[:0] - m.indexesWithPendingUpdates = m.indexesWithPendingUpdates[:0] - m.indexesWithPendingDeletes = m.indexesWithPendingDeletes[:0] - m = m.FreshRulesFromRedis() - m.table = m.RefreshRows() - return m, nil - } - case RuleDialog.RuleMsg: - if rowId >= 0 && m.rules[rowId].Equal(msg.Rule) { - return m, nil - } - - if !msg.IsNew { - h := msg.Rule.Hash() - cpy := m.rules[rowId] - m.backupRules[h] = &cpy - m.rules[rowId] = msg.Rule - if !contains(rowId, m.indexesWithPendingUpdates) { - m.indexesWithPendingUpdates = append(m.indexesWithPendingUpdates, rowId) - } - - idxInDelete := indexOf(rowId, m.indexesWithPendingDeletes) - if idxInDelete >= 0 { - m.indexesWithPendingDeletes = util.Remove(m.indexesWithPendingDeletes, idxInDelete) - } - } else { - m.rules = append([]RedisCommon.Rule{msg.Rule}, m.rules...) - for i := range m.indexesWithNewRules { - m.indexesWithNewRules[i]++ - } - m.indexesWithNewRules = append(m.indexesWithNewRules, 0) - - for i := range m.indexesWithPendingDeletes { - m.indexesWithPendingDeletes[i]++ - } - - for i := range m.indexesWithPendingUpdates { - m.indexesWithPendingUpdates[i]++ - } - } - - m.table = m.RefreshRows() - return m, nil - } - - m.table.Update(msg) - return m, cmd -} - -func (m Model) View() string { - body := strings.Builder{} - - body.WriteString("Press [CTRL-C] to quit\n") - body.WriteString("press 'b' to go back\n") - body.WriteString("press [ENTER] to edit a rule\n") - body.WriteString("press 'n' to create a rule\n") - body.WriteString("press 'd' to delete a rule\n") - body.WriteString("press 'c' to commit rule updates\n") - body.WriteString(m.table.View()) - - return body.String() -} - -func indexOf(i int, s []int) int { - for j, k := range s { - if k == i { - return j - } - } - - return -1 -} - -func contains(i int, s []int) bool { - return indexOf(i, s) >= 0 -} - -func (m Model) RefreshRows() table.Model { - rows := make([]table.Row, len(m.rules)) - for i, r := range m.rules { - if contains(i, m.indexesWithPendingUpdates) { - rows[i] = r.AsRow(i).WithStyle(lipgloss.NewStyle().Background(lipgloss.Color("11")).Foreground(lipgloss.Color("0"))) - } else if contains(i, m.indexesWithPendingDeletes) { - rows[i] = r.AsRow(i).WithStyle(lipgloss.NewStyle().Background(lipgloss.Color("9")).Foreground(lipgloss.Color("0"))) - } else if contains(i, m.indexesWithNewRules) { - rows[i] = r.AsRow(i).WithStyle(lipgloss.NewStyle().Background(lipgloss.Color("10")).Foreground(lipgloss.Color("0"))) - } else { - rows[i] = r.AsRow(i) - } - } - - return m.table.WithRows(rows) -} - -func (m Model) FreshRulesFromRedis() Model { - m.rules, _ = RedisCommon.GetRules(m.rdb, m.applicationName) - return m -} - -func New(parentModel tea.Model, rdb *redis.Client, applicationName string) Model { - rules, _ := RedisCommon.GetRules(rdb, applicationName) - rows := make([]table.Row, len(rules)) - for i, r := range rules { - rows[i] = r.AsRow(i) - } - - model := Model{ - table: table.New(RedisCommon.GetColumnsOfRule("RowId", SortDialog.Ascending)). - WithRows(rows). - HeaderStyle(lipgloss.NewStyle().Foreground(lipgloss.Color("10")).Bold(true)). - Focused(true). - Border(customBorder). - WithPageSize(10). - SortByAsc("RowId"). - WithTargetWidth(200), - rules: rules, - parentModel: parentModel, - rdb: rdb, - backupRules: make(map[uint64]*RedisCommon.Rule), - applicationName: applicationName, - } - - return model -} diff --git a/RuleTtlView/RuleTtlView.go b/RuleTtlView/RuleTtlView.go deleted file mode 100644 index c9b6d05..0000000 --- a/RuleTtlView/RuleTtlView.go +++ /dev/null @@ -1,71 +0,0 @@ -package RuleTtlView - -import ( - "fmt" - "smart-cache-cli/RedisCommon" - "smart-cache-cli/util" - - "github.com/charmbracelet/bubbles/textinput" - tea "github.com/charmbracelet/bubbletea" -) - -type TableTtlMsg struct { - Ttl string -} - -type Model struct { - textInput textinput.Model - table *RedisCommon.Table - pendingTtl string - parentModel *tea.Model - err string -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - var cmd tea.Cmd - - switch msg := msg.(type) { - case tea.KeyMsg: - switch msg.Type.String() { - case tea.KeyCtrlB.String(), tea.KeyEsc.String(): - return *m.parentModel, cmd - case tea.KeyCtrlC.String(): - *m.parentModel, _ = (*m.parentModel).Update(msg) - return *m.parentModel, tea.Quit - case tea.KeyEnter.String(): - err := util.ValidateTimeout(m.textInput.Value()) - if err != nil { - m.err = "\n" + err.Error() - } else { - *m.parentModel, cmd = (*m.parentModel).Update(TableTtlMsg{Ttl: m.textInput.Value()}) - return *m.parentModel, cmd - } - } - - } - - m.textInput, cmd = m.textInput.Update(msg) - return m, cmd -} - -func (m Model) Init() tea.Cmd { - return nil -} - -func (m Model) View() string { - return fmt.Sprintf("%s\n\nPress [ESC] to return to the previous screen.\nEnter TTL in the form of a duration (e.g. 300s, 5m, 1h):\n%s%s", m.table.Formatted(), m.textInput.View(), m.err) -} - -func New(table *RedisCommon.Table, parentModel tea.Model) Model { - ti := textinput.New() - ti.Placeholder = "30m" - ti.Focus() - ti.CharLimit = 30 - ti.Width = 30 - return Model{ - textInput: ti, - pendingTtl: "", - parentModel: &parentModel, - table: table, - } -} diff --git a/SortDialog/sortDialog.go b/SortDialog/sortDialog.go deleted file mode 100644 index d14cac2..0000000 --- a/SortDialog/sortDialog.go +++ /dev/null @@ -1,150 +0,0 @@ -package SortDialog - -import ( - "fmt" - "io" - - "github.com/charmbracelet/bubbles/list" - tea "github.com/charmbracelet/bubbletea" - "github.com/charmbracelet/lipgloss" -) - -type Direction string - -type itemDelegate struct{} - -func (d itemDelegate) Height() int { return 1 } -func (d itemDelegate) Spacing() int { return 0 } -func (d itemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd { return nil } -func (d itemDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) { - i, ok := listItem.(item) - if !ok { - return - } - - str := fmt.Sprintf("%d. %s", index+1, i) - - fn := itemStyle.Render - if index == m.Index() { - fn = func(s ...string) string { - return selectedItemStyle.Render("> " + s[0]) - } - } - - fmt.Fprint(w, fn(str)) -} - -const listHeight = 14 - -var ( - titleStyle = lipgloss.NewStyle().MarginLeft(2) - itemStyle = lipgloss.NewStyle().PaddingLeft(4) - selectedItemStyle = lipgloss.NewStyle().PaddingLeft(2).Foreground(lipgloss.Color("170")) - paginationStyle = list.DefaultStyles().PaginationStyle.PaddingLeft(4) - helpStyle = list.DefaultStyles().HelpStyle.PaddingLeft(4).PaddingBottom(1) - quitTextStyle = lipgloss.NewStyle().Margin(1, 0, 2, 4) -) - -const ( - Ascending Direction = "Ascending" - Descending = "Descending" -) - -func (i item) FilterValue() string { return "" } - -type item string - -type SortMessage struct { - Choice string - Direction Direction -} - -type Model struct { - parentModel tea.Model - list list.Model - candidates []string - choice string - direction Direction -} - -func (m Model) Init() tea.Cmd { - return nil -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - - switch msg := msg.(type) { - case tea.WindowSizeMsg: - m.list.SetWidth(msg.Width) - return m, nil - case tea.KeyMsg: - switch keypress := msg.String(); keypress { - case tea.KeyCtrlC.String(): - return m, tea.Quit - case tea.KeyEnter.String(): - if m.choice != "" { - i, ok := m.list.SelectedItem().(item) - if ok { - m.direction = Direction(i) - sm := SortMessage{ - Choice: m.choice, - Direction: m.direction, - } - m.parentModel, _ = m.parentModel.Update(sm) - return m.parentModel, nil - } - - } else { - i, ok := m.list.SelectedItem().(item) - if ok { - m.choice = string(i) - m.list = m.toDirectionMode() - } - } - - } - } - - m.list, _ = m.list.Update(msg) - return m, nil -} - -func (m Model) toDirectionMode() list.Model { - const defaultWidth = 50 - l := list.New([]list.Item{item(Descending), item(Ascending)}, itemDelegate{}, defaultWidth, listHeight) - l.Title = "Select sort direction" - l.SetShowStatusBar(false) - l.SetFilteringEnabled(false) - l.Styles.Title = titleStyle - l.Styles.PaginationStyle = paginationStyle - l.Styles.HelpStyle = helpStyle - return l -} - -func (m Model) View() string { - return "\n" + m.list.View() -} - -func New(candidates []string, parentModel tea.Model) Model { - items := make([]list.Item, len(candidates)) - for i, c := range candidates { - items[i] = item(c) - } - const defaultWidth = 50 - l := list.New(items, itemDelegate{}, defaultWidth, listHeight) - l.Title = "Select sort field" - l.SetShowStatusBar(false) - l.SetFilteringEnabled(false) - l.Styles.Title = titleStyle - l.Styles.PaginationStyle = paginationStyle - l.Styles.HelpStyle = helpStyle - - return Model{ - list: l, - direction: "", - choice: "", - candidates: candidates, - parentModel: parentModel, - } - -} diff --git a/TableList/TableList.go b/TableList/TableList.go deleted file mode 100644 index 22e04de..0000000 --- a/TableList/TableList.go +++ /dev/null @@ -1,138 +0,0 @@ -package TableList - -import ( - "smart-cache-cli/ConfirmationDialog" - "smart-cache-cli/RedisCommon" - "smart-cache-cli/RuleTtlView" - "smart-cache-cli/SortDialog" - "strings" - - tea "github.com/charmbracelet/bubbletea" - "github.com/charmbracelet/lipgloss" - "github.com/evertras/bubble-table/table" - "github.com/redis/go-redis/v9" -) - -var ( - customBorder = table.Border{ - Top: "─", - Left: "│", - Right: "│", - Bottom: "─", - - TopRight: "╮", - TopLeft: "╭", - BottomRight: "╯", - BottomLeft: "╰", - - TopJunction: "╥", - LeftJunction: "├", - RightJunction: "┤", - BottomJunction: "╨", - InnerJunction: "╫", - - InnerDivider: "║", - } -) - -type Model struct { - parentModel tea.Model - table table.Model - tables []RedisCommon.Table - rdb *redis.Client - sortColumn string - sortDirection SortDialog.Direction - applicationName string -} - -func (m Model) Selection() *RedisCommon.Table { - return &m.tables[m.table.HighlightedRow().Data["RowId"].(int)] -} - -func (m Model) Init() tea.Cmd { - return nil -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - var cmd tea.Cmd - switch msg := msg.(type) { - case tea.KeyMsg: - switch msg.String() { - case tea.KeyCtrlC.String(): - return m.parentModel, tea.Quit - case tea.KeyEnter.String(): - return RuleTtlView.New(m.Selection(), m), cmd - case "b", tea.KeyEsc.String(): - m.parentModel, _ = m.parentModel.Update(ConfirmationDialog.ConfirmationMessage{ConfirmedUpdate: true}) - return m.parentModel, nil - case "s": - return SortDialog.New([]string{"Access Frequency", "Query Time"}, m), nil - - } - case RuleTtlView.TableTtlMsg: - rule := RedisCommon.Rule{ - Ttl: msg.Ttl, - TablesAny: []string{m.Selection().Name}, - } - RedisCommon.CommitNewRules(m.rdb, []RedisCommon.Rule{rule}, m.applicationName) - ResetModel(&m) - return m, cmd - case SortDialog.SortMessage: - columns := RedisCommon.GetColumnsOfTable(msg.Choice, msg.Direction) - if msg.Direction == SortDialog.Descending { - m.table = m.table.WithColumns(columns).SortByDesc(msg.Choice) - } else { - m.table = m.table.WithColumns(columns).SortByAsc(msg.Choice) - } - } - m.table, cmd = m.table.Update(msg) - return m, cmd -} - -func (m Model) View() string { - body := strings.Builder{} - body.WriteString("Press [ENTER] to update the TTL for a table\n") - body.WriteString("Press 'b' to go back\n") - body.WriteString("Press 's' to change sorting\n\n") - body.WriteString(m.table.View()) - - return body.String() -} - -func ResetModel(m *Model) { - tables := RedisCommon.GetTables(m.rdb, m.applicationName) - - rows := make([]table.Row, len(tables)) - for i, t := range tables { - rows[i] = t.GetAsRow(i) - } - - m.table = m.table.WithRows(rows) -} - -func New(parentModel tea.Model, rdb *redis.Client, applicationName string) Model { - tables := RedisCommon.GetTables(rdb, applicationName) - - rows := make([]table.Row, len(tables)) - for i, t := range tables { - rows[i] = t.GetAsRow(i) - } - - model := Model{ - tables: tables, - table: table.New(RedisCommon.GetColumnsOfTable("Query Time", SortDialog.Descending)). - WithRows(rows). - HeaderStyle(lipgloss.NewStyle().Foreground(lipgloss.Color("10")).Bold(true)). - Focused(true). - Border(customBorder). - WithPageSize(5). - SortByDesc("Query Time").WithTargetWidth(200), - parentModel: parentModel, - rdb: rdb, - applicationName: applicationName, - sortColumn: "Query Time", - sortDirection: SortDialog.Descending, - } - - return model -} diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..1992fde --- /dev/null +++ b/build.gradle @@ -0,0 +1,55 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.0.7' + id 'io.spring.dependency-management' version '1.1.0' + id 'org.graalvm.buildtools.native' version '0.9.20' +} + +graalvmNative { + metadataRepository { + enabled = true + } + binaries { + main{ + buildArgs.add('-H:ResourceConfigurationFiles=../../../src/main/resources/native-image/resource-config.json') + buildArgs.add('-H:DynamicProxyConfigurationFiles=../../../src/main/resources/proxy-config.json') + buildArgs.add('-H:ReflectionConfigurationFiles=../../../src/main/resources/reflection-config.json') + } + } + +} + +group = 'com.redis.smartcache' +version = '0.0.1-SNAPSHOT' +sourceCompatibility = '17' + +repositories { + mavenCentral() +} + +ext { + set('springShellVersion', "3.0.3") +} + +dependencies { + implementation 'org.springframework.shell:spring-shell-starter' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + implementation group: 'io.lettuce', name: 'lettuce-core', version: '6.2.4.RELEASE' + implementation group: 'org.springframework.data', name: 'spring-data-redis', version: '2.7.11' + implementation 'com.fasterxml.jackson.core:jackson-databind' + implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-properties' + implementation 'org.springframework.boot:spring-boot-starter' + implementation group: 'io.airlift', name: 'units', version: airliftVersion + implementation 'com.redis:lettucemod:3.5.1' + implementation group: 'com.redis', name: 'redis-smart-cache-core', version: '0.3.1' +} + +dependencyManagement { + imports { + mavenBom "org.springframework.shell:spring-shell-dependencies:${springShellVersion}" + } +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/cmd/listqueries.go b/cmd/listqueries.go deleted file mode 100644 index 30181cc..0000000 --- a/cmd/listqueries.go +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright © 2023 Redis steve.lorello@redis.com -*/ -package cmd - -import ( - "fmt" - "os" - "smart-cache-cli/RedisCommon" - "sort" - "strings" - - "github.com/redis/go-redis/v9" - - "github.com/spf13/cobra" -) - -type sortAttribute string -type sortDir string - -const ( - queryTime sortAttribute = "querytime" - accessFrequency = "accessfrequency" - tables = "tables" - id = "id" -) - -const ( - desc sortDir = "desc" - asc = "asc" -) - -// listqCmd represents the listq command -var listqCmd = &cobra.Command{ - Use: "listqueries", - Short: "List the queries seen by Redis Smart Cache", - Long: `List queries seen by `, - Run: func(cmd *cobra.Command, args []string) { - rdb := redis.NewClient(&redis.Options{ - Addr: fmt.Sprintf("%s:%s", HostName, Port), - Password: Password, - Username: User, - DB: 0, - }) - - queries, err := RedisCommon.GetQueries(rdb, ApplicationName) - if err != nil { - fmt.Println(err) - os.Exit(1) - } - - sbLower := strings.ToLower(sortby) - sdLower := strings.ToLower(sortDirection) - - if sdLower != string(desc) && sdLower != asc { - fmt.Println(fmt.Sprintf("%s is not a valid sort order. Valid orders are 'ASC' and 'DESC'.", sortDirection)) - os.Exit(1) - } - - switch sbLower { - case string(queryTime): - sort.Slice(queries, func(i int, j int) bool { - if sdLower == string(desc) { - return queries[i].MeanTime > queries[j].MeanTime - } else { - return queries[i].MeanTime < queries[j].MeanTime - } - - }) - case string(accessFrequency): - sort.Slice(queries, func(i int, j int) bool { - if sdLower == string(desc) { - return queries[i].Count > queries[j].Count - } else { - return queries[i].Count < queries[j].Count - } - }) - - } - - fmt.Println(RedisCommon.GetHeader(20)) - for _, q := range queries { - fmt.Println(q.GetRow(20)) - } - }, -} - -func init() { - listqCmd.Flags().StringVarP(&sortby, "sortby", "b", "queryTime", "The field in the"+ - " queries table to use to sort. Valid options include 'queryTime', 'accessFrequency', 'tables', and 'id") - listqCmd.Flags().StringVarP(&sortDirection, "sortDirection", "d", "DESC", "the direction to "+ - "sort. Valid options are 'ASC' and 'DESC'.") - - rootCmd.AddCommand(listqCmd) -} diff --git a/cmd/listtables.go b/cmd/listtables.go deleted file mode 100644 index 96fb099..0000000 --- a/cmd/listtables.go +++ /dev/null @@ -1,74 +0,0 @@ -/* -Copyright © 2023 NAME HERE -*/ -package cmd - -import ( - "fmt" - "os" - "smart-cache-cli/RedisCommon" - "sort" - "strings" - - "github.com/redis/go-redis/v9" - - "github.com/spf13/cobra" -) - -// listtablesCmd represents the listtables command -var listtablesCmd = &cobra.Command{ - Use: "listtables", - Short: "List the tables being profiled by Redis Smart Cache", - Long: `List the tables being profiled by Redis Smart Cache`, - Run: func(cmd *cobra.Command, args []string) { - rdb := redis.NewClient(&redis.Options{ - Addr: fmt.Sprintf("%s:%s", HostName, Port), - Password: Password, - Username: User, - DB: 0, - }) - - tables := RedisCommon.GetTables(rdb, ApplicationName) - - sbLower := strings.ToLower(sortby) - sdLower := strings.ToLower(sortDirection) - - if sdLower != string(desc) && sdLower != asc { - fmt.Println(fmt.Sprintf("%s is not a valid sort order. Valid orders are 'ASC' and 'DESC'.", sortDirection)) - os.Exit(1) - } - - switch sbLower { - case string(queryTime): - sort.Slice(tables, func(i int, j int) bool { - if sdLower == string(desc) { - return tables[i].QueryTime > tables[j].QueryTime - } else { - return tables[i].QueryTime < tables[j].QueryTime - } - }) - case accessFrequency: - sort.Slice(tables, func(i int, j int) bool { - if sdLower == string(desc) { - return tables[i].AccessFrequency > tables[j].AccessFrequency - } else { - return tables[i].AccessFrequency < tables[j].AccessFrequency - } - }) - } - - fmt.Println(RedisCommon.GetTablesTableHeader(20)) - for _, t := range tables { - fmt.Println(t.GetRow(20)) - } - }, -} - -func init() { - listtablesCmd.Flags().StringVarP(&sortby, "sortby", "b", "queryTime", "The field in the"+ - " tables table to use to sort. Valid options include 'queryTime', 'accessFrequency'") - listtablesCmd.Flags().StringVarP(&sortDirection, "sortDirection", "d", "DESC", "the direction to "+ - "sort. Valid options are 'ASC' and 'DESC'.") - - rootCmd.AddCommand(listtablesCmd) -} diff --git a/cmd/makerule.go b/cmd/makerule.go deleted file mode 100644 index 0d9e2fb..0000000 --- a/cmd/makerule.go +++ /dev/null @@ -1,104 +0,0 @@ -/* -Copyright © 2023 NAME HERE -*/ -package cmd - -import ( - "fmt" - "smart-cache-cli/ConfirmationDialog" - "smart-cache-cli/RedisCommon" - "strings" - - tea "github.com/charmbracelet/bubbletea" - "github.com/redis/go-redis/v9" - - "github.com/spf13/cobra" -) - -// makeruleCmd represents the makerule command -var makeruleCmd = &cobra.Command{ - Use: "makerule", - Short: "Create a caching rule", - Long: `Creates a caching rule`, - Run: func(cmd *cobra.Command, args []string) { - fmt.Println("makerule called") - rdb := redis.NewClient(&redis.Options{ - Addr: fmt.Sprintf("%s:%s", HostName, Port), - Password: Password, - Username: User, - DB: 0, - }) - - rule := RedisCommon.Rule{Ttl: ttl} - numConditions := 0 - if tablesExact != "" { - rule.Tables = strings.Split(tablesExact, ",") - numConditions++ - } - - if tablesAny != "" { - rule.TablesAny = strings.Split(tablesAny, ",") - numConditions++ - } - - if tablesAll != "" { - rule.TablesAll = strings.Split(tablesAll, ",") - numConditions++ - } - - if regex != "" { - rule.Regex = ®ex - numConditions++ - } - - if queryIds != "" { - rule.QueryIds = strings.Split(queryIds, ",") - numConditions++ - } - - if !confirmed { - m := ConfirmationDialog.New(nil, map[string]RedisCommon.Rule{rule.Ttl: rule}) - p := tea.NewProgram(m) - res, err := p.Run() - if err != nil { - panic(err) - } - - confirmed = res.(ConfirmationDialog.Model).Confirmed - } - - if confirmed { - _, err := RedisCommon.CommitNewRules(rdb, []RedisCommon.Rule{rule}, ApplicationName) - if err != nil { - panic(err) - } - fmt.Println("Successfully created caching rule.") - } - - }, -} - -var ( - tablesExact string - tablesAny string - tablesAll string - queryIds string - regex string - ttl string - confirmed bool -) - -func init() { - rootCmd.AddCommand(makeruleCmd) - makeruleCmd.Flags().StringVarP(&tablesExact, "tablesExact", "e", "", "Comma-delimited unordered set of tables. Matches if all of the tables (and no others) appear in the query.") - makeruleCmd.Flags().StringVarP(&tablesAny, "tablesAny", "x", "", "Comma-delimited unordered set of tables. Matches if any of these tables appear in the query.") - makeruleCmd.Flags().StringVarP(&tablesAll, "tablesAll", "l", "", "Comma-delimited unordered set of tables. Matches if all of the tables in the set appear in the query.") - makeruleCmd.Flags().StringVarP(&queryIds, "queryIds", "q", "", "Comma-delimited unordered set of the ids of the Queries that the rule will apply to.") - makeruleCmd.Flags().StringVarP(®ex, "regex", "r", "", "The regex to use to match this rule. If the regex matches, the rule wil apply") - makeruleCmd.Flags().StringVarP(&ttl, "ttl", "t", "", "The time to live as a duration (e.g. 5m, 300s, 2d) to enforce as the ttl.") - makeruleCmd.Flags().BoolVarP(&confirmed, "confirm", "y", false, "provide this flag if you don't want the interactive dialog to confirm for you before committing.") - err := makeruleCmd.MarkFlagRequired("ttl") - if err != nil { - panic(err) - } -} diff --git a/cmd/root.go b/cmd/root.go deleted file mode 100644 index 4111764..0000000 --- a/cmd/root.go +++ /dev/null @@ -1,85 +0,0 @@ -package cmd - -import ( - "fmt" - "os" - "smart-cache-cli/RedisCommon" - "smart-cache-cli/mainMenu" - - tea "github.com/charmbracelet/bubbletea" - "github.com/redis/go-redis/v9" - "github.com/spf13/cobra" -) - -const ( - version = "0.0.10" -) - -// rootCmd represents the base command when called without any subcommands -var rootCmd = &cobra.Command{ - Use: "redis-smartcache-cli", - Short: "CLI for interacting with and configuring Redis Smart Cache", - Long: `CLI for interacting with and configuring Redis Smart Cache. View Smart Cache -query anlytics, create query caching rules, and reset Smart Cache configuration.`, - Run: func(cmd *cobra.Command, args []string) { - if versionCheck { - fmt.Printf("Redis Smart Cache CLI version v%s\n", version) - os.Exit(0) - } - rdb := redis.NewClient(&redis.Options{ - Addr: fmt.Sprintf("%s:%s", HostName, Port), - Password: Password, - Username: User, - DB: 0, - }) - - err := RedisCommon.Ping(rdb) - - if err != nil { - fmt.Printf("Error connecting to Redis: \"%s\".\n", err.Error()) - os.Exit(1) - } - - err = RedisCommon.CheckSmartCacheIndex(rdb, ApplicationName) - - if err != nil { - fmt.Printf("Error checking Redis Smart Cache configuration: %s\n", err) - os.Exit(1) - } - - p := tea.NewProgram(mainMenu.InitialModel(rdb, ApplicationName, fmt.Sprintf("%s:%s", HostName, Port))) - if res, err := p.Run(); err != nil { - fmt.Printf("Smart Cache CLI error: %v", err) - os.Exit(1) - } else { - fmt.Println(res.(mainMenu.Model).Choice) - } - }, -} - -func Execute() { - err := rootCmd.Execute() - if err != nil { - os.Exit(1) - } -} - -var HostName string -var Port string -var User string -var Password string -var ApplicationName string -var versionCheck bool -var ( - sortby string - sortDirection string -) - -func init() { - rootCmd.PersistentFlags().StringVarP(&HostName, "host", "n", "localhost", "Redis host") - rootCmd.PersistentFlags().StringVarP(&Port, "port", "p", "6379", "Redis port") - rootCmd.PersistentFlags().StringVarP(&Password, "password", "a", "", "Redis password") - rootCmd.PersistentFlags().StringVarP(&User, "user", "u", "default", "Redis user") - rootCmd.PersistentFlags().StringVarP(&ApplicationName, "application", "s", "smartcache", "Application namespace") - rootCmd.Flags().BoolVarP(&versionCheck, "version", "v", false, "Smart Cache CLI version") -} diff --git a/go.mod b/go.mod deleted file mode 100644 index af7016f..0000000 --- a/go.mod +++ /dev/null @@ -1,36 +0,0 @@ -module smart-cache-cli - -go 1.20 - -require ( - github.com/charmbracelet/bubbles v0.15.0 - github.com/charmbracelet/bubbletea v0.23.2 - github.com/charmbracelet/lipgloss v0.7.1 - github.com/evertras/bubble-table v0.15.1 - github.com/redis/go-redis/v9 v9.0.2 - github.com/spf13/cobra v1.6.1 -) - -require ( - github.com/atotto/clipboard v0.1.4 // indirect - github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect - github.com/containerd/console v1.0.3 // indirect - github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/inconshreveable/mousetrap v1.0.1 // indirect - github.com/lucasb-eyer/go-colorful v1.2.0 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect - github.com/mattn/go-localereader v0.0.1 // indirect - github.com/mattn/go-runewidth v0.0.14 // indirect - github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b // indirect - github.com/muesli/cancelreader v0.2.2 // indirect - github.com/muesli/reflow v0.3.0 // indirect - github.com/muesli/termenv v0.15.1 // indirect - github.com/rivo/uniseg v0.2.0 // indirect - github.com/sahilm/fuzzy v0.1.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.6.0 // indirect - golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 // indirect - golang.org/x/text v0.3.7 // indirect -) diff --git a/go.sum b/go.sum deleted file mode 100644 index b8d9e10..0000000 --- a/go.sum +++ /dev/null @@ -1,87 +0,0 @@ -github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= -github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= -github.com/aymanbagabas/go-osc52 v1.0.3/go.mod h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4= -github.com/aymanbagabas/go-osc52 v1.2.1/go.mod h1:zT8H+Rk4VSabYN90pWyugflM3ZhpTZNC7cASDfUCdT4= -github.com/aymanbagabas/go-osc52/v2 v2.0.1 h1:HwpRHbFMcZLEVr42D4p7XBqjyuxQH5SMiErDT4WkJ2k= -github.com/aymanbagabas/go-osc52/v2 v2.0.1/go.mod h1:uYgXzlJ7ZpABp8OJ+exZzJJhRNQ2ASbcXHWsFqH8hp8= -github.com/bsm/ginkgo/v2 v2.5.0 h1:aOAnND1T40wEdAtkGSkvSICWeQ8L3UASX7YVCqQx+eQ= -github.com/bsm/gomega v1.20.0 h1:JhAwLmtRzXFTx2AkALSLa8ijZafntmhSoU63Ok18Uq8= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/charmbracelet/bubbles v0.15.0 h1:c5vZ3woHV5W2b8YZI1q7v4ZNQaPetfHuoHzx+56Z6TI= -github.com/charmbracelet/bubbles v0.15.0/go.mod h1:Y7gSFbBzlMpUDR/XM9MhZI374Q+1p1kluf1uLl8iK74= -github.com/charmbracelet/bubbletea v0.23.1/go.mod h1:JAfGK/3/pPKHTnAS8JIE2u9f61BjWTQY57RbT25aMXU= -github.com/charmbracelet/bubbletea v0.23.2 h1:vuUJ9HJ7b/COy4I30e8xDVQ+VRDUEFykIjryPfgsdps= -github.com/charmbracelet/bubbletea v0.23.2/go.mod h1:FaP3WUivcTM0xOKNmhciz60M6I+weYLF76mr1JyI7sM= -github.com/charmbracelet/harmonica v0.2.0/go.mod h1:KSri/1RMQOZLbw7AHqgcBycp8pgJnQMYYT8QZRqZ1Ao= -github.com/charmbracelet/lipgloss v0.6.0/go.mod h1:tHh2wr34xcHjC2HCXIlGSG1jaDF0S0atAUvBMP6Ppuk= -github.com/charmbracelet/lipgloss v0.7.1 h1:17WMwi7N1b1rVWOjMT+rCh7sQkvDU75B2hbZpc5Kc1E= -github.com/charmbracelet/lipgloss v0.7.1/go.mod h1:yG0k3giv8Qj8edTCbbg6AlQ5e8KNWpFujkNawKNhE2c= -github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw= -github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= -github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/evertras/bubble-table v0.15.1 h1:j5/QkqdB4zM3OZA94vxOizrtqEPSycBSL2eBZ3tkgdQ= -github.com/evertras/bubble-table v0.15.1/go.mod h1:SPOZKbIpyYWPHBNki3fyNpiPBQkvkULAtOT7NTD5fKY= -github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= -github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= -github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= -github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= -github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= -github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b h1:1XF24mVaiu7u+CFywTdcDo2ie1pzzhwjt6RHqzpMU34= -github.com/muesli/ansi v0.0.0-20211018074035-2e021307bc4b/go.mod h1:fQuZ0gauxyBcmsdE3ZT4NasjaRdxmbCS0jRHsrWu3Ho= -github.com/muesli/cancelreader v0.2.2 h1:3I4Kt4BQjOR54NavqnDogx/MIoWBFa0StPA8ELUXHmA= -github.com/muesli/cancelreader v0.2.2/go.mod h1:3XuTXfFS2VjM+HTLZY9Ak0l6eUKfijIfMUZ4EgX0QYo= -github.com/muesli/reflow v0.2.1-0.20210115123740-9e1d0d53df68/go.mod h1:Xk+z4oIWdQqJzsxyjgl3P22oYZnHdZ8FFTHAQQt5BMQ= -github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s= -github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8= -github.com/muesli/termenv v0.11.1-0.20220204035834-5ac8409525e0/go.mod h1:Bd5NYQ7pd+SrtBSrSNoBBmXlcY8+Xj4BMJgh8qcZrvs= -github.com/muesli/termenv v0.13.0/go.mod h1:sP1+uffeLaEYpyOTb8pLCUctGcGLnoFjSn4YJK5e2bc= -github.com/muesli/termenv v0.14.0/go.mod h1:kG/pF1E7fh949Xhe156crRUrHNyK221IuGO7Ez60Uc8= -github.com/muesli/termenv v0.15.1 h1:UzuTb/+hhlBugQz28rpzey4ZuKcZ03MeKsoG7IJZIxs= -github.com/muesli/termenv v0.15.1/go.mod h1:HeAQPTzpfs016yGtA4g00CsdYnVLJvxsS4ANqrZs2sQ= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/redis/go-redis/v9 v9.0.2 h1:BA426Zqe/7r56kCcvxYLWe1mkaz71LKF77GwgFzSxfE= -github.com/redis/go-redis/v9 v9.0.2/go.mod h1:/xDTe9EF1LM61hek62Poq2nzQSGj0xSrEtEHbBQevps= -github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sahilm/fuzzy v0.1.0 h1:FzWGaw2Opqyu+794ZQ9SYifWv2EIXpwP4q8dY1kDAwI= -github.com/sahilm/fuzzy v0.1.0/go.mod h1:VFvziUEIMCrT6A6tw2RFIXPXXmzXbOsSHF0DOI8ZK9Y= -github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= -github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220204135822-1c1b9b1eba6a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..362e85d --- /dev/null +++ b/gradle.properties @@ -0,0 +1 @@ +airliftVersion = 1.7 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196 GIT binary patch literal 60756 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/main.go b/main.go deleted file mode 100644 index b94590e..0000000 --- a/main.go +++ /dev/null @@ -1,21 +0,0 @@ -package main - -import ( - "smart-cache-cli/cmd" -) - -func main() { - cmd.Execute() - //rdb := redis.NewClient(&redis.Options{ - // Addr: fmt.Sprintf("%s:%s", "localhost", "6379"), - // DB: 0, - //}) - //p := tea.NewProgram(mainMenu.InitialModel(rdb)) - //if res, err := p.Run(); err != nil { - // fmt.Printf("Alas, there's been an error: %v", err) - // os.Exit(1) - //} else { - // fmt.Println(res.(mainMenu.Model).Choice) - //} - -} diff --git a/mainMenu/mainMenu.go b/mainMenu/mainMenu.go deleted file mode 100644 index 2a6b0e4..0000000 --- a/mainMenu/mainMenu.go +++ /dev/null @@ -1,154 +0,0 @@ -package mainMenu - -import ( - "fmt" - "io" - "smart-cache-cli/ConfirmationDialog" - "smart-cache-cli/RedisCommon" - "smart-cache-cli/RuleDialog" - "smart-cache-cli/RuleList" - "smart-cache-cli/TableList" - "smart-cache-cli/queryList" - - "github.com/charmbracelet/bubbles/list" - tea "github.com/charmbracelet/bubbletea" - "github.com/charmbracelet/lipgloss" - "github.com/redis/go-redis/v9" -) - -const listHeight = 14 - -type Model struct { - list list.Model - message string - Choice string - quitting bool - rdb *redis.Client - applicationName string - width int - connectionInfo string -} - -var banner = ` - _____ __ ______ __ ________ ____ - / ___/____ ___ ____ ______/ /_ / ____/___ ______/ /_ ___ / ____/ / / _/ - \__ \/ __ '__ \/ __ '/ ___/ __/ / / / __ '/ ___/ __ \/ _ \ / / / / / / - ___/ / / / / / / /_/ / / / /_ / /___/ /_/ / /__/ / / / __/ / /___/ /____/ / -/____/_/ /_/ /_/\__,_/_/ \__/ \____/\__,_/\___/_/ /_/\___/ \____/_____/___/ - -` - -var ( - titleStyle = lipgloss.NewStyle().MarginLeft(2) - quitTextStyle = lipgloss.NewStyle().Margin(1, 0, 2, 4) - itemStyle = lipgloss.NewStyle().PaddingLeft(4) - selectedItemStyle = lipgloss.NewStyle().PaddingLeft(2).Foreground(lipgloss.Color("170")) - helpStyle = list.DefaultStyles().HelpStyle.PaddingLeft(4).PaddingBottom(1) - paginationStyle = list.DefaultStyles().PaginationStyle.PaddingLeft(4) -) - -type item string - -func (i item) FilterValue() string { return "" } - -type itemDelegate struct{} - -func (d itemDelegate) Height() int { return 1 } -func (d itemDelegate) Spacing() int { return 0 } -func (d itemDelegate) Update(msg tea.Msg, m *list.Model) tea.Cmd { return nil } -func (d itemDelegate) Render(w io.Writer, m list.Model, index int, listItem list.Item) { - i, ok := listItem.(item) - if !ok { - return - } - - str := fmt.Sprintf("%s", i) - - fn := itemStyle.Render - if index == m.Index() { - fn = func(s ...string) string { - return selectedItemStyle.Render("> " + s[0]) - } - } - - fmt.Fprint(w, fn(str)) -} - -func (m Model) Init() tea.Cmd { - return nil -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - switch msg := msg.(type) { - - case ConfirmationDialog.ConfirmationMessage: - m.Choice = "" - m.message = msg.Message - case tea.WindowSizeMsg: - m.list.SetWidth(msg.Width) - m.width = msg.Width - return m, nil - case tea.KeyMsg: - switch msg.String() { - case "ctrl+c", "q": - m.quitting = true - return m, tea.Quit - case "enter", " ": - i, ok := m.list.SelectedItem().(item) - if ok { - m.Choice = string(i) - if string(i) == listQueries { - return queryList.InitialModel(m, m.rdb, m.applicationName, m.width), nil - } else if string(i) == createRule { - return RuleDialog.New(m, m.rdb, nil, true, m.applicationName, RedisCommon.Unknown), nil - } else if string(i) == listRules { - return RuleList.New(m, m.rdb, m.applicationName), nil - } else if string(i) == listTables { - return TableList.New(m, m.rdb, m.applicationName), nil - } - } - return m, tea.Quit - } - - } - var cmd tea.Cmd - m.list, cmd = m.list.Update(msg) - return m, cmd -} - -func (m Model) View() string { - if m.Choice != "" { - return "" - } - if m.quitting { - return quitTextStyle.Render("Exiting. . .") - } - return "\n" + banner + "\n" + fmt.Sprintf("Connected to Redis at '%s' for application keyspace '%s'.\n\n", m.connectionInfo, m.applicationName) + m.list.View() + "\n" + m.message -} - -const ( - listQueries = "List application queries" - listTables = "List tables" - listRules = "List query caching rules" - createRule = "Create query caching rule" -) - -func InitialModel(rdb *redis.Client, applicationName string, connectionInfo string) Model { - items := []list.Item{ - item(listQueries), - item(listTables), - item(listRules), - item(createRule), - } - - const defaultWidth = 20 - - l := list.New(items, itemDelegate{}, defaultWidth, listHeight) - l.Title = "== Main menu ==" - l.SetShowStatusBar(false) - l.SetFilteringEnabled(false) - l.Styles.Title = titleStyle - l.Styles.PaginationStyle = paginationStyle - l.Styles.HelpStyle = helpStyle - return Model{list: l, rdb: rdb, applicationName: applicationName, connectionInfo: connectionInfo} -} diff --git a/queryList/queryList.go b/queryList/queryList.go deleted file mode 100644 index f6965ba..0000000 --- a/queryList/queryList.go +++ /dev/null @@ -1,220 +0,0 @@ -package queryList - -import ( - "fmt" - "smart-cache-cli/ConfirmationDialog" - "smart-cache-cli/RedisCommon" - "smart-cache-cli/SortDialog" - "smart-cache-cli/queryTtlView" - "strings" - - tea "github.com/charmbracelet/bubbletea" - "github.com/charmbracelet/lipgloss" - "github.com/evertras/bubble-table/table" - "github.com/redis/go-redis/v9" -) - -const listHeight = 14 - -type Model struct { - parentModel tea.Model - table table.Model - Queries []*RedisCommon.Query - pendingRules map[string]RedisCommon.Rule - Selection int - rdb *redis.Client - committed bool - sortColumn string - sortDirection SortDialog.Direction - applicationName string - width int -} - -var ( - customBorder = table.Border{ - Top: "─", - Left: "│", - Right: "│", - Bottom: "─", - - TopRight: "╮", - TopLeft: "╭", - BottomRight: "╯", - BottomLeft: "╰", - - TopJunction: "╥", - LeftJunction: "├", - RightJunction: "┤", - BottomJunction: "╨", - InnerJunction: "╫", - - InnerDivider: "║", - } -) - -func (m Model) Init() tea.Cmd { - return nil -} - -func (m Model) updateFooter() table.Model { - - successfullyCommittedText := "" - if m.committed { - successfullyCommittedText = "Successfuly commited caching rules! " - } - footerText := fmt.Sprintf( - "%sPg. %d/%d - Pending Updates: %d", - successfullyCommittedText, - m.table.CurrentPage(), - m.table.MaxPages(), - len(m.pendingRules), - ) - - return m.table.WithStaticFooter(footerText) -} - -func (m Model) UpdateCurrentTtl(ttl string) { - m.table.HighlightedRow().Data["Pending Rule"] = ttl -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - var cmd tea.Cmd - - m.table, cmd = m.table.Update(msg) - - m.table = m.updateFooter() - - switch msg := msg.(type) { - case tea.WindowSizeMsg: - m.width = msg.Width - m.table, _ = m.table.Update(msg) - return m, nil - case tea.KeyMsg: - s := msg.String() - switch s { - case tea.KeyCtrlC.String(), "q": - return m.parentModel, tea.Quit - case tea.KeyTab.String(), tea.KeySpace.String(), tea.KeyEnter.String(): - m.Selection = m.table.HighlightedRow().Data["RowId"].(int) - //m.EditMode = !m.EditMode - return queryTtlView.New(m.Queries[m.Selection], m, m.width), cmd - case "i": - m.table = m.table.WithHeaderVisibility(!m.table.GetHeaderVisibility()) - case "c": - return ConfirmationDialog.New(m, m.pendingRules), cmd - case "s": - return SortDialog.New(RedisCommon.GetColumnNames(), m), nil - case tea.KeyEsc.String(), "b": - m.parentModel, _ = m.parentModel.Update(ConfirmationDialog.ConfirmationMessage{ConfirmedUpdate: true}) - return m.parentModel, nil - } - case queryTtlView.SetPendingTtlMsg: - m.table.HighlightedRow().Data["Pending Rule"] = msg.Ttl - r, ok := m.pendingRules[msg.Ttl] - if ok { - r.QueryIds = append(r.QueryIds, m.Queries[m.Selection].Id) - m.pendingRules[msg.Ttl] = r - } else { - m.pendingRules[msg.Ttl] = RedisCommon.Rule{ - Ttl: msg.Ttl, - QueryIds: []string{m.Queries[m.Selection].Id}, - } - } - case SortDialog.SortMessage: - columns := RedisCommon.GetColumnsOfQuery(msg.Choice, msg.Direction) - if msg.Direction == SortDialog.Descending { - m.table = m.table.WithColumns(columns).SortByDesc(msg.Choice) - } else { - m.table = m.table.WithColumns(columns).SortByAsc(msg.Choice) - } - case ConfirmationDialog.ConfirmationMessage: - if msg.ConfirmedUpdate { - err := m.CommitRuleUpdate() - if err == nil { - ResetModel(&m) - m.committed = true - } - } - - return m, cmd - } - - return m, cmd -} - -func ResetModel(m *Model) { - queries, err := RedisCommon.GetQueries(m.rdb, m.applicationName) - - if err != nil { - println(err) - } - - rows := make([]table.Row, len(queries)) - for i, q := range queries { - rows[i] = q.GetAsRow(i) - } - - m.table = m.table.WithRows(rows) - m.pendingRules = make(map[string]RedisCommon.Rule) -} - -func (m Model) CommitRuleUpdate() error { - rulesToCommit := make([]RedisCommon.Rule, 0) - for _, rule := range m.pendingRules { - rulesToCommit = append(rulesToCommit, rule) - } - - _, err := RedisCommon.CommitNewRules(m.rdb, rulesToCommit, m.applicationName) - return err -} - -func (m Model) View() string { - body := strings.Builder{} - m.table = m.updateFooter() - - body.WriteString("Press [←/→] to move pages\n") - body.WriteString("Press 'i' to toggle the header visibility\n") - body.WriteString("Press 's' to change sorting\n") - body.WriteString("Press [ENTER] to create a pending rule\n") - body.WriteString("Press 'c' to commit selected rules\n") - body.WriteString("Press 'b' to go back\n") - body.WriteString("Press [CTRL+C] to quit\n\n") - - body.WriteString(m.table.View()) - - body.WriteString("\n\n") - - return body.String() -} - -func InitialModel(pm tea.Model, rdb *redis.Client, applicationName string, width int) Model { - - queries, err := RedisCommon.GetQueries(rdb, applicationName) - - if err != nil { - println(err) - } - - rows := make([]table.Row, len(queries)) - for i, q := range queries { - rows[i] = q.GetAsRow(i) - } - model := Model{ - table: table.New(RedisCommon.GetColumnsOfQuery("Mean Query Time", SortDialog.Descending)). - WithRows(rows). - HeaderStyle(lipgloss.NewStyle().Foreground(lipgloss.Color("10")).Bold(true)). - Focused(true). - Border(customBorder). - WithPageSize(5). - SortByDesc("Mean Query Time").WithTargetWidth(200), - Queries: queries, - parentModel: pm, - pendingRules: make(map[string]RedisCommon.Rule), - rdb: rdb, - applicationName: applicationName, - width: width, - } - model.table = model.updateFooter() - - return model -} diff --git a/queryTtlView/queryTtl.go b/queryTtlView/queryTtl.go deleted file mode 100644 index 65e693e..0000000 --- a/queryTtlView/queryTtl.go +++ /dev/null @@ -1,77 +0,0 @@ -package queryTtlView - -import ( - "fmt" - "smart-cache-cli/RedisCommon" - "smart-cache-cli/util" - - "github.com/charmbracelet/bubbles/textinput" - tea "github.com/charmbracelet/bubbletea" -) - -func (m Model) Init() tea.Cmd { - return nil -} - -type SetPendingTtlMsg struct { - Ttl string -} - -type Model struct { - textInput textinput.Model - query *RedisCommon.Query - pendingTtl string - parentModel *tea.Model - err string - width int -} - -func (m Model) Update(msg tea.Msg) (tea.Model, tea.Cmd) { - var cmd tea.Cmd - - switch msg := msg.(type) { - case tea.WindowSizeMsg: - m.textInput, _ = m.textInput.Update(msg) - m.width = msg.Width - case tea.KeyMsg: - switch msg.Type { - case tea.KeyCtrlB, tea.KeyEsc: - return *m.parentModel, cmd - case tea.KeyCtrlC: - *m.parentModel, _ = (*m.parentModel).Update(msg) - return *m.parentModel, tea.Quit - case tea.KeyEnter: - err := util.ValidateTimeout(m.textInput.Value()) - if err != nil { - m.err = "\n" + err.Error() - } else { - (*m.parentModel).Update(SetPendingTtlMsg{Ttl: m.textInput.Value()}) - return *m.parentModel, cmd - } - } - } - - m.textInput, cmd = m.textInput.Update(msg) - return m, cmd -} - -func (m Model) View() string { - - return fmt.Sprintf("%s\n\nPress ctrl+b or escape to return to the previous screen.\nEnter TTL in the form of a duration (e.g. 1h, 300s, 5m):\n%s%s", m.query.Formatted(m.width), m.textInput.View(), m.err) -} - -func New(query *RedisCommon.Query, pm tea.Model, width int) Model { - ti := textinput.New() - ti.Placeholder = "30m" - ti.Focus() - ti.CharLimit = 30 - ti.Width = 30 - - return Model{ - textInput: ti, - pendingTtl: "", - parentModel: &pm, - query: query, - width: width, - } -} diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..46e2f12 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'smart-cache-cli' \ No newline at end of file diff --git a/src/main/java/com/redis/smartcache/cli/Application.java b/src/main/java/com/redis/smartcache/cli/Application.java new file mode 100644 index 0000000..2fc7a9f --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/Application.java @@ -0,0 +1,63 @@ +package com.redis.smartcache.cli; + +import org.springframework.boot.Banner; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +import java.util.Arrays; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication app = new SpringApplication(Application.class); + app.setLogStartupInfo(false); + + if(Arrays.stream(args).anyMatch(x-> Objects.equals(x, "-v") || Objects.equals(x, "--version"))){ + System.out.println("v0.0.1"); + System.exit(0); + } + + if(args.length > 0 && !args[0].startsWith("-")){ + app.setBannerMode(Banner.Mode.OFF); + if(Arrays.stream(args).anyMatch(x->Objects.equals(x,"-h") || Objects.equals(x,"--help"))){ + app.run("help", args[0]); + }else{ + app.run(args); + } + System.exit(0); + } + + if(Arrays.stream(args).anyMatch(x->Objects.equals(x,"-h") || Objects.equals(x,"--help"))){ + + System.out.println("Help Smart-Cache CLI"); + + System.out.println("Usage:"); + System.out.println(); + + System.out.println("Options:"); + + System.out.println("\t-n --hostname The Redis [h]ost."); + System.out.println("\t-p --port The Redis [p]ort."); + System.out.println("\t-a --password The Redis p[a]ssword."); + System.out.println("\t-u --user The Redis [u]sername."); + System.out.println("\t-s --application The Redis application name[s]pace."); + System.out.println(); + System.out.println("Subcommands"); + System.out.println("\tlist-queries"); + System.out.println("\tmake-rule"); + + } + else{ + List appArgs = Arrays.stream(args).collect(Collectors.toList()); + appArgs.add(0, "Interactive"); + + String[] finalArgs = appArgs.toArray(new String[0]); + app.run(finalArgs); + } + } + +} diff --git a/src/main/java/com/redis/smartcache/cli/RedisConfig.java b/src/main/java/com/redis/smartcache/cli/RedisConfig.java new file mode 100644 index 0000000..1dec59c --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/RedisConfig.java @@ -0,0 +1,43 @@ +package com.redis.smartcache.cli; + +import com.redis.lettucemod.RedisModulesClient; +import com.redis.lettucemod.api.StatefulRedisModulesConnection; +import com.redis.smartcache.core.ClientManager; +import com.redis.smartcache.core.Config; + +public class RedisConfig { + + public RedisConfig(String hostname, String port, String applicationName){ + this.hostname = hostname; + this.port = port; + this.applicationName = applicationName; + } + + private final String hostname; + private final String port; + + public String getApplicationName() { + return applicationName; + } + + private final String applicationName; + + + public Config conf(){ + Config config = new Config(); + Config.RedisConfig conf = new Config.RedisConfig(); + conf.setUri(String.format("redis://%s:%s",hostname,port)); + config.setRedis(conf); + config.setName(applicationName); + return config; + } + + public ClientManager abstractRedisClient(){ + return new ClientManager(); + } + + + public StatefulRedisModulesConnection modClient(){ + return RedisModulesClient.create(String.format("redis://%s:%s",hostname,port)).connect(); + } +} diff --git a/src/main/java/com/redis/smartcache/cli/RedisService.java b/src/main/java/com/redis/smartcache/cli/RedisService.java new file mode 100644 index 0000000..c89cd55 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/RedisService.java @@ -0,0 +1,15 @@ +package com.redis.smartcache.cli; + +import com.redis.smartcache.cli.structures.QueryInfo; +import com.redis.smartcache.cli.structures.TableInfo; +import com.redis.smartcache.core.Config; +import com.redis.smartcache.core.RuleConfig; + +import java.util.List; + +public interface RedisService { + List getQueries(); + void commitRules(List rules); + List getRules(); + List getTables(); +} diff --git a/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java new file mode 100644 index 0000000..9831d2a --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java @@ -0,0 +1,130 @@ +package com.redis.smartcache.cli; + +import com.fasterxml.jackson.dataformat.javaprop.JavaPropsMapper; +import com.redis.lettucemod.api.StatefulRedisModulesConnection; +import com.redis.lettucemod.api.async.RediSearchAsyncCommands; +import com.redis.lettucemod.search.*; +import com.redis.smartcache.cli.structures.QueryInfo; +import com.redis.smartcache.cli.structures.TableInfo; +import com.redis.smartcache.core.*; +import com.redis.smartcache.core.rules.Rule; +import io.lettuce.core.AbstractRedisClient; +import io.lettuce.core.RedisFuture; +import io.lettuce.core.internal.Futures; + +import java.io.IOException; +import java.util.*; +import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; + +import static com.redis.smartcache.core.RuleSessionManager.KEY_CONFIG; + +//@Service +public class RedisServiceImpl implements RedisService{ + Config conf; + + ClientManager manager; + + StatefulRedisModulesConnection connection; + + StreamConfigManager configManager; + + private final JavaPropsMapper mapper = Mappers.propsMapper(); + + public RedisServiceImpl(RedisConfig config){ + conf = config.conf(); + manager = config.abstractRedisClient(); + connection = config.modClient(); + RulesetConfig ruleset = conf.getRuleset(); + String key = KeyBuilder.of(conf).build(KEY_CONFIG); + configManager = new StreamConfigManager<>(manager.getClient(conf), key, ruleset, mapper); + try{ + configManager.start(); + } catch (IOException e){ + throw new IllegalStateException("Could not start Redis Service", e); + } + } + + + public String ping(){ + return connection.sync().ping(); + } + + public List getRules(){ + RulesetConfig ruleset = conf.getRuleset(); + + return Arrays.asList(ruleset.getRules()); + } + + static String configKeyName(String applicationName){ + return String.format("%s:config", applicationName); + } + + static String HashKeyName(String applicationName, String id){ + return String.format("%s:query:%s", applicationName, id); + + } + + static String IndexName(String applicationName){ + return String.format("%s-query-idx", applicationName); + } + + public List getQueries(){ + List response = new ArrayList<>(); + List rules = getRules(); + + SearchResults searchResults = connection.sync().ftSearch(IndexName(conf.getName()), "*"); + + for(Document doc : searchResults){ + + QueryInfo qi = QueryInfo.fromDocument(doc); + Optional currentRule = QueryInfo.matchRule(qi.getQuery(), rules); + currentRule.ifPresent(qi::setCurrentRule); + response.add(qi); + + } + return response; + } + + public void commitRules(List rules){ + Map> map = new HashMap<>(); + map.put("rules",rules); // TODO: Without this the rules are serialized as ruleNum.attribute.etc - there must be a better way to get it to serialize correctly to rules.ruleNum.attribute.etc + JavaPropsMapper mapper = Mappers.propsMapper(); + try{ + Properties props = mapper.writeValueAsProperties(map); + List listArgs = new ArrayList<>(); + + for(Object o : props.keySet().stream().sorted().collect(Collectors.toList())){ + listArgs.add((String)o); + listArgs.add((String)props.get(o)); + } + + String key = KeyBuilder.of(conf).build(KEY_CONFIG); + connection.sync().xadd(key,listArgs.toArray()); + } catch (IOException ignored){ + + } + } + + public List getTables(){ + + List rules = getRules(); + List tableInfos = new ArrayList<>(); + String[] groupStrs = {"name"}; + Reducer[] reducers = {new Reducers.Sum.Builder("count").as("accessFrequency").build(), new Reducers.Avg.Builder("mean").as("avgQueryTime").build()}; + AggregateOptions options = AggregateOptions.builder().operation(new Apply("split(@table, ',')", "name")).operation(new Group(groupStrs, reducers)).build(); + AggregateResults res = connection.sync().ftAggregate("smartcache-query-idx", "*", options); + for(Map item : res){ + String name = item.get("name").toString(); + double avgQueryTime = Double.parseDouble(item.get("avgQueryTime").toString()); + long accessFrequency = Long.parseLong(item.get("accessFrequency").toString()); + Optional rule = rules.stream().filter(x->x.getTablesAny() != null && x.getTablesAny().contains(name)).findAny(); + TableInfo.Builder builder = new TableInfo.Builder().name(name).accessFrequency(accessFrequency).queryTime(avgQueryTime); + rule.ifPresent(builder::rule); + + tableInfos.add(builder.build()); + } + + return tableInfos; + } +} diff --git a/src/main/java/com/redis/smartcache/cli/SmartCachePromptProvider.java b/src/main/java/com/redis/smartcache/cli/SmartCachePromptProvider.java new file mode 100644 index 0000000..214e974 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/SmartCachePromptProvider.java @@ -0,0 +1,15 @@ +package com.redis.smartcache.cli; + +import org.jline.utils.AttributedString; +import org.springframework.shell.jline.PromptProvider; +import org.springframework.stereotype.Component; + +@Component +public class SmartCachePromptProvider implements PromptProvider { + + @Override + public AttributedString getPrompt() { + return new AttributedString("smart-cache:>"); + } + +} \ No newline at end of file diff --git a/src/main/java/com/redis/smartcache/cli/commands/Commands.java b/src/main/java/com/redis/smartcache/cli/commands/Commands.java new file mode 100644 index 0000000..d8eb703 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/commands/Commands.java @@ -0,0 +1,491 @@ +package com.redis.smartcache.cli.commands; + +import com.redis.smartcache.cli.*; +import com.redis.smartcache.cli.components.ConfirmationInputExtension; +import com.redis.smartcache.cli.components.StringInputExtension; +import com.redis.smartcache.cli.components.TableSelector; +import com.redis.smartcache.cli.structures.*; +import com.redis.smartcache.cli.util.Util; +import com.redis.smartcache.core.RuleConfig; +import org.jline.terminal.impl.DumbTerminal; +import org.jline.utils.InfoCmp; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.shell.component.ConfirmationInput; +import org.springframework.shell.component.StringInput; +import org.springframework.shell.component.flow.ComponentFlow; +import org.springframework.shell.component.support.SelectorItem; +import org.springframework.shell.standard.AbstractShellComponent; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; +import io.airlift.units.Duration; +import org.springframework.shell.standard.ShellOption; + +import java.util.*; +import java.util.stream.Collectors; + +@ShellComponent +public class Commands extends AbstractShellComponent { + final String LIST_APPLICATION_QUERIES = "List application queries"; + final String CREATE_RULE = "Create query caching rule"; + final String LIST_TABLES = "List Tables"; + final String LIST_RULES = "List Rules"; + final String EXIT = "Exit"; + + final String tableInstructions = "press 'enter' to edit\npress 'c' to commit\npress 'esc' to go back\npress ctrl+c to exit\n"; + + @Autowired + private ComponentFlow.Builder componentFlowBuilder; + + + public Optional getRuleType(){ + List> ruleTypes = Arrays.asList( + SelectorItem.of(RuleType.TABLES.getValue(), new RuleTypeInfo(RuleType.TABLES,"Enter a comma-separated list of tables to match against:")), + SelectorItem.of(RuleType.TABLES_ALL.getValue(), new RuleTypeInfo(RuleType.TABLES_ALL,"Enter a comma-separated list of tables to match against:")), + SelectorItem.of(RuleType.TABLES_ANY.getValue(), new RuleTypeInfo(RuleType.TABLES_ANY,"Enter a comma-separated list of tables to match against:")), + SelectorItem.of(RuleType.QUERY_IDS.getValue(), new RuleTypeInfo(RuleType.QUERY_IDS,"Enter a comma-separated list of Query IDs to match against:")), + SelectorItem.of(RuleType.REGEX.getValue(), new RuleTypeInfo(RuleType.REGEX,"Enter a regular expression to match against:")) + ); + + TableSelector> component = new TableSelector<>(getTerminal(), + ruleTypes, "rules", null, "Select Rule Type", true, 1, ""); + component.setResourceLoader(getResourceLoader()); + component.setTemplateExecutor(getTemplateExecutor()); + TableSelector.SingleItemSelectorContext> context = component + .run(TableSelector.SingleItemSelectorContext.empty(1, "")); + if(!component.isEscapeMode() && context.getResultItem().isPresent()){ + return Optional.of(context.getResultItem().get().getItem()); + } + + return Optional.empty(); + } + + public Optional getTtl(String message){ + boolean displayError = false; + while(true){ + String prompt; + if(message.isEmpty()){ + prompt = "Enter a TTL in the form of a duration (e.g. 1h, 300s, 5m)"; + } + else{ + prompt = String.format("%s%nEnter a TTL in the form of a duration (e.g. 1h, 300s, 5m)",message); + } + + prompt += displayError?" - Invalidly formatted duration, please try again:" : ":"; + + StringInputExtension stringInputComponent = new StringInputExtension(getTerminal(), prompt,"30m"); + stringInputComponent.setResourceLoader(getResourceLoader()); + stringInputComponent.setTemplateExecutor(getTemplateExecutor()); + StringInput.StringInputContext stringInputContext = stringInputComponent.run(StringInput.StringInputContext.empty()); + if(stringInputComponent.isEscapeMode()){ + return Optional.empty(); + } + + try{ + return Optional.of(Duration.valueOf(stringInputContext.getResultValue())); + } + catch (IllegalArgumentException e){ + displayError = true; + } + } + + + } + + public Optional getMatch(RuleTypeInfo ruleType){ + StringInputExtension component = new StringInputExtension(getTerminal(),ruleType.getMessage(),""); + component.setResourceLoader(getResourceLoader()); + component.setTemplateExecutor(getTemplateExecutor()); + StringInput.StringInputContext context = component.run(StringInput.StringInputContext.empty()); + if(component.isEscapeMode()){ + return Optional.empty(); + } + + return Optional.of(context.getResultValue()); + } + + public Optional getConfirmation(RuleInfo info){ + String prompt = String.format("Rule Type: %s, Rule Match: %s, Rule TTL: %s", info.ruleType(), info.ruleMatch(), info.getRule().getTtl()); + ConfirmationInputExtension component = new ConfirmationInputExtension(getTerminal(), prompt, false); + component.setResourceLoader(getResourceLoader()); + component.setTemplateExecutor(getTemplateExecutor()); + ConfirmationInput.ConfirmationInputContext context = component.run(ConfirmationInput.ConfirmationInputContext.empty()); + if(component.isEscapeMode()){ + return Optional.empty(); + } + + return Optional.of(context.getResultValue()); + } + + public Optional newRuleDialogCustom(boolean confirm){ + Optional ruleType; + Optional match; + Optional confirmed = Optional.empty(); + Optional ttl = Optional.empty(); + Optional rule = Optional.empty(); + do{ + ruleType = getRuleType(); + if(!ruleType.isPresent()){ + break; + } + + do{ + match = getMatch(ruleType.get()); + if(!match.isPresent()){ + break; + } + + ttl = getTtl(""); + } while(!ttl.isPresent()); + + if(!match.isPresent()){ + continue; + } + + rule = Optional.of(Util.createRule(ruleType.get().getType(), match.get(),ttl.get())); + + if(confirm){ + confirmed = getConfirmation(new RuleInfo(rule.get(), RuleInfo.Status.New)); + if(confirmed.isPresent() && !confirmed.get()){ + break; + } + } + + }while(!confirmed.isPresent() && confirm); + + if((confirmed.isPresent() && confirmed.get()) || !confirm){ + return rule; + } + + return Optional.empty(); + } + + public void createRule(RedisService client){ + Optional newRule = newRuleDialogCustom(true); + if(newRule.isPresent()){ + List rules = client.getRules(); + rules.add(0, newRule.get()); + client.commitRules(rules); + } + } + + /** + * There does not appear to be any means in Spring Shell to autowire configuration parameters, + * hence we need to initialize the client in each individual command, this is fine since we'll just pass the client + * around in the interactive command and the non-interactive commands are run ad-hoc. + * @param host the Redis host + * @param port the Redis port + * @return a connected RedisService + */ + private static RedisService initializeClient(String host, String port, String applicationName){ + RedisConfig config = new RedisConfig(host,port, applicationName); + return new RedisServiceImpl(config); + } + + @ShellMethod(key = "list-queries") + public String listQueries( + @ShellOption(value = {"-n","--hostname"}, defaultValue = "localhost")String host, + @ShellOption(value = {"-p","--port"}, defaultValue = "6379") String port, + @ShellOption(value = {"-s","--application-name"}, defaultValue = "smartcache") String applicationName, + @ShellOption(value = {"-d","--sort-direction"}, defaultValue = "desc") String sortDirectionStr, + @ShellOption(value = {"-b","--sort-by"}, defaultValue = "query-time") String sortByStr + ){ + SortDirection sortDirection; + SortField sortBy; + try{ + sortDirection = SortDirection.valueOf(sortDirectionStr.toLowerCase()); + } + catch (IllegalArgumentException e){ + return String.format("Invalid Sort Direction %s", sortDirectionStr); + } + + try{ + sortBy = SortField.valueOfOverride(sortByStr.toLowerCase()); + } + catch(IllegalArgumentException e){ + return String.format("Invalid Sort By: %s", sortByStr); + } + + + RedisService client = initializeClient(host, port, applicationName); + StringBuilder sb = new StringBuilder(); + sb.append("\n"); + List queries = client.getQueries(); + + queries.sort((first,second)->QueryInfo.compare(first,second,sortDirection,sortBy)); + + int columnWidth = (getTerminal().getWidth()-10)/8; + sb.append(String.format("%s%n",QueryInfo.getHeaderRow(columnWidth, false))); + for(QueryInfo qi : queries){ + sb.append(String.format("%s%n",qi.toRowString(columnWidth, false))); + } + return sb.toString(); + } + + @ShellMethod(key="Interactive") + public String interactive( + @ShellOption(value = {"-n","--hostname"}, defaultValue = "localhost")String host, + @ShellOption(value = {"-p","--port"}, defaultValue = "6379") String port, + @ShellOption(value = {"-s","--application-name"}, defaultValue = "smartcache") String applicationName + ){ + RedisService client = initializeClient(host, port, applicationName); + + String[] options = {LIST_APPLICATION_QUERIES, LIST_TABLES, CREATE_RULE, LIST_RULES, EXIT}; + + String nextAction = ""; + TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(1, ""); + + while(!nextAction.equals(EXIT)){ + + List> actions = Arrays.stream(options).map(x->SelectorItem.of(x,new Action(x))).collect(Collectors.toList()); + TableSelector> component = new TableSelector<>(getTerminal(), + actions, "Select action", null, "Select Action", true, 1, ""); + component.setResourceLoader(getResourceLoader()); + component.setTemplateExecutor(getTemplateExecutor()); + + context = component.run(context); + + if(component.isEscapeMode()){ + System.exit(0); + } + + if(context.getResultItem().isPresent()){ + nextAction = context.getResultItem().get().getItem().getAction(); + + switch (nextAction){ + case CREATE_RULE: + createRule(client); + break; + case LIST_APPLICATION_QUERIES: + queryTable(client); + break; + case LIST_TABLES: + tablesTable(client); + break; + case LIST_RULES: + ruleTable(client); + break; + } + } + + getTerminal().puts(InfoCmp.Capability.clear_screen); + } + + System.exit(0); + + return "Interactive!"; + } + + public void ruleTable(RedisService client){ + List rules = client.getRules().stream().map(x->new RuleInfo(x, RuleInfo.Status.Current)).collect(Collectors.toList()); + String instructions = "Press 'enter' to edit an existing rule\nPress 'n' to create a new rule\nPress 'd' to delete a rule\nPress 'c' to commit\nPress 'esc' to go back\nPress ctrl+c to exit\n"; + int cursorRow = 0; + + TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(3, instructions); + + while (true){ + getTerminal().puts(InfoCmp.Capability.clear_screen); + + List> ruleInfos = rules.stream().map(rule -> SelectorItem.of(UUID.randomUUID().toString(),rule)).collect(Collectors.toList()); + + TableSelector> component = new TableSelector<>(getTerminal(), + ruleInfos, "rules", null, RuleInfo.getHeaderRow((getTerminal().getWidth() - 10) / 4), true, 4, instructions); + component.setResourceLoader(getResourceLoader()); + component.setTemplateExecutor(getTemplateExecutor()); + context.setCursorRow(cursorRow); + context = component.run(context); + cursorRow = context.getCursorRow(); + Optional> res = context.getResultItem(); + + if(component.isConfirmMode()){ + ComponentFlow flow = componentFlowBuilder.clone().reset() + .withConfirmationInput("Confirm") + .name("Would you like to commit this new configuration?") + .next(null) + .template("classpath:confirmation-input.stg") + .and() + .build(); + boolean confirmed = flow.run().getContext().get("Confirm"); + if(confirmed){ + List rulesToCommit = rules.stream().filter(rule->rule.getStatus() != RuleInfo.Status.Delete).map(RuleInfo::getRule).collect(Collectors.toList()); + client.commitRules(rulesToCommit); + try{ + Thread.sleep(250); + } catch (Exception e){ + //ignored + } + + rules = client.getRules().stream().map(x->new RuleInfo(x, RuleInfo.Status.Current)).collect(Collectors.toList()); + } + + component.setConfirmMode(false); + continue; + } + if(!component.isEscapeMode() && res.isPresent()){ + Optional updatedRule = newRuleDialogCustom(false); + updatedRule.ifPresent(ruleConfig ->{ + res.get().getItem().setRule(ruleConfig); + res.get().getItem().setStatus(RuleInfo.Status.Editing); + }); + } + else if(component.isNewMode()){ + Optional newRule = newRuleDialogCustom(false); + if (newRule.isPresent()){ + rules.add(0, new RuleInfo(newRule.get(), RuleInfo.Status.New)); + } + component.setNewMode(false); + } + else if(component.isDeleteMode()){ + int rowNum = context.getCursorRow(); + RuleInfo rule = context.getItems().get(rowNum).getItem(); + if(rule.getStatus() == RuleInfo.Status.New){ + rules.remove(rowNum); + } + else { + rules.get(rowNum).setStatus(RuleInfo.Status.Delete); + } + + component.setDeleteMode(false); + } + else{ + break; + } + + } + } + + public void tablesTable(RedisService client){ + String instructions = "press 'enter' to edit\npress 'esc' to go back\npress ctrl+c to exit\n"; + int cursorRow = 0; + TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(4, instructions); + while(true){ + getTerminal().puts(InfoCmp.Capability.clear_screen); + List> tables = new ArrayList<>(); + for(TableInfo tableInfo : client.getTables()){ + tables.add(SelectorItem.of(tableInfo.getName(), tableInfo)); + } + + TableSelector> component = new TableSelector<>(getTerminal(), + tables, "tables", null, TableInfo.headerRow((getTerminal().getWidth() - 10) / 4), true, 4, instructions); + component.setResourceLoader(getResourceLoader()); + component.setTemplateExecutor(getTemplateExecutor()); + context.setCursorRow(cursorRow); + context = component.run(context); + cursorRow = context.getCursorRow(); + Optional> res = context.getResultItem(); + + if(component.isConfirmMode()){ + component.setConfirmMode(false); + continue; + } + if(!component.isEscapeMode() && res.isPresent()){ + Optional duration = getTtl(String.format("Create rule to cache table:%s", res.get().getName())); + duration.ifPresent(ttl->{ + RuleConfig newRule = new RuleConfig(); + newRule.setTtl(ttl); + newRule.setTablesAny(Arrays.asList(res.get().getName().split(","))); + Optional confirmed = getConfirmation(new RuleInfo(newRule, RuleInfo.Status.New)); + confirmed.ifPresent(c->{ + if(c){ + List rules = client.getRules(); + rules.add(0, newRule); + client.commitRules(rules); + } + }); + }); + } + else{ + break; + } + } + } + + private List> getQueries(RedisService client){ + List> queries = new ArrayList<>(); + + for (QueryInfo q : client.getQueries()){ + queries.add(SelectorItem.of(q.getQueryId(),q)); + } + return queries; + } + + public void queryTable(RedisService client){ + List rules = client.getRules(); + + Map pendingRules = new HashMap<>(); + + List> queries = getQueries(client); + int cursorRow = 0; + TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(8, tableInstructions); + + while(true){ + getTerminal().puts(InfoCmp.Capability.clear_screen); + TableSelector> component = new TableSelector<>(getTerminal(), + queries, "queries", null, QueryInfo.getHeaderRow((getTerminal().getWidth()-10)/8, true), true, 8, tableInstructions); + component.setResourceLoader(getResourceLoader()); + component.setTemplateExecutor(getTemplateExecutor()); + + context.setCursorRow(cursorRow); + context = component.run(context); + cursorRow = context.getCursorRow(); + Optional> resOpt = context.getResultItem(); + + if (component.isConfirmMode()){ + Set validResponses = new HashSet<>(Arrays.asList("y","Y","n","N")); + Optional confirmed = Optional.empty(); + while(!confirmed.isPresent()){ + + String prompt = "Confirm pending updates y/n"; + StringInput stringInputComponent = new StringInput(getTerminal(), prompt,"n"); + stringInputComponent.setResourceLoader(getResourceLoader()); + stringInputComponent.setTemplateExecutor(getTemplateExecutor()); + StringInput.StringInputContext stringInputContext = stringInputComponent.run(StringInput.StringInputContext.empty()); + String confirmationInput = stringInputContext.getResultValue(); + if(validResponses.contains(confirmationInput)){ + confirmed = Optional.of(confirmationInput.equalsIgnoreCase("y")); + } + else{ + continue; + } + + if(confirmed.get()){ + for(RuleConfig rule : pendingRules.values()){ + rules.add(0, rule); + } + + client.commitRules(rules); + queries = getQueries(client); + } + else{ + component.setConfirmMode(false); + } + } + } + else if (!component.isEscapeMode() && resOpt.isPresent()){ + + QueryInfo result = resOpt.get().getItem(); + + String info = result.toFormattedString(getTerminal().getWidth()); + Optional duration = getTtl(info); + + if(!duration.isPresent()){ + continue; + } + + RuleConfig rule; + if(pendingRules.containsKey(duration.get())){ + pendingRules.get(duration.get()).getQueryIds().add(result.getQueryId()); + rule = pendingRules.get(duration.get()); + }else{ + rule = new RuleConfig(); + rule.setQueryIds(List.of(result.getQueryId())); + pendingRules.put(duration.get(),rule); + } + queries.get(context.getCursorRow()).getItem().setPendingRule(rule); + } + else{ + break; + } + } + + } +} diff --git a/src/main/java/com/redis/smartcache/cli/components/AbstractTableSelectorComponent.java b/src/main/java/com/redis/smartcache/cli/components/AbstractTableSelectorComponent.java new file mode 100644 index 0000000..0a51f80 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/components/AbstractTableSelectorComponent.java @@ -0,0 +1,471 @@ +package com.redis.smartcache.cli.components; + +import org.jline.keymap.BindingReader; +import org.jline.keymap.KeyMap; +import org.jline.terminal.Terminal; +import org.jline.utils.InfoCmp; +import org.springframework.shell.component.context.BaseComponentContext; +import org.springframework.shell.component.context.ComponentContext; +import org.springframework.shell.component.support.*; +import org.springframework.util.ObjectUtils; + +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.stream.Collectors; + +import static org.jline.keymap.KeyMap.ctrl; +import static org.jline.keymap.KeyMap.key; + +public abstract class AbstractTableSelectorComponent, I extends Nameable & Matchable & Enableable & Selectable & Itemable> + extends AbstractComponent { + + protected final String name; + private final List items; + private Comparator comparator = (o1, o2) -> 0; + private final boolean exitSelects; + private final int maxItems = 5; + private boolean stale = false; + private final AtomicInteger start = new AtomicInteger(0); + private final AtomicInteger pos = new AtomicInteger(0); + private I defaultExpose; + private boolean expose = false; + private boolean confirmMode = false; + private boolean newMode = false; + private boolean deleteMode = false; + + public boolean isEscapeMode() { + return escapeMode; + } + + private boolean escapeMode = false; + + public static final String OPERATION_ESCAPE = "ESCAPE"; + public static final String OPERATION_CONFIRM = "CONFIRM"; + public static final String OPERATION_NEW = "NEW"; + public static final String OPERATION_DELETE = "DELETE"; + public AbstractTableSelectorComponent(Terminal terminal, String name, List items, boolean exitSelects, + Comparator comparator) { + super(terminal); + this.name = name; + this.items = items; + this.exitSelects = exitSelects; + if (comparator != null) { + this.comparator = comparator; + } + } + + /** + * Gets items. + * + * @return a list of items + */ + protected List getItems() { + return items; + } + + @Override + protected void bindKeyMap(KeyMap keyMap) { + keyMap.setAmbiguousTimeout(1); + keyMap.bind(OPERATION_DOWN, ctrl('E'), key(getTerminal(), InfoCmp.Capability.key_down)); + keyMap.bind(OPERATION_UP, ctrl('Y'), key(getTerminal(), InfoCmp.Capability.key_up)); + keyMap.bind(OPERATION_EXIT, "\r"); + keyMap.bind(OPERATION_ESCAPE,"\033"); + keyMap.bind(OPERATION_CONFIRM, Character.toString('c')); + keyMap.bind(OPERATION_NEW, Character.toString('n')); + keyMap.bind(OPERATION_DELETE, Character.toString('d')); + + } + + @Override + protected C runInternal(C context) { + C thisContext = getThisContext(context); + initialExpose(thisContext); + ItemStateViewProjection buildItemStateView = buildItemStateView(start.get(), thisContext); + List> itemStateView = buildItemStateView.items; + thisContext.setItemStateView(itemStateView); + if(context != null && context.getCursorRow() != 0){ + pos.set(context.getCursorRow()-start.get()); + } + + thisContext.setCursorRow(start.get() + pos.get()); + + return thisContext; + } + + @Override + protected boolean read(BindingReader bindingReader, KeyMap keyMap, C context) { + String operation = bindingReader.readBinding(keyMap); + if(Objects.equals(operation, OPERATION_ESCAPE)){ + escapeMode = true; + return true; + } + + if (stale) { + start.set(0); + pos.set(0); + stale = false; + } + + C thisContext = getThisContext(context); + ItemStateViewProjection buildItemStateView = buildItemStateView(start.get(), thisContext); + List> itemStateView = buildItemStateView.items; + + if (operation == null) { + return true; + } + + switch (operation) { + case OPERATION_DOWN: + if (start.get() + pos.get() + 1 < itemStateView.size()) { + pos.incrementAndGet(); + } + else if (start.get() + pos.get() + 1 >= buildItemStateView.total) { + start.set(0); + pos.set(0); + } + else { + start.incrementAndGet(); + } + break; + case OPERATION_UP: + if (start.get() > 0 && pos.get() == 0) { + start.decrementAndGet(); + } + else if (start.get() + pos.get() >= itemStateView.size()) { + pos.decrementAndGet(); + } + else if (start.get() + pos.get() <= 0) { + start.set(buildItemStateView.total - Math.min(maxItems, itemStateView.size())); + pos.set(itemStateView.size() - 1); + } + else { + pos.decrementAndGet(); + } + break; + case OPERATION_EXIT: + if (exitSelects) { + if (itemStateView.size() == 0) { + // filter shows nothing, prevent exit + break; + } + itemStateView.forEach(i -> { + if (i.index == start.get() + pos.get()) { + i.selected = !i.selected; + } + }); + } + List values = thisContext.getItemStates().stream() + .filter(i -> i.selected) + .map(i -> i.item) + .collect(Collectors.toList()); + thisContext.setResultItems(values); + return true; + case OPERATION_CONFIRM: + confirmMode = true; + return true; + case OPERATION_NEW: + newMode = true; + return true; + case OPERATION_DELETE: + deleteMode = true; + return true; + default: + break; + } + + thisContext.setCursorRow(start.get() + pos.get()); + buildItemStateView = buildItemStateView(start.get(), thisContext); + thisContext.setItemStateView(buildItemStateView.items); + return false; + } + + private void initialExpose(C context) { + if (!expose) { + return; + } + expose = false; + List> itemStates = context.getItemStates(); + if (itemStates == null) { + AtomicInteger index = new AtomicInteger(0); + itemStates = context.getItems().stream() + .sorted(comparator) + .map(item -> ItemState.of(item, item.getName(), index.getAndIncrement(), item.isEnabled(), item.isSelected())) + .collect(Collectors.toList()); + } + for (int i = 0; i < itemStates.size(); i++) { + if (ObjectUtils.nullSafeEquals(itemStates.get(i).getName(), defaultExpose.getName())) { + if (i < maxItems) { + this.pos.set(i); + } + else { + this.pos.set(maxItems - 1); + this.start.set(i - maxItems + 1); + } + break; + } + } + } + + private ItemStateViewProjection buildItemStateView(int skip, SelectorComponentContext context) { + List> itemStates = context.getItemStates(); + if (itemStates == null) { + AtomicInteger index = new AtomicInteger(0); + itemStates = context.getItems().stream() + .sorted(comparator) + .map(item -> ItemState.of(item, item.getName(), index.getAndIncrement(), item.isEnabled(), item.isSelected())) + .collect(Collectors.toList()); + context.setItemStates(itemStates); + } + AtomicInteger reindex = new AtomicInteger(0); + List> filtered = itemStates.stream() + .filter(i -> i.matches(context.getInput())) + .peek(i -> i.index = reindex.getAndIncrement()) + .collect(Collectors.toList()); + List> items = filtered.stream() + .skip(skip) + .limit(maxItems) + .collect(Collectors.toList()); + return new ItemStateViewProjection(items, filtered.size()); + } + + public boolean isConfirmMode() { + return confirmMode; + } + public boolean isNewMode() { return newMode; } + public boolean isDeleteMode(){ return deleteMode; } + + public void setConfirmMode(boolean confirmMode) { + this.confirmMode = confirmMode; + } + public void setNewMode(boolean newMode) { this.newMode = newMode; } + public void setDeleteMode(boolean deleteMode){ this.deleteMode=deleteMode; } + + class ItemStateViewProjection { + List> items; + int total; + ItemStateViewProjection(List> items, int total) { + this.items = items; + this.total = total; + } + } + + /** + * Context interface on a selector component sharing content. + */ + public interface SelectorComponentContext, C extends SelectorComponentContext> + extends ComponentContext { + + /** + * Sets a name + * + * @param name the name + */ + void setName(String name); + + /** + * Gets an input. + * + * @return an input + */ + String getInput(); + + /** + * Gets an item states + * + * @return an item states + */ + List> getItemStates(); + + /** + * Sets an item states. + * + * @param itemStateView the input state + */ + void setItemStates(List> itemStateView); + + /** + * Sets an item state view + * + * @param itemStateView the item state view + */ + void setItemStateView(List> itemStateView); + + /** + * Gets a cursor row. + * + * @return a cursor row. + */ + Integer getCursorRow(); + + /** + * Sets a cursor row. + * + * @param cursorRow the cursor row + */ + void setCursorRow(Integer cursorRow); + + /** + * Gets an items. + * + * @return an items + */ + List getItems(); + + /** + * Sets an items. + * + * @param items the items + */ + void setItems(List items); + + /** + * Gets a result items. + * + * @return a result items + */ + List getResultItems(); + + /** + * Sets a result items. + * + * @param items the result items + */ + void setResultItems(List items); + + } + + /** + * Base implementation of a {@link org.springframework.shell.component.support.AbstractSelectorComponent.SelectorComponentContext}. + */ + protected static class BaseSelectorComponentContext, C extends SelectorComponentContext> + extends BaseComponentContext implements SelectorComponentContext { + + private String name; + private String input; + private List> itemStates; + private List> itemStateView; + private Integer cursorRow; + private List items; + private List resultItems; + + private String getName() { + return name; + } + + @Override + public void setName(String name) { + this.name = name; + } + + @Override + public String getInput() { + return input; + } + + @Override + public List> getItemStates() { + return itemStates; + } + + @Override + public void setItemStates(List> itemStates) { + this.itemStates = itemStates; + } + + private List> getItemStateView() { + return itemStateView; + } + + @Override + public void setItemStateView(List> itemStateView) { + this.itemStateView = itemStateView; + } + + private boolean isResult() { + return resultItems != null; + } + + @Override + public Integer getCursorRow() { + return cursorRow; + } + + @Override + public java.util.Map toTemplateModel() { + Map attributes = super.toTemplateModel(); + attributes.put("name", getName()); + attributes.put("input", getInput()); + attributes.put("itemStates", getItemStates()); + attributes.put("itemStateView", getItemStateView()); + attributes.put("isResult", isResult()); + attributes.put("cursorRow", getCursorRow()); + return attributes; + } + + public void setCursorRow(Integer cursorRow) { + this.cursorRow = cursorRow; + } + + @Override + public List getItems() { + return items; + } + + @Override + public void setItems(List items) { + this.items = items; + } + + @Override + public List getResultItems() { + return resultItems; + } + + @Override + public void setResultItems(List resultItems) { + this.resultItems = resultItems; + } + + @Override + public String toString() { + return "DefaultSelectorComponentContext [cursorRow=" + cursorRow + "]"; + } + + } + + /** + * Class keeping item state. + */ + public static class ItemState implements Matchable { + I item; + String name; + boolean selected; + boolean enabled; + int index; + + ItemState(I item, String name, int index, boolean enabled, boolean selected) { + this.item = item; + this.name = name; + this.index = index; + this.enabled = enabled; + this.selected = selected; + } + + public boolean matches(String match) { + return item.matches(match); + } + + public String getName() { + return name; + } + + static ItemState of(I item, String name, int index, boolean enabled, boolean selected) { + return new ItemState<>(item, name, index, enabled, selected); + } + } + +} + diff --git a/src/main/java/com/redis/smartcache/cli/components/ConfirmationInputExtension.java b/src/main/java/com/redis/smartcache/cli/components/ConfirmationInputExtension.java new file mode 100644 index 0000000..ebbbca7 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/components/ConfirmationInputExtension.java @@ -0,0 +1,115 @@ +package com.redis.smartcache.cli.components; + +import org.jline.keymap.BindingReader; +import org.jline.keymap.KeyMap; +import org.jline.terminal.Terminal; +import org.jline.utils.AttributedString; +import org.springframework.shell.component.ConfirmationInput; +import org.springframework.util.StringUtils; + +import java.util.List; +import java.util.function.Function; + +public class ConfirmationInputExtension extends ConfirmationInput { + + private final String OPERATION_ESCAPE = "ESCAPE"; + + public boolean isEscapeMode() { + return isEscapeMode; + } + + private boolean isEscapeMode = false; + public ConfirmationInputExtension(Terminal terminal, String name, boolean defaultValue) { + super(terminal, name, defaultValue); + setTemplateLocation("classpath:confirmation-input.stg"); + } + + public ConfirmationInputExtension(Terminal terminal, String name, boolean defaultValue, Function> renderer) { + super(terminal, name, defaultValue, renderer); + } + + @Override + protected void bindKeyMap(KeyMap keyMap) { + keyMap.bind(OPERATION_ESCAPE, "\033"); + super.bindKeyMap(keyMap); + } + + private void checkInput(String input, ConfirmationInputContext context) { + if (!StringUtils.hasText(input)) { + context.setMessage(null); + return; + } + Boolean yesno = parseBoolean(input); + if (yesno == null) { + String msg = String.format("Sorry, your input is invalid: '%s', try again", input); + context.setMessage(msg, TextComponentContext.MessageLevel.ERROR); + } + else { + context.setMessage(null); + } + } + + private Boolean parseBoolean(String input) { + if (!StringUtils.hasText(input)) { + return null; + } + input = input.trim().toLowerCase(); + switch (input) { + case "y": + case "yes": + case "1": + return true; + case "n": + case "no": + case "0": + return false; + default: + return null; + } + } + + @Override + protected boolean read(BindingReader bindingReader, KeyMap keyMap, ConfirmationInputContext context) { + String operation = bindingReader.readBinding(keyMap); + if (operation == null) { + return true; + } + String input; + switch (operation) { + case OPERATION_CHAR: + String lastBinding = bindingReader.getLastBinding(); + input = context.getInput(); + if (input == null) { + input = lastBinding; + } + else { + input = input + lastBinding; + } + context.setInput(input); + checkInput(input, context); + break; + case OPERATION_BACKSPACE: + input = context.getInput(); + if (StringUtils.hasLength(input)) { + input = input.length() > 1 ? input.substring(0, input.length() - 1) : null; + } + context.setInput(input); + checkInput(input, context); + break; + case OPERATION_EXIT: + if (StringUtils.hasText(context.getInput())) { + context.setResultValue(parseBoolean(context.getInput())); + } + else if (context.getDefaultValue() != null) { + context.setResultValue(context.getDefaultValue()); + } + return true; + case OPERATION_ESCAPE: + isEscapeMode = true; + return true; + default: + break; + } + return false; + } +} diff --git a/src/main/java/com/redis/smartcache/cli/components/StringInputExtension.java b/src/main/java/com/redis/smartcache/cli/components/StringInputExtension.java new file mode 100644 index 0000000..98c8f95 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/components/StringInputExtension.java @@ -0,0 +1,79 @@ +package com.redis.smartcache.cli.components; + +import org.jline.keymap.BindingReader; +import org.jline.keymap.KeyMap; +import org.jline.terminal.Terminal; +import org.jline.utils.InfoCmp; +import org.springframework.shell.component.StringInput; +import org.springframework.util.StringUtils; + +import static org.jline.keymap.KeyMap.del; +import static org.jline.keymap.KeyMap.key; + +public class StringInputExtension extends StringInput { + + public boolean isEscapeMode() { + return isEscapeMode; + } + + private boolean isEscapeMode = false; + private final String OPERATION_ESCAPE = "ESCAPE"; + + public StringInputExtension(Terminal terminal, String name, String defaultValue) { + super(terminal, name, defaultValue); + } + + @Override + protected void bindKeyMap(KeyMap keyMap) { + keyMap.bind(OPERATION_ESCAPE,"\033"); + keyMap.bind(OPERATION_EXIT, "\r"); + keyMap.bind(OPERATION_BACKSPACE, del(), key(getTerminal(), InfoCmp.Capability.key_backspace)); + // skip 127 - DEL + for (char i = 32; i < KeyMap.KEYMAP_LENGTH - 1; i++) { + keyMap.bind(OPERATION_CHAR, Character.toString(i)); + } + } + + @Override + protected boolean read(BindingReader bindingReader, KeyMap keyMap, StringInputContext context) { + String operation = bindingReader.readBinding(keyMap); + if (operation == null) { + return true; + } + String input; + switch (operation) { + case OPERATION_CHAR: + String lastBinding = bindingReader.getLastBinding(); + input = context.getInput(); + if (input == null) { + input = lastBinding; + } + else { + input = input + lastBinding; + } + context.setInput(input); + break; + case OPERATION_BACKSPACE: + input = context.getInput(); + if (StringUtils.hasLength(input)) { + input = input.length() > 1 ? input.substring(0, input.length() - 1) : null; + } + context.setInput(input); + break; + case OPERATION_EXIT: + if (StringUtils.hasText(context.getInput())) { + context.setResultValue(context.getInput()); + } + else if (context.getDefaultValue() != null) { + context.setResultValue(context.getDefaultValue()); + } + return true; + case OPERATION_ESCAPE: + isEscapeMode = true; + return true; + default: + break; + } + return false; + } +} diff --git a/src/main/java/com/redis/smartcache/cli/components/TableSelector.java b/src/main/java/com/redis/smartcache/cli/components/TableSelector.java new file mode 100644 index 0000000..acc1a26 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/components/TableSelector.java @@ -0,0 +1,168 @@ +package com.redis.smartcache.cli.components; + +import com.redis.smartcache.cli.structures.RowInfo; +import org.jline.terminal.Terminal; +import org.jline.utils.AttributedString; +import org.springframework.shell.component.context.ComponentContext; +import org.springframework.shell.component.support.*; + +import java.util.*; +import java.util.function.Function; + +public class TableSelector> + extends AbstractTableSelectorComponent, I> { + + private SingleItemSelectorContext currentContext; + + private final String header; + private final int numColumns; + private final String instructions; + + public TableSelector(Terminal terminal, List items, String name, Comparator comparator, String header, boolean exitSelects, int numColumns, String instructions) { + super(terminal, name, items, exitSelects, comparator); + this.header = header; + setRenderer(new DefaultRenderer()); + setTemplateLocation("classpath:table-selector.stg"); + this.numColumns = numColumns; + this.instructions = instructions; + } + + @Override + public SingleItemSelectorContext getThisContext(ComponentContext context) { + if (context != null && currentContext == context) { + return currentContext; + } + + int cursorRow = 0; + if(context !=null){ + if(context instanceof SingleItemSelectorContext){ + Integer cr = ((SingleItemSelectorContext)context).getCursorRow(); + if(cr != null){ + cursorRow = cr; + } + } + } + + currentContext = TableSelector.SingleItemSelectorContext.empty(numColumns, instructions); + currentContext.setName(name); + currentContext.setCursorRow(cursorRow); + currentContext.setHeader(header); + currentContext.setWidth(getTerminal().getWidth()); + if (currentContext.getItems() == null) { + currentContext.setItems(getItems()); + } + if (context != null) { + context.stream().forEach(e -> currentContext.put(e.getKey(), e.getValue())); + } + return currentContext; + } + + @Override + protected SingleItemSelectorContext runInternal(SingleItemSelectorContext context) { + super.runInternal(context); + + // if there's no tty don't try to loop as it would then cause user interaction + if (hasTty()) { + loop(context); + } + return context; + } + + /** + * Context {@link TableSelector}. + */ + public interface SingleItemSelectorContext> + extends SelectorComponentContext> { + + /** + * Gets a result item. + * + * @return a result item + */ + Optional getResultItem(); + + void setHeader(String header); + + void setWidth(int width); + + /** + * Creates an empty {@link SingleItemSelectorContext}. + * + * @return empty context + */ + static > SingleItemSelectorContext empty(int numColumns, String instructions) { + return new TableSelector.DefaultSingleItemSelectorContext<>(numColumns,instructions); + } + } + + private static class DefaultSingleItemSelectorContext> extends + BaseSelectorComponentContext> implements SingleItemSelectorContext { + + private final String instructions; + private final int numColumns; + private String header; + private int width; + + private int getColWidth(){ + return (width-10)/numColumns; + } + + public void setWidth(int width){ + this.width = width; + + } + + public void setHeader(String header){ + this.header = header; + } + + DefaultSingleItemSelectorContext(int numColumns, String instructions) { + this.numColumns = numColumns; + this.instructions = instructions; + } + + @Override + public Optional getResultItem() { + if (getResultItems() == null) { + return Optional.empty(); + } + return getResultItems().stream().findFirst(); + } + + @Override + public Map toTemplateModel() { + Map attributes = super.toTemplateModel(); + attributes.put("header", header); + attributes.put("instructions", instructions); + + List> rows = new ArrayList<>(); + for (int i = 0; i map = new HashMap<>(); + map.put("name", getItems().get(i).getItem().toRowString(getColWidth())); + map.put("selected", getCursorRow() == i); + rows.add(map); + } + + attributes.put("rows", rows); + // finally wrap it into 'model' as that's what + // we expect in stg template. + Map model = new HashMap<>(); + model.put("model", attributes); + return model; + } + + @Override + public String toString() { + return "DefaultSingleItemSelectorContext [super=" + super.toString() + "]"; + } + } + + private class DefaultRenderer implements Function, List> { + + @Override + public List apply(SingleItemSelectorContext context) { + return renderTemplateResource(context.toTemplateModel()); + } + } +} + diff --git a/src/main/java/com/redis/smartcache/cli/structures/Action.java b/src/main/java/com/redis/smartcache/cli/structures/Action.java new file mode 100644 index 0000000..fde8c55 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/structures/Action.java @@ -0,0 +1,18 @@ +package com.redis.smartcache.cli.structures; + +public class Action implements RowInfo { + String action; + + public String getAction(){ + return action; + } + + public Action(String action){ + this.action = action; + } + + @Override + public String toRowString(int colWidth) { + return action; + } +} diff --git a/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java b/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java new file mode 100644 index 0000000..0cf31e4 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java @@ -0,0 +1,297 @@ +package com.redis.smartcache.cli.structures; + +import com.redis.lettucemod.search.Document; +import com.redis.smartcache.core.RuleConfig; +import com.redis.smartcache.core.Query; +import com.redis.smartcache.cli.util.Util; + +import java.util.*; + +public class QueryInfo implements RowInfo { + private final Query query; + + private RuleConfig currentRule; + private RuleConfig pendingRule; + + public long getCount() { + return count; + } + + public double getMeanQueryTime() { + return meanQueryTime; + } + + private final long count; + private final double meanQueryTime; + + + private QueryInfo(Builder builder) { + this.query = builder.query; + this.currentRule = builder.currentRule; + this.pendingRule = builder.pendingRule; + this.count = builder.count; + this.meanQueryTime = builder.meanQueryTime; + } + + + public Query getQuery(){ + return this.query; + } + + + public String getQueryId(){ + if (query == null){ + return ""; + } + return query.getId(); + } + + public String getQueryTablesString(){ + if(query ==null){ + return ""; + } + + return String.join(",", query.getTables()); + } + + public String getQuerySql(){ + if (query == null){ + return ""; + } + + return query.getSql(); + } + + public boolean getIsCached(){ + return currentRule != null && !Objects.equals(currentRule.getTtl().toString(), "0s"); + } + + public String getCurrentTtlString(){ + if (currentRule == null){ + return ""; + } + + return currentRule.getTtl().toString(); + } + + public String getPendingRuleTtlString(){ + if (pendingRule == null){ + return ""; + } + + return pendingRule.getTtl().toString(); + } + + public void setPendingRule(RuleConfig rule){ + this.pendingRule = rule; + } + + public void setCurrentRule(RuleConfig rule){ + this.currentRule = rule; + } + + public static int compare(QueryInfo first, QueryInfo second, SortDirection sortDirection, SortField sortBy){ + switch(sortBy){ + case accessFrequency: + if(sortDirection == SortDirection.asc){ + + return Long.compare(first.getCount(), second.getCount()); + } + return Long.compare(second.getCount(), first.getCount()); + case queryTime: + if(sortDirection == SortDirection.asc){ + return Double.compare(first.getMeanQueryTime(), second.getMeanQueryTime()); + } + return Double.compare(second.getMeanQueryTime(), first.getMeanQueryTime()); + case tables: + if(sortDirection == SortDirection.asc){ + return first.getQueryTablesString().compareTo(second.getQueryTablesString()); + } + return second.getQueryTablesString().compareTo(first.getQueryTablesString()); + case id: + if (sortDirection == SortDirection.asc) { + return first.getQueryId().compareTo(second.getQueryId()); + } + return second.getQueryId().compareTo(first.getQueryId()); + } + return Long.compare(first.getCount(), second.getCount()); + } + + public static String getHeaderRow(int colWidth, boolean includePending){ + StringBuilder sb = new StringBuilder(); + sb.append("|"); + sb.append(Util.center("Id",colWidth)); + sb.append("|"); + sb.append(Util.center("SQL", colWidth)); + sb.append("|"); + sb.append(Util.center("Tables", colWidth)); + sb.append("|"); + sb.append(Util.center("Is Cached", colWidth)); + sb.append("|"); + sb.append(Util.center("Current TTL", colWidth)); + sb.append("|"); + if(includePending){ + sb.append(Util.center("Pending TTL", colWidth)); + sb.append("|"); + } + + sb.append(Util.center("Access Frequency", colWidth)); + sb.append("|"); + sb.append(Util.center("Mean Query Time", colWidth)); + sb.append("|"); + return sb.toString(); + } + + public String toRowString(int colWidth){ + return toRowString(colWidth, true); + } + + public String toRowString(int colWidth, boolean includePending){ + StringBuilder sb = new StringBuilder(); + sb.append("|"); + sb.append(Util.center(getQueryId(),colWidth)); + sb.append("|"); + sb.append(Util.center(getQuerySql(),colWidth)); + sb.append("|"); + sb.append(Util.center(getQueryTablesString(),colWidth)); + sb.append("|"); + sb.append(Util.center(String.valueOf(getIsCached()),colWidth)); + sb.append("|"); + sb.append(Util.center(getCurrentTtlString(),colWidth)); + sb.append("|"); + if(includePending){ + sb.append(Util.center(getPendingRuleTtlString(),colWidth)); + sb.append("|"); + } + + sb.append(Util.center(String.valueOf(count),colWidth)); + sb.append("|"); + sb.append(Util.center(String.format("%.3fms", meanQueryTime),colWidth)); + sb.append("|"); + return sb.toString(); + } + public String toFormattedString(int width){ + StringBuilder sb = new StringBuilder(); + sb.append(String.format("Query id: %s%n", query.getId())); + if(query.getSql().length()+11 > width){ + List substrings = Util.chopString(query.getSql(), width); + sb.append("Query sql:\n"); + for(String s : substrings){ + sb.append(String.format("%s%n",s)); + } + } + else{ + sb.append(String.format("Query sql: %s%n", query.getSql())); + } + + sb.append(String.format("Query tables: %s%n", query.getTables())); + if (currentRule!=null){ + sb.append(String.format("Current TTL: %s%n", currentRule.getTtl())); + } + else{ + sb.append(String.format("Current TTL:%n")); + } + + if (pendingRule!=null){ + sb.append(String.format("Pending TTL: %s%n", pendingRule.getTtl())); + } + else{ + sb.append(String.format("Pending TTL:%n")); + } + + return sb.toString(); + } + + //builder + + public static class Builder { + private Query query; + private RuleConfig currentRule; + private RuleConfig pendingRule; + private long count; + private double meanQueryTime; + + public Builder() {} + + public void setQuery(Query query) { + this.query = query; + } + + public void setCurrentRule(RuleConfig currentRule) { + this.currentRule = currentRule; + } + + public void setPendingRule(RuleConfig pendingRule) { + this.pendingRule = pendingRule; + } + + public void setCount(long count) { + this.count = count; + } + + public void setMeanQueryTime(double meanQueryTime) { + this.meanQueryTime = meanQueryTime; + } + + public QueryInfo build() { + return new QueryInfo(this); + } + } + + public static Optional matchRule(Query q, List rules){ + + for (RuleConfig rule : rules){ + if (rule.getTables() == null && rule.getQueryIds() == null && rule.getTablesAll() == null && rule.getTablesAny() == null && rule.getRegex() == null) { + return Optional.of(rule); // this rule is a rule with empty matches - so it matches anything + + } + + if (rule.getQueryIds() != null && !rule.getQueryIds().contains(q.getId())) + { + continue; + } + + if(rule.getTables() != null && !q.getTables().equals(new HashSet<>(rule.getTables()))){ + continue; + } + + if(rule.getTablesAll() != null && !q.getTables().containsAll(rule.getTablesAll())){ + continue; + } + + if(rule.getTablesAny() != null && q.getTables().stream().noneMatch(x->rule.getTablesAny().contains(x))){ + continue; + } + + if(rule.getRegex() != null && !q.getSql().matches(rule.getRegex())){ + continue; + } + + return Optional.of(rule); + } + + return Optional.empty(); + + } + + public static QueryInfo fromDocument(Document doc){ + Query query = new Query.QueryBuilder() + .setId(doc.get("id")) + .setSql(doc.get("sql")) + .setTables(new HashSet<>(Arrays.asList(doc.get("table").split(",")))) + .build(); + + Builder builder = new Builder(); + builder.setQuery(query); + if(doc.containsKey("count")){ + builder.setCount(Long.parseLong(doc.get("count"))); + } + + if(doc.containsKey("mean")){ + builder.setMeanQueryTime(Double.parseDouble(doc.get("mean"))); + } + + return builder.build(); + } + +} diff --git a/src/main/java/com/redis/smartcache/cli/structures/RowInfo.java b/src/main/java/com/redis/smartcache/cli/structures/RowInfo.java new file mode 100644 index 0000000..aaf598f --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/structures/RowInfo.java @@ -0,0 +1,5 @@ +package com.redis.smartcache.cli.structures; + +public interface RowInfo { + String toRowString(int colWidth); +} diff --git a/src/main/java/com/redis/smartcache/cli/structures/RuleInfo.java b/src/main/java/com/redis/smartcache/cli/structures/RuleInfo.java new file mode 100644 index 0000000..5f8c6f4 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/structures/RuleInfo.java @@ -0,0 +1,109 @@ +package com.redis.smartcache.cli.structures; + +import com.redis.smartcache.cli.util.Util; +import com.redis.smartcache.core.Config; +import com.redis.smartcache.core.RuleConfig; + +public class RuleInfo implements RowInfo { + public enum Status{ + Current, Editing, New, Delete + } + + public RuleConfig getRule() { + return rule; + } + + public void setRule(RuleConfig rule) { + this.rule = rule; + } + + RuleConfig rule; + + public Status getStatus() { + return status; + } + + public void setStatus(Status status) { + this.status = status; + } + + Status status; + + public RuleInfo(RuleConfig rule, Status status){ + this.rule = rule; + this.status = status; + } + + public RuleType ruleType(){ + if(rule.getTablesAny() != null){ + return RuleType.TABLES_ANY; + } + + if(rule.getTables() != null){ + return RuleType.TABLES; + } + + if(rule.getTablesAll() != null){ + return RuleType.TABLES_ALL; + } + + if(rule.getRegex() != null){ + return RuleType.REGEX; + } + + if(rule.getQueryIds() != null){ + return RuleType.QUERY_IDS; + } + + return RuleType.ANY; + } + + public String ruleMatch(){ + if(rule.getTablesAny() != null){ + return String.join(",", rule.getTablesAny()); + } + + if(rule.getTables() != null){ + return String.join(",", rule.getTables()); + } + + if(rule.getTablesAll() != null){ + return String.join(",", rule.getTablesAll()); + } + + if(rule.getRegex() != null){ + return String.join(",", rule.getRegex()); + } + + if(rule.getQueryIds() != null){ + return String.join(",", rule.getQueryIds()); + } + + return ""; + } + + @Override + public String toRowString(int colWidth) { + return "|" + + Util.center(ruleType().getValue(), colWidth) + + "|" + + Util.center(ruleMatch(), colWidth) + + "|" + + Util.center(rule.getTtl().toString(), colWidth) + + "|" + + Util.center(status.toString(), colWidth) + + "|"; + } + + public static String getHeaderRow(int colWidth){ + return "|" + + Util.center("Type", colWidth) + + "|" + + Util.center("Match", colWidth) + + "|" + + Util.center("TTL", colWidth) + + "|" + + Util.center("Status", colWidth) + + "|"; + } +} diff --git a/src/main/java/com/redis/smartcache/cli/structures/RuleType.java b/src/main/java/com/redis/smartcache/cli/structures/RuleType.java new file mode 100644 index 0000000..eba343d --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/structures/RuleType.java @@ -0,0 +1,22 @@ +package com.redis.smartcache.cli.structures; + +public enum RuleType { + TABLES("Tables"), + TABLES_ANY("Tables Any"), + TABLES_ALL("Tables All"), + REGEX("Regex"), + QUERY_IDS("Query IDs"), + ANY("*"); + + + final private String value; + + RuleType(String value){ + this.value = value; + } + + public String getValue(){ + return value; + } + +} diff --git a/src/main/java/com/redis/smartcache/cli/structures/RuleTypeInfo.java b/src/main/java/com/redis/smartcache/cli/structures/RuleTypeInfo.java new file mode 100644 index 0000000..d2b1051 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/structures/RuleTypeInfo.java @@ -0,0 +1,25 @@ +package com.redis.smartcache.cli.structures; + +public class RuleTypeInfo implements RowInfo { + public RuleType getType() { + return type; + } + + public String getMessage() { + return message; + } + + final private RuleType type; + final private String message; + + public RuleTypeInfo(RuleType type, String message){ + this.type = type; + this.message = message; + + } + + @Override + public String toRowString(int colWidth) { + return type.getValue(); + } +} diff --git a/src/main/java/com/redis/smartcache/cli/structures/SortDirection.java b/src/main/java/com/redis/smartcache/cli/structures/SortDirection.java new file mode 100644 index 0000000..1ab9c96 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/structures/SortDirection.java @@ -0,0 +1,16 @@ +package com.redis.smartcache.cli.structures; + +public enum SortDirection { + desc("desc"), + asc("asc"); + + final private String value; + + SortDirection(String value){ + this.value = value; + } + + public String getValue(){ + return value; + } +} diff --git a/src/main/java/com/redis/smartcache/cli/structures/SortField.java b/src/main/java/com/redis/smartcache/cli/structures/SortField.java new file mode 100644 index 0000000..23b477b --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/structures/SortField.java @@ -0,0 +1,36 @@ +package com.redis.smartcache.cli.structures; + +public enum SortField { + queryTime("query-time"), + accessFrequency("access-frequency"), + tables("tables"), + id("id"); + + final private String value; + + SortField(String value){ + this.value = value; + } + + public String getValue(){ + return value; + } + + + /** + * Overridden valueOf so we can have nicer enum names. + * @param value the Value to parse + * @return the enum matching the string value. + * @throws IllegalArgumentException thrown if the string value does not map to a known enum value + */ + public static SortField valueOfOverride(String value) throws IllegalArgumentException{ + for(SortField e : values()){ + if(value.equals(e.value)){ + return e; + } + } + throw new IllegalArgumentException("No Enum constant with value: " + value); + } + + +} diff --git a/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java b/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java new file mode 100644 index 0000000..8014487 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java @@ -0,0 +1,99 @@ +package com.redis.smartcache.cli.structures; + +import com.redis.smartcache.cli.util.Util; +import com.redis.smartcache.core.Config; +import com.redis.smartcache.core.RuleConfig; + +public class TableInfo implements RowInfo { + + private String name; + private RuleConfig rule; + private double queryTime; + private long accessFrequency; + + public String ttlStr(){ + if(rule != null){ + return rule.getTtl().toString(); + } + return ""; + } + + public String getName() { + return name; + } + + public RuleConfig getRule() { + return rule; + } + + public double getQueryTime() { + return queryTime; + } + + public long getAccessFrequency() { + return accessFrequency; + } + + public static String headerRow(int colWidth){ + return "|" + + Util.center("Table Name", colWidth) + + "|" + + Util.center("TTL", colWidth) + + "|" + + Util.center("Avg Query Time", colWidth) + + "|" + + Util.center("Access Frequency", colWidth) + + "|"; + } + + @Override + public String toRowString(int colWidth) { + return "|" + + Util.center(getName(), colWidth) + + "|" + + Util.center(this.ttlStr(), colWidth) + + "|" + + Util.center(String.format("%.3fms", getQueryTime()), colWidth) + + "|" + + Util.center(String.valueOf(getAccessFrequency()), colWidth) + + "|"; + } + + public static class Builder{ + private String name; + private RuleConfig rule; + private double queryTime; + private long accessFrequency; + + public Builder(){ + } + + public Builder name(String name){ + this.name = name; + return this; + } + + public void rule(RuleConfig rule){ + this.rule = rule; + } + + public Builder queryTime(double queryTime){ + this.queryTime = queryTime; + return this; + } + + public Builder accessFrequency(long accessFrequency){ + this.accessFrequency = accessFrequency; + return this; + } + + public TableInfo build(){ + TableInfo tableInfo = new TableInfo(); + tableInfo.name = name; + tableInfo.rule = rule; + tableInfo.queryTime = queryTime; + tableInfo.accessFrequency = accessFrequency; + return tableInfo; + } + } +} diff --git a/src/main/java/com/redis/smartcache/cli/util/Util.java b/src/main/java/com/redis/smartcache/cli/util/Util.java new file mode 100644 index 0000000..a29c125 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/util/Util.java @@ -0,0 +1,97 @@ +package com.redis.smartcache.cli.util; + +import com.redis.smartcache.cli.structures.RuleType; +import com.redis.smartcache.core.Config; +import com.redis.smartcache.core.RuleConfig; +import io.airlift.units.Duration; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +public final class Util { + public static String repeat(char c, int num){ + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < num; i++){ + sb.append(c); + } + + return sb.toString(); + } + public static String center(String s, int width){ + if (s.length() > width){ + if (width < 3){ + return repeat('.', width); + } + + return s.substring(0, width-3) + repeat('.',3); + } + + int spaces = (width - s.length()) / 2; + + StringBuilder sb = new StringBuilder(); + sb.append(repeat(' ', spaces)); + sb.append(s); + sb.append(repeat(' ', width-(spaces+s.length()))); + return sb.toString(); + } + + public static Optional tryParseInt(String s){ + try{ + return Optional.of(Integer.parseInt(s)); + } catch (NumberFormatException e){ + return Optional.empty(); + } + } + + public static Optional tryParseLong(String s){ + try{ + return Optional.of(Long.parseLong(s)); + } catch (NumberFormatException e){ + return Optional.empty(); + } + } + + public static Optional tryParseDouble(String s){ + try{ + return Optional.of(Double.parseDouble(s)); + } catch (NumberFormatException e){ + return Optional.empty(); + } + } + + public static List chopString(String s, int width){ + List substrings = new ArrayList<>(); + + for(int i = 0; i < s.length(); i+= width){ + int endIndex = Math.min(i+width, s.length()); + substrings.add(s.substring(i, endIndex)); + } + + return substrings; + } + + public static RuleConfig createRule(RuleType ruleType, String match, Duration ttl){ + RuleConfig rule = new RuleConfig(); + switch (ruleType){ + case QUERY_IDS: + rule.setQueryIds(List.of(match)); + break; + case TABLES_ANY: + rule.setTablesAny(List.of(match)); + break; + case TABLES: + rule.setTables(List.of(match)); + break; + case TABLES_ALL: + rule.setTablesAll(List.of(match)); + break; + case REGEX: + rule.setRegex(match); + break; + } + + rule.setTtl(ttl); + return rule; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties new file mode 100644 index 0000000..2b16bd8 --- /dev/null +++ b/src/main/resources/application.properties @@ -0,0 +1,2 @@ +spring.banner.location=classpath:banner.txt +logging.pattern.console= \ No newline at end of file diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt new file mode 100644 index 0000000..e004301 --- /dev/null +++ b/src/main/resources/banner.txt @@ -0,0 +1,5 @@ + _____ __ ______ __ ________ ____ + / ___/____ ___ ____ ______/ /_ / ____/___ ______/ /_ ___ / ____/ / / _/ + \__ \/ __ '__ \/ __ '/ ___/ __/ / / / __ '/ ___/ __ \/ _ \ / / / / / / + ___/ / / / / / / /_/ / / / /_ / /___/ /_/ / /__/ / / / __/ / /___/ /____/ / +/____/_/ /_/ /_/\__,_/_/ \__/ \____/\__,_/\___/_/ /_/\___/ \____/_____/___/ \ No newline at end of file diff --git a/src/main/resources/confirmation-input.stg b/src/main/resources/confirmation-input.stg new file mode 100644 index 0000000..be09260 --- /dev/null +++ b/src/main/resources/confirmation-input.stg @@ -0,0 +1,40 @@ +// message +message(model) ::= <% + +<(">>>"); format="level-error"> + +<(">>"); format="level-warn"> + +<(">"); format="level-info"> + +%> + +// info section after '? xxx' +info(model) ::= <% + + <("(Y/n)"); format="style-item-disabled"> + + <("(y/N)"); format="style-item-disabled"> + +%> + +// start '? xxx' shows both running and result +question_name(model) ::= << +<({}); format="style-list-value"> +>> + +// component result +result(model) ::= << + +>> + +// component is running +running(model) ::= << + + +>> + +// main +main(model) ::= << + +>> diff --git a/src/main/resources/native-image/resource-config.json b/src/main/resources/native-image/resource-config.json new file mode 100644 index 0000000..0bddc30 --- /dev/null +++ b/src/main/resources/native-image/resource-config.json @@ -0,0 +1,7 @@ +{ + "resources": [ + {"pattern": "org/jline/utils/.*caps$"}, + {"pattern": "org/jline/utils/capabilities\\.txt$"}, + {"pattern": ".*stg$"} + ] +} \ No newline at end of file diff --git a/src/main/resources/proxy-config.json b/src/main/resources/proxy-config.json new file mode 100644 index 0000000..7596ff4 --- /dev/null +++ b/src/main/resources/proxy-config.json @@ -0,0 +1,5 @@ +[ + {"interfaces": ["com.redis.lettucemod.api.sync.RedisModulesCommands", "io.lettuce.core.cluster.api.sync.RedisClusterCommands"]}, + {"interfaces": ["com.redis.lettucemod.api.sync.RediSearchCommands", "com.redis.lettucemod.api.async.RediSearchAsyncCommands"]} + +] \ No newline at end of file diff --git a/src/main/resources/reflection-config.json b/src/main/resources/reflection-config.json new file mode 100644 index 0000000..19856ca --- /dev/null +++ b/src/main/resources/reflection-config.json @@ -0,0 +1,11 @@ +[ + {"name" : "sun.misc.SignalHandler", "allDeclaredConstructors" : true, "allPublicConstructors" : true, "allDeclaredMethods" : true, "allPublicMethods" : true, "allDeclaredClasses" : true, "allPublicClasses" : true}, + {"name" : "com.redis.smartcache.core.Config", "allDeclaredConstructors" : true, "allPublicConstructors" : true, "allDeclaredMethods" : true, "allPublicMethods" : true, "allDeclaredClasses" : true, "allPublicClasses" : true}, + {"name" : "com.redis.smartcache.core.RulesetConfig", "allDeclaredConstructors" : true, "allPublicConstructors" : true, "allDeclaredMethods" : true, "allPublicMethods" : true, "allDeclaredClasses" : true, "allPublicClasses" : true}, + {"name" : "com.redis.smartcache.core.RuleConfig", "allDeclaredConstructors" : true, "allPublicConstructors" : true, "allDeclaredMethods" : true, "allPublicMethods" : true, "allDeclaredClasses" : true, "allPublicClasses" : true }, + {"name" : "com.redis.smartcache.core.RuleSessionManager", "allDeclaredConstructors" : true, "allPublicConstructors" : true, "allDeclaredMethods" : true, "allPublicMethods" : true, "allDeclaredClasses" : true, "allPublicClasses" : true }, + {"name" : "com.redis.smartcache.core.QueryRuleSession", "allDeclaredConstructors" : true, "allPublicConstructors" : true, "allDeclaredMethods" : true, "allPublicMethods" : true, "allDeclaredClasses" : true, "allPublicClasses" : true }, + {"name" : "io.airlift.units.Duration", "allDeclaredConstructors" : true, "allPublicConstructors" : true, "allDeclaredMethods" : true, "allPublicMethods" : true, "allDeclaredClasses" : true, "allPublicClasses" : true}, + {"name" : "com.redis.lettucemod.api.sync.RediSearchCommands", "allDeclaredConstructors" : true, "allPublicMethods" : true}, + {"name" : "com.redis.lettucemod.api.async.RediSearchAsyncCommands", "allDeclaredConstructors" : true, "allPublicMethods" : true} +] \ No newline at end of file diff --git a/src/main/resources/table-selector.stg b/src/main/resources/table-selector.stg new file mode 100644 index 0000000..753322b --- /dev/null +++ b/src/main/resources/table-selector.stg @@ -0,0 +1,45 @@ +// selector rows +select_item(item) ::= <% + +<({ }); format="style-item-selector"> + +<(" ")> + +%> + +// start '? xxx' shows both running and result +question_name(model) ::= << +<({}); format="style-list-value"> +>> + +// within info section, dedicated instructions for user +info_filter(model) ::= <% + +, filtering '' + +, type to filter + +%> + +// info section after '? xxx' +info(model) ::= << +[Use arrows to move] +>> + +// component result +result(model) ::= << + +>> + +// component is running +running(model) ::= << + + +}; separator="\n"> +>> + +// main - hardcoded name +// model - model built by SingleItemSelectorContext +main(model) ::= << + +>> diff --git a/src/test/java/com/redis/smartcache/cli/SmartCacheCliApplicationTests.java b/src/test/java/com/redis/smartcache/cli/SmartCacheCliApplicationTests.java new file mode 100644 index 0000000..1c1c083 --- /dev/null +++ b/src/test/java/com/redis/smartcache/cli/SmartCacheCliApplicationTests.java @@ -0,0 +1,13 @@ +package com.redis.smartcache.cli; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class SmartCacheCliApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/util/util.go b/util/util.go deleted file mode 100644 index 75f3c2c..0000000 --- a/util/util.go +++ /dev/null @@ -1,53 +0,0 @@ -package util - -import ( - "errors" - "regexp" - "strings" -) - -func CenterString(str string, width int) string { - if len(str) > width { - return str[0:width-3] + "..." - } - spaces := int(float64(width-len(str)) / 2) - return strings.Repeat(" ", spaces) + str + strings.Repeat(" ", width-(spaces+len(str))) -} - -func Remove[T any](slice []T, s int) []T { - return append(slice[:s], slice[s+1:]...) -} - -func CompareSlices(slice []string, other []string) bool { - if len(slice) == 0 && len(other) == 0 { - return true - } - if len(slice) != len(other) { - return false - } - - for i, _ := range slice { - if slice[i] != other[i] { - return false - } - } - - return true -} - -func ValidateTimeout(input string) error { - pattern := "^\\s*(\\d+(?:\\.\\d+)?)\\s*([a-zA-Z]+)\\s*$" - matched, err := regexp.MatchString(pattern, input) - if err != nil { - return err - } - - if !matched { - - if !matched { - return errors.New("Duration did not match pattern [Number][Duration] (e.g., 300s, 5m, 1h).") - } - - } - return nil -} From fe6d9def20f48e565bf6661d13c88fa90d39a700 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 29 Jun 2023 13:17:08 -0400 Subject: [PATCH 02/84] fixing command --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d674e87..5374203 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,4 +17,4 @@ jobs: - name: Gradle Build run: gradlew build - name: Native Compile - run: gradlew nativeCompile \ No newline at end of file + run: ./gradlew nativeCompile \ No newline at end of file From 7b6696e17bf4e0a3cab51b73474e37c3a8dbc022 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 29 Jun 2023 13:19:02 -0400 Subject: [PATCH 03/84] action --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5374203..be21f00 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,4 +17,4 @@ jobs: - name: Gradle Build run: gradlew build - name: Native Compile - run: ./gradlew nativeCompile \ No newline at end of file + run: sh ./gradlew nativeCompile \ No newline at end of file From f9363e91bb7ebe35822009b399308138dc91a5de Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 29 Jun 2023 13:20:01 -0400 Subject: [PATCH 04/84] debugging --- .github/workflows/ci.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be21f00..c6696e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,9 @@ jobs: with: java-version: '17' distribution: 'graalvm' + - name: ls + run: ls -l - name: Gradle Build - run: gradlew build + run: sh ./gradlew build - name: Native Compile run: sh ./gradlew nativeCompile \ No newline at end of file From 2c2b858117ddd0f6cd527f13117c48e76256d6a8 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 6 Jul 2023 13:34:41 -0400 Subject: [PATCH 05/84] adding windows build task --- .github/workflows/ci.yml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6696e5..f2ab296 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,7 +6,17 @@ on: branches: [main] jobs: - build: + build-windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - uses: graalvm/setup-graalvm@v1 + with: + java-version: '17' + distribution: 'graalvm' + - name: Native build + run: ./gradlew nativeCompile + build-ubuntu: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 From 0e3ad926ad0343460d8c2ae8adebf0e97501ba9a Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 6 Jul 2023 13:37:33 -0400 Subject: [PATCH 06/84] changing format --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f2ab296..baa9736 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: java-version: '17' distribution: 'graalvm' - name: Native build - run: ./gradlew nativeCompile + run: gradlew nativeCompile build-ubuntu: runs-on: ubuntu-latest steps: From a5f1c5bf116094907071ff88362edb605189a057 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 6 Jul 2023 13:39:16 -0400 Subject: [PATCH 07/84] try this --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index baa9736..8eac7aa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: java-version: '17' distribution: 'graalvm' - name: Native build - run: gradlew nativeCompile + run: .\gradlew nativeCompile build-ubuntu: runs-on: ubuntu-latest steps: From fc08eb0ab39e825d866d9dd3b350315d59d7f6f5 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 6 Jul 2023 14:50:58 -0400 Subject: [PATCH 08/84] maybe this --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8eac7aa..4096a20 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: java-version: '17' distribution: 'graalvm' - name: Native build - run: .\gradlew nativeCompile + run: gradle nativeCompile build-ubuntu: runs-on: ubuntu-latest steps: From 2e021a517f8e3d40596e049c2352737421954c18 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 6 Jul 2023 16:18:58 -0400 Subject: [PATCH 09/84] multi-platform --- .github/workflows/ci.yml | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4096a20..82db0ae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,8 +6,11 @@ on: branches: [main] jobs: - build-windows: - runs-on: windows-latest + build: + strategy: + matrix: + os: [ ubuntu-latest, windows-latest, macos-latest ] + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - uses: graalvm/setup-graalvm@v1 @@ -16,17 +19,19 @@ jobs: distribution: 'graalvm' - name: Native build run: gradle nativeCompile - build-ubuntu: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: graalvm/setup-graalvm@v1 + - name: zip + shell: bash + run: | + if [[ ${{ matrix.os }} == 'windows-latest' ]]; then + zip -j redis-smart-cache-cli-windows.zip nativeCompile/smart-cache-cli.exe + elif [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then + zip -j redis-smart-cache-cli-ubuntu.zip nativeCompile/smart-cache-cli + elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then + zip -j redis-smart-cache-cli-macos.zip nativeCompile/smart-cache-cli + fi + - name: upload + uses: actions/upload-artifact@v3 with: - java-version: '17' - distribution: 'graalvm' - - name: ls - run: ls -l - - name: Gradle Build - run: sh ./gradlew build - - name: Native Compile - run: sh ./gradlew nativeCompile \ No newline at end of file + retention-days: 1 + name: artifacts + path: redis-smart-cache-cli-*.zip \ No newline at end of file From fcf66e744ea17447076ae738adb58eeefb2c4ef9 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 6 Jul 2023 16:47:18 -0400 Subject: [PATCH 10/84] testing condition --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82db0ae..c0fc943 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,14 @@ jobs: with: java-version: '17' distribution: 'graalvm' + - run: | + if [[ ${{ matrix.os }} == 'windows-latest' ]]; then + echo ${{ matrix.os }} + elif [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then + echo ${{ matrix.os }} + elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then + echo ${{ matrix.os }} + fi - name: Native build run: gradle nativeCompile - name: zip From d1b1173611744f0d5cb57ace5baff0ba9ce97b5e Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 6 Jul 2023 16:49:55 -0400 Subject: [PATCH 11/84] fixing shell --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0fc943..c6b8602 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,8 @@ jobs: with: java-version: '17' distribution: 'graalvm' - - run: | + - shell: bash + run: | if [[ ${{ matrix.os }} == 'windows-latest' ]]; then echo ${{ matrix.os }} elif [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then From 1a2db4d6f620ad4e1661678ad4b22d24c23aa2b2 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 6 Jul 2023 16:52:28 -0400 Subject: [PATCH 12/84] fixing path --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c6b8602..8863d59 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,11 +32,11 @@ jobs: shell: bash run: | if [[ ${{ matrix.os }} == 'windows-latest' ]]; then - zip -j redis-smart-cache-cli-windows.zip nativeCompile/smart-cache-cli.exe + zip -j redis-smart-cache-cli-windows.zip build/native/nativeCompile/smart-cache-cli.exe elif [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then - zip -j redis-smart-cache-cli-ubuntu.zip nativeCompile/smart-cache-cli + zip -j redis-smart-cache-cli-ubuntu.zip build/native/nativeCompile/smart-cache-cli elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then - zip -j redis-smart-cache-cli-macos.zip nativeCompile/smart-cache-cli + zip -j redis-smart-cache-cli-macos.zip build/native/nativeCompile/smart-cache-cli fi - name: upload uses: actions/upload-artifact@v3 From f56ed964667b9a1ac71a243e296a4d0d563cb90d Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 7 Jul 2023 07:48:21 -0400 Subject: [PATCH 13/84] compress-archve > zip --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8863d59..ecf63a5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: shell: bash run: | if [[ ${{ matrix.os }} == 'windows-latest' ]]; then - zip -j redis-smart-cache-cli-windows.zip build/native/nativeCompile/smart-cache-cli.exe + compress-archive -Path .\build\native\nativeCompile\smart-cache-cli.exe -Destination redis-smart-cache-cli-windows.zip elif [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then zip -j redis-smart-cache-cli-ubuntu.zip build/native/nativeCompile/smart-cache-cli elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then From c3397f1e599c6552628ff79bb965c38f9a517881 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 7 Jul 2023 08:24:34 -0400 Subject: [PATCH 14/84] moving windows to it's own job --- .github/workflows/ci.yml | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ecf63a5..d7db578 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,10 +6,27 @@ on: branches: [main] jobs: + build-windows: + steps: + - uses: actions/checkout@v2 + - uses: graalvm/setup-graalvm@v1 + with: + java-version: '17' + distribution: 'graalvm' + - name: Native build + run: gradle nativeCompile + - name: Zip + run: compress-archive -Path .\build\native\nativeCompile\smart-cache-cli.exe -Destination redis-smart-cache-cli-windows.zip + - name: upload + uses: actions/upload-artifact@v3 + with: + retention-days: 1 + name: artifacts + path: redis-smart-cache-cli-windows.zip build: strategy: matrix: - os: [ ubuntu-latest, windows-latest, macos-latest ] + os: [ ubuntu-latest, macos-latest ] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 @@ -19,9 +36,7 @@ jobs: distribution: 'graalvm' - shell: bash run: | - if [[ ${{ matrix.os }} == 'windows-latest' ]]; then - echo ${{ matrix.os }} - elif [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then + if [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then echo ${{ matrix.os }} elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then echo ${{ matrix.os }} @@ -31,9 +46,7 @@ jobs: - name: zip shell: bash run: | - if [[ ${{ matrix.os }} == 'windows-latest' ]]; then - compress-archive -Path .\build\native\nativeCompile\smart-cache-cli.exe -Destination redis-smart-cache-cli-windows.zip - elif [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then + if [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then zip -j redis-smart-cache-cli-ubuntu.zip build/native/nativeCompile/smart-cache-cli elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then zip -j redis-smart-cache-cli-macos.zip build/native/nativeCompile/smart-cache-cli From 443cdabc61d8a9e293b2bc0de1b141355334740c Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 7 Jul 2023 08:25:56 -0400 Subject: [PATCH 15/84] bump --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d7db578..68ee352 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,4 +56,4 @@ jobs: with: retention-days: 1 name: artifacts - path: redis-smart-cache-cli-*.zip \ No newline at end of file + path: redis-smart-cache-cli-*.zip From 0c261ea707be42fa5a3166e28f99c58334258e90 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 7 Jul 2023 08:26:51 -0400 Subject: [PATCH 16/84] run on windows --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 68ee352..7bfe497 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,6 +7,7 @@ on: jobs: build-windows: + runs-on: windows-latest steps: - uses: actions/checkout@v2 - uses: graalvm/setup-graalvm@v1 From 67534af55a9c90383c116784d6d97a083971b42f Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 7 Jul 2023 15:25:29 -0400 Subject: [PATCH 17/84] adding dispatch --- .../workflows/{ci.yml => native-build.yml} | 29 ++++--- .github/workflows/release.yml | 35 ++++++++ .gitignore | 2 + jreleaser.yml | 80 +++++++++++++++++++ 4 files changed, 134 insertions(+), 12 deletions(-) rename .github/workflows/{ci.yml => native-build.yml} (62%) create mode 100644 .github/workflows/release.yml create mode 100644 jreleaser.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/native-build.yml similarity index 62% rename from .github/workflows/ci.yml rename to .github/workflows/native-build.yml index 7bfe497..24cdb01 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/native-build.yml @@ -1,12 +1,13 @@ -name: CI +name: Native Build on: - push: - branches: [main] - pull_request: - branches: [main] + workflow_call: + inputs: + project-version: + required: true + type: string jobs: - build-windows: + native-build-windows: runs-on: windows-latest steps: - uses: actions/checkout@v2 @@ -17,14 +18,14 @@ jobs: - name: Native build run: gradle nativeCompile - name: Zip - run: compress-archive -Path .\build\native\nativeCompile\smart-cache-cli.exe -Destination redis-smart-cache-cli-windows.zip + run: compress-archive -Path .\build\native\nativeCompile\smart-cache-cli.exe -Destination redis-smart-cache-cli-${{ inputs.project-version }}-windows.zip - name: upload uses: actions/upload-artifact@v3 with: retention-days: 1 name: artifacts - path: redis-smart-cache-cli-windows.zip - build: + path: redis-smart-cache-cli-${{ inputs.project-version }}-windows.zip + native-build: strategy: matrix: os: [ ubuntu-latest, macos-latest ] @@ -36,11 +37,13 @@ jobs: java-version: '17' distribution: 'graalvm' - shell: bash - run: | + run: | if [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then echo ${{ matrix.os }} + fileName=redis-smart-cache-cli-${{ inputs.project-version }}-ubuntu.zip elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then echo ${{ matrix.os }} + fileName=redis-smart-cache-cli-${{ inputs.project-version }}-macos.zip fi - name: Native build run: gradle nativeCompile @@ -48,9 +51,11 @@ jobs: shell: bash run: | if [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then - zip -j redis-smart-cache-cli-ubuntu.zip build/native/nativeCompile/smart-cache-cli + fileName=redis-smart-cache-cli-${{ inputs.project-version }}-ubuntu.zip + zip -j $fileName build/native/nativeCompile/smart-cache-cli elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then - zip -j redis-smart-cache-cli-macos.zip build/native/nativeCompile/smart-cache-cli + fileName=redis-smart-cache-cli-${{ inputs.project-version }}-macos.zip + zip -j $fileName build/native/nativeCompile/smart-cache-cli fi - name: upload uses: actions/upload-artifact@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..f15017f --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,35 @@ +name: Release + +on: + workflow_dispatch: + inputs: + version: + description: 'Release Version' + required: true +jobs: + precheck: + name: Precheck + runs-on: ubuntu-latest + outputs: + version: ${{ steps.vars.outputs.VERSION }} + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Version + id: vars + shell: bash + run: | + echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT + echo ${{ github.event.inputs.version }} > VERSION + git add VERSION + sed -i -e "s/^\:project-version\:\ .*/:project-version: ${{ github.event.inputs.version }}/g" README.adoc + git config --global user.email "${{ secrets.COMMIT_EMAIL }}" + git config --global user.name "Steve Lorello" + git commit -a -m "Releasing version ${{ github.event.inputs.version }}" + git push origin spring + native-Build: + name: Native Build + needs: [precheck] + uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@spring + with: + project-version: ${{ needs.precheck.outputs.version }} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 765a684..eb29181 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,5 @@ smart-cache-cli dist/ .gradle build +spring-shell.log +out \ No newline at end of file diff --git a/jreleaser.yml b/jreleaser.yml new file mode 100644 index 0000000..b7cb064 --- /dev/null +++ b/jreleaser.yml @@ -0,0 +1,80 @@ +assemble: + nativeImage: + smart-cache-cli: + active: ALWAYS + java: + version: 17 + executable: smart-cache-cli + mainJar: + path: build/libs/smart-cache-cli-{{projectVersion}}.jar + +project: + name: smart-cache-cli + description: The CLI tool for managing Redis Smart Cache + longDescription: The CLI tool for managing Redis Smart Cache + authors: + - Steve Lorello + license: MIT + links: + homepage: https://github.com/slorello89/redis-smart-cache-cli + java: + groupId: com.redis + mainClass: com.redis.smartcache.cli.Application + version: 17 + inceptionYear: 2023 + stereotype: CLI + + +release: + github: + overwrite: true + issues: + enabled: true + changelog: + formatted: ALWAYS + preset: conventional-commits + contributors: + format: '- {{contributorName}}{{#contributorUsernameAsLink}} ({{.}}){{/contributorUsernameAsLink}}' + contentTemplate: 'src/jreleaser/changelog.tpl' + extraProperties: + categorizeScopes: true + labelers: + - label: 'i18n' + title: 'regex:^(?:i18n(?:\(.*\))?!?):\s.*' + order: 120 + - label: 'dependencies' + title: 'regex:^(?:deps(?:\(.*\))?!?):\s.*' + order: 130 + - label: 'allcontributors1' + title: 'regex:^docs: update .all-contributorsrc.*' + order: -1 + - label: 'allcontributors2' + title: 'regex:^docs: update CONTRIBUTORS.md.*' + order: -2 + categories: + - title: '🌐 Translation' + key: 'i18n' + order: 70 + labels: + - 'i18n' + - title: '⚙️ Dependencies' + key: 'dependencies' + order: 80 + labels: + - 'dependencies' + - title: 'allcontributors' + order: 59 + labels: + - 'allcontributors1' + - 'allcontributors2' + hide: + categories: + - 'merge' + - 'allcontributors' + contributors: + - 'GitHub' + - 'allcontributors' + - 'dependabot' + replacers: + - search: 'i18n: ' + - search: 'deps: '{} From 4014b5a3133d17461d8bce82303f7a1c7a33e022 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 7 Jul 2023 15:30:48 -0400 Subject: [PATCH 18/84] switching to main --- .github/workflows/release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f15017f..c70b989 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,10 +26,10 @@ jobs: git config --global user.email "${{ secrets.COMMIT_EMAIL }}" git config --global user.name "Steve Lorello" git commit -a -m "Releasing version ${{ github.event.inputs.version }}" - git push origin spring + git push origin main native-Build: name: Native Build needs: [precheck] - uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@spring + uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main with: project-version: ${{ needs.precheck.outputs.version }} \ No newline at end of file From 61efe571a0a6cacbc20e70ba56415270d27e5a43 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 7 Jul 2023 15:34:38 -0400 Subject: [PATCH 19/84] adding back readme --- README.adoc | 219 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 README.adoc diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..6d43717 --- /dev/null +++ b/README.adoc @@ -0,0 +1,219 @@ +:linkattrs: +:project-owner: redis-field-engineering +:project-name: redis-smart-cache-cli +:project-group: com.redis +:project-version: 0.0.2 +:project-url: https://github.com/{project-owner}/{project-name} +:product-name: Redis Smart Cache CLI +:property-prefix: smartcache +:grafana-dir: demo/redis-smart-cache-demo/grafana +:imagesdir: .github/images +:toc: +:toc-placement!: + += Redis Smart Cache CLI + +The Redis Smart Cache CLI is a tool for managing and configuring https://github.com/redis-field-engineering/redis-smart-cache[Redis Smart Cache]. + +This CLI lets you view your application's queries, analyze query performance, and select which queries you want cached. + +== Installation + +=== Homebrew + +You can install the Redis Smart Cache CLI by running: + +`brew install redis-field-engineering/tap/smart-cache-cli` + +=== Download the Binaries + +You can also download the Redis Smart Cache CLI binaries directly, select the https://github.com/redis-field-engineering/redis-smart-cache-cli/releases[latest release to download]. We provide builds for Linux, macOS, and Windows, across a variety of architectures. + +== Usage + +There are two ways to use the CLI: + +1. In **interactive mode**, you can navigate the CLI's menus to observe the queries and tables being profiled by Smart Cache. You can then apply updates to the rules used to guide Smart Cache's caching decisions. +2. In **scripted mode**, you can run ad-hoc commands. This is useful when scripting interactions with Smart Cache. + +=== Common Flags + +[cols="1,1,1,1,1"] +|=== +|Flag Name|Shortcut|Type|Description|Default + +| --application +| -s +| string +| The application namespace to use +| smartcache + +| --host +| -n +| string +| Host to connect to Redis on +| localhost + +| --port +| -p +| string +| Port to connect to Redis on +| 6379 + +| --user +| -u +| string +| User to authenticate to Redis with +| default + +| --password +| -a +| string +| Redis password + +| --help +| +| +| help for smart-cache-cli +| + +|=== + +=== Interactive + +To run Redis Smart Cache CLI in interactive mode, execute `smart-cache-cli` with the flags needed to connect to your Redis instance. You'll then see a text-based dialog with the following options: + +. List Queries +. Rule List +. Create Rule +. Table List + +==== List Queries + +The List Queries table shows you the queries that Smart Cache is currently tracking: + +image:query-list-table.png[Query List Table] + +This dialog lets you choose which queries you want to create rules for. To create a pending rule for a given query, select the query you want and then press _return_. +This will open a rule dialog which will show you expanded details for the query. You can then provide a TTL, which will enable caching for this query. + +image:query-rule-dialog.png[Query Rule Dialog] + +==== List Rules + +The List Rules dialog displays the rules currently in force for Smart Cache. You can batch the creation, editing, and deletion of rules. + +image:rule-list.png[Rule List] + +==== Rule Creation + +The Rule Creation dialog allows you to create and prioritize caching rules. + +image:rule-creation.png[Rule Creation Dialog] + +==== Table List + +The Table List view provides you a table-level view of the profiling done by Smart Cache. + +You can see your tables, their access frequency, and the mean query time for all queries executed against them. You can also see whether a query is cached, including the configured TTL for any cached queries. + +image:table-list.png[Table List] + +=== Non-Interactive Commands + +The Smart Cache CLI provides several non-interactive (i.e., scriptable) commands. These include: + +1. List Queries +2. Create Rules + +==== List Queries + +The List Queries command lists the queries seen by Smart Cache. Example: + +``` +smart-cache-cli listqueries +``` + +image:list-queries.png[List Queries] + +===== List Queries flags + +[cols="1,1,1,1,1"] +|=== +|Flag Name|Shortcut|Type|Description|Default + +|--sortDirection +|-d +|string +|The direction to sort by. Valid options include DESC and ASC. +|DESC + +|--sortby +|-b +|string +|The column to sort by. Valid options include 'queryTime', 'accessFrequency', 'tables', and 'id'. +|queryTime + +|=== + +==== Rule Creation + +The `makerule` command lets you create rules on the fly. This command is non-interactive (i.e., scriptable) when you include the `y` flag (to confirm rule creation). See the flag descriptions below for details: + +===== Rule Creation Flags + +[cols="1,1,1,1,1"] +|=== +|Flag Name|Shortcut|Type|Description|required + +|--ttl +|-t +|string +|The time to live as a duration (e.g. 5m, 300s, 2d) the rule. Essentially, this is how long the query will be cached for. +|yes + +|--confirm +|-y +| +| Provide this flag with a value of `-y` to run this command in non-interactive (i.e., scripted) mode. +|no + +|--queryIds +|-q +|string +|Comma-delimited unordered list of the IDs of the queries that the rule will apply to. +|no + +|--regex +|-r +|string +|The regex to use to match this rule. If the regex matches, the rule will apply. +|no + +|--tablesAll +|-l +|string +|Comma-delimited unordered set of table names. Matches if **all** of these tables in the set appear in the query (other tables may appear, as well). +|no + +|--tablesAny +|-x +|string +|Comma-delimited unordered set of table names. Matches if **any** of these tables appear in the query. +|no + +|--tablesExact +|-e +|string +|Comma-delimited unordered set of table names. Matches of all of these tables – and no others – appear in the query. +|no + +|=== + +== Support + +{product-name} is supported by Redis, Inc. on a good faith effort basis. To report bugs, request features, or receive assistance, please {project-url}/issues[file an issue]. + +== License + +{product-name} is licensed under the MIT License. Copyright (C) 2023 Redis, Inc. \ No newline at end of file From 7dff116d815693df3e13afde5ce9b8c1a336e606 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 7 Jul 2023 15:37:27 -0400 Subject: [PATCH 20/84] enhancing permissions --- .github/workflows/release.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c70b989..ab4ab57 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,6 +6,12 @@ on: version: description: 'Release Version' required: true + +permissions: + actions: write + id-token: write + contents: write + jobs: precheck: name: Precheck From 2c1ea82af427c622e6577831b983132ecbb4fad3 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Fri, 7 Jul 2023 19:40:17 +0000 Subject: [PATCH 21/84] Releasing version 0.0.1 --- README.adoc | 2 +- VERSION | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 VERSION diff --git a/README.adoc b/README.adoc index 6d43717..4a6e6bf 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.1 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..8acdd82 --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.1 From 7ea9ef8adc338682f77e648abd2fb6c9c5f5953a Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 11:02:19 -0400 Subject: [PATCH 22/84] renaming files, rebuilding --- .github/workflows/native-build.yml | 14 +++++++------- .github/workflows/release.yml | 15 +++++++++++++-- .gitignore | 3 ++- build.gradle | 11 +++++++++++ jreleaser.yml | 23 ++++++++++++----------- src/jreleaser/changelog.tpl | 23 +++++++++++++++++++++++ 6 files changed, 68 insertions(+), 21 deletions(-) create mode 100644 src/jreleaser/changelog.tpl diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml index 24cdb01..39f4fd6 100644 --- a/.github/workflows/native-build.yml +++ b/.github/workflows/native-build.yml @@ -18,13 +18,13 @@ jobs: - name: Native build run: gradle nativeCompile - name: Zip - run: compress-archive -Path .\build\native\nativeCompile\smart-cache-cli.exe -Destination redis-smart-cache-cli-${{ inputs.project-version }}-windows.zip + run: compress-archive -Path .\build\native\nativeCompile\smart-cache-cli.exe -Destination redis-smart-cache-cli-${{ inputs.project-version }}-windows-x86_64.zip - name: upload uses: actions/upload-artifact@v3 with: retention-days: 1 name: artifacts - path: redis-smart-cache-cli-${{ inputs.project-version }}-windows.zip + path: redis-smart-cache-cli-${{ inputs.project-version }}-windows-x86_64.zip native-build: strategy: matrix: @@ -40,10 +40,10 @@ jobs: run: | if [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then echo ${{ matrix.os }} - fileName=redis-smart-cache-cli-${{ inputs.project-version }}-ubuntu.zip + fileName=redis-smart-cache-cli-${{ inputs.project-version }}-linux-x86_64.zip elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then echo ${{ matrix.os }} - fileName=redis-smart-cache-cli-${{ inputs.project-version }}-macos.zip + fileName=redis-smart-cache-cli-${{ inputs.project-version }}-osx-x86_64.zip fi - name: Native build run: gradle nativeCompile @@ -51,15 +51,15 @@ jobs: shell: bash run: | if [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then - fileName=redis-smart-cache-cli-${{ inputs.project-version }}-ubuntu.zip + fileName=redis-smart-cache-cli-${{ inputs.project-version }}-linux-x86_64.zip zip -j $fileName build/native/nativeCompile/smart-cache-cli elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then - fileName=redis-smart-cache-cli-${{ inputs.project-version }}-macos.zip + fileName=redis-smart-cache-cli-${{ inputs.project-version }}-osx-x86_64.zip zip -j $fileName build/native/nativeCompile/smart-cache-cli fi - name: upload uses: actions/upload-artifact@v3 with: - retention-days: 1 + retention-days: 5 name: artifacts path: redis-smart-cache-cli-*.zip diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ab4ab57..22c821d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,9 +33,20 @@ jobs: git config --global user.name "Steve Lorello" git commit -a -m "Releasing version ${{ github.event.inputs.version }}" git push origin main - native-Build: + native-build: name: Native Build needs: [precheck] uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main with: - project-version: ${{ needs.precheck.outputs.version }} \ No newline at end of file + project-version: ${{ needs.precheck.outputs.version }} + release: + name: Release + needs: [precheck, native-build] + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: artifacts \ No newline at end of file diff --git a/.gitignore b/.gitignore index eb29181..8729555 100644 --- a/.gitignore +++ b/.gitignore @@ -28,4 +28,5 @@ dist/ .gradle build spring-shell.log -out \ No newline at end of file +out +artifacts \ No newline at end of file diff --git a/build.gradle b/build.gradle index 1992fde..8357212 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,21 @@ plugins { id 'java' + id 'distribution' id 'org.springframework.boot' version '3.0.7' id 'io.spring.dependency-management' version '1.1.0' id 'org.graalvm.buildtools.native' version '0.9.20' } +distributions { + main { + contents { + into(''){ + from nativeCompile + } + } + } +} + graalvmNative { metadataRepository { enabled = true diff --git a/jreleaser.yml b/jreleaser.yml index b7cb064..f03f84a 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -1,13 +1,3 @@ -assemble: - nativeImage: - smart-cache-cli: - active: ALWAYS - java: - version: 17 - executable: smart-cache-cli - mainJar: - path: build/libs/smart-cache-cli-{{projectVersion}}.jar - project: name: smart-cache-cli description: The CLI tool for managing Redis Smart Cache @@ -77,4 +67,15 @@ release: - 'dependabot' replacers: - search: 'i18n: ' - - search: 'deps: '{} + - search: 'deps: ' + +distributions: + smart-cache-cli: + type: BINARY + artifacts: + - path: artifacts/ + - path: build/distributions/{{distributionName}}-{{projectVersion}}.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' + platform: 'osx-aarch_64' + extraProperties: + graalVMNativeImage: true \ No newline at end of file diff --git a/src/jreleaser/changelog.tpl b/src/jreleaser/changelog.tpl new file mode 100644 index 0000000..b26bf00 --- /dev/null +++ b/src/jreleaser/changelog.tpl @@ -0,0 +1,23 @@ +## Changelog + +{{changelogChanges}} +{{changelogContributors}} + +## Binaries + +### 🌟 Universal + +These binaries require an external Java runtime. + +* {{#f_release_download_url}}riot-{{projectEffectiveVersion}}.zip{{/f_release_download_url}} (requires Java 11+) +* {{#f_release_download_url}}riot-{{projectEffectiveVersion}}.tar{{/f_release_download_url}} (requires Java 11+) + +### ☕️ Native Images + +These binaries are self-contained native images + +|Platform | Intel | Arm | +| ------- | ----- | --- | +| MacOS | {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}-osx-x86_64.zip{{/f_release_download_url}} | +| Linux | {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}-linux-x86_64.zip{{/f_release_download_url}} | +| Windows | {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}-windows-x86_64.zip{{/f_release_download_url}} | \ No newline at end of file From cb19ae15ab87d9aac66e3397c5acf8eac33e120e Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 15:06:06 +0000 Subject: [PATCH 23/84] Releasing version 0.0.2 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 4a6e6bf..6d43717 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.1 +:project-version: 0.0.2 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 8acdd82..4e379d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.1 +0.0.2 From e2789997976dec8f784bf472c61707dcbcca7b81 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 12:57:09 -0400 Subject: [PATCH 24/84] universal build --- .github/workflows/release.yml | 14 ++++++++++++-- .github/workflows/universal.yml | 25 +++++++++++++++++++++++++ build.gradle | 5 ++--- jreleaser.yml | 23 ++++++++++++++++++----- src/jreleaser/changelog.tpl | 6 +++--- 5 files changed, 60 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/universal.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 22c821d..0783b5c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -33,6 +33,12 @@ jobs: git config --global user.name "Steve Lorello" git commit -a -m "Releasing version ${{ github.event.inputs.version }}" git push origin main + universal-build: + name: Native Build + needs: [ precheck ] + uses: slorello89/redis-smart-cache-cli/.github/workflows/universal.yml@main + with: + project-version: ${{ needs.precheck.outputs.version }} native-build: name: Native Build needs: [precheck] @@ -41,7 +47,7 @@ jobs: project-version: ${{ needs.precheck.outputs.version }} release: name: Release - needs: [precheck, native-build] + needs: [precheck, universal-build, native-build] runs-on: ubuntu-latest steps: - name: Checkout @@ -49,4 +55,8 @@ jobs: - name: Download artifacts uses: actions/download-artifact@v3 with: - name: artifacts \ No newline at end of file + name: artifacts + - name: Download universal + uses: actions/download-artifact@v3 + with: + name: universal \ No newline at end of file diff --git a/.github/workflows/universal.yml b/.github/workflows/universal.yml new file mode 100644 index 0000000..d837986 --- /dev/null +++ b/.github/workflows/universal.yml @@ -0,0 +1,25 @@ +name: Universal Build +on: + workflow_call: + inputs: + project-version: + required: true + type: string +jobs: + build-universal: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: graalvm/setup-graalvm@v1 + with: + java-version: '17' + distribution: 'graalvm' + - name: build + run: gradle -Prelease=true -PreproducibleBuild=true -Pversion=${{ inputs.project-version }} build + - name: Upload Artifacts + uses: actions/upload-artifact@v3 + with: + retention-days: 5 + name: universal + path: | + build/distributions \ No newline at end of file diff --git a/build.gradle b/build.gradle index 8357212..7ba8ce3 100644 --- a/build.gradle +++ b/build.gradle @@ -9,8 +9,8 @@ plugins { distributions { main { contents { - into(''){ - from nativeCompile + into('libs'){ + from 'build/libs/' } } } @@ -31,7 +31,6 @@ graalvmNative { } group = 'com.redis.smartcache' -version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' repositories { diff --git a/jreleaser.yml b/jreleaser.yml index f03f84a..2fc53fe 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -71,11 +71,24 @@ release: distributions: smart-cache-cli: - type: BINARY artifacts: - - path: artifacts/ - - path: build/distributions/{{distributionName}}-{{projectVersion}}.zip + - path: universal/{{distributionName}}-{{projectVersion}}.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' - platform: 'osx-aarch_64' + smart-cache-cli-native: + type: BINARY + artifacts: + - path: artifacts/redis-{{distributionName}}-{{projectVersion}}-osx-x86_64.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' + platform: 'osx-x86_64' + extraProperties: + graalVMNativeImage: 'true' + - path: artifacts/redis-{{distributionName}}-{{projectVersion}}-linux-x86_64.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' + platform: 'linux-x86_64' + extraProperties: + graalVMNativeImage: 'true' + - path: artifacts/redis-{{distributionName}}-{{projectVersion}}-windows-x86_64.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' + platform: 'windows-x86_64' extraProperties: - graalVMNativeImage: true \ No newline at end of file + graalVMNativeImage: 'true' \ No newline at end of file diff --git a/src/jreleaser/changelog.tpl b/src/jreleaser/changelog.tpl index b26bf00..8931fd6 100644 --- a/src/jreleaser/changelog.tpl +++ b/src/jreleaser/changelog.tpl @@ -18,6 +18,6 @@ These binaries are self-contained native images |Platform | Intel | Arm | | ------- | ----- | --- | -| MacOS | {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}-osx-x86_64.zip{{/f_release_download_url}} | -| Linux | {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}-linux-x86_64.zip{{/f_release_download_url}} | -| Windows | {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}-windows-x86_64.zip{{/f_release_download_url}} | \ No newline at end of file +| MacOS | {{#f_release_download_url}}smart-cache-cli-native-{{projectEffectiveVersion}}-osx-x86_64.zip{{/f_release_download_url}} | +| Linux | {{#f_release_download_url}}smart-cache-cli-native-{{projectEffectiveVersion}}-linux-x86_64.zip{{/f_release_download_url}} | +| Windows | {{#f_release_download_url}}smart-cache-cli-native-{{projectEffectiveVersion}}-windows-x86_64.zip{{/f_release_download_url}} | \ No newline at end of file From 2ca24ca2053d2e894c0ec74cb246a7621891c6db Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 13:00:58 -0400 Subject: [PATCH 25/84] trying release with universal --- .github/workflows/release.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0783b5c..67e236e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,4 +59,12 @@ jobs: - name: Download universal uses: actions/download-artifact@v3 with: - name: universal \ No newline at end of file + name: universal + - name: Release + uses: jreleaser/release-action@v2 + with: + version: early-access + arguments: full-release + env: + JRELEASER_PROJECT_VERSION: ${{ needs.precheck.outputs.version }} + JRELEASER_GITHUB_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }} \ No newline at end of file From c0c856ffa1aeaa3bdace0aa0d3942c0dc18730af Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 17:01:30 +0000 Subject: [PATCH 26/84] Releasing version 0.0.3 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6d43717..bb40335 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.3 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 From 56f27bf0045957c2c6c416426c5f940c075ee670 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 13:13:43 -0400 Subject: [PATCH 27/84] adding bootJar --- .github/workflows/universal.yml | 2 +- README.adoc | 2 +- VERSION | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/universal.yml b/.github/workflows/universal.yml index d837986..394169d 100644 --- a/.github/workflows/universal.yml +++ b/.github/workflows/universal.yml @@ -15,7 +15,7 @@ jobs: java-version: '17' distribution: 'graalvm' - name: build - run: gradle -Prelease=true -PreproducibleBuild=true -Pversion=${{ inputs.project-version }} build + run: gradle -Prelease=true -PreproducibleBuild=true -Pversion=${{ inputs.project-version }} bootJar build - name: Upload Artifacts uses: actions/upload-artifact@v3 with: diff --git a/README.adoc b/README.adoc index bb40335..6d43717 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.3 +:project-version: 0.0.2 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bcab45a..4e379d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.3 +0.0.2 From a1353cdefc49c2b6af386b0cfa59e8ae46f6b511 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 17:14:07 +0000 Subject: [PATCH 28/84] Releasing version 0.0.3 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6d43717..bb40335 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.3 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 From e909c340d87fe1028c6a492cccc3c2cd99c79f24 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 13:21:47 -0400 Subject: [PATCH 29/84] lib only --- .github/workflows/universal.yml | 4 ++-- README.adoc | 2 +- VERSION | 2 +- build.gradle | 11 ----------- 4 files changed, 4 insertions(+), 15 deletions(-) diff --git a/.github/workflows/universal.yml b/.github/workflows/universal.yml index 394169d..9a1c53e 100644 --- a/.github/workflows/universal.yml +++ b/.github/workflows/universal.yml @@ -15,11 +15,11 @@ jobs: java-version: '17' distribution: 'graalvm' - name: build - run: gradle -Prelease=true -PreproducibleBuild=true -Pversion=${{ inputs.project-version }} bootJar build + run: gradle -Prelease=true -PreproducibleBuild=true -Pversion=${{ inputs.project-version }} build - name: Upload Artifacts uses: actions/upload-artifact@v3 with: retention-days: 5 name: universal path: | - build/distributions \ No newline at end of file + build/libs \ No newline at end of file diff --git a/README.adoc b/README.adoc index bb40335..6d43717 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.3 +:project-version: 0.0.2 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bcab45a..4e379d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.3 +0.0.2 diff --git a/build.gradle b/build.gradle index 7ba8ce3..652b368 100644 --- a/build.gradle +++ b/build.gradle @@ -1,21 +1,10 @@ plugins { id 'java' - id 'distribution' id 'org.springframework.boot' version '3.0.7' id 'io.spring.dependency-management' version '1.1.0' id 'org.graalvm.buildtools.native' version '0.9.20' } -distributions { - main { - contents { - into('libs'){ - from 'build/libs/' - } - } - } -} - graalvmNative { metadataRepository { enabled = true From df0946d6b0139ff187a5715c9ab4fc4c98a1c064 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 17:22:40 +0000 Subject: [PATCH 30/84] Releasing version 0.0.3 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6d43717..bb40335 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.3 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 From c873f963f6d2d4950b6026eafb68c2a5f9a52bc6 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 13:48:40 -0400 Subject: [PATCH 31/84] zipping --- .github/workflows/universal.yml | 5 ++++- README.adoc | 2 +- VERSION | 2 +- src/jreleaser/changelog.tpl | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/universal.yml b/.github/workflows/universal.yml index 9a1c53e..133844c 100644 --- a/.github/workflows/universal.yml +++ b/.github/workflows/universal.yml @@ -16,10 +16,13 @@ jobs: distribution: 'graalvm' - name: build run: gradle -Prelease=true -PreproducibleBuild=true -Pversion=${{ inputs.project-version }} build + - name: zip + shell: bash + run: zip -j build/libs/smart-cache-cli-${{ inputs.project-version }}.jar smart-cache-cli-${{ inputs.project-version }}.zip - name: Upload Artifacts uses: actions/upload-artifact@v3 with: retention-days: 5 name: universal path: | - build/libs \ No newline at end of file + smart-cache-cli-${{ inputs.project-version }}.zip diff --git a/README.adoc b/README.adoc index bb40335..6d43717 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.3 +:project-version: 0.0.2 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bcab45a..4e379d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.3 +0.0.2 diff --git a/src/jreleaser/changelog.tpl b/src/jreleaser/changelog.tpl index 8931fd6..3161e3e 100644 --- a/src/jreleaser/changelog.tpl +++ b/src/jreleaser/changelog.tpl @@ -9,8 +9,8 @@ These binaries require an external Java runtime. -* {{#f_release_download_url}}riot-{{projectEffectiveVersion}}.zip{{/f_release_download_url}} (requires Java 11+) -* {{#f_release_download_url}}riot-{{projectEffectiveVersion}}.tar{{/f_release_download_url}} (requires Java 11+) +* {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}.zip{{/f_release_download_url}} (requires Java 17+) +* {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}.tar{{/f_release_download_url}} (requires Java 17+) ### ☕️ Native Images From bf72f668a47ef2e96553b72e5832c66691bf3cbb Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 17:49:10 +0000 Subject: [PATCH 32/84] Releasing version 0.0.3 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6d43717..bb40335 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.3 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 From 1b351c41fa822662e0d617acaf1ce36790350099 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 14:00:59 -0400 Subject: [PATCH 33/84] reording zip --- .github/workflows/universal.yml | 2 +- README.adoc | 2 +- VERSION | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/universal.yml b/.github/workflows/universal.yml index 133844c..a240c17 100644 --- a/.github/workflows/universal.yml +++ b/.github/workflows/universal.yml @@ -18,7 +18,7 @@ jobs: run: gradle -Prelease=true -PreproducibleBuild=true -Pversion=${{ inputs.project-version }} build - name: zip shell: bash - run: zip -j build/libs/smart-cache-cli-${{ inputs.project-version }}.jar smart-cache-cli-${{ inputs.project-version }}.zip + run: zip -j smart-cache-cli-${{ inputs.project-version }}.zip build/libs/smart-cache-cli-${{ inputs.project-version }}.jar - name: Upload Artifacts uses: actions/upload-artifact@v3 with: diff --git a/README.adoc b/README.adoc index bb40335..6d43717 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.3 +:project-version: 0.0.2 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bcab45a..4e379d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.3 +0.0.2 From 2d9c1fd51c9236518eb1486acc17540d3954415e Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 18:01:26 +0000 Subject: [PATCH 34/84] Releasing version 0.0.3 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6d43717..bb40335 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.3 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 From 56e099f92f30d750e18af030b01e7d1b82354cc8 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 14:19:17 -0400 Subject: [PATCH 35/84] changing name --- README.adoc | 2 +- VERSION | 2 +- jreleaser.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.adoc b/README.adoc index bb40335..6d43717 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.3 +:project-version: 0.0.2 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bcab45a..4e379d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.3 +0.0.2 diff --git a/jreleaser.yml b/jreleaser.yml index 2fc53fe..cb53988 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -72,7 +72,7 @@ release: distributions: smart-cache-cli: artifacts: - - path: universal/{{distributionName}}-{{projectVersion}}.zip + - path: {{distributionName}}-{{projectVersion}}.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' smart-cache-cli-native: type: BINARY From 9a28bb3e156ed3d0ba80cb0d5012132bb136828d Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 18:19:56 +0000 Subject: [PATCH 36/84] Releasing version 0.0.3 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6d43717..bb40335 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.3 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 From 414e55c42a7a9572cb2855e00064f4cc4b76ac46 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 14:51:16 -0400 Subject: [PATCH 37/84] fixing names and paths --- .github/workflows/native-build.yml | 14 +++++++------- .gitignore | 3 ++- README.adoc | 2 +- VERSION | 2 +- jreleaser.yml | 8 ++++---- 5 files changed, 15 insertions(+), 14 deletions(-) diff --git a/.github/workflows/native-build.yml b/.github/workflows/native-build.yml index 39f4fd6..b0f43c2 100644 --- a/.github/workflows/native-build.yml +++ b/.github/workflows/native-build.yml @@ -18,13 +18,13 @@ jobs: - name: Native build run: gradle nativeCompile - name: Zip - run: compress-archive -Path .\build\native\nativeCompile\smart-cache-cli.exe -Destination redis-smart-cache-cli-${{ inputs.project-version }}-windows-x86_64.zip + run: compress-archive -Path .\build\native\nativeCompile\smart-cache-cli.exe -Destination smart-cache-cli-native-${{ inputs.project-version }}-windows-x86_64.zip - name: upload uses: actions/upload-artifact@v3 with: retention-days: 1 name: artifacts - path: redis-smart-cache-cli-${{ inputs.project-version }}-windows-x86_64.zip + path: smart-cache-cli-native-${{ inputs.project-version }}-windows-x86_64.zip native-build: strategy: matrix: @@ -40,10 +40,10 @@ jobs: run: | if [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then echo ${{ matrix.os }} - fileName=redis-smart-cache-cli-${{ inputs.project-version }}-linux-x86_64.zip + fileName=smart-cache-cli-native-${{ inputs.project-version }}-linux-x86_64.zip elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then echo ${{ matrix.os }} - fileName=redis-smart-cache-cli-${{ inputs.project-version }}-osx-x86_64.zip + fileName=smart-cache-cli-native-${{ inputs.project-version }}-osx-x86_64.zip fi - name: Native build run: gradle nativeCompile @@ -51,10 +51,10 @@ jobs: shell: bash run: | if [[ ${{ matrix.os }} == 'ubuntu-latest' ]]; then - fileName=redis-smart-cache-cli-${{ inputs.project-version }}-linux-x86_64.zip + fileName=smart-cache-cli-native-${{ inputs.project-version }}-linux-x86_64.zip zip -j $fileName build/native/nativeCompile/smart-cache-cli elif [[ ${{ matrix.os }} == 'macos-latest' ]]; then - fileName=redis-smart-cache-cli-${{ inputs.project-version }}-osx-x86_64.zip + fileName=smart-cache-cli-native-${{ inputs.project-version }}-osx-x86_64.zip zip -j $fileName build/native/nativeCompile/smart-cache-cli fi - name: upload @@ -62,4 +62,4 @@ jobs: with: retention-days: 5 name: artifacts - path: redis-smart-cache-cli-*.zip + path: smart-cache-cli-native-*.zip diff --git a/.gitignore b/.gitignore index 8729555..955af5f 100644 --- a/.gitignore +++ b/.gitignore @@ -29,4 +29,5 @@ dist/ build spring-shell.log out -artifacts \ No newline at end of file +artifacts +universal.zip \ No newline at end of file diff --git a/README.adoc b/README.adoc index bb40335..6d43717 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.3 +:project-version: 0.0.2 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bcab45a..4e379d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.3 +0.0.2 diff --git a/jreleaser.yml b/jreleaser.yml index cb53988..11e3a79 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -72,22 +72,22 @@ release: distributions: smart-cache-cli: artifacts: - - path: {{distributionName}}-{{projectVersion}}.zip + - path: ./universal.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' smart-cache-cli-native: type: BINARY artifacts: - - path: artifacts/redis-{{distributionName}}-{{projectVersion}}-osx-x86_64.zip + - path: artifacts/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' platform: 'osx-x86_64' extraProperties: graalVMNativeImage: 'true' - - path: artifacts/redis-{{distributionName}}-{{projectVersion}}-linux-x86_64.zip + - path: artifacts/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' platform: 'linux-x86_64' extraProperties: graalVMNativeImage: 'true' - - path: artifacts/redis-{{distributionName}}-{{projectVersion}}-windows-x86_64.zip + - path: artifacts/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' platform: 'windows-x86_64' extraProperties: From 2a1b4c6e9ac2cbca18b5e170e6926a0099f0dcec Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 18:51:44 +0000 Subject: [PATCH 38/84] Releasing version 0.0.3 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6d43717..bb40335 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.3 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 From 8a7f9978dbd9a33920faf01bdf905fdd421f480f Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 15:11:52 -0400 Subject: [PATCH 39/84] removing native bits for time considerations --- .github/workflows/release.yml | 24 ++++++++++++----------- README.adoc | 2 +- VERSION | 2 +- jreleaser.yml | 36 +++++++++++++++++------------------ 4 files changed, 33 insertions(+), 31 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 67e236e..4af2822 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,27 +39,29 @@ jobs: uses: slorello89/redis-smart-cache-cli/.github/workflows/universal.yml@main with: project-version: ${{ needs.precheck.outputs.version }} - native-build: - name: Native Build - needs: [precheck] - uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main - with: - project-version: ${{ needs.precheck.outputs.version }} +# native-build: +# name: Native Build +# needs: [precheck] +# uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main +# with: +# project-version: ${{ needs.precheck.outputs.version }} release: name: Release - needs: [precheck, universal-build, native-build] +# needs: [precheck, universal-build, native-build] + needs: [precheck, universal-build] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - - name: Download artifacts - uses: actions/download-artifact@v3 - with: - name: artifacts +# - name: Download artifacts +# uses: actions/download-artifact@v3 +# with: +# name: artifacts - name: Download universal uses: actions/download-artifact@v3 with: name: universal + - run: ls -l - name: Release uses: jreleaser/release-action@v2 with: diff --git a/README.adoc b/README.adoc index bb40335..6d43717 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.3 +:project-version: 0.0.2 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bcab45a..4e379d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.3 +0.0.2 diff --git a/jreleaser.yml b/jreleaser.yml index 11e3a79..e0ad3a5 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -74,21 +74,21 @@ distributions: artifacts: - path: ./universal.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' - smart-cache-cli-native: - type: BINARY - artifacts: - - path: artifacts/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip - transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' - platform: 'osx-x86_64' - extraProperties: - graalVMNativeImage: 'true' - - path: artifacts/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip - transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' - platform: 'linux-x86_64' - extraProperties: - graalVMNativeImage: 'true' - - path: artifacts/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip - transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' - platform: 'windows-x86_64' - extraProperties: - graalVMNativeImage: 'true' \ No newline at end of file +# smart-cache-cli-native: +# type: BINARY +# artifacts: +# - path: artifacts/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip +# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' +# platform: 'osx-x86_64' +# extraProperties: +# graalVMNativeImage: 'true' +# - path: artifacts/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip +# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' +# platform: 'linux-x86_64' +# extraProperties: +# graalVMNativeImage: 'true' +# - path: artifacts/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip +# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' +# platform: 'windows-x86_64' +# extraProperties: +# graalVMNativeImage: 'true' \ No newline at end of file From 4aa4a368de4245953002754cfc5e3727af84577c Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 19:12:14 +0000 Subject: [PATCH 40/84] Releasing version 0.0.3 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6d43717..bb40335 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.3 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 From 6ea77c3df7e844cf87627a3d1bf968540ae05680 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 15:15:00 -0400 Subject: [PATCH 41/84] bump --- .github/workflows/release.yml | 2 +- README.adoc | 2 +- VERSION | 2 +- jreleaser.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4af2822..d0d1453 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,7 +34,7 @@ jobs: git commit -a -m "Releasing version ${{ github.event.inputs.version }}" git push origin main universal-build: - name: Native Build + name: Universal Build needs: [ precheck ] uses: slorello89/redis-smart-cache-cli/.github/workflows/universal.yml@main with: diff --git a/README.adoc b/README.adoc index bb40335..6d43717 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.3 +:project-version: 0.0.2 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bcab45a..4e379d2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.3 +0.0.2 diff --git a/jreleaser.yml b/jreleaser.yml index e0ad3a5..65a06bf 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -72,7 +72,7 @@ release: distributions: smart-cache-cli: artifacts: - - path: ./universal.zip + - path: ./{{distributionName}}-{{projectVersion}}.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' # smart-cache-cli-native: # type: BINARY From ebe4b81977ddbfea9e9003687a79dd97f647dcdb Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 19:15:22 +0000 Subject: [PATCH 42/84] Releasing version 0.0.3 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6d43717..bb40335 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.2 +:project-version: 0.0.3 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 4e379d2..bcab45a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.3 From 40aaaaab4897ff46926950156cfd6dd2bd03400f Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 15:18:45 -0400 Subject: [PATCH 43/84] readding native --- .github/workflows/release.yml | 23 +++++++++++------------ src/jreleaser/changelog.tpl | 5 ++--- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d0d1453..1f24b2b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,24 +39,23 @@ jobs: uses: slorello89/redis-smart-cache-cli/.github/workflows/universal.yml@main with: project-version: ${{ needs.precheck.outputs.version }} -# native-build: -# name: Native Build -# needs: [precheck] -# uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main -# with: -# project-version: ${{ needs.precheck.outputs.version }} + native-build: + name: Native Build + needs: [precheck] + uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main + with: + project-version: ${{ needs.precheck.outputs.version }} release: name: Release -# needs: [precheck, universal-build, native-build] - needs: [precheck, universal-build] + needs: [precheck, universal-build, native-build] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 -# - name: Download artifacts -# uses: actions/download-artifact@v3 -# with: -# name: artifacts + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: artifacts - name: Download universal uses: actions/download-artifact@v3 with: diff --git a/src/jreleaser/changelog.tpl b/src/jreleaser/changelog.tpl index 3161e3e..ebaf9e1 100644 --- a/src/jreleaser/changelog.tpl +++ b/src/jreleaser/changelog.tpl @@ -10,14 +10,13 @@ These binaries require an external Java runtime. * {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}.zip{{/f_release_download_url}} (requires Java 17+) -* {{#f_release_download_url}}smart-cache-cli-{{projectEffectiveVersion}}.tar{{/f_release_download_url}} (requires Java 17+) ### ☕️ Native Images These binaries are self-contained native images -|Platform | Intel | Arm | -| ------- | ----- | --- | +|Platform | Intel | +| ------- | ----- | | MacOS | {{#f_release_download_url}}smart-cache-cli-native-{{projectEffectiveVersion}}-osx-x86_64.zip{{/f_release_download_url}} | | Linux | {{#f_release_download_url}}smart-cache-cli-native-{{projectEffectiveVersion}}-linux-x86_64.zip{{/f_release_download_url}} | | Windows | {{#f_release_download_url}}smart-cache-cli-native-{{projectEffectiveVersion}}-windows-x86_64.zip{{/f_release_download_url}} | \ No newline at end of file From 0ef48099ca6227ec6c8998aa4ef7572e72e598d0 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 19:19:50 +0000 Subject: [PATCH 44/84] Releasing version 0.0.4 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index bb40335..6092a06 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.3 +:project-version: 0.0.4 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bcab45a..81340c7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.3 +0.0.4 From 9e20afaca6d84529e6235ea467cddf1b694dbfe7 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 15:37:05 -0400 Subject: [PATCH 45/84] adding native back --- jreleaser.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/jreleaser.yml b/jreleaser.yml index 65a06bf..2e5612d 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -74,21 +74,21 @@ distributions: artifacts: - path: ./{{distributionName}}-{{projectVersion}}.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' -# smart-cache-cli-native: -# type: BINARY -# artifacts: -# - path: artifacts/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip -# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' -# platform: 'osx-x86_64' -# extraProperties: -# graalVMNativeImage: 'true' -# - path: artifacts/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip -# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' -# platform: 'linux-x86_64' -# extraProperties: -# graalVMNativeImage: 'true' -# - path: artifacts/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip -# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' -# platform: 'windows-x86_64' -# extraProperties: -# graalVMNativeImage: 'true' \ No newline at end of file + smart-cache-cli-native: + type: BINARY + artifacts: + - path: artifacts/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' + platform: 'osx-x86_64' + extraProperties: + graalVMNativeImage: 'true' + - path: artifacts/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' + platform: 'linux-x86_64' + extraProperties: + graalVMNativeImage: 'true' + - path: artifacts/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' + platform: 'windows-x86_64' + extraProperties: + graalVMNativeImage: 'true' \ No newline at end of file From f0598e04deefd7f721fa53d3754b7c0c08742c58 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 19:37:31 +0000 Subject: [PATCH 46/84] Releasing version 0.0.5 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6092a06..5db23db 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.4 +:project-version: 0.0.5 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 81340c7..bbdeab6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.4 +0.0.5 From 652a2207b3dd05c51bcbf180006e94a44a82db4b Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 15:58:36 -0400 Subject: [PATCH 47/84] fixing path --- README.adoc | 2 +- VERSION | 2 +- jreleaser.yml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.adoc b/README.adoc index 5db23db..6092a06 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.5 +:project-version: 0.0.4 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bbdeab6..81340c7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.5 +0.0.4 diff --git a/jreleaser.yml b/jreleaser.yml index 2e5612d..00a6f90 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -77,17 +77,17 @@ distributions: smart-cache-cli-native: type: BINARY artifacts: - - path: artifacts/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip + - path: {{distributionName}}-{{projectVersion}}-osx-x86_64.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' platform: 'osx-x86_64' extraProperties: graalVMNativeImage: 'true' - - path: artifacts/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip + - path: {{distributionName}}-{{projectVersion}}-linux-x86_64.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' platform: 'linux-x86_64' extraProperties: graalVMNativeImage: 'true' - - path: artifacts/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip + - path: {{distributionName}}-{{projectVersion}}-windows-x86_64.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' platform: 'windows-x86_64' extraProperties: From 0a4d3faae86afcd63d4698c5b3a3c366ba0441b8 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 19:59:04 +0000 Subject: [PATCH 48/84] Releasing version 0.0.5 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6092a06..5db23db 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.4 +:project-version: 0.0.5 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 81340c7..bbdeab6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.4 +0.0.5 From 03deed6538085f3f7088e844fccc3466e673bf1e Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 10 Jul 2023 16:19:32 -0400 Subject: [PATCH 49/84] bump --- README.adoc | 2 +- VERSION | 2 +- jreleaser.yml | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.adoc b/README.adoc index 5db23db..6092a06 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.5 +:project-version: 0.0.4 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bbdeab6..81340c7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.5 +0.0.4 diff --git a/jreleaser.yml b/jreleaser.yml index 00a6f90..7fc73fd 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -77,17 +77,17 @@ distributions: smart-cache-cli-native: type: BINARY artifacts: - - path: {{distributionName}}-{{projectVersion}}-osx-x86_64.zip + - path: ./{{distributionName}}-{{projectVersion}}-osx-x86_64.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' platform: 'osx-x86_64' extraProperties: graalVMNativeImage: 'true' - - path: {{distributionName}}-{{projectVersion}}-linux-x86_64.zip + - path: ./{{distributionName}}-{{projectVersion}}-linux-x86_64.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' platform: 'linux-x86_64' extraProperties: graalVMNativeImage: 'true' - - path: {{distributionName}}-{{projectVersion}}-windows-x86_64.zip + - path: ./{{distributionName}}-{{projectVersion}}-windows-x86_64.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' platform: 'windows-x86_64' extraProperties: From b0288da7a88fdad6402372f6a284ce05f296d066 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 10 Jul 2023 20:19:55 +0000 Subject: [PATCH 50/84] Releasing version 0.0.5 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 6092a06..5db23db 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.4 +:project-version: 0.0.5 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 81340c7..bbdeab6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.4 +0.0.5 From bab3a917d16dac61e094308395af19c074ace274 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 07:31:49 -0400 Subject: [PATCH 51/84] docker --- jreleaser.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/jreleaser.yml b/jreleaser.yml index 7fc73fd..16446f9 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -71,6 +71,25 @@ release: distributions: smart-cache-cli: + docker: + active: ALWAYS + repository: + active: ALWAYS + commitMessage: 'smart-cache-cli {{tagName}}' + registries: + - serverName: DEFAULT + username: slorello89 + repositoryName: fieldengineering + labels: + 'org.opencontainers.image.title': 'smart-cache-cli' + imageNames: + - 'fieldengineering/{{distributionName}}:{{tagName}}' + - 'fieldengineering/{{distributionName}}:latest' + buildx: + enabled: true + platforms: + - 'linux/amd64' + - 'linux/arm64' artifacts: - path: ./{{distributionName}}-{{projectVersion}}.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' From 2048461fe5a420e03635a5a3b798bf7030e3b29d Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Tue, 11 Jul 2023 11:32:56 +0000 Subject: [PATCH 52/84] Releasing version 0 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 5db23db..246b4ef 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.5 +:project-version: 0 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bbdeab6..573541a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.5 +0 From 98e89d04838dce9f916f5801825be451090b0753 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 07:33:31 -0400 Subject: [PATCH 53/84] fixing version --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 246b4ef..5db23db 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0 +:project-version: 0.0.5 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 573541a..bbdeab6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0 +0.0.5 From ce7c29d6028d56bb30a7100d64664d113ce5cdac Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Tue, 11 Jul 2023 11:33:54 +0000 Subject: [PATCH 54/84] Releasing version 0.0.6 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 5db23db..8b5e288 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.5 +:project-version: 0.0.6 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bbdeab6..1750564 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.5 +0.0.6 From 596212831066e966ffa5c72d78ed4bf3425afbf6 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 08:18:40 -0400 Subject: [PATCH 55/84] adding docker token --- .github/workflows/release.yml | 3 ++- README.adoc | 2 +- VERSION | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1f24b2b..15cdfec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -68,4 +68,5 @@ jobs: arguments: full-release env: JRELEASER_PROJECT_VERSION: ${{ needs.precheck.outputs.version }} - JRELEASER_GITHUB_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }} \ No newline at end of file + JRELEASER_GITHUB_TOKEN: ${{ secrets.GIT_ACCESS_TOKEN }} + JRELEASER_DOCKER_DEFAULT_PASSWORD: ${{ secrets.JRELEASER_DOCKER_PASSWORD }} \ No newline at end of file diff --git a/README.adoc b/README.adoc index 8b5e288..5db23db 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.6 +:project-version: 0.0.5 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 1750564..bbdeab6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.6 +0.0.5 From d2a31ed1c2f3f297f8b0275bd8887ab793e7bc9c Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 08:20:07 -0400 Subject: [PATCH 56/84] docker token and removing native to speed up testing --- .github/workflows/release.yml | 23 +++++++++++----------- jreleaser.yml | 36 +++++++++++++++++------------------ 2 files changed, 30 insertions(+), 29 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 15cdfec..4a5a6cf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,23 +39,24 @@ jobs: uses: slorello89/redis-smart-cache-cli/.github/workflows/universal.yml@main with: project-version: ${{ needs.precheck.outputs.version }} - native-build: - name: Native Build - needs: [precheck] - uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main - with: - project-version: ${{ needs.precheck.outputs.version }} +# native-build: +# name: Native Build +# needs: [precheck] +# uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main +# with: +# project-version: ${{ needs.precheck.outputs.version }} release: name: Release - needs: [precheck, universal-build, native-build] +# needs: [precheck, universal-build, native-build] + needs: [precheck, universal-build] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - - name: Download artifacts - uses: actions/download-artifact@v3 - with: - name: artifacts +# - name: Download artifacts +# uses: actions/download-artifact@v3 +# with: +# name: artifacts - name: Download universal uses: actions/download-artifact@v3 with: diff --git a/jreleaser.yml b/jreleaser.yml index 16446f9..c25c5b0 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -93,21 +93,21 @@ distributions: artifacts: - path: ./{{distributionName}}-{{projectVersion}}.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' - smart-cache-cli-native: - type: BINARY - artifacts: - - path: ./{{distributionName}}-{{projectVersion}}-osx-x86_64.zip - transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' - platform: 'osx-x86_64' - extraProperties: - graalVMNativeImage: 'true' - - path: ./{{distributionName}}-{{projectVersion}}-linux-x86_64.zip - transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' - platform: 'linux-x86_64' - extraProperties: - graalVMNativeImage: 'true' - - path: ./{{distributionName}}-{{projectVersion}}-windows-x86_64.zip - transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' - platform: 'windows-x86_64' - extraProperties: - graalVMNativeImage: 'true' \ No newline at end of file +# smart-cache-cli-native: +# type: BINARY +# artifacts: +# - path: ./{{distributionName}}-{{projectVersion}}-osx-x86_64.zip +# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' +# platform: 'osx-x86_64' +# extraProperties: +# graalVMNativeImage: 'true' +# - path: ./{{distributionName}}-{{projectVersion}}-linux-x86_64.zip +# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' +# platform: 'linux-x86_64' +# extraProperties: +# graalVMNativeImage: 'true' +# - path: ./{{distributionName}}-{{projectVersion}}-windows-x86_64.zip +# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' +# platform: 'windows-x86_64' +# extraProperties: +# graalVMNativeImage: 'true' \ No newline at end of file From b49c157e43ed3ec16c70ff40f5e5b6b03082b324 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Tue, 11 Jul 2023 12:20:45 +0000 Subject: [PATCH 57/84] Releasing version 0.0.6 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 5db23db..8b5e288 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.5 +:project-version: 0.0.6 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bbdeab6..1750564 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.5 +0.0.6 From 0c43ddf73c9dbde1140b7f033e9c531071d2d62c Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 09:05:03 -0400 Subject: [PATCH 58/84] using applicaiton plugin --- .github/workflows/universal.yml | 7 +++---- LICENSE | 21 +++++++++++++++++++++ README.adoc | 2 +- VERSION | 2 +- build.gradle | 12 +++++++++++- jreleaser.yml | 4 +++- 6 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 LICENSE diff --git a/.github/workflows/universal.yml b/.github/workflows/universal.yml index a240c17..bd26ee9 100644 --- a/.github/workflows/universal.yml +++ b/.github/workflows/universal.yml @@ -16,13 +16,12 @@ jobs: distribution: 'graalvm' - name: build run: gradle -Prelease=true -PreproducibleBuild=true -Pversion=${{ inputs.project-version }} build - - name: zip - shell: bash - run: zip -j smart-cache-cli-${{ inputs.project-version }}.zip build/libs/smart-cache-cli-${{ inputs.project-version }}.jar - name: Upload Artifacts uses: actions/upload-artifact@v3 with: retention-days: 5 name: universal path: | - smart-cache-cli-${{ inputs.project-version }}.zip + build/libs/ + build/distributions/ + LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6f5feca --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Redis + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.adoc b/README.adoc index 8b5e288..5db23db 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.6 +:project-version: 0.0.5 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 1750564..bbdeab6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.6 +0.0.5 diff --git a/build.gradle b/build.gradle index 652b368..73b984e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,6 @@ plugins { id 'java' + id 'application' id 'org.springframework.boot' version '3.0.7' id 'io.spring.dependency-management' version '1.1.0' id 'org.graalvm.buildtools.native' version '0.9.20' @@ -21,7 +22,7 @@ graalvmNative { group = 'com.redis.smartcache' sourceCompatibility = '17' - +description = 'The CLI for smart cache' repositories { mavenCentral() } @@ -30,6 +31,15 @@ ext { set('springShellVersion', "3.0.3") } +application{ + applicationName = 'smart-cache-cli' + mainClassName = 'com.redis.smartcache.cli.Application' +} + +startScripts { + classpath = files('$APP_HOME/lib/*') +} + dependencies { implementation 'org.springframework.shell:spring-shell-starter' testImplementation 'org.springframework.boot:spring-boot-starter-test' diff --git a/jreleaser.yml b/jreleaser.yml index c25c5b0..4ceb351 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -91,8 +91,10 @@ distributions: - 'linux/amd64' - 'linux/arm64' artifacts: - - path: ./{{distributionName}}-{{projectVersion}}.zip + - path: build/distributions/{{distributionName}}-{{projectVersion}}.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' + - path: build/distributions/{{distributionName}}-{{projectVersion}}.tar + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.tar' # smart-cache-cli-native: # type: BINARY # artifacts: From c483ed82f1b08aec7d8e9d956657dab3a9e9a397 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Tue, 11 Jul 2023 13:05:47 +0000 Subject: [PATCH 59/84] Releasing version 0.0.6 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 5db23db..8b5e288 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.5 +:project-version: 0.0.6 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bbdeab6..1750564 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.5 +0.0.6 From d477d003d54818dbde7f72de70c4ce6446828719 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 09:43:42 -0400 Subject: [PATCH 60/84] brew --- README.adoc | 2 +- VERSION | 2 +- jreleaser.yml | 45 ++++++++++++++++++++++++++------------------- 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/README.adoc b/README.adoc index 8b5e288..5db23db 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.6 +:project-version: 0.0.5 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 1750564..bbdeab6 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.6 +0.0.5 diff --git a/jreleaser.yml b/jreleaser.yml index 4ceb351..c77594f 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -10,8 +10,8 @@ project: java: groupId: com.redis mainClass: com.redis.smartcache.cli.Application - version: 17 - inceptionYear: 2023 + version: '17' + inceptionYear: '2023' stereotype: CLI @@ -71,25 +71,32 @@ release: distributions: smart-cache-cli: - docker: + brew: active: ALWAYS - repository: - active: ALWAYS + formulaName: smart-cache-cli + multiPlatform: true + tap: + active: RELEASE commitMessage: 'smart-cache-cli {{tagName}}' - registries: - - serverName: DEFAULT - username: slorello89 - repositoryName: fieldengineering - labels: - 'org.opencontainers.image.title': 'smart-cache-cli' - imageNames: - - 'fieldengineering/{{distributionName}}:{{tagName}}' - - 'fieldengineering/{{distributionName}}:latest' - buildx: - enabled: true - platforms: - - 'linux/amd64' - - 'linux/arm64' +# docker: +# active: ALWAYS +# repository: +# active: ALWAYS +# commitMessage: 'smart-cache-cli {{tagName}}' +# registries: +# - serverName: DEFAULT +# username: slorello89 +# repositoryName: fieldengineering +# labels: +# 'org.opencontainers.image.title': 'smart-cache-cli' +# imageNames: +# - 'fieldengineering/{{distributionName}}:{{tagName}}' +# - 'fieldengineering/{{distributionName}}:latest' +# buildx: +# enabled: true +# platforms: +# - 'linux/amd64' +# - 'linux/arm64' artifacts: - path: build/distributions/{{distributionName}}-{{projectVersion}}.zip transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' From 937fe2707817f2aa0e17b4228967024ec0a6bd8c Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Tue, 11 Jul 2023 13:44:16 +0000 Subject: [PATCH 61/84] Releasing version 0.0.6 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 5db23db..8b5e288 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.5 +:project-version: 0.0.6 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index bbdeab6..1750564 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.5 +0.0.6 From 0b0a2299cc501bcf1304ad6fdacbc4df511023b8 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 13:29:54 -0400 Subject: [PATCH 62/84] various other release platforms --- jreleaser.yml | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/jreleaser.yml b/jreleaser.yml index c77594f..10ca7b6 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -13,7 +13,11 @@ project: version: '17' inceptionYear: '2023' stereotype: CLI - + tags: + - 'redis' + - 'caching' + - 'smart-cache' + - 'data' release: github: @@ -78,6 +82,23 @@ distributions: tap: active: RELEASE commitMessage: 'smart-cache-cli {{tagName}}' + scoop: + active: ALWAYS + bucket: + active: RELEASE + commitMessage: 'smart-cache-cli {{tagName}}' + jbang: + active: ALWAYS + alias: smart-cache-cli + catalog: + commitMessage: 'smart-cache-cli {{tagName}}' + chocolatey: + active: ALWAYS + remoteBuild: true + title: Redis Smart Cache CLI + bucket: + active: RELEASE + packageName: smart-cache-cli # docker: # active: ALWAYS # repository: From 6947d75a73dd2ede8ecbdd4be398934ab3490391 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Tue, 11 Jul 2023 17:30:45 +0000 Subject: [PATCH 63/84] Releasing version 0.0.7 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 8b5e288..e4175e4 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.6 +:project-version: 0.0.7 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 1750564..5a5831a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.6 +0.0.7 From 55b3dcba4e6f501df76bc2fd933c9779ea2a6df5 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 13:37:09 -0400 Subject: [PATCH 64/84] adding back native image --- .github/workflows/release.yml | 17 +++++------------ jreleaser.yml | 36 +++++++++++++++++------------------ 2 files changed, 23 insertions(+), 30 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4a5a6cf..79af400 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,24 +39,17 @@ jobs: uses: slorello89/redis-smart-cache-cli/.github/workflows/universal.yml@main with: project-version: ${{ needs.precheck.outputs.version }} -# native-build: -# name: Native Build -# needs: [precheck] -# uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main -# with: -# project-version: ${{ needs.precheck.outputs.version }} release: name: Release -# needs: [precheck, universal-build, native-build] - needs: [precheck, universal-build] + needs: [precheck, universal-build, native-build] runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 -# - name: Download artifacts -# uses: actions/download-artifact@v3 -# with: -# name: artifacts + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: artifacts - name: Download universal uses: actions/download-artifact@v3 with: diff --git a/jreleaser.yml b/jreleaser.yml index 10ca7b6..7a1b256 100644 --- a/jreleaser.yml +++ b/jreleaser.yml @@ -123,21 +123,21 @@ distributions: transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.zip' - path: build/distributions/{{distributionName}}-{{projectVersion}}.tar transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}.tar' -# smart-cache-cli-native: -# type: BINARY -# artifacts: -# - path: ./{{distributionName}}-{{projectVersion}}-osx-x86_64.zip -# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' -# platform: 'osx-x86_64' -# extraProperties: -# graalVMNativeImage: 'true' -# - path: ./{{distributionName}}-{{projectVersion}}-linux-x86_64.zip -# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' -# platform: 'linux-x86_64' -# extraProperties: -# graalVMNativeImage: 'true' -# - path: ./{{distributionName}}-{{projectVersion}}-windows-x86_64.zip -# transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' -# platform: 'windows-x86_64' -# extraProperties: -# graalVMNativeImage: 'true' \ No newline at end of file + smart-cache-cli-native: + type: BINARY + artifacts: + - path: ./{{distributionName}}-{{projectVersion}}-osx-x86_64.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-osx-x86_64.zip' + platform: 'osx-x86_64' + extraProperties: + graalVMNativeImage: 'true' + - path: ./{{distributionName}}-{{projectVersion}}-linux-x86_64.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-linux-x86_64.zip' + platform: 'linux-x86_64' + extraProperties: + graalVMNativeImage: 'true' + - path: ./{{distributionName}}-{{projectVersion}}-windows-x86_64.zip + transform: '{{distributionName}}/{{distributionName}}-{{projectVersion}}-windows-x86_64.zip' + platform: 'windows-x86_64' + extraProperties: + graalVMNativeImage: 'true' \ No newline at end of file From 296b6ce22a2308273ad0f31d5dc8e45f4eefdea8 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 13:41:41 -0400 Subject: [PATCH 65/84] adding back native build --- .github/workflows/release.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 79af400..15cdfec 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -39,6 +39,12 @@ jobs: uses: slorello89/redis-smart-cache-cli/.github/workflows/universal.yml@main with: project-version: ${{ needs.precheck.outputs.version }} + native-build: + name: Native Build + needs: [precheck] + uses: slorello89/redis-smart-cache-cli/.github/workflows/native-build.yml@main + with: + project-version: ${{ needs.precheck.outputs.version }} release: name: Release needs: [precheck, universal-build, native-build] From 2f509df44e7e33b26fb1ce47d13d7876b0193584 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Tue, 11 Jul 2023 17:42:32 +0000 Subject: [PATCH 66/84] Releasing version 0.0.8 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index e4175e4..4cb23c7 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.7 +:project-version: 0.0.8 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 5a5831a..d169b2f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.7 +0.0.8 From 01d44e497a190dcea20ae946b7709b8c7e013e10 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Tue, 11 Jul 2023 16:06:09 -0400 Subject: [PATCH 67/84] cleaning up some issues --- .../smartcache/cli/commands/Commands.java | 85 +++++++++++-------- 1 file changed, 50 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/redis/smartcache/cli/commands/Commands.java b/src/main/java/com/redis/smartcache/cli/commands/Commands.java index d8eb703..dbc689f 100644 --- a/src/main/java/com/redis/smartcache/cli/commands/Commands.java +++ b/src/main/java/com/redis/smartcache/cli/commands/Commands.java @@ -162,7 +162,7 @@ public Optional newRuleDialogCustom(boolean confirm){ public void createRule(RedisService client){ Optional newRule = newRuleDialogCustom(true); if(newRule.isPresent()){ - List rules = client.getRules(); + List rules = new ArrayList<>(client.getRules()); rules.add(0, newRule.get()); client.commitRules(rules); } @@ -227,50 +227,64 @@ public String interactive( @ShellOption(value = {"-p","--port"}, defaultValue = "6379") String port, @ShellOption(value = {"-s","--application-name"}, defaultValue = "smartcache") String applicationName ){ - RedisService client = initializeClient(host, port, applicationName); + try{ + RedisService client = initializeClient(host, port, applicationName); - String[] options = {LIST_APPLICATION_QUERIES, LIST_TABLES, CREATE_RULE, LIST_RULES, EXIT}; + String[] options = {LIST_APPLICATION_QUERIES, LIST_TABLES, CREATE_RULE, LIST_RULES, EXIT}; - String nextAction = ""; - TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(1, ""); + String nextAction = ""; + TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(1, ""); - while(!nextAction.equals(EXIT)){ + while(!nextAction.equals(EXIT)){ - List> actions = Arrays.stream(options).map(x->SelectorItem.of(x,new Action(x))).collect(Collectors.toList()); - TableSelector> component = new TableSelector<>(getTerminal(), - actions, "Select action", null, "Select Action", true, 1, ""); - component.setResourceLoader(getResourceLoader()); - component.setTemplateExecutor(getTemplateExecutor()); + List> actions = Arrays.stream(options).map(x->SelectorItem.of(x,new Action(x))).collect(Collectors.toList()); + TableSelector> component = new TableSelector<>(getTerminal(), + actions, "Select action", null, "Select Action", true, 1, ""); + component.setResourceLoader(getResourceLoader()); + component.setTemplateExecutor(getTemplateExecutor()); - context = component.run(context); + context = component.run(context); - if(component.isEscapeMode()){ - System.exit(0); - } + if(component.isEscapeMode()){ + System.exit(0); + } - if(context.getResultItem().isPresent()){ - nextAction = context.getResultItem().get().getItem().getAction(); - - switch (nextAction){ - case CREATE_RULE: - createRule(client); - break; - case LIST_APPLICATION_QUERIES: - queryTable(client); - break; - case LIST_TABLES: - tablesTable(client); - break; - case LIST_RULES: - ruleTable(client); - break; + if(context.getResultItem().isPresent()){ + nextAction = context.getResultItem().get().getItem().getAction(); + + switch (nextAction){ + case CREATE_RULE: + createRule(client); + break; + case LIST_APPLICATION_QUERIES: + queryTable(client); + break; + case LIST_TABLES: + tablesTable(client); + break; + case LIST_RULES: + ruleTable(client); + break; + } } + + getTerminal().puts(InfoCmp.Capability.clear_screen); } - getTerminal().puts(InfoCmp.Capability.clear_screen); + System.exit(0); + } + catch (Exception ex){ + if(ex.getMessage() == null){ + System.out.printf("Encountered fatal error: %s%nexiting. . .%n", ex); + throw ex; + + } else{ + System.out.printf("Encountered fatal error: %s%nexiting. . .%n", ex.getMessage()); + } + + System.exit(1); } - System.exit(0); return "Interactive!"; } @@ -386,7 +400,7 @@ public void tablesTable(RedisService client){ Optional confirmed = getConfirmation(new RuleInfo(newRule, RuleInfo.Status.New)); confirmed.ifPresent(c->{ if(c){ - List rules = client.getRules(); + List rules = new ArrayList<>(client.getRules()); rules.add(0, newRule); client.commitRules(rules); } @@ -409,7 +423,7 @@ private List> getQueries(RedisService client){ } public void queryTable(RedisService client){ - List rules = client.getRules(); + List rules = new ArrayList<>(client.getRules()); Map pendingRules = new HashMap<>(); @@ -478,6 +492,7 @@ else if (!component.isEscapeMode() && resOpt.isPresent()){ }else{ rule = new RuleConfig(); rule.setQueryIds(List.of(result.getQueryId())); + rule.setTtl(duration.get()); pendingRules.put(duration.get(),rule); } queries.get(context.getCursorRow()).getItem().setPendingRule(rule); From 79d34d37d1797f8d26fff106e58f847e68a4b1d3 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Wed, 12 Jul 2023 08:23:12 -0400 Subject: [PATCH 68/84] make-rule and doc updates --- .github/images/list-queries.png | Bin 157429 -> 59112 bytes .github/images/query-list-table.png | Bin 235411 -> 72915 bytes .github/images/query-rule-dialog.png | Bin 82392 -> 47463 bytes .github/images/rule-creation.png | Bin 98160 -> 15619 bytes .github/images/rule-list.png | Bin 92705 -> 50623 bytes .github/images/table-list.png | Bin 33831 -> 40692 bytes README.adoc | 44 ++++---------- .../smartcache/cli/commands/Commands.java | 54 ++++++++++++++++++ 8 files changed, 64 insertions(+), 34 deletions(-) diff --git a/.github/images/list-queries.png b/.github/images/list-queries.png index 88762a441a5fb8c0cdaec4245053fdd397b89752..817be3c629d7628ef5761d0ca68dc0e0d6c81ce5 100644 GIT binary patch literal 59112 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 V-2Wc!<+B)oz|+;wWt~$(698`F`>g-~ literal 157429 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ǮY0O^-#GL0(wWkW_^eN+i}$3b*_HNjy><Yz8rOKk{6RhPF>b%xvC}|Isif5#qxn1zo++7Bl+azD-*kY@dV!N%Q z{M}{>nTq$>BMPivShz0(iYx(lz@l|fqz*EO@U|!iK5szw-7xa=Kv|3PUj_&|3EjYb zkI}#0TD6qMf6bJXQXrD1X@HQfCuI%bT}TG$V8WEwmpgb7Yd{7pdJ2kok#p)-<8s9` zK3rXQR`AgMa{J04I8nMH(irGrPPeg!wrarIx&PzYCF*8m~ zj22GUJBZOq{Gxx7my<$0*THnRq%IqNC2PoLJNhk@683ZUf8TVF){PM`+wc5P=X6S- zLvlT(F6_N)g@a@zXgdX@;;a1jsDu&8ajnHU0<`(G9)@oQ2(kMD@5W&QIu{b(}|2(*qY`%!V3N zUoqXtuk^{4nmu%P1kBB@Qq1aHD&&t{qq(K^+Pp4<>C~sN)R2R)c6uWXRYYziVbWr| zuBQgd5RuhDpM0oG;TTWi=^4Y*i++S^2fF_1!;S*xz%6TIMjz{mkN5&g+1^x z zoGGOQteV<4|IL(dq9}NIXCCh^3qMbL74`bh8H?1?&9b{wDC;^^w>~`u3LA-oLV)cP(1#1+k#pfaiZgbc2`G6(S8?@=sO^mvK^gEYCqd@H;>)(O z{2q8Ah0*NUi&&WD*ijSD5$Y}b#!$O~`8|VD!*|Iq`Q&STf=HBK6{a=g+DLf|&fy;l zY{@^{8V&n~PbDKiFk^U=etCUHL?^G;uj3vXXfnYK<24H4^VLG~Nn%U_X)l_X{p?CO z+F_gPmM(+Y@XPqY-t&iA0W+CCvm0$`WX`k{Hb|8XHt-*CT&Z86>7VWM7=7H`x@CM5 zp4tu&a6A@edgrpVugMD$wjWTf1>(Kyv{wO@urNEv-)>83IXovvLq1>!H|5 zO|o0#Z*+Y>G-wcSYJ(BI#B+S|jd9Av9!c}Y!5LMJL5P|dn&S%^9de<3h}}U#goqR1 z@ZK+C=vlZQJ6xD*T~I(l z(oqnP|6G&HSX8phy5AbfSTJT7n)2Fg24UFUtt+z4Z;ylQqd(XNEHicv`0%d4~|uu{!W%iS-H1``QD{9t5x-58$3c& z59v7RxjOV6Bd6|s!x|!2VW3RCJZlgy&bWX=ijoIr4>qa@rUN9BqAK6!b`g=~+E{*bu#`X5p+kKfG*Uy^(LY_K5_ znpT@xZA;(JR9KGxIYVt2Uc4gbu=ri#%|D|hFNrTzt^jy|oD~rOuJ4VK@F-tg12@## z1*K9Zy9s8$&+%EHkZ&@qu<|E)8(oXQ2e22v`{^Gt@6!WK>&eidp9cQt5x|_^TISAH zFFXJlrl3LH9o9nM9tMnq4XSa(BabvZ6Yt}LSF2w><}@Qd4ByQ3686oqmudW_=m(Sb z|IP9BnK@m_e8bDzm$X~DtSc*cvm<_7Am6kV&f_e!zkQ#mw>bZw>nygUuTpbGT&l&~ zFU6wmhXnGEPrdvX{vtzi1ncE(aihxRIWihG>nb}Q3`JmCI31&&=WN zk;)>CHRwdpd%Mv9%NBYfVf>AB2L(!wEF2Xf-I~GY9tL+W(ab(Aump4Qs6ADIf@$cA zdW>ub=(#mDMgfVKx8DmZr>Sa-bXmtQW~~l&WhSV$tstk}$B;cHh^H}V6kc48+TRrT zY=F!OJaH%X*SD#9*ArQDbtLoF>yZR;p{3dM+<@AiU7I{Uaz%m`sug`i!VzMmDa z>)n6}ZlO9(E6VipJ~)Pc~)CX17f}?zU%PKgoYDidFyh8_s|E z=o?l4oayu=Yw1}N)p7SW0V&+*({ zaCt*#THG4CVXW+?_mKh|CPX;X1Z8zk+)pZXX>Cqi!%PvbEFm;r>tF32Aw6K$!2)(B z<*$|kd;HD8<3~HPz0EdzuMbdEc0k%9dR0>NsUF*E%b)ayM*01{pC2qX&P`nRK<&TC zj%I?b!#_X@QjpqDR!X!Gq@V?Ej#cd9hnAf$pq;MiV~%u zJsDl;4A@3U8g$=X;_=ayw!1pEVziWGzcN6DF}$w7%F$Vr`!YUQ$60yj9Ukzt;h3B&np@CyeKg&9@5S<=AU4oqJlKp~_sU#I$oh!*4Zp zXBni-qS5kZEy>EVFN;DEhw2&ywQfWMCc?6TKS(lN6pe1f`-4SEz$H58T+|&&Xags= zogkzW$_ftV#!xS>JwOuw6^`%Kcj*q_AKWs#9QmT;8|>@o#os`J%m#3+EI75z|AC|| z=)>J7@R`sh4ZN)t`-2rof*q*!T>HT_0jp5~p;%P6422Nc+y`Dvu^*^?=x&@A{c*b&-P$R7mx zKSfOl}#-D_9UQo6Tf?!?wzFyb1lp`<>qk* zX=z3PD&BwXmB$;*0I5Q!uE2=@*tu-qt+fkKVZpP(6wn8CeBJK2W@af)Y13h}bj784 zg)4jw?4AhU?AC9`%>UZ)*f?owAp&L-uZ}y9Gh&jmZ?vnQ_WlK8qd-*GpWD^av=qo< z1{9T|uqhp$S8trAIz=0)qk`e1^*IY7st!^(`fPB6+jM6df%2A{xizz`L!wMI@gSOq zuv87fMQaQM+x%*6E{Sz8Z*@pk@L6yAKKs{#n%&yz5sdQ;Wn^=w63@e|1G-q>eNeoF z=4N24e(0))?8i3G$WBeM9QKwG$eMEzEOP4LW_+ak)^V$$1&ipd1xm;;wV}%nW2KHc za_Hm%{jKP_`=m3=euJ-kR+4`{;|?Jsw4e`~BEB8#hxfkUyk zWy}lfWNj;7I&S;E^?@#-Yx$<}>or`&)U}UJ4ACzP2|~Z2FXyOIYG7OE+p&WwyID&S;0hU@j1uN`a@|Z%-vgt{cWwv$+jeE@#Jj0`qj2C)g6ij zJy(T=x>?vVMcHrsNU0z!p4I>L>uG05&T{1LFIU?t-!oG?sYUVUm7hpY#*uMnGrpe` zerr3vMgBnA*^;^s1y1C@H85#%x7Eg%yDyEt4_HN@OYwu7?RY3{iV9Hh*wpj-g+#O;951MT2fU;@Nee2|rb=oeK80GUS*2^o@ z+Z{8ptV66r4fa{p8Uu)2XyHIZ2aqbg}Z93piFf9*_YJR>aGa zi{R~YX9_+;(?Wn~^TpaJi9O8p3H86qqIH=3=RsHuJDzcB{~@x@Va$_aBh4ni{K|xy z#cr@#@~>#j!14zyy2<(cWs?{D7J23P=M0<2YU$qGoabJ(I=_cV<{^9L*3j^uQB5p{ zdd3@DQoHK;LS4$|%PsSoo%Zd*TVAerx7`{KDj)P>B5`-1NIL;eA|2_F-$8zJpAordET^1@TyAq^Vbiv zzk9bVH&Sz}ZPQBA#>a;`B)f#C+Q9gN5{~^k6 zi!~N!#%<}Ev&4Jed+4IiEJ-q%yS(wcNx5#Xcf(GR2j!m?sX!ifJQEP7*}n^+Tjozs zJjqGA&uDkFX~evCh&ZM;dUQwa<838)KSXU#n7lm#lzgy= zssrE0=Qe&E7@;aNjbOV1P{AFz|6W1GwscN@;j`4mxj=)!k#nDoan1+A$5{lt{oYxm zZy1;B`PHc04V!^9*^yX(!a~I|+cH!1L_zwx{@Cs%Z~~=hp_v7RB8ejRguZqcG#a$} z%ldS!{4{6D)X=}ylABp0OKh@N+P(S_3?X9*aOM~u%G^cD-@8QTiVQK3~ci|ML6VIH(ABmREUyk~vpKXR@E`osd)J zKNmE?cU}9zWU{|q=<}4FBZH@Ao2VDW020<;s@Th6%&iFN_hA~dttM;sNBe6(RhK{4 znf8kUpz}U?ir|%own}=UDy|&iM0-^9zFnt*c{*1E`Cc z4e|je!?&`-;?j*F@ngisZuBrFjH2^?*YUj*F(gL$HmO14P)GRYJ9gdT_%OISKGh6D zPxUp&Y|47zo#Y(xytbTdLO_p>Jh|eP63f2&B*&u%-H-}S1o<1zZB8o~B0vBZ=$SEM zgpne2j5aly)!%v_zso?C6cXGh5>LT*4#{-F(&`Tl7AE4g+g|@$8AkJ(XeeCaay-I& zp!?d$$0!Ckg6Qt)mO^}t34(RCa&CJ_Y@Bq*?pu79*3m>K7lkix4o6FSk%o~&i!CXZ zc>m}$Grc}`oJio?2B}$dqZ3J+^Ca?c^uAf-@(Qx;A4kVo@P|>^7nhO3KRZDu^CHN= z;boL@>`ShCY`p5ZYJ4~GtOMdBDo$dVK)pBDKBe7-x%!I?zxvWEub)%?pdwu5y4XNd zXOt4D{1A&meoT804cdPhuWHCU1#KISY~BEP_P6`8gn>m0)FhpRm|_|ok+-#BdWfg zcFfs2y}fHpG_k{R@7t*o#IJxs99c{dX;Y%=@%67O=MoiFo4e)N^Iv*Nqf77&_wk5# z!cH29AA4%Kl%wKYwj7{wPj>?au28Q$(};rw5qe}zV`^CD!B4i$2=Dm5)h4PLdw}vd zr_5t)&eneKNDttoOdCVoPdlLBBsh&ST1-Sw$l^>s0`@UCzWzoX>S1@FqaosFsHQk) zGIXs0S{+$Jl-6)B?WRh~?}&i`#%Gk%7)_YJpcZSPJNp6}zG--o8*KY155lh20A60q zS*7fol=(jE#&Ecaah30*9KYw*9s3CriTeg$UA~77io}S@d9gWeN*{&(Ab+}2hELpi zLO-=^#`F&OXv}L~l6-%Z@>>9??YJxK!H_Y7p=gH&8CwM5W}7@jd}38b-M}Hbit|Ja zq)fj>2aesnY-n(G)=DUQx+Cc}c&_e%Hv{CVb0E!hg%SV)huLGuCcl;6v(}mK^QY)KHs3^<3lx&!lx%BG*r09%$&rR**=&>bV z233==Uw{i=x)p!iNLD++Tq7%uGo7I45uG-MVv=}7+yQ(lB1px1Ft3r)0mWQ$D=RZ= z$P!Mv_u{KA!^i0c$K7V{&BfKfV8>XgX}|2q>vwkA>3%K6IAs$!#c}eF9w@&ZKwIU2yxsRMeh7>5+%5>6O;GS@BtcaGs^?)DMA) zDp{0Kjh%M#1WX)l7PRSADE#Zp&)P?{Hk@AF0%cm#qjbZ9&vL)^*u7Q9F6G*4OJp5z zZAGryXLx<+@BQO;JnMt}9bQDlJTJ3IkDkk?j)Get2mMHn35Zc3@L}k9GRIG#wZF7E zPJy&tBN=x={nj2ts&kegr%j(a{!iF34@(LjJ3N<2BdOu}qn(Z5=sBmMbQYK8)om)( z@I=c8Lpgq#bqZCooa3GOvU2T$66d&>*`X=o+Dm^vi8iGp`+lu65-bWrr&!%5O3XxP z1iq550db6t#6NxW{$86*JExqXDO&iTWELH$B_fC0ZK2G14M+JWSX>;&w9CON& zLW7PH<+JgpR;zu+zv}`-LzCb(dz~R2+MKN?FqI%)kAa~?l8A+jq}pY_X)IUsI~+U= zo!i<$;u)R$_!HP3`d!POTc{Ko{H*~or-(5F0p#60>+jxt$x0zXbfX>>b z-@Kz0y&R{ZB5cZ}^#QET?&;Gl2yCJD4#;h+45{-8WzM}RgO?bvNY*y(M@h`C59Q6W zSi^CmWiiclTQAmc3pbbU82nKw@cVK`&*t=Xv1?H9N`3>-zNY7f6`Be-!;%tTA3SU?xZ>bCQ)`%IWqh83LM>?y_OZXEzb^Vz8WsnPT+lv->v@5 zp8}5GB2PFBu`gtyKl86FXR9A?1^bf)-Az-UM)fwh?399x&rS)~MNSKdfAie9SQDM` zK%Uq%q?gH@jWRMcy-uzewLZtF=!KMe2Kg_$<*=DA^l+1;F$CuDX_@Up2?m7;` zSK8tl|1`)A9tkbVC8-S7X{AV|84`2;?aOHrjUOrdi|iFl%8)n!xf zaEinoDBSZM8|X&C*NkAd z;Rca!u3bz@r7A?@g>B*Yh(3c4?^#6{i{IQ5uX}IB!s0s!>>rS*`P6dZpqY$@NiOY` z<<&-}7ldfcg1KQA^6rBvJ{n9=6()QGX!TMxyLL5Q?t`Rw#1)4R>rFM0MfTw%b*c^n+JM zbYwqOMhsp_vB4{mb-iHstlWI zRAtTm5{--R5_7ZfJ`B1ZTG_BJ#rC;AM4(TC21mUg(idM>i@S`amLbvSZ0^ByKJ}D} z8QSbhR&S=khM7bTy*<|c`lL9H*|!7KdK{N>W4aKi2CcX@?r20AJm9z^c-PfW?{Vc- zb(I9Fj<7cQVe2QQ@jvM>jIpN&K{(W+-G-B|TI6`->Rbax{BHO~iQ`MWA%#brazTBg zyPPV!=GEUb0-#W~8Co{QVsk$i!dbayJl`~rOUWUo(J!y!%ZoKbD^J^jK*v zmKsTfH58u;e9$D}^-a2L=kmk(Te8N!&ivrL@lGNJ^|+> zZRy8t(+|AEUvxr??MEp^7Qz6vkx_Zs%xC$6dUJH`&*j0N=M2sisaLqD)`ez&5O!LX zd@=9x!>!S*-X_)hwOyF;Kfc01g5qDcYP!Iv*b~5|3oD>p^*X%Ig__!$ay~S({p<1b z?kOEpLyq92{Q)QdJW%Kbln&O-RuAeCk)7gGYgD?GKA7w3bvM`m7Kl@F~*k8Z}Y|ET{`xvrvp|N5|kLMi4p&J4c3b>3QnX|r|BC+=8t z`GbL)8OJokeZ{c4S|FZOnu~dj6;GOR^tsTxUKA6?Ay$>$w~K<_x4?&X2sBD_jtg+u3;5Jfh$EYVoY7NR^?W`wgp7H@9 zghD!VhF{9M3TqvVyD2d?O+0iBg04chKA<$^briTAjH@IY6YZ7Y-#x46@5#0C1+Opc zgs)oHg}(W6czk^c>Y6(FMK^^kKq1nddoZBw1W!`hb|4E=i`&r{Dq;4%sk8DSTJ^uG zSBjL|7`EwlqQtciF;C*y_w83WL?QlQJuF;rB`#hqxz^FG(0j!~FkO8mKD1v7HIte1 zo-lE@Wcg%w;o!$Dl6vuta{z=3Wt$C3r1iZYNQkZX=bxi9ZSTIF6UN^W*Of>s|4DE# zZ)a9kOyt3NSRxUL1dUyMbV)Pq_6etP_J2~7bf5+k&{g2WvoMsAVDqODNWa&J{z${_P4bcK1i9N% zo{Za>YVr(MFko-0f|icn<)#2D#kr3hy=4{zUYt>{ZmmY2zJEBA(}_N|=l=oG=q8$< zZRpMXDA5fa{B3DBng|zo@+U&<03Dgq7q$0$^Y&lq>u}tGOI2Tet#ylb7iWP&1jyT#9!;|5#}%g7&%hx~E~??B7gd9^G}B>EZL)c5|8gapHoF z+cI}~{;8}=X6d4sFjSOLit|sKr8o?m_+!c~^RG6~#S)5=QFl%wysTv%p9bNQEp)w^MO-K_y^6+rSvOX4cyaK^FNIulo;xs5#@$L6zz>)9>dUJ{G z!5VK3Ky65cS?7IEFML)9ZXRuhDwWr8j=@`ZE#;ikh-EKhem8B#2<>d+kw&k4CZWVa zAmJiCF~H7g7L;Iy{N(09v3~sTFxl@9vh46pnS`>dy>NqA5uCbp)KekYKxWb2dkNos zg(nEeb{p$PMo!4RHB(RGFZg5Fiiu(0_KYyOJ^42Z?MtQaWRwh;ON#*Gi_%M}D zoQJ0!!9r0^b*YXA3?IJ_^M8lF-!8#TY`R))!^5|kjcahXou}@4z2nw3BGHDQ9IQ?) zarURA0_oJornC3N;?B<$MR~s$|C9EhzxAYE`19du#tRM3Bi+JL_nc>z#rxUvJ0mW( zqcms>%DTL{lIdPI0J`;36exWUT`HxZB_HJIeNI+~i%Vm0XbUy!PiilhB>EV=&-8 zn~7;zQ7HL%edwn!!@m+;t!p||>SRTH^VXl;+ISjroN>&)ZzmKaXIo0LWVvEDkdeTq ze5g#w4mHe?^tNQ&T>y4$O_(`jrvzq>t+==Qa5@F3)@-s;^YJ&6$S!lUB#w%eU2((m z?KaYm*@3z`e~{;CVD2`NS()}9Yd#%xTm^s<0_1nF(E}*ZA{z!)*~jgCfOx7}uQiX} zX-s}BC%lFOw*4jE;-!1uORf|J6^u4{$dUMEHJw8~f&xK=1Y-&52E5MJxbyxHi~#Xa zQ)ZlBh97;*37biJ`8MJ%0hWEvwH?y)ZWZfV@EE5h`(np{7ory4#wMlLn~19lp+27( zW@D?>g658dZaw^w$RxyH+D47oqOckg;l0;~{xV_NL#F`zz+@y-0d)k|T<<*Xa5XU2Tiw|+IbVb$po~or&p+sJ76SV#{_RwEP_4sJQ27dS5FvEj*{vZ*h5Oei(&?Oeg2I657 zH;8A*(&xbLw5MRj*GmvBrJ7b4QdZ5E&XSQ9&%eT+_KaXsYW^fiO}!a5gJV4Yg#?#h zuB@ubYE21vcMfEdLRD)1P8^%dnJkQ~{zYzK4MZ_dm$862^|G0S{Vgy-ayJ~$5Lj($ z+NYM{{*kH8hACjz>!inQw9WrpBo=Xk%NOBpM4xdf{&`p~Js(vI2P3Z2HoQJ@KdE3Y z1n}3NK0aie;6YrHLPcc-kRfNhP=6gYbiKVB%JzmaeFZ)II-#fS@n3erY&H7gDPdJd zk!_DBC*ixSfH!xd{vJw?WoH1XP8KoeKdKHFZx*K-pE}qG=&$!?C9_*EXt|LeN%R2i z0z{vo`Ku^(p+jx0Qt%6t7LziTpKxqsj2=lnvLy+kU)ZITIrVx^QNNDa5-5v` z4JR`Y&Qunm+$;oyb(ugw`-RmIQrGvHXpRnh8$mzE>9<(f{w7eLo3(!L$y>#xmolXYqE-tlA~D5Mid~!q~FX54uMf~ z->Y)}AzPEdad^xW{GPJN2}*m(k(Y&r66yX*ED`El-#uA*z`hQAo{Ad;1`ZMfltL;t zwqf>Z)z&`LF7-LNmuh=2F$XIR3v5Fnz5&G1w=Nf~-KnGJ$|#+6xD^G{Ilo&$mQ&^& z1-UwMg&!vzO7lTtusqo z;S+TpCg1e?;$Vk+WwYULnL#rrGe5uMkt7}Wv$fOfVO9gMTs zw4Uo=>)A8COpoMLo(+n@+dP|wl5kpE6NqmwaWoWD&c4#8iC#EWzF$ctS6q+SSRLi8 zyFJf-uC14mz6nzt?lOEJPp+g4p53n-ddFOr>g)23P;cY29c7|P3;8?)!)|zRrIe-~j~lKMB6nQku@U4cf5v>R@DWlZ48{{p6^e5^?v#3gAR zm~#^Sg6#U=cj?gFRk<%~Kp8L3sq*|}#{^&Z=Q`Y2^VdS2`tM3;QoSS?1bEt>=X6q6 z9*$WZJJCkE3m?C| z1)sE7lQCC;#-|Ey9k<&Xiu`3^fpZ+5TVap8;?)=Rn)Gc$VNYG(nlG{@;piJQWb%rV zwdnI6WAPbaz~-+76C;u2O=@TDtivUoeS13Jjf{%>M*(MlsbOJ(SAM+w@upgDN|&~^ z__pq&(8{nK9GlYc0hI(o(}K9PXR04q?-0HqBTnf$jF(5cJkoRD$N~|%JuO{}X3co} zaAt=!(HM@)+A5!s9doBr?r1#wxIfb`^Np^9_I9{~c;lC6Y<_f}RDri=0m)Mv(Ph9e&jc)yhhA=a#tu~mk)6r2 zdHz}0sKdje=i-v>DT+IIkn!_ve!b+11(}?acftyv20!TtPd^Atk1v;-^Q<9tNe8>+ zw?nucDv6Y3GEV;hh*TZ0eodQI^=jWh3deUh_GmWosZT;G z4F&s{?>sKXxl!}!&BWcu)m{0h%-LN17u%0=y?bCuZ|vYNd)l6*zeX#vp4e~KaFr)0 z_8%GB0M9D(*W8F^fZCbKbN4wrWwvEJ4P_>lso79}vzTY1@h_7*t_ zS5$(swt71@H?Jtl#q)evsup#=qrn^?M6uD@Fuc0Fa5dEW8pUi z9zw^84Xw|KclIs=&X88!O^dg!5Z z6_OaFZtK`6)qi^vqYD9BdWhOD5av8E&b66z1D#<_nkuVmKADo#DSkliN|U{5qdRqu zvKuwyXvL9}Q30)J<$n9cIkP#LS45gD;gzYLoXuZnTc}1{AAwPZ=AmM|6zG%bP490z z8p63H*o$~J?G4G%+&wiIn<)lNt3nr91XA+*l7&d{Gy;^+J#=z_{qu&`;=+rMUph>C zg&P<3^rnF?ut)F6#0I%(ltl^f`E1_zYi%Ysjtp~xay#r{H`&=#(ueog`7oX-oWg#N zZ+3;R-0{zhWVsT5rjM)beV6p?+Ps3J`AdHDyx4(%L9}-C28^Z6qy_fhJdGJLdgcUP zLg0tL46kr;Mg!&XaZ9_g)vnf_SLuPje8q-hX177~c=m?FaSBS&8CSM>%XwHucKs?- z1Z0^zcyUeqkiB}BX#%%8jcA(t&F2^~h)z{dcY5!w>DhRSI}eso^OLd3{+VDX!>h~Z z7dsQ>^O!w;?`q0N_hR;K6WQ8cUd;HD?%7@hx``?xXshlXUHu7CI4w;!bi;AaqP zOTb%d9-{;4b8JUd#9&OxzeS2~is{QkGKPGZ996VO1i$~s%nHxZ1ofso&sF9YH5e%{ zPzBnr_aznS=SQ#H42zvqKG0rGn91%~Ypk?r5&it<<#87`yOW4;k{)$@np08yoDm~G z`cUi_qz4=#k12J*U1WirU%opOR^Qk6a|irYGR3S0<2xM8y^Jmyj_KIrwZGod%Z&5d z>5S%Rdq%st+~H#~@_zZp6Tg2@Ct3RBLCoYP_W??`x331#BswvZ4chMA+d+P&Ir*?!W zRRrk_g9Yvx@YIWoZOjKN2Bm*le9ttVT7JX|ZVUW?s1rwrOG`j0q_bFco%Yr%y})hb z)4&erb$~`WbaGUNGuV&MpEl@p`6(o>d8RB^CV}w06J0atLEkBYFf><&*sApBJ?bZm zVVkUKEGg^LfWO7$_u5eFPg1!77sy7DH08P%ZN+KgnXm5}KRjfYpH`}(Zgvd*PTkF` z4ba@Cy3;R_A1s?YvZFj%pTk{;=p!vY56X!F zM9w|T6j17)OQ{Ha4{E$J@7kzBW|sv_*8(Bz1mrnobO`yRCNDdErz_s}&S^q&YT%77 zob&*g5QlRFlW%~Zv6Dj2FW-DW@(``c_C&$7oP6dZGZQ&mb0+qu9A%B4e*fW0>Q@gf z*g-G+@TL(+3({|)q!lzS+GyIcSU$pGCNv?p-8dNnv|9y?J=CpNiQ;!)*B}T~ca1#I zCc!j-Z?ZAimWSltMW&acU|6(`$)h~ASf_`~_uasv-xv~nQ}1fvd+8W(rSBxtH~{X; zNJQkrbL0tN$eSyk7RThjn0G)TsCM@Dr6$b+SZ<+7MPMo2#{Gyzt3&gqQ1UeGkmD!e zKT8zpohm(1^bJa$%Apjx7-qHmLA-n^CxV}=PVSR#&x7EV9Ui5mL!z> zkf}3=zyz><+Qq2!)<&(wHqte68(n`Qed9IZK+CActmLqP@yRa%6ShpHii0KiC5jIh zSt%BB31vflj)x2>3Y{tlyC#vkq~qW2D2Iz{u$Ei#NmRen#D1dmI(!fy{3u#RGz_6GfpY&)i@mUJ zRp`&EtDYyRrePS_b8bcai;sOK#e=1yuligqtV|;-XNCMmJ)TKQF3Jje{$RzhHDTpH zPDg^}fok{CKBmb)#HUv%<)tIR7#n|G2)e@Q{gc-J~bqq|E zoqB?W^{vA1)xX2~UsBf6Tbkh+>4`s)My%yJDN=z3?d`~&k#7whED~%y?4~NRFGMl> zxSZ*zn5^|^r?UdrbWU9l_Z|#=u{-Gf$c$2)`=aD`lyhL>0|^gZ zGtcaLzX>q}!;>kuN-$ zhELwHeJyi%0D1?jW#HB_KO=`^{sMDke;BHN6H*9)ovxNUfQ3?bttgXwNkX5cVnHR4 zz`j#0!r!3UD2>`?p72JE%lF&7BRP=?`QS!Z&vwaq-i%{dVSjTs$PWY}MzC8|ty0W9 zpY0ds&I~1;YddSarNq3{@8n1W#+?hGKYP6ki@*UHR;L3MJQ#TYK)FFos@6E2`DaWW zO*_Ob=iIRJu%nV<+>PMQhhq~hBlZKgNYmA=^zGTi)+)={j&~ z7)ubDz^t}*L}Bupqz6+_fv&jxn8nr?_=| zcP!6i5_1TtZ3yG*7;=^F@NCR|N)_+D0oh^`^nM$z^MxE(gC4F2?ia;-FjIS3lnsDBWkR6+aXBUH$Px&?&un%tFAQy2ItX!Sd#7OzlC!bt1cR z%HtOyfw-gol&m?(d3aOnTyw;88fCI{)mTn?akkRnyWPUGQf4itPB;r6_FLOZ?s}#` ziVl?0W4ofu=0G#K@y5p9gu~~^k`-X6dvJI15FR&gMnAS2>b85Cj*}yF8F*N4NU{Fi zU=-qDx=#=Q$V{hGRw`RT`MQKvF*KJ+nVs`Uf4qzoltZDXXrC(I;b-p`7!n}x)U|&! zv}mzl^-$KI=k5g~L9eY*H|#Xlz6w2ha?hj7WXh2v2CNvd@i)?THJOllvV3(OecAJ! z5WovLPr}~({d-C4HicUugI{PFktba7-4@;*NgYSDpLrz?VN-YD54JT~bTnt7N?aB- zz1v0GjC26165Gb2|B^0|$S;mJ2s%Oh>|r;^Rwkv2d~;_%Nw3fRK$V&i z$Mkko!(~~CItw^hE9Id5R6jB(znzVkq6q}3doGqom68mT%#C~;IsQuZ02bTPeZ&qT zO9_tV%c*56b=+mwpKE)Hl~6`ey`Lay{xAzSS!rS2uVpCk>gO zUoHETDxh-As2PG)!3wWr4Dc%jG!CI->u3Fp?w0)8+(}4NJR7N7wT|JHbct<%<`EL% z1K~OuMhgtQBSLC=YXs(a?8v1)|wfIAweb^(sD~;Jr`m&89^c#se)00Gz#?O5a zD@Bm_@qWo6S{lj%4^6YL)gH2I4v$@@h7%7lwEH5n?Vy!e?At)=Kd!oS*`3~$K>(la z%2x37@NsVu%zZk@BE=x|;)VD>hhqLNQH2U-go-;MeXIT5JVIx{6!`N~GSOC3Ps_X) zsQ?k#%7~x5HI_85%5A|&)=|LT{pQBQA>93~j`d_O;@k!fP%jI3SEs_*`TQif)K(ss z9qRS`alKhZ02d-z?g*9)rkHP={C=LA>neL=#Y(p-!`MflQZd%D2Z^jHog) zd+ntjQ(zU|)H}Y_sUZFSTa_5-dBj_RFKo)UJ3D~IUmCU{5DoCAv2}lUqZoac9QRll zM$w8VQ!N@f7LWFk9hgy>pMc&~D}Xs3*uK?l~m5iw4=v;!h0CRP7jXuhhY`;p2~oJL1G^lPPf|7#C;!`%t4$O6*Ta z<@WY_o%_5hz3-E%EFLrbpQ9rO|T z3b=At-%myI91_#FV{nCtHo8yMpJES3>T_XhB)ylsU^@-%>=SN_Hwr)ekL0_v7zy*J zhm1wENL>knEN8>eiQx%pd;s8zy;BJ zg}++2=LHCl?h!8FstPTJ$_+n&21UWhY~XaTp&zd3ZcCNpytG-pc}s6!(~bjzjzH15 zOhwmlrum&)MVa2sXf>)GItyXe04oW2ghks%!H^b~5wkwKS#JPVLxtbp>imiL2}M3K zGgv#6I~}<@#ag=|jHZQ5)}6$b1t{9{XrARIE#OLWJnvua9yluaJI{?Qy|mV^C<=E% zJS!7{1_EGj@BF_D;1mR~&X>lx472SNgzB8k=-5MxxVWvL@|MH>ey^R?l{8P7DMDyL zUt2-lfH(ms^30ozypy{}M}8nE$rO%%4-ydk@vZY0v0V^HHz!%(O;IebRg<|mcuZkQtl7)GRtI}Kex>6IeXweo;R zV3t2o>;RT2?={y4h8^_iZysK#oAlu8~Tp+cMvOk*WTFOA6`eg3O<3qrHcM_>R|67Z+Q5x z4dl(n^Mo%Y+no{UERcWbDl{YVOxaW5KJIhiA>tX2A+-7@y$XF3d(U5ezvz+DNk@r1 z{4ywDvvh&e`Hp8t$jQkzWXeoJXP<0O*3`1w*wP{W^A}LFk}ZeFVY2}%RW}x)O79ET zF#S}d`-OdP&2R^!fDOy5e@rkP@6@#ph+_=AcDz!z^cKH8dGCTFeY({FS!8DOtlX?9 zkI|eG@t-yG(UF_Vu0B>ko+WUERf!dkx<#V4#0VTkZo$rJq2oUm_H^cqh7}M)PeLA#$c)s zI`A?WKrJZ{N%&qn`lxnqTqTxKe!%;cwp1q*rj-NJN+njHcTs33^!RsE*2`*-2yfQd07Qmav(x|3be3UJ zec#&`kZu8KP!N$W=@?LH1ivaJ-Q68>2q_VeZUpfSEb}`90V5 zyklN*&76Jq-fOM<{@g!@^?6Ui-HD&fZZOAyI4)`x!PH!f(??)*ZKPnvsH&@|x$B^1 zr;lW*;>2OAzOAYvS6AOMg{-ktcX{Dp0kns0a9y;o7l^ z?x)}5fA1@zw=Uz^ zey7T1_Q%@4wlnwWebhjW>KB5ry*n?PBt+l-1>q|JcQo`1+@Qr*D_PNI!G_gbarApq zG~_IV1oL9}Uk4d$9zL08ed2iUCH9H_!^U~lPZLI;skrp_+HqH_pf5h~k-rN$e;4o% zg|E8CmRqj!&%QLlO4H(-jbQzKkV@a99IB9PACE4QlyS~X2!3?PE18ityf zDnxBeK;I6$!sZ;k?SsA`M-tQO{&x+h#J&mt4p2Oq+_!-LQygi4{nowo5F2aX_&9VX zU!OG~)VHA3s&M@cw$AfDlNw*o5eW1c&5_f0K~Vf=a#860=nqH!QmTZDg-oC@D8snvj(Y_-BgBxwKcX9~?-H;0!DAV@2hZ(;BTU);f_B<&@=-%B1K2iMs@s8-H*LTM^G`g1_JA8FE}6aa`@n zRD56f^IkwMcz@xvvXwKn-Nlor1wmN2?OJ-u#!qQ$C*{=znAZ(G6~V;|>+yU%4G&VEVqESqWP+Ez=fmNk`y8)29or zSEa$IWZZCYT7o(`j6}dBDI4d_55~d`@-DBOP^-LOLMJ^%%f$?=1>e;h5$iR%PCVP` zpx_k4SMp`oraoB}H`hN`y89L-fm>CS$^^7~6G58TtezGTX$qz|!$J}3@P#`2JO^ly z8aAsyJds6OQd@)Z*QHa0?vk9QroD`TvS&u}6p+Hg*`*iB$gX6l`Gf(6WR%B7z9j&L zszPh~feChFzZ!}K&cAmWw|;KH5@F^+TXqumBTQ4j13Z3(3V29)ELgYtAE`O#M8^pQ zCXpO#N*Lr-XQu_eI0JAKf|>C3@ug$YL{@1PoA&0t={Wo?L`p@+ZYZ}9CKkB!r zt0FE%NC&68ms-%;7V>Hs_OfEm=@5rBN`nkSQWsFt?dXexB{&6}Ob7aW z3T`iHkYEtS_B6Vk|Lu>sv7Z}dFFVyUm_aDcMr3b#8c5y7vECw9XAjSWAe4Cy%*cru zAW~uZs;q<>E-CI8W%?_#d5v*(YZj@TAr!|#FO2~6ItP$^Ycxd%44>h4sF&?l5a0gq zY$Gx#^>0kJ*~?X=!>@1*vl|mB(eSIVbQML*pGufHkMEyKK#d{rvTIbJ3Qc%vSKmS+ z*Q4*DFsyq?cGJMTB$guWN(A!jDfo#7hwLRw{tWHN(%lIjmB68 zx|GFuQ?RRsfhNfG>C;)T#|4xN*cZI*m+1d`0!9#Xj3-eqUl$QCRw}@CvhML_|32nm zK81{dnh{3SnHpd$g)nx&8Lgh5kD)xLmg~HPFc(sLalHT_AOW~RJCFcN$^zfB9EB6e zB)Im%AvR)tv^v2~b^$yQXuSeC!nO$XbD@nyu;)L0#cCksWX@{}U}8#LrsAJSU1v

O6Aok4hqWyS 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 ZQgzA9x8)l{V;8`m&JBcSvAXq({{eVJN$UUr literal 235411 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

    dQ&azcYl;aA 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 diff --git a/.github/images/rule-creation.png b/.github/images/rule-creation.png index 0320d864e989e98ff17202dea849ab7d085d49a6..28fc343509fe4da0e32b5f2095449286ee653ae3 100644 GIT binary patch literal 15619 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 literal 98160 zcmZVl1z1$kw?7UeASt1AcXvrMB1lMgN+aE!Lw7d_4hTqxARr11ozkU9cgg@mPyEO4 zz4v$T^S(3BdCop(@3r^YYo8T+tJ0IqsBu+LnBaCQPf34!$6gv@Zw;h?%3)o zvY;-EoD>waRTUH%wY@#wJGt7Up>bx~T3Oks@^X$^TU%L;PV#W!c?akwB&6tC0jGNV zdnbAatfopq1?J|Pl*F4D`u%9-I(;23&r%p4TKGqK+ghp#y)vEg{R%72;;)LKEYp7(1 zWQ3uQlB-Oqs6T1(K>IDFs!+-_9Wg34HH#*f;y;C2WnBW;?S^B=NG6$u@wD(YBBIiG5)9gg!f-Vc|8SH zRn%F}*4y6R-N(_xmstIH7}eF1lfJR9v4*;ot%n=GwVj8JJ%6B^=RXoOnLsI2(aql1 znlaGL)!j!bP?q^WEu>K8f42pg8UNG7*F~1uSVNmp!Nc30@g=_?zaX<59wQ^8jJMr; zDP2XS|0YLW$uc|o`g%$U2m}NK@CS(Sdw4qt2uVsx3J3}d2n+L}TJZS~QTJLA88t!+H~d}W!L{|)s2e*g8H_JL0SJCeK4e@_cFL4kiY z0z&+P0{^dX6sgR=yHeUtf%dK@icW4Q_Mpa)6A=`Y`A_@*zncFY@&8a7|1YJuxWxaZ z{697Szmx_(_TCB}Zm1!B<^FeN{+sy!R{l4kjKIH{{~u2L7n}cc7sY2eJQ;!iw`Ov9 z6h9(AprO4&Q&p7L4}5akjU8d|CQmM0DpNY+&6orWcZN_@zn88PD!;4sxj3uMjh2PjbrwM)gxqB)!(r5n;kzid7Zk_^B-lknkB|n z-YOT{Y;%f`4P2%N8s?fnhrg5Y#EPl}1bxyZvU~)$p^3dNoPX~%qk|$bziow7T<#AA zFeSL?UL|+hnvzWScR)KX4;HCvixvSczJm2TXiW)TGss z#~zW*rs#`*jk*NZBH!yeWlQ?;Y7s!50*>Fu6Ic3 zg_@8QV#&@sOKMwNB{E};i)jNn9Qtk`M}f|(VZonPMWVr>chg*Nl^ist9_Tm3I5?!q zY?Ox0@Hg0!D#1YgiE+?>G0o4F#Tm~G`K?XBS;MfTTG|cn5=wXiG)7K5fRrfy#vmKy zBypXe5rni^JHMVm*A7XUc8&-XiY6+SZX&=QR`e}mC!hw9O@9+YmV^viMMs^G6@R4_ zUR1wJ>LBl_1Se(Y0?Jtok&YCOKJ{=Wx@y`bL>68<;>&f@HNcU?imV

    -?Gyd&II0 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

    l39TodoUkV_?CQ1l(eJ%FC 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

    HT7Olz1a8BI!;vKOlG_b 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 literal 92705 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ⅇ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 matchSplit = Arrays.stream(match.split(",")).toList(); + + RuleConfig rule = new RuleConfig(); + rule.setTtl(ttl); + switch(type.toLowerCase()){ + case "any": + break; + case "tables-all": + rule.setTablesAll(matchSplit); + break; + case "tables-any": + rule.setTablesAny(matchSplit); + break; + case "tables-exact": + rule.setTables(matchSplit); + break; + case "query-ids": + rule.setQueryIds(matchSplit); + break; + case "regex": + rule.setRegex(match); + break; + default: + throw new Exception("Could not determine rule type, valid types are 'any', 'tables-any', 'tables-all', 'tables-exact', 'query-ids', 'regex'"); + } + + RedisService client = initializeClient(host, port, applicationName); + List rules = new ArrayList<>(client.getRules()); + rules.add(0,rule); + client.commitRules(rules); + } catch (Exception ex){ + System.out.printf("Encountered error when making rule:%s%nexiting. . .%n", ex); + System.exit(1); + } + + System.out.println("Rule Created"); + System.exit(0); + return "Rule Created"; + } + @ShellMethod(key="Interactive") public String interactive( @ShellOption(value = {"-n","--hostname"}, defaultValue = "localhost")String host, From 7c48ed0a3bffc24cf80d86943d546db8b4a920bb Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Wed, 12 Jul 2023 12:24:07 +0000 Subject: [PATCH 69/84] Releasing version 0.0.9 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 4ea124b..024730e 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.8 +:project-version: 0.0.9 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index d169b2f..c5d54ec 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.8 +0.0.9 From ffe34becaba40288d6632ab7114cbea78b5c1196 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Thu, 20 Jul 2023 09:27:31 -0400 Subject: [PATCH 70/84] adding config reset --- README.adoc | 2 +- .../com/redis/smartcache/cli/Application.java | 2 +- .../smartcache/cli/RedisServiceImpl.java | 13 +++++++++++-- .../smartcache/cli/commands/Commands.java | 19 ++++++++++++++++++- .../smartcache/cli/structures/QueryInfo.java | 2 +- .../smartcache/cli/structures/TableInfo.java | 2 +- 6 files changed, 33 insertions(+), 7 deletions(-) diff --git a/README.adoc b/README.adoc index 024730e..c55373a 100644 --- a/README.adoc +++ b/README.adoc @@ -115,7 +115,7 @@ image:rule-creation.png[Rule Creation Dialog] The Table List view provides you a table-level view of the profiling done by Smart Cache. -You can see your tables, their access frequency, and the mean query time for all queries executed against them. You can also see whether a query is cached, including the configured TTL for any cached queries. +You can see your tables, their query counts, and the mean query time for all queries executed against them. You can also see whether a query is cached, including the configured TTL for any cached queries. image:table-list.png[Table List] diff --git a/src/main/java/com/redis/smartcache/cli/Application.java b/src/main/java/com/redis/smartcache/cli/Application.java index 2fc7a9f..b1333bb 100644 --- a/src/main/java/com/redis/smartcache/cli/Application.java +++ b/src/main/java/com/redis/smartcache/cli/Application.java @@ -17,7 +17,7 @@ public static void main(String[] args) { app.setLogStartupInfo(false); if(Arrays.stream(args).anyMatch(x-> Objects.equals(x, "-v") || Objects.equals(x, "--version"))){ - System.out.println("v0.0.1"); + System.out.println("v0.0.9"); System.exit(0); } diff --git a/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java index 9831d2a..cc38d51 100644 --- a/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java +++ b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java @@ -8,6 +8,7 @@ import com.redis.smartcache.cli.structures.TableInfo; import com.redis.smartcache.core.*; import com.redis.smartcache.core.rules.Rule; +import io.airlift.units.Duration; import io.lettuce.core.AbstractRedisClient; import io.lettuce.core.RedisFuture; import io.lettuce.core.internal.Futures; @@ -88,13 +89,21 @@ public List getQueries(){ public void commitRules(List rules){ Map> map = new HashMap<>(); - map.put("rules",rules); // TODO: Without this the rules are serialized as ruleNum.attribute.etc - there must be a better way to get it to serialize correctly to rules.ruleNum.attribute.etc + if(rules.isEmpty()){ + RuleConfig defaultRule = new RuleConfig(); + defaultRule.setTtl(Duration.valueOf("0s")); + map.put("rules", Collections.singletonList(defaultRule)); + } + else{ + map.put("rules",rules); + } + JavaPropsMapper mapper = Mappers.propsMapper(); try{ Properties props = mapper.writeValueAsProperties(map); List listArgs = new ArrayList<>(); - for(Object o : props.keySet().stream().sorted().collect(Collectors.toList())){ + for(Object o : props.keySet().stream().sorted().toList()){ listArgs.add((String)o); listArgs.add((String)props.get(o)); } diff --git a/src/main/java/com/redis/smartcache/cli/commands/Commands.java b/src/main/java/com/redis/smartcache/cli/commands/Commands.java index c52c1eb..a1915e4 100644 --- a/src/main/java/com/redis/smartcache/cli/commands/Commands.java +++ b/src/main/java/com/redis/smartcache/cli/commands/Commands.java @@ -29,6 +29,7 @@ public class Commands extends AbstractShellComponent { final String CREATE_RULE = "Create query caching rule"; final String LIST_TABLES = "List Tables"; final String LIST_RULES = "List Rules"; + final String RESET_CONFIG = "Reset Config"; final String EXIT = "Exit"; final String tableInstructions = "press 'enter' to edit\npress 'c' to commit\npress 'esc' to go back\npress ctrl+c to exit\n"; @@ -284,7 +285,7 @@ public String interactive( try{ RedisService client = initializeClient(host, port, applicationName); - String[] options = {LIST_APPLICATION_QUERIES, LIST_TABLES, CREATE_RULE, LIST_RULES, EXIT}; + String[] options = {LIST_APPLICATION_QUERIES, LIST_TABLES, CREATE_RULE, LIST_RULES, RESET_CONFIG, EXIT}; String nextAction = ""; TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(1, ""); @@ -319,6 +320,9 @@ public String interactive( case LIST_RULES: ruleTable(client); break; + case RESET_CONFIG: + resetConfig(client); + break; } } @@ -343,6 +347,19 @@ public String interactive( return "Interactive!"; } + public void resetConfig(RedisService client){ + String prompt = "Are you sure you want to reset Smart cache's configuration? This will disable all further caching"; + ConfirmationInputExtension component = new ConfirmationInputExtension(getTerminal(), prompt, false); + component.setResourceLoader(getResourceLoader()); + component.setTemplateExecutor(getTemplateExecutor()); + ConfirmationInput.ConfirmationInputContext context = component.run(ConfirmationInput.ConfirmationInputContext.empty()); + if(component.isEscapeMode() || !context.getResultValue()){ + return; + } + + client.commitRules(new ArrayList<>()); + } + public void ruleTable(RedisService client){ List rules = client.getRules().stream().map(x->new RuleInfo(x, RuleInfo.Status.Current)).collect(Collectors.toList()); String instructions = "Press 'enter' to edit an existing rule\nPress 'n' to create a new rule\nPress 'd' to delete a rule\nPress 'c' to commit\nPress 'esc' to go back\nPress ctrl+c to exit\n"; diff --git a/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java b/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java index 0cf31e4..dc19063 100644 --- a/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java +++ b/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java @@ -135,7 +135,7 @@ public static String getHeaderRow(int colWidth, boolean includePending){ sb.append("|"); } - sb.append(Util.center("Access Frequency", colWidth)); + sb.append(Util.center("Count", colWidth)); sb.append("|"); sb.append(Util.center("Mean Query Time", colWidth)); sb.append("|"); diff --git a/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java b/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java index 8014487..2f56edd 100644 --- a/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java +++ b/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java @@ -42,7 +42,7 @@ public static String headerRow(int colWidth){ "|" + Util.center("Avg Query Time", colWidth) + "|" + - Util.center("Access Frequency", colWidth) + + Util.center("Count", colWidth) + "|"; } From fb45ebb3d3389e3100474a183eddc4fbc7faa14f Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 21 Jul 2023 15:50:55 -0400 Subject: [PATCH 71/84] adding ability to clear metrics --- build.gradle | 2 +- .../redis/smartcache/cli/RedisService.java | 1 + .../smartcache/cli/RedisServiceImpl.java | 30 +++++++++++- .../smartcache/cli/commands/Commands.java | 47 ++++++++++--------- 4 files changed, 55 insertions(+), 25 deletions(-) diff --git a/build.gradle b/build.gradle index 73b984e..ef76995 100644 --- a/build.gradle +++ b/build.gradle @@ -49,7 +49,7 @@ dependencies { implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-properties' implementation 'org.springframework.boot:spring-boot-starter' implementation group: 'io.airlift', name: 'units', version: airliftVersion - implementation 'com.redis:lettucemod:3.5.1' + implementation 'com.redis:lettucemod:3.6.3' implementation group: 'com.redis', name: 'redis-smart-cache-core', version: '0.3.1' } diff --git a/src/main/java/com/redis/smartcache/cli/RedisService.java b/src/main/java/com/redis/smartcache/cli/RedisService.java index c89cd55..6b97ce2 100644 --- a/src/main/java/com/redis/smartcache/cli/RedisService.java +++ b/src/main/java/com/redis/smartcache/cli/RedisService.java @@ -12,4 +12,5 @@ public interface RedisService { void commitRules(List rules); List getRules(); List getTables(); + void clearMetrics(); } diff --git a/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java index cc38d51..287c2da 100644 --- a/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java +++ b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java @@ -4,6 +4,8 @@ import com.redis.lettucemod.api.StatefulRedisModulesConnection; import com.redis.lettucemod.api.async.RediSearchAsyncCommands; import com.redis.lettucemod.search.*; +import com.redis.lettucemod.timeseries.TimeRange; +import com.redis.lettucemod.timeseries.TimeSeriesCommandBuilder; import com.redis.smartcache.cli.structures.QueryInfo; import com.redis.smartcache.cli.structures.TableInfo; import com.redis.smartcache.core.*; @@ -12,6 +14,7 @@ import io.lettuce.core.AbstractRedisClient; import io.lettuce.core.RedisFuture; import io.lettuce.core.internal.Futures; +import io.lettuce.core.protocol.RedisCommand; import java.io.IOException; import java.util.*; @@ -122,7 +125,7 @@ public List getTables(){ String[] groupStrs = {"name"}; Reducer[] reducers = {new Reducers.Sum.Builder("count").as("accessFrequency").build(), new Reducers.Avg.Builder("mean").as("avgQueryTime").build()}; AggregateOptions options = AggregateOptions.builder().operation(new Apply("split(@table, ',')", "name")).operation(new Group(groupStrs, reducers)).build(); - AggregateResults res = connection.sync().ftAggregate("smartcache-query-idx", "*", options); + AggregateResults res = connection.sync().ftAggregate(IndexName(conf.getName()), "*", options); for(Map item : res){ String name = item.get("name").toString(); double avgQueryTime = Double.parseDouble(item.get("avgQueryTime").toString()); @@ -136,4 +139,29 @@ public List getTables(){ return tableInfos; } + + public void clearMetrics(){ + String[] groups = new String[0]; + Reducer[] reducers = { new Reducers.ToList.Builder("id").as("id").build() }; + AggregateOptions options = AggregateOptions.builder().operation(new Group(groups,reducers)).build(); + AggregateResults res = connection.sync().ftAggregate(IndexName(conf.getName()),"*", options); + if(res.size() < 1){ + return; + } + + List ids = (List)res.get(0).get("id"); + for(String id : ids){ + List keys = connection.sync().tsQueryIndex(String.format("id=%s",id)); + try{ + connection.sync().multi(); + for(String key : keys){ + connection.sync().tsDel(key, TimeRange.from(0).to(Long.MAX_VALUE).build()); + } + + connection.sync().exec(); + } catch(Exception e){ + connection.sync().discard(); + } + } + } } diff --git a/src/main/java/com/redis/smartcache/cli/commands/Commands.java b/src/main/java/com/redis/smartcache/cli/commands/Commands.java index a1915e4..8f2179e 100644 --- a/src/main/java/com/redis/smartcache/cli/commands/Commands.java +++ b/src/main/java/com/redis/smartcache/cli/commands/Commands.java @@ -30,6 +30,7 @@ public class Commands extends AbstractShellComponent { final String LIST_TABLES = "List Tables"; final String LIST_RULES = "List Rules"; final String RESET_CONFIG = "Reset Config"; + final String CLEAR_METRICS = "Clear Metrics"; final String EXIT = "Exit"; final String tableInstructions = "press 'enter' to edit\npress 'c' to commit\npress 'esc' to go back\npress ctrl+c to exit\n"; @@ -285,7 +286,7 @@ public String interactive( try{ RedisService client = initializeClient(host, port, applicationName); - String[] options = {LIST_APPLICATION_QUERIES, LIST_TABLES, CREATE_RULE, LIST_RULES, RESET_CONFIG, EXIT}; + String[] options = {LIST_APPLICATION_QUERIES, LIST_TABLES, CREATE_RULE, LIST_RULES, CLEAR_METRICS, RESET_CONFIG, EXIT}; String nextAction = ""; TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(1, ""); @@ -307,22 +308,13 @@ public String interactive( if(context.getResultItem().isPresent()){ nextAction = context.getResultItem().get().getItem().getAction(); - switch (nextAction){ - case CREATE_RULE: - createRule(client); - break; - case LIST_APPLICATION_QUERIES: - queryTable(client); - break; - case LIST_TABLES: - tablesTable(client); - break; - case LIST_RULES: - ruleTable(client); - break; - case RESET_CONFIG: - resetConfig(client); - break; + switch (nextAction) { + case CREATE_RULE -> createRule(client); + case LIST_APPLICATION_QUERIES -> queryTable(client); + case LIST_TABLES -> tablesTable(client); + case LIST_RULES -> ruleTable(client); + case CLEAR_METRICS -> clearMetrics(client); + case RESET_CONFIG -> resetConfig(client); } } @@ -347,17 +339,26 @@ public String interactive( return "Interactive!"; } - public void resetConfig(RedisService client){ - String prompt = "Are you sure you want to reset Smart cache's configuration? This will disable all further caching"; - ConfirmationInputExtension component = new ConfirmationInputExtension(getTerminal(), prompt, false); + public boolean confirm(String message){ + ConfirmationInputExtension component = new ConfirmationInputExtension(getTerminal(), message, false); component.setResourceLoader(getResourceLoader()); component.setTemplateExecutor(getTemplateExecutor()); ConfirmationInput.ConfirmationInputContext context = component.run(ConfirmationInput.ConfirmationInputContext.empty()); - if(component.isEscapeMode() || !context.getResultValue()){ - return; + return !component.isEscapeMode() && context.getResultValue(); + } + + public void clearMetrics(RedisService client){ + String prompt = "Are you sure you want to reset Smart Cache's metrics?"; + if(confirm(prompt)){ + client.clearMetrics(); } + } - client.commitRules(new ArrayList<>()); + public void resetConfig(RedisService client){ + String prompt = "Are you sure you want to disable all further Caching from SmartCache?"; + if(confirm(prompt)){ + client.commitRules(new ArrayList<>()); + } } public void ruleTable(RedisService client){ From 0a4d8285f4a7a4ac88440efb926b15c17fc7d0df Mon Sep 17 00:00:00 2001 From: slorello89 Date: Fri, 21 Jul 2023 15:55:17 -0400 Subject: [PATCH 72/84] moving out of transaction --- .../com/redis/smartcache/cli/RedisServiceImpl.java | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java index 287c2da..4ed1823 100644 --- a/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java +++ b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java @@ -152,15 +152,8 @@ public void clearMetrics(){ List ids = (List)res.get(0).get("id"); for(String id : ids){ List keys = connection.sync().tsQueryIndex(String.format("id=%s",id)); - try{ - connection.sync().multi(); - for(String key : keys){ - connection.sync().tsDel(key, TimeRange.from(0).to(Long.MAX_VALUE).build()); - } - - connection.sync().exec(); - } catch(Exception e){ - connection.sync().discard(); + for(String key : keys){ + connection.sync().tsDel(key, TimeRange.from(0).to(Long.MAX_VALUE).build()); } } } From e542c4f5ad65eee72e26bc2d1a2d04254a1fdbeb Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 24 Jul 2023 16:29:14 +0000 Subject: [PATCH 73/84] Releasing version 0.0.10 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index c55373a..4921e99 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.9 +:project-version: 0.0.10 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index c5d54ec..7c1886b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.9 +0.0.10 From f9cec6f7782987736d2fb2970fb4dac5074931ea Mon Sep 17 00:00:00 2001 From: Julien Ruaux Date: Mon, 24 Jul 2023 14:30:00 -0600 Subject: [PATCH 74/84] fix: Extracted inner interface --- .../AbstractTableSelectorComponent.java | 111 +++--------------- .../components/SelectorComponentContext.java | 95 +++++++++++++++ 2 files changed, 111 insertions(+), 95 deletions(-) create mode 100644 src/main/java/com/redis/smartcache/cli/components/SelectorComponentContext.java diff --git a/src/main/java/com/redis/smartcache/cli/components/AbstractTableSelectorComponent.java b/src/main/java/com/redis/smartcache/cli/components/AbstractTableSelectorComponent.java index 0a51f80..b5d660a 100644 --- a/src/main/java/com/redis/smartcache/cli/components/AbstractTableSelectorComponent.java +++ b/src/main/java/com/redis/smartcache/cli/components/AbstractTableSelectorComponent.java @@ -1,13 +1,7 @@ package com.redis.smartcache.cli.components; -import org.jline.keymap.BindingReader; -import org.jline.keymap.KeyMap; -import org.jline.terminal.Terminal; -import org.jline.utils.InfoCmp; -import org.springframework.shell.component.context.BaseComponentContext; -import org.springframework.shell.component.context.ComponentContext; -import org.springframework.shell.component.support.*; -import org.springframework.util.ObjectUtils; +import static org.jline.keymap.KeyMap.ctrl; +import static org.jline.keymap.KeyMap.key; import java.util.Comparator; import java.util.List; @@ -16,10 +10,20 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; -import static org.jline.keymap.KeyMap.ctrl; -import static org.jline.keymap.KeyMap.key; +import org.jline.keymap.BindingReader; +import org.jline.keymap.KeyMap; +import org.jline.terminal.Terminal; +import org.jline.utils.InfoCmp; +import org.springframework.shell.component.context.BaseComponentContext; +import org.springframework.shell.component.support.AbstractComponent; +import org.springframework.shell.component.support.Enableable; +import org.springframework.shell.component.support.Itemable; +import org.springframework.shell.component.support.Matchable; +import org.springframework.shell.component.support.Nameable; +import org.springframework.shell.component.support.Selectable; +import org.springframework.util.ObjectUtils; -public abstract class AbstractTableSelectorComponent, I extends Nameable & Matchable & Enableable & Selectable & Itemable> +public abstract class AbstractTableSelectorComponent, I extends Nameable & Matchable & Enableable & Selectable & Itemable> extends AbstractComponent { protected final String name; @@ -252,90 +256,6 @@ class ItemStateViewProjection { } } - /** - * Context interface on a selector component sharing content. - */ - public interface SelectorComponentContext, C extends SelectorComponentContext> - extends ComponentContext { - - /** - * Sets a name - * - * @param name the name - */ - void setName(String name); - - /** - * Gets an input. - * - * @return an input - */ - String getInput(); - - /** - * Gets an item states - * - * @return an item states - */ - List> getItemStates(); - - /** - * Sets an item states. - * - * @param itemStateView the input state - */ - void setItemStates(List> itemStateView); - - /** - * Sets an item state view - * - * @param itemStateView the item state view - */ - void setItemStateView(List> itemStateView); - - /** - * Gets a cursor row. - * - * @return a cursor row. - */ - Integer getCursorRow(); - - /** - * Sets a cursor row. - * - * @param cursorRow the cursor row - */ - void setCursorRow(Integer cursorRow); - - /** - * Gets an items. - * - * @return an items - */ - List getItems(); - - /** - * Sets an items. - * - * @param items the items - */ - void setItems(List items); - - /** - * Gets a result items. - * - * @return a result items - */ - List getResultItems(); - - /** - * Sets a result items. - * - * @param items the result items - */ - void setResultItems(List items); - - } /** * Base implementation of a {@link org.springframework.shell.component.support.AbstractSelectorComponent.SelectorComponentContext}. @@ -343,6 +263,7 @@ public interface SelectorComponentContext, C extends SelectorComponentContext> extends BaseComponentContext implements SelectorComponentContext { + private static final long serialVersionUID = 1L; private String name; private String input; private List> itemStates; diff --git a/src/main/java/com/redis/smartcache/cli/components/SelectorComponentContext.java b/src/main/java/com/redis/smartcache/cli/components/SelectorComponentContext.java new file mode 100644 index 0000000..0b53384 --- /dev/null +++ b/src/main/java/com/redis/smartcache/cli/components/SelectorComponentContext.java @@ -0,0 +1,95 @@ +package com.redis.smartcache.cli.components; + +import java.util.List; + +import org.springframework.shell.component.context.ComponentContext; +import org.springframework.shell.component.support.Itemable; +import org.springframework.shell.component.support.Matchable; +import org.springframework.shell.component.support.Nameable; + +import com.redis.smartcache.cli.components.AbstractTableSelectorComponent.ItemState; + +/** + * Context interface on a selector component sharing content. + */ +public interface SelectorComponentContext, C extends SelectorComponentContext> + extends ComponentContext { + + /** + * Sets a name + * + * @param name the name + */ + void setName(String name); + + /** + * Gets an input. + * + * @return an input + */ + String getInput(); + + /** + * Gets an item states + * + * @return an item states + */ + List> getItemStates(); + + /** + * Sets an item states. + * + * @param itemStateView the input state + */ + void setItemStates(List> itemStateView); + + /** + * Sets an item state view + * + * @param itemStateView the item state view + */ + void setItemStateView(List> itemStateView); + + /** + * Gets a cursor row. + * + * @return a cursor row. + */ + Integer getCursorRow(); + + /** + * Sets a cursor row. + * + * @param cursorRow the cursor row + */ + void setCursorRow(Integer cursorRow); + + /** + * Gets an items. + * + * @return an items + */ + List getItems(); + + /** + * Sets an items. + * + * @param items the items + */ + void setItems(List items); + + /** + * Gets a result items. + * + * @return a result items + */ + List getResultItems(); + + /** + * Sets a result items. + * + * @param items the result items + */ + void setResultItems(List items); + +} From 896b95ebec8c987c637a543882f5fee9caee2aad Mon Sep 17 00:00:00 2001 From: Julien Ruaux Date: Mon, 24 Jul 2023 14:30:43 -0600 Subject: [PATCH 75/84] chore: git-ignore Eclipse project files --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 955af5f..62da8bf 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,7 @@ build spring-shell.log out artifacts -universal.zip \ No newline at end of file +universal.zip +.classpath +.project +.settings From 72a6277a0ea38315c2683572b883157cdf0d38ac Mon Sep 17 00:00:00 2001 From: Julien Ruaux Date: Mon, 24 Jul 2023 14:31:05 -0600 Subject: [PATCH 76/84] style: Cleaned-up imports --- .../redis/smartcache/cli/RedisService.java | 5 +- .../smartcache/cli/RedisServiceImpl.java | 47 ++++++++++++------- .../smartcache/cli/commands/Commands.java | 41 +++++++++++----- .../cli/components/TableSelector.java | 19 ++++++-- .../smartcache/cli/structures/RuleInfo.java | 1 - .../smartcache/cli/structures/TableInfo.java | 1 - .../com/redis/smartcache/cli/util/Util.java | 13 +++-- 7 files changed, 85 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/redis/smartcache/cli/RedisService.java b/src/main/java/com/redis/smartcache/cli/RedisService.java index 6b97ce2..593401d 100644 --- a/src/main/java/com/redis/smartcache/cli/RedisService.java +++ b/src/main/java/com/redis/smartcache/cli/RedisService.java @@ -1,12 +1,11 @@ package com.redis.smartcache.cli; +import java.util.List; + import com.redis.smartcache.cli.structures.QueryInfo; import com.redis.smartcache.cli.structures.TableInfo; -import com.redis.smartcache.core.Config; import com.redis.smartcache.core.RuleConfig; -import java.util.List; - public interface RedisService { List getQueries(); void commitRules(List rules); diff --git a/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java index 4ed1823..bae0c93 100644 --- a/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java +++ b/src/main/java/com/redis/smartcache/cli/RedisServiceImpl.java @@ -1,27 +1,39 @@ package com.redis.smartcache.cli; +import static com.redis.smartcache.core.RuleSessionManager.KEY_CONFIG; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Properties; + import com.fasterxml.jackson.dataformat.javaprop.JavaPropsMapper; import com.redis.lettucemod.api.StatefulRedisModulesConnection; -import com.redis.lettucemod.api.async.RediSearchAsyncCommands; -import com.redis.lettucemod.search.*; +import com.redis.lettucemod.search.AggregateOptions; +import com.redis.lettucemod.search.AggregateResults; +import com.redis.lettucemod.search.Apply; +import com.redis.lettucemod.search.Document; +import com.redis.lettucemod.search.Group; +import com.redis.lettucemod.search.Reducer; +import com.redis.lettucemod.search.Reducers; +import com.redis.lettucemod.search.SearchResults; import com.redis.lettucemod.timeseries.TimeRange; -import com.redis.lettucemod.timeseries.TimeSeriesCommandBuilder; import com.redis.smartcache.cli.structures.QueryInfo; import com.redis.smartcache.cli.structures.TableInfo; -import com.redis.smartcache.core.*; -import com.redis.smartcache.core.rules.Rule; -import io.airlift.units.Duration; -import io.lettuce.core.AbstractRedisClient; -import io.lettuce.core.RedisFuture; -import io.lettuce.core.internal.Futures; -import io.lettuce.core.protocol.RedisCommand; +import com.redis.smartcache.core.ClientManager; +import com.redis.smartcache.core.Config; +import com.redis.smartcache.core.KeyBuilder; +import com.redis.smartcache.core.Mappers; +import com.redis.smartcache.core.RuleConfig; +import com.redis.smartcache.core.RulesetConfig; +import com.redis.smartcache.core.StreamConfigManager; -import java.io.IOException; -import java.util.*; -import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; - -import static com.redis.smartcache.core.RuleSessionManager.KEY_CONFIG; +import io.airlift.units.Duration; //@Service public class RedisServiceImpl implements RedisService{ @@ -140,6 +152,7 @@ public List getTables(){ return tableInfos; } + @SuppressWarnings("unchecked") public void clearMetrics(){ String[] groups = new String[0]; Reducer[] reducers = { new Reducers.ToList.Builder("id").as("id").build() }; @@ -149,7 +162,7 @@ public void clearMetrics(){ return; } - List ids = (List)res.get(0).get("id"); + List ids = (List) res.get(0).get("id"); for(String id : ids){ List keys = connection.sync().tsQueryIndex(String.format("id=%s",id)); for(String key : keys){ diff --git a/src/main/java/com/redis/smartcache/cli/commands/Commands.java b/src/main/java/com/redis/smartcache/cli/commands/Commands.java index 8f2179e..ce23396 100644 --- a/src/main/java/com/redis/smartcache/cli/commands/Commands.java +++ b/src/main/java/com/redis/smartcache/cli/commands/Commands.java @@ -1,13 +1,17 @@ package com.redis.smartcache.cli.commands; -import com.redis.smartcache.cli.*; -import com.redis.smartcache.cli.components.ConfirmationInputExtension; -import com.redis.smartcache.cli.components.StringInputExtension; -import com.redis.smartcache.cli.components.TableSelector; -import com.redis.smartcache.cli.structures.*; -import com.redis.smartcache.cli.util.Util; -import com.redis.smartcache.core.RuleConfig; -import org.jline.terminal.impl.DumbTerminal; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.stream.Collectors; + import org.jline.utils.InfoCmp; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.shell.component.ConfirmationInput; @@ -17,11 +21,26 @@ import org.springframework.shell.standard.AbstractShellComponent; import org.springframework.shell.standard.ShellComponent; import org.springframework.shell.standard.ShellMethod; -import io.airlift.units.Duration; import org.springframework.shell.standard.ShellOption; -import java.util.*; -import java.util.stream.Collectors; +import com.redis.smartcache.cli.RedisConfig; +import com.redis.smartcache.cli.RedisService; +import com.redis.smartcache.cli.RedisServiceImpl; +import com.redis.smartcache.cli.components.ConfirmationInputExtension; +import com.redis.smartcache.cli.components.StringInputExtension; +import com.redis.smartcache.cli.components.TableSelector; +import com.redis.smartcache.cli.structures.Action; +import com.redis.smartcache.cli.structures.QueryInfo; +import com.redis.smartcache.cli.structures.RuleInfo; +import com.redis.smartcache.cli.structures.RuleType; +import com.redis.smartcache.cli.structures.RuleTypeInfo; +import com.redis.smartcache.cli.structures.SortDirection; +import com.redis.smartcache.cli.structures.SortField; +import com.redis.smartcache.cli.structures.TableInfo; +import com.redis.smartcache.cli.util.Util; +import com.redis.smartcache.core.RuleConfig; + +import io.airlift.units.Duration; @ShellComponent public class Commands extends AbstractShellComponent { diff --git a/src/main/java/com/redis/smartcache/cli/components/TableSelector.java b/src/main/java/com/redis/smartcache/cli/components/TableSelector.java index acc1a26..b493ebe 100644 --- a/src/main/java/com/redis/smartcache/cli/components/TableSelector.java +++ b/src/main/java/com/redis/smartcache/cli/components/TableSelector.java @@ -1,13 +1,23 @@ package com.redis.smartcache.cli.components; -import com.redis.smartcache.cli.structures.RowInfo; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Function; + import org.jline.terminal.Terminal; import org.jline.utils.AttributedString; import org.springframework.shell.component.context.ComponentContext; -import org.springframework.shell.component.support.*; +import org.springframework.shell.component.support.Enableable; +import org.springframework.shell.component.support.Itemable; +import org.springframework.shell.component.support.Matchable; +import org.springframework.shell.component.support.Nameable; +import org.springframework.shell.component.support.Selectable; -import java.util.*; -import java.util.function.Function; +import com.redis.smartcache.cli.structures.RowInfo; public class TableSelector> extends AbstractTableSelectorComponent, I> { @@ -98,6 +108,7 @@ static > SingleI private static class DefaultSingleItemSelectorContext> extends BaseSelectorComponentContext> implements SingleItemSelectorContext { + private static final long serialVersionUID = 1L; private final String instructions; private final int numColumns; private String header; diff --git a/src/main/java/com/redis/smartcache/cli/structures/RuleInfo.java b/src/main/java/com/redis/smartcache/cli/structures/RuleInfo.java index 5f8c6f4..e9c7939 100644 --- a/src/main/java/com/redis/smartcache/cli/structures/RuleInfo.java +++ b/src/main/java/com/redis/smartcache/cli/structures/RuleInfo.java @@ -1,7 +1,6 @@ package com.redis.smartcache.cli.structures; import com.redis.smartcache.cli.util.Util; -import com.redis.smartcache.core.Config; import com.redis.smartcache.core.RuleConfig; public class RuleInfo implements RowInfo { diff --git a/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java b/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java index 2f56edd..1d2160b 100644 --- a/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java +++ b/src/main/java/com/redis/smartcache/cli/structures/TableInfo.java @@ -1,7 +1,6 @@ package com.redis.smartcache.cli.structures; import com.redis.smartcache.cli.util.Util; -import com.redis.smartcache.core.Config; import com.redis.smartcache.core.RuleConfig; public class TableInfo implements RowInfo { diff --git a/src/main/java/com/redis/smartcache/cli/util/Util.java b/src/main/java/com/redis/smartcache/cli/util/Util.java index a29c125..9ccc35e 100644 --- a/src/main/java/com/redis/smartcache/cli/util/Util.java +++ b/src/main/java/com/redis/smartcache/cli/util/Util.java @@ -1,14 +1,14 @@ package com.redis.smartcache.cli.util; -import com.redis.smartcache.cli.structures.RuleType; -import com.redis.smartcache.core.Config; -import com.redis.smartcache.core.RuleConfig; -import io.airlift.units.Duration; - import java.util.ArrayList; import java.util.List; import java.util.Optional; +import com.redis.smartcache.cli.structures.RuleType; +import com.redis.smartcache.core.RuleConfig; + +import io.airlift.units.Duration; + public final class Util { public static String repeat(char c, int num){ StringBuilder sb = new StringBuilder(); @@ -89,6 +89,9 @@ public static RuleConfig createRule(RuleType ruleType, String match, Duration tt case REGEX: rule.setRegex(match); break; + case ANY: + // do nothing + break; } rule.setTtl(ttl); From 23e617fde73fe914d30e851b8f54591e9550dc79 Mon Sep 17 00:00:00 2001 From: Julien Ruaux Date: Mon, 24 Jul 2023 15:32:29 -0600 Subject: [PATCH 77/84] fix: QueryInfo `count` parsing --- .../java/com/redis/smartcache/cli/structures/QueryInfo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java b/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java index dc19063..3887a91 100644 --- a/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java +++ b/src/main/java/com/redis/smartcache/cli/structures/QueryInfo.java @@ -284,7 +284,7 @@ public static QueryInfo fromDocument(Document doc){ Builder builder = new Builder(); builder.setQuery(query); if(doc.containsKey("count")){ - builder.setCount(Long.parseLong(doc.get("count"))); + builder.setCount(Math.round(Double.parseDouble(doc.get("count")))); } if(doc.containsKey("mean")){ From 1a87dd54239c8c7c28cea911b26d7497b5b5ab31 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Tue, 25 Jul 2023 14:56:57 +0000 Subject: [PATCH 78/84] Releasing version 0.0.11 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 4921e99..58ef738 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.10 +:project-version: 0.0.11 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 7c1886b..2cfabea 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.10 +0.0.11 From eb546d105efb6299be05e4ec25e01013d9079479 Mon Sep 17 00:00:00 2001 From: Kyle Banker Date: Mon, 31 Jul 2023 17:43:23 -0600 Subject: [PATCH 79/84] CLI interface edits --- .../com/redis/smartcache/cli/Application.java | 21 +++++---- .../smartcache/cli/commands/Commands.java | 46 +++++++++---------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/redis/smartcache/cli/Application.java b/src/main/java/com/redis/smartcache/cli/Application.java index b1333bb..d25701a 100644 --- a/src/main/java/com/redis/smartcache/cli/Application.java +++ b/src/main/java/com/redis/smartcache/cli/Application.java @@ -32,24 +32,25 @@ public static void main(String[] args) { } if(Arrays.stream(args).anyMatch(x->Objects.equals(x,"-h") || Objects.equals(x,"--help"))){ + System.out.println("Redis Smart Cache CLI\n"); - System.out.println("Help Smart-Cache CLI"); - - System.out.println("Usage:"); - System.out.println(); + System.out.println("Example Usage:\n"); + System.out.println("smart-cache-cli -n localhost -p 6379 -s smartcache"); System.out.println("Options:"); - System.out.println("\t-n --hostname The Redis [h]ost."); - System.out.println("\t-p --port The Redis [p]ort."); - System.out.println("\t-a --password The Redis p[a]ssword."); - System.out.println("\t-u --user The Redis [u]sername."); - System.out.println("\t-s --application The Redis application name[s]pace."); + System.out.println("\t-n --hostname Redis [h]ost"); + System.out.println("\t-p --port Redis [p]ort"); + System.out.println("\t-u --user Redis [u]sername"); + System.out.println("\t-a --password Redis p[a]ssword"); + System.out.println("\t-s --application Redis application name[s]pace"); System.out.println(); - System.out.println("Subcommands"); + System.out.println("Subcommands:"); System.out.println("\tlist-queries"); System.out.println("\tmake-rule"); + System.out.println("Learn More:"); + System.out.println("\tTo learn more about Redis Smart Cache, see the README: https://github.com/redis-field-engineering/redis-smart-cache#readme"); } else{ List appArgs = Arrays.stream(args).collect(Collectors.toList()); diff --git a/src/main/java/com/redis/smartcache/cli/commands/Commands.java b/src/main/java/com/redis/smartcache/cli/commands/Commands.java index ce23396..eec6500 100644 --- a/src/main/java/com/redis/smartcache/cli/commands/Commands.java +++ b/src/main/java/com/redis/smartcache/cli/commands/Commands.java @@ -46,13 +46,13 @@ public class Commands extends AbstractShellComponent { final String LIST_APPLICATION_QUERIES = "List application queries"; final String CREATE_RULE = "Create query caching rule"; - final String LIST_TABLES = "List Tables"; - final String LIST_RULES = "List Rules"; - final String RESET_CONFIG = "Reset Config"; - final String CLEAR_METRICS = "Clear Metrics"; + final String LIST_TABLES = "List database tables"; + final String LIST_RULES = "List query caching rules"; final String EXIT = "Exit"; + final String RESET_CONFIG = "Reset smart cache configuration"; + final String CLEAR_METRICS = "Clear smart cache metrics"; - final String tableInstructions = "press 'enter' to edit\npress 'c' to commit\npress 'esc' to go back\npress ctrl+c to exit\n"; + final String tableInstructions = "Press [ENTER] to edit\nPress 'c' to commit\nPress [ESC] to go back\nPress [CTRL+C] to exit\n\n"; @Autowired private ComponentFlow.Builder componentFlowBuilder; @@ -85,13 +85,13 @@ public Optional getTtl(String message){ while(true){ String prompt; if(message.isEmpty()){ - prompt = "Enter a TTL in the form of a duration (e.g. 1h, 300s, 5m)"; + prompt = "Enter a TTL in the form of a duration (e.g., 1h, 300s, 5m)"; } else{ - prompt = String.format("%s%nEnter a TTL in the form of a duration (e.g. 1h, 300s, 5m)",message); + prompt = String.format("%s%nEnter a TTL in the form of a duration (e.g., 1h, 300s, 5m)",message); } - prompt += displayError?" - Invalidly formatted duration, please try again:" : ":"; + prompt += displayError?" - Duration must be a number plus a time unit (e.g., 1h, 3002, 5m). Please try again:" : ":"; StringInputExtension stringInputComponent = new StringInputExtension(getTerminal(), prompt,"30m"); stringInputComponent.setResourceLoader(getResourceLoader()); @@ -247,14 +247,14 @@ public String makeRule( @ShellOption(value = {"-n","--hostname"}, defaultValue = "localhost")String host, @ShellOption(value = {"-p","--port"}, defaultValue = "6379") String port, @ShellOption(value = {"-s","--application-name"}, defaultValue = "smartcache") String applicationName, - @ShellOption(value = {"-t","--ttl"}, help = "The time to live for anything matched by the rule, must be in the format of a duration (e.g. 30m, 2h).") String ttlStr, - @ShellOption(value = {"-m","--match"}, defaultValue = "", help = "the value(s) for the rule to match against. Required if type is not 'Any'.") String match, - @ShellOption(value = {"-k","--type"}, help = "The Rule Type of the rule, valid values are 'any', 'tables-any', 'tables-all', 'tables-exact', 'query-ids', 'regex' - required.") String type) + @ShellOption(value = {"-t","--ttl"}, help = "The time to live for all stored query results. Must be in the format of a duration (e.g., 30m, 2h)") String ttlStr, + @ShellOption(value = {"-m","--match"}, defaultValue = "", help = "The value(s) for the rule to match against. Required if type is not 'any'") String match, + @ShellOption(value = {"-k","--type"}, help = "The Rule Type (required). Valid values are 'any', 'tables-any', 'tables-all', 'tables-exact', 'query-ids', and 'regex'.") String type) { try{ Duration ttl = Duration.valueOf(ttlStr); if(!Objects.equals(type.toLowerCase(), "any") && match.isEmpty()){ - throw new Exception("'match' argument required when 'type' is not 'any'."); + throw new Exception("Please provide a value for the 'match' argument. This is required when the Rule Type is anything other than 'any'."); } List matchSplit = Arrays.stream(match.split(",")).toList(); @@ -279,7 +279,7 @@ public String makeRule( rule.setRegex(match); break; default: - throw new Exception("Could not determine rule type, valid types are 'any', 'tables-any', 'tables-all', 'tables-exact', 'query-ids', 'regex'"); + throw new Exception("Invalid rule type '" + type.toLowerCase() + "'. Valid types are 'any', 'tables-any', 'tables-all', 'tables-exact', 'query-ids', and 'regex'."); } RedisService client = initializeClient(host, port, applicationName); @@ -287,11 +287,11 @@ public String makeRule( rules.add(0,rule); client.commitRules(rules); } catch (Exception ex){ - System.out.printf("Encountered error when making rule:%s%nexiting. . .%n", ex); + System.out.printf("Error when making rule: %s%nExiting. . .%n", ex); System.exit(1); } - System.out.println("Rule Created"); + System.out.println("Rule created."); System.exit(0); return "Rule Created"; } @@ -344,11 +344,11 @@ public String interactive( } catch (Exception ex){ if(ex.getMessage() == null){ - System.out.printf("Encountered fatal error: %s%nexiting. . .%n", ex); + System.out.printf("Encountered fatal error: %s%nExiting. . .%n", ex); throw ex; } else{ - System.out.printf("Encountered fatal error: %s%nexiting. . .%n", ex.getMessage()); + System.out.printf("Encountered fatal error: %s%nExiting. . .%n", ex.getMessage()); } System.exit(1); @@ -367,14 +367,14 @@ public boolean confirm(String message){ } public void clearMetrics(RedisService client){ - String prompt = "Are you sure you want to reset Smart Cache's metrics?"; + String prompt = "Are you sure you want to reset Redis Smart Cache's metrics?"; if(confirm(prompt)){ client.clearMetrics(); } } public void resetConfig(RedisService client){ - String prompt = "Are you sure you want to disable all further Caching from SmartCache?"; + String prompt = "Are you sure you want to disable all caching from Smart Cache?"; if(confirm(prompt)){ client.commitRules(new ArrayList<>()); } @@ -382,7 +382,7 @@ public void resetConfig(RedisService client){ public void ruleTable(RedisService client){ List rules = client.getRules().stream().map(x->new RuleInfo(x, RuleInfo.Status.Current)).collect(Collectors.toList()); - String instructions = "Press 'enter' to edit an existing rule\nPress 'n' to create a new rule\nPress 'd' to delete a rule\nPress 'c' to commit\nPress 'esc' to go back\nPress ctrl+c to exit\n"; + String instructions = "Press [ENTER] to edit an existing rule\nPress 'n' to create a new rule\nPress 'd' to delete a rule\nPress 'c' to commit\nPress [ESC] to go back\nPress [CTRL+C] to exit\n\n"; int cursorRow = 0; TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(3, instructions); @@ -459,7 +459,7 @@ else if(component.isDeleteMode()){ } public void tablesTable(RedisService client){ - String instructions = "press 'enter' to edit\npress 'esc' to go back\npress ctrl+c to exit\n"; + String instructions = "Press [ENTER] to edit\nPress [ESC] to go back\nPress ctrl+c to exit\n\n"; int cursorRow = 0; TableSelector.SingleItemSelectorContext> context = TableSelector.SingleItemSelectorContext.empty(4, instructions); while(true){ @@ -483,7 +483,7 @@ public void tablesTable(RedisService client){ continue; } if(!component.isEscapeMode() && res.isPresent()){ - Optional duration = getTtl(String.format("Create rule to cache table:%s", res.get().getName())); + Optional duration = getTtl(String.format("Create rule to cache table: %s", res.get().getName())); duration.ifPresent(ttl->{ RuleConfig newRule = new RuleConfig(); newRule.setTtl(ttl); @@ -539,7 +539,7 @@ public void queryTable(RedisService client){ Optional confirmed = Optional.empty(); while(!confirmed.isPresent()){ - String prompt = "Confirm pending updates y/n"; + String prompt = "Confirm pending updates (y/N)"; StringInput stringInputComponent = new StringInput(getTerminal(), prompt,"n"); stringInputComponent.setResourceLoader(getResourceLoader()); stringInputComponent.setTemplateExecutor(getTemplateExecutor()); From d3290f13f9b5fde6aff8c97c24619a4a70e15635 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Tue, 1 Aug 2023 14:53:08 +0000 Subject: [PATCH 80/84] Releasing version 0.0.12 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 58ef738..224e3fb 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.11 +:project-version: 0.0.12 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 2cfabea..8cbf02c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.11 +0.0.12 From c562df7469930a0864dcbb325bc63daebe0bf850 Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 21 Aug 2023 07:24:39 -0400 Subject: [PATCH 81/84] * -> All Queries --- src/main/java/com/redis/smartcache/cli/structures/RuleType.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/redis/smartcache/cli/structures/RuleType.java b/src/main/java/com/redis/smartcache/cli/structures/RuleType.java index eba343d..878b5e2 100644 --- a/src/main/java/com/redis/smartcache/cli/structures/RuleType.java +++ b/src/main/java/com/redis/smartcache/cli/structures/RuleType.java @@ -6,7 +6,7 @@ public enum RuleType { TABLES_ALL("Tables All"), REGEX("Regex"), QUERY_IDS("Query IDs"), - ANY("*"); + ANY("All Queries"); final private String value; From 8c8ba2f28f7df0eb0286b9c13361a38187bdfe1f Mon Sep 17 00:00:00 2001 From: slorello89 Date: Mon, 21 Aug 2023 09:18:55 -0400 Subject: [PATCH 82/84] Better error handling when cannot talk to Redis --- .../smartcache/cli/commands/Commands.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/redis/smartcache/cli/commands/Commands.java b/src/main/java/com/redis/smartcache/cli/commands/Commands.java index eec6500..c9ac422 100644 --- a/src/main/java/com/redis/smartcache/cli/commands/Commands.java +++ b/src/main/java/com/redis/smartcache/cli/commands/Commands.java @@ -303,7 +303,23 @@ public String interactive( @ShellOption(value = {"-s","--application-name"}, defaultValue = "smartcache") String applicationName ){ try{ - RedisService client = initializeClient(host, port, applicationName); + RedisService client = null; + try{ + client = initializeClient(host, port, applicationName); + } + catch (Exception ex){ + System.out.printf("Encountered fatal error while connecting to Redis, ensure that Redis is running on host: %s port: %s%n", host, port); + System.exit(1); + } + + try{ + client.getQueries(); + } + catch (Exception ex){ + System.out.printf("Encountered fatal error. Did not detect an Smart Cache application with the name %s in Redis.%n", applicationName); + System.exit(1); + } + String[] options = {LIST_APPLICATION_QUERIES, LIST_TABLES, CREATE_RULE, LIST_RULES, CLEAR_METRICS, RESET_CONFIG, EXIT}; From eabe9edf553cca80a2511a058f4bfd85f3540ac2 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 21 Aug 2023 13:21:43 +0000 Subject: [PATCH 83/84] Releasing version 0.0.13 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 224e3fb..76bb9e2 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.12 +:project-version: 0.0.13 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 8cbf02c..43b2961 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.12 +0.0.13 From 7758e05bf4abac124c7c5415935eab483b0880f2 Mon Sep 17 00:00:00 2001 From: Steve Lorello Date: Mon, 21 Aug 2023 14:06:44 +0000 Subject: [PATCH 84/84] Releasing version 0.0.14 --- README.adoc | 2 +- VERSION | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 76bb9e2..6aac689 100644 --- a/README.adoc +++ b/README.adoc @@ -2,7 +2,7 @@ :project-owner: redis-field-engineering :project-name: redis-smart-cache-cli :project-group: com.redis -:project-version: 0.0.13 +:project-version: 0.0.14 :project-url: https://github.com/{project-owner}/{project-name} :product-name: Redis Smart Cache CLI :property-prefix: smartcache diff --git a/VERSION b/VERSION index 43b2961..9789c4c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.13 +0.0.14

    AKwT#&)RF%AwA$3oM?^ofzXX1w6-QQOL4 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 z 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 <)il4Q6QCT{n%(kv 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