Skip to content

Commit 32b498b

Browse files
committed
Add raw-track-access mode support for ECKD disks
1 parent 0f24929 commit 32b498b

File tree

5 files changed

+27
-20
lines changed

5 files changed

+27
-20
lines changed

zthin-parts/zthin/lib/zthinshellutils

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -707,6 +707,9 @@ function connectDisk {
707707
# @Code:
708708
[[ $mode ]] || mode='rr'
709709

710+
# Ensure rawTrackAccess 1 is passed for raw mode
711+
vmcp "link $userID $vdev as $alias $mode" 2>&1
712+
710713
# Obtain the disk connection lock.
711714
local attempts=1
712715
while [[ $(mkdir $diskConnectionLock; echo $?) -ne 0 ]]; do

zvmsdk/database.py

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2313,28 +2313,27 @@ def _create_image_table(self):
23132313
'disk_size_units varchar(512),',
23142314
'image_size_in_bytes varchar(512),',
23152315
'type varchar(16),',
2316+
'raw_track_access integer DEFAULT 0,',
23162317
'comments varchar(128))'))
23172318
with get_image_conn() as conn:
23182319
conn.execute(create_image_table_sql)
23192320

23202321
def image_add_record(self, imagename, imageosdistro, md5sum,
2321-
disk_size_units, image_size_in_bytes,
2322-
type, comments=None):
2323-
if comments is not None:
2324-
with get_image_conn() as conn:
2325-
conn.execute("INSERT INTO image (imagename, imageosdistro,"
2326-
"md5sum, disk_size_units, image_size_in_bytes,"
2327-
" type, comments) VALUES (?, ?, ?, ?, ?, ?, ?)",
2328-
(imagename, imageosdistro, md5sum,
2329-
disk_size_units, image_size_in_bytes, type,
2330-
comments))
2331-
else:
2332-
with get_image_conn() as conn:
2333-
conn.execute("INSERT INTO image (imagename, imageosdistro,"
2334-
"md5sum, disk_size_units, image_size_in_bytes,"
2335-
" type) VALUES (?, ?, ?, ?, ?, ?)",
2336-
(imagename, imageosdistro, md5sum,
2337-
disk_size_units, image_size_in_bytes, type))
2322+
disk_size_units, image_size_in_bytes,
2323+
type, raw_track_access=0, comments=None):
2324+
with get_image_conn() as conn:
2325+
if comments is not None:
2326+
conn.execute("INSERT INTO image (imagename, imageosdistro, md5sum, "
2327+
"disk_size_units, image_size_in_bytes, type, raw_track_access, comments) "
2328+
"VALUES (?, ?, ?, ?, ?, ?, ?, ?)",
2329+
(imagename, imageosdistro, md5sum, disk_size_units,
2330+
image_size_in_bytes, type, raw_track_access, comments))
2331+
else:
2332+
conn.execute("INSERT INTO image (imagename, imageosdistro, md5sum, "
2333+
"disk_size_units, image_size_in_bytes, type, raw_track_access) "
2334+
"VALUES (?, ?, ?, ?, ?, ?, ?)",
2335+
(imagename, imageosdistro, md5sum, disk_size_units,
2336+
image_size_in_bytes, type, raw_track_access))
23382337

23392338
def image_query_record(self, imagename=None):
23402339
"""Query the image record from database, if imagename is None, all

zvmsdk/imageops.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ def __init__(self):
4343
def image_get_root_disk_size(self, image_name):
4444
return self._smtclient.image_get_root_disk_size(image_name)
4545

46-
def image_import(self, image_name, url, image_meta, remote_host=None):
46+
def image_import(self, image_name, url, image_meta, remote_host=None, raw_track_access=False, disk=None):
4747

48+
if not raw_track_access and disk:
49+
self._smtclient.dasdfmt(disk)
4850
return self._smtclient.image_import(image_name,
4951
url,
5052
image_meta,

zvmsdk/sdkwsgi/handlers/image.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,10 @@ def create(self, body):
4848
remote_host = image.get('remote_host', None)
4949
image_meta = image['image_meta']
5050

51+
raw_track_access = image.get('raw_track_access', False)
5152
info = self.client.send_request('image_import', image_name,
52-
url, image_meta, remote_host)
53+
url, image_meta, remote_host,
54+
raw_track_access)
5355
return info
5456

5557
@validation.query_schema(image.query)

zvmsdk/sdkwsgi/schemas/image.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@
2727
'image_name': parameter_types.name,
2828
'url': parameter_types.url,
2929
'image_meta': parameter_types.image_meta,
30-
'remote_host': parameter_types.remotehost
30+
'remote_host': parameter_types.remotehost,
31+
'raw_track_access': parameter_types.boolean
3132
},
3233
'required': ['image_name', 'url', 'image_meta'],
3334
'additionalProperties': False

0 commit comments

Comments
 (0)