sassoftware / python-sasctl

Python package and CLI for user-friendly integration with SAS Viya
https://sassoftware.github.io/python-sasctl
Apache License 2.0
45 stars 40 forks source link

Using python-sasctl for Inventory #155

Closed skizzle2k20 closed 1 year ago

skizzle2k20 commented 1 year ago

I know the CLI tool itself can be used for inventory and reports. Can this python package be used the same way? If so, is there an sample programs out there to accomplish this for all tiers in VIYA (CAS, SPRE, Etc)?

https://communities.sas.com/t5/SAS-Communities-Library/Viya-Inventory-CLI-and-Reports/ta-p/619649

jlwalke2 commented 1 year ago

The short answer is no, the CLI tool for inventory and migration performs a lot of operations directly on the filesystems of the Viya servers (especially for Viya 3.5) and these operations can't be replicated through the REST API that sasctl relies on.

However, some of the functionality could be performed using this package. For example, you could inventory all of the data sets in CAS, configured CAS libs, files, projects, models, reports, etc - provided you were authenticated as a user with sufficient privileges. This wouldn't inventory the components that make up the Viya platform (like the PostgreSQL database or the Consul server) but it would let you take stock of a lot of the content that exists on the platform.

More concretely, this Python package can make use of any functionality that's exposed through the REST APIs (https://developer.sas.com/apis/rest/Topics). Despite this, we never put together any examples that showcased this functionality as it simply wasn't a use case we anticipated.

Are there particular reasons why you're interested in using a package like sasctl instead of the CLI to inventory and migration? If it makes sense, we'd be happy to create some examples of how you might inventory different pieces of content using sasctl.

Also, in case it's helpful information, the process of taking an inventory and migrating has changed slightly since that blog post was published:

skizzle2k20 commented 1 year ago

Thanks for the response Jon. My main reason is to gather all the objects and dependencies including reports, data sets, cas info, and security groups, roles, etc. I'd like a programmatic way so I don't have to navigate to the CLI on each server and can do it from one place. Especially when we go to migrate, I would have the inventory saved of from and into a single location