Discussion:
[Libstoragemgmt-devel] [PATCH] cmdline.py: fix _get_item error message
Ma Shimiao
2015-01-08 09:29:08 UTC
Permalink
For example, if we can't find access group with id ag1:
Before fixed:
'Access Gruop ID with id ag1 not found' will be printed.
Or 'access group id with id ag1 not found' will be printed.
After fixed:
'Access Gruop with ID ag1 not found' will be printed.

Messages will be more clear and have the same format.

Signed-off-by: Ma Shimiao <***@cn.fujitsu.com>
---
tools/lsmcli/cmdline.py | 85 ++++++++++++++++++++++++-------------------------
1 file changed, 42 insertions(+), 43 deletions(-)

diff --git a/tools/lsmcli/cmdline.py b/tools/lsmcli/cmdline.py
index 1bb6135..db94cbb 100644
--- a/tools/lsmcli/cmdline.py
+++ b/tools/lsmcli/cmdline.py
@@ -114,7 +114,7 @@ def _get_item(l, the_id, friendly_name='item', raise_error=True):
if item.id == the_id:
return item
if raise_error:
- raise ArgError('%s with id %s not found!' % (friendly_name, the_id))
+ raise ArgError('%s with ID %s not found!' % (friendly_name, the_id))
else:
return None

@@ -838,7 +838,7 @@ class CmdLine:
search_key = 'id'
if search_key == 'access_group_id':
lsm_ag = _get_item(self.c.access_groups(), args.ag,
- "Access Group ID", raise_error=False)
+ "Access Group", raise_error=False)
if lsm_ag:
return self.display_data(
self.c.volumes_accessible_by_access_group(lsm_ag))
@@ -867,7 +867,7 @@ class CmdLine:
elif args.type == 'SNAPSHOTS':
if args.fs is None:
raise ArgError("--fs <file system id> required")
- fs = _get_item(self.c.fs(), args.fs, 'filesystem')
+ fs = _get_item(self.c.fs(), args.fs, 'File System')
self.display_data(self.c.fs_snapshots(fs))
elif args.type == 'EXPORTS':
if search_key == 'nfs_export_id':
@@ -884,7 +884,7 @@ class CmdLine:
search_key = 'id'
if search_key == 'volume_id':
lsm_vol = _get_item(self.c.volumes(), args.vol,
- "Volume ID", raise_error=False)
+ "Volume", raise_error=False)
if lsm_vol:
return self.display_data(
self.c.access_groups_granted_to_volume(lsm_vol))
@@ -924,14 +924,14 @@ class CmdLine:

## Creates an access group.
def access_group_create(self, args):
- system = _get_item(self.c.systems(), args.sys, "system id")
+ system = _get_item(self.c.systems(), args.sys, "System")
(init_id, init_type) = parse_convert_init(args.init)
access_group = self.c.access_group_create(args.name, init_id,
init_type, system)
self.display_data([access_group])

def _add_rm_access_grp_init(self, args, op):
- lsm_ag = _get_item(self.c.access_groups(), args.ag, "access group id")
+ lsm_ag = _get_item(self.c.access_groups(), args.ag, "Access Group")
(init_id, init_type) = parse_convert_init(args.init)

if op:
@@ -951,7 +951,7 @@ class CmdLine:

def access_group_volumes(self, args):
agl = self.c.access_groups()
- group = _get_item(agl, args.ag, "access group id")
+ group = _get_item(agl, args.ag, "Access Group")
vols = self.c.volumes_accessible_by_access_group(group)
self.display_data(vols)

@@ -966,25 +966,25 @@ class CmdLine:
self.args.out_pass)

def volume_access_group(self, args):
- vol = _get_item(self.c.volumes(), args.vol, "volume id")
+ vol = _get_item(self.c.volumes(), args.vol, "Volume")
groups = self.c.access_groups_granted_to_volume(vol)
self.display_data(groups)

## Used to delete access group
def access_group_delete(self, args):
agl = self.c.access_groups()
- group = _get_item(agl, args.ag, "access group id")
+ group = _get_item(agl, args.ag, "Access Group")
return self.c.access_group_delete(group)

## Used to delete a file system
def fs_delete(self, args):
- fs = _get_item(self.c.fs(), args.fs, "filesystem id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
if self.confirm_prompt(True):
self._wait_for_it("fs-delete", self.c.fs_delete(fs), None)

## Used to create a file system
def fs_create(self, args):
- p = _get_item(self.c.pools(), args.pool, "pool id")
+ p = _get_item(self.c.pools(), args.pool, "Pool")
fs = self._wait_for_it("fs-create",
*self.c.fs_create(p, args.name,
self._size(args.size)))
@@ -992,7 +992,7 @@ class CmdLine:

## Used to resize a file system
def fs_resize(self, args):
- fs = _get_item(self.c.fs(), args.fs, "filesystem id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
size = self._size(args.size)

if self.confirm_prompt(False):
@@ -1003,13 +1003,13 @@ class CmdLine:
## Used to clone a file system
def fs_clone(self, args):
src_fs = _get_item(
- self.c.fs(), args.src_fs, "source file system id")
+ self.c.fs(), args.src_fs, "Source File System")

ss = None
if args.backing_snapshot:
#go get the snapshot
ss = _get_item(self.c.fs_snapshots(src_fs),
- args.backing_snapshot, "snapshot id")
+ args.backing_snapshot, "Snapshot")

fs = self._wait_for_it(
"fs_clone", *self.c.fs_clone(src_fs, args.dst_name, ss))
@@ -1017,12 +1017,11 @@ class CmdLine:

## Used to clone a file(s)
def file_clone(self, args):
- fs = _get_item(self.c.fs(), args.fs, "filesystem id")
-
+ fs = _get_item(self.c.fs(), args.fs, "File System")
if self.args.backing_snapshot:
#go get the snapshot
ss = _get_item(self.c.fs_snapshots(fs),
- args.backing_snapshot, "snapshot id")
+ args.backing_snapshot, "Snapshot")
else:
ss = None

@@ -1054,7 +1053,7 @@ class CmdLine:
out("%s%s%s" % (cap, s, v))

def capabilities(self, args):
- s = _get_item(self.c.systems(), args.sys, "system id")
+ s = _get_item(self.c.systems(), args.sys, "System")

cap = self.c.capabilities(s)
sup_caps = sorted(cap.get_supported().values())
@@ -1086,7 +1085,7 @@ class CmdLine:
## Creates a volume
def volume_create(self, args):
#Get pool
- p = _get_item(self.c.pools(), args.pool, "pool id")
+ p = _get_item(self.c.pools(), args.pool, "Pool")
vol = self._wait_for_it(
"volume-create",
*self.c.volume_create(
@@ -1099,7 +1098,7 @@ class CmdLine:
## Creates a snapshot
def fs_snap_create(self, args):
#Get fs
- fs = _get_item(self.c.fs(), args.fs, "fs id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
ss = self._wait_for_it("snapshot-create",
*self.c.fs_snapshot_create(
fs,
@@ -1110,8 +1109,8 @@ class CmdLine:
## Restores a snap shot
def fs_snap_restore(self, args):
#Get snapshot
- fs = _get_item(self.c.fs(), args.fs, "fs id")
- ss = _get_item(self.c.fs_snapshots(fs), args.snap, "snapshot id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
+ ss = _get_item(self.c.fs_snapshots(fs), args.snap, "Snapshot")

flag_all_files = True

@@ -1131,15 +1130,15 @@ class CmdLine:

## Deletes a volume
def volume_delete(self, args):
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
if self.confirm_prompt(True):
self._wait_for_it("volume-delete", self.c.volume_delete(v),
None)

## Deletes a snap shot
def fs_snap_delete(self, args):
- fs = _get_item(self.c.fs(), args.fs, "filesystem id")
- ss = _get_item(self.c.fs_snapshots(fs), args.snap, "snapshot id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
+ ss = _get_item(self.c.fs_snapshots(fs), args.snap, "Snapshot")

if self.confirm_prompt(True):
self._wait_for_it("fs_snap_delete",
@@ -1191,9 +1190,9 @@ class CmdLine:
def volume_replicate(self, args):
p = None
if args.pool:
- p = _get_item(self.c.pools(), args.pool, "pool id")
+ p = _get_item(self.c.pools(), args.pool, "Pool")

- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")

rep_type = vol_rep_type_str_to_type(args.rep_type)
if rep_type == Volume.REPLICATE_UNKNOWN:
@@ -1206,9 +1205,9 @@ class CmdLine:

## Replicates a range of a volume
def volume_replicate_range(self, args):
- src = _get_item(self.c.volumes(), args.src_vol, "source volume id")
+ src = _get_item(self.c.volumes(), args.src_vol, "Source Volume")
dst = _get_item(self.c.volumes(), args.dst_vol,
- "destination volume id")
+ "Destination Volume")

rep_type = vol_rep_type_str_to_type(args.rep_type)
if rep_type == Volume.REPLICATE_UNKNOWN:
@@ -1234,22 +1233,22 @@ class CmdLine:
# Returns the block size in bytes for each block represented in
# volume_replicate_range
def volume_replicate_range_block_size(self, args):
- s = _get_item(self.c.systems(), args.sys, "system id")
+ s = _get_item(self.c.systems(), args.sys, "System")
out(self.c.volume_replicate_range_block_size(s))

def volume_mask(self, args):
- vol = _get_item(self.c.volumes(), args.vol, 'Volume ID')
- ag = _get_item(self.c.access_groups(), args.ag, 'Access Group ID')
+ vol = _get_item(self.c.volumes(), args.vol, 'Volume')
+ ag = _get_item(self.c.access_groups(), args.ag, 'Access Group')
self.c.volume_mask(ag, vol)

def volume_unmask(self, args):
- ag = _get_item(self.c.access_groups(), args.ag, "Access Group ID")
- vol = _get_item(self.c.volumes(), args.vol, "volume id")
+ ag = _get_item(self.c.access_groups(), args.ag, "Access Group")
+ vol = _get_item(self.c.volumes(), args.vol, "Volume")
return self.c.volume_unmask(ag, vol)

## Re-sizes a volume
def volume_resize(self, args):
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
size = self._size(args.size)

if self.confirm_prompt(False):
@@ -1259,22 +1258,22 @@ class CmdLine:

## Enable a volume
def volume_enable(self, args):
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
self.c.volume_enable(v)

## Disable a volume
def volume_disable(self, args):
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
self.c.volume_disable(v)

## Removes a nfs export
def fs_unexport(self, args):
- export = _get_item(self.c.exports(), args.export, "nfs export id")
+ export = _get_item(self.c.exports(), args.export, "NFS Export")
self.c.export_remove(export)

## Exports a file system as a NFS export
def fs_export(self, args):
- fs = _get_item(self.c.fs(), args.fs, "file system id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")

# Check to see if we have some type of access specified
if len(args.rw_host) == 0 \
@@ -1295,25 +1294,25 @@ class CmdLine:

## Displays volume dependants.
def volume_dependants(self, args):
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
rc = self.c.volume_child_dependency(v)
out(rc)

## Removes volume dependants.
def volume_dependants_rm(self, args):
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
self._wait_for_it("volume-dependant-rm",
self.c.volume_child_dependency_rm(v), None)

## Displays file system dependants
def fs_dependants(self, args):
- fs = _get_item(self.c.fs(), args.fs, "file system id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
rc = self.c.fs_child_dependency(fs, args.file)
out(rc)

## Removes file system dependants
def fs_dependants_rm(self, args):
- fs = _get_item(self.c.fs(), args.fs, "file system id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
self._wait_for_it("fs-dependants-rm",
self.c.fs_child_dependency_rm(fs,
args.file),
--
1.8.3.1
Ma Shimiao
2015-02-10 03:28:56 UTC
Permalink
Ping.
Post by Ma Shimiao
'Access Gruop ID with id ag1 not found' will be printed.
Or 'access group id with id ag1 not found' will be printed.
'Access Gruop with ID ag1 not found' will be printed.
Messages will be more clear and have the same format.
---
tools/lsmcli/cmdline.py | 85 ++++++++++++++++++++++++-------------------------
1 file changed, 42 insertions(+), 43 deletions(-)
diff --git a/tools/lsmcli/cmdline.py b/tools/lsmcli/cmdline.py
index 1bb6135..db94cbb 100644
--- a/tools/lsmcli/cmdline.py
+++ b/tools/lsmcli/cmdline.py
return item
- raise ArgError('%s with id %s not found!' % (friendly_name, the_id))
+ raise ArgError('%s with ID %s not found!' % (friendly_name, the_id))
return None
search_key = 'id'
lsm_ag = _get_item(self.c.access_groups(), args.ag,
- "Access Group ID", raise_error=False)
+ "Access Group", raise_error=False)
return self.display_data(
self.c.volumes_accessible_by_access_group(lsm_ag))
raise ArgError("--fs <file system id> required")
- fs = _get_item(self.c.fs(), args.fs, 'filesystem')
+ fs = _get_item(self.c.fs(), args.fs, 'File System')
self.display_data(self.c.fs_snapshots(fs))
search_key = 'id'
lsm_vol = _get_item(self.c.volumes(), args.vol,
- "Volume ID", raise_error=False)
+ "Volume", raise_error=False)
return self.display_data(
self.c.access_groups_granted_to_volume(lsm_vol))
## Creates an access group.
- system = _get_item(self.c.systems(), args.sys, "system id")
+ system = _get_item(self.c.systems(), args.sys, "System")
(init_id, init_type) = parse_convert_init(args.init)
access_group = self.c.access_group_create(args.name, init_id,
init_type, system)
self.display_data([access_group])
- lsm_ag = _get_item(self.c.access_groups(), args.ag, "access group id")
+ lsm_ag = _get_item(self.c.access_groups(), args.ag, "Access Group")
(init_id, init_type) = parse_convert_init(args.init)
agl = self.c.access_groups()
- group = _get_item(agl, args.ag, "access group id")
+ group = _get_item(agl, args.ag, "Access Group")
vols = self.c.volumes_accessible_by_access_group(group)
self.display_data(vols)
self.args.out_pass)
- vol = _get_item(self.c.volumes(), args.vol, "volume id")
+ vol = _get_item(self.c.volumes(), args.vol, "Volume")
groups = self.c.access_groups_granted_to_volume(vol)
self.display_data(groups)
## Used to delete access group
agl = self.c.access_groups()
- group = _get_item(agl, args.ag, "access group id")
+ group = _get_item(agl, args.ag, "Access Group")
return self.c.access_group_delete(group)
## Used to delete a file system
- fs = _get_item(self.c.fs(), args.fs, "filesystem id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
self._wait_for_it("fs-delete", self.c.fs_delete(fs), None)
## Used to create a file system
- p = _get_item(self.c.pools(), args.pool, "pool id")
+ p = _get_item(self.c.pools(), args.pool, "Pool")
fs = self._wait_for_it("fs-create",
*self.c.fs_create(p, args.name,
self._size(args.size)))
## Used to resize a file system
- fs = _get_item(self.c.fs(), args.fs, "filesystem id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
size = self._size(args.size)
## Used to clone a file system
src_fs = _get_item(
- self.c.fs(), args.src_fs, "source file system id")
+ self.c.fs(), args.src_fs, "Source File System")
ss = None
#go get the snapshot
ss = _get_item(self.c.fs_snapshots(src_fs),
- args.backing_snapshot, "snapshot id")
+ args.backing_snapshot, "Snapshot")
fs = self._wait_for_it(
"fs_clone", *self.c.fs_clone(src_fs, args.dst_name, ss))
## Used to clone a file(s)
- fs = _get_item(self.c.fs(), args.fs, "filesystem id")
-
+ fs = _get_item(self.c.fs(), args.fs, "File System")
#go get the snapshot
ss = _get_item(self.c.fs_snapshots(fs),
- args.backing_snapshot, "snapshot id")
+ args.backing_snapshot, "Snapshot")
ss = None
out("%s%s%s" % (cap, s, v))
- s = _get_item(self.c.systems(), args.sys, "system id")
+ s = _get_item(self.c.systems(), args.sys, "System")
cap = self.c.capabilities(s)
sup_caps = sorted(cap.get_supported().values())
## Creates a volume
#Get pool
- p = _get_item(self.c.pools(), args.pool, "pool id")
+ p = _get_item(self.c.pools(), args.pool, "Pool")
vol = self._wait_for_it(
"volume-create",
*self.c.volume_create(
## Creates a snapshot
#Get fs
- fs = _get_item(self.c.fs(), args.fs, "fs id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
ss = self._wait_for_it("snapshot-create",
*self.c.fs_snapshot_create(
fs,
## Restores a snap shot
#Get snapshot
- fs = _get_item(self.c.fs(), args.fs, "fs id")
- ss = _get_item(self.c.fs_snapshots(fs), args.snap, "snapshot id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
+ ss = _get_item(self.c.fs_snapshots(fs), args.snap, "Snapshot")
flag_all_files = True
## Deletes a volume
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
self._wait_for_it("volume-delete", self.c.volume_delete(v),
None)
## Deletes a snap shot
- fs = _get_item(self.c.fs(), args.fs, "filesystem id")
- ss = _get_item(self.c.fs_snapshots(fs), args.snap, "snapshot id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
+ ss = _get_item(self.c.fs_snapshots(fs), args.snap, "Snapshot")
self._wait_for_it("fs_snap_delete",
p = None
- p = _get_item(self.c.pools(), args.pool, "pool id")
+ p = _get_item(self.c.pools(), args.pool, "Pool")
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
rep_type = vol_rep_type_str_to_type(args.rep_type)
## Replicates a range of a volume
- src = _get_item(self.c.volumes(), args.src_vol, "source volume id")
+ src = _get_item(self.c.volumes(), args.src_vol, "Source Volume")
dst = _get_item(self.c.volumes(), args.dst_vol,
- "destination volume id")
+ "Destination Volume")
rep_type = vol_rep_type_str_to_type(args.rep_type)
# Returns the block size in bytes for each block represented in
# volume_replicate_range
- s = _get_item(self.c.systems(), args.sys, "system id")
+ s = _get_item(self.c.systems(), args.sys, "System")
out(self.c.volume_replicate_range_block_size(s))
- vol = _get_item(self.c.volumes(), args.vol, 'Volume ID')
- ag = _get_item(self.c.access_groups(), args.ag, 'Access Group ID')
+ vol = _get_item(self.c.volumes(), args.vol, 'Volume')
+ ag = _get_item(self.c.access_groups(), args.ag, 'Access Group')
self.c.volume_mask(ag, vol)
- ag = _get_item(self.c.access_groups(), args.ag, "Access Group ID")
- vol = _get_item(self.c.volumes(), args.vol, "volume id")
+ ag = _get_item(self.c.access_groups(), args.ag, "Access Group")
+ vol = _get_item(self.c.volumes(), args.vol, "Volume")
return self.c.volume_unmask(ag, vol)
## Re-sizes a volume
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
size = self._size(args.size)
## Enable a volume
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
self.c.volume_enable(v)
## Disable a volume
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
self.c.volume_disable(v)
## Removes a nfs export
- export = _get_item(self.c.exports(), args.export, "nfs export id")
+ export = _get_item(self.c.exports(), args.export, "NFS Export")
self.c.export_remove(export)
## Exports a file system as a NFS export
- fs = _get_item(self.c.fs(), args.fs, "file system id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
# Check to see if we have some type of access specified
if len(args.rw_host) == 0 \
## Displays volume dependants.
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
rc = self.c.volume_child_dependency(v)
out(rc)
## Removes volume dependants.
- v = _get_item(self.c.volumes(), args.vol, "volume id")
+ v = _get_item(self.c.volumes(), args.vol, "Volume")
self._wait_for_it("volume-dependant-rm",
self.c.volume_child_dependency_rm(v), None)
## Displays file system dependants
- fs = _get_item(self.c.fs(), args.fs, "file system id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
rc = self.c.fs_child_dependency(fs, args.file)
out(rc)
## Removes file system dependants
- fs = _get_item(self.c.fs(), args.fs, "file system id")
+ fs = _get_item(self.c.fs(), args.fs, "File System")
self._wait_for_it("fs-dependants-rm",
self.c.fs_child_dependency_rm(fs,
args.file),
--
Ma Shimiao
Development Dept.I
Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
Gris Ge
2015-02-10 09:31:40 UTC
Permalink
Ping.
Post by Ma Shimiao
'Access Gruop ID with id ag1 not found' will be printed.
Or 'access group id with id ag1 not found' will be printed.
'Access Gruop with ID ag1 not found' will be printed.
Messages will be more clear and have the same format.
Hi Ma Shimiao,

Sorry for the late, both Tony and I were in a meeting last week and I
am still struggling with jet lag.

I will review the patches ASAP.

Thanks for the patches.

Best regards.
--
Gris Ge
Tony Asleson
2015-02-10 21:42:31 UTC
Permalink
Hi Ma,

This patch and the other you submitted looks good to me, sorry we didn't
review it sooner.

At the moment sf.net is having technical difficulties. I will commit
when it is available.

Thanks,
Tony
Post by Gris Ge
Ping.
Post by Ma Shimiao
'Access Gruop ID with id ag1 not found' will be printed.
Or 'access group id with id ag1 not found' will be printed.
'Access Gruop with ID ag1 not found' will be printed.
Messages will be more clear and have the same format.
Hi Ma Shimiao,
Sorry for the late, both Tony and I were in a meeting last week and I
am still struggling with jet lag.
I will review the patches ASAP.
Thanks for the patches.
Best regards.
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Libstoragemgmt-devel mailing list
https://lists.sourceforge.net/lists/listinfo/libstoragemgmt-devel
Ma Shimiao
2015-02-11 05:10:57 UTC
Permalink
Hi Tony,
Post by Tony Asleson
Hi Ma,
This patch and the other you submitted looks good to me, sorry we didn't
review it sooner.
At the moment sf.net is having technical difficulties. I will commit
when it is available.
Got it.

Thanks a lot
Post by Tony Asleson
Thanks,
Tony
Post by Gris Ge
Ping.
Post by Ma Shimiao
'Access Gruop ID with id ag1 not found' will be printed.
Or 'access group id with id ag1 not found' will be printed.
'Access Gruop with ID ag1 not found' will be printed.
Messages will be more clear and have the same format.
Hi Ma Shimiao,
Sorry for the late, both Tony and I were in a meeting last week and I
am still struggling with jet lag.
I will review the patches ASAP.
Thanks for the patches.
Best regards.
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Libstoragemgmt-devel mailing list
https://lists.sourceforge.net/lists/listinfo/libstoragemgmt-devel
------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Libstoragemgmt-devel mailing list
https://lists.sourceforge.net/lists/listinfo/libstoragemgmt-devel
--
Ma Shimiao
Development Dept.I
Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
Ma Shimiao
2015-02-11 05:09:15 UTC
Permalink
Hi Gris,
Post by Gris Ge
Ping.
Post by Ma Shimiao
'Access Gruop ID with id ag1 not found' will be printed.
Or 'access group id with id ag1 not found' will be printed.
'Access Gruop with ID ag1 not found' will be printed.
Messages will be more clear and have the same format.
Hi Ma Shimiao,
Sorry for the late, both Tony and I were in a meeting last week and I
am still struggling with jet lag.
Ah, Sorry for bothering...
Post by Gris Ge
I will review the patches ASAP.
Thanks a lot.

Best regards
Post by Gris Ge
Thanks for the patches.
Best regards.
--
Ma Shimiao
Development Dept.I
Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
Loading...