diff options
Diffstat (limited to 'ansible_collections/infinidat/infinibox')
23 files changed, 1200 insertions, 252 deletions
diff --git a/ansible_collections/infinidat/infinibox/CHANGELOG.rst b/ansible_collections/infinidat/infinibox/CHANGELOG.rst index b267befe0..afa6e61c6 100644 --- a/ansible_collections/infinidat/infinibox/CHANGELOG.rst +++ b/ansible_collections/infinidat/infinibox/CHANGELOG.rst @@ -3,6 +3,54 @@ Change Log ========== ------------------- +v1.4.5 (2024-04-11) +------------------- + +^^^^^^^^^^^^^^^^^^^^ +Project Enhancements +^^^^^^^^^^^^^^^^^^^^ +* Update CHANGELOG. + +------------------- +v1.4.4 (2024-04-09) +------------------- + +^^^^^^^^^^^^^^^^^^^^ +Feature Enhancements +^^^^^^^^^^^^^^^^^^^^ +* psdev-1178: Add infini_infinimetrics module. Allows adding an Infinibox to Infinimetrics. +* psdev-1108: Extend configure_array example playbook to further demonstrate extensive customization of an Infinibox using Ansible. +* psdev-1222: Add pool threshold alarm setting support to infini_pool. + +^^^^^^^^^ +Bug Fixes +^^^^^^^^^ +* psdev-1221: Fix infini_notification_rule. Find the correct target ID when using a recipient. The ID cannot be assumed to be 3. + +^^^^^^^^^^^^^^^^^^^^ +Project Enhancements +^^^^^^^^^^^^^^^^^^^^ +* psdev-1188: Refactor CICD to use Infinibox 2503. + +------------------- +v1.4.3 (2024-02-13) +------------------- + +^^^^^^^^^^^^^^^^^^^^ +Project Enhancements +^^^^^^^^^^^^^^^^^^^^ +* psdev-1150: Update galaxy.yml for publication on Automation Hub. + +------------------- +v1.4.2 (2024-02-12) +------------------- + +^^^^^^^^^^^^^^^^^^^^ +Project Enhancements +^^^^^^^^^^^^^^^^^^^^ +* psdev-1150: Update galaxy.yml for publication on Automation Hub. + +------------------- v1.4.1 (2024-02-06) ------------------- @@ -10,7 +58,6 @@ v1.4.1 (2024-02-06) Feature Enhancements ^^^^^^^^^^^^^^^^^^^^ * Require Ansible >= 2.14.0 -* psdev-1178: Add infini_infinimetrics moduile. Allows add an Infinibox to Infinimetrics. ------------------- v1.4.0 (2024-02-05) diff --git a/ansible_collections/infinidat/infinibox/FILES.json b/ansible_collections/infinidat/infinibox/FILES.json index e5a36d2bf..5553084b9 100644 --- a/ansible_collections/infinidat/infinibox/FILES.json +++ b/ansible_collections/infinidat/infinibox/FILES.json @@ -29,24 +29,24 @@ "format": 1 }, { - "name": "ibox_vars/iboxNNNN_example.yaml", + "name": "ibox_vars/vibox.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "888179c43aa1427102ee53ba7d2a1439acd6e4ae3d9c05ce1f71fa373b315af8", + "chksum_sha256": "57b80073e4302ae0dd4f5a6f713c81c5fb6d92be5ff7431c028ad728dadef8c9", "format": 1 }, { - "name": "ibox_vars/iboxCICD.yaml", + "name": "ibox_vars/iboxNNNN_example.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "558e286155b4ecf459ded4d0187b317f69201750e6ec1e09abbb7b247e3f9ad3", + "chksum_sha256": "ebb6a3939ac236fcd9b0a738c7ece0f9d5f1dd0a7f78aed17f2e94f00325e596", "format": 1 }, { - "name": "ibox_vars/vibox.yaml", + "name": "ibox_vars/iboxCICD.yaml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82cebc7345d44c418a05b7309bc09f69e3e0192da55a19b7ba87f0d7b14be5d0", + "chksum_sha256": "abc06a5ab98659985e610a5bc366e0a5ab526204da14292bf090d02af288c545", "format": 1 }, { @@ -102,7 +102,7 @@ "name": "playbooks/configure_array.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dd8225826ce2fcc0f59aeadef0136a962cd8c89fe40ac4001ffaa2d27864a01d", + "chksum_sha256": "379d76d103751fa5710763f43205abb4ec44fb530c6332914c09b2afc8d438cc", "format": 1 }, { @@ -295,6 +295,13 @@ "format": 1 }, { + "name": "plugins/modules/infini_infinimetrics.py", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "53f10edb20d7292a3b86dc39bdee8475ec78789349144dcccd9cbadc2d636a02", + "format": 1 + }, + { "name": "plugins/modules/infini_fibre_channel_switch.py", "ftype": "file", "chksum_type": "sha256", @@ -372,10 +379,10 @@ "format": 1 }, { - "name": "plugins/modules/infini_notification_rule.py", + "name": "plugins/modules/infini_pool.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "28ff855e3ffd038af35d92030c87461bcaff64f3e3c561a868f37800ecba9c33", + "chksum_sha256": "9e1aee3951197de002baab7333f96141debcca4db25a0f7f686b0c2203be24e1", "format": 1 }, { @@ -414,24 +421,24 @@ "format": 1 }, { - "name": "plugins/modules/infini_pool.py", + "name": "plugins/modules/infini_port.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09d81af6094917024aa51c39d9ae88367afa337f1944b12e9e0208369924833e", + "chksum_sha256": "09ed2ba4508b91df5c8a15d694463e8ea87615acd21e362ae1219b6e4bc1492f", "format": 1 }, { - "name": "plugins/modules/infini_port.py", + "name": "plugins/modules/infini_sso.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "09ed2ba4508b91df5c8a15d694463e8ea87615acd21e362ae1219b6e4bc1492f", + "chksum_sha256": "cbb5879bb0874d71dbf648f13c5a11c5767356cddd29c1239898b38141f4a3b4", "format": 1 }, { - "name": "plugins/modules/infini_sso.py", + "name": "plugins/modules/infini_notification_rule.py", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "cbb5879bb0874d71dbf648f13c5a11c5767356cddd29c1239898b38141f4a3b4", + "chksum_sha256": "db9a81d5adaf9ccae5a0454d651bf913c5ff361255922b9c22f6a17e990984fe", "format": 1 }, { @@ -662,7 +669,7 @@ "name": "tests/hacking/infini_notification_rule_present.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "82cebfaa87803000c85ffc84f6134fa88ec952c4fb374c33b0a9d83d9c40137f", + "chksum_sha256": "672faf6777e1f2e20330978ae22375d8fc2b964357d000dc628470795c0ac8d1", "format": 1 }, { @@ -848,6 +855,83 @@ "format": 1 }, { + "name": "tests/hacking/infini_pool_stat.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "8c7149260706e73ee4b57c9f3ad8f2905f94c82aa7251c4df5dd38b79ed5631b", + "format": 1 + }, + { + "name": "tests/hacking/infini_pool_absent.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "f6d5b22375ad150dcfa5927c213f96f206ad0f5feee3e9da31da62a53a793750", + "format": 1 + }, + { + "name": "tests/hacking/infini_sso_present_vibox.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "10cc3063ad3a502f739c645c39a6275fc4b7261ed0ee7d955abd016446ae8470", + "format": 1 + }, + { + "name": "tests/hacking/infini_infinimetrics_absent.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ca6acb2d421c89b6e8adb70723c0f937e9eed9ca1f37ab64b38ba43079dc9cab", + "format": 1 + }, + { + "name": "tests/hacking/infini_notification_rule_present_vibox.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "672faf6777e1f2e20330978ae22375d8fc2b964357d000dc628470795c0ac8d1", + "format": 1 + }, + { + "name": "tests/hacking/infini_notification_rule_present_1521.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "c823038faf18206b0e0ba4c7d9ea60d9147497a52298b34f9d71425ab9905d96", + "format": 1 + }, + { + "name": "tests/hacking/infini_infinimetrics_present.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "ed4e2917ed47877b84191b4d8770047f2472a106be92b9b37fb4bb01b141bc83", + "format": 1 + }, + { + "name": "tests/hacking/infini_notification_rule_absent_vibox.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "a6f1d3b769dd1e6cfc0458c9d81b2637d3b71503913f5ab9ba42fa87311f7150", + "format": 1 + }, + { + "name": "tests/hacking/infini_notification_rule_absent_1521.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "1625dc67e0cdb3f35aa45dde3595334c343b12fcf0e41dd9e114e9b2bc855556", + "format": 1 + }, + { + "name": "tests/hacking/infini_pool_present.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "99828cc60970be8032469217543281b94b43d74690e38cecfbfdf9dd3c786589", + "format": 1 + }, + { + "name": "tests/hacking/infini_sso_present_1521.json", + "ftype": "file", + "chksum_type": "sha256", + "chksum_sha256": "3ce0b66687616baa0fcbca91a53154a614165c7fb49621447246b89c6fa06d7d", + "format": 1 + }, + { "name": "tests/config.yml", "ftype": "file", "chksum_type": "sha256", @@ -911,31 +995,31 @@ "format": 1 }, { - "name": "README.md", + "name": "CHANGELOG.rst", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "f3461153b976b6891497f8142af206c6196915b37179b9b57685f9a84bec31d0", + "chksum_sha256": "a859e3dfe7533c580b26f093999bbcb04384f43403609273101c12c778dfeff6", "format": 1 }, { - "name": ".gitlab-ci.yml", + "name": "README.md", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "9df779aac7597942f23788f2b7636ec3f56612ffad1f548eb4b4bbed636d3764", + "chksum_sha256": "e86f9831c38253c674c88cc417c44e9d5d0761da173e4fddced4fd1226c3f743", "format": 1 }, { - "name": ".gitignore", + "name": ".gitlab-ci.yml", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "dc9405faf5aa7aa9af717d8a1f4dad063a9103a7857b29d48775702e5ad79f02", + "chksum_sha256": "9df779aac7597942f23788f2b7636ec3f56612ffad1f548eb4b4bbed636d3764", "format": 1 }, { - "name": "CHANGELOG.rst", + "name": ".gitignore", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "ddb4872a24789ff8bbfbf443dbd2c6a1802c6a8e11d49681634f1321d6ce0d6e", + "chksum_sha256": "dc9405faf5aa7aa9af717d8a1f4dad063a9103a7857b29d48775702e5ad79f02", "format": 1 } ], diff --git a/ansible_collections/infinidat/infinibox/MANIFEST.json b/ansible_collections/infinidat/infinibox/MANIFEST.json index bfe21c7b6..22e703abc 100644 --- a/ansible_collections/infinidat/infinibox/MANIFEST.json +++ b/ansible_collections/infinidat/infinibox/MANIFEST.json @@ -2,7 +2,7 @@ "collection_info": { "namespace": "infinidat", "name": "infinibox", - "version": "1.4.3", + "version": "1.4.5", "authors": [ "Infinidat <partners.infi@infinidat.com>", "David Ohlemacher", @@ -12,7 +12,7 @@ "tags": [ "array", "cloud", - "fiber", + "fibre", "fibre_channel", "fibrechannel", "hostpowertools", @@ -20,6 +20,8 @@ "infinibox", "infinidat", "infinihost", + "infinimetrics", + "infinisafe", "infinisdk", "iscsi", "nas", @@ -44,7 +46,7 @@ "name": "FILES.json", "ftype": "file", "chksum_type": "sha256", - "chksum_sha256": "e45ed8525f39595d529c89a74a32429e893f5b90ee87289e837086a630df0bbd", + "chksum_sha256": "72f3532f993722e91df2a6aafcf96a083a0f8bacc9ec99a580f6881162064806", "format": 1 }, "format": 1 diff --git a/ansible_collections/infinidat/infinibox/README.md b/ansible_collections/infinidat/infinibox/README.md index e248972ca..c375d4abf 100644 --- a/ansible_collections/infinidat/infinibox/README.md +++ b/ansible_collections/infinidat/infinibox/README.md @@ -12,17 +12,19 @@ All Infindat InfiniBoxes are supported. ## Prerequisites - Ansible 2.14 or newer - InfiniSDK 225.1.1 or newer -- Python 3.6 or newer. This is a prerequisite of Infinidat's infinisdk Python module. +- Python 3.6 or newer. This is a prerequisite of Infinidat's infiniSDK Python module. ## Modules - infini_certificate: Configure a SSL certificate. - infini_cluster: Creates, deletes or modifies host clusters. - infini_config: Modify an Infinibox configuration. +- infini_event: Post events. - infini_export: Creates, deletes or modifies NFS exports. - infini_export_client: Creates, deletes or modifys NFS client(s) for existing exports. - infini_fibre_channel_switch: Rename a fibre channel switch. - infini_fs: Creates, deletes or modifies filesystems. - infini_host: Creates, deletes or modifies hosts. +- infini_infinimetrics: Add or remove an Infinibox from an Infinimetrics. - infini_map: Creates or deletes mappings of volumes to hosts. - infini_metadata: Creates or deletes metadata for various Infinidat objects. - infini_network_space: Creates or deletes network spaces. @@ -32,7 +34,6 @@ All Infindat InfiniBoxes are supported. - infini_port: Adds or deletes fibre channel or iSCSI ports to hosts. - infini_sso: Configure a single-sign-on (SSO) certificate. - infini_user: Creates, deletes or modifies an InfiniBox user. -- infini_users_repositories: Creates, deletes, or modifies LDAP and AD Infinibox configurations. - infini_users_repository: Configure Active directory (AD) and Lightweight Directory Access Protocol (LDAP). - infini_vol: Creates, deletes or modifies a volume. @@ -60,8 +61,13 @@ Example playbooks are included in the collection: - test_remove_map_cluster.yml: Removes resouces created by its cohort. - Playbooks for testing snapshotting: + - test_create_snapshots.yml: Creates snapshots. + - test_remove_snapshots.yml: Removes created snapshots. -These two playbooks serve as a reference to the use of the modules. These exercise all modules demonstrating normal usage, idempotency and error conditions. Individual module documentation is available via `ansible-doc`. +- Playbooks for Infinibox configuration: + - configure_array.yml: Configures many aspects of an Infinibox. + +The two test playbooks also serve as a reference to the use of the modules. These exercise many modules demonstrating normal usage, idempotency and error conditions. Individual module documentation is available via `ansible-doc`. ### Example Usage Install the collection and cd into the collection's infi/ directory. Create an ibox yaml file in ibox_vars/. Use the example yaml file as a reference. diff --git a/ansible_collections/infinidat/infinibox/ibox_vars/iboxCICD.yaml b/ansible_collections/infinidat/infinibox/ibox_vars/iboxCICD.yaml index 91aeb192e..32b1b7d0c 100644 --- a/ansible_collections/infinidat/infinibox/ibox_vars/iboxCICD.yaml +++ b/ansible_collections/infinidat/infinibox/ibox_vars/iboxCICD.yaml @@ -1,11 +1,157 @@ $ANSIBLE_VAULT;1.1;AES256 -62653266666434313135323036623039316436346264346165616364343662643163343835363366 -6234343463353063643666386537613034363837323730370a396338326665333066323635383833 -34363466633839306135386336613931353335306330346330303930303132373231633362353363 -3539373931306362610a613330346535373438643763663365306631336638316234613863323234 -35343636623034646632396235393630356632386236323935613039313266653965646563613938 -37303336343431386566656331613461376533353164376430343631353365306431363034383763 -37383633343562386561306638386635313432623766306336386366666336323663313966353963 -66643931653363316130316331633137333237376331353439356131623735346561636262646332 -33316436643365336639666461633762353833386330643331633931323664643364393835396330 -6364626632306532373263333430336135336238373731646666 +63636339346561366236303937353736633636613333313835636562623362396231643334626536 +6365373633383839393232633163626165363334303932660a643436336338356236623637306535 +34646561643138616532333764336230313835616266313033366531386162396562356662373130 +6663343664623866310a303761383135393366316335363038626365633935336464363265303466 +34306238336364656166356664663233623631376432643238353434313133663362393938623563 +35313263303665393938633566333637373030623438373861376666633263383066333632336666 +62363234303262303462386139326361313038323137653662633762646339623564383665613366 +31633662663634623365333033396332613362653664303564336464333063346164626337616230 +34623938636339386266366261613238366361663639646530623866643836363134346638666662 +32666361366431633533663532353539386537356435386431663034396638633739343831653038 +33373835333132616663363237643336626234393131303330623731353030386665333336313961 +32343139616562633563636539636439373062626438653837383030313438326162653065653339 +39646531626665376131333065653431373061383165653161306132613364366531376132633236 +30383366656237386165663339653032383239653635643466366363633966303864626337356530 +35326130613532666334653332653131333762653139623932393363393932383961383364646436 +39363239346538393661613265623135326534396434643838323235366562653037366462633635 +66643238313930663038643963656131656335356566383336646366626235393834323663646531 +34363033373038353238353230656566306139366665386464636565376330616532393231393331 +63663837343535313939373264383864626530633939383230323730303433366562333230646432 +30396465643737383839613064343961343566313331663731656638653832386264613336623339 +30333237646565323966346436333764616531366530323261646339363465366335303735636534 +61393437663234663363396433306666646538353336303132333165613934666639613162393939 +32393363623564373166363762316232316463353433656139346234346361386335373432353432 +65623632383435643039663461656130636138636231663632386433373833663734396137393866 +33636339346465653964386637336363316461373030623637663535663034366134383235353239 +32373963343533623066373963373963383038316333343038636462376332316335633531353333 +38663966393438656337633931326464363139393933393438376636326432346639386361303938 +64303764663135633864316562646666343439323964356261373834353834343930383038633965 +33636637356335383837663439626439616563393632643039376339636661616234343739383636 +61313834666363663830303564323237363632333563343565366164336431366433313435383938 +35336239313731396237343037366334643238633431376666303264343962376534373761356565 +35393962623631363064653962316565666432646361373339346433303963356463393661326337 +31373864343034663564616633643066383862646137383264636561333638306661386666656135 +38656433626235303564356336303830653162613965383266303534363963376636353235663365 +61306164616464623636633663343232613236386264306334313538343536356337323137323631 +30386630376535333665353937623266393734613432663331316130643138396539326362393032 +31336438366636343431366362316336643739383131396137323438666265636130656636356565 +64663933313239623736616134303664303838643930633063653133383637316238336166336364 +32623863356363336335323063316238396363356261386362613233616565616362633433353931 +39366137343464343964616362353938346237373963636432363338386564373932623032353863 +39666265363237313938656462383164393135373932626436633038636137383762623763323764 +31366166306334633531393839616530316134393939343138366665643536656631613230376564 +34646139303761376562346363616334366138646339643331353964656539363738633365373031 +35373734323866316231316432393136363734353834333330353032326230333166326362306333 +34326233346165613164376464636333356535643433353865383264383661666236646336363036 +32653632666361396633656566636431386631313137636166336365636336373962306566653836 +36383539393035316365326236613138646532626236353065363032623833613462303861663430 +66346138376264316434313564363264616365386434396564336537653230396266346632623663 +66343538396664333164366232616430313534386264356533646233336535656263336230643532 +64343733353166363561303932373963303636376431656262376132356561376530346161643338 +61323035366463373561316264373537316133386265646132326263343137626237336537633530 +36396133303262623164393631373164313134663662643763386163323362303130656138326363 +64396362313661323065306664373130663336613835306138613235363661303962643034313034 +64386464626334393561623564653035363534333130346663623837346438373861396364303066 +63656663633536316465306561316336653233333163346563323438386637613830316537626330 +63623937303137653264363932633939663263386465346162396565633533353333333966623132 +33313164663162376138336335303032666231646238666464616162393032643436613835376235 +31656537633835646330396539316634663161386531353035333439626262613631663230336132 +35313831303766663066363136653266343939353438613563616438396135396230613437336531 +61373461346534353931376339363265353033643537393332316563353330373935353263663136 +37303735643739373338653930323638326236386463323561616566323330646165363432383963 +39336331353466373938306536356462363331373333663861313932653966383165613234396461 +63346561643863393130316635336533346630383561346231326663333531623231646338313664 +30366665643039346337333765393334376131373634633462643666643837393635303838336261 +30323737363335656363613830626439666533613362306335363063623030303232363363633236 +61316431623434326162663232306561393563306134643961626232666361326634636365613964 +37346662633839623564323661613261393532356665653265343865633837633637376131373165 +34346532646537623865383361343338353436326438666433666232316466303230663731653664 +66393836636534323833313030333531353463383435633733646464303036323865666131363433 +66396533323766383832386464363735313833633866383733636131323831363034643437303335 +30316631643333393662323465336634326564346238663236353964376432323461616632303035 +30616164626436333933326534333262356461663164313831313161333261623766333463336333 +65623733393435393232643635646163393665353131303266316636386165323437633261643939 +64656234356138643430336536646162343162303030343961313036623535316136633832626264 +36303262653139626364373634663737336633346536623534626333613033353163346461386334 +66316539313731633431336531323134373164386366386631346166396666623834663932323334 +37383430616561616662376466633137396437626437646135393063383336623261393336396563 +61316265326237363165363139323936313132626164636437613361633934396562306236353832 +62663439646366303766613462346636313838623735653564383838636439343030353435346432 +61323130333964353235383736663663653635373236393162643730623765633538383231373863 +37356535633865303061343430613438323337316565663737316432353634313632373830316331 +65663737626330313734653262323339306331346165393933303462643765356630623031353465 +33396231636436666137336261393537633734383531663962353234313366623135653061376531 +63643334376361653162366637393762373964666664383939386536396265373930386263646365 +33383863386365656538663535646336353735613061376632376238666339346138353038313531 +30633934303538343263613438623330326633663833656537386361653233623362613737363061 +36313061323561636464313938363563643633366235396262613035633261353738303964393230 +63313932303631363836643038313435366431313261656664353535386136386165393031636338 +61663331333938663533633365343466336366303864393666636461663564653831376464623830 +31363464623765353263333763613764663938336564633437386331303438326266323539336533 +61373462303934373563646131626562316262383134353765656639623964343939396330633133 +64626565323738396133326632303566633638623564643630303331613464653635663837343363 +36633938373234316337356363363663363338653836613766363934356631373464333531396630 +62333335363835343938613161323737333864653630333733356332633561343261623239343233 +34376537656532346563656134626437343561376266663063393135333330623530353164633839 +31353562616538303331616534363435616639373966643466316135643765653063356463306330 +36303132343537353963363564346531393134383264646336396330313139633930383063346366 +34643466323466363338613538323234393262613663383862303638363062396462336135353865 +31336163346330316562656336326632353366373037636665643031656639396132643466663635 +33383638383265636535306537343039363439663233346364633062353462336332636261636330 +61323661356139383333643236376463653137663838383730313833613332393633373535396563 +31346461646338376330653839373838643631666662323739373333326435363434336665626435 +63623033356239393733393162613330656539316633396362393237653937343834643864643063 +35313039613237356362616438646663316635313635363639313762323765366563366233316330 +35356438333735646238323637323137666165373332616263346331323966303561333365633064 +39623163363134646163313439663461323235633834343365383962313665393031313938363935 +34646663343539313835376433616538373433303138396338383565343932306634643361343337 +39613230313532343662316635333934663737643362303530636131313031633664383065336366 +35303834336532623463393561633631363866353736626462363134653439333161323738366232 +34636330346635303764616265353036383838613865393939333631633236363836326635323430 +34396565333935316436663236383939303666383634336333613639663164316239353562383936 +39373139316664633231353732383431326235386237666134323133363930303033646532383537 +30666163323461313661333465393230656535393664656561306135323862383634343065353339 +63386638643464653836363236613332343034343165623832636633313064643361303138353537 +61343836633231356232373138623763633531353564326462393136313664393064396338323461 +66383031613638313633623037303435383731396361616231313839323163646130643238353831 +31323839643162663862623434356663356430663166383161363062343934383833343462373835 +35333636613837323839613130373330313532366363323762366439663431633331336561386433 +62376130646538626232626431393731376633653031663730623737656139646362333030303730 +39623761353861623837323032633631336534623036393966383665383739386138326461383833 +61333361373232373930333664336637356233396164313632616662333335316532313730646163 +35366530666431623232313638306562623764313963306165333135613931343337663734373065 +30623737623935376432633835373939663964383733326234333266353362356238653465613164 +64646366346233656433653036646537303434366464393737396532303364313636363235663063 +34646634636136613239353761356465333439653236633831373032363562386231376333313161 +34373033343737383962653530356530366633613564623936353566636438653666326563646465 +30633632363230303563626465656562623466336534323163303366303839333965666238336465 +36373830636530633535323137316162306665656632323639623637326436373137653065323761 +34356163393539383266663566623631646439313135653536373838613237343832363065656332 +66633833393231356365353962396134323162303963373464363963306437326662303337373030 +32323338313333653065613930346661386136663261633639356234373431646362316361323235 +62346232643233653237353635323033343366303930366666643162353737613739316231623863 +64366239666564643830656564303236663130633434633239643461666433316262393230663737 +33316232613038363436336638616233663131333731333034313932373662336265306635656236 +34646238653835393066376636643739346634613832656138366433353631356563316130313162 +38356136646535363566383332666463343231336164663438656366353765393537353764306266 +62323665356563613435376366633637373934356531316161653464323562623132613565396132 +66333738633366613036656262353935616661313661636166626666663065633337376534393161 +36653130623334363661663132396434366434613565613865336665303130326239343165366362 +31343763643738333833343338666136386335643135663732636463356439373833386462643264 +32316136613730643035643139323630316330336563306165636161636235306233643564643164 +38336436636265663733336164326331373666323366663134663331656530363034393231303339 +35653361633034366264346537386239353236396432623635636232646332633731663537353535 +34663666393761353733626563316538346364356662313135346130393536346638393136643133 +64666235343965393038333662623365373563306234313435323639363563663232363532343838 +38323536393236383339613064383964643732643932376134333863333830633232646632363134 +62313534396538633630306164646461656462346661393333626365626435636361326164376438 +33663638326330643238646432356161306639366230306230616134323936396132653539306232 +61316132373933643166663933333339633036323663613432353163663436303561623035656436 +35656564363437626437653630306436386335626632636164653037353463326366373032663266 +39666162343438353463353763356135333636303033643764626266643932353663613233383433 +36663435396536326433383664666336306639376639656661663634373933636561356538646234 +66653763393338663134613036366464346664663966306236613539623764653932313237316330 +36303530386230636430646165646531663131396562393638316261373066616237656330383639 +32626337613231376430623832336439303933333962343339356139343264646339663461313834 +62623838336533636334 diff --git a/ansible_collections/infinidat/infinibox/ibox_vars/iboxNNNN_example.yaml b/ansible_collections/infinidat/infinibox/ibox_vars/iboxNNNN_example.yaml index d4ef26691..9fa9eaf70 100644 --- a/ansible_collections/infinidat/infinibox/ibox_vars/iboxNNNN_example.yaml +++ b/ansible_collections/infinidat/infinibox/ibox_vars/iboxNNNN_example.yaml @@ -4,11 +4,66 @@ # - $ ansible-vault encrypt <file> # # Any value for auto_prefix may be used. auto_prefix is used in every resource created by -# the example playbooks, making resources easy to find. +# the example playbooks, making example resources easy to find. auto_prefix: "PSUS_ANSIBLE_" user: "user" -password: "password" +password: "redacted" system: "iboxNNNN" +# Variables used by infini_infinimetrics module: +ibox_serial: 30368 +ibox_url: 172.20.68.167 +ibox_readonly_user: david-ro +ibox_readonly_password: redacted +ibox_readonly_email: user@infinidat.com +imx_system: infinimetrics +imx_user: IMX_ADMIN +imx_password: redacted + +# Variables used by infini_sso module sso_signing_certificate: "signing cert in one single line with the begin and end lines removed" # Used by configure_array playbook + +# Other variables +pool_size: 10GB +pool_vsize: 11GB +dataset_default_provisioning: THIN +use_base2_units: true +table_export_limit: 3000 +admin_user_name: admin +admin_user_password: redacted +admin_user_email: dev.mgmt@infinidat.com +pool_admin_user_name: Commvault +pool_admin_user_password: redacted +pool_admin_user_email: user@infinidat.com +ldap_name: PSUS_ANSIBLE_ad +setup_alerting_emails: ["user@infinidat.com"] +prod_alerting_emails: ["user@infinidat.com"] +alerting_event_levels: ["INFO", "WARNING", "ERROR", "CRITICAL"] +alerting_includes: [] +alerting_excludes: ["EVENT_FLOOD", "USER_LOGIN_SUCCESS", "USER_LOGGED_OUT"] +syslogs: # A list of syslog dictionaries + - target_name: syslog1_target + rule_name: syslog1 + protocol: SYSLOG + host: 172.31.88.158 + port: 514 + facility: LOCAL7 + transport: UDP + post_test: true # Not a real test if using UDP + - target_name: syslog2_target + rule_name: syslog2 + protocol: SYSLOG + host: 172.31.88.158 + port: 515 + facility: LOCAL7 + transport: UDP + post_test: true + - target_name: graylog_target + rule_name: graylog + protocol: SYSLOG + host: 172.31.77.214 + port: 1514 + facility: LOCAL7 + transport: UDP + post_test: true diff --git a/ansible_collections/infinidat/infinibox/ibox_vars/vibox.yaml b/ansible_collections/infinidat/infinibox/ibox_vars/vibox.yaml index 76dc8b5b7..653df3efe 100644 --- a/ansible_collections/infinidat/infinibox/ibox_vars/vibox.yaml +++ b/ansible_collections/infinidat/infinibox/ibox_vars/vibox.yaml @@ -1,134 +1,151 @@ $ANSIBLE_VAULT;1.1;AES256 -65633535303262623839393038393634326234376132336138653530616562386437363737666238 -3561386434663132373330653534623364613330323663380a313164353936653430613832623966 -66303131373861386338336638636235326334616435626665363465323634653537343331613465 -3235656431383237650a643630613131306264313062636165393164366361616431303339623236 -64653063626333306466663637343332306634626131666634663035393066383636633563626537 -66663737616435323833653466623231646462336163633363333165646338343166616232356165 -32306166376130396264363561396639353165653664316139653366666638343761336239333235 -61303430343061396262373032666133393334326465373964613638336132623466313666623735 -65396337623963346633356462353732356237616566346132343738323532663139643661623364 -64663638666633343665623438336164643565383362323631356232346338653537663430306566 -34366635623735343439383963313261666131636239373238646261313565373731303365316534 -64316263666366326263636631376232343632346634363532643838653033626636316332346433 -37613632373439633731643531333834373433653663326534316337646361393537616262643137 -61323362316333633630663264373836306339643632393462323536386366346439383562613164 -37353534316137663938653630663639366531386633643335623065366131633730383938393565 -62343638326439663130646236373938623436383161386562346431316330613231663361353938 -38663765333239393866363338656264326164353262363839313433363339666139616537646231 -65376361646561646436306433316266356233306434613232333661386564373532333565373038 -65653463336436316338373338313365346634393437333163353936396666626139333934386137 -36306234663163376131663738643764393537303932383037623534376432376431663738333539 -64396136663964306639393162363931323661376134613739336636613734636338353334383763 -34313266353635623335363266636336663932363261333839383664303163353332656365386439 -62303233643665303730653937363338313139646535313765323961356438633739623762656166 -61376137666236333063653630633537653832333165353565393636326666326534333736393835 -65303436303161316139636366303364316431306162666432376638616464326431326365326461 -36363234396130393661313230616130643131373162396139373766303465656164386433366131 -63306536333930653535373636633137623837396163373061363635653037303435643536636563 -36353531333733333237623065326636383161613633373061323530666662646232613861343439 -66343035326434653837643665323937383636353234653864386232336530303666303363633736 -35316262663438646638383266616434303732636362616332316331386262396632623963343266 -36306563326135396138383231353861646462663265646333393665646636326362336430383736 -66343965373066346433666333366362653363626432316439623535306534653331653330353033 -66643362666433616139316430383062386364646433623432353162656337326661343336376162 -64383933393535646635363232306331613562313164393263343433646464613266343361613866 -65386164393031643537373366633566643961653366336534633831646132623236633934373731 -32656630643638393565336634663234633431303534313865333636613464373063363762373137 -31396564323562663033343664393837313665356165353531633433393266356130363264396162 -62393132383530363236336137313939333561326263386165373631633264303262616236306135 -35343636386666633337353863666566336630373736323563613466356261656630623465633465 -64333632303934383532663962653236646162303864303836666566343331626332663565353433 -34323165396535323566393036653433316337653130633364303166313035363432643965316535 -34313164653962396231646362313537623932633933396637653535393264353165646333373766 -33313466663636666330626236393632366230653533356461303834316434306536376539626463 -32343438646630396434353265643530616664353539666562626563653838323661393831343633 -64393432653233613734623466666135333135626661376362623732653134636332303837666432 -63393733313737656130366335336533323266373135306161653361633065643364623265653735 -32326339666538356361656331313761326532653037353731313331306463663866663961336239 -65323538346161386264633664663435616437326633386630383863633466363163396136353430 -31633338613664346434353339353139663863363066383937663433326536326435313332383636 -39353730376131656431393336323632373937653532663036646565303337613761353537393933 -33393735366239666638383336613632663434653630653936633937353137316466393937616366 -65333531376330346438323766303331653137663535323932336234373533306337313837303763 -38316265386132393435663364393838326631633638336430353533356238643734626239653837 -35626162383935383065343236653465623838646238353635313939363661333033623663613539 -33383665356662353834376464333532353563303465323762653538393637343236626639656133 -38346464393831373538336164333063636439623234316632353738653730613939316561303466 -66663763306432643435376636313666653139346632376663323432616565656437396362613461 -31383263303838363735333135623665343535663732626561616562383564653037326437643831 -32633335376636363034326236663438393761336630666336353365613237653861373737623436 -39656530346336626365316338633635363865383935623934363738653637396132626232616532 -31633064613532346363623537353936663664623037643737376139303961636237363562646338 -30633432626334643161313436623733656166636634323861306364616434333963323966303563 -61363632626535363963313362336632326565383039373834366236313331666437613735353135 -39323138353333666137383965646134656337393432383936626533616564343839373035616536 -30383363653730343637336562633035653335383761313430653765383637363364653331646464 -33396165326163636434356630663432386261353330663962633534666136623363623735346564 -36336635313130336539366262653864316234306337656439633061356533323839383065336639 -65616363383235343931393562313038333430343965383730646165376665663233663635343665 -66303464393963663736333062663235343164393364623539666536663738376563363166363434 -37396530326330333431626231306162663333366665646639623333313565653964666161643431 -33643166323965366532663433613436353938363133643764346337343738363031316461393636 -36333036336438356466303633646165376264303237383461323738663264613630646338353637 -38356439363030643137636235303932353535636666636139326431396330316539356464306666 -39313039663733376535616239646664393464633065333731613637356664333331353430643461 -39343431663936306463396139646133363361616237353765656533663265303963633432333330 -63646632336334643439613033346263306664383561313839356137373134313433623031366134 -64616432636337633432343236663163343732346239313833633066336334356530636438376664 -64383565636233333565373933616262663631656137663231393663666531326538616437663438 -65356465323966616365663136613232316338646462643965393364666263646537376439633637 -36656136303063303565346239623161383232383734376530383031653830643964333937373161 -66306137363666353262306162643432303736396237666136383036386530336163306131613434 -65303964313436383265636465316561306238326435663765616466376637383738613930376231 -39326436306130323665373135636164306135313238383435366563306431663664633261336438 -39613136343466383331386334636566316266396637333233363965633239363965306131333532 -31373933323736336461316163323639316163656336633938326337316364646461343565376166 -31646334373966323931393532333335316430303530373263393633326130333265393630623532 -37323836363761383538326161306539653930373038366364366239353239343666623436616265 -35303662373761353530333435383362636435623932396632383232353833663135303066353736 -62636336343163356638326236633562373834316538376435623839376333326635666331383664 -34636161623065616238613264363336346639623063643630653366373035303639656631353363 -36306162343238656536343238303431306161386465306435313137373464636162643532316462 -35353665383935613433663034323537336566656439323165633638323334313666633138363037 -65663761616263346631333937633635663735366438646631363630316565373964316564306563 -30333737326663343632666133616462373261376262643632636431366365653266306336396630 -32356239356561663863656461316166616133386165613139653463663435303266323761653834 -37373663313839366664643461653361306465653931636535363662656630396239623538633935 -36363837626534613234386431636662303866363764333630656431363063656530393738356561 -63316338366433353564646530326539643330653630636435386339613232326530363662666532 -61376165623065323964393561386335386534646232323936303962363964336233356234383030 -35386137633937336232353830643430363062643266363036333836376335626535373139356330 -66336536633365346162393938393165613264393065303234633930663534633732666339356161 -30623661643430623732636262346666303262653934663038343365323035626533613636373035 -65323539373432386664396161353061653334343638623439393531656538643661326536306561 -66303362333565343238646230306165353434376563636664646462623631626233663762636262 -62313730663634376233316237346665363561356366346534356235383935633665643461633662 -64373336663665616632616331663665373564353565353665666539326232613930623061313738 -38663038363839353464633139626265666535323764366138626362383837343133386435303565 -32643334326437663030373163303565623235383762313161313266336637306335336238303538 -62653833643235303239633730376432633366343531636564386362633534633730353563336166 -63663334643264316530323737303039626434383462343238653965333531313639313763343564 -66643035313063373732616332633635363537626534353731396661313936316431356130653231 -66373630323334376336663066623862323762666336366537666435636232323566393862346133 -65396334333031366137353833376337383466326565613763616366613161316561643433363838 -35333861363735343433343032653330653438343030373734396336643032366339633431383465 -64366431633564633234363261303135343233613436323965616437303933326138373531323239 -38396464306138656533333335303161633562353735313462383731633532626264386636333863 -62366666616530623837663739306432383361396136313230613361633932343465626338323137 -61366536373539376436623537386430636533656630666338323061316161333933643839366430 -35613838613866323239326264656361303762383265666562356231316637646638636364326636 -31373236376331653930666237346363313461636366386665323931663161336633623039373237 -33623364373162316366653462353532356633616231663735396535343336393061386432396134 -39303432396262373931303064653131343535393235323062316232343336346631613563383832 -34353162366239356336663631363030303565623261616235663061666431306234623838633134 -30646164356237393933343837316339376664316236336130393735313536376164333963653166 -35366461613930623539323335306364346439373536316434363930343263663661343166326139 -63383530353139643463356166373231323034343338383333643639396264366633613263616437 -65636466346134316530613765386466613363373865353531326164323832333736336366623166 -64373533343965626635646238386630643431386462633361346165383431646466656539323439 -36386262653735393036663330373364323563393561313739326438363965303637346137636166 -64653036313032313564343335633562353338323464383730323232666230373032643965333362 -39383736313430396338393961616438653834333237373162656532303936363039323062616330 -61396131303963353166343163353436643563336433363235616435386532373830666239323661 -36636265383862613466346335363830343931623766396132393464326464633161 +63613563633331643061333939646432623638396364633162366161666464626637633835363764 +3063306463656534626165656330376362303532613330620a363230343833623539346337393765 +39633465633834373034303032653239396162386137626530633635383039653132306238656333 +3438346535386435630a363839366537636534363039336537653166303032623764646661626238 +38346134323038623334643336396234323335323837393862333366646337333533366266363334 +30333035366334306162343631613137363966333237623664353731383462363136393335323230 +35353137306462343666653461626238653039303165616362383866663539376534343838313437 +36363338323836396561346234366435666538323465653266373932346333653738396365326262 +66653165303864393034376564336131656432323165386435346332633063393062666362623633 +62623033346638306537613663323231636433386666306265313836663162373734616233303938 +62343538636234396364646363656537613332656638356132656461666662613935323863323235 +66663364613565373830613764666538663732373864366639363464343666343439306639623263 +32323131346138626234616433633536366166386137363238653364306531363066373961663661 +66303038313763333330636662393530323462333065353337323361303233343566303366306435 +62336361343634626632333861333838613465313733303735613430393165363062613239643330 +33346231346432666331366263336431643030366538366436626334303630623462383062373863 +66636139303235303430636363663136313565393762656636313835653235343135373235626561 +30313536666164633830303734626464653139626465363862313762653734616265656533373931 +38373638613837646463616233326334326130376239313739313662313730646638383932323036 +34326566323330643035386436316165316538366364376335616531323133333532353962626135 +32613864373261653062303331316336353936356462653632363332656438623166636462343532 +30343736393861656466616131333434333661326663653361353639613162303235306434613536 +37303165663632663534313635663564306238663733396264333061343630316538623132663533 +62653836353239363832373835653164343732663134623637346265306164336139393334346631 +30646634386361643236336634343338653930616330396539626265356138653464303831303833 +33386133336163663835633065353562646231623466616162353866343937623463363363333762 +61313331353334336666366132613063663763623337663962396133366135363936396638656632 +36653730623564343633393235643536663139616261313834373161376464303731313737333661 +39363764663666366631386466653437636135343239633639653336386462636265383533313338 +61623562356231333736383230343638383661346435373037623635303635333839353731316138 +35663866313464363237393065326132663430303565663433376564323738383637656163663531 +64666361613434343832303563376630363264346437343337646663653661393663343161613064 +63316638376463386239363564653666633434353334313832303939366436366332373636313233 +32646136656131333865336666336361633039643631643238653964643839623962626639656530 +61373864363138643332626561373766313064653139666339643235633064643664353435303436 +32336463643139393663333464613633303132316636663532306638343162336233636561613766 +35623062313364303266666432306566303330616536306466383639376162393563333530343363 +65316331376433396331346261333839613334633833646462666638623931653333303261613563 +62336562616161336562336237353036376434376134326461346333303638363035326530626361 +30393436323835366465636231313133373237346133623036623637646364623062646166376561 +37353033333633663461333430623537313632643063623765653563303230653666363465626438 +37666233343634353433313565333562393863333536373665306463363734656130333130366365 +35313032346438643034633930656137326334396330346364626137333332613337656262323038 +39386133333631363862353038363136656561383139316534313138633331373533633538356434 +32663038646466303237363936353162303066313435353232353731643261623836643831333539 +38323335663637323765343365393065623336306630393766656235613738313839613937363963 +62366233393934663836333937343963326432353739306532646638393962636535313938366539 +31306632643236313463346634643763303336323464346533663966656234633164346632343231 +32396366666632626133303364373132653931396563383966336239383136373330383732613730 +37313364643061356131653763326230623362613430346364613762643465386436393435346430 +66613462346635616664373537383364633436626339396336356230376139323230346336323963 +37666439313265643131353438626262653166323437393436326135613661333537383734323164 +38646466333866343931663934623938346364353338663763653131336665623735316233353734 +64396231363666393062626363346562313961333362636361323461666463663530656462303034 +66323463363037376135373936363534386431646264393064303335376135313962356362616236 +64326531353137316539396436366638383130646633343237613065393037623339396533393766 +66653238356465626435663737646665653236653239613733623964633864656138323662306261 +62313537333863343835386236626134386565646334363362626137666465366366313130643232 +33393961393031303539346233663066626532646338646264333765663133393966343034306663 +37313736623636653436656363393930313766306564303965623564633463643539396135353932 +62393435386236323232316433643863623133633763643238613238323466366138353161353239 +36313535353864333866643238346463343065363238386633343062303034356237623133306630 +33383465346331326432336464353265356563383231323538306536636630636564346131666536 +30353436383631343637313639663137386536326334656639653339373339663966383764336637 +36333461306236396362316637356437313332396132373064316565613231343033653732343864 +34613138376361623536336163363532656435343831303933643661343565303864663537306663 +36643961353661626534656532653631363566666537373061393636363665346239643164313766 +66323536386166303035623663333332663765653834316661313430653763643639383466306239 +39323966303363333963333465366162666536653163393330336561356633356134346130383366 +34363064633064653861363664313639326139363062313461636137666438633132306366656635 +62346433323632336566653664623831376265613562373436363765363538623030306334653964 +61636239623464383966356134633935333131666239316630643339663439663631616230656562 +65636135653638393830613439613837613962343133393038346638313565306430316639353764 +64626231373937333864353231643838646363313537386235303531306565643030353038306435 +39383439396632373365333539646564313030613965393534383138613961346134633562643233 +36616564303636633230376237376638376130323463653835303233323138633235313035626230 +32323438326266336132363336326638343133383134376131623735623737336239353939396364 +61313261373664326431386665373336646661653536383334333461316239663565396662616566 +38643334633630363933333662636665356135623036353263356530356530653364356531633032 +34336137306134383332373064653538323039316230383362356230393938363036616336313663 +62353765616666326539323138653664326431616163336335666361373765376364366436616631 +38303533346364626534376333353662376563326530623037396664303964623538326432383762 +39383766323164633437613531626562366432323330306165346431373134656163656536396236 +39353136623865306331333835373133666562623838373734353465613264356334303737306233 +64383536353836626163333664633437323466313466653138313533343639336465373737336666 +65333436333831653030346664333539363261316130666563353765353462633939653939343166 +30306236313563373363363262623164623465393038353530653239633164653236316534303762 +65346662613834323065613664666230623063633563366665373430353261663764656261643763 +35373738633730323733333333313961313165343966373730353566636533316161343034646463 +66616239396263313961383038363135646637313164386539316634336563323837393466633631 +36356665656431303565323532383630393765643734326632636530666439383364633864306361 +30383461633863316335306634353437393763353838626530393162383537383935316564656564 +64303335623062323531653737373735383661353062323833373765653530343362373166396362 +31353563313534326234336662663765656261343565663433386334653939633430643134343336 +32363230373138306565336435636664353863623439633830313739663935303836303130303235 +63636338333662313237353161396539313436376331393235373332313437376134353639643464 +30636335363365336163313038373236633035633362336165616230666664323930323635383665 +65303561623433663734663566643231616333656138373666373732313364313361386530613364 +30303564373336376332303831326236663338366466626139616464363766653237633531346262 +66373130323865386165386535613030306236613464343039663433323237336165663631346335 +61643636393435623231623735313339646334303739386439346333376230633561386139383166 +62663932613234333332306636356538626534653833333661313333363533653338366632333736 +63623239396166376136656365336637626435343530656433386361356538346438653665333265 +37653436616438353739613938623839353435393731633336396462376630306233306163346339 +64633939646132386265643339623364633839653935343765666264656361313066633834643839 +34376439343561646663373966656264363662343632373734396265653364323162356638616634 +33613531333232623939363763643131633164633139336164663633643163393534653465316330 +34653530646637636539333831373032383165616365346533613437643263363531666138386637 +65393036353636386134346431396431616561656435623737343363626131386334616430663165 +36663938353332663931326239646563633839643833663138356131653135666433326563353239 +34386535323333313331643033623739323133343862613264393735353037323766633365356333 +35643731313265613333646234656331343363303939333039363834356661303833383031613365 +66656532343566656335366638636233393837323337646530326334666562646437613235313066 +64646366336337623262653665653431323665393736313634373936666362613030623564646234 +61313838663237656234646234393338623032323235613934333330383232613536653864623834 +31663339323865656663663065363563656133323061333037616163323134616562633561323533 +37313536663961393166306161356536656536323137313035353633343763643763663738343661 +34346664336366303235646634633532623261396439303933326139393161346632313435656435 +66643265333637613930666537373436626337663933346131646431316636373063363932343933 +62663830363466316664313236643438343863346265313565386630646534303735656563363561 +30343565313732626133303638366534306162376165323363336331636439626564346631313661 +34666438323664653939306635323934373432383062396633393464306131346264616533396464 +35353461633364643331326561623137313862313434366331323233376463626135396662336238 +61343835616634316139323435373066623365373334656336643961333361646536626163633837 +32613739336366336261313036613738613034666364653435373164313438306538326239326331 +33616461656334313039333931653935366532303662316533316636373739383536323435343831 +30323039613735633661316662356361616338343932386166633862333830306266373365316133 +33346330373065313064643136396566313136613330386333316363653435383530663262323265 +62363165653232336130303861383639323965636565326562313164356161343231623262333338 +62633331353333323765383430626363333236626233643038633637363039333765623839393835 +35366534393265303564613663656635616462396163383564386235386166376532666466303430 +66646565643034386533616433336436386334643633663839616539623165353136623838356335 +30383264353937343932353839313435333530613363323437353835633861376164303631323537 +31396539666365383236383661333238326535303663643639663762303563366161323762313065 +63396662323165373238313561386562643033326161376263663863616234353766623830306464 +38363931303133336162323636363038303866393665623165323634313065376435353431346231 +35373866636237363166373730353265653562383439613364626435383465393163306337613236 +66343137313663653663343637323765313030343431306262343539386361353061663937363433 +38303337373738333563373266336239646463383332303165643232336237323830323162653766 +38616538636161313862366630636634313334623364313866353135663431666264373631303339 +36656133396639313337363162346233613363623965333634373439643732313035306139356135 +62333763333935666361613038313933393237626264646464653232636133323930323366366639 +62373239616565313065653164333332346165383562353731393435626530386365343035386238 +38633635376334316136383337343832306133663539383739363862313633666237623137316137 +39643731636333316535646238363132306134363236656533316431306430326365313236636261 +35643834613337303038303838303561393166656139396139343130313937623761616431653963 +65623966666237323666313836616232353437303535306563643163613935646463613464353334 +65303930393065353164396263646231373162313039363830353663363234363030323664393865 +62333261316539383336313134663961336337616631613531613239306139363430313839633363 +6435633763313566626635613033636561613532363262336136 diff --git a/ansible_collections/infinidat/infinibox/playbooks/configure_array.yml b/ansible_collections/infinidat/infinibox/playbooks/configure_array.yml index bee0899d1..c3ab24c20 100644 --- a/ansible_collections/infinidat/infinibox/playbooks/configure_array.yml +++ b/ansible_collections/infinidat/infinibox/playbooks/configure_array.yml @@ -4,47 +4,6 @@ - name: Configure an Infinibox Array hosts: localhost gather_facts: false - # vars: - # - dataset_default_provisioning: THIN - # - use_base2_units: true - # - table_export_limit: 3000 - # - admin_user_name: admin - # - admin_user_password: 123456 - # - admin_user_email: dev.mgmt@infinidat.com - # - pool_admin_user_name: Commvault - # - pool_admin_user_password: 123456 - # - pool_admin_user_email: dohlemacher@infinidat.com - # - ldap_name: PSUS_ANSIBLE_ad - # - setup_alerting_emails: ["dohlemacher@infinidat.com"] - # - prod_alerting_emails: ["dohlemacher@infinidat.com"] - # - alerting_event_levels: ["INFO", "WARNING", "ERROR", "CRITICAL"] - # - alerting_includes: [] - # - alerting_excludes: ["EVENT_FLOOD", "USER_LOGIN_SUCCESS", "USER_LOGGED_OUT"] - # - syslogs: # A list of syslog dictionaries - # - target_name: syslog1_target - # rule_name: syslog1 - # protocol: SYSLOG - # host: 172.31.88.158 - # port: 514 - # facility: LOCAL7 - # transport: UDP - # post_test: true # Not a real test if using UDP - # - target_name: syslog2_target - # rule_name: syslog2 - # protocol: SYSLOG - # host: 172.31.88.158 - # port: 515 - # facility: LOCAL7 - # transport: UDP - # post_test: true - # - target_name: graylog_target - # rule_name: graylog - # protocol: SYSLOG - # host: 172.31.77.214 - # port: 1514 - # facility: LOCAL7 - # transport: UDP - # post_test: true tasks: - name: Configuration ansible.builtin.debug: @@ -55,7 +14,7 @@ - name: Pause ansible.builtin.pause: - seconds: 2 + seconds: 3 - name: Create temporary setup email notification rule setup_email for addresses {{ setup_alerting_emails }} infinidat.infinibox.infini_notification_rule: @@ -293,31 +252,98 @@ password: "{{ password }}" system: "{{ system }}" - # - name: TODO by David - Configure Infinimetrics - Add Infinibox - # ansible.builtin.debug: - # msg: (9) Add Infinibox to Infinimetrics + - name: Configure infinimetrics readonly user + infinidat.infinibox.infini_user: + user_name: "{{ ibox_readonly_user }}" + user_email: "{{ ibox_readonly_email }}" + user_password: "{{ admin_user_password }}" + user_role: "read_only" + state: "present" + user: "{{ user }}" + password: "{{ password }}" + system: "{{ system }}" + + - name: Remove Infinibox from Infinimetrics + infinidat.infinibox.infini_infinimetrics: + ibox_serial: "{{ ibox_serial }}" + imx_system: "{{ imx_system }}" + imx_user: "{{ imx_user }}" + imx_password: "{{ imx_password }}" + state: absent + user: "{{ user }}" + password: "{{ password }}" + system: "{{ system }}" + + - name: Remove Infinibox from Infinimetrics again to test idempotency + infinidat.infinibox.infini_infinimetrics: + ibox_serial: "{{ ibox_serial }}" + imx_system: "{{imx_system}}" + imx_user: "{{ imx_user }}" + imx_password: "{{ imx_password }}" + state: absent + user: "{{ user }}" + password: "{{ password }}" + system: "{{ system }}" + + - name: Add Infinibox to Infinimetrics + infinidat.infinibox.infini_infinimetrics: + ibox_serial: "{{ ibox_serial }}" + ibox_url: "{{ ibox_url }}" + ibox_readonly_user: "{{ ibox_readonly_user }}" + ibox_readonly_password: "{{ ibox_readonly_password }}" + imx_system: "{{imx_system}}" + imx_user: "{{ imx_user }}" + imx_password: "{{ imx_password }}" + state: present + user: "{{ user }}" + password: "{{ password }}" + system: "{{ system }}" + + - name: Pause 25 seconds to allow IMX to reflect addition of Infinibox + ansible.builtin.pause: + seconds: 25 + + - name: Add Infinibox to Infinimetrics again to test idempotency + infinidat.infinibox.infini_infinimetrics: + ibox_serial: "{{ ibox_serial }}" + ibox_url: "{{ ibox_url }}" + ibox_readonly_user: "{{ ibox_readonly_user }}" + ibox_readonly_password: "{{ ibox_readonly_password }}" + imx_system: "{{imx_system}}" + imx_user: "{{ imx_user }}" + imx_password: "{{ imx_password }}" + state: present + user: "{{ user }}" + password: "{{ password }}" + system: "{{ system }}" - name: Create pools infinidat.infinibox.infini_pool: - name: "{{ item }}" - size: "{{ pool_size }}" - vsize: "{{ pool_size }}" + name: "{{ item.name }}" + size: "{{ item.size }}" + vsize: "{{ item.vsize }}" + physical_capacity_warning: "{{ item.physical_capacity_warning }}" + physical_capacity_critical: "{{ item.physical_capacity_critical }}" state: present user: "{{ user }}" password: "{{ password }}" system: "{{ system }}" loop: - - pool-a - - pool-b - - pool-c - - - name: Set up pool admin user for pool + - { name: 'CDRFS', size: "{{ pool_size }}", vsize: "{{ pool_vsize }}", physical_capacity_warning: '100', physical_capacity_critical: '100'} + - { name: 'HNS', size: "{{ pool_size }}", vsize: "{{ pool_vsize }}", physical_capacity_warning: '80', physical_capacity_critical: '90' } + - { name: 'PHYSICAL', size: "{{ pool_size }}", vsize: "{{ pool_vsize }}", physical_capacity_warning: '80', physical_capacity_critical: '90' } + - { name: 'POWER', size: "{{ pool_size }}", vsize: "{{ pool_vsize }}", physical_capacity_warning: '80', physical_capacity_critical: '90' } + - { name: 'RECLAIM', size: "{{ pool_size }}", vsize: "{{ pool_vsize }}", physical_capacity_warning: '80', physical_capacity_critical: '90' } + - { name: 'VIRTUAL', size: "{{ pool_size }}", vsize: "{{ pool_vsize }}", physical_capacity_warning: '80', physical_capacity_critical: '90' } + - { name: 'VIRTUAL_REP', size: "{{ pool_size }}", vsize: "{{ pool_vsize }}", physical_capacity_warning: '80', physical_capacity_critical: '90' } + + - name: Set up pool admin user for CDRFS pool infinidat.infinibox.infini_user: user_name: "{{ pool_admin_user_name }}" user_email: "{{ pool_admin_user_email }}" user_password: "{{ pool_admin_user_password }}" user_role: "pool_admin" - user_pool: "pool-a" + user_pool: "CDRFS" state: "present" user: "{{ user }}" password: "{{ password }}" diff --git a/ansible_collections/infinidat/infinibox/plugins/modules/infini_infinimetrics.py b/ansible_collections/infinidat/infinibox/plugins/modules/infini_infinimetrics.py new file mode 100644 index 000000000..4c9baac5b --- /dev/null +++ b/ansible_collections/infinidat/infinibox/plugins/modules/infini_infinimetrics.py @@ -0,0 +1,358 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +# pylint: disable=invalid-name,use-dict-literal,line-too-long,wrong-import-position,too-many-locals + +# Copyright: (c) 2024, Infinidat <info@infinidat.com> +# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt) + +"""This module creates or modifies Infinibox registrations on Infinimetrics.""" + +from __future__ import absolute_import, division, print_function + +__metaclass__ = type + +DOCUMENTATION = r""" +--- +module: infini_infinimetrics +version_added: 2.16.0 +short_description: Create (present state) or remove (absent state) an Infinibox registration on an Infinimetrics. +description: + - Create (present state) or remove (absent state) an Infinibox registration on an Infinimetrics. +author: David Ohlemacher (@ohlemacher) +options: + ibox_serial: + description: + - Infinibox serial number. + type: str + required: true + ibox_url: + description: Infinibox DNS resolvable hostname or IPv4 address. + type: str + required: false + ibox_readonly_user: + description: + - Read only Infinibox user name. + type: str + required: false + ibox_readonly_password: + description: + - Read only Infinibox user password. + type: str + required: false + imx_system: + description: + - Infinimetrics hostname or IPv4 Address. + type: str + required: true + imx_user: + description: + - Infinimetrics user name. + type: str + required: true + imx_password: + description: + - Infinimetrics user password. + type: str + required: true + state: + description: + - Registers the Infinibox with Infinimetrics, when using state present. + - For state absent, the Infinibox is disabled on Infinimetrics and will no longer appear on the Infinimetrics UI. + - Existing Infinibox data is not purged from Infinimetrics. + - Purging may be executed using the Infinimetrics CLI tool. + type: str + required: false + default: present + choices: [ "present", "absent" ] +extends_documentation_fragment: + - infinibox +""" + +EXAMPLES = r""" +- name: Register IBOX with Infinimetrics + infini_infinimetrics: + infinimetrics_system: infinimetrics + state: present + user: admin + password: secret + system: ibox001 + +- name: Deregister IBOX from Infinimetrics + infini_infinimetrics: + infinimetrics_system: infinimetrics + state: absent + user: admin + password: secret + system: ibox001 +""" + +# RETURN = r''' # ''' + +import re +import traceback + +from ansible.module_utils.basic import missing_required_lib + +try: + import requests +except ImportError: + HAS_REQUESTS = False + HAS_REQUESTS_IMPORT_ERROR = traceback.format_exc() +else: + HAS_REQUESTS = True + HAS_REQUESTS_IMPORT_ERROR = None + +from ansible.module_utils.basic import AnsibleModule + +from ansible_collections.infinidat.infinibox.plugins.module_utils.infinibox import ( + api_wrapper, + get_system, + infinibox_argument_spec, +) + + +def find_csrfmiddleware_token(response): + """Search for csrfmiddlewaretoken in the response lines. Return token or None.""" + token = None + for line_bytes in response.iter_lines(): + line = str(line_bytes) + # Example of line searched for: + # <input type="hidden" name="csrfmiddlewaretoken" value="VUe6...m5Nl7y">' + result = re.search(r'"csrfmiddlewaretoken" value="(\w+)"', line) + if result: + token = result.group(1) + break + return token + + +@api_wrapper +def imx_login(module, imx_session): + """ Log into an IMX (GET and POST) using credentials. """ + ibox_url = module.params.get('ibox_url') + imx_system = module.params.get('imx_system') + path = f"https://{imx_system}/auth/login/" + + # Use GET to get a token + payload = { + 'username': module.params.get('imx_user', None), + 'password': module.params.get('imx_password', None), + } + get_response = imx_session.get(path, data=payload, verify=False) + status_code = get_response.status_code + if status_code not in [200]: + text = get_response.text + msg = f"Cannot add Infinibox {ibox_url} to Infinimetrics {imx_system}. Status code: {status_code}. Text returned: {text}" + module.fail_json(msg=msg) + + token = find_csrfmiddleware_token(get_response) + + # Use POST provide token + data = { + 'csrfmiddlewaretoken': token, + 'password': module.params.get('imx_password', None), + 'username': module.params.get('imx_user', None), + } + headers = { + 'referer': f'https://{module.params.get("imx_system")}', + } + response = imx_session.post(path, headers=headers, data=data, verify=False) + if response.status_code not in [200, 201]: + msg = f"Cannot log into Infinimetrics {imx_system}. Status code: {response.status_code}. Text returned: {response.text}" + module.fail_json(msg=msg) + + +@api_wrapper +def imx_system_add(module, imx_session): + """ Add an Infinibox to an Infinimetrics using an imx_session """ + imx_system = module.params.get('imx_system') + ibox_readonly_user = module.params.get('ibox_readonly_user') + ibox_readonly_password = module.params.get('ibox_readonly_password') + ibox_serial = module.params.get('ibox_serial') + ibox_url = module.params.get('ibox_url') + path = f"https://{imx_system}/system/add/" + headers = { + 'referer': f'https://{imx_system}/', + } + + # Use GET to get a token + get_response = imx_session.get(path, headers=headers, verify=False) + status_code = get_response.status_code + if status_code not in [200]: + text = get_response.text + msg = f"Cannot add Infinibox {ibox_url} to Infinimetrics {imx_system}. Status code: {status_code}. Text returned: {text}" + module.fail_json(msg=msg) + + get_token = find_csrfmiddleware_token(get_response) + + # Use POST provide token + data = { + 'api_url': ibox_url, + 'api_username': ibox_readonly_user, + 'api_password': ibox_readonly_password, + 'csrfmiddlewaretoken': get_token, + } + response = imx_session.post(path, headers=headers, data=data, verify=False) + status_code = response.status_code + text = response.text + if status_code not in [200, 201]: + msg = f"Cannot add Infinibox {ibox_url} to Infinimetrics {imx_system}. Status code: {status_code}. Text returned: {text}" + module.fail_json(msg=msg) + + # Check that the IBOX was added or was previously added. + # Search for one of: + # - 'The system is already monitored' + # - add_progress url + if ("The system is already" not in response.text or "monitored" not in response.text) \ + and (f"/system/{ibox_serial}/add_progress" not in response.text): + msg = f"Cannot add Infinibox {ibox_url} to Infinimetrics {imx_system}. Status code: {status_code}. Text returned: {text}" + module.fail_json(msg=msg) + + if "add_progress" in response.text: + return True # Just added now + return False # Previously added + + +@api_wrapper +def imx_system_delete(module, imx_session): + """ Remove an Infinibox from an Infinimetrics using an imx_session """ + imx_system = module.params.get('imx_system') + serial = module.params.get('ibox_serial') + ibox_url = module.params.get('ibox_url') + path = f"https://{imx_system}/system/{serial}/edit/" + headers = { + 'referer': f'https://{imx_system}/', + } + + # Use GET to get a token + get_response = imx_session.get(path, headers=headers, verify=False) + status_code = get_response.status_code + if status_code not in [200]: + text = get_response.text + msg = f"Cannot remove Infinibox {ibox_url} from Infinimetrics {imx_system}. Status code: {status_code}. Text returned: {text}" + module.fail_json(msg=msg) + + get_token = find_csrfmiddleware_token(get_response) + + path = f"https://{imx_system}/system/{serial}/remove/" + headers = { + 'X-CSRFToken': get_token, + 'referer': f'https://{imx_system}/', + } + response = imx_session.delete(path, headers=headers, verify=False) + + # Check that the IBOX was removed or was previously removed + # In response.return_code, search for 200 + status_code = response.status_code + if status_code not in [200, 201]: + text = response.text + msg = f"Cannot remove Infinibox {serial} from infinimetrics {imx_system}. Status code: {status_code}, Text returned: {text}" + module.fail_json(msg=msg) + + +def handle_present(module): + """ Handle the present state parameter """ + imx_system = module.params.get('imx_system') + ibox_url = module.params.get('ibox_url') + + imx_session = requests.session() + imx_login(module, imx_session) + is_newly_added = imx_system_add(module, imx_session) + + if is_newly_added: + msg = f"Infinibox {ibox_url} added to Infinimetrics {imx_system}" + changed = True + else: + msg = f"Infinibox {ibox_url} previously added to Infinimetrics {imx_system}" + changed = False + + result = dict(changed=changed, msg=msg) + module.exit_json(**result) + + +def handle_absent(module): + """ Handle the absent state parameter. """ + imx_system = module.params.get('imx_system') + serial = module.params.get('ibox_serial') + + imx_session = requests.session() + imx_login(module, imx_session) + imx_system_delete(module, imx_session) + result = dict( + changed=True, + msg=f"Infinibox serial {serial} has been removed from Infinimetrics {imx_system}" + ) + module.exit_json(**result) + + +def execute_state(module): + """Handle states""" + state = module.params["state"] + try: + if state == "present": + handle_present(module) + elif state == "absent": + handle_absent(module) + else: + module.fail_json(msg=f"Internal handler error. Invalid state: {state}") + finally: + system = get_system(module) + system.logout() + + +def verify_params(module, req_params): + """ Verify that required params are provided """ + missing_req_params = [] + for req_param in req_params: + if not module.params[req_param]: + missing_req_params.append(req_param) + if missing_req_params: + state = module.params["state"] + msg = f"Cannot handle state {state} due to missing parameters: {missing_req_params}" + module.fail_json(msg=msg) + + +def check_options(module): # pylint: disable=too-many-branches + """ Check option logic """ + state = module.params['state'] + + if state == 'present': + req_params = ["ibox_url", "ibox_readonly_user", "ibox_readonly_password"] + verify_params(module, req_params) + elif state == 'absent': + pass + else: + module.fail_json(msg=f'Internal handler error. Invalid state: {state}') + + +def main(): + """ Main """ + argument_spec = infinibox_argument_spec() + argument_spec.update( + dict( + ibox_serial=dict(required=True), + ibox_url=dict(required=False, default=None), + ibox_readonly_user=dict(required=False, default=None), + ibox_readonly_password=dict(required=False, no_log=True, default=None), + imx_system=dict(required=True), + imx_user=dict(required=True), + imx_password=dict(required=True, no_log=True), + state=dict(default="present", choices=["present", "absent"]), + ) + ) + + module = AnsibleModule(argument_spec, supports_check_mode=True) + + if not HAS_REQUESTS: + module.fail_json( + msg=missing_required_lib('requests'), + exception=HAS_REQUESTS_IMPORT_ERROR, + ) + + check_options(module) + + execute_state(module) + + +if __name__ == "__main__": + main() diff --git a/ansible_collections/infinidat/infinibox/plugins/modules/infini_notification_rule.py b/ansible_collections/infinidat/infinibox/plugins/modules/infini_notification_rule.py index 1916cdb49..c6e30af5d 100644 --- a/ansible_collections/infinidat/infinibox/plugins/modules/infini_notification_rule.py +++ b/ansible_collections/infinidat/infinibox/plugins/modules/infini_notification_rule.py @@ -56,6 +56,14 @@ options: elements: str required: false default: [] + recipient_target_name: + description: + - When creating a rule using recipients, a notification target is required. + - Usually, this target is named "customer-smtp". + - If this is not the case, use this variable to specifiy another name. + type: str + required: false + default: customer-smtp target: description: - Notification target @@ -118,6 +126,23 @@ except ModuleNotFoundError: @api_wrapper +def find_recipient_target_name_id(module, system): + """ Find the ID of the target by name """ + target = module.params["recipient_target_name"] + path = f"notifications/targets?name={target}&fields=id" + api_result = system.api.get( + path=path + ) + if len(api_result.get_json()['result']) > 0: + result = api_result.get_json()['result'][0] + target_id = result['id'] + else: + msg = f"Cannot find an ID for recipient_target_name {target}" + module.fail_json(msg=msg) + return target_id + + +@api_wrapper def find_target_id(module, system): """ Find the ID of the target by name """ target = module.params["target"] @@ -190,16 +215,14 @@ def create_rule(module): target_parameters = { "recipients": recipients } - target_id = 3 # Target ID for sending to recipients + json_data["target_id"] = find_recipient_target_name_id(module, system) # Target ID for sending to recipients json_data["target_parameters"] = target_parameters elif target: - target_id = find_target_id(module, system) + json_data["target_id"] = find_target_id(module, system) else: msg = "Neither recipients nor target parameters specified" module.fail_json(msg=msg) - json_data["target_id"] = target_id - system.api.post(path=path, data=json_data) @@ -215,6 +238,8 @@ def update_rule(module): exclude_events = module.params["exclude_events"] recipients = module.params["recipients"] target = module.params["target"] + rule_id = find_rule_id(module, system) + path = f"notifications/rules/{rule_id}" json_data = { "name": name, @@ -227,17 +252,14 @@ def update_rule(module): target_parameters = { "recipients": recipients } - target_id = 3 # Target ID for sending to recipients + json_data["target_id"] = find_recipient_target_name_id(module, system) # Target ID for sending to recipients json_data["target_parameters"] = target_parameters elif target: - target_id = find_target_id(module, system) + json_data["target_id"] = find_target_id(module, system) else: msg = "Neither recipients nor target parameters specified" module.fail_json(msg=msg) - json_data["target_id"] = target_id - rule_id = find_rule_id(module, system) - path = f"notifications/rules/{rule_id}" system.api.put(path=path, data=json_data) @@ -342,6 +364,7 @@ def main(): "include_events": {"required": False, "default": [], "type": "list", "elements": "str"}, "exclude_events": {"required": False, "default": [], "type": "list", "elements": "str"}, "recipients": {"required": False, "default": [], "type": "list", "elements": "str"}, + "recipient_target_name": {"required": False, "default": "customer-smtp", "type": "str"}, "target": {"required": False, "type": "str", "default": None}, "state": {"default": "present", "choices": ["stat", "present", "absent"]}, } diff --git a/ansible_collections/infinidat/infinibox/plugins/modules/infini_pool.py b/ansible_collections/infinidat/infinibox/plugins/modules/infini_pool.py index 43daa71be..97366a817 100644 --- a/ansible_collections/infinidat/infinibox/plugins/modules/infini_pool.py +++ b/ansible_collections/infinidat/infinibox/plugins/modules/infini_pool.py @@ -1,7 +1,7 @@ #!/usr/bin/python # -*- coding: utf-8 -*- -# pylint: disable=invalid-name,use-dict-literal,line-too-long,wrong-import-position +# pylint: disable=invalid-name,use-dict-literal,line-too-long,wrong-import-position,too-many-branches """This module creates, deletes or modifies pools on Infinibox.""" @@ -59,6 +59,18 @@ options: required: false default: yes type: bool + physical_capacity_warning: + description: + - Capacity, in percent, for a warning notification. + required: false + type: int + default: 80 + physical_capacity_critical: + description: + - Capacity, in percent, for a critical notification. + required: false + type: int + default: 90 notes: - Infinibox Admin level access is required for pool modifications @@ -123,16 +135,22 @@ def create_pool(module, system): vsize = module.params['vsize'] ssd_cache = module.params['ssd_cache'] compression = module.params['compression'] + physical_capacity_warning = module.params['physical_capacity_warning'] + physical_capacity_critical = module.params['physical_capacity_critical'] if not module.check_mode: if not size and not vsize: - pool = system.pools.create(name=name, physical_capacity=Capacity('1TB'), virtual_capacity=Capacity('1TB')) + pool = system.pools.create(name=name, physical_capacity=Capacity('1TB'), virtual_capacity=Capacity('1TB'), + physical_capacity_warning=physical_capacity_warning, physical_capacity_critical=physical_capacity_critical) elif size and not vsize: - pool = system.pools.create(name=name, physical_capacity=Capacity(size), virtual_capacity=Capacity(size)) + pool = system.pools.create(name=name, physical_capacity=Capacity(size), virtual_capacity=Capacity(size), + physical_capacity_warning=physical_capacity_warning, physical_capacity_critical=physical_capacity_critical) elif not size and vsize: - pool = system.pools.create(name=name, physical_capacity=Capacity('1TB'), virtual_capacity=Capacity(vsize)) + pool = system.pools.create(name=name, physical_capacity=Capacity('1TB'), virtual_capacity=Capacity(vsize), + physical_capacity_warning=physical_capacity_warning, physical_capacity_critical=physical_capacity_critical) else: - pool = system.pools.create(name=name, physical_capacity=Capacity(size), virtual_capacity=Capacity(vsize)) + pool = system.pools.create(name=name, physical_capacity=Capacity(size), virtual_capacity=Capacity(vsize), + physical_capacity_warning=physical_capacity_warning, physical_capacity_critical=physical_capacity_critical) # Default value of ssd_cache is True. Disable ssd caching if False if not ssd_cache: pool.update_ssd_enabled(ssd_cache) @@ -150,7 +168,7 @@ def update_pool(module, pool): size = module.params['size'] vsize = module.params['vsize'] - # ssd_cache = module.params['ssd_cache'] + ssd_cache = module.params['ssd_cache'] compression = module.params['compression'] # Roundup the capacity to mimic Infinibox behaviour @@ -168,15 +186,29 @@ def update_pool(module, pool): pool.update_virtual_capacity(virtual_capacity) changed = True - # if pool.is_ssd_enabled() != ssd_cache: - # if not module.check_mode: - # pool.update_ssd_enabled(ssd_cache) - # changed = True + if pool.is_ssd_enabled() != ssd_cache: + if not module.check_mode: + pool.update_ssd_enabled(ssd_cache) + changed = True if pool.is_compression_enabled() != compression: if not module.check_mode: pool.update_compression_enabled(compression) - changed = True + changed = True + + physical_capacity_critical = module.params.get('physical_capacity_critical') + existing_physical_capacity_critical = pool.get_physical_capacity_critical() + if physical_capacity_critical != existing_physical_capacity_critical: + if not module.check_mode: + pool.update_physical_capacity_critical(physical_capacity_critical) + changed = True + + physical_capacity_warning = module.params.get('physical_capacity_warning') + existing_physical_capacity_warning = pool.get_physical_capacity_warning() + if physical_capacity_warning != existing_physical_capacity_warning: + if not module.check_mode: + pool.update_physical_capacity_warning(physical_capacity_warning) + changed = True if changed: msg = 'Pool updated' @@ -206,12 +238,22 @@ def handle_stat(module): # print('fields: {0}'.format(fields)) free_physical_capacity = fields.get('free_physical_capacity', None) pool_id = fields.get('id', None) + physical_capacity_warning = pool.get_physical_capacity_warning() + physical_capacity_critical = pool.get_physical_capacity_critical() + physical_capacity = pool.get_physical_capacity() + virtual_capacity = pool.get_virtual_capacity() result = dict( changed=False, free_physical_capacity=str(free_physical_capacity), + physical_capacity_warning=physical_capacity_warning, + physical_capacity_critical=physical_capacity_critical, + physical_capacity=str(physical_capacity), + virtual_capacity=str(virtual_capacity), + ssd_cache=pool.is_ssd_enabled(), + compression_enabled=pool.is_compression_enabled(), id=pool_id, - msg='Pool stat found' + msg='Pool stat found', ) module.exit_json(**result) @@ -267,6 +309,8 @@ def main(): vsize=dict(), ssd_cache=dict(type='bool', default=True), compression=dict(type='bool', default=True), + physical_capacity_warning=dict(type='int', default=80), + physical_capacity_critical=dict(type='int', default=90), ) ) diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_infinimetrics_absent.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_infinimetrics_absent.json new file mode 100644 index 000000000..c425191b6 --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_infinimetrics_absent.json @@ -0,0 +1,14 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "ibox_serial": "30368", + + "imx_system": "infinimetrics-vc6", + "imx_user": "IMX_ADMIN", + "imx_password": "nfinidat1", + + "state": "absent", + "system": "172.20.68.167", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_infinimetrics_present.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_infinimetrics_present.json new file mode 100644 index 000000000..c41db9f14 --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_infinimetrics_present.json @@ -0,0 +1,17 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "ibox_serial": "30368", + "ibox_url": "172.20.68.167", + "ibox_readonly_user": "david-ro", + "ibox_readonly_password": "123456", + + "imx_system": "infinimetrics-vc6", + "imx_user": "IMX_ADMIN", + "imx_password": "nfinidat1", + + "state": "present", + "system": "172.20.68.167", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_absent_1521.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_absent_1521.json new file mode 100644 index 000000000..a9f2f9f77 --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_absent_1521.json @@ -0,0 +1,9 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "name": "my-event-rule", + "state": "absent", + "system": "ibox1521", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_absent_vibox.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_absent_vibox.json new file mode 100644 index 000000000..30c824009 --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_absent_vibox.json @@ -0,0 +1,9 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "name": "my-event-rule", + "state": "absent", + "system": "172.20.68.167", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present.json index e51182274..20fd6f2ae 100644 --- a/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present.json +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present.json @@ -1,8 +1,10 @@ { "ANSIBLE_MODULE_ARGS": { "name": "my-event-rule", - "target": "syslog1_target", + "recipients": ["dohlemacher@infinidat.com"], "event_level": [ "info" ], + "include_events": [], + "exclude_events": [], "state": "present", "system": "172.20.68.167", "user": "admin", diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present_1521.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present_1521.json new file mode 100644 index 000000000..36043a9d1 --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present_1521.json @@ -0,0 +1,13 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "name": "my-event-rule", + "recipients": ["dohlemacher@infinidat.com"], + "event_level": [ "info" ], + "include_events": [], + "exclude_events": [], + "state": "present", + "system": "ibox1521", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present_vibox.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present_vibox.json new file mode 100644 index 000000000..20fd6f2ae --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_notification_rule_present_vibox.json @@ -0,0 +1,13 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "name": "my-event-rule", + "recipients": ["dohlemacher@infinidat.com"], + "event_level": [ "info" ], + "include_events": [], + "exclude_events": [], + "state": "present", + "system": "172.20.68.167", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_pool_absent.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_pool_absent.json new file mode 100644 index 000000000..0cb9f6e08 --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_pool_absent.json @@ -0,0 +1,9 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "name": "PSUS_ANSIBLE_pool", + "state": "absent", + "system": "172.20.68.167", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_pool_present.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_pool_present.json new file mode 100644 index 000000000..c23b8522e --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_pool_present.json @@ -0,0 +1,15 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "name": "PSUS_ANSIBLE_pool", + "size": "10GB", + "vsize": "11GB", + "ssd_cache": false, + "compression": true, + "physical_capacity_warning": 76, + "physical_capacity_critical": 86, + "state": "present", + "system": "172.20.68.167", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_pool_stat.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_pool_stat.json new file mode 100644 index 000000000..d2f1d5e7e --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_pool_stat.json @@ -0,0 +1,9 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "name": "PSUS_ANSIBLE_pool", + "state": "stat", + "system": "172.20.68.167", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_sso_present_1521.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_sso_present_1521.json new file mode 100644 index 000000000..f83a7dc2f --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_sso_present_1521.json @@ -0,0 +1,15 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "issuer": "http://www.okta.com/exkra32oyyU6KCUCk2p7", + "name": "OKTA", + "sign_on_url": "https://infinidat.okta.com/app/infinidat_ibox2503_1/exkrwdi7dmXSKdC4l2p7/sso/saml", + "signed_assertion": false, + "signed_response": false, + "signing_certificate": "MIIDojCCAoqgAwIBAgIGAY1bQQXzMA0GCSqGSIb3DQEBCwUAMIGRMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxEjAQBgNVBAMMCWluZmluaWRhdDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTAeFw0yNDAxMzAxNjQyMjRaFw0zNDAxMzAxNjQzMjRaMIGRMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxEjAQBgNVBAMMCWluZmluaWRhdDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOJmwPjImRqI9scAXMNQbVlthi8Ogx7yGZhfNiqjd+V2ZAHitqTh3L/Bcn+hCiau8eBDFUsumR0P0RHpzulnHKoylAORohDnhuWPZw+xdlflsHXu84jC9cLWGYVHfeEpf1tosLKg/NdbJp34AuYQifythqJAsCwjz+j3cL/Xe2LPqCHgGG1NCPpbD4Gcavh0IVi3C749M3Cy+PLKHh/c/kfrbTdPHP3Y5hROBxwDCdHm5osLZA5V77gZBxU08xeo3IDy2IcqgH2uEI+dgeW9aRZWhG6tHCPYUhuIdpRX1fJhyrXNH6ZOFV0NyBqUxUDv2URRHwgXMLdkf6ujN+Cu2nECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAHJUIfV51MwZ8LfYs0BW5eN6lZCqdzmIjv1fZ6NftIYm7FTVvMo49/lOCRuIYbFvWj/y9kJytu65iM5DUNGOxs+PIaKkt1bXwhvHtG5PKoAcDQj6jhN8C4/hxqz9HAOfLdJrH7RfRxJByc2Z7tAPsTDhPu52lKZrYpF+5Hwyy+Gjoqj1DUQx8u7qCMq2Rpp/iYmuk5/r0CVFyoQS6pVAX0UZqx+Mu221jD5+KkJoaTqU8twb9V9aPE4nCGyrA2u/sjqOt5TPBAGTMKx7yTo8NmxmqEJ+FDUXUeqJLzbeh+NEn6Dy7zJCcyq2lVhqJGALvGrh6CvbSuiOlRv1LDL9N+g==", + "enabled": true, + "state": "present", + "system": "ibox1521", + "user": "admin", + "password": "123456" + } +} diff --git a/ansible_collections/infinidat/infinibox/tests/hacking/infini_sso_present_vibox.json b/ansible_collections/infinidat/infinibox/tests/hacking/infini_sso_present_vibox.json new file mode 100644 index 000000000..907887cb9 --- /dev/null +++ b/ansible_collections/infinidat/infinibox/tests/hacking/infini_sso_present_vibox.json @@ -0,0 +1,15 @@ +{ + "ANSIBLE_MODULE_ARGS": { + "issuer": "http://www.okta.com/exkra32oyyU6KCUCk2p7", + "name": "OKTA", + "sign_on_url": "https://infinidat.okta.com/app/infinidat_ibox2503_1/exkrwdi7dmXSKdC4l2p7/sso/saml", + "signed_assertion": false, + "signed_response": false, + "signing_certificate": "MIIDojCCAoqgAwIBAgIGAY1bQQXzMA0GCSqGSIb3DQEBCwUAMIGRMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxEjAQBgNVBAMMCWluZmluaWRhdDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTAeFw0yNDAxMzAxNjQyMjRaFw0zNDAxMzAxNjQzMjRaMIGRMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxEjAQBgNVBAMMCWluZmluaWRhdDEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOJmwPjImRqI9scAXMNQbVlthi8Ogx7yGZhfNiqjd+V2ZAHitqTh3L/Bcn+hCiau8eBDFUsumR0P0RHpzulnHKoylAORohDnhuWPZw+xdlflsHXu84jC9cLWGYVHfeEpf1tosLKg/NdbJp34AuYQifythqJAsCwjz+j3cL/Xe2LPqCHgGG1NCPpbD4Gcavh0IVi3C749M3Cy+PLKHh/c/kfrbTdPHP3Y5hROBxwDCdHm5osLZA5V77gZBxU08xeo3IDy2IcqgH2uEI+dgeW9aRZWhG6tHCPYUhuIdpRX1fJhyrXNH6ZOFV0NyBqUxUDv2URRHwgXMLdkf6ujN+Cu2nECAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAHJUIfV51MwZ8LfYs0BW5eN6lZCqdzmIjv1fZ6NftIYm7FTVvMo49/lOCRuIYbFvWj/y9kJytu65iM5DUNGOxs+PIaKkt1bXwhvHtG5PKoAcDQj6jhN8C4/hxqz9HAOfLdJrH7RfRxJByc2Z7tAPsTDhPu52lKZrYpF+5Hwyy+Gjoqj1DUQx8u7qCMq2Rpp/iYmuk5/r0CVFyoQS6pVAX0UZqx+Mu221jD5+KkJoaTqU8twb9V9aPE4nCGyrA2u/sjqOt5TPBAGTMKx7yTo8NmxmqEJ+FDUXUeqJLzbeh+NEn6Dy7zJCcyq2lVhqJGALvGrh6CvbSuiOlRv1LDL9N+g==", + "enabled": true, + "state": "present", + "system": "172.20.68.167", + "user": "admin", + "password": "123456" + } +} |