예제 #1
0
    def test_resource_data_set_get(self):
        create_resource_data(self.ctx, self.resource)
        val = db_api.resource_data_get(self.resource, 'test_resource_key')
        self.assertEqual('test_value', val)

        #Updating existing resource data
        create_resource_data(self.ctx, self.resource, value='foo')
        val = db_api.resource_data_get(self.resource, 'test_resource_key')
        self.assertEqual('foo', val)

        #Testing with encrypted value
        create_resource_data(self.ctx, self.resource,
                             key='encryped_resource_key', redact=True)
        val = db_api.resource_data_get(self.resource, 'encryped_resource_key')
        self.assertEqual('test_value', val)
예제 #2
0
 def private_key(self):
     """Return the private SSH key for the resource."""
     if self._private_key is not None:
         return self._private_key
     if self.id is not None:
         self._private_key = db_api.resource_data_get(self, 'private_key')
         return self._private_key
예제 #3
0
 def handle_delete(self):
     client = self.neutron()
     for member in self.properties['members']:
         member_id = db_api.resource_data_get(self, member)
         try:
             client.delete_member(member_id)
         except NeutronClientException as ex:
             if ex.status_code != 404:
                 raise ex
         db_api.resource_data_delete(self, member)
예제 #4
0
 def private_key(self):
     """Return the private SSH key for the resource."""
     if self._private_key:
         return self._private_key
     if self.id is not None:
         private_key = db_api.resource_data_get(self, 'private_key')
         if not private_key:
             return None
         self._private_key = private_key
         return private_key
예제 #5
0
 def handle_delete(self):
     client = self.neutron()
     for member in self.properties['members']:
         member_id = db_api.resource_data_get(self, member)
         try:
             client.delete_member(member_id)
         except NeutronClientException as ex:
             if ex.status_code != 404:
                 raise ex
         db_api.resource_data_delete(self, member)
예제 #6
0
 def private_key(self):
     """Return the private SSH key for the resource."""
     if (self._private_key is None and self.id and
             self.properties['save_private_key']):
             try:
                 self._private_key = db_api.resource_data_get(self,
                                                              'private_key')
             except exception.NotFound:
                 pass
     return self._private_key or ""
예제 #7
0
 def private_key(self):
     """Return the private SSH key for the resource."""
     if (self._private_key is None and self.id
             and self.properties['save_private_key']):
         try:
             self._private_key = db_api.resource_data_get(
                 self, 'private_key')
         except exception.NotFound:
             pass
     return self._private_key or ""
예제 #8
0
 def private_key(self):
     """Return the private SSH key for the resource."""
     if self._private_key:
         return self._private_key
     if self.id is not None:
         private_key = db_api.resource_data_get(self, "private_key")
         if not private_key:
             return None
         self._private_key = private_key
         return private_key
예제 #9
0
 def test_resource_data_delete(self):
     stack = self._setup_test_stack('stack', UUID1)[1]
     self._mock_create(self.m)
     self.m.ReplayAll()
     stack.create()
     rsrc = stack.resources['WebServer']
     db_api.resource_data_set(rsrc, 'test', 'test_data')
     self.assertEqual('test_data', db_api.resource_data_get(rsrc, 'test'))
     db_api.resource_data_delete(rsrc, 'test')
     self.assertRaises(exception.NotFound,
                       db_api.resource_data_get, rsrc, 'test')
예제 #10
0
    def test_resource_data_set_get(self):
        create_resource_data(self.ctx, self.resource)
        val = db_api.resource_data_get(self.resource, 'test_resource_key')
        self.assertEqual('test_value', val)

        #Updating existing resource data
        create_resource_data(self.ctx, self.resource, value='foo')
        val = db_api.resource_data_get(self.resource, 'test_resource_key')
        self.assertEqual('foo', val)

        #Testing with encrypted value
        create_resource_data(self.ctx, self.resource,
                             key='encryped_resource_key', redact=True)
        val = db_api.resource_data_get(self.resource, 'encryped_resource_key')
        self.assertEqual('test_value', val)

        vals = db_api.resource_data_get_all(self.resource)
        self.assertEqual(len(vals), 2)
        self.assertEqual('foo', vals.get('test_resource_key'))
        self.assertEqual('test_value', vals.get('encryped_resource_key'))
예제 #11
0
 def test_resource_data_delete(self):
     stack = self._setup_test_stack('stack', UUID1)[1]
     self._mock_create(self.m)
     self.m.ReplayAll()
     stack.create()
     rsrc = stack['WebServer']
     db_api.resource_data_set(rsrc, 'test', 'test_data')
     self.assertEqual('test_data', db_api.resource_data_get(rsrc, 'test'))
     db_api.resource_data_delete(rsrc, 'test')
     self.assertRaises(exception.NotFound,
                       db_api.resource_data_get, rsrc, 'test')
예제 #12
0
 def _resolve_attribute(self, name):
     if name == 'distro':
         return self.distro
     if name == 'privateIPv4':
         return nova_utils.get_ip(self.server, 'private', 4)
     if name == 'admin_pass':
         try:
             return db_api.resource_data_get(self, self.ADMIN_PASS)
         except exception.NotFound:
             logger.info(_('Administrator password not'
                           'found for server: %s') % self.name)
             return ''
     return super(CloudServer, self)._resolve_attribute(name)
예제 #13
0
 def _resolve_attribute(self, name):
     if name == 'distro':
         return self.distro
     if name == 'privateIPv4':
         return nova_utils.get_ip(self.server, 'private', 4)
     if name == 'admin_pass':
         try:
             return db_api.resource_data_get(self, self.ADMIN_PASS)
         except exception.NotFound:
             logger.info(
                 _('Administrator password not'
                   'found for server: %s') % self.name)
             return ''
     return super(CloudServer, self)._resolve_attribute(name)
예제 #14
0
 def handle_update(self, json_snippet, tmpl_diff, prop_diff):
     if 'members' in prop_diff:
         members = set(prop_diff['members'])
         old_members = set(self.t['Properties'].get('members', []))
         client = self.neutron()
         for member in old_members - members:
             member_id = db_api.resource_data_get(self, member)
             try:
                 client.delete_member(member_id)
             except NeutronClientException as ex:
                 if ex.status_code != 404:
                     raise ex
             db_api.resource_data_delete(self, member)
         pool = self.properties['pool_id']
         nova_client = self.nova()
         protocol_port = self.properties['protocol_port']
         for member in members - old_members:
             address = nova_utils.server_to_ipaddress(nova_client, member)
             lb_member = client.create_member({
                 'member': {
                     'pool_id': pool,
                     'address': address,
                     'protocol_port': protocol_port}})['member']
             db_api.resource_data_set(self, member, lb_member['id'])
예제 #15
0
 def handle_update(self, json_snippet, tmpl_diff, prop_diff):
     if 'members' in prop_diff:
         members = set(prop_diff['members'])
         old_members = set(self.t['Properties'].get('members', []))
         client = self.neutron()
         for member in old_members - members:
             member_id = db_api.resource_data_get(self, member)
             try:
                 client.delete_member(member_id)
             except NeutronClientException as ex:
                 if ex.status_code != 404:
                     raise ex
             db_api.resource_data_delete(self, member)
         pool = self.properties['pool_id']
         nova_client = self.nova()
         protocol_port = self.properties['protocol_port']
         for member in members - old_members:
             address = nova_utils.server_to_ipaddress(nova_client, member)
             lb_member = client.create_member({
                 'member': {
                     'pool_id': pool,
                     'address': address,
                     'protocol_port': protocol_port}})['member']
             db_api.resource_data_set(self, member, lb_member['id'])
예제 #16
0
 def my_secret(self):
     return db_api.resource_data_get(self, 'my_secret')
예제 #17
0
 def get_val(cls, resource, key):
     return db_api.resource_data_get(resource.context, resource.id, key)
예제 #18
0
 def _resolve_attribute(self, key):
     try:
         return db_api.resource_data_get(self, key).decode('utf-8')
     except exception.NotFound:
         return None
예제 #19
0
 def _resolve_attribute(self, key):
     try:
         return db_api.resource_data_get(self, key).decode('utf-8')
     except exception.NotFound:
         return None
예제 #20
0
 def my_secret(self):
     return db_api.resource_data_get(self, 'my_secret')
예제 #21
0
 def get_val(cls, resource, key):
     return db_api.resource_data_get(resource.context, resource.id, key)