Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d06ad04341 | ||
|
|
72c89268ec | ||
|
|
3f99b483cb | ||
|
|
9bef235252 | ||
|
|
18935dcfdd | ||
|
|
db2fb81654 |
@@ -0,0 +1,32 @@
|
|||||||
|
name: Code Scanning
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
- '**.go'
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
- '**.go'
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 * * 0"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
CodeQL-Build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: go
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
||||||
@@ -4,9 +4,17 @@ on:
|
|||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
paths:
|
||||||
|
- '**.go'
|
||||||
|
- 'charts/**'
|
||||||
|
- 'test/**'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
paths:
|
||||||
|
- '**.go'
|
||||||
|
- 'charts/**'
|
||||||
|
- 'test/**'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
@@ -1,10 +1,24 @@
|
|||||||
name: Upgrade functionality test
|
name: Fission CI upgrade
|
||||||
|
|
||||||
on: [workflow_dispatch]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
- '**.go'
|
||||||
|
- 'charts/**'
|
||||||
|
- 'test/**'
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
paths:
|
||||||
|
- '**.go'
|
||||||
|
- 'charts/**'
|
||||||
|
- 'test/**'
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
upgrade-test:
|
||||||
upgrade-functionality-test:
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout action sources
|
- name: Checkout action sources
|
||||||
@@ -24,13 +38,13 @@ jobs:
|
|||||||
uses: engineerd/setup-kind@v0.5.0
|
uses: engineerd/setup-kind@v0.5.0
|
||||||
with:
|
with:
|
||||||
config: kind.yaml
|
config: kind.yaml
|
||||||
|
|
||||||
- name: Setup kubectl & fetch node information
|
- name: Setup kubectl & fetch node information
|
||||||
run: |
|
run: |
|
||||||
kubectl cluster-info --context kind-kind
|
kubectl cluster-info --context kind-kind
|
||||||
kind get kubeconfig --internal >$HOME/.kube/config
|
kind get kubeconfig --internal >$HOME/.kube/config
|
||||||
kubectl get nodes
|
kubectl get nodes
|
||||||
|
|
||||||
- name: Dump system info
|
- name: Dump system info
|
||||||
run: |
|
run: |
|
||||||
source ./test/upgrade_test/fission_objects.sh dump_system_info
|
source ./test/upgrade_test/fission_objects.sh dump_system_info
|
||||||
|
|||||||
@@ -29,9 +29,5 @@ environments/php7/vendor/
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
vendor/
|
vendor/
|
||||||
local/
|
local/
|
||||||
environments/dotnet20/Builder/.vs/
|
|
||||||
environments/dotnet20/.vs/
|
|
||||||
environments/dotnet20/obj/
|
|
||||||
environments/dotnet20/bin/
|
|
||||||
|
|
||||||
build/
|
build/
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
linters-settings:
|
||||||
|
errcheck:
|
||||||
|
ignore: go.uber.org/zap:Sync
|
||||||
|
goimports:
|
||||||
|
# put imports beginning with prefix after 3rd-party packages;
|
||||||
|
# it's a comma-separated list of prefixes
|
||||||
|
local-prefixes: github.com/trussworks/my-cli-tool
|
||||||
+62
-19
@@ -1,24 +1,67 @@
|
|||||||
# 1.12.0
|
|
||||||
[Documentation](https://docs.fission.io/)
|
|
||||||
## Downloads for 1.12.0
|
|
||||||
|
|
||||||
|
|
||||||
filename | sha256 hash
|
|
||||||
-------- | -----------
|
|
||||||
[fission-all-1.12.0.tgz](https://github.com/fission/fission/releases/download/1.12.0/fission-all-1.12.0.tgz) | `10dfa6df66cfcc7f4887086357857ff25cb7e7e2f906b9c11e2d70e1a7bc8113`
|
|
||||||
[fission-core-1.12.0.tgz](https://github.com/fission/fission/releases/download/1.12.0/fission-core-1.12.0.tgz) | `89d745e2130cf7ff281b35100482d6560a2880f0a4e34ffda6428070eccd1945`
|
|
||||||
[fission-cli-linux](https://github.com/fission/fission/releases/download/1.12.0/fission-cli-linux) | `bcb3d84a424af45fb8ba5e846238475e481c01907eb10d38a3a614b288da785c`
|
|
||||||
[fission-cli-windows.exe](https://github.com/fission/fission/releases/download/1.12.0/fission-cli-windows.exe) | `005f5404545d49546259ee801b52987cb375816ba1c341f8e8fc6f316b16c0b2`
|
|
||||||
[fission-cli-osx](https://github.com/fission/fission/releases/download/1.12.0/fission-cli-osx) | `d6c192b96cca741e264c6bacb900ebe40419c4a68e2cec93a889c5c2874ecd5b`
|
|
||||||
[fission-core-1.12.0.yaml](https://github.com/fission/fission/releases/download/1.12.0/fission-core-1.12.0.yaml) | `2908fc54ed514b0c600664c5b7cacc35dd9fdb242269c1be3e589d53fbc4f8e5`
|
|
||||||
[fission-all-1.12.0.yaml](https://github.com/fission/fission/releases/download/1.12.0/fission-all-1.12.0.yaml) | `2a95051c91a507944805eed26103d1ccfa1e222951645a314814cac912e41391`
|
|
||||||
[fission-all-1.12.0-minikube.yaml](https://github.com/fission/fission/releases/download/1.12.0/fission-all-1.12.0-minikube.yaml) | `91bf41f63ac449861ddf3fc5a0b0ecd061a20f7e17331b8d913f17ac76e65649`
|
|
||||||
[fission-core-1.12.0-minikube.yaml](https://github.com/fission/fission/releases/download/1.12.0/fission-core-1.12.0-minikube.yaml) | `b71a5f0314e32d0fe3a98c5cbe22308c265203daeea342855a847c1185ce368a`
|
|
||||||
[fission-all-1.12.0-openshift.yaml](https://github.com/fission/fission/releases/download/1.12.0/fission-all-1.12.0-openshift.yaml) | `906fb10ea9d052e455c9f50613ee6b54ab8bd93d7d7350740ceaf8fdf8618ac4`
|
|
||||||
[fission-core-1.12.0-openshift.yaml](https://github.com/fission/fission/releases/download/1.12.0/fission-core-1.12.0-openshift.yaml) | `b46908adf6dda8601ac975b6fa0b32e7564b08d54347e106ce04b5e2d01e47b1`
|
|
||||||
|
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [v1.13.0](https://github.com/fission/fission/tree/v1.13.0) (2021-06-16)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/fission/fission/compare/v1.12.0...v1.13.0)
|
||||||
|
|
||||||
|
## [1.13.0](https://github.com/fission/fission/tree/1.13.0) (2021-06-16)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/fission/fission/compare/v1.12.0...1.13.0)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Generate and archive fission cli per OS and platform [\#2071](https://github.com/fission/fission/pull/2071) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Changes for releasing 1.13 [\#2070](https://github.com/fission/fission/pull/2070) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Fix golang lint errors [\#2068](https://github.com/fission/fission/pull/2068) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Correct docker platforms and optimize make commands [\#2066](https://github.com/fission/fission/pull/2066) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Added GCP PubSub Image, enabled Keda by default and updated versions of all Keda connector images [\#2065](https://github.com/fission/fission/pull/2065) ([vishal-biyani](https://github.com/vishal-biyani))
|
||||||
|
- Support for multiple HTTP verbs in routes/HTTPTrigger [\#2064](https://github.com/fission/fission/pull/2064) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Add a SharedIndexInformer for services and deployments to NewDeploy executor [\#2061](https://github.com/fission/fission/pull/2061) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Move RBAC v1beta1 to v1 [\#2059](https://github.com/fission/fission/pull/2059) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Collect fission dump if CI tests fails & enable manual trigger [\#2058](https://github.com/fission/fission/pull/2058) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Capture timestamp whenever cleanup is triggered in tests [\#2054](https://github.com/fission/fission/pull/2054) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Add websocket test [\#2053](https://github.com/fission/fission/pull/2053) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Wait for small time to avoid timeout in specs tests [\#2052](https://github.com/fission/fission/pull/2052) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Added fission upgrade workflow [\#2050](https://github.com/fission/fission/pull/2050) ([jithindevasia](https://github.com/jithindevasia))
|
||||||
|
- Add make targets for CRDs [\#2049](https://github.com/fission/fission/pull/2049) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Add role required by fetcher pod to fetch events & pods in helm chart [\#2048](https://github.com/fission/fission/pull/2048) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Enable prefix based routing [\#2047](https://github.com/fission/fission/pull/2047) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Change container name for runtime container to environment name in newdeploy [\#2044](https://github.com/fission/fission/pull/2044) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Change examples references to examples repostiory [\#2038](https://github.com/fission/fission/pull/2038) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- OnlyOnce preupgrade check [\#2037](https://github.com/fission/fission/pull/2037) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Add router cache back for performance comparison [\#2036](https://github.com/fission/fission/pull/2036) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Cleanup and remove hardcoding from delete-crds script [\#2035](https://github.com/fission/fission/pull/2035) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Crds update [\#2033](https://github.com/fission/fission/pull/2033) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Use latest 1.14 go version in CI [\#2032](https://github.com/fission/fission/pull/2032) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Handle SIGTERM signal in mqtrigger subscriber [\#2029](https://github.com/fission/fission/pull/2029) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Update deprecated functions/methods calls [\#2027](https://github.com/fission/fission/pull/2027) ([gauravgahlot](https://github.com/gauravgahlot))
|
||||||
|
- Keda podspec [\#2021](https://github.com/fission/fission/pull/2021) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Add metrics to Reaper [\#2019](https://github.com/fission/fission/pull/2019) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Change alpine base image from 3.10 to 3.13 [\#2017](https://github.com/fission/fission/pull/2017) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- \[Snyk\] Security upgrade golang from 1.12.13 to 1.16.3 [\#2016](https://github.com/fission/fission/pull/2016) ([snyk-bot](https://github.com/snyk-bot))
|
||||||
|
- Add Google Analytics reporting in place of existing custom reporting [\#2015](https://github.com/fission/fission/pull/2015) ([sanketsudake](https://github.com/sanketsudake))
|
||||||
|
- Add preupgrade check for RPP [\#2014](https://github.com/fission/fission/pull/2014) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Restoring one example as it is used in many places including Helm charts [\#2011](https://github.com/fission/fission/pull/2011) ([vishal-biyani](https://github.com/vishal-biyani))
|
||||||
|
- Websocket reaper [\#1982](https://github.com/fission/fission/pull/1982) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Increase default concurrency [\#1980](https://github.com/fission/fission/pull/1980) ([therahulbhati](https://github.com/therahulbhati))
|
||||||
|
- Serve only one request and garbage collect [\#1978](https://github.com/fission/fission/pull/1978) ([therahulbhati](https://github.com/therahulbhati))
|
||||||
|
- Fix wrong checksum was assigned [\#1968](https://github.com/fission/fission/pull/1968) ([life1347](https://github.com/life1347))
|
||||||
|
- Add a warning if spec is applied on a dirty worktree [\#1966](https://github.com/fission/fission/pull/1966) ([hellozee](https://github.com/hellozee))
|
||||||
|
- Fix log sort order when multiple series are returned [\#1956](https://github.com/fission/fission/pull/1956) ([LittleFox94](https://github.com/LittleFox94))
|
||||||
|
- Add a SharedIndexInformer for pods to router. [\#1951](https://github.com/fission/fission/pull/1951) ([irgeek](https://github.com/irgeek))
|
||||||
|
- Feature request per pod [\#1946](https://github.com/fission/fission/pull/1946) ([therahulbhati](https://github.com/therahulbhati))
|
||||||
|
- feat: Add image pull policy when create KEDA connector deployments [\#1944](https://github.com/fission/fission/pull/1944) ([chenjr0719](https://github.com/chenjr0719))
|
||||||
|
- Maintain CRD folder to keep track of Schemas [\#1938](https://github.com/fission/fission/pull/1938) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Feature/router core component pod config [\#1936](https://github.com/fission/fission/pull/1936) ([adamkgray](https://github.com/adamkgray))
|
||||||
|
- Add fields to pod spec [\#1932](https://github.com/fission/fission/pull/1932) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- Multiarch release [\#1929](https://github.com/fission/fission/pull/1929) ([RealHarshThakur](https://github.com/RealHarshThakur))
|
||||||
|
- updated helm charts to v2 and updated prometheus chart url, version [\#1923](https://github.com/fission/fission/pull/1923) ([tusharRepo](https://github.com/tusharRepo))
|
||||||
|
|
||||||
|
|
||||||
|
## [v1.12.0](https://github.com/fission/fission/tree/v1.12.0) (2021-02-11)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/fission/fission/compare/1.12.0...v1.12.0)
|
||||||
|
|
||||||
## [1.12.0](https://github.com/fission/fission/tree/1.12.0) (2021-02-11)
|
## [1.12.0](https://github.com/fission/fission/tree/1.12.0) (2021-02-11)
|
||||||
|
|
||||||
[Full Changelog](https://github.com/fission/fission/compare/v1.12.0...1.12.0)
|
[Full Changelog](https://github.com/fission/fission/compare/v1.12.0...1.12.0)
|
||||||
|
|||||||
+2
-2
@@ -43,10 +43,10 @@ Parameter | Description | Default
|
|||||||
`routerServiceType` | Type of Fission Router service to use. For minikube, set this to NodePort, elsewhere use LoadBalancer or ClusterIP. | `LoadBalancer`
|
`routerServiceType` | Type of Fission Router service to use. For minikube, set this to NodePort, elsewhere use LoadBalancer or ClusterIP. | `LoadBalancer`
|
||||||
`repository` | Image base repository | `index.docker.io`
|
`repository` | Image base repository | `index.docker.io`
|
||||||
`image` | Fission image repository | `fission/fission-bundle`
|
`image` | Fission image repository | `fission/fission-bundle`
|
||||||
`imageTag` | Fission image tag | `1.13.0`
|
`imageTag` | Fission image tag | `1.13.1`
|
||||||
`pullPolicy` | Image pull policy | `IfNotPresent`
|
`pullPolicy` | Image pull policy | `IfNotPresent`
|
||||||
`fetcher.image` | Fission fetcher repository | `fission/fetcher`
|
`fetcher.image` | Fission fetcher repository | `fission/fetcher`
|
||||||
`fetcher.imageTag` | Fission fetcher image tag | `1.13.0`
|
`fetcher.imageTag` | Fission fetcher image tag | `1.13.1`
|
||||||
`controllerPort` | Fission Controller service port | `31313`
|
`controllerPort` | Fission Controller service port | `31313`
|
||||||
`routerPort` | Fission Router service port | ` 31314`
|
`routerPort` | Fission Router service port | ` 31314`
|
||||||
`functionNamespace` | Namespace in which to run fission functions (this is different from the release namespace) | `fission-function`
|
`functionNamespace` | Namespace in which to run fission functions (this is different from the release namespace) | `fission-function`
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: fission-all
|
name: fission-all
|
||||||
version: 1.13.0
|
version: 1.13.1
|
||||||
description: Fission is a fast serverless framework for Kubernetes.
|
description: Fission is a fast serverless framework for Kubernetes.
|
||||||
keywords:
|
keywords:
|
||||||
- fission
|
- fission
|
||||||
@@ -12,7 +12,7 @@ maintainers:
|
|||||||
- name: Sanket Sudake
|
- name: Sanket Sudake
|
||||||
email: sanket@infracloud.io
|
email: sanket@infracloud.io
|
||||||
engine: gotpl
|
engine: gotpl
|
||||||
appVersion: 1.13.0
|
appVersion: 1.13.1
|
||||||
type: application
|
type: application
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: prometheus
|
- name: prometheus
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ image: fission/fission-bundle
|
|||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
## Fission image version
|
## Fission image version
|
||||||
imageTag: 1.13.0
|
imageTag: 1.13.1
|
||||||
|
|
||||||
## Port at which Fission controller service should be exposed
|
## Port at which Fission controller service should be exposed
|
||||||
controllerPort: 31313
|
controllerPort: 31313
|
||||||
@@ -50,7 +50,7 @@ fetcher:
|
|||||||
## Fetcher repository
|
## Fetcher repository
|
||||||
image: fission/fetcher
|
image: fission/fetcher
|
||||||
## Fetcher image version
|
## Fetcher image version
|
||||||
imageTag: 1.13.0
|
imageTag: 1.13.1
|
||||||
|
|
||||||
## Fetcher is only for to downloading or uploading archive.
|
## Fetcher is only for to downloading or uploading archive.
|
||||||
## Normally, you don't need to change the value here, unless necessary.
|
## Normally, you don't need to change the value here, unless necessary.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: fission-core
|
name: fission-core
|
||||||
version: 1.13.0
|
version: 1.13.1
|
||||||
description: Fission is a fast serverless framework for Kubernetes.
|
description: Fission is a fast serverless framework for Kubernetes.
|
||||||
keywords:
|
keywords:
|
||||||
- fission
|
- fission
|
||||||
@@ -12,7 +12,7 @@ maintainers:
|
|||||||
- name: Sanket Sudake
|
- name: Sanket Sudake
|
||||||
email: sanket@infracloud.io
|
email: sanket@infracloud.io
|
||||||
engine: gotpl
|
engine: gotpl
|
||||||
appVersion: 1.13.0
|
appVersion: 1.13.1
|
||||||
type: application
|
type: application
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: prometheus
|
- name: prometheus
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ repository: index.docker.io
|
|||||||
image: fission/fission-bundle
|
image: fission/fission-bundle
|
||||||
|
|
||||||
## Fission image version
|
## Fission image version
|
||||||
imageTag: 1.13.0
|
imageTag: 1.13.1
|
||||||
|
|
||||||
## Image pull policy
|
## Image pull policy
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
@@ -43,7 +43,7 @@ fetcher:
|
|||||||
## Fetcher repository
|
## Fetcher repository
|
||||||
image: fission/fetcher
|
image: fission/fetcher
|
||||||
## Fetcher image version
|
## Fetcher image version
|
||||||
imageTag: 1.13.0
|
imageTag: 1.13.1
|
||||||
|
|
||||||
## Fetcher is only for to downloading or uploading archive.
|
## Fetcher is only for to downloading or uploading archive.
|
||||||
## Normally, you don't need to change the value here, unless necessary.
|
## Normally, you don't need to change the value here, unless necessary.
|
||||||
|
|||||||
+1
-6
@@ -34,12 +34,7 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("can't initialize zap logger: %v", err)
|
log.Fatalf("can't initialize zap logger: %v", err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer logger.Sync()
|
||||||
err := logger.Sync()
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
shareVolume := os.Args[1]
|
shareVolume := os.Args[1]
|
||||||
if _, err := os.Stat(shareVolume); err != nil {
|
if _, err := os.Stat(shareVolume); err != nil {
|
||||||
|
|||||||
+1
-6
@@ -33,11 +33,6 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("can't initialize zap logger: %v", err)
|
log.Fatalf("can't initialize zap logger: %v", err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer logger.Sync()
|
||||||
err := logger.Sync()
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
app.Run(logger)
|
app.Run(logger)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -255,12 +255,7 @@ Options:
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("I can't initialize zap logger: %v", err)
|
log.Fatalf("I can't initialize zap logger: %v", err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer logger.Sync()
|
||||||
err := logger.Sync()
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
version := fmt.Sprintf("Fission Bundle Version: %v", info.BuildInfo().String())
|
version := fmt.Sprintf("Fission Bundle Version: %v", info.BuildInfo().String())
|
||||||
arguments, err := docopt.ParseArgs(usage, nil, version)
|
arguments, err := docopt.ParseArgs(usage, nil, version)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -42,12 +42,7 @@ func main() {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("can't initialize zap logger: %v", err)
|
log.Fatalf("can't initialize zap logger: %v", err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer logger.Sync()
|
||||||
err := logger.Sync()
|
|
||||||
if err != nil {
|
|
||||||
log.Fatal(err)
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
|
|
||||||
usage := `Package to perform operations needed prior to fission installation
|
usage := `Package to perform operations needed prior to fission installation
|
||||||
Usage:
|
Usage:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Handler is the entry point for this fission function
|
// Handler is the entry point for this fission function
|
||||||
func Handler(w http.ResponseWriter, r *http.Request) { //nolint: deadcode
|
func Handler(w http.ResponseWriter, r *http.Request) { //nolint:golint,unused,deadcode
|
||||||
msg := "Hello, CNCF Webinar!\n"
|
msg := "Hello, CNCF Webinar!\n"
|
||||||
_, err := w.Write([]byte(msg))
|
_, err := w.Write([]byte(msg))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
+58
-54
@@ -3,11 +3,11 @@
|
|||||||
set -e
|
set -e
|
||||||
#set -x
|
#set -x
|
||||||
|
|
||||||
DIR=$(realpath $(dirname $0))/../
|
DIR=$(realpath $(dirname "$0"))/../
|
||||||
BUILDDIR=$(realpath $DIR)/build
|
BUILDDIR=$(realpath "$DIR")/build
|
||||||
|
|
||||||
artifacts=()
|
artifacts=()
|
||||||
source $(realpath ${DIR}/test/init_tools.sh)
|
source $(realpath "${DIR}"/test/init_tools.sh)
|
||||||
|
|
||||||
doit() {
|
doit() {
|
||||||
echo "! $*"
|
echo "! $*"
|
||||||
@@ -18,7 +18,7 @@ doit() {
|
|||||||
check_branch() {
|
check_branch() {
|
||||||
local version=$1
|
local version=$1
|
||||||
curr_branch=$(git rev-parse --abbrev-ref HEAD)
|
curr_branch=$(git rev-parse --abbrev-ref HEAD)
|
||||||
if [ $curr_branch != "release-${version}" ]; then
|
if [ "$curr_branch" != "release-${version}" ]; then
|
||||||
echo "Not on release-${version} branch."
|
echo "Not on release-${version} branch."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -69,22 +69,18 @@ update_github_charts_repo() {
|
|||||||
local version=$1
|
local version=$1
|
||||||
local chartsrepo=$2
|
local chartsrepo=$2
|
||||||
|
|
||||||
pushd $chartsrepo
|
pushd "$chartsrepo"
|
||||||
cp $BUILDDIR/charts/fission-all-${version}.tgz .
|
cp "$BUILDDIR"/charts/fission-all-"${version}".tgz .
|
||||||
cp $BUILDDIR/charts/fission-core-${version}.tgz .
|
cp "$BUILDDIR"/charts/fission-core-"${version}".tgz .
|
||||||
./index.sh
|
./index.sh
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
|
|
||||||
gh_release() {
|
gh_release() {
|
||||||
local version=$1
|
local version=$1
|
||||||
|
cp "${DIR}"/hack/notes.md relnotes.md
|
||||||
RELFILES=""
|
create_downloads_table ${version} >> relnotes.md
|
||||||
for relfile in ${artifacts[@]}; do
|
doit gh release create "$version" --draft --prerelease --title "$version" --notes-file $(realpath "${DIR}"/relnotes.md) --target "$gitcommit" "${artifacts[@]}"
|
||||||
RELFILES+="\"${relfile}\" "
|
|
||||||
done
|
|
||||||
|
|
||||||
doit gh release create $version --draft --prerelease --title $version --notes-file $(realpath ${DIR}/hack/notes.md) --target $gitcommit ${RELFILES}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
generate_changelog() {
|
generate_changelog() {
|
||||||
@@ -95,15 +91,13 @@ generate_changelog() {
|
|||||||
echo "[Documentation](https://docs.fission.io/)" >>new_CHANGELOG.md
|
echo "[Documentation](https://docs.fission.io/)" >>new_CHANGELOG.md
|
||||||
echo
|
echo
|
||||||
|
|
||||||
create_downloads_table ${version} >>new_CHANGELOG.md
|
|
||||||
|
|
||||||
# generate changelog from github
|
# generate changelog from github
|
||||||
github_changelog_generator -u fission -p fission -t ${GITHUB_TOKEN} --future-release ${version} --no-issues -o tmp_CHANGELOG.md
|
github_changelog_generator -u fission -p fission -t "${GITHUB_TOKEN}" --future-release "${version}" --no-issues -o tmp_CHANGELOG.md
|
||||||
sed -i '$ d' tmp_CHANGELOG.md
|
sed -i '$ d' tmp_CHANGELOG.md
|
||||||
|
|
||||||
# concatenate two files
|
# concatenate two files
|
||||||
cat tmp_CHANGELOG.md >>new_CHANGELOG.md
|
cat tmp_CHANGELOG.md >>new_CHANGELOG.md
|
||||||
mv new_CHANGELOG.md ${DIR}/CHANGELOG.md
|
mv new_CHANGELOG.md "${DIR}"/CHANGELOG.md
|
||||||
|
|
||||||
rm tmp_CHANGELOG.md
|
rm tmp_CHANGELOG.md
|
||||||
}
|
}
|
||||||
@@ -112,7 +106,9 @@ create_downloads_table() {
|
|||||||
local release_tag=$1
|
local release_tag=$1
|
||||||
local url_prefix="https://github.com/fission/fission/releases/download"
|
local url_prefix="https://github.com/fission/fission/releases/download"
|
||||||
|
|
||||||
echo "## Downloads for ${version}"
|
echo
|
||||||
|
echo
|
||||||
|
echo "#### Downloads for ${version}"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
echo
|
echo
|
||||||
@@ -130,33 +126,28 @@ release_environment_check() {
|
|||||||
local version=$1
|
local version=$1
|
||||||
local chartsrepo=$2
|
local chartsrepo=$2
|
||||||
|
|
||||||
check_branch $version
|
check_branch "$version"
|
||||||
check_clean
|
check_clean
|
||||||
|
|
||||||
if [ ! -f $HOME/.github-token ]; then
|
if [ ! -f "$HOME"/.github-token ]; then
|
||||||
echo "Error finding github access token at ${HOME}/.github-token"
|
echo "Error finding github access token at ${HOME}/.github-token"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d $chartsrepo ]; then
|
if [ ! -d "$chartsrepo" ]; then
|
||||||
echo "Error finding chart repo at $chartsrepo"
|
echo "Error finding chart repo at $chartsrepo"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -d $FISSION_HOME ]; then
|
|
||||||
echo "The FISSION_HOME variable should be set to directory where Fission and fission-charts are checked out"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
build_charts() {
|
build_charts() {
|
||||||
local version=$1
|
local version=$1
|
||||||
mkdir -p $BUILDDIR/charts
|
mkdir -p "$BUILDDIR"/charts
|
||||||
pushd $DIR/charts
|
pushd "$DIR"/charts
|
||||||
find . -iname *.~?~ | xargs -r rm
|
find . -iname *.~?~ | xargs -r rm
|
||||||
for c in fission-all fission-core; do
|
for c in fission-all fission-core; do
|
||||||
doit helm package -u $c/
|
doit helm package -u $c/
|
||||||
mv *.tgz $BUILDDIR/charts/
|
mv ./*.tgz "$BUILDDIR"/charts/
|
||||||
done
|
done
|
||||||
popd
|
popd
|
||||||
}
|
}
|
||||||
@@ -164,11 +155,11 @@ build_charts() {
|
|||||||
build_yamls() {
|
build_yamls() {
|
||||||
local version=$1
|
local version=$1
|
||||||
|
|
||||||
mkdir -p ${BUILDDIR}/yamls
|
mkdir -p "${BUILDDIR}"/yamls
|
||||||
pushd ${DIR}/charts
|
pushd "${DIR}"/charts
|
||||||
find . -iname *.~?~ | xargs -r rm
|
find . -iname *.~?~ | xargs -r rm
|
||||||
|
|
||||||
releaseName=fission-$(echo ${version} | sed 's/\./-/g')
|
releaseName=fission-$(echo "${version}" | sed 's/\./-/g')
|
||||||
|
|
||||||
for c in fission-all fission-core; do
|
for c in fission-all fission-core; do
|
||||||
# fetch dependencies
|
# fetch dependencies
|
||||||
@@ -176,15 +167,26 @@ build_yamls() {
|
|||||||
doit helm dependency update
|
doit helm dependency update
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
echo "Release name", "$releaseName"
|
||||||
|
cmdprefix="helm template ${releaseName} ${c} --namespace fission --validate"
|
||||||
|
|
||||||
# for minikube and other environments that don't support LoadBalancer
|
# for minikube and other environments that don't support LoadBalancer
|
||||||
doit helm template ${c} -n ${releaseName} --namespace fission --set analytics=false,analyticsNonHelmInstall=true,serviceType=NodePort,routerServiceType=NodePort >${c}-${version}-minikube.yaml
|
command="$cmdprefix --set analytics=false,analyticsNonHelmInstall=true,serviceType=NodePort,routerServiceType=NodePort"
|
||||||
|
echo "$command"
|
||||||
|
$command >${c}-"${version}"-minikube.yaml
|
||||||
|
|
||||||
# for environments that support LoadBalancer
|
# for environments that support LoadBalancer
|
||||||
doit helm template ${c} -n ${releaseName} --namespace fission --set analytics=false,analyticsNonHelmInstall=true >${c}-${version}.yaml
|
command="$cmdprefix --set analytics=false,analyticsNonHelmInstall=true"
|
||||||
|
echo "$command"
|
||||||
|
$command >${c}-"${version}".yaml
|
||||||
|
|
||||||
# for OpenShift
|
# for OpenShift
|
||||||
doit helm template ${c} -n ${releaseName} --namespace fission --set analytics=false,analyticsNonHelmInstall=true,logger.enableSecurityContext=true,prometheus.enabled=false >${c}-${version}-openshift.yaml
|
command="$cmdprefix --set analytics=false,analyticsNonHelmInstall=true,logger.enableSecurityContext=true,prometheus.enabled=false"
|
||||||
|
echo "$command"
|
||||||
|
$command >${c}-"${version}"-openshift.yaml
|
||||||
|
|
||||||
# copy yaml files to build directory
|
# copy yaml files to build directory
|
||||||
mv *.yaml ${BUILDDIR}/yamls/
|
mv ./*.yaml "${BUILDDIR}"/yamls/
|
||||||
done
|
done
|
||||||
|
|
||||||
popd
|
popd
|
||||||
@@ -212,12 +214,12 @@ build_all() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e $BUILDDIR ]; then
|
if [ -e "$BUILDDIR" ]; then
|
||||||
echo "Removing existing build dir ($BUILDDIR)."
|
echo "Removing existing build dir ($BUILDDIR)."
|
||||||
rm -rf $BUILDDIR
|
rm -rf "$BUILDDIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $BUILDDIR
|
mkdir -p "$BUILDDIR"
|
||||||
|
|
||||||
# generate swagger (OpenApi 2.0) doc before building bundle image
|
# generate swagger (OpenApi 2.0) doc before building bundle image
|
||||||
VERSION=$version TIMESTAMP=$date COMMITSHA=$gitcommit make generate-swagger-doc
|
VERSION=$version TIMESTAMP=$date COMMITSHA=$gitcommit make generate-swagger-doc
|
||||||
@@ -240,7 +242,7 @@ build_images() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
local gitcommit=$3
|
local gitcommit=$3
|
||||||
if [ -z "gitcommit" ]; then
|
if [ -z "$gitcommit" ]; then
|
||||||
echo "Git commit unspecified"
|
echo "Git commit unspecified"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -259,7 +261,7 @@ check_commands() {
|
|||||||
export GITHUB_TOKEN=$(cat ~/.github-token)
|
export GITHUB_TOKEN=$(cat ~/.github-token)
|
||||||
|
|
||||||
version=$1
|
version=$1
|
||||||
if [ -z $version ]; then
|
if [ -z "$version" ]; then
|
||||||
echo "Release version not mentioned"
|
echo "Release version not mentioned"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -268,23 +270,25 @@ date=$(date -u +'%Y-%m-%dT%H:%M:%SZ')
|
|||||||
gitcommit=$(git rev-parse HEAD)
|
gitcommit=$(git rev-parse HEAD)
|
||||||
|
|
||||||
chartsrepo=$2
|
chartsrepo=$2
|
||||||
if [ -z $chartsrepo ]; then
|
if [ -z "$chartsrepo" ]; then
|
||||||
chartsrepo="$DIR../fission-charts"
|
chartsrepo="$DIR../fission-charts"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
check_commands
|
check_commands
|
||||||
release_environment_check $version $chartsrepo
|
release_environment_check "$version" "$chartsrepo"
|
||||||
build_all $version $date $gitcommit
|
build_all "$version" "$date" "$gitcommit"
|
||||||
build_images $version $date $gitcommit
|
build_charts "$version"
|
||||||
build_charts $version
|
build_yamls "$version"
|
||||||
build_yamls $version
|
|
||||||
|
|
||||||
attach_github_release_cli $version
|
attach_github_release_cli "$version"
|
||||||
attach_github_release_charts $version
|
attach_github_release_charts "$version"
|
||||||
attach_github_release_yamls $version
|
attach_github_release_yamls "$version"
|
||||||
update_github_charts_repo $version $chartsrepo
|
update_github_charts_repo "$version" "$chartsrepo"
|
||||||
generate_changelog $version
|
gh_release "$version"
|
||||||
gh_release $version
|
|
||||||
|
generate_changelog "$version"
|
||||||
|
|
||||||
|
build_images "$version" "$date" "$gitcommit"
|
||||||
|
|
||||||
echo "############ DONE #############"
|
echo "############ DONE #############"
|
||||||
echo "Congratulation, ${version} is ready to ship !!"
|
echo "Congratulation, ${version} is ready to ship !!"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package v1
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/fission/fission/pkg/controller/client/rest"
|
"github.com/fission/fission/pkg/controller/client/rest"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package v1
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/fission/fission/pkg/controller/client/rest"
|
"github.com/fission/fission/pkg/controller/client/rest"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package fake
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|
||||||
v1 "github.com/fission/fission/pkg/controller/client/v1"
|
v1 "github.com/fission/fission/pkg/controller/client/v1"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package v1
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/fission/fission/pkg/controller/client/rest"
|
"github.com/fission/fission/pkg/controller/client/rest"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package v1
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/fission/fission/pkg/controller/client/rest"
|
"github.com/fission/fission/pkg/controller/client/rest"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package v1
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/fission/fission/pkg/controller/client/rest"
|
"github.com/fission/fission/pkg/controller/client/rest"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package v1
|
|||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/fission/fission/pkg/controller/client/rest"
|
"github.com/fission/fission/pkg/controller/client/rest"
|
||||||
|
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
|
|||||||
@@ -18,9 +18,10 @@ package timetrigger
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/fission/fission/pkg/fission-cli/cmd"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/fission/fission/pkg/fission-cli/cmd"
|
||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/robfig/cron"
|
"github.com/robfig/cron"
|
||||||
uuid "github.com/satori/go.uuid"
|
uuid "github.com/satori/go.uuid"
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package encoder
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
|
||||||
"github.com/ghodss/yaml"
|
"github.com/ghodss/yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -574,13 +574,16 @@ func (fh functionHandler) getServiceEntryFromCache() (serviceUrl *url.URL, err e
|
|||||||
}
|
}
|
||||||
|
|
||||||
// addServiceEntryToCache add service url entry to cache
|
// addServiceEntryToCache add service url entry to cache
|
||||||
func (fn functionHandler) addServiceEntryToCache(serviceUrl *url.URL) {
|
func (fh functionHandler) addServiceEntryToCache(serviceURL *url.URL) {
|
||||||
fn.fmap.assign(&fn.function.ObjectMeta, serviceUrl)
|
fh.fmap.assign(&fh.function.ObjectMeta, serviceURL)
|
||||||
}
|
}
|
||||||
|
|
||||||
// removeServiceEntryFromCache removes service url entry from cache
|
// removeServiceEntryFromCache removes service url entry from cache
|
||||||
func (fn functionHandler) removeServiceEntryFromCache() {
|
func (fh functionHandler) removeServiceEntryFromCache() {
|
||||||
fn.fmap.remove(&fn.function.ObjectMeta)
|
err := fh.fmap.remove(&fh.function.ObjectMeta)
|
||||||
|
if err != nil {
|
||||||
|
fh.logger.Error("Error removing key:", zap.Error(err))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (fh functionHandler) getServiceEntryFromExecutor() (serviceUrl *url.URL, err error) {
|
func (fh functionHandler) getServiceEntryFromExecutor() (serviceUrl *url.URL, err error) {
|
||||||
|
|||||||
+1
-1
@@ -53,7 +53,7 @@ echo "Successfully pull env and builder images"
|
|||||||
export FAILURES=0
|
export FAILURES=0
|
||||||
main() {
|
main() {
|
||||||
set +e
|
set +e
|
||||||
export TIMEOUT=1000 # 15 minutes per test
|
export TIMEOUT=1200 # 20 minutes per test
|
||||||
# run tests without newdeploy in parallel.
|
# run tests without newdeploy in parallel.
|
||||||
export JOBS=6
|
export JOBS=6
|
||||||
source $ROOT/test/run_test.sh \
|
source $ROOT/test/run_test.sh \
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Handler is the entry point for this fission function
|
// Handler is the entry point for this fission function
|
||||||
func Handler(w http.ResponseWriter, r *http.Request) { //nolint: deadcode
|
func Handler(w http.ResponseWriter, r *http.Request) { //nolint:golint,unused,deadcode
|
||||||
bytes, err := ioutil.ReadAll(r.Body)
|
bytes, err := ioutil.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(w, err.Error(), http.StatusInternalServerError)
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
|||||||
Reference in New Issue
Block a user