cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
158
Views
0
Helpful
3
Replies

service profile template

tdubb123
Level 1
Level 1

i am not sure why i keep getting this error

 

The full traceback is:
File "/var/folders/0x/b8776q3d3r92tmhjw6pkb9hh0028xg/T/ansible_cisco.intersight.intersight_rest_api_payload_3zsdptym/ansible_cisco.intersight.intersight_rest_api_payload.zip/ansible_collections/cisco/intersight/plugins/module_utils/intersight.py", line 243, in call_api
raise RuntimeError(info['status'], info['msg'], info['body'])
~~~~^^^^^^^^

 

"msg": "API error: 'body' "

 

any idea?

 

---
# Create Server Profile Template for Fibre Channel Boot from SAN
- name: "Configure Server Profile Template for Fibre Channel Boot"
  vars:
        api_info: &api_info_assign_fc
          api_private_key: "{{ api_private_key }}"
          api_key_id: "{{ api_key_id }}"
          api_uri: "{{ api_uri | default(omit) }}"
          validate_certs: "{{ validates_certs | default(omit) }}"
          state: "{{ state | default(omit) }}"

  cisco.intersight.intersight_rest_api:
          <<: *api_info_assign_fc
          resource_path: /server/ProfileTemplates
          query_params:
            $filter: "Name eq '{{ name_of_fc_SPT }}'"
          api_body: {
              "Action": "No-op",
              "Name": "{{ name_of_fc_SPT }}",
              "Description": "{{ description_of_fc_SPT }}",
              ClassId: "server.ProfileTemplate",
              "PolicyBucket": [
                {
                  "Moid": "{{ bios_policy_details.api_response.Moid }}",
                  "ObjectType": "bios.Policy"
                },
                {
                  "Moid": "{{ imc_access_policy_details.api_response.Moid }}",
                  "ObjectType": "access.Policy"
                },
                {
                  "Moid": "{{ ipmi_policy_details.api_response.Moid }}",
                  "ObjectType": "ipmioverlan.Policy"
                },
                {
                  "Moid": "{{ san_connectivity_policy_details.api_response.Moid }}",
                  "ObjectType": "vnic.SanConnectivityPolicy"
                },
                {
                  "Moid": "{{ fc_lan_connectivity_policy_details.api_response.Moid }}",
                  "ObjectType": "vnic.LanConnectivityPolicy"
                },
                {
                  "Moid": "{{ kvm_policy_details.api_response.Moid }}",
                  "ObjectType": "kvm.Policy"
                },
                {
                  "Moid": "{{ vmedia_policy_details.api_response.Moid }}",
                  "ObjectType": "vmedia.Policy"
                },
                {
                  "Moid": "{{ power_policy_details.api_response.Moid }}",
                  "ObjectType": "power.Policy"
                },
                {
                  "Moid": "{{ thermal_policy_details.api_response.Moid }}",
                  "ObjectType": "thermal.Policy"
                },
                {
                  "Moid": "{{ snmp_policy_details.api_response.Moid }}",
                  "ObjectType": "snmp.Policy"
                },
                {
                  "Moid": "{{ syslog_policy_details.api_response.Moid }}",
                  "ObjectType": "syslog.Policy"
                },
              ],
              "TargetPlatform": "FIAttached",
              "Organization": {
                "Moid": "{{ intersight_org.api_response.Moid }}"
              },
              Tags: [{Key: "configmode", Value: "ansible"},{Key: "prefix", Value: "{{ prefix }}"}],
              UuidAddressType: "POOL",
              UuidPool: {
                "Moid": "{{ uuid_pool_details.api_response.Moid }}"
              }
            }
  
1 Accepted Solution

Accepted Solutions

Torbjørn
Spotlight
Spotlight

I believe all keys must be quoted to be valid JSON, try this:

---
# Create Server Profile Template for Fibre Channel Boot from SAN
- name: "Configure Server Profile Template for Fibre Channel Boot"
  vars:
        api_info: &api_info_assign_fc
          api_private_key: "{{ api_private_key }}"
          api_key_id: "{{ api_key_id }}"
          api_uri: "{{ api_uri | default(omit) }}"
          validate_certs: "{{ validates_certs | default(omit) }}"
          state: "{{ state | default(omit) }}"

  cisco.intersight.intersight_rest_api:
          <<: *api_info_assign_fc
          resource_path: /server/ProfileTemplates
          query_params:
            $filter: "Name eq '{{ name_of_fc_SPT }}'"
          api_body: {
              "Action": "No-op",
              "Name": "{{ name_of_fc_SPT }}",
              "Description": "{{ description_of_fc_SPT }}",
              "ClassId": "server.ProfileTemplate",
              "PolicyBucket": [
                {
                  "Moid": "{{ bios_policy_details.api_response.Moid }}",
                  "ObjectType": "bios.Policy"
                },
                {
                  "Moid": "{{ imc_access_policy_details.api_response.Moid }}",
                  "ObjectType": "access.Policy"
                },
                {
                  "Moid": "{{ ipmi_policy_details.api_response.Moid }}",
                  "ObjectType": "ipmioverlan.Policy"
                },
                {
                  "Moid": "{{ san_connectivity_policy_details.api_response.Moid }}",
                  "ObjectType": "vnic.SanConnectivityPolicy"
                },
                {
                  "Moid": "{{ fc_lan_connectivity_policy_details.api_response.Moid }}",
                  "ObjectType": "vnic.LanConnectivityPolicy"
                },
                {
                  "Moid": "{{ kvm_policy_details.api_response.Moid }}",
                  "ObjectType": "kvm.Policy"
                },
                {
                  "Moid": "{{ vmedia_policy_details.api_response.Moid }}",
                  "ObjectType": "vmedia.Policy"
                },
                {
                  "Moid": "{{ power_policy_details.api_response.Moid }}",
                  "ObjectType": "power.Policy"
                },
                {
                  "Moid": "{{ thermal_policy_details.api_response.Moid }}",
                  "ObjectType": "thermal.Policy"
                },
                {
                  "Moid": "{{ snmp_policy_details.api_response.Moid }}",
                  "ObjectType": "snmp.Policy"
                },
                {
                  "Moid": "{{ syslog_policy_details.api_response.Moid }}",
                  "ObjectType": "syslog.Policy"
                },
              ],
              "TargetPlatform": "FIAttached",
              "Organization": {
                "Moid": "{{ intersight_org.api_response.Moid }}"
              },
              "Tags": [{"Key": "configmode", "Value": "ansible"},{"Key": "prefix", "Value": "{{ prefix }}"}],
              "UuidAddressType": "POOL",
              "UuidPool": {
                "Moid": "{{ uuid_pool_details.api_response.Moid }}"
              }
            }

 

Happy to help! Please mark as helpful/solution if applicable.
Get in touch: https://torbjorn.dev

View solution in original post

3 Replies 3

Torbjørn
Spotlight
Spotlight

I believe all keys must be quoted to be valid JSON, try this:

---
# Create Server Profile Template for Fibre Channel Boot from SAN
- name: "Configure Server Profile Template for Fibre Channel Boot"
  vars:
        api_info: &api_info_assign_fc
          api_private_key: "{{ api_private_key }}"
          api_key_id: "{{ api_key_id }}"
          api_uri: "{{ api_uri | default(omit) }}"
          validate_certs: "{{ validates_certs | default(omit) }}"
          state: "{{ state | default(omit) }}"

  cisco.intersight.intersight_rest_api:
          <<: *api_info_assign_fc
          resource_path: /server/ProfileTemplates
          query_params:
            $filter: "Name eq '{{ name_of_fc_SPT }}'"
          api_body: {
              "Action": "No-op",
              "Name": "{{ name_of_fc_SPT }}",
              "Description": "{{ description_of_fc_SPT }}",
              "ClassId": "server.ProfileTemplate",
              "PolicyBucket": [
                {
                  "Moid": "{{ bios_policy_details.api_response.Moid }}",
                  "ObjectType": "bios.Policy"
                },
                {
                  "Moid": "{{ imc_access_policy_details.api_response.Moid }}",
                  "ObjectType": "access.Policy"
                },
                {
                  "Moid": "{{ ipmi_policy_details.api_response.Moid }}",
                  "ObjectType": "ipmioverlan.Policy"
                },
                {
                  "Moid": "{{ san_connectivity_policy_details.api_response.Moid }}",
                  "ObjectType": "vnic.SanConnectivityPolicy"
                },
                {
                  "Moid": "{{ fc_lan_connectivity_policy_details.api_response.Moid }}",
                  "ObjectType": "vnic.LanConnectivityPolicy"
                },
                {
                  "Moid": "{{ kvm_policy_details.api_response.Moid }}",
                  "ObjectType": "kvm.Policy"
                },
                {
                  "Moid": "{{ vmedia_policy_details.api_response.Moid }}",
                  "ObjectType": "vmedia.Policy"
                },
                {
                  "Moid": "{{ power_policy_details.api_response.Moid }}",
                  "ObjectType": "power.Policy"
                },
                {
                  "Moid": "{{ thermal_policy_details.api_response.Moid }}",
                  "ObjectType": "thermal.Policy"
                },
                {
                  "Moid": "{{ snmp_policy_details.api_response.Moid }}",
                  "ObjectType": "snmp.Policy"
                },
                {
                  "Moid": "{{ syslog_policy_details.api_response.Moid }}",
                  "ObjectType": "syslog.Policy"
                },
              ],
              "TargetPlatform": "FIAttached",
              "Organization": {
                "Moid": "{{ intersight_org.api_response.Moid }}"
              },
              "Tags": [{"Key": "configmode", "Value": "ansible"},{"Key": "prefix", "Value": "{{ prefix }}"}],
              "UuidAddressType": "POOL",
              "UuidPool": {
                "Moid": "{{ uuid_pool_details.api_response.Moid }}"
              }
            }

 

Happy to help! Please mark as helpful/solution if applicable.
Get in touch: https://torbjorn.dev

tdubb123
Level 1
Level 1

i got same error

 

 

ok its working now