filtered-openstack-network.res 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459
  1. cloudbridge.test.test_network_service.CloudNetworkServiceTestCase
  2. Test output
  3. ........
  4. ----------------------------------------------------------------------
  5. Ran 8 tests in 112.996s
  6. OK
  7. Wrote profile results to run_single.py.lprof
  8. Timer unit: 1e-06 s
  9. Total time: 19.2371 s
  10. Function: get_or_create at line 1249
  11. Line # Hits Time Per Hit % Time Line Contents
  12. ==============================================================
  13. 1249 @dispatch(event="provider.networking.gateways.get_or_create",
  14. 1250 priority=BaseGatewayService.STANDARD_EVENT_PRIORITY)
  15. 1251 @profile
  16. 1252 def get_or_create(self, network):
  17. 1253 """For OS, inet gtw is any net that has `external` property set."""
  18. 1254 3 22.0 7.3 0.0 external_nets = (n for n in self._provider.networking.networks
  19. 1255 if n.external)
  20. 1256 3 1216733.0 405577.7 6.3 for net in external_nets:
  21. 1257 3 18020271.0 6006757.0 93.7 if self._check_fip_connectivity(network, net):
  22. 1258 3 86.0 28.7 0.0 return OpenStackInternetGateway(self._provider, net)
  23. 1259 return None
  24. Total time: 17.2713 s
  25. Function: list at line 1042
  26. Line # Hits Time Per Hit % Time Line Contents
  27. ==============================================================
  28. 1042 @dispatch(event="provider.networking.networks.list",
  29. 1043 priority=BaseNetworkService.STANDARD_EVENT_PRIORITY)
  30. 1044 @profile
  31. 1045 def list(self, limit=None, marker=None):
  32. 1046 43 65.0 1.5 0.0 networks = [OpenStackNetwork(self.provider, network)
  33. 1047 43 17266287.0 401541.6 100.0 for network in self.provider.neutron.list_networks()
  34. 1048 43 3104.0 72.2 0.0 .get('networks') if network]
  35. 1049 43 89.0 2.1 0.0 return ClientPagedResultList(self.provider, networks,
  36. 1050 43 1733.0 40.3 0.0 limit=limit, marker=marker)
  37. Total time: 14.0636 s
  38. Function: get at line 1035
  39. Line # Hits Time Per Hit % Time Line Contents
  40. ==============================================================
  41. 1035 @dispatch(event="provider.networking.networks.get",
  42. 1036 priority=BaseNetworkService.STANDARD_EVENT_PRIORITY)
  43. 1037 @profile
  44. 1038 def get(self, network_id):
  45. 1039 35 103.0 2.9 0.0 network = (n for n in self if n.id == network_id)
  46. 1040 35 14063482.0 401813.8 100.0 return next(network, None)
  47. Total time: 14.0561 s
  48. Function: list at line 1118
  49. Line # Hits Time Per Hit % Time Line Contents
  50. ==============================================================
  51. 1118 @dispatch(event="provider.networking.subnets.list",
  52. 1119 priority=BaseSubnetService.STANDARD_EVENT_PRIORITY)
  53. 1120 @profile
  54. 1121 def list(self, network=None, limit=None, marker=None):
  55. 1122 30 49.0 1.6 0.0 if network:
  56. 1123 6 29.0 4.8 0.0 network_id = (network.id if isinstance(network, OpenStackNetwork)
  57. 1124 else network)
  58. 1125 6 312.0 52.0 0.0 subnets = [subnet for subnet in self if network_id ==
  59. 1126 subnet.network_id]
  60. 1127 else:
  61. 1128 24 35.0 1.5 0.0 subnets = [OpenStackSubnet(self.provider, subnet) for subnet in
  62. 1129 24 14054354.0 585598.1 100.0 self.provider.neutron.list_subnets().get('subnets', [])]
  63. 1130 30 107.0 3.6 0.0 return ClientPagedResultList(self.provider, subnets,
  64. 1131 30 1249.0 41.6 0.0 limit=limit, marker=marker)
  65. Total time: 13.9178 s
  66. Function: create at line 1071
  67. Line # Hits Time Per Hit % Time Line Contents
  68. ==============================================================
  69. 1071 @dispatch(event="provider.networking.networks.create",
  70. 1072 priority=BaseNetworkService.STANDARD_EVENT_PRIORITY)
  71. 1073 @profile
  72. 1074 def create(self, label, cidr_block):
  73. 1075 14 177.0 12.6 0.0 OpenStackNetwork.assert_valid_resource_label(label)
  74. 1076 4 4.0 1.0 0.0 net_info = {'name': label or ""}
  75. 1077 4 9277143.0 2319285.8 66.7 network = self.provider.neutron.create_network({'network': net_info})
  76. 1078 4 161.0 40.2 0.0 cb_net = OpenStackNetwork(self.provider, network.get('network'))
  77. 1079 4 5.0 1.2 0.0 if label:
  78. 1080 4 4640334.0 1160083.5 33.3 cb_net.label = label
  79. 1081 4 4.0 1.0 0.0 return cb_net
  80. Total time: 10.9466 s
  81. Function: refresh at line 842
  82. Line # Hits Time Per Hit % Time Line Contents
  83. ==============================================================
  84. 842 @profile
  85. 843 def refresh(self):
  86. 844 """Refresh the state of this network by re-querying the provider."""
  87. 845 27 10946477.0 405425.1 100.0 network = self._provider.networking.networks.get(self.id)
  88. 846 27 32.0 1.2 0.0 if network:
  89. 847 # pylint:disable=protected-access
  90. 848 15 22.0 1.5 0.0 self._network = network._network
  91. 849 else:
  92. 850 # Network no longer exists
  93. 851 12 24.0 2.0 0.0 self._network = {}
  94. Total time: 8.22129 s
  95. Function: label at line 811
  96. Line # Hits Time Per Hit % Time Line Contents
  97. ==============================================================
  98. 811 @label.setter
  99. 812 @profile
  100. 813 def label(self, value):
  101. 814 """
  102. 815 Set the network label.
  103. 816 """
  104. 817 15 184.0 12.3 0.0 self.assert_valid_resource_label(value)
  105. 818 7 53.0 7.6 0.0 self._provider.neutron.update_network(
  106. 819 7 5363809.0 766258.4 65.2 self.id, {'network': {'name': value or ""}})
  107. 820 7 2857243.0 408177.6 34.8 self.refresh()
  108. Total time: 7.86342 s
  109. Function: delete at line 1219
  110. Line # Hits Time Per Hit % Time Line Contents
  111. ==============================================================
  112. 1219 @dispatch(event="provider.networking.routers.delete",
  113. 1220 priority=BaseRouterService.STANDARD_EVENT_PRIORITY)
  114. 1221 @profile
  115. 1222 def delete(self, router):
  116. 1223 4 57.0 14.2 0.0 r_id = router.id if isinstance(router, OpenStackRouter) else router
  117. 1224 4 7863364.0 1965841.0 100.0 self.provider.os_conn.delete_router(r_id)
  118. Total time: 6.85171 s
  119. Function: delete at line 1083
  120. Line # Hits Time Per Hit % Time Line Contents
  121. ==============================================================
  122. 1083 @dispatch(event="provider.networking.networks.delete",
  123. 1084 priority=BaseNetworkService.STANDARD_EVENT_PRIORITY)
  124. 1085 @profile
  125. 1086 def delete(self, network):
  126. 1087 4 9.0 2.2 0.0 network = (network if isinstance(network, OpenStackNetwork) else
  127. 1088 self.get(network))
  128. 1089 4 8.0 2.0 0.0 if not network:
  129. 1090 return
  130. 1091 4 19.0 4.8 0.0 if not network.external and network.id in str(
  131. 1092 4 1530910.0 382727.5 22.3 self.provider.neutron.list_networks()):
  132. 1093 # If there are ports associated with the network, it won't delete
  133. 1094 4 43.0 10.8 0.0 ports = self.provider.neutron.list_ports(
  134. 1095 4 1347843.0 336960.8 19.7 network_id=network.id).get('ports', [])
  135. 1096 4 9.0 2.2 0.0 for port in ports:
  136. 1097 try:
  137. 1098 self.provider.neutron.delete_port(port.get('id'))
  138. 1099 except PortNotFoundClient:
  139. 1100 # Ports could have already been deleted if instances
  140. 1101 # are terminated etc. so exceptions can be safely ignored
  141. 1102 pass
  142. 1103 4 3972874.0 993218.5 58.0 self.provider.neutron.delete_network(network.id)
  143. Total time: 6.84073 s
  144. Function: find at line 308
  145. Line # Hits Time Per Hit % Time Line Contents
  146. ==============================================================
  147. 308 @dispatch(event="provider.networking.subnets.find",
  148. 309 priority=BaseCloudService.STANDARD_EVENT_PRIORITY)
  149. 310 @profile
  150. 311 def find(self, network=None, **kwargs):
  151. 312 6 6.0 1.0 0.0 if not network:
  152. 313 6 4.0 0.7 0.0 obj_list = self
  153. 314 else:
  154. 315 obj_list = network.subnets
  155. 316 6 6.0 1.0 0.0 filters = ['label']
  156. 317 6 6840560.0 1140093.3 100.0 matches = cb_helpers.generic_find(filters, kwargs, obj_list)
  157. 318 5 151.0 30.2 0.0 return ClientPagedResultList(self._provider, list(matches))
  158. Total time: 6.82445 s
  159. Function: create at line 1211
  160. Line # Hits Time Per Hit % Time Line Contents
  161. ==============================================================
  162. 1211 @dispatch(event="provider.networking.routers.create",
  163. 1212 priority=BaseRouterService.STANDARD_EVENT_PRIORITY)
  164. 1213 @profile
  165. 1214 def create(self, label, network):
  166. 1215 """Parameter ``network`` is not used by OpenStack."""
  167. 1216 4 6824376.0 1706094.0 100.0 router = self.provider.os_conn.create_router(name=label)
  168. 1217 4 74.0 18.5 0.0 return OpenStackRouter(self.provider, router)
  169. Total time: 6.17932 s
  170. Function: get_or_create_default at line 1155
  171. Line # Hits Time Per Hit % Time Line Contents
  172. ==============================================================
  173. 1155 @profile
  174. 1156 def get_or_create_default(self, zone):
  175. 1157 """
  176. 1158 Subnet zone is not supported by OpenStack and is thus ignored.
  177. 1159 """
  178. 1160 3 6.0 2.0 0.0 try:
  179. 1161 3 6179299.0 2059766.3 100.0 sn = self.find(label=OpenStackSubnet.CB_DEFAULT_SUBNET_LABEL)
  180. 1162 3 5.0 1.7 0.0 if sn:
  181. 1163 3 6.0 2.0 0.0 return sn[0]
  182. 1164 # No default subnet look for default network, then create subnet
  183. 1165 net = self.provider.networking.networks.get_or_create_default()
  184. 1166 sn = self.provider.networking.subnets.create(
  185. 1167 label=OpenStackSubnet.CB_DEFAULT_SUBNET_LABEL,
  186. 1168 cidr_block=OpenStackSubnet.CB_DEFAULT_SUBNET_IPV4RANGE,
  187. 1169 network=net, zone=zone)
  188. 1170 router = self.provider.networking.routers.get_or_create_default(
  189. 1171 net)
  190. 1172 router.attach_subnet(sn)
  191. 1173 gateway = net.gateways.get_or_create()
  192. 1174 router.attach_gateway(gateway)
  193. 1175 return sn
  194. 1176 except NeutronClientException:
  195. 1177 return None
  196. Total time: 4.72856 s
  197. Function: delete at line 1148
  198. Line # Hits Time Per Hit % Time Line Contents
  199. ==============================================================
  200. 1148 @dispatch(event="provider.networking.subnets.delete",
  201. 1149 priority=BaseSubnetService.STANDARD_EVENT_PRIORITY)
  202. 1150 @profile
  203. 1151 def delete(self, subnet):
  204. 1152 3 18.0 6.0 0.0 sn_id = subnet.id if isinstance(subnet, OpenStackSubnet) else subnet
  205. 1153 3 4728545.0 1576181.7 100.0 self.provider.neutron.delete_subnet(sn_id)
  206. Total time: 3.2712 s
  207. Function: label at line 976
  208. Line # Hits Time Per Hit % Time Line Contents
  209. ==============================================================
  210. 976 @label.setter
  211. 977 @profile
  212. 978 def label(self, value): # pylint:disable=arguments-differ
  213. 979 """
  214. 980 Set the router label.
  215. 981 """
  216. 982 11 182.0 16.5 0.0 self.assert_valid_resource_label(value)
  217. 983 3 3271015.0 1090338.3 100.0 self._router = self._provider.os_conn.update_router(self.id, value)
  218. Total time: 3.19342 s
  219. Function: create at line 1307
  220. Line # Hits Time Per Hit % Time Line Contents
  221. ==============================================================
  222. 1307 @dispatch(event="provider.networking.floating_ips.create",
  223. 1308 priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY)
  224. 1309 @profile
  225. 1310 def create(self, gateway):
  226. 1311 2 3.0 1.5 0.0 return OpenStackFloatingIP(
  227. 1312 2 51506.0 25753.0 1.6 self.provider, self.provider.os_conn.network.create_ip(
  228. 1313 2 3141916.0 1570958.0 98.4 floating_network_id=gateway.id))
  229. Total time: 2.73474 s
  230. Function: get at line 1111
  231. Line # Hits Time Per Hit % Time Line Contents
  232. ==============================================================
  233. 1111 @dispatch(event="provider.networking.subnets.get",
  234. 1112 priority=BaseSubnetService.STANDARD_EVENT_PRIORITY)
  235. 1113 @profile
  236. 1114 def get(self, subnet_id):
  237. 1115 7 29.0 4.1 0.0 subnet = (s for s in self if s.id == subnet_id)
  238. 1116 7 2734716.0 390673.7 100.0 return next(subnet, None)
  239. Total time: 2.5718 s
  240. Function: list at line 1296
  241. Line # Hits Time Per Hit % Time Line Contents
  242. ==============================================================
  243. 1296 @dispatch(event="provider.networking.floating_ips.list",
  244. 1297 priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY)
  245. 1298 @profile
  246. 1299 def list(self, gateway, limit=None, marker=None):
  247. 1300 7 13.0 1.9 0.0 fips = [OpenStackFloatingIP(self.provider, fip)
  248. 1301 7 81.0 11.6 0.0 for fip in self.provider.os_conn.network.ips(
  249. 1302 7 2571312.0 367330.3 100.0 floating_network_id=gateway.id
  250. 1303 )]
  251. 1304 7 35.0 5.0 0.0 return ClientPagedResultList(self.provider, fips,
  252. 1305 7 359.0 51.3 0.0 limit=limit, marker=marker)
  253. Total time: 2.31206 s
  254. Function: list at line 1193
  255. Line # Hits Time Per Hit % Time Line Contents
  256. ==============================================================
  257. 1193 @dispatch(event="provider.networking.routers.list",
  258. 1194 priority=BaseRouterService.STANDARD_EVENT_PRIORITY)
  259. 1195 @profile
  260. 1196 def list(self, limit=None, marker=None):
  261. 1197 6 2311586.0 385264.3 100.0 routers = self.provider.os_conn.list_routers()
  262. 1198 6 207.0 34.5 0.0 os_routers = [OpenStackRouter(self.provider, r) for r in routers]
  263. 1199 6 13.0 2.2 0.0 return ClientPagedResultList(self.provider, os_routers, limit=limit,
  264. 1200 6 252.0 42.0 0.0 marker=marker)
  265. Total time: 2.07589 s
  266. Function: label at line 877
  267. Line # Hits Time Per Hit % Time Line Contents
  268. ==============================================================
  269. 877 @label.setter
  270. 878 @profile
  271. 879 def label(self, value): # pylint:disable=arguments-differ
  272. 880 """
  273. 881 Set the subnet label.
  274. 882 """
  275. 883 11 180.0 16.4 0.0 self.assert_valid_resource_label(value)
  276. 884 3 22.0 7.3 0.0 self._provider.neutron.update_subnet(
  277. 885 3 2075676.0 691892.0 100.0 self.id, {'subnet': {'name': value or ""}})
  278. 886 3 11.0 3.7 0.0 self._subnet['name'] = value
  279. Total time: 1.94209 s
  280. Function: create at line 1133
  281. Line # Hits Time Per Hit % Time Line Contents
  282. ==============================================================
  283. 1133 @dispatch(event="provider.networking.subnets.create",
  284. 1134 priority=BaseSubnetService.STANDARD_EVENT_PRIORITY)
  285. 1135 @profile
  286. 1136 def create(self, label, network, cidr_block, zone):
  287. 1137 """zone param is ignored."""
  288. 1138 13 160.0 12.3 0.0 OpenStackSubnet.assert_valid_resource_label(label)
  289. 1139 3 11.0 3.7 0.0 network_id = (network.id if isinstance(network, OpenStackNetwork)
  290. 1140 else network)
  291. 1141 3 3.0 1.0 0.0 subnet_info = {'name': label, 'network_id': network_id,
  292. 1142 3 3.0 1.0 0.0 'cidr': cidr_block, 'ip_version': 4}
  293. 1143 3 1941847.0 647282.3 100.0 subnet = (self.provider.neutron.create_subnet({'subnet': subnet_info})
  294. 1144 3 10.0 3.3 0.0 .get('subnet'))
  295. 1145 3 51.0 17.0 0.0 cb_subnet = OpenStackSubnet(self.provider, subnet)
  296. 1146 3 3.0 1.0 0.0 return cb_subnet
  297. Total time: 1.53474 s
  298. Function: refresh at line 910
  299. Line # Hits Time Per Hit % Time Line Contents
  300. ==============================================================
  301. 910 @profile
  302. 911 def refresh(self):
  303. 912 4 1534726.0 383681.5 100.0 subnet = self._provider.networking.subnets.get(self.id)
  304. 913 4 6.0 1.5 0.0 if subnet:
  305. 914 # pylint:disable=protected-access
  306. 915 1 4.0 4.0 0.0 self._subnet = subnet._subnet
  307. 916 1 2.0 2.0 0.0 self._state = SubnetState.AVAILABLE
  308. 917 else:
  309. 918 # subnet no longer exists
  310. 919 3 6.0 2.0 0.0 self._state = SubnetState.UNKNOWN
  311. Total time: 0.816709 s
  312. Function: find at line 375
  313. Line # Hits Time Per Hit % Time Line Contents
  314. ==============================================================
  315. 375 @dispatch(event="provider.networking.floating_ips.find",
  316. 376 priority=BaseCloudService.STANDARD_EVENT_PRIORITY)
  317. 377 @profile
  318. 378 def find(self, gateway, **kwargs):
  319. 379 3 11.0 3.7 0.0 obj_list = gateway.floating_ips
  320. 380 3 3.0 1.0 0.0 filters = ['name', 'public_ip']
  321. 381 3 816638.0 272212.7 100.0 matches = cb_helpers.generic_find(filters, kwargs, obj_list)
  322. 382 2 57.0 28.5 0.0 return ClientPagedResultList(self._provider, list(matches))
  323. Total time: 0.813398 s
  324. Function: get at line 1284
  325. Line # Hits Time Per Hit % Time Line Contents
  326. ==============================================================
  327. 1284 @dispatch(event="provider.networking.floating_ips.get",
  328. 1285 priority=BaseFloatingIPService.STANDARD_EVENT_PRIORITY)
  329. 1286 @profile
  330. 1287 def get(self, gateway, fip_id):
  331. 1288 2 2.0 1.0 0.0 try:
  332. 1289 2 2.0 1.0 0.0 return OpenStackFloatingIP(
  333. 1290 2 2.0 1.0 0.0 self.provider,
  334. 1291 2 813359.0 406679.5 100.0 self.provider.os_conn.network.get_ip(fip_id))
  335. 1292 1 4.0 4.0 0.0 except (ResourceNotFound, NotFoundException):
  336. 1293 1 9.0 9.0 0.0 log.debug("Floating IP %s not found.", fip_id)
  337. 1294 1 20.0 20.0 0.0 return None
  338. Total time: 0.732479 s
  339. Function: find at line 1202
  340. Line # Hits Time Per Hit % Time Line Contents
  341. ==============================================================
  342. 1202 @dispatch(event="provider.networking.routers.find",
  343. 1203 priority=BaseRouterService.STANDARD_EVENT_PRIORITY)
  344. 1204 @profile
  345. 1205 def find(self, **kwargs):
  346. 1206 3 4.0 1.3 0.0 obj_list = self
  347. 1207 3 3.0 1.0 0.0 filters = ['label']
  348. 1208 3 732411.0 244137.0 100.0 matches = cb_helpers.generic_find(filters, kwargs, obj_list)
  349. 1209 2 61.0 30.5 0.0 return ClientPagedResultList(self._provider, list(matches))
  350. Total time: 0.717092 s
  351. Function: find at line 1052
  352. Line # Hits Time Per Hit % Time Line Contents
  353. ==============================================================
  354. 1052 @dispatch(event="provider.networking.networks.find",
  355. 1053 priority=BaseNetworkService.STANDARD_EVENT_PRIORITY)
  356. 1054 @profile
  357. 1055 def find(self, **kwargs):
  358. 1056 3 6.0 2.0 0.0 label = kwargs.pop('label', None)
  359. 1057
  360. 1058 # All kwargs should have been popped at this time.
  361. 1059 3 5.0 1.7 0.0 if len(kwargs) > 0:
  362. 1060 1 1.0 1.0 0.0 raise InvalidParamException(
  363. 1061 1 1.0 1.0 0.0 "Unrecognised parameters for search: %s. Supported "
  364. 1062 1 15.0 15.0 0.0 "attributes: %s" % (kwargs, 'label'))
  365. 1063
  366. 1064 2 17.0 8.5 0.0 log.debug("Searching for OpenStack Network with label: %s", label)
  367. 1065 2 4.0 2.0 0.0 networks = [OpenStackNetwork(self.provider, network)
  368. 1066 2 12.0 6.0 0.0 for network in self.provider.neutron.list_networks(
  369. 1067 2 716908.0 358454.0 100.0 name=label)
  370. 1068 2 40.0 20.0 0.0 .get('networks') if network]
  371. 1069 2 83.0 41.5 0.0 return ClientPagedResultList(self.provider, networks)
  372. Total time: 0.663701 s
  373. Function: get at line 1185
  374. Line # Hits Time Per Hit % Time Line Contents
  375. ==============================================================
  376. 1185 @dispatch(event="provider.networking.routers.get",
  377. 1186 priority=BaseRouterService.STANDARD_EVENT_PRIORITY)
  378. 1187 @profile
  379. 1188 def get(self, router_id):
  380. 1189 2 17.0 8.5 0.0 log.debug("Getting OpenStack Router with the id: %s", router_id)
  381. 1190 2 663665.0 331832.5 100.0 router = self.provider.os_conn.get_router(router_id)
  382. 1191 2 19.0 9.5 0.0 return OpenStackRouter(self.provider, router) if router else None
  383. Total time: 0.416022 s
  384. Function: refresh at line 985
  385. Line # Hits Time Per Hit % Time Line Contents
  386. ==============================================================
  387. 985 @profile
  388. 986 def refresh(self):
  389. 987 1 416022.0 416022.0 100.0 self._router = self._provider.os_conn.get_router(self.id)
  390. Total time: 6e-06 s
  391. Function: delete at line 1261
  392. Line # Hits Time Per Hit % Time Line Contents
  393. ==============================================================
  394. 1261 @dispatch(event="provider.networking.gateways.delete",
  395. 1262 priority=BaseGatewayService.STANDARD_EVENT_PRIORITY)
  396. 1263 @profile
  397. 1264 def delete(self, network, gateway):
  398. 1265 3 6.0 2.0 100.0 pass