Exemplo n.º 1
0
def test_sms_sender(properties, deliver, channel, twilio_client, message, to, fixed_to):
    config = ConfigManager().configuration
    handler = MessageHandler(**config.get("sms"))
    handler.client = twilio_client
    consumer = MessageConsumer(handler, **config.get("rabbit"))

    consumer._handle_message(channel, deliver, properties, json.dumps({
        "receiver_phones": to,
        "message": message
    }).encode("utf8"))

    twilio_client.messages.create.assert_called_once_with(body=message,
                                                          from_=config.get("sms").get("sender"),
                                                          to=fixed_to)
	def setParams(self):
		ta=FreeCAD.ParamGet('User parameter:Plugins')
		ta.SetString("pluginlist","")
		pluginlist=[]
		for k in self.config.keys():
			if not self.config[k]['status'] == 'ignore':
				t=FreeCAD.ParamGet('User parameter:Plugins/'+k)
				pcm=ConfigManager(k)
				hide=pcm.get('_hide_',False)
				if hide:
					continue
				pluginlist.append(k)
				t.SetString("name",self.config[k]["name"])
				if self.config[k].has_key("author"): t.SetString("author",self.config[k]["author"])
				t.SetString("destination",self.config[k]["destdir"])
				t.SetInt('installed',1)
				itemlist=[]
				if self.config[k].has_key('menuitems'):
					for menu in self.config[k]['menuitems'].keys():
						itemlist.append(menu)
						tm=FreeCAD.ParamGet('User parameter:Plugins/'+k+'/'+menu)
						tm.SetString("exec",self.config[k]['menuitems'][menu]['exec'])
				if self.config[k].has_key('menu'):
					menu=self.config[k]['menu']
					itemlist.append(menu)
					tm=FreeCAD.ParamGet('User parameter:Plugins/'+k+'/'+menu)
					tm.SetString("exec",self.config[k]['exec'])
				ms=";".join(itemlist)
				if ms <>"":
					t.SetString("menulist",ms)
		ps=";".join(pluginlist)
		ta.SetString("pluginlist",ps)
	def __init__(self):
		mcf=''
		config3={}
		try:
			say("pluginmanager config file "+ fn)
			stream = open(fn, 'r').read()
			try:
				z=ConfigManager('')
				fn2=z.get('userconfigfile',"/usr/lib/freecad/Mod/plugins/myconfig.yaml")
				say("pluginmanager userconfig file "+ fn2)
				mcf = open(fn2, 'r').read()
			except:
				sayexc("userconfigfile not available",True)
			all=stream + mcf
			config3 = yaml.load(all)
		#	config3=set_defaults(config3)
		except:
			sayexc("Error in " + fn2,True)
			say("Try only:" + fn)
			config3 = yaml.load(stream)
		config3=set_defaults(config3)
		

		for plin in config3['plugins'].keys():
			for k in config3['plugins'][plin].keys():
				if config3['plugins'][plin][k] and config3['plugins'][plin][k].__class__ == dict:
					print "dict"
					print config3['plugins'][plin][k]
					if os in config3['plugins'][plin][k].keys():
						# replace
						config3['plugins'][plin][k]=config3['plugins'][plin][k][os]
			for att in ['destdir','exec','icon','backup']:
				try:
					config3['plugins'][plin][att]=pathMacro(config3['plugins'][plin][att])
				except:
					sayexc(config3['data'][plin][att])
			if plin=='defaulttest':
				pprint.pprint(config3['plugins'][plin])

		for plin in config3['data'].keys():
			for att in ['destdir','exec','icon','backup']:
				if config3['data'][plin].has_key(att):
					try:
						config3['data'][plin][att]=pathMacro(config3['data'][plin][att])
					except:
						sayexc(config3['data'][plin][att])

		self.config=config3['plugins']
		self.base=config3['base']
		self.config3=config3
		self.keys=self.config.keys
		
		#----------------------------
		if config3.has_key('keys') and config3['keys'].has_key("keyserver"):
			try:
				for ku in config3['keys']['keyserver'].keys():
					yy=transformkeytree(config3['keys']['keyserver'][ku])
					config3['keys']['keyserver'][ku]=yy
			except:
				sayexc()
	def exe_query(self, file_name, serv_name, base_name, db_query):
		conf = ConfigManager("config/" + file_name + ".yaml")
		cnf = conf.get(serv_name)
		conn = cnf["connection"]
		database = cnf["databases"][base_name]

		if conn["type"] == "ssh":
			cmd = self.connect_command_builder(conn, 'no')
			common.conn.send(cmd)
			ans = None
			while ans == None:
				ans = common.conn.get_state()

			status, hostname, db_port = ans.split("_")
			adr = "localhost"

			if status == "ok":  #udało się utworzyć tunel
				self.psycop_query(database["name"], database["user"], conf.get_password(serv_name + '.' + base_name), adr, db_port, db_query)
			else:
				print('--------------------')
				print('Error: Unable to create ssh tunnel')
				print('--------------------')

		elif conn["type"] == "direct":
			self.psycop_query(database["name"], database["user"], conf.get_password(serv_name + '.' + base_name), conn["adress"], conn["remoteport"], db_query)
def create_command(server,perm):
	conf = ConfigManager("config/lista_test.yaml")
	connection =  conf.get(server)["connection"]
	try:
		cmd = connect_command_builder(connection,perm)
	except KeyError:
		cmd = None
	return cmd
	def do_perm(self,arg):
		"Create permament ssh tunnel\n\tUsage:\tperm <list>.<server>\t(make permament tunnel to server)"
		params = arg.split(".")
		conf = ConfigManager("config/"+params[0]+".yaml")
		try:
			connection =  conf.get(params[1])["connection"]
			ret = send_command(self.connect_command_builder(connection,"yes"))
			print (ret)
		except KeePassError as e:
			print("Connecting to" , connection["adress"], "[", e, "]")
def test_email_sender(properties, deliver, channel, server, sender, recipients,
                      subject, message):
    def _build_server():
        return server

    config = ConfigManager().configuration
    handler = MessageHandler(**config.get("smtp"))
    handler._build_server = _build_server
    consumer = MessageConsumer(handler, **config.get("rabbit"))

    consumer._handle_message(
        channel, deliver, properties,
        json.dumps({
            "receiver_emails": recipients,
            "message_html": message,
            "title": subject
        }).encode("utf8"))

    server.sendmail.assert_called_once_with(sender, '*****@*****.**',
                                            ANY)
Exemplo n.º 8
0
 def __init__(self, master, *args):
     QtGui.QWidget.__init__(self, *args)
     self.master = master
     #if hasattr(FreeCAD,"mywidget"):
     #	FreeCAD.mywidget.hide()
     FreeCAD.mywidget = self
     self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
     self.config = master.config
     self.vollabel = QtGui.QLabel('1. Select Packages ...')
     self.vollabel2 = QtGui.QLabel('2. Show Package Info ...')
     self.lab2 = QtGui.QLabel(str(datetime.now()))
     self.vollabel3 = QtGui.QLabel('3. Install/Update ...')
     self.pushButton02 = QtGui.QPushButton()
     self.pushButton02.clicked.connect(self.on_pushButton02_clicked)
     self.pushButton02.setText("Display ")
     self.pushButton03 = QtGui.QPushButton()
     self.pushButton03.clicked.connect(self.on_pushButton03_clicked)
     self.pushButton03.setText("Run")
     self.listWidget = QtGui.QListWidget()
     self.listWidget.setSelectionMode(
         QtGui.QAbstractItemView.MultiSelection)
     kl = self.config.keys()
     say(kl)
     for k in sorted(kl):
         pcm = ConfigManager(k)
         hide = pcm.get('_hide_', False)
         if not self.config[k]['status'] == "ignore" and not hide:
             item = QtGui.QListWidgetItem(k)
             self.listWidget.addItem(item)
     layout = QtGui.QGridLayout()
     self.setStyleSheet(
         "QListWidget,QPushButton {background-color: lightblue;color:brown;} "
     )
     line = 4
     layout.addWidget(self.vollabel, 0, 0)
     line = 3
     layout.addWidget(self.listWidget, line, 0, 1, 4)
     line += 1
     layout.addWidget(self.vollabel2, line, 0)
     line += 1
     layout.addWidget(self.lab2, line, 0)
     line += 1
     layout.addWidget(self.pushButton02, line, 0, 1, 4)
     line += 1
     layout.addWidget(self.vollabel3, line, 0)
     line += 1
     layout.addWidget(self.pushButton03, line, 0, 1, 4)
     line += 1
     line += 1
     self.setLayout(layout)
     self.setWindowTitle("Plugin Loader" + __vers__)
	def do_connect(self, arg):
		"""Create ssh tunnels\n\tUsage:\tconnect\t\t\t(connect using all server lists)
		connect list\t\t(connect using list)
		connect list.server\t(connect to server from list)"""
		if arg == "": # if no args connect to all
			print ("Connect to all")
			ans = input("Are you sure?[NO/yes/info]: ")
			lists = []
			for file in os.listdir("config"):
					if file.endswith(".yaml"):
						list_name = file.title()[:file.rfind(".")]
						lists.append(list_name)

			if ans == "info":
				print ("Lists with servers to connect:")
				for l in lists:
					print(l)
			elif ans == "yes":
				for l in lists:
					print("Connecting(",l,")")
					self.connectList("config/" + l + ".yaml")
			else:
				print("Aborted")

		else:
			params = arg.split(".")
			if len(params) == 1:
				print ("connect list...")
				self.connectList("config/"+params[0]+".yaml")
			elif len(params) == 2:
				print ("connect serv...")
				try:
					conf = ConfigManager("config/"+params[0]+".yaml")
					connection =  conf.get(params[1])["connection"]
					command = self.connect_command_builder(connection,"no")
					try:
						conn.send(command)
						t = None
						while t == None:
							t = conn.get_state()
						print(t)
					except AttributeError as e:
						print("Connection to ssh shepherd error!",e)
				except ConfigManagerError as e:
					print (e)
				except KeePassError as e:
					print("Connecting to" , connection["adress"], "[", e, "]")
				except Exception as e:
					print (e)
			else:
				print ("error")
def test_http_sender_queue(properties, deliver, channel, message, url, format):
    # Add message to queue

    message_raw = {"url": url, "message": message, "format": format}

    config = ConfigManager().configuration
    message_handler = MessageHandler()
    consumer = MessageConsumer(message_handler, **config.get("rabbit"))
    message_handler._send_http_post = MagicMock()

    consumer._handle_message(channel, deliver, properties,
                             json.dumps(message_raw).encode("utf8"))

    assert message_handler._send_http_post.called
	def test5_disconnect(self):
		conf = ConfigManager("config/lista_test.yaml")
		connection =  conf.get("ShouldBeOK")["connection"]
		try:
			cmd = connect_command_builder(connection,"no")
		except KeyError as e:
			self.fail("KeyError" + e)
		ans = send_command(cmd)
		status = ans.split("_")[0]
		if status != "ok":
			self.fail("Unable to create tunnel")
		dc = cmd.split("_")[0] + ":" + cmd.split("_")[4]		
		ans = send_command("clean;" + dc)
		to_find = connection["adress"] + ":" + str(connection["remoteport"])
		self.assertEqual(-1, ans.find(to_find))
Exemplo n.º 12
0
    def gentoolbars(self, workbench='init'):
        global pathMacro
        cf = self.pluginloader.config
        say("gentoolbars ...")
        if self.pluginloader.config3["toolbars"].has_key(workbench):
            # say("toolbars for            ----------------------" + workbench)
            for ky in sorted(
                    self.pluginloader.config3["toolbars"][workbench].keys()):
                #say(ky)
                cma = ConfigManager("__toolbars__/" + workbench + "/" + ky)
                funhide = cma.get("_hide_", False)
                if funhide:
                    say("toolbar ignore item " + ky)
                    continue

                try:
                    mw = FreeCAD.Gui.getMainWindow()
                    mw.toolbar = mw.addToolBar(workbench + ': ' + ky)
                    mw.toolbar.setWindowTitle("Personal " + workbench + ': ' +
                                              ky)
                    #exitAction = QtGui.QAction('Exit 2', FreeCAD.Gui.getMainWindow())
                    #exitAction.setShortcut('.')
                    #exitAction.triggered.connect(QtGui.qApp.quit)
                    #mw.toolbar.addAction(exitAction)
                    mw.toolbar.show()
                    toolbarBox = mw.toolbar
                except Exception:
                    sayexc("exception add Tool Bar")
                for tool in sorted(self.pluginloader.config3["toolbars"]
                                   [workbench][ky].keys()):
                    say(tool)
                    yy = self.pluginloader.config3["toolbars"][workbench][ky][
                        tool]
                    myAction2 = QtGui.QAction(QtGui.QIcon(yy['icon']), tool,
                                              mw)
                    myAction2.setToolTip(tool)
                    try:
                        cmd = yy['exec']
                    except:
                        cmd = "say('" + str(yy) + "')"

                    yy = MyAction2(pathMacro(cmd))
                    myAction2.yy = yy
                    myAction2.triggered.connect(yy.run)
                    toolbarBox.addAction(myAction2)
                toolbarBox.show()
                self.toolbars.append(toolbarBox)
                say(ky + " done")
Exemplo n.º 13
0
	def __init__(self, master,*args):
		QtGui.QWidget.__init__(self, *args)
		self.master=master
		FreeCAD.mywidget=self
		self.setWindowFlags(QtCore.Qt.WindowStaysOnTopHint)
		self.config=master.config
		self.vollabel = QtGui.QLabel('1. Select Packages ...')
		self.vollabel2 = QtGui.QLabel('2. Show Package Info ...')
		self.lab2 = QtGui.QLabel(str(datetime.now()))
		self.vollabel3 = QtGui.QLabel('3. Install/Update ...')
		self.pushButton02 = QtGui.QPushButton()
		self.pushButton02.clicked.connect(self.on_pushButton02_clicked) 
		self.pushButton02.setText("Display ")
		self.pushButton03 = QtGui.QPushButton()
		self.pushButton03.clicked.connect(self.on_pushButton03_clicked) 
		self.pushButton03.setText("Run")
		self.listWidget = QtGui.QListWidget() 
		self.listWidget.setSelectionMode(QtGui.QAbstractItemView.MultiSelection)
		kl=self.config.keys()
		say(kl)
		for k in sorted(kl):
			pcm=ConfigManager(k)
			hide=pcm.get('_hide_',False)
			if not self.config[k]['status'] == "ignore" and not hide:
				item = QtGui.QListWidgetItem(k)
				self.listWidget.addItem(item)
		layout = QtGui.QGridLayout()
		self.setStyleSheet("QListWidget,QPushButton {background-color: lightblue;color:brown;} ")
		line=4
		layout.addWidget(self.vollabel, 0, 0)
		line=3
		layout.addWidget(self.listWidget, line, 0,1,4)
		line+=1
		layout.addWidget(self.vollabel2, line, 0)
		line+=1
		layout.addWidget(self.lab2, line, 0)
		line+=1
		layout.addWidget(self.pushButton02, line, 0,1,4)
		line+=1
		layout.addWidget(self.vollabel3, line, 0)
		line+=1
		layout.addWidget(self.pushButton03, line, 0,1,4)
		line+=1
		line+=1
		self.setLayout(layout)
		self.setWindowTitle("Plugin Loader" + __vers__)
Exemplo n.º 14
0
 def setParams(self):
     ta = FreeCAD.ParamGet('User parameter:Plugins')
     ta.SetString("pluginlist", "")
     pluginlist = []
     for k in self.config.keys():
         if not self.config[k]['status'] == 'ignore':
             t = FreeCAD.ParamGet('User parameter:Plugins/' + k)
             pcm = ConfigManager(k)
             hide = pcm.get('_hide_', False)
             if hide:
                 continue
             pluginlist.append(k)
             #say("--")
             #say(k)
             #say(self.config[k])
             #say(self.config[k]["name"])
             t.SetString("name", self.config[k]["name"])
             if self.config[k].has_key("author"):
                 t.SetString("author", self.config[k]["author"])
             t.SetString("destination", self.config[k]["destdir"])
             t.SetInt('installed', 1)
             itemlist = []
             if self.config[k].has_key('menuitems'):
                 for menu in self.config[k]['menuitems'].keys():
                     #say(menu)
                     itemlist.append(menu)
                     tm = FreeCAD.ParamGet('User parameter:Plugins/' + k +
                                           '/' + menu)
                     tm.SetString("exec",
                                  self.config[k]['menuitems'][menu]['exec'])
             else:
                 #say("keine menuitmes")
                 pass
             if self.config[k].has_key('menu'):
                 menu = self.config[k]['menu']
                 #say(menu)
                 itemlist.append(menu)
                 tm = FreeCAD.ParamGet('User parameter:Plugins/' + k + '/' +
                                       menu)
                 tm.SetString("exec", self.config[k]['exec'])
             ms = ";".join(itemlist)
             if ms <> "":
                 t.SetString("menulist", ms)
     ps = ";".join(pluginlist)
     ta.SetString("pluginlist", ps)
Exemplo n.º 15
0
	def gentoolbars(self,workbench='init'):
		global pathMacro
		cf=self.pluginloader.config
		say("gentoolbars ...")
		if self.pluginloader.config3["toolbars"].has_key(workbench):
			# say("toolbars for            ----------------------" + workbench)
			for ky in sorted(self.pluginloader.config3["toolbars"][workbench].keys()):
				#say(ky)
				cma=ConfigManager("__toolbars__/" + workbench +"/" + ky)
				funhide=cma.get("_hide_",False)
				if funhide:
					say("toolbar ignore item " + ky)
					continue

				try:
					mw=FreeCAD.Gui.getMainWindow()
					mw.toolbar = mw.addToolBar(workbench +': ' + ky)
					mw.toolbar.setWindowTitle("Personal " + workbench +': ' +ky)
					#exitAction = QtGui.QAction('Exit 2', FreeCAD.Gui.getMainWindow())
					#exitAction.setShortcut('.')
					#exitAction.triggered.connect(QtGui.qApp.quit)
					#mw.toolbar.addAction(exitAction)
					mw.toolbar.show()
					toolbarBox=mw.toolbar
				except Exception:
					sayexc("exception add Tool Bar")
				for tool in sorted(self.pluginloader.config3["toolbars"][workbench][ky].keys()):
					say(tool)
					yy=self.pluginloader.config3["toolbars"][workbench][ky][tool]
					myAction2=QtGui.QAction(QtGui.QIcon(yy['icon']),tool ,mw)
					myAction2.setToolTip(tool)
					try:
						cmd=yy['exec']
					except:
						cmd="say('"+str(yy)+"')"
					
					yy=MyAction2(pathMacro(cmd))
					myAction2.yy=yy
					myAction2.triggered.connect(yy.run) 
					toolbarBox.addAction(myAction2)
				toolbarBox.show()
				self.toolbars.append(toolbarBox)
				say(ky +" done")
	def connectList(self, listFile):
		try:
			conf = ConfigManager(listFile)
		except Exception as e:
			print ("No conf file", listFile)
			return 1

		server_list = []
		for server in conf.get_list():
			server_list.append(server)

		connection_list ={}
		for server in server_list:
			connection =  conf.get(server)["connection"]
			try:
				command = self.connect_command_builder(connection,"no")
				try:
					conn.send(command)
					t = None
					while t == None:
						t = conn.get_state()
						#status_adres_localport
					server_status = t.split("_")
					try:
						connection_list[server_status[1]]=server_status[2]
						print("Connecting to" , connection["adress"], "[", server_status[0], "]")
					except IndexError as e:
						print(t)
				except AttributeError as e:
					print("Connection to ssh shepherd error!",e)
			except KeePassError as e:
				print("Connecting to" , connection["adress"], "[", e, "]")
			except KeyError as e:
				print("Connecting to" , connection["adress"], "[", e, "]")
			except Exception as e:
					print (e)	
Exemplo n.º 17
0
    def genlabels(self):
        cf = self.pluginloader.config
        try:
            self.tabs.deleteLater()
        except:
            pass
        if self.pluginloader.config3.has_key("tabs"):
            tabs = QtGui.QTabWidget()
            kl = sorted(self.pluginloader.config3["tabs"].keys())
            # where to place the tabs -  still hard coded
            mode = "north"
            if self.pluginloader.config3['base'].has_key('tablocation'):
                mode = self.pluginloader.config3['base']['tablocation']
            if mode == "west":
                tabs.setTabPosition(QtGui.QTabWidget.West)
                kl.reverse()
            if mode == "east":
                tabs.setTabPosition(QtGui.QTabWidget.East)
                kl.reverse()

            for ky in kl:
                import re

                cmt = ConfigManager("__tabs__/" + ky)
                hide = cmt.get("_hide_", False)
                if hide:
                    say("ignore tab " + ky)
                    continue

                tab1 = QtGui.QWidget()
                pat = r"[0123456789]+ +(.*)"
                m = re.match(pat, ky)
                if m:
                    kyk = m.group(1)
                else:
                    kyk = ky
                tabs.addTab(tab1, kyk)
                vBoxlayout = QtGui.QVBoxLayout()
                vBoxlayout.setAlignment(QtCore.Qt.AlignTop)
                head = QtGui.QLabel(kyk.upper())
                vBoxlayout.addWidget(head)
                head.setStyleSheet("QWidget { font: bold 18px;color:brown;}")
                if self.pluginloader.config3['tabs'][ky].has_key("info"):
                    info = QtGui.QLabel(
                        self.pluginloader.config3['tabs'][ky]["info"])
                    vBoxlayout.addWidget(info)

                for fun in sorted(
                        self.pluginloader.config3["tabs"][ky].keys()):
                    cma = ConfigManager("__tabs__/" + ky + "/" + fun)
                    funhide = cma.get("_hide_", False)
                    if funhide:
                        say("ignore item " + fun)
                        continue
                    ff = self.pluginloader.config3["tabs"][ky][fun]
                    if fun == 'info':
                        continue
                    import re
                    pat = r"[0123456789]+[\.]? +(.*)"
                    m = re.match(pat, fun)
                    if m:
                        funk = m.group(1)
                    else:
                        funk = fun
                    if ff.has_key('icon'):
                        pushButton1 = QtGui.QPushButton(
                            QtGui.QIcon(ff['icon']), funk)
                    else:
                        pushButton1 = QtGui.QPushButton(
                            QtGui.QIcon(
                                FreeCAD.ConfigGet('AppHomePath') +
                                '/Mod/plugins/icons/sun.png'), funk)
                    if ff.has_key('info'):
                        pushButton1.setToolTip(ff['info'])
                    try:
                        cmd = ff['exec']
                    except:
                        cmd = "say('" + str(ff) + "')"
                    yy = MyAction2(cmd)
                    yy = MyAction2(pathMacro(cmd))
                    pushButton1.yy = yy
                    pushButton1.clicked.connect(yy.run)
                    hWid = QtGui.QWidget()
                    hBoxlayout = QtGui.QHBoxLayout()
                    hBoxlayout.setContentsMargins(0, 0, 0, 0)
                    hWid.setLayout(hBoxlayout)
                    pushButt_1 = QtGui.QPushButton(funk)
                    hBoxlayout.addWidget(pushButton1)
                    if ff.has_key('man'):
                        pushButt_2 = QtGui.QPushButton(
                            QtGui.QIcon(
                                FreeCAD.ConfigGet('AppHomePath') +
                                '/Mod/plugins/icons/help.png'), '')
                        pushButt_2.setToolTip('See WebSite Documentation')
                        cmdh = 'import WebGui; WebGui.openBrowser( "' + ff[
                            'man'] + '")'
                        yh = MyAction2(cmdh)
                        pushButt_2.yh = yh
                        pushButt_2.clicked.connect(yh.run)
                        hBoxlayout.addWidget(pushButt_2)
                        pushButton1.setFixedWidth(250)
                    else:
                        pushButton1.setFixedWidth(290)
                    hBoxlayout.setAlignment(QtCore.Qt.AlignLeft)
                    vBoxlayout.addWidget(hWid)
                    vBoxlayout.setSpacing(0)
                tab1.setLayout(vBoxlayout)
        self.myform.addWidget(tabs)
        # aktiver tab
        cm = ConfigManager("PluginManager")
        ix = cm.get("PluginTabIndex", 0)
        tabs.setCurrentIndex(ix)
        self.tabs = tabs
Exemplo n.º 18
0
	def genlabels(self):
		cf=self.pluginloader.config
		try:
			self.tabs.deleteLater()
		except:
			pass
			
		if self.pluginloader.config3.has_key("tabs"):
			tabs= QtGui.QTabWidget()
			kl=sorted(self.pluginloader.config3["tabs"].keys())
			# where to place the tabs -  still hard coded
			mode="north"
			if self.pluginloader.config3['base'].has_key('tablocation'):
				mode= self.pluginloader.config3['base']['tablocation']
			if mode =="west":
				tabs.setTabPosition(QtGui.QTabWidget.West)
				kl.reverse()
			if mode =="east":
				tabs.setTabPosition(QtGui.QTabWidget.East)
				kl.reverse()
			
			for ky in kl:
				import re
				
				cmt=ConfigManager("__tabs__/" + ky)
				hide=cmt.get("_hide_",False)
				if hide:
						say("ignore tab " + ky)
						continue
				
				tab1= QtGui.QWidget()
				pat=r"[0123456789]+ +(.*)"
				m = re.match(pat, ky)
				if m:
					kyk=m.group(1)
				else:
					kyk=ky
				tabs.addTab(tab1,kyk)
				vBoxlayout	= QtGui.QVBoxLayout()
				vBoxlayout.setAlignment(QtCore.Qt.AlignTop)
				head=QtGui.QLabel(kyk.upper())
				vBoxlayout.addWidget(head)
				head.setStyleSheet("QWidget { font: bold 18px;color:brown;}")
				if self.pluginloader.config3['tabs'][ky].has_key("info"):
					info=QtGui.QLabel(self.pluginloader.config3['tabs'][ky]["info"])
					vBoxlayout.addWidget(info)

				for fun in sorted(self.pluginloader.config3["tabs"][ky].keys()):
					cma=ConfigManager("__tabs__/" + ky +"/" + fun)
					funhide=cma.get("_hide_",False)
					if funhide:
						say("ignore item " + fun)
						continue
					ff=self.pluginloader.config3["tabs"][ky][fun]
					if fun == 'info':
						continue
					import re
					pat=r"[0123456789]+[\.]? +(.*)"
					m = re.match(pat, fun)
					if m:
						funk=m.group(1)
					else:
						funk=fun
					if ff.has_key('icon'):
						pushButton1 = QtGui.QPushButton(QtGui.QIcon(ff['icon']),funk)
					else:
						pushButton1 = QtGui.QPushButton(QtGui.QIcon(FreeCAD.ConfigGet('AppHomePath')+'/Mod/plugins/icons/sun.png'),funk)
					#say("!!" + fun + " ->" + funk + "<-")
					if ff.has_key('info'): 
						pushButton1.setToolTip(ff['info'])
					try:
						cmd=ff['exec']
					except:
						cmd="say('"+str(ff)+"')"
					#say("cmd="+cmd)
					yy=MyAction2(cmd)
					yy=MyAction2(pathMacro(cmd))
					pushButton1.yy=yy
					pushButton1.clicked.connect(yy.run) 
					hWid= QtGui.QWidget()
					hBoxlayout	= QtGui.QHBoxLayout()
					hBoxlayout.setContentsMargins(0, 0, 0, 0)
					hWid.setLayout(hBoxlayout)
					pushButt_1 = QtGui.QPushButton(funk)
					hBoxlayout.addWidget(pushButton1)
					if ff.has_key('man'):
						pushButt_2 = QtGui.QPushButton(QtGui.QIcon(FreeCAD.ConfigGet('AppHomePath')+'/Mod/plugins/icons/help.png'),'')
						pushButt_2.setToolTip('See WebSite Documentation')
						cmdh='import WebGui; WebGui.openBrowser( "' +ff['man'] + '")'
						yh=MyAction2(cmdh)
						pushButt_2.yh=yh
						pushButt_2.clicked.connect(yh.run) 
						hBoxlayout.addWidget(pushButt_2)
						pushButton1.setFixedWidth(250)
					else:
						pushButton1.setFixedWidth(290)
					hBoxlayout.setAlignment(QtCore.Qt.AlignLeft)
					vBoxlayout.addWidget(hWid)
					vBoxlayout.setSpacing(0)
				tab1.setLayout(vBoxlayout)   
		#self.lilayout.addWidget(tabs)
		self.myform.addWidget(tabs)
		
		# aktiver tab
		cm=ConfigManager("PluginManager")
		ix=cm.get("PluginTabIndex",0)
		tabs.setCurrentIndex(ix) # private testing
		# tabs.setCurrentIndex(10)  # == Favorites
		self.tabs=tabs
from message_consumer import MessageConsumer
from message_handler import MessageHandler

logger = logging.getLogger(__name__)


class HTTPNotifier:
    def __init__(self, handler, consumer):
        self.handler = handler
        self.consumer = consumer

    def init(self, ):
        try:
            logger.info("HTTP Notifier initialization...")
            self.consumer.run()
        except Exception as e:
            logger.exception(e)
        finally:
            logger.info("HTTP Notifier :: Finish execution")


if __name__ == "__main__":
    config = ConfigManager().configuration
    ConfigureLogging(**config["logger"])
    try:
        handler = MessageHandler()
        consumer = MessageConsumer(handler, **config.get("rabbit"))
        HTTPNotifier(handler, consumer).init()
    except:
        logger.info("HTTP Notifier :: Finish execution")
Exemplo n.º 20
0
    def __init__(self):
        global say

        #---------------------------
        mcf = ''
        config3 = {}
        try:
            say("pluginmanager config file " + fn)
            stream = open(fn, 'r').read()
            #	mfc=''
            try:
                z = ConfigManager('')
                fn2 = z.get('userconfigfile',
                            "/usr/lib/freecad/Mod/plugins/myconfig.yaml")
                say("pluginmanager userconfig file " + fn2)
                mcf = open(fn2, 'r').read()
            except:
                sayexc("userconfigfile not available")
            all = stream + mcf

            config3 = yaml.load(all)
        #	config3=set_defaults(config3)
        except:
            sayexc()
            pass

        try:
            #			say("pluginmanager config file "+ fn)
            #			stream = open(fn, 'r')
            #			config3 = yaml.load(stream)
            config3 = set_defaults(config3)
        except:
            dlgexc("Cannot load configfile " + fn +
                   "\nread console log for details ")

        for plin in config3['plugins'].keys():
            for k in config3['plugins'][plin].keys():
                if config3['plugins'][plin][k] and config3['plugins'][plin][
                        k].__class__ == dict:
                    print "dict"
                    print config3['plugins'][plin][k]
                    if os in config3['plugins'][plin][k].keys():
                        # replace
                        config3['plugins'][plin][k] = config3['plugins'][plin][
                            k][os]
            for att in ['destdir', 'exec', 'icon', 'backup']:
                config3['plugins'][plin][att] = pathMacro(
                    config3['plugins'][plin][att])
            if plin == 'defaulttest':
                pprint.pprint(config3['plugins'][plin])

        for plin in config3['data'].keys():
            for att in ['destdir', 'exec', 'icon', 'backup']:
                if config3['data'][plin].has_key(att):
                    config3['data'][plin][att] = pathMacro(
                        config3['data'][plin][att])

        self.config = config3['plugins']
        self.base = config3['base']
        self.config3 = config3
        self.keys = self.config.keys
        self.register()
    def __init__(self):
        mcf = ''
        config3 = {}
        try:
            say("pluginmanager config file " + fn)
            stream = open(fn, 'r').read()
            try:
                z = ConfigManager('')
                fn2 = z.get('userconfigfile',
                            "/usr/lib/freecad/Mod/plugins/myconfig.yaml")
                say("pluginmanager userconfig file " + fn2)
                mcf = open(fn2, 'r').read()
            except:
                sayexc("userconfigfile not available", True)
            all = stream + mcf
            config3 = yaml.load(all)
        #	config3=set_defaults(config3)
        except:
            sayexc("Error in " + fn2, True)
            say("Try only:" + fn)
            config3 = yaml.load(stream)
        config3 = set_defaults(config3)

        for plin in config3['plugins'].keys():
            for k in config3['plugins'][plin].keys():
                if config3['plugins'][plin][k] and config3['plugins'][plin][
                        k].__class__ == dict:
                    print "dict"
                    print config3['plugins'][plin][k]
                    if os in config3['plugins'][plin][k].keys():
                        # replace
                        config3['plugins'][plin][k] = config3['plugins'][plin][
                            k][os]
            for att in ['destdir', 'exec', 'icon', 'backup']:
                try:
                    config3['plugins'][plin][att] = pathMacro(
                        config3['plugins'][plin][att])
                except:
                    sayexc(config3['data'][plin][att])
            if plin == 'defaulttest':
                pprint.pprint(config3['plugins'][plin])

        for plin in config3['data'].keys():
            for att in ['destdir', 'exec', 'icon', 'backup']:
                if config3['data'][plin].has_key(att):
                    try:
                        config3['data'][plin][att] = pathMacro(
                            config3['data'][plin][att])
                    except:
                        sayexc(config3['data'][plin][att])

        self.config = config3['plugins']
        self.base = config3['base']
        self.config3 = config3
        self.keys = self.config.keys

        #----------------------------
        if config3.has_key('keys') and config3['keys'].has_key("keyserver"):
            try:
                for ku in config3['keys']['keyserver'].keys():
                    yy = transformkeytree(config3['keys']['keyserver'][ku])
                    config3['keys']['keyserver'][ku] = yy
            except:
                sayexc()
Exemplo n.º 22
0
from twisted.internet import reactor
from twisted.manhole import telnet
from configmanager import ConfigManager
import sys

mandatory_settings = [("Connection", "server"), ("Connection", "port"),
                      ("Connection", "nickname"), ("Connection", "admins")]

if __name__ == "__main__":
    configfile = sys.argv[1] if len(sys.argv) > 1 else "pytibot.ini"
    # create Config Manager
    cm = ConfigManager(configfile, delimiters=("="))

    if all([cm.option_set(sec, opt) for sec, opt in mandatory_settings]):
        # connect factory to host and port
        server = cm.get("Connection", "server")
        port = cm.getint("Connection", "port")
        botfactory = PyTIBotFactory(cm)
        reactor.connectTCP(server, port, botfactory)

        # manhole for debugging
        open_telnet = False
        if cm.option_set("Connection", "open_telnet"):
            open_telnet = cm.getboolean("Connection", "open_telnet")

        if open_telnet:
            tn_f = telnet.ShellFactory()
            tn_f.username = cm.get("Telnet", "username")
            tn_f.password = cm.get("Telnet", "password")
            tn_f.namespace['get_bot'] = botfactory.get_bot
            telnet_port = cm.getint("Telnet", "port")
Exemplo n.º 23
0
from configmanager import ConfigManager

import pyglet, os

pyglet.font.add_file('resources/fonts/OratorSTD.otf')


mgr = ConfigManager()


CLOCK_FG = mgr.get("SETTINGS", "CLOCK_FG")


CLOCK_FONT = ('Consolas', 24, 'bold')

# FONTS
MONOSPACED = ("Consolas", 10)

FONT = "Orator STD"
BACK_FONT_SIZE = 10
# CLOCK_FONT = "Bahnschrift Light"
CLOCK_FONT = "Consolas"

CLOCK_FONT_SIZE = 50
CLOCK_FONT_TUPLE = ("Consolas", CLOCK_FONT_SIZE, "bold")

ENTRY_FONT_TUPLE = (FONT, 14)

DROPDOWN_FONT = ('Orator STD', 14)

GOAL_FONT = ("Orator STD", 17)
Exemplo n.º 24
0
#--
#-- GNU Lesser General Public License (LGPL)
#-------------------------------------------------

__Vers__ = '0.1b'
__Status__ = 'alpha'

import FreeCAD, PySide, os, FreeCADGui, time
from PySide import QtCore, QtGui, QtSvg
from PySide.QtGui import *
import os, re, ast, _ast

from configmanager import ConfigManager
cm = ConfigManager("MacroManager")
dir_name = cm.get(
    'macrodir',
    FreeCAD.ConfigGet('AppHomePath') + "/Mod/plugins/FreeCAD-macros")

docstrings = [
    '__Author__', '__Version__', '__Comment__', '__Wiki__', '__Icon__',
    '__Help__', '__Web__'
]

global sayexc
import sys, traceback


def sayexc(mess=''):
    exc_type, exc_value, exc_traceback = sys.exc_info()
    ttt = repr(traceback.format_exception(exc_type, exc_value, exc_traceback))
    lls = eval(ttt)
Exemplo n.º 25
0
#--
#-- GNU Lesser General Public License (LGPL)
#-------------------------------------------------


__Vers__ = '0.1b'
__Status__ = 'alpha'

import FreeCAD,PySide,os,FreeCADGui,time
from PySide import QtCore, QtGui, QtSvg
from PySide.QtGui import * 
import os,re, ast, _ast 

from configmanager import ConfigManager
cm=ConfigManager("MacroManager")
dir_name=cm.get('macrodir',FreeCAD.ConfigGet('AppHomePath')+"/Mod/plugins/FreeCAD-macros")

docstrings=['__Author__','__Version__','__Comment__','__Wiki__','__Icon__','__Help__','__Web__']



global sayexc
import sys,traceback

def sayexc(mess=''):
	exc_type, exc_value, exc_traceback = sys.exc_info()
	ttt=repr(traceback.format_exception(exc_type, exc_value,exc_traceback))
	lls=eval(ttt)
	l=len(lls)
	l2=lls[(l-3):]
	FreeCAD.Console.PrintError(mess + "\n" +"-->  ".join(l2))
	def exe_dump(self, file_name, serv_name, base_name, backup_name, type):
		date = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
		dump_file_name = backup_name+'_'+file_name+'_'+serv_name+'_'+base_name+'_'+date
		dumper = """pg_dump.exe -U %s -d %s -h %s -p %s -f %s -C --column-inserts"""

		try:
			conf = ConfigManager("config/" + file_name + ".yaml")
			cnf = conf.get(serv_name)
			conn = cnf["connection"]
			db = cnf["databases"][base_name]

			db_name = db["name"]
			db_user = db["user"]
			db_pass = conf.get_password(serv_name + '.' + base_name)
			conn_adr = ''
			conn_port = None

			if conn["type"] == "ssh": #Dla połączeń ssh
				cmd = self.connect_command_builder(conn, 'no')
				common.conn.send(cmd)
				ans = None
				while ans == None:
					ans = common.conn.get_state()

				status, hostname, db_port = ans.split("_")

				if status == "ok":  #udało się utworzyć tunel
					conn_adr = 'localhost'
					conn_port = db_port
				else:
					raise PostgressError('Unable to create ssh tunnel')

			elif conn["type"] == "direct":
				conn_adr = conn["adress"]
				conn_port = conn["remoteport"]

			local_version = self.get_local_version('pg_dump --version')
			remote_version = self.get_pg_version(db_name, db_user, db_pass, conn_adr, conn_port)
			if not self.is_valid_versions(local_version, remote_version):
				raise PostgressError("You have too old version of pg_dump")

			if type == 'tar':
				dumper += ' -Ft'
				dump_file_name += '.tar'
			else:
				dump_file_name += '.sql'
			command = dumper % (db_user, db_name, conn_adr, conn_port, dump_file_name)

			os.putenv('PGPASSWORD', db_pass)
			try:
				common.set_cdir_and_store()
				proc = Popen(command, stdout=PIPE, stderr=PIPE)
			except FileNotFoundError:
				raise PostgressError(" ERROR: pg_dump not found")
			finally:
				common.restore_cdir()
			out, err = proc.communicate()

			if err != b'':
				raise PostgressError(err.decode('utf8', 'ignore'))

		except ConnectionRefusedError:
			print('--------------------')
			print('ERROR: Connection Refused by host')
			print('--------------------')
		except TimeoutError:
			print('--------------------')
			print('ERROR: Connection timeout')
			print('--------------------')
		except paramiko.ssh_exception.AuthenticationException:
			print('--------------------')
			print('ERROR: Authentication problem')
			print('--------------------')
		except KeyError as e:
			print('--------------------')
			print('ERROR: Unable to find key:',e)
			print('--------------------')
		except PostgressError as e:
			print('--------------------')
			print('ERROR:',e)
			print('--------------------')
		except Exception as e:
			print('--------------------')
			print('ERROR:',e)
			print('--------------------')
	def exe_restore(self, file_name, serv_name, base_name, backup_name, type):

		try:
			conf = ConfigManager("config/" + file_name + ".yaml")
			cnf = conf.get(serv_name)
			conn = cnf["connection"]
			db = cnf["databases"][base_name]

			db_name = db["name"]
			db_user = db["user"]
			db_pass = conf.get_password(serv_name + '.' + base_name)
			conn_adr = ''
			conn_port = None

			if conn["type"] == "ssh": #Dla połączeń ssh
				cmd = self.connect_command_builder(conn, 'no')
				common.conn.send(cmd)
				ans = None
				while ans == None:
					ans = common.conn.get_state()

				status, hostname, db_port = ans.split("_")

				if status == "ok":  #udało się utworzyć tunel
					conn_adr = 'localhost'
					conn_port = db_port
				else:
					raise PostgressError('Unable to create ssh tunnel')

			elif conn["type"] == "direct":
				conn_adr = conn["adress"]
				conn_port = conn["remoteport"]

			local_version = self.get_local_version('pg_dump --version')
			remote_version = self.get_pg_version(db_name, db_user, db_pass, conn_adr, conn_port)
			if not self.is_valid_versions(local_version, remote_version):
				raise PostgressError("You have too old version of pg_dump")

			self.restore(db_name, db_user, db_pass, conn_adr, conn_port, backup_name, type)

		except ConnectionRefusedError:
			print('--------------------')
			print('ERROR: Connection Refused by host')
			print('--------------------')
		except TimeoutError:
			print('--------------------')
			print('ERROR: Connection timeout')
			print('--------------------')
		except paramiko.ssh_exception.AuthenticationException:
			print('--------------------')
			print('ERROR: Authentication problem')
			print('--------------------')
		except KeyError as e:
			print('--------------------')
			print('ERROR: Unable to find key:',e)
			print('--------------------')
		except PostgressError as e:
			print('--------------------')
			print('ERROR:',e)
			print('--------------------')
		except Exception as e:
			print('--------------------')
			print('ERROR:',e)
			print('--------------------')
Exemplo n.º 28
0
from message_handler import MessageHandler

logger = logging.getLogger(__name__)


class EmailNotifier:

    def __init__(self, handler, consumer):
        self.handler = handler
        self.consumer = consumer

    def init(self, ):
        try:
            logger.info("Email Notifier initialization...")
            self.consumer.run()
        except Exception as e:
            logger.exception(e)
        finally:
            logger.info("Email Notifier :: Finish execution")


if __name__ == "__main__":
    config = ConfigManager().configuration
    ConfigureLogging(**config["logger"])
    try:
        handler = MessageHandler(**config.get("smtp"))
        consumer = MessageConsumer(handler, **config.get("rabbit"))
        EmailNotifier(handler, consumer).init()
    except:
        logger.info("Email Notifier :: Finish execution")
Exemplo n.º 29
0
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        ConfigManager.load()

        self.theme_manager = ThemeManager(self)
        self.theme_manager.set_theme(ConfigManager.get("theme"))

        self.optionsbar = OptionsBar(self)
        self.optionsbar.grid(row=0, column=1, sticky="nsew", padx=2, pady=2)

        self.toolbar = ToolBar(self, self.optionsbar)
        self.toolbar.grid(row=1, column=0, sticky="nsew", padx=2, pady=2)

        self.codetext = CodeText(self,
                                 width=100,
                                 wrap="none",
                                 canvas_name=ConfigManager.get("canvas_name"))
        self.codetext.grid(row=0, column=2, rowspan=3)

        self.canvas_xy_var = tk.StringVar()
        self.canvas_xy_label = ttk.Label(self, textvariable=self.canvas_xy_var)
        self.canvas_xy_label.grid(row=0, column=0, sticky="se")

        self.canvas = PaintCanvas(self,
                                  self.toolbar,
                                  self.optionsbar,
                                  self.codetext,
                                  self.canvas_xy_var,
                                  background="white")
        self.canvas.grid(row=1, column=1, padx=2, pady=2, sticky="n")

        self.menu = tk.Menu(self)

        self["menu"] = self.menu
        self.menu.add_command(label="Save", command=self.save)
        self.menu.add_command(label="Undo", command=ActionManager.undo)
        self.menu.add_command(label="Redo", command=ActionManager.redo)

        self._menu_themes = tk.Menu(self.menu, tearoff=False)
        self._menu_themes.add_command(
            label="dark", command=lambda: self.set_theme("darkTKC"))
        self._menu_themes.add_command(
            label="light", command=lambda: self.set_theme("lightTKC"))
        self.menu.add_cascade(menu=self._menu_themes, label="theme")

        self.canvas_frame = ttk.Frame(self)
        self.canvas_frame.grid(row=2, column=1, sticky="nw")
        self.grid_state = tk.BooleanVar(self)
        self.grid_toggle = ttk.Checkbutton(self.canvas_frame,
                                           command=self._toggle_grid,
                                           variable=self.grid_state,
                                           onvalue=True,
                                           offvalue=False,
                                           text="show grid")
        self.grid_toggle.grid(row=0, column=0, padx=3, pady=0, sticky="w")
        self.grid_state.set(True)
        self.canvas_grid = addwidgets.IntEdit(self.canvas_frame,
                                              "grid",
                                              entry_width=3,
                                              default=1)
        self.canvas_grid.var.trace_add("write", self.change_grid)
        self.canvas_grid.grid(row=1, column=0, padx=3, pady=0, sticky="w")
        self.canvas_name_edit = addwidgets.StrEdit(self.canvas_frame,
                                                   "name",
                                                   entry_width=6,
                                                   validate=lambda v: v != "")
        self.canvas_name_edit.set(ConfigManager.get("canvas_name"))
        self.canvas_name_edit.var.trace_add(
            "write", lambda *args: self.configure_canvas(
                canvas_name=self.canvas_name_edit.get()))
        self.canvas_name_edit.grid(row=0, column=1, padx=3, pady=0, sticky="w")
        self.canvas_color_edit = addwidgets.ColorEdit(self.canvas_frame,
                                                      "color",
                                                      default="white")
        self.canvas_color_edit.var.trace_add(
            "write", lambda *args: self.configure_canvas(
                background=self.canvas_color_edit.get()))
        self.canvas_color_edit.grid(row=1,
                                    column=1,
                                    padx=3,
                                    pady=0,
                                    sticky="w")
        self.canvas_width_edit = addwidgets.IntEdit(self.canvas_frame,
                                                    "width",
                                                    entry_width=4,
                                                    default=int(
                                                        self.canvas["width"]))
        self.canvas_width_edit.var.trace_add(
            "write", lambda *args: self.configure_canvas(
                width=self.canvas_width_edit.get()))
        self.canvas_width_edit.grid(row=0,
                                    column=2,
                                    padx=3,
                                    pady=0,
                                    sticky="w")
        self.canvas_height_edit = addwidgets.IntEdit(
            self.canvas_frame,
            "height",
            entry_width=4,
            default=int(self.canvas["height"]))
        self.canvas_height_edit.var.trace_add(
            "write", lambda *args: self.configure_canvas(
                height=self.canvas_height_edit.get()))
        self.canvas_height_edit.grid(row=1,
                                     column=2,
                                     padx=3,
                                     pady=0,
                                     sticky="w")

        self.toolbar.add_tool("cursor")
        self.toolbar.add_tool("line")
        self.toolbar.add_tool("rectangle")
        self.toolbar.add_tool("oval")
        self.toolbar.add_tool("polygon")
        self.toolbar.add_tool("text")
        self.toolbar.add_tool("arc")
        self.toolbar.tool.set("line")

        self.from_x_y_frame = ttk.Frame(self)
        self.from_x_y_var = tk.BooleanVar()
        self.from_x_y_toggle = ttk.Checkbutton(self.from_x_y_frame,
                                               variable=self.from_x_y_var,
                                               onvalue=True,
                                               offvalue=False,
                                               text="from_xy",
                                               command=self.toggle_xy)
        self.from_x_y_toggle.pack(side="top")
        self.from_x_y_btn = ttk.Button(
            self.from_x_y_frame,
            text="Set x,y",
            command=lambda: self.toolbar.set_tool("set_xy"))
        self.from_x_y_btn["state"] = ("disabled", )
        self.from_x_y_btn.pack(side="top")
        self.from_x_y_frame.grid(row=2, column=0)