bisos.facter 0.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,6 @@
1
+ #
2
+
3
+ include lh-agpl3-LICENSE.txt
4
+
5
+ include TITLE.txt
6
+ include README.rst
@@ -0,0 +1,65 @@
1
+ Metadata-Version: 2.1
2
+ Name: bisos.facter
3
+ Version: 0.3
4
+ Summary: bisos.facter: Adoption and adaptation of facter to Python and PyCS-Framework and BISOS for use with BISOS-CMDB.
5
+ Home-page: http://www.by-star.net/PLPC/180047
6
+ Download-URL: http://www.by-star.net/PLPC/180047
7
+ Author: Mohsen Banan
8
+ Author-email: libre@mohsen.1.banan.byname.net
9
+ Maintainer: Mohsen Banan
10
+ Maintainer-email: libre@mohsen.1.banan.byname.net
11
+ License: AGPL
12
+ Platform: UNKNOWN
13
+ Classifier: Development Status :: 5 - Production/Stable
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: License :: OSI Approved :: GNU Affero General Public License v3
16
+ Classifier: Operating System :: POSIX
17
+ Classifier: Programming Language :: Python
18
+ Classifier: Topic :: Software Development :: Libraries
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+
21
+ ============
22
+ bisos.facter
23
+ ============
24
+
25
+ .. contents::
26
+ :depth: 3
27
+ ..
28
+
29
+ Overview
30
+ ========
31
+
32
+ bisos.facter: Adoption and adaptation of facter to Python and
33
+ PyCS-Framework and BISOS for use with BISOS-CMDB.
34
+
35
+ Support
36
+ =======
37
+
38
+ | For support, criticism, comments and questions; please contact the
39
+ author/maintainer
40
+ | `Mohsen Banan <http://mohsen.1.banan.byname.net>`__ at:
41
+ http://mohsen.1.banan.byname.net/contact
42
+
43
+ Documentation
44
+ =============
45
+
46
+ Part of ByStar Digital Ecosystem http://www.by-star.net.
47
+
48
+ This module’s primary documentation is in
49
+ http://www.by-star.net/PLPC/180047
50
+
51
+ Installation
52
+ ============
53
+
54
+ ::
55
+
56
+ sudo pip install bisos.facter
57
+
58
+ Usage
59
+ =====
60
+
61
+ ::
62
+
63
+ bin/facter.cs
64
+
65
+
@@ -0,0 +1,43 @@
1
+ ============
2
+ bisos.facter
3
+ ============
4
+
5
+ .. contents::
6
+ :depth: 3
7
+ ..
8
+
9
+ Overview
10
+ ========
11
+
12
+ bisos.facter: Adoption and adaptation of facter to Python and
13
+ PyCS-Framework and BISOS for use with BISOS-CMDB.
14
+
15
+ Support
16
+ =======
17
+
18
+ | For support, criticism, comments and questions; please contact the
19
+ author/maintainer
20
+ | `Mohsen Banan <http://mohsen.1.banan.byname.net>`__ at:
21
+ http://mohsen.1.banan.byname.net/contact
22
+
23
+ Documentation
24
+ =============
25
+
26
+ Part of ByStar Digital Ecosystem http://www.by-star.net.
27
+
28
+ This module’s primary documentation is in
29
+ http://www.by-star.net/PLPC/180047
30
+
31
+ Installation
32
+ ============
33
+
34
+ ::
35
+
36
+ sudo pip install bisos.facter
37
+
38
+ Usage
39
+ =====
40
+
41
+ ::
42
+
43
+ bin/facter.cs
@@ -0,0 +1 @@
1
+ bisos.facter: Adoption and adaptation of facter to Python and PyCS-Framework and BISOS for use with BISOS-CMDB.
@@ -0,0 +1,247 @@
1
+ #!/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ """ #+begin_org
5
+ * ~[Summary]~ :: A =CmndSvc= for running the equivalent of facter in py and remotely with rpyc.
6
+ #+end_org """
7
+
8
+ ####+BEGIN: b:py3:cs:file/dblockControls :classification "cs-mu"
9
+ """ #+begin_org
10
+ * [[elisp:(org-cycle)][| /Control Parameters Of This File/ |]] :: dblk ctrls classifications=cs-mu
11
+ #+BEGIN_SRC emacs-lisp
12
+ (setq-local b:dblockControls t) ; (setq-local b:dblockControls nil)
13
+ (put 'b:dblockControls 'py3:cs:Classification "cs-mu") ; one of cs-mu, cs-u, cs-lib, bpf-lib, pyLibPure
14
+ #+END_SRC
15
+ #+RESULTS:
16
+ : cs-mu
17
+ #+end_org """
18
+ ####+END:
19
+
20
+ ####+BEGIN: b:prog:file/proclamations :outLevel 1
21
+ """ #+begin_org
22
+ * *[[elisp:(org-cycle)][| Proclamations |]]* :: Libre-Halaal Software --- Part Of BISOS --- Poly-COMEEGA Format.
23
+ ** This is Libre-Halaal Software. © Neda Communications, Inc. Subject to AGPL.
24
+ ** It is part of BISOS (ByStar Internet Services OS)
25
+ ** Best read and edited with Blee in Poly-COMEEGA (Polymode Colaborative Org-Mode Enhance Emacs Generalized Authorship)
26
+ #+end_org """
27
+ ####+END:
28
+
29
+ ####+BEGIN: b:prog:file/particulars :authors ("./inserts/authors-mb.org")
30
+ """ #+begin_org
31
+ * *[[elisp:(org-cycle)][| Particulars |]]* :: Authors, version
32
+ ** This File: /bisos/git/bxRepos/bisos-pip/facter/py3/bin/roPerf-facter.cs
33
+ ** Authors: Mohsen BANAN, http://mohsen.banan.1.byname.net/contact
34
+ #+end_org """
35
+ ####+END:
36
+
37
+ ####+BEGIN: b:py3:file/particulars-csInfo :status "inUse"
38
+ """ #+begin_org
39
+ * *[[elisp:(org-cycle)][| Particulars-csInfo |]]*
40
+ #+end_org """
41
+ import typing
42
+ csInfo: typing.Dict[str, typing.Any] = { 'moduleName': ['roPerf-facter'], }
43
+ csInfo['version'] = '202403273209'
44
+ csInfo['status'] = 'inUse'
45
+ csInfo['panel'] = 'roPerf-facter-Panel.org'
46
+ csInfo['groupingType'] = 'IcmGroupingType-pkged'
47
+ csInfo['cmndParts'] = 'IcmCmndParts[common] IcmCmndParts[param]'
48
+ ####+END:
49
+
50
+ """ #+begin_org
51
+ * [[elisp:(org-cycle)][| ~Description~ |]] :: [[file:/bisos/git/auth/bxRepos/blee-binders/bisos-core/PyFwrk/bisos-pip/bisos.cs/_nodeBase_/fullUsagePanel-en.org][BISOS CmndSvcs Panel]] [[elisp:(org-cycle)][| ]]
52
+
53
+ This a =CmndSvc= for running the equivalent of facter in py and remotely with rpyc.
54
+ With BISOS, it is used in CMDB remotely.
55
+
56
+ ** Status: In use with BISOS
57
+ ** /[[elisp:(org-cycle)][| Planned Improvements |]]/ :
58
+ *** TODO Convert all ICMs to CSs
59
+ #+end_org """
60
+
61
+ ####+BEGIN: b:prog:file/orgTopControls :outLevel 1
62
+ """ #+begin_org
63
+ * [[elisp:(org-cycle)][| Controls |]] :: [[elisp:(delete-other-windows)][(1)]] | [[elisp:(show-all)][Show-All]] [[elisp:(org-shifttab)][Overview]] [[elisp:(progn (org-shifttab) (org-content))][Content]] | [[file:Panel.org][Panel]] | [[elisp:(blee:ppmm:org-mode-toggle)][Nat]] | [[elisp:(bx:org:run-me)][Run]] | [[elisp:(bx:org:run-me-eml)][RunEml]] | [[elisp:(progn (save-buffer) (kill-buffer))][S&Q]] [[elisp:(save-buffer)][Save]] [[elisp:(kill-buffer)][Quit]] [[elisp:(org-cycle)][| ]]
64
+ ** /Version Control/ :: [[elisp:(call-interactively (quote cvs-update))][cvs-update]] [[elisp:(vc-update)][vc-update]] | [[elisp:(bx:org:agenda:this-file-otherWin)][Agenda-List]] [[elisp:(bx:org:todo:this-file-otherWin)][ToDo-List]]
65
+
66
+ #+end_org """
67
+ ####+END:
68
+
69
+ ####+BEGIN: b:py3:file/workbench :outLevel 1
70
+ """ #+begin_org
71
+ * [[elisp:(org-cycle)][| Workbench |]] :: [[elisp:(python-check (format "/bisos/venv/py3/bisos3/bin/python -m pyclbr %s" (bx:buf-fname))))][pyclbr]] || [[elisp:(python-check (format "/bisos/venv/py3/bisos3/bin/python -m pydoc ./%s" (bx:buf-fname))))][pydoc]] || [[elisp:(python-check (format "/bisos/pipx/bin/pyflakes %s" (bx:buf-fname)))][pyflakes]] | [[elisp:(python-check (format "/bisos/pipx/bin/pychecker %s" (bx:buf-fname))))][pychecker (executes)]] | [[elisp:(python-check (format "/bisos/pipx/bin/pycodestyle %s" (bx:buf-fname))))][pycodestyle]] | [[elisp:(python-check (format "/bisos/pipx/bin/flake8 %s" (bx:buf-fname))))][flake8]] | [[elisp:(python-check (format "/bisos/pipx/bin/pylint %s" (bx:buf-fname))))][pylint]] [[elisp:(org-cycle)][| ]]
72
+ #+end_org """
73
+ ####+END:
74
+
75
+ ####+BEGIN: b:py3:cs:orgItem/basic :type "=PyImports= " :title "*Py Library IMPORTS*" :comment "-- with classification based framework/imports"
76
+ """ #+begin_org
77
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* =PyImports= [[elisp:(outline-show-subtree+toggle)][||]] *Py Library IMPORTS* -- with classification based framework/imports [[elisp:(org-cycle)][| ]]
78
+ #+end_org """
79
+ ####+END:
80
+
81
+ ####+BEGIN: b:py3:cs:framework/imports :basedOn "classification"
82
+ """ #+begin_org
83
+ ** Imports Based On Classification=cs-mu
84
+ #+end_org """
85
+ from bisos import b
86
+ from bisos.b import cs
87
+ from bisos.b import b_io
88
+ from bisos.common import csParam
89
+
90
+ import collections
91
+ ####+END:
92
+
93
+ """ #+begin_org
94
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CsFrmWrk [[elisp:(outline-show-subtree+toggle)][||]] ~csuList emacs-list Specifications~ [[elisp:(blee:org:code-block/above-run)][ /Eval Below/ ]] [[elisp:(org-cycle)][| ]]
95
+ #+BEGIN_SRC emacs-lisp
96
+ (setq b:py:cs:csuList
97
+ (list
98
+ "bisos.b.cs.ro"
99
+ "blee.csPlayer.bleep"
100
+ "bisos.facter.facter_csu"
101
+ "bisos.banna.bannaPortNu"
102
+ ))
103
+ #+END_SRC
104
+ #+RESULTS:
105
+ | bisos.b.cs.ro | blee.csPlayer.bleep | bisos.facter.facter_csu | bisos.banna.bannaPortNu |
106
+ #+end_org """
107
+
108
+ ####+BEGIN: b:py3:cs:framework/csuListProc :pyImports t :csuImports t :csuParams t
109
+ """ #+begin_org
110
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CsFrmWrk [[elisp:(outline-show-subtree+toggle)][||]] =Process CSU List= with /4/ in csuList pyImports=t csuImports=t csuParams=t
111
+ #+end_org """
112
+
113
+ from bisos.b.cs import ro
114
+ from blee.csPlayer import bleep
115
+ from bisos.facter import facter_csu
116
+ from bisos.banna import bannaPortNu
117
+
118
+
119
+ csuList = [ 'bisos.b.cs.ro', 'blee.csPlayer.bleep', 'bisos.facter.facter_csu', 'bisos.banna.bannaPortNu', ]
120
+
121
+ g_importedCmndsModules = cs.csuList_importedModules(csuList)
122
+
123
+ def g_extraParams():
124
+ csParams = cs.param.CmndParamDict()
125
+ cs.csuList_commonParamsSpecify(csuList, csParams)
126
+ cs.argsparseBasedOnCsParams(csParams)
127
+
128
+ ####+END:
129
+
130
+ cs.invOutcomeReportControl(cmnd=True, ro=True)
131
+
132
+ ####+BEGIN: b:py3:cs:main/exposedSymbols :classes ()
133
+ """ #+begin_org
134
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CsFrmWrk [[elisp:(outline-show-subtree+toggle)][||]] ~Exposed Symbols List Specification~ with /0/ in Classes List
135
+ #+end_org """
136
+ ####+END:
137
+
138
+
139
+ ####+BEGIN: blee:bxPanel:foldingSection :outLevel 0 :sep nil :title "CmndSvcs" :anchor "" :extraInfo "Command Services Section"
140
+ """ #+begin_org
141
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* [[elisp:(outline-show-subtree+toggle)][| _CmndSvcs_: |]] Command Services Section [[elisp:(org-shifttab)][<)]] E|
142
+ #+end_org """
143
+ ####+END:
144
+
145
+ ####+BEGIN: b:py3:cs:cmnd/classHead :cmndName "examples" :extent "verify" :ro "noCli" :comment "FrameWrk: CS-Main-Examples" :parsMand "" :parsOpt "" :argsMin 0 :argsMax 0 :pyInv ""
146
+ """ #+begin_org
147
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CmndSvc- [[elisp:(outline-show-subtree+toggle)][||]] <<examples>> *FrameWrk: CS-Main-Examples* =verify= ro=noCli [[elisp:(org-cycle)][| ]]
148
+ #+end_org """
149
+ class examples(cs.Cmnd):
150
+ cmndParamsMandatory = [ ]
151
+ cmndParamsOptional = [ ]
152
+ cmndArgsLen = {'Min': 0, 'Max': 0,}
153
+ rtInvConstraints = cs.rtInvoker.RtInvoker.new_noRo() # NO RO From CLI
154
+
155
+ @cs.track(fnLoc=True, fnEntry=True, fnExit=True)
156
+ def cmnd(self,
157
+ rtInv: cs.RtInvoker,
158
+ cmndOutcome: b.op.Outcome,
159
+ ) -> b.op.Outcome:
160
+ """FrameWrk: CS-Main-Examples"""
161
+ failed = b_io.eh.badOutcome
162
+ callParamsDict = {}
163
+ if self.invocationValidate(rtInv, cmndOutcome, callParamsDict, None).isProblematic():
164
+ return failed(cmndOutcome)
165
+ ####+END:
166
+ self.cmndDocStr(f""" #+begin_org
167
+ ***** [[elisp:(org-cycle)][| *CmndDesc:* | ]] Conventional top level example.
168
+ #+end_org """)
169
+
170
+ cs.examples.myName(cs.G.icmMyName(), cs.G.icmMyFullName())
171
+ cs.examples.commonBrief()
172
+
173
+ if cs.ro.csMuIsPerformer() is True:
174
+ facter_csu.roPerf_examples_csu().pyCmnd(sectionTitle="default")
175
+ elif cs.ro.csMuIsInvoker() is True:
176
+ facter_csu.roInv_examples_csu().pyCmnd(sectionTitle="default")
177
+ elif cs.ro.csMuIsDirect() is True:
178
+ bleep.examples_icmBasic()
179
+ facter_csu.examples_csu().pyCmnd()
180
+ else:
181
+ oops()
182
+
183
+ return(cmndOutcome)
184
+
185
+ ####+BEGIN: b:py3:cs:cmnd/classHead :cmndName "noCmndProcessor" :comment "" :parsMand "" :parsOpt "" :argsMin 0 :argsMax 9999 :pyInv ""
186
+ """ #+begin_org
187
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CmndSvc- [[elisp:(outline-show-subtree+toggle)][||]] <<noCmndProcessor>> =verify= argsMax=9999 ro=cli [[elisp:(org-cycle)][| ]]
188
+ #+end_org """
189
+ class noCmndProcessor(cs.Cmnd):
190
+ cmndParamsMandatory = [ ]
191
+ cmndParamsOptional = [ ]
192
+ cmndArgsLen = {'Min': 0, 'Max': 9999,}
193
+
194
+ @cs.track(fnLoc=True, fnEntry=True, fnExit=True)
195
+ def cmnd(self,
196
+ rtInv: cs.RtInvoker,
197
+ cmndOutcome: b.op.Outcome,
198
+ argsList: typing.Optional[list[str]]=None, # CsArgs
199
+ ) -> b.op.Outcome:
200
+
201
+ failed = b_io.eh.badOutcome
202
+ callParamsDict = {}
203
+ if self.invocationValidate(rtInv, cmndOutcome, callParamsDict, argsList).isProblematic():
204
+ return failed(cmndOutcome)
205
+ cmndArgsSpecDict = self.cmndArgsSpec()
206
+ ####+END:
207
+ cmndOutcome = self.getOpOutcome()
208
+ if argsList:
209
+ facter_csu.factName().pyWCmnd(cmndOutcome, argsList=argsList)
210
+ print(cmndOutcome.results)
211
+ else:
212
+ examples().pyWCmnd(cmndOutcome,)
213
+
214
+ return(cmndOutcome)
215
+
216
+ ####+BEGIN: blee:bxPanel:foldingSection :outLevel 0 :sep nil :title "Main" :anchor "" :extraInfo "Framework DBlock"
217
+ """ #+begin_org
218
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* [[elisp:(outline-show-subtree+toggle)][| _Main_: |]] Framework DBlock [[elisp:(org-shifttab)][<)]] E|
219
+ #+end_org """
220
+ ####+END:
221
+
222
+ ####+BEGIN: b:py3:cs:framework/main :csInfo "csInfo" :noCmndEntry "noCmndProcessor" :extraParamsHook "g_extraParams" :importedCmndsModules "g_importedCmndsModules"
223
+ """ #+begin_org
224
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CsFrmWrk [[elisp:(outline-show-subtree+toggle)][||]] =g_csMain= (csInfo, _noCmndProcessor_, g_extraParams, g_importedCmndsModules)
225
+ #+end_org """
226
+
227
+ if __name__ == '__main__':
228
+ cs.main.g_csMain(
229
+ csInfo=csInfo,
230
+ noCmndEntry=noCmndProcessor, # specify a Cmnd name
231
+ extraParamsHook=g_extraParams,
232
+ importedCmndsModules=g_importedCmndsModules,
233
+ )
234
+
235
+ ####+END:
236
+
237
+ ####+BEGIN: b:py3:cs:framework/endOfFile :basedOn "classification"
238
+ """ #+begin_org
239
+ * [[elisp:(org-cycle)][| *End-Of-Editable-Text* |]] :: emacs and org variables and control parameters
240
+ #+end_org """
241
+
242
+ #+STARTUP: showall
243
+
244
+ ### local variables:
245
+ ### no-byte-compile: t
246
+ ### end:
247
+ ####+END:
@@ -0,0 +1,247 @@
1
+ #!/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+
4
+ """ #+begin_org
5
+ * ~[Summary]~ :: A =CmndSvc= for running the equivalent of facter in py and remotely with rpyc.
6
+ #+end_org """
7
+
8
+ ####+BEGIN: b:py3:cs:file/dblockControls :classification "cs-mu"
9
+ """ #+begin_org
10
+ * [[elisp:(org-cycle)][| /Control Parameters Of This File/ |]] :: dblk ctrls classifications=cs-mu
11
+ #+BEGIN_SRC emacs-lisp
12
+ (setq-local b:dblockControls t) ; (setq-local b:dblockControls nil)
13
+ (put 'b:dblockControls 'py3:cs:Classification "cs-mu") ; one of cs-mu, cs-u, cs-lib, bpf-lib, pyLibPure
14
+ #+END_SRC
15
+ #+RESULTS:
16
+ : cs-mu
17
+ #+end_org """
18
+ ####+END:
19
+
20
+ ####+BEGIN: b:prog:file/proclamations :outLevel 1
21
+ """ #+begin_org
22
+ * *[[elisp:(org-cycle)][| Proclamations |]]* :: Libre-Halaal Software --- Part Of BISOS --- Poly-COMEEGA Format.
23
+ ** This is Libre-Halaal Software. © Neda Communications, Inc. Subject to AGPL.
24
+ ** It is part of BISOS (ByStar Internet Services OS)
25
+ ** Best read and edited with Blee in Poly-COMEEGA (Polymode Colaborative Org-Mode Enhance Emacs Generalized Authorship)
26
+ #+end_org """
27
+ ####+END:
28
+
29
+ ####+BEGIN: b:prog:file/particulars :authors ("./inserts/authors-mb.org")
30
+ """ #+begin_org
31
+ * *[[elisp:(org-cycle)][| Particulars |]]* :: Authors, version
32
+ ** This File: /bisos/git/bxRepos/bisos-pip/facter/py3/bin/roPerf-facter.cs
33
+ ** Authors: Mohsen BANAN, http://mohsen.banan.1.byname.net/contact
34
+ #+end_org """
35
+ ####+END:
36
+
37
+ ####+BEGIN: b:py3:file/particulars-csInfo :status "inUse"
38
+ """ #+begin_org
39
+ * *[[elisp:(org-cycle)][| Particulars-csInfo |]]*
40
+ #+end_org """
41
+ import typing
42
+ csInfo: typing.Dict[str, typing.Any] = { 'moduleName': ['roPerf-facter'], }
43
+ csInfo['version'] = '202403273209'
44
+ csInfo['status'] = 'inUse'
45
+ csInfo['panel'] = 'roPerf-facter-Panel.org'
46
+ csInfo['groupingType'] = 'IcmGroupingType-pkged'
47
+ csInfo['cmndParts'] = 'IcmCmndParts[common] IcmCmndParts[param]'
48
+ ####+END:
49
+
50
+ """ #+begin_org
51
+ * [[elisp:(org-cycle)][| ~Description~ |]] :: [[file:/bisos/git/auth/bxRepos/blee-binders/bisos-core/PyFwrk/bisos-pip/bisos.cs/_nodeBase_/fullUsagePanel-en.org][BISOS CmndSvcs Panel]] [[elisp:(org-cycle)][| ]]
52
+
53
+ This a =CmndSvc= for running the equivalent of facter in py and remotely with rpyc.
54
+ With BISOS, it is used in CMDB remotely.
55
+
56
+ ** Status: In use with BISOS
57
+ ** /[[elisp:(org-cycle)][| Planned Improvements |]]/ :
58
+ *** TODO Convert all ICMs to CSs
59
+ #+end_org """
60
+
61
+ ####+BEGIN: b:prog:file/orgTopControls :outLevel 1
62
+ """ #+begin_org
63
+ * [[elisp:(org-cycle)][| Controls |]] :: [[elisp:(delete-other-windows)][(1)]] | [[elisp:(show-all)][Show-All]] [[elisp:(org-shifttab)][Overview]] [[elisp:(progn (org-shifttab) (org-content))][Content]] | [[file:Panel.org][Panel]] | [[elisp:(blee:ppmm:org-mode-toggle)][Nat]] | [[elisp:(bx:org:run-me)][Run]] | [[elisp:(bx:org:run-me-eml)][RunEml]] | [[elisp:(progn (save-buffer) (kill-buffer))][S&Q]] [[elisp:(save-buffer)][Save]] [[elisp:(kill-buffer)][Quit]] [[elisp:(org-cycle)][| ]]
64
+ ** /Version Control/ :: [[elisp:(call-interactively (quote cvs-update))][cvs-update]] [[elisp:(vc-update)][vc-update]] | [[elisp:(bx:org:agenda:this-file-otherWin)][Agenda-List]] [[elisp:(bx:org:todo:this-file-otherWin)][ToDo-List]]
65
+
66
+ #+end_org """
67
+ ####+END:
68
+
69
+ ####+BEGIN: b:py3:file/workbench :outLevel 1
70
+ """ #+begin_org
71
+ * [[elisp:(org-cycle)][| Workbench |]] :: [[elisp:(python-check (format "/bisos/venv/py3/bisos3/bin/python -m pyclbr %s" (bx:buf-fname))))][pyclbr]] || [[elisp:(python-check (format "/bisos/venv/py3/bisos3/bin/python -m pydoc ./%s" (bx:buf-fname))))][pydoc]] || [[elisp:(python-check (format "/bisos/pipx/bin/pyflakes %s" (bx:buf-fname)))][pyflakes]] | [[elisp:(python-check (format "/bisos/pipx/bin/pychecker %s" (bx:buf-fname))))][pychecker (executes)]] | [[elisp:(python-check (format "/bisos/pipx/bin/pycodestyle %s" (bx:buf-fname))))][pycodestyle]] | [[elisp:(python-check (format "/bisos/pipx/bin/flake8 %s" (bx:buf-fname))))][flake8]] | [[elisp:(python-check (format "/bisos/pipx/bin/pylint %s" (bx:buf-fname))))][pylint]] [[elisp:(org-cycle)][| ]]
72
+ #+end_org """
73
+ ####+END:
74
+
75
+ ####+BEGIN: b:py3:cs:orgItem/basic :type "=PyImports= " :title "*Py Library IMPORTS*" :comment "-- with classification based framework/imports"
76
+ """ #+begin_org
77
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* =PyImports= [[elisp:(outline-show-subtree+toggle)][||]] *Py Library IMPORTS* -- with classification based framework/imports [[elisp:(org-cycle)][| ]]
78
+ #+end_org """
79
+ ####+END:
80
+
81
+ ####+BEGIN: b:py3:cs:framework/imports :basedOn "classification"
82
+ """ #+begin_org
83
+ ** Imports Based On Classification=cs-mu
84
+ #+end_org """
85
+ from bisos import b
86
+ from bisos.b import cs
87
+ from bisos.b import b_io
88
+ from bisos.common import csParam
89
+
90
+ import collections
91
+ ####+END:
92
+
93
+ """ #+begin_org
94
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CsFrmWrk [[elisp:(outline-show-subtree+toggle)][||]] ~csuList emacs-list Specifications~ [[elisp:(blee:org:code-block/above-run)][ /Eval Below/ ]] [[elisp:(org-cycle)][| ]]
95
+ #+BEGIN_SRC emacs-lisp
96
+ (setq b:py:cs:csuList
97
+ (list
98
+ "bisos.b.cs.ro"
99
+ "blee.csPlayer.bleep"
100
+ "bisos.facter.facter_csu"
101
+ "bisos.banna.bannaPortNu"
102
+ ))
103
+ #+END_SRC
104
+ #+RESULTS:
105
+ | bisos.b.cs.ro | blee.csPlayer.bleep | bisos.facter.facter_csu | bisos.banna.bannaPortNu |
106
+ #+end_org """
107
+
108
+ ####+BEGIN: b:py3:cs:framework/csuListProc :pyImports t :csuImports t :csuParams t
109
+ """ #+begin_org
110
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CsFrmWrk [[elisp:(outline-show-subtree+toggle)][||]] =Process CSU List= with /4/ in csuList pyImports=t csuImports=t csuParams=t
111
+ #+end_org """
112
+
113
+ from bisos.b.cs import ro
114
+ from blee.csPlayer import bleep
115
+ from bisos.facter import facter_csu
116
+ from bisos.banna import bannaPortNu
117
+
118
+
119
+ csuList = [ 'bisos.b.cs.ro', 'blee.csPlayer.bleep', 'bisos.facter.facter_csu', 'bisos.banna.bannaPortNu', ]
120
+
121
+ g_importedCmndsModules = cs.csuList_importedModules(csuList)
122
+
123
+ def g_extraParams():
124
+ csParams = cs.param.CmndParamDict()
125
+ cs.csuList_commonParamsSpecify(csuList, csParams)
126
+ cs.argsparseBasedOnCsParams(csParams)
127
+
128
+ ####+END:
129
+
130
+ cs.invOutcomeReportControl(cmnd=True, ro=True)
131
+
132
+ ####+BEGIN: b:py3:cs:main/exposedSymbols :classes ()
133
+ """ #+begin_org
134
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CsFrmWrk [[elisp:(outline-show-subtree+toggle)][||]] ~Exposed Symbols List Specification~ with /0/ in Classes List
135
+ #+end_org """
136
+ ####+END:
137
+
138
+
139
+ ####+BEGIN: blee:bxPanel:foldingSection :outLevel 0 :sep nil :title "CmndSvcs" :anchor "" :extraInfo "Command Services Section"
140
+ """ #+begin_org
141
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* [[elisp:(outline-show-subtree+toggle)][| _CmndSvcs_: |]] Command Services Section [[elisp:(org-shifttab)][<)]] E|
142
+ #+end_org """
143
+ ####+END:
144
+
145
+ ####+BEGIN: b:py3:cs:cmnd/classHead :cmndName "examples" :extent "verify" :ro "noCli" :comment "FrameWrk: CS-Main-Examples" :parsMand "" :parsOpt "" :argsMin 0 :argsMax 0 :pyInv ""
146
+ """ #+begin_org
147
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CmndSvc- [[elisp:(outline-show-subtree+toggle)][||]] <<examples>> *FrameWrk: CS-Main-Examples* =verify= ro=noCli [[elisp:(org-cycle)][| ]]
148
+ #+end_org """
149
+ class examples(cs.Cmnd):
150
+ cmndParamsMandatory = [ ]
151
+ cmndParamsOptional = [ ]
152
+ cmndArgsLen = {'Min': 0, 'Max': 0,}
153
+ rtInvConstraints = cs.rtInvoker.RtInvoker.new_noRo() # NO RO From CLI
154
+
155
+ @cs.track(fnLoc=True, fnEntry=True, fnExit=True)
156
+ def cmnd(self,
157
+ rtInv: cs.RtInvoker,
158
+ cmndOutcome: b.op.Outcome,
159
+ ) -> b.op.Outcome:
160
+ """FrameWrk: CS-Main-Examples"""
161
+ failed = b_io.eh.badOutcome
162
+ callParamsDict = {}
163
+ if self.invocationValidate(rtInv, cmndOutcome, callParamsDict, None).isProblematic():
164
+ return failed(cmndOutcome)
165
+ ####+END:
166
+ self.cmndDocStr(f""" #+begin_org
167
+ ***** [[elisp:(org-cycle)][| *CmndDesc:* | ]] Conventional top level example.
168
+ #+end_org """)
169
+
170
+ cs.examples.myName(cs.G.icmMyName(), cs.G.icmMyFullName())
171
+ cs.examples.commonBrief()
172
+
173
+ if cs.ro.csMuIsPerformer() is True:
174
+ facter_csu.roPerf_examples_csu().pyCmnd(sectionTitle="default")
175
+ elif cs.ro.csMuIsInvoker() is True:
176
+ facter_csu.roInv_examples_csu().pyCmnd(sectionTitle="default")
177
+ elif cs.ro.csMuIsDirect() is True:
178
+ bleep.examples_icmBasic()
179
+ facter_csu.examples_csu().pyCmnd()
180
+ else:
181
+ oops()
182
+
183
+ return(cmndOutcome)
184
+
185
+ ####+BEGIN: b:py3:cs:cmnd/classHead :cmndName "noCmndProcessor" :comment "" :parsMand "" :parsOpt "" :argsMin 0 :argsMax 9999 :pyInv ""
186
+ """ #+begin_org
187
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CmndSvc- [[elisp:(outline-show-subtree+toggle)][||]] <<noCmndProcessor>> =verify= argsMax=9999 ro=cli [[elisp:(org-cycle)][| ]]
188
+ #+end_org """
189
+ class noCmndProcessor(cs.Cmnd):
190
+ cmndParamsMandatory = [ ]
191
+ cmndParamsOptional = [ ]
192
+ cmndArgsLen = {'Min': 0, 'Max': 9999,}
193
+
194
+ @cs.track(fnLoc=True, fnEntry=True, fnExit=True)
195
+ def cmnd(self,
196
+ rtInv: cs.RtInvoker,
197
+ cmndOutcome: b.op.Outcome,
198
+ argsList: typing.Optional[list[str]]=None, # CsArgs
199
+ ) -> b.op.Outcome:
200
+
201
+ failed = b_io.eh.badOutcome
202
+ callParamsDict = {}
203
+ if self.invocationValidate(rtInv, cmndOutcome, callParamsDict, argsList).isProblematic():
204
+ return failed(cmndOutcome)
205
+ cmndArgsSpecDict = self.cmndArgsSpec()
206
+ ####+END:
207
+ cmndOutcome = self.getOpOutcome()
208
+ if argsList:
209
+ facter_csu.factName().pyWCmnd(cmndOutcome, argsList=argsList)
210
+ print(cmndOutcome.results)
211
+ else:
212
+ examples().pyWCmnd(cmndOutcome,)
213
+
214
+ return(cmndOutcome)
215
+
216
+ ####+BEGIN: blee:bxPanel:foldingSection :outLevel 0 :sep nil :title "Main" :anchor "" :extraInfo "Framework DBlock"
217
+ """ #+begin_org
218
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* [[elisp:(outline-show-subtree+toggle)][| _Main_: |]] Framework DBlock [[elisp:(org-shifttab)][<)]] E|
219
+ #+end_org """
220
+ ####+END:
221
+
222
+ ####+BEGIN: b:py3:cs:framework/main :csInfo "csInfo" :noCmndEntry "noCmndProcessor" :extraParamsHook "g_extraParams" :importedCmndsModules "g_importedCmndsModules"
223
+ """ #+begin_org
224
+ * _[[elisp:(blee:menu-sel:outline:popupMenu)][±]]_ _[[elisp:(blee:menu-sel:navigation:popupMenu)][Ξ]]_ [[elisp:(outline-show-branches+toggle)][|=]] [[elisp:(bx:orgm:indirectBufOther)][|>]] *[[elisp:(blee:ppmm:org-mode-toggle)][|N]]* CsFrmWrk [[elisp:(outline-show-subtree+toggle)][||]] =g_csMain= (csInfo, _noCmndProcessor_, g_extraParams, g_importedCmndsModules)
225
+ #+end_org """
226
+
227
+ if __name__ == '__main__':
228
+ cs.main.g_csMain(
229
+ csInfo=csInfo,
230
+ noCmndEntry=noCmndProcessor, # specify a Cmnd name
231
+ extraParamsHook=g_extraParams,
232
+ importedCmndsModules=g_importedCmndsModules,
233
+ )
234
+
235
+ ####+END:
236
+
237
+ ####+BEGIN: b:py3:cs:framework/endOfFile :basedOn "classification"
238
+ """ #+begin_org
239
+ * [[elisp:(org-cycle)][| *End-Of-Editable-Text* |]] :: emacs and org variables and control parameters
240
+ #+end_org """
241
+
242
+ #+STARTUP: showall
243
+
244
+ ### local variables:
245
+ ### no-byte-compile: t
246
+ ### end:
247
+ ####+END: