Skip to content

Commit 17bc276

Browse files
committed
compute ips and update add port
1 parent 567955c commit 17bc276

File tree

4 files changed

+16
-5
lines changed

4 files changed

+16
-5
lines changed

src/master/taskmgr.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ def __init__(self, configinfo, vnodeinfo, taskinfo, priority, max_size):
4747
def __lt__(self, other):
4848
return self.priority < other.priority
4949

50+
def gen_ips_from_base(self,base_ip):
51+
self.ips = []
52+
for i in range(task.max_size):
53+
self.ips.append(int_to_ip(base_ip + self.task_base_ip + i + 2))
54+
5055
def get_one_resources_need(self):
5156
return self.vnodeinfo.vnode.instance
5257

@@ -219,8 +224,7 @@ def task_processor(self, task, vnodes_workers):
219224
# properties for transactio
220225

221226
self.acquire_task_net(task)
222-
#task.ips = []
223-
#for i in
227+
task.gen_ips_from_base(self.base_ip)
224228
#need to create hosts
225229
[success, gwip] = self.setup_tasknet(task,[w[1] for w in vnodes_workers])
226230
if not success:
@@ -246,7 +250,7 @@ def task_processor(self, task, vnodes_workers):
246250
#if not username in self.user_containers.keys():
247251
#self.user_containers[username] = []
248252
#self.user_containers[username].append(container_name)
249-
ipaddr = int_to_ip(self.base_ip + task.task_base_ip + vid%task.max_size + 2)
253+
ipaddr = task.ips[vid%task.max_size]
250254
brname = "docklet-batch-%s-%s"%(username, taskid)
251255
networkinfo = Network(ipaddr=ipaddr, gateway=gwip, masterip=self.masterip, brname=brname)
252256
vnode.network = networkinfo

src/protos/rpc.proto

+1
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ message VNode {
7676
Instance instance = 2; // 实例配置
7777
repeated Mount mount = 3; // 挂载配置
7878
Network network = 4; //网络配置
79+
string hostname = 5; //主机名
7980
}
8081

8182
message Network {

src/utils/nettools.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ def add_port(bridge, port):
195195
@staticmethod
196196
def add_port_internal(bridge, port):
197197
try:
198-
subprocess.run(['ovs-vsctl', 'add-port', str(bridge), str(port), '--', 'set', 'interface', str(port), 'type=internal'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=False, check=True)
198+
subprocess.run(['ovs-vsctl', '--may-exist', 'add-port', str(bridge), str(port), '--', 'set', 'interface', str(port), 'type=internal'], stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=False, check=True)
199199
return [True, str(port)]
200200
except subprocess.CalledProcessError as suberror:
201201
return [False, "add port failed : %s" % suberror.stdout.decode('utf-8')]

src/worker/taskworker.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from worker import ossmounter
2121
from protos import rpc_pb2, rpc_pb2_grpc
2222
from utils.nettools import netcontrol
23+
from master.network import getip
2324

2425
_ONE_DAY_IN_SECONDS = 60 * 60 * 24
2526
MAX_RUNNING_TIME = _ONE_DAY_IN_SECONDS
@@ -53,6 +54,10 @@ def __init__(self):
5354
logger.info("Get master ip address: %s" % (self.master_ip))
5455
self.master_port = env.getenv('BATCH_MASTER_PORT')
5556

57+
# get worker ip
58+
self.worker_ip = getip(env.getenv('NETWORK_DEVICE'))
59+
logger.info("Worker ip is :%s"%self.worker_ip)
60+
5661
self.imgmgr = imagemgr.ImageMgr()
5762
self.fspath = env.getenv('FS_PREFIX')
5863
self.confpath = env.getenv('DOCKLET_CONF')
@@ -197,7 +202,8 @@ def start_vnode(self, request, context):
197202

198203
logger.info('start container %s success' % lxcname)
199204

200-
netcontrol.setup_gre(brname, masterip)
205+
if masterip != self.worker_ip:
206+
netcontrol.setup_gre(brname, masterip)
201207

202208
#add GPU
203209
[success, msg] = self.add_gpu_device(lxcname,gpu_need)

0 commit comments

Comments
 (0)