def main(): argument_spec = BitbucketHelper.bitbucket_argument_spec() argument_spec.update( repository=dict(type='str', required=True), username=dict(type='str', required=True), name=dict(type='str', required=True), value=dict(type='str'), secured=dict(type='bool', default=False), state=dict(type='str', choices=['present', 'absent'], required=True), ) module = AnsibleModule( argument_spec=argument_spec, supports_check_mode=True, ) bitbucket = BitbucketHelper(module) value = module.params['value'] state = module.params['state'] secured = module.params['secured'] # Check parameters if (value is None) and (state == 'present'): module.fail_json(msg=error_messages['required_value']) # Retrieve access token for authorized API requests bitbucket.fetch_access_token() # Retrieve existing pipeline variable (if any) existing_variable = get_existing_pipeline_variable(module, bitbucket) changed = False # Create new variable in case it doesn't exists if not existing_variable and (state == 'present'): if not module.check_mode: create_pipeline_variable(module, bitbucket) changed = True # Update variable if it is secured or the old value does not match the new one elif existing_variable and (state == 'present'): if (existing_variable['secured'] != secured) or (existing_variable.get('value') != value): if not module.check_mode: update_pipeline_variable(module, bitbucket, existing_variable['uuid']) changed = True # Delete variable elif existing_variable and (state == 'absent'): if not module.check_mode: delete_pipeline_variable(module, bitbucket, existing_variable['uuid']) changed = True module.exit_json(changed=changed)
def main(): argument_spec = BitbucketHelper.bitbucket_argument_spec() argument_spec.update( repository=dict(type='str', required=True), username=dict(type='str', required=True), key=dict(type='str'), label=dict(type='str', required=True), state=dict(type='str', choices=['present', 'absent'], required=True), ) module = AnsibleModule( argument_spec=argument_spec, supports_check_mode=True, ) bitbucket = BitbucketHelper(module) key = module.params['key'] state = module.params['state'] # Check parameters if (key is None) and (state == 'present'): module.fail_json(msg=error_messages['required_key']) # Retrieve access token for authorized API requests bitbucket.fetch_access_token() # Retrieve existing deploy key (if any) existing_deploy_key = get_existing_deploy_key(module, bitbucket) changed = False # Create new deploy key in case it doesn't exists if not existing_deploy_key and (state == 'present'): if not module.check_mode: create_deploy_key(module, bitbucket) changed = True # Update deploy key if the old value does not match the new one elif existing_deploy_key and (state == 'present'): if not key.startswith(existing_deploy_key.get('key')): if not module.check_mode: # Bitbucket doesn't support update key for the same label, # so we need to delete the old one first delete_deploy_key(module, bitbucket, existing_deploy_key['id']) create_deploy_key(module, bitbucket) changed = True # Delete deploy key elif existing_deploy_key and (state == 'absent'): if not module.check_mode: delete_deploy_key(module, bitbucket, existing_deploy_key['id']) changed = True module.exit_json(changed=changed)
def main(): argument_spec = BitbucketHelper.bitbucket_argument_spec() argument_spec.update( repository=dict(type='str', required=True), username=dict(type='str', required=True), public_key=dict(type='str'), private_key=dict(type='str', no_log=True), state=dict(type='str', choices=['present', 'absent'], required=True), ) module = AnsibleModule( argument_spec=argument_spec, supports_check_mode=True, ) bitbucket = BitbucketHelper(module) state = module.params['state'] public_key = module.params['public_key'] private_key = module.params['private_key'] # Check parameters if ((public_key is None) or (private_key is None)) and (state == 'present'): module.fail_json(msg=error_messages['required_keys']) # Retrieve access token for authorized API requests bitbucket.fetch_access_token() # Retrieve existing ssh key key_pair = get_existing_ssh_key_pair(module, bitbucket) changed = False # Create or update key pair if (not key_pair or (key_pair.get('public_key') != public_key)) and (state == 'present'): if not module.check_mode: update_ssh_key_pair(module, bitbucket) changed = True # Delete key pair elif key_pair and (state == 'absent'): if not module.check_mode: delete_ssh_key_pair(module, bitbucket) changed = True module.exit_json(changed=changed)
def main(): argument_spec = BitbucketHelper.bitbucket_argument_spec() argument_spec.update( repository=dict(type='str', required=True), username=dict(type='str', required=True), name=dict(type='str', required=True), key=dict(type='str', no_log=False), state=dict(type='str', choices=['present', 'absent'], required=True), ) module = AnsibleModule( argument_spec=argument_spec, supports_check_mode=True, ) if (module.params['key'] is None) and (not HAS_PARAMIKO): module.fail_json( msg='`paramiko` package not found, please install it.') bitbucket = BitbucketHelper(module) # Retrieve access token for authorized API requests bitbucket.fetch_access_token() # Retrieve existing known host existing_host = get_existing_known_host(module, bitbucket) state = module.params['state'] changed = False # Create new host in case it doesn't exists if not existing_host and (state == 'present'): if not module.check_mode: create_known_host(module, bitbucket) changed = True # Delete host elif existing_host and (state == 'absent'): if not module.check_mode: delete_known_host(module, bitbucket, existing_host['uuid']) changed = True module.exit_json(changed=changed)