Skip to content

Commit

Permalink
[oapi] use python-experimental again (#2927)
Browse files Browse the repository at this point in the history
* use experimental python again, use yelp's image frozen from certain date because bugfix didn't hit any release tags in official repo

* fix _with_http_info calls and autoscale body param for new generated code

* check swagger and oapi sync against master branch
  • Loading branch information
Maksym Melnychok committed Oct 1, 2020
1 parent 4ff60cd commit 8c058d5
Show file tree
Hide file tree
Showing 104 changed files with 12,216 additions and 11,388 deletions.
12 changes: 6 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -88,12 +88,12 @@ k8s_itests: .paasta/bin/activate

openapi-codegen:
rm -rf paasta_tools/paastaapi
docker pull openapitools/openapi-generator-cli:v5.0.0-beta2
docker run --rm -i --user `id -u`:`id -g` -v `pwd`:/src \
openapitools/openapi-generator-cli:v5.0.0-beta2 generate \
-i /src/paasta_tools/api/api_docs/oapi.yaml \
-g python \
--package-name paasta_tools.paastaapi \
-o /src/temp-openapi-client
yelp/openapi-generator-cli:20200929 \
generate \
-i /src/paasta_tools/api/api_docs/oapi.yaml \
-g python-experimental \
--package-name paasta_tools.paastaapi \
-o /src/temp-openapi-client
mv temp-openapi-client/paasta_tools/paastaapi paasta_tools/paastaapi
rm -rf temp-openapi-client
9 changes: 3 additions & 6 deletions paasta_tools/api/api_docs/oapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ servers:
host: {default: localhost}
scheme: {default: http, enum: [http, https]}
tags:
- description: Information about a paasta service.
- description: Information about a paasta service
name: service
components:
schemas:
Expand Down Expand Up @@ -926,11 +926,8 @@ paths:
schema:
type: object
properties:
json_body:
type: object
properties:
minutes:
type: integer
minutes:
type: integer
required: true
responses:
"200":
Expand Down
2 changes: 1 addition & 1 deletion paasta_tools/api/api_docs/swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"tags": [
{
"name": "service",
"description": "Information about a paasta service."
"description": "Information about a paasta service"
}
],
"paths": {
Expand Down
21 changes: 11 additions & 10 deletions paasta_tools/api/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@

from dataclasses import dataclass

import paasta_tools.paastaapi.apis as paastaapis
from paasta_tools import paastaapi
from paasta_tools.secret_tools import get_secret_provider
from paasta_tools.utils import load_system_paasta_config
Expand Down Expand Up @@ -124,11 +125,11 @@ def get_paasta_ssl_opts(

@dataclass
class PaastaOApiClient:
autoscaler: paastaapi.AutoscalerApi
default: paastaapi.DefaultApi
marathon_dashboard: paastaapi.MarathonDashboardApi
resources: paastaapi.ResourcesApi
service: paastaapi.ServiceApi
autoscaler: paastaapis.AutoscalerApi
default: paastaapis.DefaultApi
marathon_dashboard: paastaapis.MarathonDashboardApi
resources: paastaapis.ResourcesApi
service: paastaapis.ServiceApi
api_error: type
connection_error: type
timeout_error: type
Expand Down Expand Up @@ -164,11 +165,11 @@ def get_paasta_oapi_client(

client = paastaapi.ApiClient(configuration=config)
return PaastaOApiClient(
autoscaler=paastaapi.AutoscalerApi(client),
default=paastaapi.DefaultApi(client),
marathon_dashboard=paastaapi.MarathonDashboardApi(client),
resources=paastaapi.ResourcesApi(client),
service=paastaapi.ServiceApi(client),
autoscaler=paastaapis.AutoscalerApi(client),
default=paastaapis.DefaultApi(client),
marathon_dashboard=paastaapis.MarathonDashboardApi(client),
resources=paastaapis.ResourcesApi(client),
service=paastaapis.ServiceApi(client),
api_error=paastaapi.ApiException,
connection_error=paastaapi.ApiException,
timeout_error=paastaapi.ApiException,
Expand Down
14 changes: 9 additions & 5 deletions paasta_tools/autoscaling/pause_service_autoscaler.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import pytz
from tzlocal import get_localzone as tzlocal_get_localzone

from paasta_tools import paastaapi
import paasta_tools.paastaapi.models as paastamodels
from paasta_tools.api import client


Expand All @@ -29,7 +29,9 @@ def get_service_autoscale_pause_time(cluster):
if not api:
print("Could not connect to paasta api. Maybe you misspelled the cluster?")
return 1
pause_time, status, _ = api.default.get_service_autoscaler_pause_with_http_info()
pause_time, status, _ = api.default.get_service_autoscaler_pause(
_return_http_data_only=False
)
if status == 500:
print("Could not connect to zookeeper server")
return 2
Expand All @@ -48,8 +50,8 @@ def update_service_autoscale_pause_time(cluster, mins):
if not api:
print("Could not connect to paasta api. Maybe you misspelled the cluster?")
return 1
res, status, _ = api.default.update_service_autoscaler_pause_with_http_info(
paastaapi.ServiceAutoscalerPauseJsonBody(minutes=mins)
res, status, _ = api.default.update_service_autoscaler_pause(
paastamodels.InlineObject(minutes=int(mins)), _return_http_data_only=False
)
if status == 500:
print("Could not connect to zookeeper server")
Expand All @@ -64,7 +66,9 @@ def delete_service_autoscale_pause_time(cluster):
if not api:
print("Could not connect to paasta api. Maybe you misspelled the cluster?")
return 1
res, status, _ = api.default.delete_service_autoscaler_pause_with_http_info()
res, status, _ = api.default.delete_service_autoscaler_pause(
_return_http_data_only=False
)
if status == 500:
print("Could not connect to zookeeper server")
return 2
Expand Down
17 changes: 10 additions & 7 deletions paasta_tools/cli/cmds/autoscale.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
# limitations under the License.
import logging

from paasta_tools import paastaapi
import paasta_tools.paastaapi.models as paastamodels
from paasta_tools.api import client
from paasta_tools.cli.utils import figure_out_service_name
from paasta_tools.cli.utils import lazy_choices_completer
Expand Down Expand Up @@ -66,14 +66,17 @@ def paasta_autoscale(args):
try:
if args.set is None:
log.debug("Getting the current autoscaler count...")
res, status, _ = api.autoscaler.get_autoscaler_count_with_http_info(
service=service, instance=args.instance
res, status, _ = api.autoscaler.get_autoscaler_count(
service=service, instance=args.instance, _return_http_data_only=False
)
else:
log.debug(f"Setting desired instances to {args.set}.")
msg = paastaapi.AutoscalerCountMsg(desired_instances=int(args.set))
res, status, _ = api.autoscaler.update_autoscaler_count_with_http_info(
service=service, instance=args.instance, autoscaler_count_msg=msg
msg = paastamodels.AutoscalerCountMsg(desired_instances=int(args.set))
res, status, _ = api.autoscaler.update_autoscaler_count(
service=service,
instance=args.instance,
autoscaler_count_msg=msg,
_return_http_data_only=False,
)

_log_audit(
Expand All @@ -83,7 +86,7 @@ def paasta_autoscale(args):
instance=args.instance,
cluster=args.cluster,
)
except paastaapi.ApiException as exc:
except api.api_error as exc:
status = exc.status

if not 200 <= status <= 299:
Expand Down
2 changes: 1 addition & 1 deletion paasta_tools/contrib/check_swagger_oapi_sync.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash
set -uo pipefail

diff_names=$(git diff HEAD~ --name-only)
diff_names=$(git diff origin/master --name-only)
touched_schemas=$(
echo "$diff_names" |
grep 'paasta_tools/api/api_docs/\(swagger.json\|oapi.yaml\)' |
Expand Down
55 changes: 5 additions & 50 deletions paasta_tools/paastaapi/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,63 +12,18 @@
"""


from __future__ import absolute_import

__version__ = "1.0.0"

# import apis into sdk package
from paasta_tools.paastaapi.api.autoscaler_api import AutoscalerApi
from paasta_tools.paastaapi.api.default_api import DefaultApi
from paasta_tools.paastaapi.api.marathon_dashboard_api import MarathonDashboardApi
from paasta_tools.paastaapi.api.resources_api import ResourcesApi
from paasta_tools.paastaapi.api.service_api import ServiceApi

# import ApiClient
from paasta_tools.paastaapi.api_client import ApiClient

# import Configuration
from paasta_tools.paastaapi.configuration import Configuration

# import exceptions
from paasta_tools.paastaapi.exceptions import OpenApiException
from paasta_tools.paastaapi.exceptions import ApiAttributeError
from paasta_tools.paastaapi.exceptions import ApiTypeError
from paasta_tools.paastaapi.exceptions import ApiValueError
from paasta_tools.paastaapi.exceptions import ApiKeyError
from paasta_tools.paastaapi.exceptions import ApiAttributeError
from paasta_tools.paastaapi.exceptions import ApiException
# import models into sdk package
from paasta_tools.paastaapi.models.adhoc_launch_history import AdhocLaunchHistory
from paasta_tools.paastaapi.models.autoscaler_count_msg import AutoscalerCountMsg
from paasta_tools.paastaapi.models.deploy_queue import DeployQueue
from paasta_tools.paastaapi.models.deploy_queue_service_instance import DeployQueueServiceInstance
from paasta_tools.paastaapi.models.envoy_backend import EnvoyBackend
from paasta_tools.paastaapi.models.envoy_location import EnvoyLocation
from paasta_tools.paastaapi.models.envoy_status import EnvoyStatus
from paasta_tools.paastaapi.models.float_and_error import FloatAndError
from paasta_tools.paastaapi.models.hpa_metric import HPAMetric
from paasta_tools.paastaapi.models.inline_object import InlineObject
from paasta_tools.paastaapi.models.inline_response200 import InlineResponse200
from paasta_tools.paastaapi.models.inline_response2001 import InlineResponse2001
from paasta_tools.paastaapi.models.instance_status import InstanceStatus
from paasta_tools.paastaapi.models.instance_status_flink import InstanceStatusFlink
from paasta_tools.paastaapi.models.instance_status_kafkacluster import InstanceStatusKafkacluster
from paasta_tools.paastaapi.models.instance_status_kubernetes import InstanceStatusKubernetes
from paasta_tools.paastaapi.models.instance_status_kubernetes_autoscaling_status import InstanceStatusKubernetesAutoscalingStatus
from paasta_tools.paastaapi.models.instance_status_marathon import InstanceStatusMarathon
from paasta_tools.paastaapi.models.instance_status_tron import InstanceStatusTron
from paasta_tools.paastaapi.models.integer_and_error import IntegerAndError
from paasta_tools.paastaapi.models.kubernetes_container import KubernetesContainer
from paasta_tools.paastaapi.models.kubernetes_pod import KubernetesPod
from paasta_tools.paastaapi.models.kubernetes_replica_set import KubernetesReplicaSet
from paasta_tools.paastaapi.models.marathon_app_status import MarathonAppStatus
from paasta_tools.paastaapi.models.marathon_autoscaling_info import MarathonAutoscalingInfo
from paasta_tools.paastaapi.models.marathon_dashboard_item import MarathonDashboardItem
from paasta_tools.paastaapi.models.marathon_mesos_nonrunning_task import MarathonMesosNonrunningTask
from paasta_tools.paastaapi.models.marathon_mesos_running_task import MarathonMesosRunningTask
from paasta_tools.paastaapi.models.marathon_mesos_status import MarathonMesosStatus
from paasta_tools.paastaapi.models.marathon_task import MarathonTask
from paasta_tools.paastaapi.models.meta_status import MetaStatus
from paasta_tools.paastaapi.models.resource_item import ResourceItem
from paasta_tools.paastaapi.models.resource_value import ResourceValue
from paasta_tools.paastaapi.models.service_autoscaler_pause_json_body import ServiceAutoscalerPauseJsonBody
from paasta_tools.paastaapi.models.smartstack_backend import SmartstackBackend
from paasta_tools.paastaapi.models.smartstack_location import SmartstackLocation
from paasta_tools.paastaapi.models.smartstack_status import SmartstackStatus
from paasta_tools.paastaapi.models.task_tail_lines import TaskTailLines

13 changes: 3 additions & 10 deletions paasta_tools/paastaapi/api/__init__.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
from __future__ import absolute_import

# flake8: noqa

# import apis into api package
from paasta_tools.paastaapi.api.autoscaler_api import AutoscalerApi
from paasta_tools.paastaapi.api.default_api import DefaultApi
from paasta_tools.paastaapi.api.marathon_dashboard_api import MarathonDashboardApi
from paasta_tools.paastaapi.api.resources_api import ResourcesApi
from paasta_tools.paastaapi.api.service_api import ServiceApi
# do not import all apis into this module because that uses a lot of memory and stack frames
# if you need the ability to import all apis from one package, import them with
# from paasta_tools.paastaapi.apis import AutoscalerApi
Loading

0 comments on commit 8c058d5

Please sign in to comment.