# ============================================================
- name: Test rax_scaling_group with no args
  rax_scaling_group:
  ignore_errors: true
  register: rax_scaling_group

- name: Validate results of rax_scaling_group with no args
  assert:
    that:
      - rax_scaling_group|failed
      - "rax_scaling_group.msg == 'missing required arguments: image,min_entities,flavor,max_entities,name,server_name'"
# ============================================================



# ============================================================
- name: Test rax_scaling_group with image,min_entities,flavor,max_entities,name,server_name
  rax_scaling_group:
    name: "{{ resource_prefix }}-1"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-1"
  ignore_errors: true
  register: rax_scaling_group

- name: Validate results of rax_scaling_group with image,min_entities,flavor,max_entities,name,server_name
  assert:
    that:
      - rax_scaling_group|failed
      - rax_scaling_group.msg == 'No credentials supplied!'
# ============================================================



# ============================================================
- name: Test rax_scaling_group with creds and required args
  rax_scaling_group:
    name: "{{ resource_prefix }}-1"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
  ignore_errors: true
  register: rax_scaling_group

- name: Validate results of rax_scaling_group with creds and required args
  assert:
    that:
      - rax_scaling_group|failed
      - rax_scaling_group.msg.startswith('None is not a valid region')
# ============================================================





# ============================================================
- name: Test rax_scaling_group with creds, region and required args
  rax_scaling_group:
    name: "{{ resource_prefix }}-1"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Validate results of rax_scaling_group with creds, region and required args
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group.autoscale_group.name == "{{ resource_prefix }}-1"
      - rax_scaling_group.autoscale_group.min_entities == 1
      - rax_scaling_group.autoscale_group.max_entities == 1
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.flavorRef == "{{ rackspace_flavor }}"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.imageRef == "{{ rackspace_image_id }}"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.name == "{{ resource_prefix }}-1"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.personality == []
      - rax_scaling_group.autoscale_group.launchConfiguration.args.loadBalancers == []
      - rax_scaling_group.autoscale_group.metadata == {}

- name: Test rax_scaling_group idempotency 1
  rax_scaling_group:
    name: "{{ resource_prefix }}-1"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Validate idempotency 1
  assert:
    that:
      - not rax_scaling_group|changed

- name: Remove servers 1
  rax_scaling_group:
    name: "{{ resource_prefix }}-1"
    image: "{{ rackspace_image_id }}"
    min_entities: 0
    max_entities: 0
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Validate remove servers 1
  assert:
    that:
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.min_entities == 0
      - rax_scaling_group.autoscale_group.max_entities == 0
      - rax_scaling_group.autoscale_group.state.desiredCapacity == 0

- name: Test delete integration 1
  rax_scaling_group:
    name: "{{ resource_prefix }}-1"
    image: "{{ rackspace_image_id }}"
    min_entities: 0
    max_entities: 0
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    state: absent
  register: rax_scaling_group

- name: Validate delete integration 1
  assert:
    that:
      - rax_scaling_group|changed
# ============================================================



# ============================================================
- name: Test rax_scaling_group server_name change 1
  rax_scaling_group:
    name: "{{ resource_prefix }}-2"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-2"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Validate results of rax_scaling_group server_name change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group.autoscale_group.name == "{{ resource_prefix }}-2"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.name == "{{ resource_prefix }}-2"

- name: Test rax_scaling_group server_name change 2
  rax_scaling_group:
    name: "{{ resource_prefix }}-2"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-2a"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Validate results of rax_scaling_group server_name change 2
  assert:
    that:
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.name == "{{ resource_prefix }}-2"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.name == "{{ resource_prefix }}-2a"

- name: Remove servers 2
  rax_scaling_group:
    name: "{{ resource_prefix }}-2"
    image: "{{ rackspace_image_id }}"
    min_entities: 0
    max_entities: 0
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-2a"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Validate remove servers 2
  assert:
    that:
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.min_entities == 0
      - rax_scaling_group.autoscale_group.max_entities == 0
      - rax_scaling_group.autoscale_group.state.desiredCapacity == 0

- name: Test delete integration 2
  rax_scaling_group:
    name: "{{ resource_prefix }}-2"
    image: "{{ rackspace_image_id }}"
    min_entities: 0
    max_entities: 0
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-2a"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    state: absent
  register: rax_scaling_group

- name: Validate delete integration 2
  assert:
    that:
      - rax_scaling_group|changed
# ============================================================




# ============================================================
- name: Test rax_scaling_group with invalid load balancers
  rax_scaling_group:
    name: "{{ resource_prefix }}-3"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-3"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    loadbalancers:
      - id: "1234567890-0987654321"
        port: 80
  register: rax_scaling_group
  ignore_errors: true

- name: Validate results of rax_scaling_group with load balancers
  assert:
    that:
      - rax_scaling_group|failed
      - rax_scaling_group.msg.startswith('Load balancer ID is not an integer')
# ============================================================




# ============================================================
- name: Build a CLB to test rax_scaling_group with
  rax_clb:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    name: "{{ resource_prefix }}-clb"
    wait: true
    wait_timeout: "{{ rackspace_wait_timeout }}"
  register: rax_clb

- name: Validate rax_clb creation
  assert:
    that:
      - rax_clb|success

- name: Set variable for CLB ID
  set_fact:
    rax_clb_id: "{{ rax_clb.balancer.id }}"
# ============================================================




# ============================================================
- name: Test rax_scaling_group with load balancers
  rax_scaling_group:
    name: "{{ resource_prefix }}-3"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-3"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    loadbalancers:
      - id: "{{ rax_clb_id }}"
        port: 80
  register: rax_scaling_group

- name: Validate results of rax_scaling_group with load balancers
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group.autoscale_group.name == "{{ resource_prefix }}-3"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.loadBalancers[0].loadBalancerId == rax_clb_id|int

- name: Remove servers 3
  rax_scaling_group:
    name: "{{ resource_prefix }}-3"
    image: "{{ rackspace_image_id }}"
    min_entities: 0
    max_entities: 0
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-3"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Test delete integration 3
  rax_scaling_group:
    name: "{{ resource_prefix }}-3"
    image: "{{ rackspace_image_id }}"
    min_entities: 0
    max_entities: 0
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-3"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    state: absent
  register: rax_scaling_group
# ============================================================




# ============================================================
- name: Test rax_scaling_group files change 1
  rax_scaling_group:
    name: "{{ resource_prefix }}-4"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    files:
      /tmp/test.txt: "{{ role_path }}/files/test.txt"
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-4"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Validate results of rax_scaling_group files change 1
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group.autoscale_group.name == "{{ resource_prefix }}-4"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.personality|length == 1

- name: Test rax_scaling_group files change 2
  rax_scaling_group:
    name: "{{ resource_prefix }}-4"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-4"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Validate results of rax_scaling_group files change 2
  assert:
    that:
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.name == "{{ resource_prefix }}-4"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.personality is not defined

- name: Remove servers 4
  rax_scaling_group:
    name: "{{ resource_prefix }}-4"
    image: "{{ rackspace_image_id }}"
    min_entities: 0
    max_entities: 0
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-4"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Test delete integration 4
  rax_scaling_group:
    name: "{{ resource_prefix }}-4"
    image: "{{ rackspace_image_id }}"
    min_entities: 0
    max_entities: 0
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-4"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    state: absent
  register: rax_scaling_group
# ============================================================



# ============================================================
- name: Build scaling group to test argument changes
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-5"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
  register: rax_scaling_group

- name: Validate default create
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.name == "{{ resource_prefix }}-5"
      - rax_scaling_group.autoscale_group.min_entities == 1
      - rax_scaling_group.autoscale_group.max_entities == 1
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.flavorRef == "{{ rackspace_flavor }}"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.imageRef == "{{ rackspace_image_id }}"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.name == "{{ resource_prefix }}-5"
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.personality == []
      - rax_scaling_group.autoscale_group.launchConfiguration.args.loadBalancers == []
      - rax_scaling_group.autoscale_group.metadata == {}
# ============================================================



# ============================================================
- name: Change cooldown
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 1
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-5"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
  register: rax_scaling_group

- name: Validate cooldown change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.cooldown == 500
# ============================================================




# ============================================================
- name: Change max_entities
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_image_id }}"
    min_entities: 1
    max_entities: 2
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-5"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
  register: rax_scaling_group

- name: Validate max_entities change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.max_entities == 2
# ============================================================




# ============================================================
- name: Change min_entities
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-5"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
  register: rax_scaling_group

- name: Validate min_entities change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.min_entities == 2
# ============================================================




# ============================================================
- name: Change server_name
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
  register: rax_scaling_group

- name: Validate server_name change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.name == "{{ resource_prefix }}-5-1"
# ============================================================




# ============================================================
- name: Change image
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_alt_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
  register: rax_scaling_group

- name: Validate image change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.imageRef == "{{ rackspace_alt_image_id }}"
# ============================================================




# ============================================================
- name: Change flavor
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_alt_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_alt_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
  register: rax_scaling_group

- name: Validate flavor change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.flavorRef == "{{ rackspace_alt_flavor }}"
# ============================================================




# ============================================================
- name: Change disk_config
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_alt_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_alt_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
    disk_config: auto
  register: rax_scaling_group

- name: Validate flavor change
  assert:
    that:
      - rax_scaling_group|success
      - not rax_scaling_group|changed
      - "rax_scaling_group.autoscale_group.launchConfiguration.args.server['OS-DCF:diskConfig'] == 'AUTO'"

- name: Change disk_config 2
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_alt_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_alt_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
    disk_config: manual
  register: rax_scaling_group

- name: Validate flavor change 2
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - "rax_scaling_group.autoscale_group.launchConfiguration.args.server['OS-DCF:diskConfig'] == 'MANUAL'"
# ============================================================




# ============================================================
- name: Change networks
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_alt_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_alt_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
    disk_config: manual
    networks:
      - public
  register: rax_scaling_group

- name: Validate networks change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.networks.0.uuid == "00000000-0000-0000-0000-000000000000"
# ============================================================




# ============================================================
- name: Change load balancers
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_alt_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_alt_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
    disk_config: manual
    networks:
      - public
      - private
    loadbalancers:
      - id: "{{ rax_clb_id }}"
        port: 80
  register: rax_scaling_group

- name: Validate networks change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.launchConfiguration.args.loadBalancers.0.loadBalancerId == rax_clb_id|int
# ============================================================




# ============================================================
- name: Create keypair to test with
  rax_keypair:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    name: "{{ resource_prefix }}-keypair"
    public_key: "{{ rackspace_keypair_pub }}"
  register: rax_keypair

- name: Validate rax_keypair creation
  assert:
    that:
      - rax_keypair|success
      - rax_keypair|changed
      - rax_keypair.keypair.name == "{{ resource_prefix }}-keypair"
      - rax_keypair.keypair.public_key == "{{ rackspace_keypair_pub }}"
# ============================================================




# ============================================================
- name: Change key_name
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_alt_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_alt_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
    disk_config: manual
    networks:
      - public
      - private
    loadbalancers:
      - id: "{{ rax_clb_id }}"
        port: 80
    key_name: "{{ resource_prefix }}-keypair"
  register: rax_scaling_group

- name: Validate key_name change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.key_name == "{{ resource_prefix }}-keypair"
# ============================================================




# ============================================================
- name: Change config_drive
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_alt_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_alt_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
    disk_config: manual
    networks:
      - public
      - private
    loadbalancers:
      - id: "{{ rax_clb_id }}"
        port: 80
    key_name: "{{ resource_prefix }}-keypair"
    config_drive: true
  register: rax_scaling_group

- name: Validate config_drive change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.config_drive
# ============================================================



# ============================================================
- name: Change config_drive
  rax_scaling_group:
    name: "{{ resource_prefix }}-5"
    image: "{{ rackspace_alt_image_id }}"
    min_entities: 2
    max_entities: 2
    flavor: "{{ rackspace_alt_flavor }}"
    server_name: "{{ resource_prefix }}-5-1"
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    cooldown: 500
    disk_config: manual
    networks:
      - public
      - private
    loadbalancers:
      - id: "{{ rax_clb_id }}"
        port: 80
    key_name: "{{ resource_prefix }}-keypair"
    config_drive: true
    user_data: "foo"
  register: rax_scaling_group

- name: Validate config_drive change
  assert:
    that:
      - rax_scaling_group|success
      - rax_scaling_group|changed
      - rax_scaling_group.autoscale_group.launchConfiguration.args.server.user_data == '{{ "foo"|b64encode }}'
# ============================================================




# ============================================================
- name: Delete keypair
  rax_keypair:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    name: "{{ resource_prefix }}-keypair"
    public_key: "{{ rackspace_keypair_pub }}"
    state: absent
  register: rax_keypair

- name: Validate rax_keypair creation
  assert:
    that:
      - rax_keypair|success
      - rax_keypair|changed
# ============================================================




# ============================================================
- name: Delete CLB
  rax_clb:
    username: "{{ rackspace_username }}"
    api_key: "{{ rackspace_api_key }}"
    region: "{{ rackspace_region }}"
    name: "{{ rax_clb.balancer.name }}"
    state: absent
    wait: true
    wait_timeout: "{{ rackspace_wait_timeout }}"
  register: rax_clb

- name: "Validate delete integration 3"
  assert:
    that:
      - rax_clb|changed
      - rax_clb.balancer.id == rax_clb_id|int
# ============================================================
