Open
Description
I am using this script to start swagger-converter locally:
#!/bin/sh
port=6767
onexit() {
podman stop "${ctid}"
}
trap onexit EXIT
ctid="$(podman run -d -p "${port}":8080 docker.io/swaggerapi/swagger-converter:v1.0.2@sha256:90a122587733a0b802e6c9a7cda33c35115c38694912cce4678c66dff312d6b1)"
# FIXME: swagger-converter stops when connected too early
sleep 5
while ! http --print= HEAD http://localhost:"${port}"/ ; do
sleep 1
done
xdg-open http://localhost:"${port}"/
sleep infinity
If I remove the sleep 5
, swagger-converter will stop the server immediately when receiving the first connection:
http: error: ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) while doing HEAD request to URL: http://localhost:6767/
http: error: ConnectionError: HTTPConnectionPool(host='localhost', port=6767): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7fdcbbe9c810>: Failed to establish a new connection: [Errno 111] Connection refused')) while doing HEAD request to URL: http://localhost:6767/
http: error: ConnectionError: HTTPConnectionPool(host='localhost', port=6767): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f63fb15e6d0>: Failed to establish a new connection: [Errno 111] Connection refused')) while doing HEAD request to URL: http://localhost:6767/
I would expect swagger-converter to gracefully handle also early connection attempts.
Pod logs:
2020-04-08 08:36:26.476:INFO::main: Logging initialized @122ms to org.eclipse.jetty.util.log.StdErrLog
2020-04-08 08:36:26.483:INFO:oejr.Runner:main: Runner
2020-04-08 08:36:26.630:INFO:oejs.Server:main: jetty-9.4.9.v20180320; built: 2018-03-20T12:21:10Z; git: 1f8159b1e4a42d3f79997021ea1609f2fbac6de5; jvm 1.8.0_212-b04
2020-04-08 08:36:27.513:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
2020-04-08 08:36:27.513:INFO:oejs.session:main: No SessionScavenger set, using defaults
2020-04-08 08:36:27.516:INFO:oejs.session:main: Scavenging every 600000ms
loading inflector config from inflector.yaml
08:36:28.160 [main] DEBUG io.swagger.v3.parser.OpenAPIV3Parser - Loaded raw data: ---
openapi: 3.0.0
info:
title: Swagger Converter
description: Converts a 1.x or 2.x Swagger definition to the OpenAPI 3.0.1 format
version: 1.0.2
servers:
- url: "/"
paths:
"/convert":
get:
tags:
- Converter
summary: Convert a swagger definition
description: |
Converts the supplied payload to a 3.0 specification
based on a `url` parameter, which points to a older
specification version
operationId: convertByUrl
parameters:
- name: url
in: query
description: A URL to the swagger definition
required: true
schema:
type: string
responses:
'200':
description: successfully converted schema
content:
"application/json":
schema:
type: object
properties: {}
"application/yaml":
schema:
type: object
properties: {}
'400':
description: 'invaild input schema, or could not be converted'
content:
"*/*":
schema:
type: array
description: error messages
items:
type: string
post:
tags:
- Converter
summary: Convert a swagger definition
description: |
Converts the supplied payload to a 3.0 specification
based on an input specification
operationId: convertByContent
requestBody:
description: the specification to convert
content:
"application/json":
schema:
type: object
properties: {}
"application/yaml":
schema:
type: object
properties: {}
required: true
responses:
'200':
description: successfully converted schema
content:
"application/json":
schema:
type: object
properties: {}
"application/yaml":
schema:
type: object
properties: {}
'400':
description: 'invaild input schema, or could not be converted'
content:
"*/*":
schema:
type: array
description: error messages
items:
type: string
components: {}
08:36:28.172 [main] DEBUG io.swagger.v3.parser.OpenAPIV3Parser - Parsed rootNode: {"openapi":"3.0.0","info":{"title":"Swagger Converter","description":"Converts a 1.x or 2.x Swagger definition to the OpenAPI 3.0.1 format","version":"1.0.2"},"servers":[{"url":"/"}],"paths":{"/convert":{"get":{"tags":["Converter"],"summary":"Convert a swagger definition","description":"Converts the supplied payload to a 3.0 specification\nbased on a `url` parameter, which points to a older\nspecification version\n","operationId":"convertByUrl","parameters":[{"name":"url","in":"query","description":"A URL to the swagger definition","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successfully converted schema","content":{"application/json":{"schema":{"type":"object","properties":{}}},"application/yaml":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"invaild input schema, or could not be converted","content":{"*/*":{"schema":{"type":"array","description":"error messages","items":{"type":"string"}}}}}}},"post":{"tags":["Converter"],"summary":"Convert a swagger definition","description":"Converts the supplied payload to a 3.0 specification\nbased on an input specification\n","operationId":"convertByContent","requestBody":{"description":"the specification to convert","content":{"application/json":{"schema":{"type":"object","properties":{}}},"application/yaml":{"schema":{"type":"object","properties":{}}}},"required":true},"responses":{"200":{"description":"successfully converted schema","content":{"application/json":{"schema":{"type":"object","properties":{}}},"application/yaml":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"invaild input schema, or could not be converted","content":{"*/*":{"schema":{"type":"array","description":"error messages","items":{"type":"string"}}}}}}}}},"components":{}}
08:36:28.197 [main] DEBUG io.swagger.v3.parser.OpenAPIV3Parser - Loaded raw data: ---
openapi: 3.0.0
info:
title: Swagger Converter
description: Converts a 1.x or 2.x Swagger definition to the OpenAPI 3.0.1 format
version: 1.0.2
servers:
- url: "/"
paths:
"/convert":
get:
tags:
- Converter
summary: Convert a swagger definition
description: |
Converts the supplied payload to a 3.0 specification
based on a `url` parameter, which points to a older
specification version
operationId: convertByUrl
parameters:
- name: url
in: query
description: A URL to the swagger definition
required: true
schema:
type: string
responses:
'200':
description: successfully converted schema
content:
"application/json":
schema:
type: object
properties: {}
"application/yaml":
schema:
type: object
properties: {}
'400':
description: 'invaild input schema, or could not be converted'
content:
"*/*":
schema:
type: array
description: error messages
items:
type: string
post:
tags:
- Converter
summary: Convert a swagger definition
description: |
Converts the supplied payload to a 3.0 specification
based on an input specification
operationId: convertByContent
requestBody:
description: the specification to convert
content:
"application/json":
schema:
type: object
properties: {}
"application/yaml":
schema:
type: object
properties: {}
required: true
responses:
'200':
description: successfully converted schema
content:
"application/json":
schema:
type: object
properties: {}
"application/yaml":
schema:
type: object
properties: {}
'400':
description: 'invaild input schema, or could not be converted'
content:
"*/*":
schema:
type: array
description: error messages
items:
type: string
components: {}
08:36:28.201 [main] DEBUG io.swagger.v3.parser.OpenAPIV3Parser - Parsed rootNode: {"openapi":"3.0.0","info":{"title":"Swagger Converter","description":"Converts a 1.x or 2.x Swagger definition to the OpenAPI 3.0.1 format","version":"1.0.2"},"servers":[{"url":"/"}],"paths":{"/convert":{"get":{"tags":["Converter"],"summary":"Convert a swagger definition","description":"Converts the supplied payload to a 3.0 specification\nbased on a `url` parameter, which points to a older\nspecification version\n","operationId":"convertByUrl","parameters":[{"name":"url","in":"query","description":"A URL to the swagger definition","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"successfully converted schema","content":{"application/json":{"schema":{"type":"object","properties":{}}},"application/yaml":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"invaild input schema, or could not be converted","content":{"*/*":{"schema":{"type":"array","description":"error messages","items":{"type":"string"}}}}}}},"post":{"tags":["Converter"],"summary":"Convert a swagger definition","description":"Converts the supplied payload to a 3.0 specification\nbased on an input specification\n","operationId":"convertByContent","requestBody":{"description":"the specification to convert","content":{"application/json":{"schema":{"type":"object","properties":{}}},"application/yaml":{"schema":{"type":"object","properties":{}}}},"required":true},"responses":{"200":{"description":"successfully converted schema","content":{"application/json":{"schema":{"type":"object","properties":{}}},"application/yaml":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"invaild input schema, or could not be converted","content":{"*/*":{"schema":{"type":"array","description":"error messages","items":{"type":"string"}}}}}}}}},"components":{}}
08:36:28.205 [main] DEBUG i.s.oas.inflector.OpenAPIInflector - adding operation for `/convert` GET
08:36:28.210 [main] WARN i.s.o.i.utils.ReflectionUtils - Failed to find class [io.swagger.handler.Converter]
08:36:28.212 [main] INFO i.s.o.i.c.OpenAPIOperationController - looking for method: `public ResponseContext convertByUrl(io.swagger.oas.inflector.models.RequestContext request, String [simple type, class java.lang.String])` in class `io.swagger.handler.ConverterController`
08:36:28.213 [main] DEBUG i.s.o.i.c.OpenAPIOperationController - found class `io.swagger.handler.ConverterController`
08:36:28.215 [main] DEBUG i.s.oas.inflector.OpenAPIInflector - adding operation for `/convert` POST
08:36:28.215 [main] WARN i.s.o.i.utils.ReflectionUtils - Failed to find class [io.swagger.handler.Converter]
08:36:28.216 [main] INFO i.s.o.i.c.OpenAPIOperationController - looking for method: `public ResponseContext convertByContent(io.swagger.oas.inflector.models.RequestContext request, com.fasterxml.jackson.databind.JsonNode [simple type, class com.fasterxml.jackson.databind.JsonNode])` in class `io.swagger.handler.ConverterController`
08:36:28.216 [main] DEBUG i.s.o.i.c.OpenAPIOperationController - found class `io.swagger.handler.ConverterController`
08:36:28.238 [main] WARN i.s.o.i.utils.ReflectionUtils - Failed to find class [io.swagger.handler.Converter]
08:36:28.238 [main] INFO i.s.o.i.c.OpenAPIOperationController - looking for method: `public ResponseContext convertByContent(io.swagger.oas.inflector.models.RequestContext request, com.fasterxml.jackson.databind.JsonNode [simple type, class com.fasterxml.jackson.databind.JsonNode])` in class `io.swagger.handler.ConverterController`
08:36:28.238 [main] DEBUG i.s.o.i.c.OpenAPIOperationController - found class `io.swagger.handler.ConverterController`
2020-04-08 08:36:28.498:INFO:oejsh.ContextHandler:main: Started o.e.j.w.WebAppContext@33a10788{/,file:///tmp/jetty-0.0.0.0-8080-server.war-_-any-8582308719230484926.dir/webapp/,AVAILABLE}{file:///swagger-converter/server.war}
2020-04-08 08:36:28.510:INFO:oejs.AbstractConnector:main: Started ServerConnector@433ffad1{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2020-04-08 08:36:28.511:INFO:oejs.Server:main: Started @2162ms
2020-04-08 08:36:54.169:INFO:oejs.AbstractConnector:Thread-0: Stopped ServerConnector@433ffad1{HTTP/1.1,[http/1.1]}{0.0.0.0:8080}
2020-04-08 08:36:54.170:INFO:oejs.session:Thread-0: Stopped scavenging
2020-04-08 08:36:54.186:INFO:oejsh.ContextHandler:Thread-0: Stopped o.e.j.w.WebAppContext@33a10788{/,null,UNAVAILABLE}{file:///swagger-converter/server.war}
Metadata
Assignees
Labels
No labels