コード例 #1
0
def test_has_feature_invalid_key():
    ''' existing feature_flag with unknown key '''
    flag = 'deprecation_warning_bad_key'
    module = create_module(mock_args())
    # replace ANsible fail method with ours
    module.fail_json = fail_json
    with pytest.raises(AnsibleFailJson) as exc:
        netapp_utils.has_feature(module, flag)
    msg = 'Internal error: unexpected feature flag: %s' % flag
    assert exc.value.args[0]['msg'] == msg
コード例 #2
0
def test_has_feature_success_user_true():
    ''' existing feature_flag with value set to True '''
    flag = 'user_deprecation_warning'
    args = dict(mock_args({flag: True}))
    module = create_module(args)
    value = netapp_utils.has_feature(module, flag)
    assert value
コード例 #3
0
ファイル: na_ontap_cifs.py プロジェクト: lillolr/ansible-dev
 def apply(self):
     '''Apply action to cifs share'''
     netapp_utils.ems_log_event("na_ontap_cifs", self.server)
     current = self.get_cifs_share()
     cd_action = self.na_helper.get_cd_action(current, self.parameters)
     modify = None
     if cd_action is None:
         # ZAPI accepts both 'show-previous-versions' and 'show_previous_versions', but only returns the latter
         if 'show-previous-versions' in self.parameters.get('share_properties', []) and\
            current and 'show_previous_versions' in current.get('share_properties', []):
             self.parameters['share_properties'].remove(
                 'show-previous-versions')
             self.parameters['share_properties'].append(
                 'show_previous_versions')
         modify = self.na_helper.get_modified_attributes(
             current, self.parameters)
     if self.na_helper.changed and not self.module.check_mode:
         if cd_action == 'create':
             self.create_cifs_share()
         elif cd_action == 'delete':
             self.delete_cifs_share()
         elif modify:
             self.modify_cifs_share()
     results = dict(changed=self.na_helper.changed)
     if modify and netapp_utils.has_feature(self.module, 'show_modified'):
         results['modify'] = str(modify)
     self.module.exit_json(**results)
コード例 #4
0
 def check_and_set_parameters(self, module):
     self.parameters = dict()
     check_for_none = netapp_utils.has_feature(module, 'check_required_params_for_none')
     if check_for_none:
         required_keys = [key for key, value in module.argument_spec.items() if value.get('required')]
     for param in module.params:
         if module.params[param] is not None:
             self.parameters[param] = module.params[param]
         elif check_for_none and param in required_keys:
             module.fail_json(msg="%s requires a value, got: None" % param)
     return self.parameters
コード例 #5
0
    def apply(self):
        '''Call create/modify/delete operations.'''
        if not self.use_rest:
            self.asup_log_for_cserver("na_ontap_svm")
        current = self.get_vserver()
        cd_action, rename = None, None
        if self.parameters.get('from_name'):
            old_svm = self.get_vserver(self.parameters['from_name'])
            rename = self.na_helper.is_rename_action(old_svm, current)
            if rename is None:
                self.module.fail_json(
                    msg='Error renaming SVM %s: no SVM with from_name %s.' %
                    (self.parameters['name'], self.parameters['from_name']))
        else:
            cd_action = self.na_helper.get_cd_action(current, self.parameters)
        modify = self.na_helper.get_modified_attributes(
            current, self.parameters)
        for attribute in modify:
            if attribute in [
                    'root_volume', 'root_volume_aggregate',
                    'root_volume_security_style', 'subtype', 'ipspace'
            ]:
                self.module.fail_json(
                    msg='Error modifying SVM %s: can not modify %s.' %
                    (self.parameters['name'], attribute))

        if self.na_helper.changed and not self.module.check_mode:
            if rename:
                self.rename_vserver(old_svm)
            # If rename is True, cd_action is None, but modify could be true or false.
            if cd_action == 'create':
                self.create_vserver()
            elif cd_action == 'delete':
                self.delete_vserver(current)
            elif modify:
                self.modify_vserver(modify, current)

        results = dict(changed=self.na_helper.changed)
        if modify:
            if netapp_utils.has_feature(self.module, 'show_modified'):
                results['modify'] = str(modify)
            if 'aggr_list' in modify:
                if '*' in modify['aggr_list']:
                    results[
                        'warnings'] = "Changed always 'True' when aggr_list is '*'."
        self.module.exit_json(**results)
コード例 #6
0
def test_has_feature_success_default():
    ''' existing feature_flag with default '''
    flag = 'deprecation_warning'
    module = create_module(mock_args())
    value = netapp_utils.has_feature(module, flag)
    assert value