diff --git a/.github/workflows/static_code_analysis.yml b/.github/workflows/static_code_analysis.yml index 05e16134e..a951dca6b 100644 --- a/.github/workflows/static_code_analysis.yml +++ b/.github/workflows/static_code_analysis.yml @@ -15,6 +15,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + fetch-depth: 2 + - uses: actions/setup-go@v2 with: go-version: '^1.17' @@ -24,67 +27,117 @@ jobs: sudo apt update sudo apt install -y libpcap-dev + - name: Check Agent modified files + id: agent_modified_files + run: devops/check_modified_files.sh agent/ + - name: Go lint - agent uses: golangci/golangci-lint-action@v2 + if: steps.agent_modified_files.outputs.matched == 'true' with: version: latest working-directory: agent args: --timeout=3m + - name: Check shared modified files + id: shared_modified_files + run: devops/check_modified_files.sh shared/ + - name: Go lint - shared uses: golangci/golangci-lint-action@v2 + if: steps.shared_modified_files.outputs.matched == 'true' with: version: latest working-directory: shared args: --timeout=3m + - name: Check tap modified files + id: tap_modified_files + run: devops/check_modified_files.sh tap/ + - name: Go lint - tap uses: golangci/golangci-lint-action@v2 + if: steps.tap_modified_files.outputs.matched == 'true' with: version: latest working-directory: tap args: --timeout=3m + - name: Check cli modified files + id: cli_modified_files + run: devops/check_modified_files.sh cli/ + - name: Go lint - CLI uses: golangci/golangci-lint-action@v2 + if: steps.cli_modified_files.outputs.matched == 'true' with: version: latest working-directory: cli args: --timeout=3m + - name: Check acceptanceTests modified files + id: acceptanceTests_modified_files + run: devops/check_modified_files.sh acceptanceTests/ + - name: Go lint - acceptanceTests uses: golangci/golangci-lint-action@v2 + if: steps.acceptanceTests_modified_files.outputs.matched == 'true' with: version: latest working-directory: acceptanceTests args: --timeout=3m + - name: Check tap/api modified files + id: tap_api_modified_files + run: devops/check_modified_files.sh tap/api/ + - name: Go lint - tap/api uses: golangci/golangci-lint-action@v2 + if: steps.tap_api_modified_files.outputs.matched == 'true' with: version: latest working-directory: tap/api + - name: Check tap/extensions/amqp modified files + id: tap_amqp_modified_files + run: devops/check_modified_files.sh tap/extensions/amqp/ + - name: Go lint - tap/extensions/amqp uses: golangci/golangci-lint-action@v2 + if: steps.tap_amqp_modified_files.outputs.matched == 'true' with: version: latest working-directory: tap/extensions/amqp + + - name: Check tap/extensions/http modified files + id: tap_http_modified_files + run: devops/check_modified_files.sh tap/extensions/http/ - name: Go lint - tap/extensions/http uses: golangci/golangci-lint-action@v2 + if: steps.tap_http_modified_files.outputs.matched == 'true' with: version: latest working-directory: tap/extensions/http + - name: Check tap/extensions/kafka modified files + id: tap_kafka_modified_files + run: devops/check_modified_files.sh tap/extensions/kafka/ + - name: Go lint - tap/extensions/kafka uses: golangci/golangci-lint-action@v2 + if: steps.tap_kafka_modified_files.outputs.matched == 'true' with: version: latest working-directory: tap/extensions/kafka + - name: Check tap/extensions/redis modified files + id: tap_redis_modified_files + run: devops/check_modified_files.sh tap/extensions/redis/ + - name: Go lint - tap/extensions/redis uses: golangci/golangci-lint-action@v2 + if: steps.tap_redis_modified_files.outputs.matched == 'true' with: version: latest working-directory: tap/extensions/redis diff --git a/tap/extensions/http/helpers.go b/tap/extensions/http/helpers.go index 8507af158..a8c4b78d7 100644 --- a/tap/extensions/http/helpers.go +++ b/tap/extensions/http/helpers.go @@ -53,7 +53,16 @@ func representMapSliceAsTable(mapSlice []interface{}, selectorPrefix string) (re h := item.(map[string]interface{}) key := h["name"].(string) value := h["value"] - switch reflect.TypeOf(value).Kind() { + + var reflectKind reflect.Kind + reflectType := reflect.TypeOf(value) + if reflectType == nil { + reflectKind = reflect.Interface + } else { + reflectKind = reflect.TypeOf(value).Kind() + } + + switch reflectKind { case reflect.Slice: fallthrough case reflect.Array: diff --git a/ui-common/src/components/OasModal/OasModal.tsx b/ui-common/src/components/OasModal/OasModal.tsx index 124cc88df..5c5e14496 100644 --- a/ui-common/src/components/OasModal/OasModal.tsx +++ b/ui-common/src/components/OasModal/OasModal.tsx @@ -42,10 +42,10 @@ const OasModal = ({ openModal, handleCloseModal, getOasServices, getOasByService try { const data = await getOasByService(selectedService ? selectedService : oasServices[0]); setSelectedServiceSpec(data); - } catch (e) { - toast.error("Error occurred while fetching service OAS spec"); - console.error(e); - } + } catch (e) { + toast.error("Error occurred while fetching service OAS spec"); + console.error(e); + } }; useEffect(() => { @@ -61,7 +61,7 @@ const OasModal = ({ openModal, handleCloseModal, getOasServices, getOasByService useEffect(() => { onSelectedOASService(null); - },[oasServices]) + }, [oasServices]) return (
openAPI
-
OpenAPI
+
Service Catalog
close
- - - -
+ + + +
{selectedServiceSpec && = ({link,style}) => { +export const InformationIcon: React.FC = ({ link, style }) => { return - - Info icon + + Docs } diff --git a/ui-common/src/components/UI/assets/info.svg b/ui-common/src/components/UI/assets/info.svg deleted file mode 100644 index b805f8de4..000000000 --- a/ui-common/src/components/UI/assets/info.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/ui-common/src/components/UI/style/InformationIcon.module.sass b/ui-common/src/components/UI/style/InformationIcon.module.sass index 1ef24b94e..ed5739e7c 100644 --- a/ui-common/src/components/UI/style/InformationIcon.module.sass +++ b/ui-common/src/components/UI/style/InformationIcon.module.sass @@ -1,2 +1,8 @@ -.flex - display: flex \ No newline at end of file +.linkStyle + display: flex + color: #18253d + text-decoration: none + font-family: "Ubuntu", sans-serif + font-style: normal + font-weight: 600 + font-size: 14px \ No newline at end of file diff --git a/ui-common/src/components/UI/style/StatusBar.module.sass b/ui-common/src/components/UI/style/StatusBar.module.sass index 52fc71605..09ea3a93f 100644 --- a/ui-common/src/components/UI/style/StatusBar.module.sass +++ b/ui-common/src/components/UI/style/StatusBar.module.sass @@ -4,7 +4,7 @@ position: absolute transform: translate(-50%, -3px) left: 50% - z-index: 9999 + z-index: 100 min-width: 200px background: $blue-color color: rgba(255,255,255,0.75) @@ -19,7 +19,7 @@ overflow: hidden max-width: clamp(150px,50%,600px) - &.banner + &.banner top: 53px .podsCount @@ -41,7 +41,7 @@ table width: 100% margin-top: 20px - + tbody max-height: 70vh overflow-y: auto diff --git a/ui/src/components/Pages/TrafficPage/TrafficPage.tsx b/ui/src/components/Pages/TrafficPage/TrafficPage.tsx index 4089ed578..d0da56213 100644 --- a/ui/src/components/Pages/TrafficPage/TrafficPage.tsx +++ b/ui/src/components/Pages/TrafficPage/TrafficPage.tsx @@ -1,9 +1,9 @@ -import React, {useEffect, useState} from "react"; +import React, { useState } from "react"; import { Button } from "@material-ui/core"; import Api, { MizuWebsocketURL } from "../../../helpers/api"; import debounce from 'lodash/debounce'; -import {useSetRecoilState, useRecoilState} from "recoil"; -import {useCommonStyles} from "../../../helpers/commonStyle" +import { useRecoilState } from "recoil"; +import { useCommonStyles } from "../../../helpers/commonStyle" import serviceMapModalOpenAtom from "../../../recoil/serviceMapModalOpen"; import TrafficViewer from "@up9/mizu-common" import "@up9/mizu-common/dist/index.css" @@ -17,13 +17,13 @@ interface TrafficPageProps { const api = Api.getInstance(); -export const TrafficPage: React.FC = ({setAnalyzeStatus}) => { +export const TrafficPage: React.FC = ({ setAnalyzeStatus }) => { const commonClasses = useCommonStyles(); - const setServiceMapModalOpen = useSetRecoilState(serviceMapModalOpenAtom); + const [serviceMapModalOpen, setServiceMapModalOpen] = useRecoilState(serviceMapModalOpenAtom); const [openOasModal, setOpenOasModal] = useRecoilState(oasModalOpenAtom); const [openWebSocket, setOpenWebSocket] = useState(true); -const trafficViewerApi = {...api} + const trafficViewerApi = { ...api } const handleOpenOasModal = () => { setOpenWebSocket(false) @@ -36,37 +36,31 @@ const trafficViewerApi = {...api} }, 500); const actionButtons = (window["isOasEnabled"] || window["isServiceMapEnabled"]) && -
- {window["isOasEnabled"] && } - {window["isServiceMapEnabled"] && } -
- - useEffect(() => { - return () => { - //closeSocket() - } - },[]) +
+ {window["isOasEnabled"] && } + {window["isServiceMapEnabled"] && } +
return ( - <> + <> - + trafficViewerApiProp={trafficViewerApi} actionButtons={actionButtons} isShowStatusBar={!(openOasModal || serviceMapModalOpen)} isDemoBannerView={false} /> + ); };