pull/420/head
midoks 2 years ago
parent f5859626a9
commit 637da92834
  1. 63
      plugins/docker/index.py
  2. 87
      plugins/docker/js/docker.js

@ -54,7 +54,7 @@ def getInitDTpl():
def getArgs(): def getArgs():
args = sys.argv[3:] args = sys.argv[2:]
tmp = {} tmp = {}
args_len = len(args) args_len = len(args)
@ -73,6 +73,14 @@ def getArgs():
return tmp return tmp
def checkArgs(self, data, ck=[]):
for i in range(len(ck)):
print(data[i])
if not ck[i] in data:
return (False, mw.returnJson(False, '参数:(' + ck[i] + ')没有!'))
return (True, mw.returnJson(True, 'ok'))
def status(): def status():
data = mw.execShell( data = mw.execShell(
"ps -ef|grep docker |grep -v grep | grep -v python | grep -v mdserver-web | awk '{print $2}'") "ps -ef|grep docker |grep -v grep | grep -v python | grep -v mdserver-web | awk '{print $2}'")
@ -209,10 +217,20 @@ def imageList():
return imageList return imageList
# 登陆验证 def imageListData():
try:
ilist = imageList()
except Exception as e:
return mw.returnJson(False, '未开启Docker')
return mw.returnJson(True, 'ok', ilist)
def dockerLoginCheck(user_name, user_pass, registry): def dockerLoginCheck(user_name, user_pass, registry):
login_test = mw.execShell('docker login -u=%s -p %s %s' % # 登陆验证
(user_name, user_pass, registry)) cmd = 'docker login -u=%s -p %s %s' % (user_name, user_pass, registry)
# print(cmd)
login_test = mw.execShell(cmd)
# print(login_test)
ret = 'required$|Error' ret = 'required$|Error'
ret2 = re.findall(ret, login_test[-1]) ret2 = re.findall(ret, login_test[-1])
if len(ret2) == 0: if len(ret2) == 0:
@ -221,12 +239,35 @@ def dockerLoginCheck(user_name, user_pass, registry):
return False return False
def imageListData(): def dockerLogin():
try: args = getArgs()
ilist = imageList()
except Exception as e: # print(args)
return mw.returnJson(False, '未开启Docker') data = checkArgs(args, ['user', 'passwd', 'hub_name',
return mw.returnJson(True, 'ok', ilist) 'namespace', 'registry', 'repository_name'])
if not data[0]:
return data[1]
user_name = args['user']
user_pass = args['passwd']
registry = args['registry']
hub_name = args['hub_name']
namespace = args['namespace']
repository_name = args['repository_name']
ret_status = dockerLoginCheck(user_name, user_pass, registry)
path = getServerDir()
if ret_status:
ret = {}
ret['user_name'] = user_name
ret['user_pass'] = user_pass
ret['registry'] = registry
ret['hub_name'] = hub_name
ret['namespace'] = namespace
ret['repository_name'] = repository_name
mw.writeFile(path + '/user.json', json.dumps(ret))
return mw.returnJson(True, '成功登录!')
return mw.returnJson(False, '登录失败!')
def runLog(): def runLog():
@ -259,5 +300,7 @@ if __name__ == "__main__":
print(conListData()) print(conListData())
elif func == 'image_list': elif func == 'image_list':
print(imageListData()) print(imageListData())
elif func == 'docker_login':
print(dockerLogin())
else: else:
print('error') print('error')

@ -172,11 +172,6 @@ function dockerImageList(){
} }
function loginDockerImages(obj){
console.log(obj);
}
// login // login
function repoLogin(){ function repoLogin(){
var _option1= ""; var _option1= "";
@ -186,7 +181,7 @@ function repoLogin(){
} }
var layer_index = layer.open({ var layer_index = layer.open({
type: 1, type: 1,
title: "Login to Repository", title: "登录到存储库",
area: '450px', area: '450px',
closeBtn: 2, closeBtn: 2,
shadeClose: false, shadeClose: false,
@ -204,48 +199,50 @@ function repoLogin(){
'</div>'+ '</div>'+
'</div>', '</div>',
success:function(){ success:function(){
setTimeout(function(){ $('[name="dtype"]').change(function(e){
$('[name="dtype"]').change(function(e){ var docker_type = $(this).val();
var docker_type = $(this).val(); if(docker_type == 'Other Repository'){
if(docker_type == 'Other Repository'){ $('.docker_content .line').show();
$('.docker_content .line').show(); }else{
}else{ $('.docker_content .line').filter(":lt(3)").show().end().filter(":gt(4)").hide();
$('.docker_content .line').filter(":lt(3)").show().end().filter(":gt(4)").hide(); }
} });
}); $('.login_aliyun').click(function(){
$('.login_aliyun').click(function(){ var user = $('[name="user"]').val(),
var user = $('[name="user"]').val(), passwd = $('[name="passwd"]').val(),
passwd = $('[name="passwd"]').val(), registry = $('[name="registry"]').val(),
registry = $('[name="registry"]').val(), name = $('[name="ctm_name"]').val(),
name = $('[name="ctm_name"]').val(), hub_name = $('[name="hub_name"]').val(),
hub_name = $('[name="hub_name"]').val(), namespace = $('[name="namespace"]').val();
namespace = $('[name="namespace"]').val();
if($('[name="dtype"]').val() == 'Docker Repository'){ var args = {
loginDockerImages({ user:user,
user:user, passwd:passwd,
passwd:passwd, registry:'',
registry:'', repository_name:name,
repository_name:name, hub_name:hub_name,
hub_name:hub_name, namespace:namespace
namespace:namespace };
}); if($('[name="dtype"]').val() == 'Docker Repository'){
}else{ args.registry = '';
loginDockerImages({ }else{
user:user, args.registry = registry;
passwd:passwd, }
registry:registry,
repository_name:name, console.log(obj);
hub_name:hub_name, dPost('docker_login', '', args, function(rdata){
namespace:namespace var rdata = $.parseJSON(rdata.data);
}); console.log(rdata);
} layer.msg(rdata.msg,{icon:rdata.status?1:2});
// if(res.status){
// docker.get_repository_list();
// // docker.get_login_stuats();
// }
}); });
},500); });
} }
}); });
} }

Loading…
Cancel
Save