Merge "Add support for setting the Flavor when creating a load balancer"

This commit is contained in:
Zuul 2020-07-26 16:41:19 +00:00 committed by Gerrit Code Review
commit 284d7871ce

@ -14,7 +14,7 @@ description:
options: options:
name: name:
description: description:
- Name that has to be given to the load balancer - The name of the load balancer.
required: true required: true
type: str type: str
state: state:
@ -23,6 +23,10 @@ options:
choices: [present, absent] choices: [present, absent]
default: present default: present
type: str type: str
flavor:
description:
- The flavor of the load balancer.
type: str
vip_network: vip_network:
description: description:
- The name or id of the network for the virtual IP of the load balancer. - The name or id of the network for the virtual IP of the load balancer.
@ -327,6 +331,7 @@ def _wait_for_lb(module, cloud, lb, status, failures, interval=5):
def main(): def main():
argument_spec = openstack_full_argument_spec( argument_spec = openstack_full_argument_spec(
name=dict(required=True), name=dict(required=True),
flavor=dict(required=False),
state=dict(default='present', choices=['absent', 'present']), state=dict(default='present', choices=['absent', 'present']),
vip_network=dict(required=False), vip_network=dict(required=False),
vip_subnet=dict(required=False), vip_subnet=dict(required=False),
@ -342,6 +347,7 @@ def main():
module = AnsibleModule(argument_spec, **module_kwargs) module = AnsibleModule(argument_spec, **module_kwargs)
sdk, cloud = openstack_cloud_from_module(module) sdk, cloud = openstack_cloud_from_module(module)
flavor = module.params['flavor']
vip_network = module.params['vip_network'] vip_network = module.params['vip_network']
vip_subnet = module.params['vip_subnet'] vip_subnet = module.params['vip_subnet']
vip_port = module.params['vip_port'] vip_port = module.params['vip_port']
@ -354,6 +360,7 @@ def main():
vip_network_id = None vip_network_id = None
vip_subnet_id = None vip_subnet_id = None
vip_port_id = None vip_port_id = None
flavor_id = None
try: try:
changed = False changed = False
@ -368,6 +375,14 @@ def main():
"be specified for load balancer creation" "be specified for load balancer creation"
) )
if flavor:
_flavor = cloud.load_balancer.find_flavor(flavor)
if not _flavor:
module.fail_json(
msg='flavor %s not found' % flavor
)
flavor_id = _flavor.id
if vip_network: if vip_network:
network = cloud.get_network(vip_network) network = cloud.get_network(vip_network)
if not network: if not network:
@ -392,6 +407,7 @@ def main():
lb = cloud.load_balancer.create_load_balancer( lb = cloud.load_balancer.create_load_balancer(
name=module.params['name'], name=module.params['name'],
flavor_id=flavor_id,
vip_network_id=vip_network_id, vip_network_id=vip_network_id,
vip_subnet_id=vip_subnet_id, vip_subnet_id=vip_subnet_id,
vip_port_id=vip_port_id, vip_port_id=vip_port_id,