mirror of
https://opendev.org/x/pyghmi
synced 2026-05-16 19:34:21 +00:00
Support passing file obj for media
To be consistent with the file object support, extend the remote media upload functions. Change-Id: I9482644aa2cef032ea891c892e747304142f63df
This commit is contained in:
@@ -2028,7 +2028,7 @@ class Command(object):
|
||||
self.oem_init()
|
||||
return self._oem.detach_remote_media()
|
||||
|
||||
def upload_media(self, filename, progress=None):
|
||||
def upload_media(self, filename, progress=None, data=None):
|
||||
"""Upload a file to be hosted on the target BMC
|
||||
|
||||
This will upload the specified data to
|
||||
@@ -2040,7 +2040,7 @@ class Command(object):
|
||||
:param progress: Optional callback for progress updates
|
||||
"""
|
||||
self.oem_init()
|
||||
return self._oem.upload_media(filename, progress)
|
||||
return self._oem.upload_media(filename, progress, data)
|
||||
|
||||
def list_media(self):
|
||||
"""List attached remote media
|
||||
|
||||
@@ -277,7 +277,7 @@ class OEMHandler(object):
|
||||
def attach_remote_media(self, imagename, username, password):
|
||||
raise exc.UnsupportedFunctionality()
|
||||
|
||||
def upload_media(self, filename, progress):
|
||||
def upload_media(self, filename, progress, data):
|
||||
raise exc.UnsupportedFunctionality()
|
||||
|
||||
def list_media(self):
|
||||
|
||||
@@ -1048,10 +1048,10 @@ class OEMHandler(generic.OEMHandler):
|
||||
netfn=0x32, command=0x9f, data=(8, 10, 0, 0))
|
||||
self.ipmicmd.xraw_command(netfn=0x32, command=0x9f, data=(8, 11))
|
||||
|
||||
def upload_media(self, filename, progress):
|
||||
def upload_media(self, filename, progress, data):
|
||||
if self.has_xcc or self.has_imm:
|
||||
return self.immhandler.upload_media(filename, progress)
|
||||
return super(OEMHandler, self).upload_media(filename, progress)
|
||||
return self.immhandler.upload_media(filename, progress, data)
|
||||
return super(OEMHandler, self).upload_media(filename, progress, data)
|
||||
|
||||
def list_media(self):
|
||||
if self.has_xcc or self.has_imm:
|
||||
|
||||
@@ -425,7 +425,7 @@ class IMMClient(object):
|
||||
except KeyError:
|
||||
return None
|
||||
|
||||
def upload_media(self, filename, progress=None):
|
||||
def upload_media(self, filename, progress=None, data=None):
|
||||
xid = random.randint(0, 1000000000)
|
||||
alloc = self.wc.grab_json_response(
|
||||
'/data/set',
|
||||
@@ -439,7 +439,7 @@ class IMMClient(object):
|
||||
uploadfields['available'] = alloc['available']
|
||||
uploadfields['checksum'] = xid
|
||||
ut = webclient.FileUploader(
|
||||
self.wc, '/designs/imm/upload/rp_image_upload.esp', filename,
|
||||
self.wc, '/designs/imm/upload/rp_image_upload.esp', filename, data,
|
||||
otherfields=uploadfields)
|
||||
ut.start()
|
||||
while ut.isAlive():
|
||||
@@ -1684,11 +1684,11 @@ class XCCClient(IMMClient):
|
||||
yield media.Media(mt['filename'])
|
||||
self.weblogout()
|
||||
|
||||
def upload_media(self, filename, progress=None):
|
||||
def upload_media(self, filename, progress=None, data=None):
|
||||
xid = random.randint(0, 1000000000)
|
||||
self._refresh_token()
|
||||
uploadthread = webclient.FileUploader(
|
||||
self.wc, '/upload?X-Progress-ID={0}'.format(xid), filename, None)
|
||||
self.wc, '/upload?X-Progress-ID={0}'.format(xid), filename, data)
|
||||
uploadthread.start()
|
||||
while uploadthread.isAlive():
|
||||
uploadthread.join(3)
|
||||
|
||||
@@ -1463,7 +1463,7 @@ class Command(object):
|
||||
'Inserted': False},
|
||||
method='PATCH')
|
||||
|
||||
def upload_media(self, filename, progress=None):
|
||||
def upload_media(self, filename, progress=None, data=None):
|
||||
"""Upload a file to be hosted on the target BMC
|
||||
|
||||
This will upload the specified data to
|
||||
@@ -1474,7 +1474,7 @@ class Command(object):
|
||||
will be given to the bmc.
|
||||
:param progress: Optional callback for progress updates
|
||||
"""
|
||||
return self.oem.upload_media(filename, progress)
|
||||
return self.oem.upload_media(filename, progress, data)
|
||||
|
||||
def update_firmware(self, file, data=None, progress=None, bank=None):
|
||||
"""Send file to BMC to perform firmware update
|
||||
|
||||
@@ -324,7 +324,7 @@ class OEMHandler(object):
|
||||
raise exc.UnsupportedFunctionality(
|
||||
'Remote storage configuration not supported on this platform')
|
||||
|
||||
def upload_media(self, filename, progress=None):
|
||||
def upload_media(self, filename, progress=None, data=None):
|
||||
raise exc.UnsupportedFunctionality(
|
||||
'Remote media upload not supported on this platform')
|
||||
|
||||
|
||||
@@ -656,11 +656,11 @@ class OEMHandler(generic.OEMHandler):
|
||||
raise pygexc.InvalidParameterValue(
|
||||
'XCC does not have required license for operation')
|
||||
|
||||
def upload_media(self, filename, progress=None):
|
||||
def upload_media(self, filename, progress=None, data=None):
|
||||
xid = random.randint(0, 1000000000)
|
||||
self._refresh_token()
|
||||
uploadthread = webclient.FileUploader(
|
||||
self.wc, '/upload?X-Progress-ID={0}'.format(xid), filename, None)
|
||||
self.wc, '/upload?X-Progress-ID={0}'.format(xid), filename, data)
|
||||
uploadthread.start()
|
||||
while uploadthread.isAlive():
|
||||
uploadthread.join(3)
|
||||
|
||||
Reference in New Issue
Block a user