mirror of
https://github.com/ansible-collections/community.general.git
synced 2025-07-24 13:50:22 -07:00
parent
2f33c1a1a1
commit
5553b20828
206 changed files with 1853 additions and 1870 deletions
|
@ -15,6 +15,7 @@
|
|||
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
import os
|
||||
|
||||
try:
|
||||
from pyvcloud.vcloudair import VCA
|
||||
HAS_PYVCLOUD = True
|
||||
|
@ -29,16 +30,18 @@ LOGIN_HOST = {'vca': 'vca.vmware.com', 'vchs': 'vchs.vmware.com'}
|
|||
DEFAULT_SERVICE_TYPE = 'vca'
|
||||
DEFAULT_VERSION = '5.7'
|
||||
|
||||
|
||||
class VcaError(Exception):
|
||||
|
||||
def __init__(self, msg, **kwargs):
|
||||
self.kwargs = kwargs
|
||||
super(VcaError, self).__init__(msg)
|
||||
|
||||
|
||||
def vca_argument_spec():
|
||||
return dict(
|
||||
username=dict(type='str', aliases=['user'], required=True),
|
||||
password=dict(type='str', aliases=['pass','passwd'], required=True, no_log=True),
|
||||
password=dict(type='str', aliases=['pass', 'passwd'], required=True, no_log=True),
|
||||
org=dict(),
|
||||
service_id=dict(),
|
||||
instance_id=dict(),
|
||||
|
@ -50,6 +53,7 @@ def vca_argument_spec():
|
|||
verify_certs=dict(type='bool', default=True)
|
||||
)
|
||||
|
||||
|
||||
class VcaAnsibleModule(AnsibleModule):
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
|
@ -193,7 +197,6 @@ class VcaAnsibleModule(AnsibleModule):
|
|||
self.exit_json(**kwargs)
|
||||
|
||||
|
||||
|
||||
# -------------------------------------------------------------
|
||||
# 9/18/2015 @privateip
|
||||
# All of the functions below here were migrated from the original
|
||||
|
@ -206,6 +209,7 @@ VCA_REQ_ARGS = ['instance_id', 'vdc_name']
|
|||
VCHS_REQ_ARGS = ['service_id']
|
||||
VCD_REQ_ARGS = []
|
||||
|
||||
|
||||
def _validate_module(module):
|
||||
if not HAS_PYVCLOUD:
|
||||
module.fail_json(msg="python module pyvcloud is needed for this module")
|
||||
|
@ -216,19 +220,19 @@ def _validate_module(module):
|
|||
for arg in VCA_REQ_ARGS:
|
||||
if module.params.get(arg) is None:
|
||||
module.fail_json(msg="argument %s is mandatory when service type "
|
||||
"is vca" % arg)
|
||||
"is vca" % arg)
|
||||
|
||||
if service_type == 'vchs':
|
||||
for arg in VCHS_REQ_ARGS:
|
||||
if module.params.get(arg) is None:
|
||||
module.fail_json(msg="argument %s is mandatory when service type "
|
||||
"is vchs" % arg)
|
||||
"is vchs" % arg)
|
||||
|
||||
if service_type == 'vcd':
|
||||
for arg in VCD_REQ_ARGS:
|
||||
if module.params.get(arg) is None:
|
||||
module.fail_json(msg="argument %s is mandatory when service type "
|
||||
"is vcd" % arg)
|
||||
"is vcd" % arg)
|
||||
|
||||
|
||||
def serialize_instances(instance_list):
|
||||
|
@ -237,6 +241,7 @@ def serialize_instances(instance_list):
|
|||
instances.append(dict(apiUrl=i['apiUrl'], instance_id=i['id']))
|
||||
return instances
|
||||
|
||||
|
||||
def _vca_login(vca, password, instance):
|
||||
if not vca.login(password=password):
|
||||
raise VcaError("Login Failed: Please check username or password",
|
||||
|
@ -245,10 +250,11 @@ def _vca_login(vca, password, instance):
|
|||
if not vca.login_to_instance_sso(instance=instance):
|
||||
s_json = serialize_instances(vca.instances)
|
||||
raise VcaError("Login to Instance failed: Seems like instance_id provided "
|
||||
"is wrong .. Please check", valid_instances=s_json)
|
||||
"is wrong .. Please check", valid_instances=s_json)
|
||||
|
||||
return vca
|
||||
|
||||
|
||||
def _vchs_login(vca, password, service, org):
|
||||
if not vca.login(password=password):
|
||||
raise VcaError("Login Failed: Please check username or password",
|
||||
|
@ -256,7 +262,7 @@ def _vchs_login(vca, password, service, org):
|
|||
|
||||
if not vca.login_to_org(service, org):
|
||||
raise VcaError("Failed to login to org, Please check the orgname",
|
||||
error=vca.response.content)
|
||||
error=vca.response.content)
|
||||
|
||||
|
||||
def _vcd_login(vca, password, org):
|
||||
|
@ -272,6 +278,7 @@ def _vcd_login(vca, password, org):
|
|||
if not vca.login(token=vca.token, org=org, org_url=vca.vcloud_session.org_url):
|
||||
raise VcaError("Failed to login to org", error=vca.response.content)
|
||||
|
||||
|
||||
def vca_login(module):
|
||||
service_type = module.params.get('service_type')
|
||||
username = module.params.get('username')
|
||||
|
@ -323,8 +330,3 @@ def vca_login(module):
|
|||
module.fail_json(msg=e.message, **e.kwargs)
|
||||
|
||||
return vca
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue