<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Using Rest service for Adding Device in Network Access Control</title>
    <link>https://community.cisco.com/t5/network-access-control/using-rest-service-for-adding-device/m-p/3008479#M22846</link>
    <description>&lt;P&gt;Hi Folks,&lt;/P&gt;
&lt;P&gt;I am using ACS 5.4 and I would like to add device by using perl script. However, it did not work. Has anyone can help me?&lt;/P&gt;
&lt;P&gt;#!/usr/bin/env perl -w&lt;BR /&gt; use strict;&lt;BR /&gt; use warnings;&lt;BR /&gt; use MIME::Base64;&lt;BR /&gt; use REST::Client;&lt;BR /&gt; use XML::Twig;&lt;BR /&gt; use XML::LibXML;&lt;BR /&gt; # Set the request parameters&lt;BR /&gt; my $host = '&lt;A href="https://xx.xx.xx.xx" target="_blank"&gt;https://xx.xx.xx.xx&lt;/A&gt;';&lt;/P&gt;
&lt;P&gt;# Eg. User name="admin", Password="admin" for this code sample.&lt;BR /&gt; my $user = 'xxx;&lt;BR /&gt; my $pwd = 'xxx';&lt;BR /&gt; &lt;BR /&gt; my $tag = &amp;lt;&amp;lt;END_XML;&lt;BR /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;BR /&gt; &amp;lt;ns2:devices xmlns:ns2="networkdevice.rest.mgmt.acs.nm.cisco.com"&amp;gt;&lt;BR /&gt; &amp;lt;Device&amp;gt;&lt;BR /&gt; &amp;lt;description&amp;gt;Test Adding device&amp;lt;/description&amp;gt;&lt;BR /&gt; &amp;lt;name&amp;gt;test device&amp;lt;/name&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Device Types&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Device Type&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Locations&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Location&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;subnets&amp;gt;&lt;BR /&gt; &amp;lt;ipAddress&amp;gt;1.1.1.1&amp;lt;/ipAddress&amp;gt;&lt;BR /&gt; &amp;lt;netMask&amp;gt;32&amp;lt;/netMask&amp;gt;&lt;BR /&gt; &amp;lt;/subnets&amp;gt;&lt;BR /&gt; &amp;lt;tacacsConnection&amp;gt;&lt;BR /&gt; &amp;lt;legacyTACACS&amp;gt;true&amp;lt;/legacyTACACS&amp;gt;&lt;BR /&gt; &amp;lt;sharedSecret&amp;gt;&lt;SPAN&gt;helloAll&lt;/SPAN&gt;&amp;lt;/sharedSecret&amp;gt;&lt;BR /&gt; &amp;lt;singleConnect&amp;gt;false&amp;lt;/singleConnect&amp;gt;&lt;BR /&gt; &amp;lt;/tacacsConnection&amp;gt;&lt;BR /&gt; &amp;lt;/Device&amp;gt;&lt;BR /&gt;&amp;lt;/ns2:devices&amp;gt;&lt;BR /&gt;END_XML&lt;/P&gt;
&lt;P&gt;my $request = XML::LibXML-&amp;gt;load_xml(string=&amp;gt;$tag);&lt;/P&gt;
&lt;P&gt;print $request;&lt;/P&gt;
&lt;P&gt;$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0;&lt;/P&gt;
&lt;P&gt;my $client = REST::Client-&amp;gt;new(host =&amp;gt; $host);&lt;/P&gt;
&lt;P&gt;my $encoded_auth = encode_base64("$user:$pwd", '');&lt;/P&gt;
&lt;P&gt;$client-&amp;gt;getUseragent()-&amp;gt;ssl_opts( SSL_verify_mode =&amp;gt; 0 );&lt;/P&gt;
&lt;P&gt;$client-&amp;gt;PUT("/Rest/NetworkDevice/Device",$request,&lt;BR /&gt; {'Authorization' =&amp;gt; "Basic $encoded_auth"});&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Also, I have tested on Postman to put only xml to&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://xx.xx.xx.xx/Rest/NetworkDevice/Device/" target="_blank"&gt;https://xx.xx.xx.xx/Rest/NetworkDevice/Device/&lt;/A&gt; and it's not working too. I've got 400 Bad Request form the return. could you please advise how to add device using Rest API?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Here is the XML that I use&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;BR /&gt;&amp;lt;ns2:device xmlns:ns2="networkdevice.rest.mgmt.acs.nm.cisco.com"&amp;gt;&lt;BR /&gt; &amp;lt;description&amp;gt;Test - Created by REST&amp;lt;/description&amp;gt;&lt;BR /&gt; &amp;lt;name&amp;gt;TEST-REST-TEST&amp;lt;/name&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Locations&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Location&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Device Types&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Device Type&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Locations&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Location&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;subnets&amp;gt;&lt;BR /&gt; &amp;lt;ipAddress&amp;gt;1.1.1.1&amp;lt;/ipAddress&amp;gt;&lt;BR /&gt; &amp;lt;netMask&amp;gt;32&amp;lt;/netMask&amp;gt;&lt;BR /&gt; &amp;lt;/subnets&amp;gt;&lt;BR /&gt; &amp;lt;tacacsConnection&amp;gt;&lt;BR /&gt; &amp;lt;legacyTACACS&amp;gt;true&amp;lt;/legacyTACACS&amp;gt;&lt;BR /&gt; &amp;lt;sharedSecret&amp;gt;helloAll&amp;lt;/sharedSecret&amp;gt;&lt;BR /&gt; &amp;lt;singleConnect&amp;gt;false&amp;lt;/singleConnect&amp;gt;&lt;BR /&gt; &amp;lt;/tacacsConnection&amp;gt;&lt;BR /&gt;&amp;lt;/ns2:device&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 11 Mar 2019 07:43:04 GMT</pubDate>
    <dc:creator>pantawoot.pukongjit</dc:creator>
    <dc:date>2019-03-11T07:43:04Z</dc:date>
    <item>
      <title>Using Rest service for Adding Device</title>
      <link>https://community.cisco.com/t5/network-access-control/using-rest-service-for-adding-device/m-p/3008479#M22846</link>
      <description>&lt;P&gt;Hi Folks,&lt;/P&gt;
&lt;P&gt;I am using ACS 5.4 and I would like to add device by using perl script. However, it did not work. Has anyone can help me?&lt;/P&gt;
&lt;P&gt;#!/usr/bin/env perl -w&lt;BR /&gt; use strict;&lt;BR /&gt; use warnings;&lt;BR /&gt; use MIME::Base64;&lt;BR /&gt; use REST::Client;&lt;BR /&gt; use XML::Twig;&lt;BR /&gt; use XML::LibXML;&lt;BR /&gt; # Set the request parameters&lt;BR /&gt; my $host = '&lt;A href="https://xx.xx.xx.xx" target="_blank"&gt;https://xx.xx.xx.xx&lt;/A&gt;';&lt;/P&gt;
&lt;P&gt;# Eg. User name="admin", Password="admin" for this code sample.&lt;BR /&gt; my $user = 'xxx;&lt;BR /&gt; my $pwd = 'xxx';&lt;BR /&gt; &lt;BR /&gt; my $tag = &amp;lt;&amp;lt;END_XML;&lt;BR /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;BR /&gt; &amp;lt;ns2:devices xmlns:ns2="networkdevice.rest.mgmt.acs.nm.cisco.com"&amp;gt;&lt;BR /&gt; &amp;lt;Device&amp;gt;&lt;BR /&gt; &amp;lt;description&amp;gt;Test Adding device&amp;lt;/description&amp;gt;&lt;BR /&gt; &amp;lt;name&amp;gt;test device&amp;lt;/name&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Device Types&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Device Type&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Locations&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Location&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;subnets&amp;gt;&lt;BR /&gt; &amp;lt;ipAddress&amp;gt;1.1.1.1&amp;lt;/ipAddress&amp;gt;&lt;BR /&gt; &amp;lt;netMask&amp;gt;32&amp;lt;/netMask&amp;gt;&lt;BR /&gt; &amp;lt;/subnets&amp;gt;&lt;BR /&gt; &amp;lt;tacacsConnection&amp;gt;&lt;BR /&gt; &amp;lt;legacyTACACS&amp;gt;true&amp;lt;/legacyTACACS&amp;gt;&lt;BR /&gt; &amp;lt;sharedSecret&amp;gt;&lt;SPAN&gt;helloAll&lt;/SPAN&gt;&amp;lt;/sharedSecret&amp;gt;&lt;BR /&gt; &amp;lt;singleConnect&amp;gt;false&amp;lt;/singleConnect&amp;gt;&lt;BR /&gt; &amp;lt;/tacacsConnection&amp;gt;&lt;BR /&gt; &amp;lt;/Device&amp;gt;&lt;BR /&gt;&amp;lt;/ns2:devices&amp;gt;&lt;BR /&gt;END_XML&lt;/P&gt;
&lt;P&gt;my $request = XML::LibXML-&amp;gt;load_xml(string=&amp;gt;$tag);&lt;/P&gt;
&lt;P&gt;print $request;&lt;/P&gt;
&lt;P&gt;$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0;&lt;/P&gt;
&lt;P&gt;my $client = REST::Client-&amp;gt;new(host =&amp;gt; $host);&lt;/P&gt;
&lt;P&gt;my $encoded_auth = encode_base64("$user:$pwd", '');&lt;/P&gt;
&lt;P&gt;$client-&amp;gt;getUseragent()-&amp;gt;ssl_opts( SSL_verify_mode =&amp;gt; 0 );&lt;/P&gt;
&lt;P&gt;$client-&amp;gt;PUT("/Rest/NetworkDevice/Device",$request,&lt;BR /&gt; {'Authorization' =&amp;gt; "Basic $encoded_auth"});&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Also, I have tested on Postman to put only xml to&amp;nbsp;&lt;SPAN&gt;&lt;A href="https://xx.xx.xx.xx/Rest/NetworkDevice/Device/" target="_blank"&gt;https://xx.xx.xx.xx/Rest/NetworkDevice/Device/&lt;/A&gt; and it's not working too. I've got 400 Bad Request form the return. could you please advise how to add device using Rest API?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Here is the XML that I use&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;BR /&gt;&amp;lt;ns2:device xmlns:ns2="networkdevice.rest.mgmt.acs.nm.cisco.com"&amp;gt;&lt;BR /&gt; &amp;lt;description&amp;gt;Test - Created by REST&amp;lt;/description&amp;gt;&lt;BR /&gt; &amp;lt;name&amp;gt;TEST-REST-TEST&amp;lt;/name&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Locations&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Location&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Device Types&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Device Type&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;groupName&amp;gt;All Locations&amp;lt;/groupName&amp;gt;&lt;BR /&gt; &amp;lt;groupType&amp;gt;Location&amp;lt;/groupType&amp;gt;&lt;BR /&gt; &amp;lt;/groupInfo&amp;gt;&lt;BR /&gt; &amp;lt;subnets&amp;gt;&lt;BR /&gt; &amp;lt;ipAddress&amp;gt;1.1.1.1&amp;lt;/ipAddress&amp;gt;&lt;BR /&gt; &amp;lt;netMask&amp;gt;32&amp;lt;/netMask&amp;gt;&lt;BR /&gt; &amp;lt;/subnets&amp;gt;&lt;BR /&gt; &amp;lt;tacacsConnection&amp;gt;&lt;BR /&gt; &amp;lt;legacyTACACS&amp;gt;true&amp;lt;/legacyTACACS&amp;gt;&lt;BR /&gt; &amp;lt;sharedSecret&amp;gt;helloAll&amp;lt;/sharedSecret&amp;gt;&lt;BR /&gt; &amp;lt;singleConnect&amp;gt;false&amp;lt;/singleConnect&amp;gt;&lt;BR /&gt; &amp;lt;/tacacsConnection&amp;gt;&lt;BR /&gt;&amp;lt;/ns2:device&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 11 Mar 2019 07:43:04 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-access-control/using-rest-service-for-adding-device/m-p/3008479#M22846</guid>
      <dc:creator>pantawoot.pukongjit</dc:creator>
      <dc:date>2019-03-11T07:43:04Z</dc:date>
    </item>
    <item>
      <title>Correct format of XML is</title>
      <link>https://community.cisco.com/t5/network-access-control/using-rest-service-for-adding-device/m-p/3008480#M22847</link>
      <description>&lt;P&gt;Correct format of XML is and it is working for me&lt;/P&gt;
&lt;P&gt;&amp;lt;ns2:device xmlns:ns2='networkdevice.rest.mgmt.acs.nm.cisco.com'&amp;gt;&lt;BR /&gt;&amp;lt;description&amp;gt;Test Adding device&amp;lt;/description&amp;gt;&lt;BR /&gt;&amp;lt;name&amp;gt;test device&amp;lt;/name&amp;gt;&lt;BR /&gt;&amp;lt;groupInfo&amp;gt;&lt;BR /&gt;&amp;lt;groupName&amp;gt;All Device Types&amp;lt;/groupName&amp;gt;&lt;BR /&gt;&amp;lt;groupType&amp;gt;Device Type&amp;lt;/groupType&amp;gt;&lt;BR /&gt;&amp;lt;/groupInfo&amp;gt;&lt;BR /&gt;&amp;lt;groupInfo&amp;gt;&lt;BR /&gt;&amp;lt;groupName&amp;gt;All Locations&amp;lt;/groupName&amp;gt;&lt;BR /&gt;&amp;lt;groupType&amp;gt;Location&amp;lt;/groupType&amp;gt;&lt;BR /&gt;&amp;lt;/groupInfo&amp;gt;&lt;BR /&gt;&amp;lt;subnets&amp;gt;&lt;BR /&gt;&amp;lt;ipAddress&amp;gt;1.1.1.1&amp;lt;/ipAddress&amp;gt;&lt;BR /&gt;&amp;lt;netMask&amp;gt;32&amp;lt;/netMask&amp;gt;&lt;BR /&gt;&amp;lt;/subnets&amp;gt;&lt;BR /&gt;&amp;lt;tacacsConnection&amp;gt;&lt;BR /&gt;&amp;lt;legacyTACACS&amp;gt;true&amp;lt;/legacyTACACS&amp;gt;&lt;BR /&gt;&amp;lt;sharedSecret&amp;gt;helloAll&amp;lt;/sharedSecret&amp;gt;&lt;BR /&gt;&amp;lt;singleConnect&amp;gt;false&amp;lt;/singleConnect&amp;gt;&lt;BR /&gt;&amp;lt;/tacacsConnection&amp;gt;&lt;BR /&gt;&amp;lt;/ns2:device&amp;gt;&lt;/P&gt;</description>
      <pubDate>Thu, 22 Jun 2017 20:02:43 GMT</pubDate>
      <guid>https://community.cisco.com/t5/network-access-control/using-rest-service-for-adding-device/m-p/3008480#M22847</guid>
      <dc:creator>v-maag</dc:creator>
      <dc:date>2017-06-22T20:02:43Z</dc:date>
    </item>
  </channel>
</rss>

