Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions pyrax/autoscale.py
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ def get_launch_config(self):

def update_launch_config(self, server_name=None, image=None, flavor=None,
disk_config=None, metadata=None, personality=None, networks=None,
load_balancers=None):
load_balancers=None, key_name=None):
"""
Updates the server launch configuration for this scaling group.
One or more of the available attributes can be specified.
Expand All @@ -118,7 +118,7 @@ def update_launch_config(self, server_name=None, image=None, flavor=None,
return self.manager.update_launch_config(self, server_name=server_name,
image=image, flavor=flavor, disk_config=disk_config,
metadata=metadata, personality=personality, networks=networks,
load_balancers=load_balancers)
load_balancers=load_balancers, key_name=key_name)


def update_launch_metadata(self, metadata):
Expand Down Expand Up @@ -388,12 +388,13 @@ def get_launch_config(self, scaling_group):
ret["metadata"] = srv.get("metadata")
ret["personality"] = srv.get("personality")
ret["networks"] = srv.get("networks")
ret["key_name"] = srv.get("key_name")
return ret


def update_launch_config(self, scaling_group, server_name=None, image=None,
flavor=None, disk_config=None, metadata=None, personality=None,
networks=None, load_balancers=None):
networks=None, load_balancers=None, key_name=None):
"""
Updates the server launch configuration for an existing scaling group.
One or more of the available attributes can be specified.
Expand Down Expand Up @@ -424,6 +425,8 @@ def update_launch_config(self, scaling_group, server_name=None, image=None,
"loadBalancers": load_balancers or lb_args,
},
}
if key_name is not None:
body["args"]["server"]["key_name"] = key_name
resp, resp_body = self.api.method_put(uri, body=body)
return None

Expand Down Expand Up @@ -663,7 +666,8 @@ def _resolve_lbs(load_balancers):
def _create_body(self, name, cooldown, min_entities, max_entities,
launch_config_type, server_name, image, flavor, disk_config=None,
metadata=None, personality=None, networks=None,
load_balancers=None, scaling_policies=None, group_metadata=None):
load_balancers=None, scaling_policies=None, group_metadata=None,
key_name=None):
"""
Used to create the dict required to create any of the following:
A Scaling Group
Expand Down Expand Up @@ -694,6 +698,8 @@ def _create_body(self, name, cooldown, min_entities, max_entities,
server_args["networks"] = networks
if disk_config is not None:
server_args["OS-DCF:diskConfig"] = disk_config
if key_name is not None:
server_args["key_name"] = key_name
load_balancer_args = self._resolve_lbs(load_balancers)
body = {"groupConfiguration": {
"name": name,
Expand Down Expand Up @@ -922,7 +928,7 @@ def get_launch_config(self, scaling_group):

def update_launch_config(self, scaling_group, server_name=None, image=None,
flavor=None, disk_config=None, metadata=None, personality=None,
networks=None, load_balancers=None):
networks=None, load_balancers=None, key_name=None):
"""
Updates the server launch configuration for an existing scaling group.
One or more of the available attributes can be specified.
Expand All @@ -935,7 +941,7 @@ def update_launch_config(self, scaling_group, server_name=None, image=None,
server_name=server_name, image=image, flavor=flavor,
disk_config=disk_config, metadata=metadata,
personality=personality, networks=networks,
load_balancers=load_balancers)
load_balancers=load_balancers, key_name=key_name)


def update_launch_metadata(self, scaling_group, metadata):
Expand Down
20 changes: 14 additions & 6 deletions tests/unit/test_autoscale.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,15 +114,16 @@ def test_update_launch_config(self):
personality = utils.random_name()
networks = utils.random_name()
load_balancers = utils.random_name()
key_name = utils.random_name()
sg.update_launch_config(server_name=server_name, flavor=flavor,
image=image, disk_config=disk_config, metadata=metadata,
personality=personality, networks=networks,
load_balancers=load_balancers)
load_balancers=load_balancers, key_name=key_name)
mgr.update_launch_config.assert_called_once_with(sg,
server_name=server_name, flavor=flavor, image=image,
disk_config=disk_config, metadata=metadata,
personality=personality, networks=networks,
load_balancers=load_balancers)
load_balancers=load_balancers, key_name=key_name)

def test_update_launch_metadata(self):
sg = self.scaling_group
Expand Down Expand Up @@ -404,6 +405,7 @@ def test_mgr_get_launch_config(self):
metadata = utils.random_name()
personality = utils.random_name()
networks = utils.random_name()
key_name = utils.random_name()
launchdict = {"launchConfiguration": {
"type": typ,
"args": {
Expand All @@ -416,6 +418,7 @@ def test_mgr_get_launch_config(self):
"metadata": metadata,
"personality": personality,
"networks": networks,
"key_name": key_name,
},
},
},
Expand All @@ -430,6 +433,7 @@ def test_mgr_get_launch_config(self):
"metadata": metadata,
"personality": personality,
"networks": networks,
"key_name": key_name,
}
mgr.api.method_get = Mock(return_value=(None, launchdict))
uri = "/%s/%s/launch" % (mgr.uri_base, sg.id)
Expand Down Expand Up @@ -845,6 +849,7 @@ def test_mgr_create_body(self):
image = utils.random_name()
group_metadata = utils.random_name()
server_metadata = utils.random_name()
key_name = utils.random_name()
expected = {
"groupConfiguration": {
"cooldown": cooldown,
Expand All @@ -862,7 +867,8 @@ def test_mgr_create_body(self):
"metadata": server_metadata,
"name": server_name,
"networks": [{"uuid": SERVICE_NET_ID}],
"personality": []}
"personality": [],
"key_name": key_name}
},
"type": launch_config_type},
"scalingPolicies": []}
Expand All @@ -872,7 +878,7 @@ def test_mgr_create_body(self):
launch_config_type, server_name, image, flavor,
disk_config=None, metadata=server_metadata, personality=None,
networks=None, load_balancers=None, scaling_policies=None,
group_metadata=group_metadata)
group_metadata=group_metadata, key_name=key_name)
self.assertEqual(ret, expected)

def test_policy_init(self):
Expand Down Expand Up @@ -1105,15 +1111,17 @@ def test_clt_update_launch_config(self):
personality = utils.random_name()
networks = utils.random_name()
load_balancers = utils.random_name()
key_name = utils.random_name()
clt.update_launch_config(sg, server_name=server_name, flavor=flavor,
image=image, disk_config=disk_config, metadata=metadata,
personality=personality, networks=networks,
load_balancers=load_balancers)
load_balancers=load_balancers,
key_name=key_name)
mgr.update_launch_config.assert_called_once_with(sg,
server_name=server_name, flavor=flavor, image=image,
disk_config=disk_config, metadata=metadata,
personality=personality, networks=networks,
load_balancers=load_balancers)
load_balancers=load_balancers, key_name=key_name)

def test_clt_update_launch_metadata(self):
clt = fakes.FakeAutoScaleClient()
Expand Down