def create(vca_client, **kwargs): """ create server by template, if external_resource set return without creation, e.g.: { 'management_network': '_management_network', 'server': { 'template': 'template', 'catalog': 'catalog', 'guest_customization': { 'pre_script': 'pre_script', 'post_script': 'post_script', 'admin_password': '******', 'computer_name': 'computer' } } } """ config = get_vcloud_config() server = { 'name': ctx.instance.id, } server.update(ctx.node.properties.get('server', {})) transform_resource_name(server, ctx) if ctx.node.properties.get('use_external_resource'): res_id = ctx.node.properties['resource_id'] ctx.instance.runtime_properties[VCLOUD_VAPP_NAME] = res_id ctx.logger.info( "External resource {0} has been used".format(res_id)) else: _create(vca_client, config, server)
def create(vca_client, **kwargs): """ create server by template, if external_resource set return without creation, e.g.: { 'management_network': '_management_network', 'server': { 'template': 'template', 'catalog': 'catalog', 'guest_customization': { 'pre_script': 'pre_script', 'post_script': 'post_script', 'public_keys': [{ 'key': True }] } } } """ config = get_vcloud_config() server = { 'name': ctx.instance.id, } server.update(ctx.node.properties.get('server', {})) transform_resource_name(server, ctx) if ctx.node.properties.get('use_external_resource'): res_id = ctx.node.properties['resource_id'] ctx.instance.runtime_properties[VCLOUD_VAPP_NAME] = res_id ctx.logger.info("External resource {0} has been used".format(res_id)) else: _create(vca_client, config, server)
def test_transform_resource_name(self): fake_ctx = self.generate_node_context() fake_ctx._bootstrap_context = mock.Mock() fake_ctx._bootstrap_context.resources_prefix = None # wrong resource name type with self.assertRaises(ValueError): vcloud_plugin_common.transform_resource_name(None, fake_ctx) with self.assertRaises(ValueError): vcloud_plugin_common.transform_resource_name(11, fake_ctx) # resource name string self.assertEqual( vcloud_plugin_common.transform_resource_name('test', fake_ctx), 'test') # resource name is dict self.assertEqual( vcloud_plugin_common.transform_resource_name({'name': 'test'}, fake_ctx), 'test') # prefix not exist in name fake_ctx._bootstrap_context.resources_prefix = 'prfx_' self.assertEqual( vcloud_plugin_common.transform_resource_name('test', fake_ctx), 'prfx_test') # prefix exist in name fake_ctx._bootstrap_context.resources_prefix = 'prfx_' self.assertEqual( vcloud_plugin_common.transform_resource_name( 'prfx_test', fake_ctx), 'prfx_prfx_test')
def create(vca_client, **kwargs): config = get_vcloud_config() server = { 'name': ctx.instance.id, } server.update(ctx.node.properties.get('server', {})) transform_resource_name(server, ctx) if ctx.node.properties.get('use_external_resource'): res_id = ctx.node.properties['resource_id'] ctx.instance.runtime_properties[VCLOUD_VAPP_NAME] = res_id ctx.logger.info( "External resource {0} has been used".format(res_id)) else: _create(vca_client, config, server)
def create(vca_client, **kwargs): """ create server by template, if external_resource set return without creation, e.g.: { 'management_network': '_management_network', 'server': { 'template': 'template', 'catalog': 'catalog', 'guest_customization': { 'pre_script': 'pre_script', 'post_script': 'post_script', 'admin_password': '******', 'computer_name': 'computer' } } } """ config = get_vcloud_config() server = { 'name': ctx.instance.id, } server.update(ctx.node.properties.get('server', {})) transform_resource_name(server, ctx) if ctx.node.properties.get('use_external_resource'): res_id = ctx.node.properties['resource_id'] ctx.instance.runtime_properties[VCLOUD_VAPP_NAME] = res_id vdc = vca_client.get_vdc(config['vdc']) if not vca_client.get_vapp(vdc, res_id): raise cfy_exc.NonRecoverableError( "Unable to find external vAPP server resource {0}." .format(res_id)) server.update({'name': res_id}) ctx.logger.info( "External resource {0} has been used".format(res_id)) else: _create(vca_client, config, server)
def test_transform_resource_name(self): fake_ctx = self.generate_node_context() fake_ctx._bootstrap_context = mock.Mock() fake_ctx._bootstrap_context.resources_prefix = None # wrong resource name type with self.assertRaises(ValueError): vcloud_plugin_common.transform_resource_name(None, fake_ctx) with self.assertRaises(ValueError): vcloud_plugin_common.transform_resource_name(11, fake_ctx) # resource name string self.assertEqual(vcloud_plugin_common.transform_resource_name("test", fake_ctx), "test") # resource name is dict self.assertEqual(vcloud_plugin_common.transform_resource_name({"name": "test"}, fake_ctx), "test") # prefix not exist in name fake_ctx._bootstrap_context.resources_prefix = "prfx_" self.assertEqual(vcloud_plugin_common.transform_resource_name("test", fake_ctx), "prfx_test") # prefix exist in name fake_ctx._bootstrap_context.resources_prefix = "prfx_" self.assertEqual(vcloud_plugin_common.transform_resource_name("prfx_test", fake_ctx), "prfx_prfx_test")