---
# Example Playbook: cisco.ucs.ucs_service_profile_from_template
- hosts: ucs
  connection: local
  gather_facts: false

  tasks:
    - name: Test that we have a UCS hostname, UCS username, and UCS password
      fail:
        msg: 'Please define the following variables: ucs_hostname, ucs_username and ucs_password.'
      when: ucs_hostname is not defined or ucs_username is not defined or ucs_password is not defined
      vars:
        # use "<<: *login_info" to substite the information below in each task
        # this is not required, however it makes the playbook shorter.
        login_info: &login_info
          hostname: "{{ ucs_hostname }}"
          username: "{{ ucs_username }}"
          password: "{{ ucs_password }}"

    - name: Add UCS Organization
      cisco.ucs.ucs_org:
        <<: *login_info
        org_name: level1
        parent_org_path: root
        description: level1 org
        state: present
      delegate_to: localhost

    - name: Configure Service Profile Template with LAN/SAN Connectivity and all other options defaulted
      cisco.ucs.ucs_service_profile_template:
        <<: *login_info
        name: sp-template
        org_dn: org-root/org-level1
        template_type: updating-template
        uuid_pool: UUID-Pool
        storage_profile: DEE-StgProf
        lan_connectivity_policy: Cntr-FC-Boot
        iqn_pool: iSCSI-Boot-A
        san_connectivity_policy: Cntr-FC-Boot
        boot_policy: DEE-vMedia
        maintenance_policy: default
        server_pool: Container-Pool
        host_firmware_package: 3.1.2b
        bios_policy: Docker
      delegate_to: localhost

    - name: Configure Service Profile from Template
      cisco.ucs.ucs_service_profile_from_template:
        <<: *login_info
        name: sp-instance-1
        org_dn: org-root/org-level1
        user_label: SP Instance
        power_state: down
        source_template: sp-template
      delegate_to: localhost

    - name: Remove Service Profile Template
      cisco.ucs.ucs_service_profile_template:
        <<: *login_info
        name: sp-template
        org_dn: org-root/org-level1
        state: absent
      delegate_to: localhost

    - name: Remove UCS Organization
      cisco.ucs.ucs_org:
        <<: *login_info
        org_name: level1
        parent_org_path: root
        state: absent
      delegate_to: localhost
