示例#1
0
    def read(self, istream):
        super(DiscoverVersionsResponsePayload, self).read(istream)
        tstream = BytearrayStream(istream.read(self.length))

        while(self.is_tag_next(Tags.PROTOCOL_VERSION, tstream)):
            protocol_version = ProtocolVersion()
            protocol_version.read(tstream)
            self.protocol_versions.append(protocol_version)

        self.is_oversized(tstream)
        self.validate()
示例#2
0
文件: server.py 项目: adityacb/PyKMIP
 def __init__(self):
     super(KMIPImpl, self).__init__()
     self.logger = logging.getLogger(__name__)
     self.key_factory = KeyFactory()
     self.secret_factory = SecretFactory()
     self.attribute_factory = AttributeFactory()
     self.repo = MemRepo()
     self.protocol_versions = [
             ProtocolVersion.create(1, 1),
             ProtocolVersion.create(1, 0)
     ]
示例#3
0
    def _test_read(self, stream, major, minor):
        protocol_version = ProtocolVersion()
        protocol_version.read(stream)

        msg = "protocol version major decoding mismatch"
        msg += "; expected {0}, received {1}".format(
            major, protocol_version.protocol_version_major)
        self.assertEqual(major, protocol_version.protocol_version_major, msg)

        msg = "protocol version minor decoding mismatch"
        msg += "; expected {0}, received {1}".format(
            minor, protocol_version.protocol_version_minor)
        self.assertEqual(minor, protocol_version.protocol_version_minor, msg)
示例#4
0
    def _test_write(self, stream_expected, major, minor):
        stream_observed = BytearrayStream()
        protocol_version = ProtocolVersion(major, minor)
        protocol_version.write(stream_observed)

        length_expected = len(stream_expected)
        length_observed = len(stream_observed)

        msg = "encoding lengths not equal"
        msg += "; expected {0}, received {1}".format(
            length_expected, length_observed)
        self.assertEqual(length_expected, length_observed, msg)

        msg = "encoding mismatch"
        msg += ";\nexpected:\n{0}\nreceived:\n{1}".format(
            stream_expected, stream_observed)

        self.assertEqual(stream_expected, stream_observed, msg)
示例#5
0
    def _build_request_message(self, credential, batch_items):
        protocol_version = ProtocolVersion.create(1, 1)

        authentication = None
        if credential is not None:
            authentication = Authentication(credential)

        batch_count = BatchCount(len(batch_items))
        req_header = messages.RequestHeader(protocol_version=protocol_version,
                                            authentication=authentication,
                                            batch_count=batch_count)

        return messages.RequestMessage(request_header=req_header,
                                       batch_items=batch_items)
示例#6
0
    def setUp(self):
        super(TestDiscoverVersionsRequestPayload, self).setUp()

        self.protocol_versions_empty = list()
        self.protocol_versions_one = list()
        self.protocol_versions_one.append(ProtocolVersion.create(1, 0))
        self.protocol_versions_two = list()
        self.protocol_versions_two.append(ProtocolVersion.create(1, 1))
        self.protocol_versions_two.append(ProtocolVersion.create(1, 0))

        self.encoding_empty = utils.BytearrayStream((
            b'\x42\x00\x79\x01\x00\x00\x00\x00'))
        self.encoding_one = utils.BytearrayStream((
            b'\x42\x00\x79\x01\x00\x00\x00\x28\x42\x00\x69\x01\x00\x00\x00\x20'
            b'\x42\x00\x6A\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00'
            b'\x42\x00\x6B\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00'
            b'\x00'))
        self.encoding_two = utils.BytearrayStream((
            b'\x42\x00\x79\x01\x00\x00\x00\x50\x42\x00\x69\x01\x00\x00\x00\x20'
            b'\x42\x00\x6A\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00'
            b'\x42\x00\x6B\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00'
            b'\x42\x00\x69\x01\x00\x00\x00\x20\x42\x00\x6A\x02\x00\x00\x00\x04'
            b'\x00\x00\x00\x01\x00\x00\x00\x00\x42\x00\x6B\x02\x00\x00\x00\x04'
            b'\x00\x00\x00\x00\x00\x00\x00\x00'))
示例#7
0
    def setUp(self):
        super(TestDiscoverVersionsResponsePayload, self).setUp()

        self.protocol_versions_empty = list()
        self.protocol_versions_one = list()
        self.protocol_versions_one.append(ProtocolVersion.create(1, 0))
        self.protocol_versions_two = list()
        self.protocol_versions_two.append(ProtocolVersion.create(1, 1))
        self.protocol_versions_two.append(ProtocolVersion.create(1, 0))

        self.encoding_empty = utils.BytearrayStream(
            (b'\x42\x00\x7C\x01\x00\x00\x00\x00'))
        self.encoding_one = utils.BytearrayStream((
            b'\x42\x00\x7C\x01\x00\x00\x00\x28\x42\x00\x69\x01\x00\x00\x00\x20'
            b'\x42\x00\x6A\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00'
            b'\x42\x00\x6B\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00'
            b'\x00'))
        self.encoding_two = utils.BytearrayStream((
            b'\x42\x00\x7C\x01\x00\x00\x00\x50\x42\x00\x69\x01\x00\x00\x00\x20'
            b'\x42\x00\x6A\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00'
            b'\x42\x00\x6B\x02\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x00'
            b'\x42\x00\x69\x01\x00\x00\x00\x20\x42\x00\x6A\x02\x00\x00\x00\x04'
            b'\x00\x00\x00\x01\x00\x00\x00\x00\x42\x00\x6B\x02\x00\x00\x00\x04'
            b'\x00\x00\x00\x00\x00\x00\x00\x00'))
示例#8
0
    def _test_create(self, major, minor):
        protocol_version = ProtocolVersion.create(major, minor)

        if major is None:
            expected = ProtocolVersion.ProtocolVersionMajor()
        else:
            expected = ProtocolVersion.ProtocolVersionMajor(major)

        self.assertEqual(expected, protocol_version.protocol_version_major)

        if minor is None:
            expected = ProtocolVersion.ProtocolVersionMinor()
        else:
            expected = ProtocolVersion.ProtocolVersionMinor(minor)

        self.assertEqual(expected, protocol_version.protocol_version_minor)
示例#9
0
    def _build_request_message(self, credential, batch_items):
        protocol_version = ProtocolVersion.create(1, 2)

        if credential is None:
            credential = self._build_credential()

        authentication = None
        if credential is not None:
            authentication = Authentication(credential)

        batch_count = BatchCount(len(batch_items))
        req_header = messages.RequestHeader(protocol_version=protocol_version,
                                            authentication=authentication,
                                            batch_count=batch_count)

        return messages.RequestMessage(request_header=req_header,
                                       batch_items=batch_items)
示例#10
0
 def test_build_discover_versions_batch_item_with_input(self):
     protocol_versions = [ProtocolVersion.create(1, 0)]
     self._test_build_discover_versions_batch_item(protocol_versions)
示例#11
0
if __name__ == '__main__':
    logger = utils.build_console_logger(logging.INFO)

    # Build and parse arguments
    parser = utils.build_cli_parser(Operation.DISCOVER_VERSIONS)
    opts, args = parser.parse_args(sys.argv[1:])

    username = opts.username
    password = opts.password
    config = opts.config

    protocol_versions = list()
    if opts.protocol_versions is not None:
        for version in re.split(',| ', opts.protocol_versions):
            mm = re.split('\.', version)
            protocol_versions.append(ProtocolVersion(int(mm[0]), int(mm[1])))

    # Build the client and connect to the server
    client = KMIPProxy(config=config)
    client.open()

    result = client.discover_versions(protocol_versions=protocol_versions)
    client.close()

    # Display operation results
    logger.info('discover_versions() result status: {0}'.format(
        result.result_status.value))

    if result.result_status.value == ResultStatus.SUCCESS:
        protocol_versions = result.protocol_versions
        if isinstance(protocol_versions, list):
示例#12
0
    def test_repr(self):
        a = ProtocolVersion.create(1, 0)

        self.assertEqual("1.0", "{0}".format(a))
示例#13
0
    def test_init_with_args(self):
        major = ProtocolVersion.ProtocolVersionMajor(1)
        minor = ProtocolVersion.ProtocolVersionMinor(0)

        self._test_init(major, minor)
示例#14
0
if __name__ == '__main__':
    logger = utils.build_console_logger(logging.INFO)

    # Build and parse arguments
    parser = utils.build_cli_parser(Operation.DISCOVER_VERSIONS)
    opts, args = parser.parse_args(sys.argv[1:])

    username = opts.username
    password = opts.password
    config = opts.config

    protocol_versions = list()
    if opts.protocol_versions is not None:
        for version in re.split(',| ', opts.protocol_versions):
            mm = re.split('\.', version)
            protocol_versions.append(ProtocolVersion.create(int(mm[0]),
                                                            int(mm[1])))

    # Build the client and connect to the server
    client = KMIPProxy(config=config)
    client.open()

    result = client.discover_versions(protocol_versions=protocol_versions)
    client.close()

    # Display operation results
    logger.info('discover_versions() result status: {0}'.format(
        result.result_status.value))

    if result.result_status.value == ResultStatus.SUCCESS:
        protocol_versions = result.protocol_versions
        if isinstance(protocol_versions, list):
示例#15
0
    def test_not_equal_on_type_mismatch(self):
        a = ProtocolVersion.create(1, 0)
        b = "invalid"

        self.assertTrue(a != b)
示例#16
0
    def test_not_equal_on_equal(self):
        a = ProtocolVersion.create(1, 0)
        b = ProtocolVersion.create(1, 0)

        self.assertFalse(a != b)
示例#17
0
 def test_process_discover_versions_batch_item_with_results(self):
     protocol_versions = [ProtocolVersion.create(1, 0)]
     self._test_process_discover_versions_batch_item(protocol_versions)
示例#18
0
 def test_process_discover_versions_batch_item_with_results(self):
     protocol_versions = [ProtocolVersion.create(1, 0)]
     self._test_process_discover_versions_batch_item(protocol_versions)
示例#19
0
 def test_build_discover_versions_batch_item_with_input(self):
     protocol_versions = [ProtocolVersion.create(1, 0)]
     self._test_build_discover_versions_batch_item(protocol_versions)
示例#20
0
    def test_equal_on_equal(self):
        a = ProtocolVersion.create(1, 0)
        b = ProtocolVersion.create(1, 0)

        self.assertTrue(a == b)
示例#21
0
    def test_equal_on_equal(self):
        a = ProtocolVersion.create(1, 0)
        b = ProtocolVersion.create(1, 0)

        self.assertTrue(a == b)
示例#22
0
    def test_not_equal_on_not_equal(self):
        a = ProtocolVersion.create(1, 0)
        b = ProtocolVersion.create(0, 1)

        self.assertTrue(a != b)
示例#23
0
    def test_not_equal_on_equal(self):
        a = ProtocolVersion.create(1, 0)
        b = ProtocolVersion.create(1, 0)

        self.assertFalse(a != b)
示例#24
0
    def test_repr(self):
        a = ProtocolVersion.create(1, 0)

        self.assertEqual("1.0", "{0}".format(a))
示例#25
0
    def test_not_equal_on_not_equal(self):
        a = ProtocolVersion.create(1, 0)
        b = ProtocolVersion.create(0, 1)

        self.assertTrue(a != b)
示例#26
0
    def test_not_equal_on_type_mismatch(self):
        a = ProtocolVersion.create(1, 0)
        b = "invalid"

        self.assertTrue(a != b)
示例#27
0
    logger = utils.build_console_logger(logging.INFO)

    # Build and parse arguments
    parser = utils.build_cli_parser(Operation.DISCOVER_VERSIONS)
    opts, args = parser.parse_args(sys.argv[1:])

    username = opts.username
    password = opts.password
    config = opts.config

    protocol_versions = list()
    if opts.protocol_versions is not None:
        for version in re.split(',| ', opts.protocol_versions):
            mm = re.split('\.', version)
            protocol_versions.append(
                ProtocolVersion.create(int(mm[0]), int(mm[1])))

    # Build the client and connect to the server
    client = KMIPProxy(config=config)
    client.open()

    result = client.discover_versions(protocol_versions=protocol_versions)
    client.close()

    # Display operation results
    logger.info('discover_versions() result status: {0}'.format(
        result.result_status.value))

    if result.result_status.value == ResultStatus.SUCCESS:
        protocol_versions = result.protocol_versions
        if isinstance(protocol_versions, list):