2
0
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:
Jarrod Johnson
2021-03-02 15:19:47 -05:00
parent 32f81a8cb8
commit 7c5dde9335
7 changed files with 15 additions and 15 deletions
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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):
+3 -3
View File
@@ -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:
+4 -4
View File
@@ -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)
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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')
+2 -2
View File
@@ -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)