def upload_file(self, filename, contents=None): """ Upload single artifact :type filename: str :type contents: str :raise TaurusNetworkError: """ body = MultiPartForm( ) # TODO: can we migrate off it, and use something native to requests lib? # maybe http://stackoverflow.com/questions/12385179/how-to-send-a-multipart-form-data-with-requests-in-python if contents is None: body.add_file('file', filename) else: body.add_file_as_string('file', filename, contents) url = self.data_address + "/api/v4/image/%s/files?signature=%s" url %= self['id'], self.data_signature master_id = self.get('masterId') if master_id: url += '&masterId={}'.format(master_id) hdr = {"Content-Type": str(body.get_content_type())} response = self._request(url, body.form_as_bytes(), headers=hdr) if not response['result']: raise TaurusNetworkError("Upload failed: %s" % response)
def upload_file(self, filename, contents=None): """ Upload single artifact :type filename: str :type contents: str :raise TaurusNetworkError: """ body = MultiPartForm() # TODO: can we migrate off it, and use something native to requests lib? # maybe http://stackoverflow.com/questions/12385179/how-to-send-a-multipart-form-data-with-requests-in-python if contents is None: body.add_file('file', filename) else: body.add_file_as_string('file', filename, contents) url = self.data_address + "/api/v4/image/%s/files?signature=%s" url %= self['id'], self.data_signature master_id = self.get('masterId') if master_id: url += '&masterId={}'.format(master_id) hdr = {"Content-Type": str(body.get_content_type())} response = self._request(url, body.form_as_bytes(), headers=hdr) if not response['result']: raise TaurusNetworkError("Upload failed: %s" % response)
def upload_files(self, taurus_config, resource_files): self.log.debug("Uploading files into the test: %s", resource_files) url = '%s/api/v4/tests/%s/files' % (self.address, self['id']) body = MultiPartForm() body.add_file_as_string('script', 'taurus.yml', taurus_config) for rfile in resource_files: body.add_file('files[]', rfile) hdr = {"Content-Type": str(body.get_content_type())} self._request(url, body.form_as_bytes(), headers=hdr)
def _upload_collection_resources(self, resource_files, draft_id): self.log.debug('Uploading resource files: %s', resource_files) url = self.address + "/api/v4/web/elfinder/%s" % draft_id body = MultiPartForm() body.add_field("cmd", "upload") body.add_field("target", "s1_Lw") body.add_field('folder', 'drafts') for rfile in resource_files: body.add_file('upload[]', rfile) hdr = {"Content-Type": str(body.get_content_type())} self._request(url, body.form_as_bytes(), headers=hdr)
def test_by_name(self, name, configuration, taurus_config, resource_files, proj_id): """ :type name: str :rtype: str """ tests = self.get_tests() test_id = None for test in tests: self.log.debug("Test: %s", test) if "name" in test and test['name'] == name: if test['configuration']['type'] == configuration['type']: if not proj_id or proj_id == test['projectId']: test_id = test['id'] self.log.debug("Matched: %s", test) if not test_id: self.log.debug("Creating new test") url = self.address + '/api/latest/tests' data = { "name": name, "projectId": proj_id, "configuration": configuration } hdr = {"Content-Type": " application/json"} resp = self._request(url, json.dumps(data), headers=hdr) test_id = resp['result']['id'] if configuration[ 'type'] == 'taurus': # FIXME: this is weird way to code, subclass it or something self.log.debug("Uploading files into the test: %s", resource_files) url = '%s/api/latest/tests/%s/files' % (self.address, test_id) body = MultiPartForm() body.add_file_as_string( 'script', 'taurus.yml', yaml.dump(taurus_config, default_flow_style=False, explicit_start=True, canonical=False)) for rfile in resource_files: body.add_file('files[]', rfile) hdr = {"Content-Type": body.get_content_type()} _ = self._request(url, body.form_as_bytes(), headers=hdr) self.log.debug("Using test ID: %s", test_id) return test_id
def test_by_name(self, name, configuration, taurus_config, resource_files, proj_id): """ :type name: str :rtype: str """ tests = self.get_tests() test_id = None for test in tests: self.log.debug("Test: %s", test) if "name" in test and test['name'] == name: if test['configuration']['type'] == configuration['type']: if not proj_id or proj_id == test['projectId']: test_id = test['id'] self.log.debug("Matched: %s", test) if not test_id: self.log.debug("Creating new test") url = self.address + '/api/latest/tests' data = {"name": name, "projectId": proj_id, "configuration": configuration} hdr = {"Content-Type": " application/json"} resp = self._request(url, json.dumps(data), headers=hdr) test_id = resp['result']['id'] if configuration['type'] == 'taurus': # FIXME: this is weird way to code, subclass it or something self.log.debug("Uploading files into the test: %s", resource_files) url = '%s/api/latest/tests/%s/files' % (self.address, test_id) body = MultiPartForm() body.add_file_as_string('script', 'taurus.yml', yaml.dump(taurus_config, default_flow_style=False, explicit_start=True, canonical=False)) for rfile in resource_files: body.add_file('files[]', rfile) hdr = {"Content-Type": body.get_content_type()} _ = self._request(url, body.form_as_bytes(), headers=hdr) self.log.debug("Using test ID: %s", test_id) return test_id
def upload_file(self, filename, contents=None): """ Upload single artifact :type filename: str :type contents: str :raise IOError: """ body = MultiPartForm() if contents is None: body.add_file('file', filename) else: body.add_file_as_string('file', filename, contents) url = self.address + "/api/latest/image/%s/files?signature=%s" url = url % (self.active_session_id, self.data_signature) hdr = {"Content-Type": body.get_content_type()} response = self._request(url, body.form_as_bytes(), headers=hdr) if not response['result']: raise IOError("Upload failed: %s" % response)
def test_by_name(self, name, configuration, taurus_config, resource_files): """ :type name: str :rtype: str """ tests = self.get_tests() test_id = None for test in tests: self.log.debug("Test: %s", test) if "name" in test and test["name"] == name and test["configuration"]["type"] == configuration["type"]: test_id = test["id"] if not test_id: self.log.debug("Creating new test") url = self.address + "/api/latest/tests" data = {"name": name, "configuration": configuration} hdr = {"Content-Type": " application/json"} resp = self._request(url, json.dumps(data), headers=hdr) test_id = resp["result"]["id"] if configuration["type"] == "taurus": # FIXME: this is weird way to code self.log.debug("Uploading files into the test") url = "%s/api/latest/tests/%s/files" % (self.address, test_id) body = MultiPartForm() body.add_file_as_string("script", "taurus.json", to_json(taurus_config)) for rfile in resource_files: body.add_file("files[]", rfile) hdr = {"Content-Type": body.get_content_type()} response = self._request(url, body.form_as_bytes(), headers=hdr) self.log.debug("Using test ID: %s", test_id) return test_id