archipelago: Add wrapper function to get segment object
authorFilippos Giannakos <philipgian@grnet.gr>
Tue, 23 Jul 2013 09:26:58 +0000 (12:26 +0300)
committerFilippos Giannakos <philipgian@grnet.gr>
Tue, 23 Jul 2013 09:26:58 +0000 (12:26 +0300)
xseg/tools/archipelago/archipelago/archipelago.py
xseg/tools/archipelago/archipelago/cli.py
xseg/tools/archipelago/archipelago/common.py
xseg/tools/archipelago/archipelago/vlmc.py

index 3f1b7e1..f794bcd 100755 (executable)
@@ -196,7 +196,7 @@ def start(user=False, role=None, cli=False, **kwargs):
         time.sleep(0.5)
         make_segdev(cli)
         time.sleep(0.5)
-        segment.create()
+        get_segment().create()
         time.sleep(0.5)
         start_peers(peers, cli)
         load_module(xsegbd, xsegbd_args)
index 549e663..6d10e4d 100755 (executable)
@@ -56,7 +56,8 @@ def vlmc_parser():
                                help='create from snapshot')
     create_parser.add_argument('-p', '--pool', type=str, nargs='?',
                                help='for backwards compatiblity with rbd')
-    create_parser.add_argument('-c', '--contaddr', type=str, nargs='?',
+    create_parser.add_argument('-ca', '--contaddr',  action='store_true',
+                               default=False,
                                help='specify the snapshot as content addressable')
     create_parser.add_argument('name', type=str,  help='volume/device name')
     create_parser.set_defaults(func=vlmc.create)
index 64d412b..bc30697 100755 (executable)
@@ -427,7 +427,8 @@ class Segment(object):
 
     def get_spec(self):
         if not self.spec:
-            params = [self.type, self.name, self.ports, self.size, self.alignment]
+            params = [self.type, self.name, str(self.ports), str(self.size),
+                      str(self.alignment)]
             self.spec = ':'.join(params).encode()
         return self.spec
 
@@ -535,11 +536,13 @@ def check_conf():
                       xseg_ports)
 
     xsegbd_range = config['XSEGBD_END'] - config['XSEGBD_START']
-    vlmcd_range = peers['vlmcd'].portno_end - peers['vlmcd'].portno_end
+    vlmcd_range = peers['vlmcd'].portno_end - peers['vlmcd'].portno_start
     if xsegbd_range > vlmcd_range:
         raise Error("Xsegbd port range must be smaller that vlmcd port range")
     return True
 
+def get_segment():
+    return segment
 
 def construct_peers():
     return peers
@@ -593,7 +596,7 @@ def exclusive(get_port=False):
 
             acquired_locks[lock_file] += 1
             try:
-                r = fn(*args, port=port, **kwargs)
+                r = fn(*args, **kwargs)
             finally:
                 acquired_locks[lock_file] -= 1
                 depth = acquired_locks[lock_file]
index 1ce873d..67c20b8 100755 (executable)
@@ -100,7 +100,7 @@ def is_mapped(volume):
 
 
 @exclusive(get_port=True)
-def create(name, size=None, snap=None, cont_addr=False, **kwargs):
+def create(name, size=None, snap=None, contaddr=False, **kwargs):
     if len(name) < 6:
         raise Error("Name should have at least len 6")
     if size is None and snap is None:
@@ -115,10 +115,10 @@ def create(name, size=None, snap=None, cont_addr=False, **kwargs):
 
     ret = False
     vtool_port = get_vtool_port()
-    xseg_ctx = Xseg_ctx(segment.get_spec(), vtool_port)
+    xseg_ctx = Xseg_ctx(get_segment(), vtool_port)
     mport = peers['mapperd'].portno_start
     req = Request.get_clone_request(xseg_ctx, mport, snap, clone=name,
-            clone_size=size, cont_addr=cont_addr)
+            clone_size=size, cont_addr=contaddr)
     req.submit()
     req.wait()
     ret = req.success()
@@ -134,7 +134,7 @@ def snapshot(name, snap_name=None, cli=False, **kwargs):
         raise Error("Name should have at least len 6")
 
     vtool_port = get_vtool_port()
-    xseg_ctx = Xseg_ctx(segment.get_spec(), vtool_port)
+    xseg_ctx = Xseg_ctx(get_segment(), vtool_port)
     vport = peers['vlmcd'].portno_start
     req = Request.get_snapshot_request(xseg_ctx, vport, name, snap=snap_name)
     req.submit()
@@ -154,7 +154,7 @@ def hash(name, cli=False, **kwargs):
         raise Error("Name should have at least len 6")
 
     vtool_port = get_vtool_port()
-    xseg_ctx = Xseg_ctx(segment.get_spec(), vtool_port)
+    xseg_ctx = Xseg_ctx(get_segment(), vtool_port)
     mport = peers['mapperd'].portno_start
     req = Request.get_hash_request(xseg_ctx, mport, name)
     req.submit()
@@ -198,7 +198,7 @@ def remove(name, **kwargs):
 
     ret = False
     vtool_port = get_vtool_port()
-    xseg_ctx = Xseg_ctx(segment.get_spec(), vtool_port)
+    xseg_ctx = Xseg_ctx(get_segment(), vtool_port)
     mport = peers['mapperd'].portno_start
     req = Request.get_delete_request(xseg_ctx, mport, name)
     req.submit()
@@ -298,7 +298,7 @@ def lock(name, cli=False, **kwargs):
     name = ARCHIP_PREFIX + name
 
     vtool_port = get_vtool_port()
-    xseg_ctx = Xseg_ctx(segment.get_spec(), vtool_port)
+    xseg_ctx = Xseg_ctx(get_segment(), vtool_port)
     mbport = peers['blockerm'].portno_start
     ret = Request.get_acquire_request(xseg_ctx, mbport, name)
     req.submit()
@@ -319,7 +319,7 @@ def unlock(name, force=False, cli=False, **kwargs):
     name = ARCHIP_PREFIX + name
 
     vtool_port = get_vtool_port()
-    xseg_ctx = Xseg_ctx(segment.get_spec(), vtool_port)
+    xseg_ctx = Xseg_ctx(get_segment(), vtool_port)
     mbport = peers['blockerm'].portno_start
     req = Request.get_release_request(xseg_ctx, mbport, name, force=force)
     req.submit()
@@ -339,7 +339,7 @@ def open_volume(name, cli=False, **kwargs):
 
     ret = False
     vtool_port = get_vtool_port()
-    xseg_ctx = Xseg_ctx(segment.get_spec(), vtool_port)
+    xseg_ctx = Xseg_ctx(get_segment(), vtool_port)
     vport = peers['vlmcd'].portno_start
     ret = Request.get_open_request(xseg_ctx, vport, name)
     req.submit()
@@ -359,7 +359,7 @@ def close_volume(name, cli=False, **kwargs):
 
     ret = False
     vtool_port = get_vtool_port()
-    xseg_ctx = Xseg_ctx(segment.get_spec(), vtool_port)
+    xseg_ctx = Xseg_ctx(get_segment(), vtool_port)
     vport = peers['vlmcd'].portno_start
     ret = Request.get_close_request(xseg_ctx, vport, name)
     req.submit()
@@ -379,7 +379,7 @@ def info(name, cli=False, **kwargs):
 
     ret = False
     vtool_port = get_vtool_port()
-    xseg_ctx = Xseg_ctx(segment.get_spec(), vtool_port)
+    xseg_ctx = Xseg_ctx(get_segment(), vtool_port)
     mport = peers['mapperd'].portno_start
     req = Request.get_info_request(xseg_ctx, mport, name)
     req.submit()