-
Notifications
You must be signed in to change notification settings - Fork 131
Added cookbook support #21
base: master
Are you sure you want to change the base?
Changes from 1 commit
2d00b6d
7cf353e
734e886
5270648
a98b9a4
6851acb
169599c
5886b36
5e12451
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| from chef.base import ChefObject, ChefAPI | ||
| from chef.exceptions import ChefServerNotFoundError | ||
|
|
||
| class Cookbook(ChefObject): | ||
| """ | ||
| A Chef Cookbook object. | ||
| """ | ||
|
|
||
| url = '/cookbooks' | ||
|
|
||
| attributes = { | ||
| 'definitions': list, | ||
| 'name': str, | ||
| 'attributetes': list, | ||
| 'files': list, | ||
| 'json_class': str, | ||
| 'providers': list, | ||
| 'metadata': dict, | ||
| 'libraries': list, | ||
| 'templates': list, | ||
| 'resources': list, | ||
| 'cookbook_name': str, | ||
| 'version': str, | ||
| 'recipes': list, | ||
| 'root_files': list, | ||
| 'chef_type': str | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Needs trailing comma. |
||
| } | ||
|
|
||
|
|
||
| @staticmethod | ||
| def versions(name, api=None): | ||
| """ | ||
| Get a list of versions for the named cookbook | ||
| """ | ||
| api = api or ChefAPI.get_global() | ||
| url = "{0}/{1}".format(Cookbook.url, name) | ||
| try: | ||
| data = api[url] | ||
| except ChefServerNotFoundError: | ||
| return list() | ||
| return list([ rev['version'] for rev in data[name]['versions'] ]) | ||
|
|
||
|
|
||
| def __getitem__(self, attr): | ||
|
Owner
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is neither a good idea nor particularly helpful.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for reviewing the pull request. It's been awhile since I wrote this, but I recall writing this for use in generating a tabular cookbook report in which the column headers were environments and there was a single row per cookbook, with the fields mapping cookbook versions to each of the environments. Working with several environments, it was a quick way to ascertain what the version differences were and to quickly identify a few version issues (e.g. catching not having tied the "production" environment to a specific version, potentially a bad thing if uploading a newer version of a cookbook...). I might have used the versions method as part of that, but don't recall exactly if it was useful for my purposes or if I just threw it in... |
||
| return self.__dict__[attr] | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This needs to get moved to a classmethod.