2 # Copyright (c) 2019 Erik Schilling
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 from emuvim
.api
.osm
.osm_component_base
import OSMComponentBase
18 from emuvim
.api
.util
.process_utils
import wait_until
21 class Kafka(OSMComponentBase
):
22 def __init__(self
, net
, ip
, zookeeper_ip
, version
='latest', name_prefix
=''):
23 OSMComponentBase
.__init
__(self
)
24 self
.instance
= net
.addDocker(
25 '{}kafka'.format(name_prefix
), ip
=ip
, dimage
='wurstmeister/kafka:%s' % version
,
26 environment
={'KAFKA_ADVERTISED_HOST_NAME': ip
,
27 'KAFKA_ADVERTISED_PORT': '9092',
28 'KAFKA_ZOOKEEPER_CONNECT': '%s:2181' % zookeeper_ip
,
29 'KAFKA_CREATE_TOPICS': 'admin:1:1,ns:1:1,vim_account:1:1,wim_account:1:1,sdn:1:1,nsi:1:1'
33 OSMComponentBase
.start(self
)
34 wait_until('nc -z %s 9092' % self
.instance
.dcinfo
['NetworkSettings']['IPAddress'])