示例#1
0
	def run(self):
		try: 
			conn=self.get_db_conn()
			cur = conn.cursor()

			assert self.kwds['message_id'], 'message_id must be defined'
			query="SELECT `message` FROM p2p_message WHERE `message_id`='%s'"\
				% self.kwds['message_id']
			cur.execute(query)
			res = cur.fetchone()
			if res:
				msg=Message()
				msg.fromxml(res[0])
				try:
					#LOG.debug('\nbefor encode: %s\n'% {u'id':msg.id, u'name':msg.name,
					#	u'meta':msg.meta, u'body':msg.body})
					mdict=encode({u'id':msg.id, u'name':msg.name,
						u'meta':msg.meta, u'body':msg.body})
					#LOG.debug('\nafter encode: %s\n'%mdict)
					yaml=dump(mdict, Dumper=SzradmDumper, default_flow_style=False)
					print yaml
				except Exception, e:
					raise LookupError('Error in recursive encode '
						'(szradm->MessageDetailsCommand: l442) Details: %s'%e)
			else:
示例#2
0
    def run(self):
        try:
            conn=self.get_db_conn()
            cur = conn.cursor()

            assert self.kwds['message_id'], 'message_id must be defined'
            query="SELECT `message`,`format` FROM p2p_message WHERE `message_id`='%s'"\
                    % self.kwds['message_id']
            cur.execute(query)
            res = cur.fetchone()
            if res:
                msg=Message()
                msg_format = res[1]
                msg.fromjson(res[0]) if 'json' == msg_format else msg.fromxml(res[0])
                try:
                    mdict=encode({u'id':msg.id, u'name':msg.name,
                            u'meta':msg.meta, u'body':msg.body})
                    if self.kwds and self.kwds.get('json'):
                        # print json
                        out = json.dumps(mdict, indent=4, sort_keys=True)
                    else:
                        # Print yaml
                        out = dump(mdict, Dumper=SzradmDumper, default_flow_style=False)
                    print out
                except Exception, e:
                    raise LookupError('Error in recursive encode '
                            '(szradm->MessageDetailsCommand: l442) Details: %s'%e)
            else:
示例#3
0
	def __init__(self, name=None, meta=None, body=None):
		Message.__init__(self, name, meta, body)
		self.__dict__["_store"] = P2pMessageStore()
		if bus.cnf:
			cnf = bus.cnf; ini = cnf.rawini
			# XXX: when it is incoming message 
			self.meta[MetaOptions.SERVER_ID] = ini.get('general', 'server_id')
示例#4
0
 def __init__(self, name=None, meta=None, body=None):
     Message.__init__(self, name, meta, body)
     self.__dict__["_store"] = P2pMessageStore()
     if bus.cnf:
         cnf = bus.cnf; ini = cnf.rawini
         # XXX: when it is incoming message
         self.meta[MetaOptions.SERVER_ID] = ini.get('general', 'server_id')
示例#5
0
    def __call__(self, message_id, json=False):
        try:
            cursor = db_connection.cursor()

            query = "SELECT `message`,`format` FROM p2p_message " \
                "WHERE `message_id`='%s'" % message_id
            cursor.execute(query)
            fetched_data = cursor.fetchone()
        finally:
            cursor.close()

        if fetched_data:
            msg = Message()
            msg_format = fetched_data[1]
            if msg_format == 'json':
                msg.fromjson(fetched_data[0]) 
            else:
                msg.fromxml(fetched_data[0])

            mdict = encode({'id': msg.id,
                            'name': msg.name,
                            'meta': msg.meta,
                            'body': msg.body})

            if json:
                print json_module.dumps(mdict, indent=4, sort_keys=True, ensure_ascii=False)
            else:
                print yaml.dump(mdict, default_flow_style=False, allow_unicode=True)
        else:
            raise CommandError('Message not found')
 def new_message(self,
                 msg_name,
                 msg_body=None,
                 msg_meta=None,
                 broadcast=False,
                 include_pad=False,
                 srv=None):
     msg = Message(name=msg_name, meta=msg_meta, body=msg_body)
     return msg
示例#7
0
    def __call__(self, message_id, json=False):
        try:
            conn = get_db_conn()
            cursor = conn.cursor()

            query = "SELECT `message`,`format` FROM p2p_message " \
                "WHERE `message_id`='%s'" % message_id
            cursor.execute(query)
            fetched_data = cursor.fetchone()
        finally:
            cursor.close()

        if fetched_data:
            msg = Message()
            msg_format = fetched_data[1]
            if msg_format == 'json':
                msg.fromjson(fetched_data[0])
            else:
                msg.fromxml(fetched_data[0])

            mdict = encode({'id': msg.id,
                            'name': msg.name,
                            'meta': msg.meta,
                            'body': msg.body})

            if json:
                print json_module.dumps(mdict, indent=4, sort_keys=True, ensure_ascii=False)
            else:
                print yaml.dump(mdict, default_flow_style=False, allow_unicode=True)
        else:
            raise CommandError('Message not found')
示例#8
0
    def run(self):
        try:
            conn = self.get_db_conn()
            cur = conn.cursor()

            assert self.kwds['message_id'], 'message_id must be defined'
            query="SELECT `message`,`format` FROM p2p_message WHERE `message_id`='%s'"\
                    % self.kwds['message_id']
            cur.execute(query)
            res = cur.fetchone()
            if res:
                msg = Message()
                msg_format = res[1]
                msg.fromjson(res[0]) if 'json' == msg_format else msg.fromxml(
                    res[0])
                try:
                    mdict = encode({
                        u'id': msg.id,
                        u'name': msg.name,
                        u'meta': msg.meta,
                        u'body': msg.body
                    })
                    if self.kwds and self.kwds.get('json'):
                        # print json
                        out = json.dumps(mdict, indent=4, sort_keys=True)
                    else:
                        # Print yaml
                        out = dump(mdict,
                                   Dumper=SzradmDumper,
                                   default_flow_style=False)
                    print out
                except Exception, e:
                    raise LookupError(
                        'Error in recursive encode '
                        '(szradm->MessageDetailsCommand: l442) Details: %s' %
                        e)
            else:
    def _on_HostUpDown(self, internal_ip, prefix):
        role_alias = 'mysql'
        role_name = 'mysql-lvm'
        role_dir = self.ip_lb._base_path + os.sep + role_name
        role_file = role_dir + os.sep + internal_ip
        mysql_dir = self.ip_lb._base_path + os.sep + role_alias + prefix  #
        mysql_file = mysql_dir + os.sep + internal_ip
        msg = Message(body=dict(
            role_name=role_name, behaviour=[role_alias], local_ip=internal_ip))
        self.ip_lb.on_HostUp(msg)

        self.assertTrue(os.path.exists(role_dir) and os.path.isdir(role_dir))
        self.assertTrue(
            os.path.exists(role_file) and os.path.isfile(role_file))
        self.assertTrue(os.path.exists(mysql_dir) and os.path.isdir(mysql_dir))
        self.assertTrue(
            os.path.exists(mysql_file) and os.path.isfile(mysql_file))
        self.ip_lb.on_HostDown(msg)
        self.assertFalse(os.path.exists(role_dir))
        self.assertFalse(os.path.exists(role_file))
        self.assertFalse(os.path.exists(mysql_dir))
        self.assertFalse(os.path.exists(mysql_file))
示例#10
0
 def new_message(self, name=None, meta={}, body={}):
     return Message(name, meta, body)
示例#11
0
    def test_on_host_init_response_new_style_volumes(self, *args):
        '''
		plug new-style volumes
		'''

        from scalarizr.bus import bus
        from scalarizr.handlers.block_device import BlockDeviceHandler
        from scalarizr.messaging import Message

        hir = Message(
            'HostInitResponse', None, {
                'volumes': [{
                    'type': 'ebs',
                    'size': '1',
                    'mpoint': '/mnt/ebs'
                }, {
                    'type': 'ebs',
                    'size': '10',
                    'snap': {
                        'type': 'ebs',
                        'id': 'snap-12345678'
                    },
                    'mpoint': '/mnt/volume'
                }, {
                    'id': 'vol-12345678',
                    'type': 'ebs',
                    'fstype': 'xfs',
                    'mpoint': '/mnt/kazu'
                }, {
                    'type':
                    'raid',
                    'level':
                    '5',
                    'disks':
                    list(itertools.repeat({
                        'type': 'ebs',
                        'size': 50
                    }, 3)),
                    'fstype':
                    'xfs',
                    'mpoint':
                    '/mnt/raid5'
                }, {
                    'type':
                    'raid',
                    'level':
                    '5',
                    'disks':
                    list(itertools.repeat({
                        'type': 'ebs',
                        'size': 50
                    }, 3)),
                    'snap': {
                        'type':
                        'raid',
                        'disks': [{
                            'type': 'ebs',
                            'id': 'snap-a1b2c3d4'
                        }, {
                            'type': 'ebs',
                            'id': 'snap-12345678'
                        }, {
                            'type': 'ebs',
                            'id': 'snap-1a2b3c4d'
                        }]
                    }
                }, {
                    'id':
                    'raid-vol-12345678',
                    'type':
                    'raid',
                    'level':
                    '1',
                    'disks': [{
                        'id': 'vol-12345678',
                        'type': 'ebs'
                    }, {
                        'id': 'vol-87654321',
                        'type': 'ebs'
                    }],
                    'mpoint':
                    '/mnt/keystone'
                }]
            })
        hdlr = BlockDeviceHandler('ebs')
        hdlr.on_host_init_response(hir)

        messages = list(rec.message for rec in bus.init_op.logs)
        assert_equals(
            messages[1],
            'Ensure ebs: create volume, make ext3 filesystem, mount to /mnt/ebs'
        )
        assert_equals(
            messages[2],
            'Ensure ebs: create volume from snap-12345678, mount to /mnt/volume'
        )
        assert_equals(messages[3],
                      'Ensure ebs: take vol-12345678, mount to /mnt/kazu')
        assert_equals(
            messages[4],
            'Ensure raid5: create 3 ebs volumes, make xfs filesystem, mount to /mnt/raid5'
        )
        assert_equals(
            messages[5],
            'Ensure raid5: create 3 ebs volumes from snapshots (snap-a1b2c3d4, snap-12345678, snap-1a2b3c4d)'
        )
        assert_equals(
            messages[6],
            'Ensure raid1: take raid-vol-12345678 (2 ebs disks: vol-12345678, vol-87654321), mount to /mnt/keystone'
        )
示例#12
0
 def __init__(self, name=None, meta=None, body=None):
     Message.__init__(self, name, meta, body)
     self.__dict__["_store"] = P2pMessageStore()
     self.meta['server_id'] = __node__['server_id']