Source code for q2_sdk.hq.db.zone_wedge_address_config

import json
from argparse import _SubParsersAction
from functools import partial
from typing import Optional

from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from q2_sdk.core.exceptions import DatabaseDataError
from q2_sdk.hq.models.hq_params.stored_procedure import Param
from q2_sdk.hq.table_row import TableRow

from .db_object import DbObject

D_TYPES = ExecuteStoredProcedure.DataType


[docs] class ZoneWedgeAddressConfigRow(TableRow): ZoneWedgeAddressID: int WedgeAddressID: int ZoneID: int Config: str
[docs] class ZoneWedgeAddressConfig(DbObject): # GET_BY_NAME_KEY = "column in the db response" NAME = "ZoneWedgeAddressConfig" REPRESENTATION_ROW_CLASS = ZoneWedgeAddressConfigRow
[docs] def add_arguments(self, parser: _SubParsersAction): subparser = parser.add_parser("get_zone_wedge_address_configs_by_zone_id") subparser.set_defaults(parser="get_by_zone_id") subparser.set_defaults( func=partial(self.get_all_by_zone_id, serialize_for_cli=True) ) subparser.add_argument("zone_id", help="Q2_Zone.ZoneID") subparser = parser.add_parser( "get_zone_wedge_address_configs_by_wedge_address_id" ) subparser.set_defaults(parser="get_by_wedge_address") subparser.set_defaults( func=partial(self.get_all_by_wedge_address, serialize_for_cli=True) ) subparser.add_argument( "-i", "--wedge-address-id", help="Q2_WedgeAddress.WedgeAddressID" ) subparser.add_argument( "-n", "--wedge-address-name", help="Q2_WedgeAddress.WedgeAddressTypeName" ) subparser = parser.add_parser("get_zone_wedge_address_config") subparser.set_defaults(parser="get") subparser.set_defaults(func=partial(self.get, serialize_for_cli=True)) subparser.add_argument( "wedge_address_id", help="Q2_WedgeAddress.WedgeAddressID" ) subparser.add_argument("zone_id", help="Q2_Zone.ZoneID")
[docs] async def get( self, wedge_address_id: int, zone_id: int, serialize_for_cli=False ) -> ZoneWedgeAddressConfigRow: params = [] Param(wedge_address_id, D_TYPES.Int, "wedge_address_id").add_to_param_list( params ) Param(zone_id, D_TYPES.Int, "zone_id").add_to_param_list(params) response = await self.call_hq( "sdk_GetZoneWedgeAddressConfig", ExecuteStoredProcedure.SqlParameters(params), ) if serialize_for_cli: columns = ["ZoneWedgeAddressID", "WedgeAddressID", "ZoneID", "Config"] response = self.serialize_for_cli(response, columns) else: response = response[0] return response
[docs] async def get_all_by_wedge_address( self, wedge_address_name: Optional[str] = None, wedge_address_id: Optional[int] = None, serialize_for_cli=False, ) -> list[ZoneWedgeAddressConfigRow]: if not wedge_address_name and not wedge_address_id: raise DatabaseDataError( "Either wedge_address_name or wedge_address_id need to be supplied" ) params = [] if wedge_address_name: Param( wedge_address_name, D_TYPES.VarChar, "wedge_address_name" ).add_to_param_list(params) if wedge_address_id: Param(wedge_address_id, D_TYPES.Int, "wedge_address_id").add_to_param_list( params ) response = await self.call_hq( "sdk_GetZoneWedgeAddressConfigByWedgeAddressID", ExecuteStoredProcedure.SqlParameters(params), ) if serialize_for_cli: columns = ["ZoneWedgeAddressID", "WedgeAddressID", "ZoneID", "Config"] response = self.serialize_for_cli(response, columns) return response
[docs] async def get_all_by_zone_id( self, zone_id: int, serialize_for_cli=False ) -> list[ZoneWedgeAddressConfigRow]: response = await self.call_hq( "sdk_GetZoneWedgeAddressConfigByZoneID", ExecuteStoredProcedure.SqlParameters([ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "zone_id", zone_id ) ]), ) if serialize_for_cli: columns = ["ZoneWedgeAddressID", "WedgeAddressID", "ZoneID", "Config"] response = self.serialize_for_cli(response, columns) return response
[docs] async def create(self, wedge_address_id: int, zone_id: int, config: dict): params = [] Param(wedge_address_id, D_TYPES.Int, "wedge_address_id").add_to_param_list( params ) Param(zone_id, D_TYPES.Int, "zone_id").add_to_param_list(params) Param(json.dumps(config), D_TYPES.Xml, "config").add_to_param_list(params) await self.call_hq( "sdk_CreateZoneWedgeAddressConfig", ExecuteStoredProcedure.SqlParameters(params), )
[docs] async def update(self, wedge_address_id: int, zone_id: int, config: dict): params = [] Param(wedge_address_id, D_TYPES.Int, "wedge_address_id").add_to_param_list( params ) Param(zone_id, D_TYPES.Int, "zone_id").add_to_param_list(params) Param(json.dumps(config), D_TYPES.Xml, "config").add_to_param_list(params) await self.call_hq( "sdk_UpdateZoneWedgeAddressConfig", ExecuteStoredProcedure.SqlParameters(params), )
[docs] async def delete(self, wedge_address_id: int, zone_id: int): params = [] Param(wedge_address_id, D_TYPES.Int, "wedge_address_id").add_to_param_list( params ) Param(zone_id, D_TYPES.Int, "zone_id").add_to_param_list(params) await self.call_hq( "sdk_RemoveZoneWedgeAddressConfig", ExecuteStoredProcedure.SqlParameters(params), )