Mercurial > repos > guerler > springsuite
comparison planemo/lib/python3.7/site-packages/boto/emr/emrobject.py @ 0:d30785e31577 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
| author | guerler |
|---|---|
| date | Fri, 31 Jul 2020 00:18:57 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:d30785e31577 |
|---|---|
| 1 # Copyright (c) 2010 Spotify AB | |
| 2 # Copyright (c) 2010 Jeremy Thurgood <firxen+boto@gmail.com> | |
| 3 # Copyright (c) 2010-2011 Yelp | |
| 4 # | |
| 5 # Permission is hereby granted, free of charge, to any person obtaining a | |
| 6 # copy of this software and associated documentation files (the | |
| 7 # "Software"), to deal in the Software without restriction, including | |
| 8 # without limitation the rights to use, copy, modify, merge, publish, dis- | |
| 9 # tribute, sublicense, and/or sell copies of the Software, and to permit | |
| 10 # persons to whom the Software is furnished to do so, subject to the fol- | |
| 11 # lowing conditions: | |
| 12 # | |
| 13 # The above copyright notice and this permission notice shall be included | |
| 14 # in all copies or substantial portions of the Software. | |
| 15 # | |
| 16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS | |
| 17 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL- | |
| 18 # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT | |
| 19 # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, | |
| 20 # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| 21 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | |
| 22 # IN THE SOFTWARE. | |
| 23 | |
| 24 """ | |
| 25 This module contains EMR response objects | |
| 26 """ | |
| 27 | |
| 28 from boto.resultset import ResultSet | |
| 29 | |
| 30 | |
| 31 class EmrObject(object): | |
| 32 Fields = set() | |
| 33 | |
| 34 def __init__(self, connection=None): | |
| 35 self.connection = connection | |
| 36 | |
| 37 def startElement(self, name, attrs, connection): | |
| 38 pass | |
| 39 | |
| 40 def endElement(self, name, value, connection): | |
| 41 if name in self.Fields: | |
| 42 setattr(self, name.lower(), value) | |
| 43 | |
| 44 | |
| 45 class RunJobFlowResponse(EmrObject): | |
| 46 Fields = set(['JobFlowId']) | |
| 47 | |
| 48 class AddInstanceGroupsResponse(EmrObject): | |
| 49 Fields = set(['InstanceGroupIds', 'JobFlowId']) | |
| 50 | |
| 51 class ModifyInstanceGroupsResponse(EmrObject): | |
| 52 Fields = set(['RequestId']) | |
| 53 | |
| 54 | |
| 55 class Arg(EmrObject): | |
| 56 def __init__(self, connection=None): | |
| 57 self.value = None | |
| 58 | |
| 59 def endElement(self, name, value, connection): | |
| 60 self.value = value | |
| 61 | |
| 62 | |
| 63 class StepId(Arg): | |
| 64 pass | |
| 65 | |
| 66 | |
| 67 class SupportedProduct(Arg): | |
| 68 pass | |
| 69 | |
| 70 | |
| 71 class JobFlowStepList(EmrObject): | |
| 72 def __ini__(self, connection=None): | |
| 73 self.connection = connection | |
| 74 self.stepids = None | |
| 75 | |
| 76 def startElement(self, name, attrs, connection): | |
| 77 if name == 'StepIds': | |
| 78 self.stepids = ResultSet([('member', StepId)]) | |
| 79 return self.stepids | |
| 80 else: | |
| 81 return None | |
| 82 | |
| 83 | |
| 84 class BootstrapAction(EmrObject): | |
| 85 Fields = set([ | |
| 86 'Args', | |
| 87 'Name', | |
| 88 'Path', | |
| 89 'ScriptPath', | |
| 90 ]) | |
| 91 | |
| 92 def startElement(self, name, attrs, connection): | |
| 93 if name == 'Args': | |
| 94 self.args = ResultSet([('member', Arg)]) | |
| 95 return self.args | |
| 96 | |
| 97 | |
| 98 class KeyValue(EmrObject): | |
| 99 Fields = set([ | |
| 100 'Key', | |
| 101 'Value', | |
| 102 ]) | |
| 103 | |
| 104 | |
| 105 class Step(EmrObject): | |
| 106 Fields = set([ | |
| 107 'ActionOnFailure', | |
| 108 'CreationDateTime', | |
| 109 'EndDateTime', | |
| 110 'Jar', | |
| 111 'LastStateChangeReason', | |
| 112 'MainClass', | |
| 113 'Name', | |
| 114 'StartDateTime', | |
| 115 'State', | |
| 116 ]) | |
| 117 | |
| 118 def __init__(self, connection=None): | |
| 119 self.connection = connection | |
| 120 self.args = None | |
| 121 | |
| 122 def startElement(self, name, attrs, connection): | |
| 123 if name == 'Args': | |
| 124 self.args = ResultSet([('member', Arg)]) | |
| 125 return self.args | |
| 126 if name == 'Properties': | |
| 127 self.properties = ResultSet([('member', KeyValue)]) | |
| 128 return self.properties | |
| 129 | |
| 130 | |
| 131 class InstanceGroup(EmrObject): | |
| 132 Fields = set([ | |
| 133 'BidPrice', | |
| 134 'CreationDateTime', | |
| 135 'EndDateTime', | |
| 136 'InstanceGroupId', | |
| 137 'InstanceRequestCount', | |
| 138 'InstanceRole', | |
| 139 'InstanceRunningCount', | |
| 140 'InstanceType', | |
| 141 'LastStateChangeReason', | |
| 142 'LaunchGroup', | |
| 143 'Market', | |
| 144 'Name', | |
| 145 'ReadyDateTime', | |
| 146 'StartDateTime', | |
| 147 'State', | |
| 148 ]) | |
| 149 | |
| 150 | |
| 151 class JobFlow(EmrObject): | |
| 152 Fields = set([ | |
| 153 'AmiVersion', | |
| 154 'AvailabilityZone', | |
| 155 'CreationDateTime', | |
| 156 'Ec2KeyName', | |
| 157 'EndDateTime', | |
| 158 'HadoopVersion', | |
| 159 'Id', | |
| 160 'InstanceCount', | |
| 161 'JobFlowId', | |
| 162 'KeepJobFlowAliveWhenNoSteps', | |
| 163 'LastStateChangeReason', | |
| 164 'LogUri', | |
| 165 'MasterInstanceId', | |
| 166 'MasterInstanceType', | |
| 167 'MasterPublicDnsName', | |
| 168 'Name', | |
| 169 'NormalizedInstanceHours', | |
| 170 'ReadyDateTime', | |
| 171 'RequestId', | |
| 172 'SlaveInstanceType', | |
| 173 'StartDateTime', | |
| 174 'State', | |
| 175 'TerminationProtected', | |
| 176 'Type', | |
| 177 'Value', | |
| 178 'VisibleToAllUsers', | |
| 179 ]) | |
| 180 | |
| 181 def __init__(self, connection=None): | |
| 182 self.connection = connection | |
| 183 self.steps = None | |
| 184 self.instancegroups = None | |
| 185 self.bootstrapactions = None | |
| 186 | |
| 187 def startElement(self, name, attrs, connection): | |
| 188 if name == 'Steps': | |
| 189 self.steps = ResultSet([('member', Step)]) | |
| 190 return self.steps | |
| 191 elif name == 'InstanceGroups': | |
| 192 self.instancegroups = ResultSet([('member', InstanceGroup)]) | |
| 193 return self.instancegroups | |
| 194 elif name == 'BootstrapActions': | |
| 195 self.bootstrapactions = ResultSet([('member', BootstrapAction)]) | |
| 196 return self.bootstrapactions | |
| 197 elif name == 'SupportedProducts': | |
| 198 self.supported_products = ResultSet([('member', SupportedProduct)]) | |
| 199 return self.supported_products | |
| 200 else: | |
| 201 return None | |
| 202 | |
| 203 | |
| 204 class ClusterTimeline(EmrObject): | |
| 205 Fields = set([ | |
| 206 'CreationDateTime', | |
| 207 'ReadyDateTime', | |
| 208 'EndDateTime' | |
| 209 ]) | |
| 210 | |
| 211 class ClusterStateChangeReason(EmrObject): | |
| 212 Fields = set([ | |
| 213 'Code', | |
| 214 'Message' | |
| 215 ]) | |
| 216 | |
| 217 class ClusterStatus(EmrObject): | |
| 218 Fields = set([ | |
| 219 'State', | |
| 220 'StateChangeReason', | |
| 221 'Timeline' | |
| 222 ]) | |
| 223 | |
| 224 def __init__(self, connection=None): | |
| 225 self.connection = connection | |
| 226 self.timeline = None | |
| 227 | |
| 228 def startElement(self, name, attrs, connection): | |
| 229 if name == 'Timeline': | |
| 230 self.timeline = ClusterTimeline() | |
| 231 return self.timeline | |
| 232 elif name == 'StateChangeReason': | |
| 233 self.statechangereason = ClusterStateChangeReason() | |
| 234 return self.statechangereason | |
| 235 else: | |
| 236 return None | |
| 237 | |
| 238 | |
| 239 class Ec2InstanceAttributes(EmrObject): | |
| 240 Fields = set([ | |
| 241 'Ec2KeyName', | |
| 242 'Ec2SubnetId', | |
| 243 'Ec2AvailabilityZone', | |
| 244 'IamInstanceProfile' | |
| 245 ]) | |
| 246 | |
| 247 | |
| 248 class Application(EmrObject): | |
| 249 Fields = set([ | |
| 250 'Name', | |
| 251 'Version', | |
| 252 'Args', | |
| 253 'AdditionalInfo' | |
| 254 ]) | |
| 255 | |
| 256 | |
| 257 class Cluster(EmrObject): | |
| 258 Fields = set([ | |
| 259 'Id', | |
| 260 'Name', | |
| 261 'LogUri', | |
| 262 'RequestedAmiVersion', | |
| 263 'RunningAmiVersion', | |
| 264 'AutoTerminate', | |
| 265 'TerminationProtected', | |
| 266 'VisibleToAllUsers', | |
| 267 'MasterPublicDnsName', | |
| 268 'NormalizedInstanceHours', | |
| 269 'ServiceRole' | |
| 270 ]) | |
| 271 | |
| 272 def __init__(self, connection=None): | |
| 273 self.connection = connection | |
| 274 self.status = None | |
| 275 self.ec2instanceattributes = None | |
| 276 self.applications = None | |
| 277 self.tags = None | |
| 278 | |
| 279 def startElement(self, name, attrs, connection): | |
| 280 if name == 'Status': | |
| 281 self.status = ClusterStatus() | |
| 282 return self.status | |
| 283 elif name == 'Ec2InstanceAttributes': | |
| 284 self.ec2instanceattributes = Ec2InstanceAttributes() | |
| 285 return self.ec2instanceattributes | |
| 286 elif name == 'Applications': | |
| 287 self.applications = ResultSet([('member', Application)]) | |
| 288 return self.applications | |
| 289 elif name == 'Tags': | |
| 290 self.tags = ResultSet([('member', KeyValue)]) | |
| 291 return self.tags | |
| 292 else: | |
| 293 return None | |
| 294 | |
| 295 | |
| 296 class ClusterSummary(EmrObject): | |
| 297 Fields = set([ | |
| 298 'Id', | |
| 299 'Name', | |
| 300 'NormalizedInstanceHours' | |
| 301 ]) | |
| 302 | |
| 303 def __init__(self, connection): | |
| 304 self.connection = connection | |
| 305 self.status = None | |
| 306 | |
| 307 def startElement(self, name, attrs, connection): | |
| 308 if name == 'Status': | |
| 309 self.status = ClusterStatus() | |
| 310 return self.status | |
| 311 else: | |
| 312 return None | |
| 313 | |
| 314 | |
| 315 class ClusterSummaryList(EmrObject): | |
| 316 Fields = set([ | |
| 317 'Marker' | |
| 318 ]) | |
| 319 | |
| 320 def __init__(self, connection): | |
| 321 self.connection = connection | |
| 322 self.clusters = None | |
| 323 | |
| 324 def startElement(self, name, attrs, connection): | |
| 325 if name == 'Clusters': | |
| 326 self.clusters = ResultSet([('member', ClusterSummary)]) | |
| 327 return self.clusters | |
| 328 else: | |
| 329 return None | |
| 330 | |
| 331 | |
| 332 class StepConfig(EmrObject): | |
| 333 Fields = set([ | |
| 334 'Jar', | |
| 335 'MainClass' | |
| 336 ]) | |
| 337 | |
| 338 def __init__(self, connection=None): | |
| 339 self.connection = connection | |
| 340 self.properties = None | |
| 341 self.args = None | |
| 342 | |
| 343 def startElement(self, name, attrs, connection): | |
| 344 if name == 'Properties': | |
| 345 self.properties = ResultSet([('member', KeyValue)]) | |
| 346 return self.properties | |
| 347 elif name == 'Args': | |
| 348 self.args = ResultSet([('member', Arg)]) | |
| 349 return self.args | |
| 350 else: | |
| 351 return None | |
| 352 | |
| 353 | |
| 354 class HadoopStep(EmrObject): | |
| 355 Fields = set([ | |
| 356 'Id', | |
| 357 'Name', | |
| 358 'ActionOnFailure' | |
| 359 ]) | |
| 360 | |
| 361 def __init__(self, connection=None): | |
| 362 self.connection = connection | |
| 363 self.config = None | |
| 364 self.status = None | |
| 365 | |
| 366 def startElement(self, name, attrs, connection): | |
| 367 if name == 'Config': | |
| 368 self.config = StepConfig() | |
| 369 return self.config | |
| 370 elif name == 'Status': | |
| 371 self.status = ClusterStatus() | |
| 372 return self.status | |
| 373 else: | |
| 374 return None | |
| 375 | |
| 376 | |
| 377 | |
| 378 class InstanceGroupInfo(EmrObject): | |
| 379 Fields = set([ | |
| 380 'Id', | |
| 381 'Name', | |
| 382 'Market', | |
| 383 'InstanceGroupType', | |
| 384 'BidPrice', | |
| 385 'InstanceType', | |
| 386 'RequestedInstanceCount', | |
| 387 'RunningInstanceCount' | |
| 388 ]) | |
| 389 | |
| 390 def __init__(self, connection=None): | |
| 391 self.connection = connection | |
| 392 self.status = None | |
| 393 | |
| 394 def startElement(self, name, attrs, connection): | |
| 395 if name == 'Status': | |
| 396 self.status = ClusterStatus() | |
| 397 return self.status | |
| 398 else: | |
| 399 return None | |
| 400 | |
| 401 | |
| 402 class InstanceGroupList(EmrObject): | |
| 403 Fields = set([ | |
| 404 'Marker' | |
| 405 ]) | |
| 406 | |
| 407 def __init__(self, connection=None): | |
| 408 self.connection = connection | |
| 409 self.instancegroups = None | |
| 410 | |
| 411 def startElement(self, name, attrs, connection): | |
| 412 if name == 'InstanceGroups': | |
| 413 self.instancegroups = ResultSet([('member', InstanceGroupInfo)]) | |
| 414 return self.instancegroups | |
| 415 else: | |
| 416 return None | |
| 417 | |
| 418 | |
| 419 class InstanceInfo(EmrObject): | |
| 420 Fields = set([ | |
| 421 'Id', | |
| 422 'Ec2InstanceId', | |
| 423 'PublicDnsName', | |
| 424 'PublicIpAddress', | |
| 425 'PrivateDnsName', | |
| 426 'PrivateIpAddress' | |
| 427 ]) | |
| 428 | |
| 429 def __init__(self, connection=None): | |
| 430 self.connection = connection | |
| 431 self.status = None | |
| 432 | |
| 433 def startElement(self, name, attrs, connection): | |
| 434 if name == 'Status': | |
| 435 self.status = ClusterStatus() | |
| 436 return self.status | |
| 437 else: | |
| 438 return None | |
| 439 | |
| 440 | |
| 441 class InstanceList(EmrObject): | |
| 442 Fields = set([ | |
| 443 'Marker' | |
| 444 ]) | |
| 445 | |
| 446 def __init__(self, connection=None): | |
| 447 self.connection = connection | |
| 448 self.instances = None | |
| 449 | |
| 450 def startElement(self, name, attrs, connection): | |
| 451 if name == 'Instances': | |
| 452 self.instances = ResultSet([('member', InstanceInfo)]) | |
| 453 return self.instances | |
| 454 else: | |
| 455 return None | |
| 456 | |
| 457 | |
| 458 class StepSummary(EmrObject): | |
| 459 Fields = set([ | |
| 460 'Id', | |
| 461 'Name' | |
| 462 ]) | |
| 463 | |
| 464 def __init__(self, connection=None): | |
| 465 self.connection = connection | |
| 466 self.status = None | |
| 467 self.config = None | |
| 468 | |
| 469 def startElement(self, name, attrs, connection): | |
| 470 if name == 'Status': | |
| 471 self.status = ClusterStatus() | |
| 472 return self.status | |
| 473 elif name == 'Config': | |
| 474 self.config = StepConfig() | |
| 475 return self.config | |
| 476 else: | |
| 477 return None | |
| 478 | |
| 479 | |
| 480 class StepSummaryList(EmrObject): | |
| 481 Fields = set([ | |
| 482 'Marker' | |
| 483 ]) | |
| 484 | |
| 485 def __init__(self, connection=None): | |
| 486 self.connection = connection | |
| 487 self.steps = None | |
| 488 | |
| 489 def startElement(self, name, attrs, connection): | |
| 490 if name == 'Steps': | |
| 491 self.steps = ResultSet([('member', StepSummary)]) | |
| 492 return self.steps | |
| 493 else: | |
| 494 return None | |
| 495 | |
| 496 | |
| 497 class BootstrapActionList(EmrObject): | |
| 498 Fields = set([ | |
| 499 'Marker' | |
| 500 ]) | |
| 501 | |
| 502 def __init__(self, connection=None): | |
| 503 self.connection = connection | |
| 504 self.actions = None | |
| 505 | |
| 506 def startElement(self, name, attrs, connection): | |
| 507 if name == 'BootstrapActions': | |
| 508 self.actions = ResultSet([('member', BootstrapAction)]) | |
| 509 return self.actions | |
| 510 else: | |
| 511 return None |
