1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139
|
"""
SoftLayer.autoscale
~~~~~~~~~~~~~~~~~~~
Autoscale manager
:license: MIT, see LICENSE for more details.
"""
class AutoScaleManager(object):
"""Manager for interacting with Autoscale instances."""
def __init__(self, client):
self.client = client
def list(self, mask=None):
"""Calls `SoftLayer_Account::getScaleGroups()`_
:param mask: optional SoftLayer_Scale_Group objectMask
.. _SoftLayer_Account::getScaleGroups():
https://sldn.softlayer.com/reference/services/SoftLayer_Account/getScaleGroups/
"""
if not mask:
mask = "mask[status,virtualGuestMemberCount]"
return self.client.call('SoftLayer_Account', 'getScaleGroups', mask=mask, iter=True)
def details(self, identifier, mask=None):
"""Calls `SoftLayer_Scale_Group::getObject()`_
:param identifier: SoftLayer_Scale_Group id
:param mask: optional SoftLayer_Scale_Group objectMask
.. _SoftLayer_Scale_Group::getObject():
https://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group/getObject/
"""
if not mask:
mask = """mask[virtualGuestMembers[id,virtualGuest[id,hostname,domain,provisionDate]], terminationPolicy,
virtualGuestMemberCount, virtualGuestMemberTemplate[sshKeys],
policies[id,name,createDate,cooldown,actions,triggers,scaleActions],
networkVlans[networkVlanId,networkVlan[networkSpace,primaryRouter[hostname]]],
loadBalancers, regionalGroup[locations]]"""
return self.client.call('SoftLayer_Scale_Group', 'getObject', id=identifier, mask=mask)
def get_policy(self, identifier, mask=None):
"""Calls `SoftLayer_Scale_Policy::getObject()`_
:param identifier: SoftLayer_Scale_Policy id
:param mask: optional SoftLayer_Scale_Policy objectMask
.. _SoftLayer_Scale_Policy::getObject():
https://sldn.softlayer.com/reference/services/SoftLayer_Scale_Policy/getObject/
"""
if not mask:
mask = """mask[cooldown, createDate, id, name, actions, triggers[type]
]"""
return self.client.call('SoftLayer_Scale_Policy', 'getObject', id=identifier, mask=mask)
def scale(self, identifier, amount):
"""Calls `SoftLayer_Scale_Group::scale()`_
:param identifier: SoftLayer_Scale_Group Id
:param amount: positive or negative number to scale the group by
.. _SoftLayer_Scale_Group::scale():
https://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group/scale/
"""
return self.client.call('SoftLayer_Scale_Group', 'scale', amount, id=identifier)
def scale_to(self, identifier, amount):
"""Calls `SoftLayer_Scale_Group::scaleTo()`_
:param identifier: SoftLayer_Scale_Group Id
:param amount: number to scale the group to.
.. _SoftLayer_Scale_Group::scaleTo():
https://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group/scaleTo/
"""
return self.client.call('SoftLayer_Scale_Group', 'scaleTo', amount, id=identifier)
def get_logs(self, identifier, mask=None, object_filter=None):
"""Calls `SoftLayer_Scale_Group::getLogs()`_
:param identifier: SoftLayer_Scale_Group Id
:param mask: optional SoftLayer_Scale_Group_Log objectMask
:param object_filter: optional SoftLayer_Scale_Group_Log objectFilter
.. _SoftLayer_Scale_Group::getLogs():
https://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group/getLogs/
"""
return self.client.call('SoftLayer_Scale_Group', 'getLogs', id=identifier, mask=mask, filter=object_filter,
iter=True)
def get_virtual_guests(self, identifier, mask=None):
"""Calls `SoftLayer_Scale_Group::getVirtualGuestMembers()`_
:param identifier: SoftLayer_Scale_Group Id
:param mask: optional SoftLayer_Scale_Member objectMask
.. _SoftLayer_Scale_Group::getVirtualGuestMembers():
https://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group/getVirtualGuestMembers/
"""
return self.client.call('SoftLayer_Scale_Group', 'getVirtualGuestMembers', id=identifier, mask=mask, iter=True)
def edit(self, identifier, template):
"""Calls `SoftLayer_Scale_Group::editObject()`_
:param identifier: SoftLayer_Scale_Group id
:param template: `SoftLayer_Scale_Group`_
.. _SoftLayer_Scale_Group::editObject():
https://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group/editObject/
.. _SoftLayer_Scale_Group: https://sldn.softlayer.com/reference/datatypes/SoftLayer_Scale_Group/
"""
return self.client.call('SoftLayer_Scale_Group', 'editObject', template, id=identifier)
def create(self, template):
"""Calls `SoftLayer_Scale_Group::createObject()`_
:param template: `SoftLayer_Scale_Group`_
.. _SoftLayer_Scale_Group::createObject():
https://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group/createObject/
.. _SoftLayer_Scale_Group: https://sldn.softlayer.com/reference/datatypes/SoftLayer_Scale_Group/
"""
return self.client.call('SoftLayer_Scale_Group', 'createObject', template)
def delete(self, identifier):
"""Calls `SoftLayer_Scale_Group::forceDeleteObject()`_
:param identifier: SoftLayer_Scale_Group id
.. _SoftLayer_Scale_Group::forceDeleteObject():
https://sldn.softlayer.com/reference/services/SoftLayer_Scale_Group/forceDeleteObject/
"""
return self.client.call('SoftLayer_Scale_Group', 'forceDeleteObject', id=identifier)
|