Beispiel #1
0
 def test_render_svg(self):
     result = self.graph_dot.render_svg()
     svg = result.get('svg')
     if svg:
         file_create(self.svg_file, svg)
     else:
         self.result = result
    def save(self):
        if not file_exists(self.status_file_path()):
            folder_create(self.storage.hd2_status())
            file_create(self.status_file_path())

        json_save_file_pretty(self.data(), self.status_file_path())
        return self
Beispiel #3
0
def run(event, context=None):
    target_host = event.get('target_host')
    ssh_key = event.get('ssh_key')
    ssh_key_name = event.get('ssh_key_name')
    ssh_user = event.get('ssh_user')
    ssh_command = event.get('ssh_command')
    # port_forward   = event.get('port_forwards' )              # not implemented:
    include_stderr = event.get('include_stderr')
    ssh_key_file = f'/tmp/{ssh_key_name}'

    if file_not_exists(ssh_key_file):  # create local key if it doesn't exist
        file_create(ssh_key_file, ssh_key)
        start_process('chmod', ['600', ssh_key_file])

    ssh_params = ['-o', 'StrictHostKeyChecking=no'
                  ]  # todo: add support for updating the local hosts file
    if ssh_key_file:
        ssh_params.append('-i')  # set key to use
        ssh_params.append(ssh_key_file)
    # if port_forward:                                          # todo see if we do actually need this (main use case would be to allow direct HTTP access to an internal server)
    #     local_port  = port_forward.get('local_port' )         #      need to see if Lambda will allow binding ports like this
    #     remote_ip   = port_forward.get('remote_ip'  )
    #     remote_port = port_forward.get('remote_port')
    ssh_params.append(f'{ssh_user}@{target_host}')  # set user and target ip
    ssh_params.append(ssh_command)  # add command to execute

    result = start_process("ssh", ssh_params)  # execute command

    if include_stderr:  # see if we need to include stderr in return value
        return result.get('stdout') + result.get('stderr')
    return result.get('stdout')
Beispiel #4
0
    def render_svg_to_file(self, target_file):
        result = self.render_svg()
        svg = result.get('svg')
        print(result.get('error'))
        if svg:
            file_create(target_file, svg)
            return {'status:': 'ok', 'svg_file': target_file}

        return {'status:': 'error', 'error': result.get('error')}
Beispiel #5
0
    def test_file_create(self):
        target = temp_file()
        text = random_string()

        assert file_delete(target) is True
        assert file_exists(target) is False
        assert file_create(target, text) == target

        assert file_exists(target) is True
        assert file_contents(target) == text

        empty_file = file_create()

        assert file_exists(empty_file) is True
        assert file_contents(empty_file) == ''
Beispiel #6
0
    def key_pair_create_to_file(self, key_name, target_folder=None, tags=None):
        key_pair = self.key_pair_create(key_name=key_name, tags=tags)
        key_pair_id = key_pair.get('KeyPairId')
        key_pair_material = key_pair.get('KeyMaterial')

        if target_folder is None:
            target_folder = temp_folder()
        path_key_pair = path_combine(target_folder, key_name + ".pem")
        file_create(path_key_pair, key_pair_material)
        chmod(path_key_pair, 0o400)
        return {
            'path_key_pair': path_key_pair,
            'key_pair_id': key_pair_id,
            'key_pair': key_pair
        }
    def import_dashboard_from_github(self, dashboard_file_name):
        url_dashboards = 'https://raw.githubusercontent.com/filetrust/cdr-plugin-folder-to-folder-test-data/main/kibana-dashboards/'
        url_dashboard = url_dashboards + dashboard_file_name
        dashboard_data = GET(url_dashboard)

        import_file = file_create(extension=dashboard_file_name,
                                  contents=dashboard_data)
        return self.import_dashboard(import_file=import_file)
Beispiel #8
0
    def setup_test_environment__Deploy_Lambda(
            cls):  # todo: refactor into separate class
        STS().check_current_session_credentials()
        cls.lambda_name = "osbot_test_deploy_lambda"
        cls.lambda_code = Temp_Folder_With_Lambda_File(cls.lambda_name)
        cls.code_folder = cls.lambda_code.folder

        lambda_file = cls.lambda_code.tmp_file
        module_folder = path_combine(cls.code_folder,
                                     "osbot_test_deploy_lambda")
        lambda_in_module = path_combine(module_folder, file_name(lambda_file))
        folder_create(module_folder)
        file_copy(lambda_file,
                  lambda_in_module)  # todo add a file_move to OSBot_Utils
        file_delete(lambda_file)
        file_create(path_combine(module_folder, '__init__.py'), "")

        sys.path.append(cls.code_folder)

        cls.lambda_module = importlib.import_module(
            "osbot_test_deploy_lambda.osbot_test_deploy_lambda")
        cls.lambda_function = cls.lambda_module.run
Beispiel #9
0
    def test_file_lines(self):
        contents = """1st line
        2nd line
        3rd line        
        """
        file_path = file_create(contents=contents)
        lines = list(file_lines(file_path))
        assert len(lines) == 4
        assert lines[0].strip() == '1st line'
        assert lines[1].strip() == '2nd line'
        assert lines[2].strip() == '3rd line'
        assert lines[3].strip() == ''

        file_path_gz = file_create_gz(contents=contents)
        lines_gz = list(file_lines_gz(file_path_gz))
        assert lines == lines_gz
Beispiel #10
0
 def create_temp_file(self, new_code=None):
     self.lambda_code = new_code or self.lambda_code
     self.folder      = folder_create_temp('tmp_lambda_')
     self.tmp_file    = path_combine(self.folder, f'{self.file_name}.py')
     file_create(self.tmp_file, self.lambda_code)
     return self
Beispiel #11
0
    def test_file_content_sha256(self):
        contents = random_string()
        file_path = file_create(contents=contents)

        assert file_contents_sha256(file_path) == bytes_sha256(
            str_to_bytes(contents))
Beispiel #12
0
 def test_file_not_exists(self):
     target = temp_file()
     assert file_not_exists(target) is True
     file_create(target, 'asd')
     assert file_not_exists(target) is False
Beispiel #13
0
 def setUp(self) -> None:
     self.file_path = file_create(contents=csv_string)
 def test_export_dashboard(self):
     dashboard_id = 'd73d7220-ab6f-11eb-b1b2-a1d32a234c46'
     dashboard = Dashboard(kibana=self.kibana, dashboard_id=dashboard_id)
     export_data = dashboard.export_dashboard()
     pprint(file_create(contents=export_data))
Beispiel #15
0
 def save_file(python_object, path=None, pretty=False):
     json_data = json_dumps(python_object=python_object,
                            indent=2,
                            pretty=pretty)
     return file_create(path=path, contents=json_data)