def test_parser_playbook(self): localdir = os.path.dirname(os.path.realpath(__file__)) testfile = os.path.join(localdir, ".output/testplaybook.yml") folder_testfile = os.path.join(localdir, ".output") with codecs.open(testfile, "w", encoding="utf-8") as f: f.write("---\n") f.write(u"# Author: Me شيشه ب\n") f.write(u"# description: this is a test شيشه ب\n") f.write(u"- hosts: testhoشيشهsts\n") f.write(" tasks:\n") f.write(u" - name: 'Install Apache شيشه ب'\n") f.write(u" yum: name=httpd state=inشtalled\n") f.write(u" tags:\n") f.write(u" - apache\n") playbook = PlaybookParser([testfile], is_role=False) playbook.parse_playbooks() # One Element in Array assert (len(playbook.parserdata) == 1) assert ("author" in playbook.parserdata[folder_testfile][0]) assert ("description" in playbook.parserdata[folder_testfile][0]) assert ("task_info" in playbook.parserdata[folder_testfile][0]) assert ("task_name" in playbook.parserdata[folder_testfile][0]['task_info'][0]) assert ("task_tags" in playbook.parserdata[folder_testfile][0]['task_info'][0]) assert (playbook.parserdata[folder_testfile][0]["is_role"] is False)
def parse_main_tasks(self): """ Parse All Tasks Found In a Role """ # Need to determine the rolename per task somehow self.playbookparser = PlaybookParser(self.main_tasks, is_role=True) # Parse all main tasks self.playbookparser.parse_playbooks() self.parserdata = self.playbookparser.parserdata
def __init__(self, project): """ Setup Parser Modules @project is a relative or absolute path to an Ansible Project """ self.ansiblecfg = AnsibleCfg(project) self.roleparser = RoleParser(self.ansiblecfg.get_role_paths()) self.playbookparser = PlaybookParser( self.ansiblecfg.get_playbook_paths()) # Parse all playbooks self.playbookparser.parse_playbooks()
def __init__(self, project): """ Setup Parser Modules @param project: is a relative or absolute path to an Ansible Project """ self.ansiblecfg = AnsibleCfg(project) print("Parsing roles") self.roleparser = RoleParser(self.ansiblecfg.get_role_paths()) print("Parsing playbooks") self.playbookparser = PlaybookParser( self.ansiblecfg.get_playbook_paths()) print("Parsing hosts") self.hostVarsParser = HostVarsParser(self.ansiblecfg.get_hosts_paths()) # Parse all playbooks self.hostVarsParser.parse_hosts_vars() self.playbookparser.parse_playbooks()
def test_parser_role_playbook(self): # Find Directory Of This Test localdir = os.path.dirname(os.path.realpath(__file__)) # Create Tasks Directory if not os.path.exists(os.path.join(localdir, ".output/tasks/")): os.makedirs(os.path.join(localdir, ".output/tasks/")) # Set Output File testfile = os.path.join(localdir, ".output/tasks/main.yml") folder_testfile = localdir with open(testfile, "w") as f: f.write("---\n") f.write("# Author: Me\n") f.write("# description: this is a test\n") f.write("- name: 'Install Apache'\n") f.write(" yum: name=httpd state=installed\n") f.write(" tags:\n") f.write(" - apache\n") playbook = PlaybookParser([testfile], is_role=True) playbook.parse_playbooks() # One Element in Array assert (len(playbook.parserdata) == 1) assert ("author" in playbook.parserdata[folder_testfile][0]) assert ("description" in playbook.parserdata[folder_testfile][0]) assert ("task_info" in playbook.parserdata[folder_testfile][0]) assert ("task_name" in playbook.parserdata[folder_testfile][0]['task_info'][0]) assert ("task_tags" in playbook.parserdata[folder_testfile][0]['task_info'][0]) assert (playbook.parserdata[folder_testfile][0]["name"] == ".output")
def test_parser_playbook(self): localdir = os.path.dirname(os.path.realpath(__file__)) testfile = os.path.join(localdir, ".output/testplaybook.yml") with open(testfile, "w") as f: f.write("---\n") f.write("# Author: Me\n") f.write("# description: this is a test\n") f.write("- name: 'Install Apache'\n") f.write(" yum: name=httpd state=installed\n") playbook = PlaybookParser([testfile], is_role=True) playbook.parse_playbooks() # One Element in Array assert (len(playbook.parserdata) == 1) assert ("author" in playbook.parserdata[0]) assert ("description" in playbook.parserdata[0]) assert ("task_names" in playbook.parserdata[0]) assert (playbook.parserdata[0]["rolename"] is None)