ONTAP Rest API Discussions

ONTAP CIFS service delete with Python client library 9.7

badrian

I am going crazy. Can anybody tell me the secret of deleting a CIFS server with Python client library? It complains about missing AD credentials, but I am simply not getting how to pass them over. I am working in LoD:

https://handsonlabs.netapp.com/lab/ontapapi (SL10599)

 

Here is what I am trying to do:

print("--> Starting CIFS server delete operation")
try:
	cifs = CifsService.find(name="PRIMARY_SVM_01")
	cifs.from_dict(
	{
	  "svm": {
	    "name": "primary_svm_01"
	  },
	  "ad_domain": {
	    "fqdn": "demo.netapp.com",
	    "user": "Administrator@demo.netapp.com", 
	    "password": "<guesswhatthatcouldbe:D>"
	  }
	})
	cifs.delete()
	print("--> CIFS server {} deleted successfully".format(cifs.name))
except NetAppRestError as err:
	print("--> Error: CIFS server was not deleted:\n{}".format(err))
print("")

 

And here is the debug output:

‌--> Starting CIFS server delete operation
DEBUG:urllib3.util.retry:Converted retries value: 5 -> Retry(total=5, connect=None, read=None, redirect=None, status=None)
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): cluster1.demo.netapp.com:443
DEBUG:urllib3.connectionpool:https://cluster1.demo.netapp.com:443 "GET /api/protocols/cifs/services?name=PRIMARY_SVM_01 HTTP/1.1" 200 579
DEBUG:netapp_ontap.utils:
-----------REQUEST-----------
GET https://cluster1.demo.netapp.com:443/api/protocols/cifs/services?name=PRIMARY_SVM_01
User-Agent: python-requests/2.23.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
X-Dot-Client-App: netapp-ontap-python-9.7.0
Authorization: Basic YWRtaW46TmV0YXBwMSE=
None
-----------------------------

-----------RESPONSE-----------
200 OK
Date: Wed, 18 Mar 2020 06:45:40 GMT
Server: libzapid-httpd
X-Content-Type-Options: nosniff
Cache-Control: no-cache,no-store,must-revalidate
Content-Length: 579
Content-Type: application/hal+json
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
{
  "records": [
    {
      "svm": {
        "uuid": "513ab210-687a-11ea-8d2a-005056819f1b",
        "name": "primary_svm_01",
        "_links": {
          "self": {
            "href": "/api/svm/svms/513ab210-687a-11ea-8d2a-005056819f1b"
          }
        }
      },
      "name": "PRIMARY_SVM_01",
      "_links": {
        "self": {
          "href": "/api/protocols/cifs/services/513ab210-687a-11ea-8d2a-005056819f1b"
        }
      }
    }
  ],
  "num_records": 1,
  "_links": {
    "self": {
      "href": "/api/protocols/cifs/services?name=PRIMARY_SVM_01"
    }
  }
}
------------------------------
DEBUG:urllib3.util.retry:Converted retries value: 5 -> Retry(total=5, connect=None, read=None, redirect=None, status=None)
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): cluster1.demo.netapp.com:443
DEBUG:urllib3.connectionpool:https://cluster1.demo.netapp.com:443 "GET /api/protocols/cifs/services/513ab210-687a-11ea-8d2a-005056819f1b HTTP/1.1" 200 768
DEBUG:netapp_ontap.utils:
-----------REQUEST-----------
GET https://cluster1.demo.netapp.com:443/api/protocols/cifs/services/513ab210-687a-11ea-8d2a-005056819f1b
User-Agent: python-requests/2.23.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
X-Dot-Client-App: netapp-ontap-python-9.7.0
Authorization: Basic YWRtaW46TmV0YXBwMSE=
None
-----------------------------

-----------RESPONSE-----------
200 OK
Date: Wed, 18 Mar 2020 06:45:40 GMT
Server: libzapid-httpd
X-Content-Type-Options: nosniff
Cache-Control: no-cache,no-store,must-revalidate
Content-Length: 768
Content-Type: application/hal+json
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
{
  "svm": {
    "uuid": "513ab210-687a-11ea-8d2a-005056819f1b",
    "name": "primary_svm_01",
    "_links": {
      "self": {
        "href": "/api/svm/svms/513ab210-687a-11ea-8d2a-005056819f1b"
      }
    }
  },
  "name": "PRIMARY_SVM_01",
  "ad_domain": {
    "fqdn": "DEMO.NETAPP.COM",
    "organizational_unit": "CN=Computers"
  },
  "enabled": true,
  "comment": "Created with ONTAP PYL",
  "security": {
    "restrict_anonymous": "no_enumeration",
    "smb_signing": false,
    "smb_encryption": false,
    "kdc_encryption": false
  },
  "netbios": {
    "wins_servers": [
    ],
    "enabled": false
  },
  "default_unix_user": "pcuser",
  "_links": {
    "self": {
      "href": "/api/protocols/cifs/services/513ab210-687a-11ea-8d2a-005056819f1b"
    }
  }
}
------------------------------
DEBUG:netapp_ontap.utils:
-----------REQUEST-----------
GET https://cluster1.demo.netapp.com:443/api/protocols/cifs/services/513ab210-687a-11ea-8d2a-005056819f1b
User-Agent: python-requests/2.23.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
X-Dot-Client-App: netapp-ontap-python-9.7.0
Authorization: Basic YWRtaW46TmV0YXBwMSE=
None
-----------------------------

-----------RESPONSE-----------
200 OK
Date: Wed, 18 Mar 2020 06:45:40 GMT
Server: libzapid-httpd
X-Content-Type-Options: nosniff
Cache-Control: no-cache,no-store,must-revalidate
Content-Length: 768
Content-Type: application/hal+json
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
{
  "svm": {
    "uuid": "513ab210-687a-11ea-8d2a-005056819f1b",
    "name": "primary_svm_01",
    "_links": {
      "self": {
        "href": "/api/svm/svms/513ab210-687a-11ea-8d2a-005056819f1b"
      }
    }
  },
  "name": "PRIMARY_SVM_01",
  "ad_domain": {
    "fqdn": "DEMO.NETAPP.COM",
    "organizational_unit": "CN=Computers"
  },
  "enabled": true,
  "comment": "Created with ONTAP PYL",
  "security": {
    "restrict_anonymous": "no_enumeration",
    "smb_signing": false,
    "smb_encryption": false,
    "kdc_encryption": false
  },
  "netbios": {
    "wins_servers": [
    ],
    "enabled": false
  },
  "default_unix_user": "pcuser",
  "_links": {
    "self": {
      "href": "/api/protocols/cifs/services/513ab210-687a-11ea-8d2a-005056819f1b"
    }
  }
}
------------------------------
DEBUG:urllib3.connectionpool:https://cluster1.demo.netapp.com:443 "DELETE /api/protocols/cifs/services/513ab210-687a-11ea-8d2a-005056819f1b HTTP/1.1" 202 189
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): cluster1.demo.netapp.com:443
DEBUG:urllib3.connectionpool:https://cluster1.demo.netapp.com:443 "GET /api/cluster/jobs/154221a4-68e4-11ea-87e9-00505681f8b5 HTTP/1.1" 200 619
INFO:netapp_ontap.utils:Job (failure): In order to delete an Active Directory machine account for the CIFS server, you must supply the name and password of a Windows account with sufficient privileges to remove computers from the "DEMO.NETAPP.COM" domain. . Timeout remaining: 30.
--> Error: CIFS server was not deleted:
Job failed: In order to delete an Active Directory machine account for the CIFS server, you must supply the name and password of a Windows account with sufficient privileges to remove computers from the "DEMO.NETAPP.COM" domain.

 

1 ACCEPTED SOLUTION

RobertBlackhart

The CIFS Services DELETE API requires that the credentials are passed in the body of the request. So your code should look a bit like this:

 

print("--> Starting CIFS server delete operation")
try:
    cifs = CifsService.find(name="PRIMARY_SVM_01")
    cifs.delete(body={
        "ad_domain": {
            "fqdn": "demo.netapp.com",
            "user": "Administrator@demo.netapp.com", 
            "password": "<guesswhatthatcouldbe:D>"
        }
    })
    print("--> CIFS server {} deleted successfully".format(cifs.name))
except NetAppRestError as err:
    print("--> Error: CIFS server was not deleted:\n{}".format(err))
print("")

 

View solution in original post

1 REPLY 1

RobertBlackhart

The CIFS Services DELETE API requires that the credentials are passed in the body of the request. So your code should look a bit like this:

 

print("--> Starting CIFS server delete operation")
try:
    cifs = CifsService.find(name="PRIMARY_SVM_01")
    cifs.delete(body={
        "ad_domain": {
            "fqdn": "demo.netapp.com",
            "user": "Administrator@demo.netapp.com", 
            "password": "<guesswhatthatcouldbe:D>"
        }
    })
    print("--> CIFS server {} deleted successfully".format(cifs.name))
except NetAppRestError as err:
    print("--> Error: CIFS server was not deleted:\n{}".format(err))
print("")

 

View solution in original post

Announcements
NetApp on Discord Image

We're on Discord, are you?

Live Chat, Watch Parties, and More!

Explore Banner

Meet Explore, NetApp’s digital sales platform

Engage digitally throughout the sales process, from product discovery to configuration, and handle all your post-purchase needs.

NetApp Insights to Action
I2A Banner
Public