| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- #! usr/bin/python
- # -*-coding:utf-8 -*-
- # Copyright 2014 Baidu, Inc.
- #
- # Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
- # except in compliance with the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software distributed under the
- # License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
- # either express or implied. See the License for the specific language governing permissions
- # and limitations under the License.
- """
- This module defines some Response classes for BTS
- """
- from baidubce.bce_response import BceResponse
- from json import JSONEncoder
- class Billing(object):
- """
- This class define billing.
- param: paymentTiming:
- The pay time of the payment,
- param: reservationLength:
- The duration to buy in specified time unit,
- param: reservationTimeUnit:
- The time unit to specify the duration ,only "Month" can be used now.
- """
- def __init__(self, pay_method='Prepaid', reservationLength=1, reservationTimeUnit='Month'):
- self.paymentTiming = pay_method
- self.reservation = {
- 'reservationLength': reservationLength,
- 'reservationTimeUnit': reservationTimeUnit
- }
- def get_pay_method(self):
- """
- get instance current pay_method:Prepaid/Postpaid
- """
- return self.paymentTiming
- class SubnetMap(object):
- """
- SubnetMap:contains zoneName and subnetId
- """
- def __init__(self, zone_name, subnet_id):
- super(SubnetMap, self).__init__()
- self.zone_name = str(zone_name)
- self.subnet_id = str(subnet_id)
- class CreateInstanceResponse(BceResponse):
- """
- Create Instance Response
- """
- def __init__(self, bce_response):
- super(CreateInstanceResponse, self).__init__()
- self.instance_ids = bce_response.instance_ids
- self.order_id = bce_response.order_id
- class ListInstanceResponse(BceResponse):
- """
- List Instance Response
- """
- def __init__(self, bce_response):
- super(ListInstanceResponse, self).__init__()
- self.max_keys = bce_response.max_keys
- self.marker = str(bce_response.marker)
- self.next_marker = str(bce_response.next_marker)
- self.is_truncated = bce_response.is_truncated
- self.instances = bce_response.instances
- class GetInstanceResponse(BceResponse):
- """
- Get Instance Response
- """
- def __init__(self, bce_response):
- super(GetInstanceResponse, self).__init__()
- self.instance_id = str(bce_response.instance_id)
- self.instance_name = str(bce_response.instance_name)
- self.instance_status = str(bce_response.instance_status)
- self.cluster_type = str(bce_response.cluster_type)
- self.engine = str(bce_response.engine)
- self.engine_version = str(bce_response.engine_version)
- self.vnet_ip = str(bce_response.vnet_ip)
- self.port = str(bce_response.port)
- self.instance_create_time = bce_response.instance_create_time
- self.instance_expire_time = bce_response.instance_expire_time
- self.capacity = bce_response.capacity
- self.used_capacity = bce_response.used_capacity
- self.payment_timing = str(bce_response.payment_timing)
- self.zone_names = bce_response.zone_names
- self.vpc_id = str(bce_response.vpc_id)
- self.subnets = bce_response.subnets
- self.auto_renew = bce_response.auto_renew
- self.shard_num = bce_response.shard_num
- self.store_type = bce_response.store_type
- class ListAvailableZoneResponse(BceResponse):
- """
- List available zone.
- """
- def __init__(self, bce_response):
- super(ListAvailableZoneResponse, self).__init__()
- self.zones = bce_response.zones
- class ListSubnetResponse(BceResponse):
- """
- List available zone.
- """
- def __init__(self, bce_response):
- super(ListSubnetResponse, self).__init__()
- self.subnets = bce_response.subnets
- if self.subnets is None:
- self.subnets = []
- class ListNodeTypeResponse(BceResponse):
- """
- List nodetypes for scs.
- """
- def __init__(self, bce_response):
- super(ListNodeTypeResponse, self).__init__()
- self.default_node_type_list = bce_response.default_node_type_list
- self.cluster_node_type_list = bce_response.cluster_node_type_list
- self.hsdb_node_type_list = bce_response.hsdb_node_type_list
- class NodeType(object):
- """
- NodeType model
- """
- def __init__(self, obj):
- super(NodeType, self).__init__()
- self.node_type = str(obj.node_type)
- self.cpu_num = int(obj.cpu_num)
- self.instance_flavor = int(obj.instance_flavor)
- self.network_throughput_in_gbps = float(obj.network_throughput_in_gbps)
- self.peak_qps = int(obj.peak_qps)
- self.max_connections = int(obj.max_connections)
- self.allowed_node_num_list = obj.allowed_node_num_list
- self.allowed_replication_num_list = obj.allowed_replication_num_list
- class Tag(object):
- """
- Tag model
- """
- def __init__(self, key, value):
- super(Tag, self).__init__()
- self.tag_key = str(key)
- self.tag_value = str(value)
- def __repr__(self):
- return repr((self.tag_key, self.tag_value))
- class ListSecurityIpResponse(BceResponse):
- """
- List IP whitelist of instances which allow access to
- """
- def __init__(self, bce_response):
- super(ListSecurityIpResponse, self).__init__()
- self.security_ips = bce_response.security_ips
- class ListParameterResponse(BceResponse):
- """
- List configuration parameters and runtime parameters of scs instance
- """
- def __init__(self, bce_response):
- super(ListParameterResponse, self).__init__()
- self.parameters = bce_response.parameters
- class Parameter(object):
- """
- Configuration parameters and runtime parameters of scs instance
- """
- def __init__(self, obj):
- super(Parameter, self).__init__()
- self.default = str(obj.default)
- self.force_restart = int(obj.force_restart)
- self.name = str(obj.name)
- self.value = str(obj.value)
- class ModifyParameterRequest(object):
- """
- A request model to modify instance parameter
- """
- def __init__(self, obj):
- super(ModifyParameterRequest, self).__init__()
- self.name = str(obj.name)
- self.value = str(obj.value)
- class ListBackupResponse(BceResponse):
- """
- List backups of instance.
- """
- def __init__(self, bce_response):
- super(ListBackupResponse, self).__init__()
- self.total_count = bce_response.total_count
- self.backups = bce_response.backups
- class Backup(object):
- """
- Backup model
- """
- def __init__(self, obj):
- super(Backup, self).__init__()
- self.backup_type = str(obj.backup_type)
- self.comment = str(obj.comment)
- self.records = obj.records
- self.start_time = str(obj.start_time)
- class BackupRecord(object):
- """
- Backup record model
- """
- def __init__(self, obj):
- super(BackupRecord, self).__init__()
- self.backup_record_id = str(obj.backup_record_id)
- self.backup_status = str(obj.backup_status)
- self.duration = int(obj.duration)
- self.object_size = int(obj.object_size)
- self.shard_name = str(obj.shard_name)
- self.start_time = str(obj.start_time)
- class GetBackupResponse(BceResponse):
- """
- Get backup detail response model
- """
- def __init__(self, bce_response):
- super(GetBackupResponse, self).__init__()
- self.url = str(bce_response.url)
- self.url_expiration = str(bce_response.url_expiration)
- class JsonWrapper(JSONEncoder):
- """
- custom json encoder for class
- """
- def default(self, obj):
- if isinstance(obj, bytes):
- return str(obj, encoding='utf-8')
- if isinstance(obj, SubnetMap):
- return {
- 'zoneName': obj.zone_name,
- 'subnetId': obj.subnet_id
- }
- if isinstance(obj, Tag):
- return {
- 'tagKey': obj.tag_key,
- 'tagValue': obj.tag_value
- }
- return JSONEncoder.default(self, obj)
|