ns1-ansible-modules
ns1-ansible-modules copied to clipboard
Add ansible support for teams 1
Hey there NS1 team,
Please review the following pull request to add Ansible support for NS1 portal teams. Tried to mimic how code is structured in the zone module but odds are there are still somethings you will see that could be improved to make things fit with the existing repo arch.
Both --diff
& --check
are currently supported.
Feel free to let me know if there are any question.
-Ross
ANSIBLE PLAYBOOK TEST RUN
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [setup] *******************************************************************
ok: [localhost]
TASK [Verify setup] ************************************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [Test team creation] ******************************************************
--- before
+++ after
@@ -1 +1,36 @@
-{}
+{
+ "ip_whitelist": [],
+ "name": "skipper",
+ "permissions": {
+ "account": {
+ "manage_account_settings": false,
+ "manage_apikeys": false,
+ "manage_payment_methods": false,
+ "manage_plan": false,
+ "manage_teams": false,
+ "manage_users": false,
+ "view_activity_log": false,
+ "view_invoices": false
+ },
+ "data": {
+ "manage_datafeeds": false,
+ "manage_datasources": false,
+ "push_to_datafeeds": false
+ },
+ "dns": {
+ "manage_zones": false,
+ "view_zones": false,
+ "zones_allow": [],
+ "zones_allow_by_default": false,
+ "zones_deny": []
+ },
+ "monitoring": {
+ "manage_jobs": false,
+ "manage_lists": false,
+ "view_jobs": false
+ },
+ "security": {
+ "manage_global_2fa": false
+ }
+ }
+}
changed: [localhost]
TASK [Verify team creation] ****************************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [Test team ip whitelist] **************************************************
--- before
+++ after
@@ -1,5 +1,19 @@
{
- "ip_whitelist": [],
+ "ip_whitelist": [
+ {
+ "name": "Home Whitelist",
+ "values": [
+ "104.20.48.182"
+ ]
+ },
+ {
+ "name": "Multi Whitelist",
+ "values": [
+ "104.20.49.0/24",
+ "104.20.50.1"
+ ]
+ }
+ ],
"name": "skipper",
"permissions": {
"account": {
changed: [localhost]
TASK [Verify team ip whitelist] ************************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [Add all monitoring permissions] ******************************************
--- before
+++ after
@@ -1,19 +1,5 @@
{
- "ip_whitelist": [
- {
- "name": "Home Whitelist",
- "values": [
- "104.20.48.182"
- ]
- },
- {
- "name": "Multi Whitelist",
- "values": [
- "104.20.49.0/24",
- "104.20.50.1"
- ]
- }
- ],
+ "ip_whitelist": [],
"name": "skipper",
"permissions": {
"account": {
@@ -39,9 +25,9 @@
"zones_deny": []
},
"monitoring": {
- "manage_jobs": false,
- "manage_lists": false,
- "view_jobs": false
+ "manage_jobs": true,
+ "manage_lists": true,
+ "view_jobs": true
},
"security": {
"manage_global_2fa": false
changed: [localhost]
TASK [Verify permissions are set] **********************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [Add all account permissions] *********************************************
--- before
+++ after
@@ -3,14 +3,15 @@
"name": "skipper",
"permissions": {
"account": {
- "manage_account_settings": false,
- "manage_apikeys": false,
- "manage_payment_methods": false,
- "manage_plan": false,
- "manage_teams": false,
- "manage_users": false,
- "view_activity_log": false,
- "view_invoices": false
+ "manage_account_settings": true,
+ "manage_apikeys": true,
+ "manage_ip_whitelist": true,
+ "manage_payment_methods": true,
+ "manage_plan": true,
+ "manage_teams": true,
+ "manage_users": true,
+ "view_activity_log": true,
+ "view_invoices": true
},
"data": {
"manage_datafeeds": false,
@@ -25,9 +26,9 @@
"zones_deny": []
},
"monitoring": {
- "manage_jobs": true,
- "manage_lists": true,
- "view_jobs": true
+ "manage_jobs": false,
+ "manage_lists": false,
+ "view_jobs": false
},
"security": {
"manage_global_2fa": false
changed: [localhost]
TASK [Verify permissions are set] **********************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [Add all data permissions] ************************************************
--- before
+++ after
@@ -3,20 +3,19 @@
"name": "skipper",
"permissions": {
"account": {
- "manage_account_settings": true,
- "manage_apikeys": true,
- "manage_ip_whitelist": true,
- "manage_payment_methods": true,
- "manage_plan": true,
- "manage_teams": true,
- "manage_users": true,
- "view_activity_log": true,
- "view_invoices": true
+ "manage_account_settings": false,
+ "manage_apikeys": false,
+ "manage_payment_methods": false,
+ "manage_plan": false,
+ "manage_teams": false,
+ "manage_users": false,
+ "view_activity_log": false,
+ "view_invoices": false
},
"data": {
- "manage_datafeeds": false,
- "manage_datasources": false,
- "push_to_datafeeds": false
+ "manage_datafeeds": true,
+ "manage_datasources": true,
+ "push_to_datafeeds": true
},
"dns": {
"manage_zones": false,
changed: [localhost]
TASK [Verify permissions are set] **********************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [Add all security permissions] ********************************************
--- before
+++ after
@@ -13,9 +13,9 @@
"view_invoices": false
},
"data": {
- "manage_datafeeds": true,
- "manage_datasources": true,
- "push_to_datafeeds": true
+ "manage_datafeeds": false,
+ "manage_datasources": false,
+ "push_to_datafeeds": false
},
"dns": {
"manage_zones": false,
@@ -30,7 +30,7 @@
"view_jobs": false
},
"security": {
- "manage_global_2fa": false
+ "manage_global_2fa": true
}
}
}
changed: [localhost]
TASK [Verify permissions are set] **********************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [Add all dns permissions] *************************************************
--- before
+++ after
@@ -18,11 +18,15 @@
"push_to_datafeeds": false
},
"dns": {
- "manage_zones": false,
- "view_zones": false,
- "zones_allow": [],
- "zones_allow_by_default": false,
- "zones_deny": []
+ "manage_zones": true,
+ "view_zones": true,
+ "zones_allow": [
+ "primary-pharmakom.net,linked-pharmakom.net"
+ ],
+ "zones_allow_by_default": true,
+ "zones_deny": [
+ "secondary-pharmakom.net"
+ ]
},
"monitoring": {
"manage_jobs": false,
@@ -30,7 +34,7 @@
"view_jobs": false
},
"security": {
- "manage_global_2fa": true
+ "manage_global_2fa": false
}
}
}
changed: [localhost]
TASK [Verify permissions are set] **********************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
TASK [Test team deletion] ******************************************************
--- before
+++ after
@@ -1,40 +1 @@
-{
- "ip_whitelist": [],
- "name": "skipper",
- "permissions": {
- "account": {
- "manage_account_settings": false,
- "manage_apikeys": false,
- "manage_payment_methods": false,
- "manage_plan": false,
- "manage_teams": false,
- "manage_users": false,
- "view_activity_log": false,
- "view_invoices": false
- },
- "data": {
- "manage_datafeeds": false,
- "manage_datasources": false,
- "push_to_datafeeds": false
- },
- "dns": {
- "manage_zones": true,
- "view_zones": true,
- "zones_allow": [
- "primary-pharmakom.net,linked-pharmakom.net"
- ],
- "zones_allow_by_default": true,
- "zones_deny": [
- "secondary-pharmakom.net"
- ]
- },
- "monitoring": {
- "manage_jobs": false,
- "manage_lists": false,
- "view_jobs": false
- },
- "security": {
- "manage_global_2fa": false
- }
- }
-}
+{}
changed: [localhost]
TASK [Verify team deletion] ****************************************************
ok: [localhost] => {
"changed": false,
"msg": "All assertions passed"
}
PLAY RECAP *********************************************************************
localhost : ok=19 changed=8 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Hi there! Thanks so much for the contribution, I'll work to get a review on this shortly.