Skip to content

Instantly share code, notes, and snippets.

@sjorge
Last active July 9, 2019 07:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sjorge/83715439ada78350aadf6c6f39b74aa3 to your computer and use it in GitHub Desktop.
Save sjorge/83715439ada78350aadf6c6f39b74aa3 to your computer and use it in GitHub Desktop.
salt.grains.smartos fixes
pkgin_repositories:
- https://pkgsrc.joyent.com/packages/SmartOS/2018Q1/tools/All
- http://pkg.blackdot.be/packages/2018Q1/tools/All
pkgsrcpath:
https://pkgsrc.joyent.com/packages/SmartOS/2018Q1/tools/All
pkgsrcversion:
2018Q1
--- /opt/tools/lib/python2.7/site-packages/salt/grains/smartos.py Tue Jul 9 07:17:17 2019
+++ /opt/tools/lib/python2.7/site-packages/salt/grains/smartos.py.fix Tue Jul 9 07:33:39 2019
@@ -139,23 +139,24 @@
'pkgsrcpath': 'Unknown',
}
- pkgsrcversion = re.compile('^release:\\s(.+)')
- if os.path.isfile('/etc/pkgsrc_version'):
- with salt.utils.files.fopen('/etc/pkgsrc_version', 'r') as fp_:
- for line in fp_:
- line = salt.utils.stringutils.to_unicode(line)
- match = pkgsrcversion.match(line)
- if match:
- grains['pkgsrcversion'] = match.group(1)
-
pkgsrcpath = re.compile('PKG_PATH=(.+)')
- if os.path.isfile('/opt/local/etc/pkg_install.conf'):
- with salt.utils.files.fopen('/opt/local/etc/pkg_install.conf', 'r') as fp_:
- for line in fp_:
- line = salt.utils.stringutils.to_unicode(line)
- match = pkgsrcpath.match(line)
- if match:
- grains['pkgsrcpath'] = match.group(1)
+ pkgsrcversion = re.compile('^https?:\/\/pkgsrc.joyent.com\/packages\/SmartOS\/(.+)\/(.+)\/All$')
+ pkg_install_paths = [
+ '/opt/local/etc/pkg_install.conf',
+ '/opt/tools/etc/pkg_install.conf',
+ ]
+ for pkg_install in pkg_install_paths:
+ if os.path.isfile(pkg_install):
+ with salt.utils.files.fopen(pkg_install, 'r') as fp_:
+ for line in fp_:
+ line = salt.utils.stringutils.to_unicode(line)
+ match_pkgsrcpath = pkgsrcpath.match(line)
+ if match_pkgsrcpath:
+ grains['pkgsrcpath'] = match_pkgsrcpath.group(1)
+ match_pkgsrcversion = pkgsrcversion.match(match_pkgsrcpath.group(1))
+ if match_pkgsrcversion:
+ grains['pkgsrcversion'] = match_pkgsrcversion.group(1)
+ break
return grains
@@ -172,12 +173,17 @@
}
pkginrepo = re.compile('^(?:https|http|ftp|file)://.*$')
- if os.path.isfile('/opt/local/etc/pkgin/repositories.conf'):
- with salt.utils.files.fopen('/opt/local/etc/pkgin/repositories.conf', 'r') as fp_:
- for line in fp_:
- line = salt.utils.stringutils.to_unicode(line)
- if pkginrepo.match(line):
- grains['pkgin_repositories'].append(line)
+ repositories_path = [
+ '/opt/local/etc/pkgin/repositories.conf',
+ '/opt/tools/etc/pkgin/repositories.conf',
+ ]
+ for repositories in repositories_path:
+ if os.path.isfile(repositories):
+ with salt.utils.files.fopen(repositories, 'r') as fp_:
+ for line in fp_:
+ line = salt.utils.stringutils.to_unicode(line)
+ if pkginrepo.match(line):
+ grains['pkgin_repositories'].append(line)
return grains
@@ -190,10 +196,10 @@
if salt.utils.platform.is_smartos_zone():
grains = salt.utils.dictupdate.update(grains, _smartos_zone_data(), merge_lists=True)
- grains = salt.utils.dictupdate.update(grains, _smartos_zone_pkgsrc_data(), merge_lists=True)
- grains = salt.utils.dictupdate.update(grains, _smartos_zone_pkgin_data(), merge_lists=True)
elif salt.utils.platform.is_smartos_globalzone():
grains = salt.utils.dictupdate.update(grains, _smartos_computenode_data(), merge_lists=True)
+ grains = salt.utils.dictupdate.update(grains, _smartos_zone_pkgin_data(), merge_lists=True)
+ grains = salt.utils.dictupdate.update(grains, _smartos_zone_pkgsrc_data(), merge_lists=True)
return grains
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment