Package yakumo :: Package neutron :: Package v2 :: Module subnet
[hide private]
[frames] | no frames]

Source Code for Module yakumo.neutron.v2.subnet

  1  # Copyright 2014-2017 by Akira Yoshiyama <akirayoshiyama@gmail.com>. 
  2  # All Rights Reserved. 
  3  # 
  4  #    Licensed under the Apache License, Version 2.0 (the "License"); you may 
  5  #    not use this file except in compliance with the License. You may obtain 
  6  #    a copy of the License at 
  7  # 
  8  #         http://www.apache.org/licenses/LICENSE-2.0 
  9  # 
 10  #    Unless required by applicable law or agreed to in writing, software 
 11  #    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
 12  #    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
 13  #    License for the specific language governing permissions and limitations 
 14  #    under the License. 
 15   
 16  """ 
 17  Resource class and its manager for subnets in Networking V2 API 
 18  """ 
 19   
 20  from yakumo import base 
 21  from yakumo.constant import UNDEF 
 22  from yakumo import mapper 
 23   
 24   
 25  ATTRIBUTE_MAPPING = [ 
 26      ('id', 'id', mapper.Noop), 
 27      ('name', 'name', mapper.Noop), 
 28      ('network', 'network_id', mapper.Resource('neutron.network')), 
 29      ('gateway_ip', 'gateway_ip', mapper.Noop), 
 30      ('dns_nameservers', 'dns_nameservers', mapper.Noop), 
 31      ('host_route', 'host_route', mapper.Noop), 
 32      ('ip_version', 'ip_version', mapper.Noop), 
 33      ('cidr', 'cidr', mapper.Noop), 
 34      ('is_dhcp_enabled', 'enable_dhcp', mapper.Noop), 
 35      ('ipv6_ra_mode', 'ipv6_ra_mode', mapper.Noop), 
 36      ('ipv6_address_mode', 'ipv6_address_mode', mapper.Noop), 
 37  ] 
 38   
 39   
40 -class Resource(base.Resource):
41 """Resource class for subnets in Networking V2 API""" 42
43 - def update(self, name=UNDEF, allocation_pools=UNDEF, gateway_ip=UNDEF, 44 is_dhcp_enabled=UNDEF, dns_nameservers=UNDEF, 45 host_routes=UNDEF):
46 """ 47 Update properties of a subnet 48 @keyword name: Subnet name 49 @type name: str 50 @keyword allocation_pools: Allocation pools 51 @type allocation_pools: str 52 @keyword gateway_ip: Gateway IP address 53 @type gateway_ip: str 54 @keyword is_dhcp_enabled: Whether DHCP is enabled 55 @type is_dhcp_enabled: bool 56 @keyword dns_nameservers: DNS nameservers 57 @type dns_nameservers: str 58 @keyword host_routes: Host routes 59 @type host_routes: str 60 @rtype: None 61 """ 62 super(Resource, self).update( 63 name=name, 64 allocation_pools=allocation_pools, 65 gateway_ip=gateway_ip, 66 is_dhcp_enabled=is_dhcp_enabled, 67 dns_nameservers=dns_nameservers, 68 host_routes=host_routes)
69 70
71 -class Manager(base.Manager):
72 """Manager class for subnets in Networking V2 API""" 73 74 resource_class = Resource 75 service_type = 'network' 76 _attr_mapping = ATTRIBUTE_MAPPING 77 _json_resource_key = 'subnet' 78 _json_resources_key = 'subnets' 79 _url_resource_path = '/v2.0/subnets' 80
81 - def create(self, name=UNDEF, network=UNDEF, project=UNDEF, 82 allocation_pools=UNDEF, gateway_ip=UNDEF, ip_version=UNDEF, 83 cidr=UNDEF, is_dhcp_enabled=UNDEF, dns_nameservers=UNDEF, 84 host_routes=UNDEF, ipv6_ra_mode=UNDEF, ipv6_address_mode=UNDEF):
85 """ 86 Create a subnet 87 88 @keyword name: Subnet name 89 @type name: str 90 @keyword network: Network 91 @type network: yakumo.neutron.v2.network.Resource 92 @keyword project: Project 93 @type project: yakumo.project.Resource 94 @keyword allocation_pools: Allocation pools 95 @type allocation_pools: str 96 @keyword gateway_ip: Gateway IP address 97 @type gateway_ip: str 98 @keyword ip_version: IP version 99 @type ip_version: int 100 @keyword cidr: CIDR 101 @type cidr: str 102 @keyword is_dhcp_enabled: Whether DHCP is enabled 103 @type is_dhcp_enabled: bool 104 @keyword dns_nameservers: DNS nameservers 105 @type dns_nameservers: str 106 @keyword host_routes: Host routes 107 @type host_routes: str 108 @keyword ipv6_ra_mode: IPv6 RA mode 109 @type ipv6_ra_mode: str 110 @keyword ipv6_address_mode: IPv6 address mode 111 @type ipv6_address_mode: str 112 @return: Created subnet 113 @rtype: yakumo.neutron.v2.subnet.Resource 114 """ 115 return super(Manager, self).create( 116 name=name, 117 network=network, 118 project=project, 119 allocation_pools=allocation_pools, 120 gateway_ip=gateway_ip, 121 ip_version=ip_version, cidr=cidr, 122 is_dhcp_enabled=is_dhcp_enabled, 123 dns_nameservers=dns_nameservers, 124 host_routes=host_routes, 125 ipv6_ra_mode=ipv6_ra_mode, 126 ipv6_address_mode=ipv6_address_mode)
127