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()
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) ]
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)
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)
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)
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'))
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'))
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)
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)
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)
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):
def test_repr(self): a = ProtocolVersion.create(1, 0) self.assertEqual("1.0", "{0}".format(a))
def test_init_with_args(self): major = ProtocolVersion.ProtocolVersionMajor(1) minor = ProtocolVersion.ProtocolVersionMinor(0) self._test_init(major, minor)
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):
def test_not_equal_on_type_mismatch(self): a = ProtocolVersion.create(1, 0) b = "invalid" self.assertTrue(a != b)
def test_not_equal_on_equal(self): a = ProtocolVersion.create(1, 0) b = ProtocolVersion.create(1, 0) self.assertFalse(a != b)
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)
def test_equal_on_equal(self): a = ProtocolVersion.create(1, 0) b = ProtocolVersion.create(1, 0) self.assertTrue(a == b)
def test_not_equal_on_not_equal(self): a = ProtocolVersion.create(1, 0) b = ProtocolVersion.create(0, 1) self.assertTrue(a != b)
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):