mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-22 18:00:35 +00:00
oracle: add tasks to upload and verify images
This commit is contained in:
parent
94559e1d8e
commit
12dbc6a07e
2 changed files with 55 additions and 0 deletions
17
bootstrapvz/providers/oracle/tasks/api.py
Normal file
17
bootstrapvz/providers/oracle/tasks/api.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
from bootstrapvz.base import Task
|
||||
from bootstrapvz.common import phases
|
||||
from bootstrapvz.providers.oracle.apiclient import OracleStorageAPIClient
|
||||
|
||||
|
||||
class InstantiateAPIClient(Task):
|
||||
description = 'Instantiating Oracle Storage Cloud API client'
|
||||
phase = phases.preparation
|
||||
|
||||
@classmethod
|
||||
def run(cls, info):
|
||||
info._oracle['client'] = OracleStorageAPIClient(
|
||||
username=info.manifest.provider['credentials']['username'],
|
||||
password=info.manifest.provider['credentials']['password'],
|
||||
identity_domain=info.manifest.provider['credentials']['identity-domain'],
|
||||
container=info.manifest.provider['container'],
|
||||
)
|
|
@ -17,5 +17,43 @@ class CreateImageTarball(Task):
|
|||
|
||||
tarball_name = image_name + '.tar.gz'
|
||||
tarball_path = os.path.join(info.manifest.bootstrapper['workspace'], tarball_name)
|
||||
info._oracle['tarball_path'] = tarball_path
|
||||
log_check_call(['tar', '--sparse', '-C', info.manifest.bootstrapper['workspace'],
|
||||
'-caf', tarball_path, filename])
|
||||
|
||||
|
||||
class UploadImageTarball(Task):
|
||||
description = 'Uploading image tarball'
|
||||
phase = phases.image_registration
|
||||
predecessors = [CreateImageTarball]
|
||||
|
||||
@classmethod
|
||||
def run(cls, info):
|
||||
info._oracle['client'].file_path = info._oracle['tarball_path']
|
||||
info._oracle['client'].upload_file()
|
||||
|
||||
|
||||
class DownloadImageTarball(Task):
|
||||
description = 'Downloading image tarball for integrity verification'
|
||||
phase = phases.image_registration
|
||||
predecessors = [UploadImageTarball]
|
||||
|
||||
@classmethod
|
||||
def run(cls, info):
|
||||
tmp_tarball_path = '{tarball_path}-{pid}.tmp'.format(
|
||||
tarball_path=info._oracle['tarball_path'],
|
||||
pid=os.getpid(),
|
||||
)
|
||||
info._oracle['client'].target_file_path = tmp_tarball_path
|
||||
info._oracle['client'].download_file()
|
||||
|
||||
|
||||
class CompareImageTarballs(Task):
|
||||
description = 'Comparing uploaded and downloaded image tarballs hashes'
|
||||
phase = phases.image_registration
|
||||
predecessors = [DownloadImageTarball]
|
||||
|
||||
@classmethod
|
||||
def run(cls, info):
|
||||
info._oracle['client'].compare_files()
|
||||
os.remove(info._oracle['client'].target_file_path)
|
||||
|
|
Loading…
Add table
Reference in a new issue