예제 #1
0
파일: client.py 프로젝트: efeg/HyperDex
 def add_space(self, spacedesc):
     try:
         parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
         space = parser.parseString(spacedesc)[0]
     except ValueError as e:
         raise MalformedSpaceDescription(str(e))
     except pyparsing.ParseException as e:
         raise MalformedSpaceDescription(str(e))
     return self._send_msg('add-space', spacedesc)
예제 #2
0
파일: client.py 프로젝트: Meai1/HyperDex
def add_space(args):
    data = sys.stdin.read()
    try:
        parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
        space = parser.parseString(data)[0]
    except ValueError as e:
        print str(e)
        return 1
    except pyparsing.ParseException as e:
        print str(e)
        return 1
    return send_msg(args.host, args.port, 'add-space', data)
예제 #3
0
파일: client.py 프로젝트: Meai1/HyperDex
def validate_space(args):
    data = sys.stdin.read()
    try:
        parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
        space = parser.parseString(data)[0]
    except ValueError as e:
        print str(e)
        return 1
    except pyparsing.ParseException as e:
        print str(e)
        return 1
    return 0
예제 #4
0
def add_space(args):
    data = sys.stdin.read()
    try:
        parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
        space = parser.parseString(data)[0]
    except ValueError as e:
        print str(e)
        return 1
    except pyparsing.ParseException as e:
        print str(e)
        return 1
    return send_msg(args.host, args.port, 'add-space', data)
예제 #5
0
def validate_space(args):
    data = sys.stdin.read()
    try:
        parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
        space = parser.parseString(data)[0]
    except ValueError as e:
        print str(e)
        return 1
    except pyparsing.ParseException as e:
        print str(e)
        return 1
    return 0
예제 #6
0
파일: client.py 프로젝트: Jsalim/HyperDex
def add_space(args):
    data = sys.stdin.read()
    try:
        parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
        space = parser.parseString(data)[0]
    except ValueError as e:
        print str(e)
        return 1
    except pyparsing.ParseException as e:
        print str(e)
        return 1
    text = 'add space\n{0}\n.\n'.format(data)
    return send_text(args.host, args.port, text)
예제 #7
0
 def add_space(self, data):
     try:
         parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
         space = parser.parseString(data)[0]
         self._coordinator.add_space(space)
     except ValueError as e:
         return self._fail(str(e))
     except pyparsing.ParseException as e:
         return self._fail(str(e))
     except Coordinator.DuplicateSpace as e:
         return self._fail("Space already exists")
     self.outgoing += 'SUCCESS\n'
     logging.info("created new space \"{0}\"".format(space.name))
예제 #8
0
 def add_space(self, data):
     try:
         parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
         space = parser.parseString(data)[0]
         self._coordinator.add_space(space)
     except ValueError as e:
         return self._fail(str(e))
     except pyparsing.ParseException as e:
         return self._fail(str(e))
     except Coordinator.DuplicateSpace as e:
         return self._fail("Space already exists")
     except Coordinator.InvalidState as e:
         return self._fail("Coordinator state does not allow handling this request")
     except Coordinator.ServiceLevelNotMet as e:
         return self._fail("Service level must be met before adding spaces (need more daemons)")
     self.outgoing += json.dumps({self._currreq:'SUCCESS'}) + '\n'
     logging.info("created new space \"{0}\"".format(space.name))
예제 #9
0
 def add_space(self, data):
     try:
         parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
         space = parser.parseString(data)[0]
         self._coordinator.add_space(space)
     except ValueError as e:
         return self._fail(str(e))
     except pyparsing.ParseException as e:
         return self._fail(str(e))
     except Coordinator.DuplicateSpace as e:
         return self._fail("Space already exists")
     except Coordinator.InvalidState as e:
         return self._fail(
             "Coordinator state does not allow handling this request")
     except Coordinator.ServiceLevelNotMet as e:
         return self._fail(
             "Service level must be met before adding spaces (need more daemons)"
         )
     self.outgoing += json.dumps({self._currreq: 'SUCCESS'}) + '\n'
     logging.info("created new space \"{0}\"".format(space.name))
예제 #10
0
파일: json.py 프로젝트: awesome/HyperDex
def runtest(lang, filename):
    f = open(filename)
    spacedesc = f.readline()
    space = None
    if spacedesc.startswith('#'):
        spacedesc = spacedesc[1:].strip()
        try:
            parser = (hypercoordinator.parser.space + pyparsing.stringEnd)
            space = parser.parseString(spacedesc)[0]
        except ValueError as e:
            space = None
        except pyparsing.ParseException as e:
            space = None
    if space is None:
        print('could not find valid space description; aborting test')
        return -1
    with hypertest.HyperDexCoordinator() as coord:
        time.sleep(0.1)
        with hypertest.HyperDexDaemon(host=coord.bindto(), port=coord.host_port()) as daemon:
            time.sleep(0.1)
            c = hypercoordinator.client.Client(coord.bindto(), coord.control_port())
            while c.count_servers() < 1:
                time.sleep(0.1)
            print('JSON TEST:  server up')
            c.add_space(spacedesc)
            print('JSON TEST:  space created')
            while not c.is_stable():
                time.sleep(0.1)
            print('JSON TEST:  stabilized')
            args = ['hyperdex-json-bridge-' + lang,
                    '--host', coord.bindto(), '--port', str(coord.host_port())]
            f.seek(0)
            pipe = subprocess.Popen(args, stdin=f)
            f.close()
            print('JSON TEST:  bridge created')
            pipe.wait()
            print('JSON TEST:  bridge exited', pipe.returncode)
            return pipe.returncode