def test_all_newest(self): for version in ['1.0.0', '2.0.0', '0.0.1']: plugin_data = self.env.get_default_plugin_metadata( version=version, name='multiversion_plugin') Plugin.create(plugin_data) single_plugin_data = self.env.get_default_plugin_metadata( name='single_plugin') Plugin.create(single_plugin_data) newest_plugins = PluginCollection.all_newest() self.assertEqual(len(newest_plugins), 2) single_plugin = filter( lambda p: p.name == 'single_plugin', newest_plugins) multiversion_plugin = filter( lambda p: p.name == 'multiversion_plugin', newest_plugins) self.assertEqual(len(single_plugin), 1) self.assertEqual(len(multiversion_plugin), 1) self.assertEqual(multiversion_plugin[0].version, '2.0.0')
def setUp(self): super(TestMigrationPluginsClusterAttrs, self).setUp() self.cluster = self.env.create() self.plugins = [ Plugin.create(self.env.get_default_plugin_metadata( name='plugin_name_1')), Plugin.create(self.env.get_default_plugin_metadata( name='plugin_name_2'))]
def setUp(self): super(TestMigrationPluginsClusterAttrs, self).setUp() self.cluster = self.env.create() self.plugins = [ Plugin.create( self.env.get_default_plugin_metadata(name='plugin_name_1')), Plugin.create( self.env.get_default_plugin_metadata(name='plugin_name_2')) ]
def _create_test_plugins(self): plugin_ids = [] for version in ['1.0.0', '2.0.0', '0.0.1', '3.0.0']: plugin_data = self.env.get_default_plugin_metadata( version=version, name='multiversion_plugin') plugin = Plugin.create(plugin_data) plugin_ids.append(plugin.id) single_plugin_data = self.env.get_default_plugin_metadata( name='single_plugin') plugin = Plugin.create(single_plugin_data) plugin_ids.append(plugin.id) return plugin_ids
def setUp(self): super(TestNailgunReceiver, self).setUp() self.cluster = self.env.create( status=consts.CLUSTER_STATUSES.operational, nodes_kwargs=[{ 'roles': ['controller'], 'status': consts.NODE_STATUSES.ready }]) for i in range(2): meta = self.env.get_default_plugin_metadata( name='name{0}'.format(i), title='title{0}'.format(i), description='description{0}'.format(i)) self.plugin = Plugin.create(meta) self.cluster.plugins.append(self.plugin) ClusterPlugins.set_attributes(self.cluster.id, self.plugin.id, enabled=True) self.task = self.env.create_task(name=consts.TASK_NAMES.deployment, status=consts.TASK_STATUSES.ready, cluster_id=self.cluster.id)
def test_add_nodes_for_cluster_plugin_with_empty_attributes(self): meta = base.reflect_db_metadata() self.env.create_node( cluster_id=self.cluster.id, roles=['compute'] ) plugin = Plugin.create({ 'name': 'plugin_a_with_node_attributes', 'title': 'Test Plugin', 'package_version': '5.0.0', 'version': '1.0.0', 'node_attributes_metadata': {} }) cluster_plugin = ClusterPlugin.create({ 'cluster_id': self.cluster.id, 'plugin_id': plugin.id, 'enabled': False, 'attributes': plugin.node_attributes_metadata }) NodeClusterPlugin.add_nodes_for_cluster_plugin(cluster_plugin) node_cluster_plugins = self.db.execute( meta.tables['node_cluster_plugins'].select() ).fetchall() self.assertEqual(0, len(node_cluster_plugins))
def setUp(self): super(TestNailgunReceiver, self).setUp() self.env.create( status=consts.CLUSTER_STATUSES.operational, nodes_kwargs=[ {'roles': ['controller'], 'status': consts.NODE_STATUSES.ready}]) self.cluster = self.env.clusters[0] for i in range(2): meta = self.env.get_default_plugin_metadata( name='name{0}'.format(i), title='title{0}'.format(i), description='description{0}'.format(i)) self.plugin = Plugin.create(meta) self.cluster.plugins.append(self.plugin) ClusterPlugins.set_attributes(self.cluster.id, self.plugin.id, enabled=True) self.task = self.env.create_task( name=consts.TASK_NAMES.deployment, status=consts.TASK_STATUSES.ready, cluster_id=self.cluster.id)
def _create_test_plugins(self): plugin_ids = [] for version in ["1.0.0", "2.0.0", "0.0.1", "3.0.0", "4.0.0", "5.0.0"]: plugin_data = self.env.get_default_plugin_metadata(version=version, name="multiversion_plugin") plugin = Plugin.create(plugin_data) plugin_ids.append(plugin.id) single_plugin_data = self.env.get_default_plugin_metadata(name="single_plugin") plugin = Plugin.create(single_plugin_data) plugin_ids.append(plugin.id) incompatible_plugin_data = self.env.get_default_plugin_metadata(name="incompatible_plugin", releases=[]) plugin = Plugin.create(incompatible_plugin_data) plugin_ids.append(plugin.id) return plugin_ids
def setUp(self): super(TestClusterCompatibilityValidation, self).setUp() self.plugin = Plugin.create(self.env.get_default_plugin_metadata( releases=[{ 'version': '2014.2-6.0', 'os': 'ubuntu', 'mode': ['ha']}])) self.plugin_adapter = adapters.PluginAdapterV1(self.plugin)
def setUp(self): super(TestClusterCompatiblityValidation, self).setUp() self.plugin = Plugin.create(self.env.get_default_plugin_metadata( releases=[{ 'version': '2014.2-6.0', 'os': 'ubuntu', 'mode': ['ha']}])) self.attr_plugin = attr_plugin.ClusterAttributesPluginV1(self.plugin)
def setUp(self): super(TestClusterCompatiblityValidation, self).setUp() self.plugin = Plugin.create( self.env.get_default_plugin_metadata(releases=[{ 'version': '2014.2-6.0', 'os': 'ubuntu', 'mode': ['ha'] }])) self.attr_plugin = attr_plugin.ClusterAttributesPluginV1(self.plugin)
def test_all_newest(self): for version in ['1.0.0', '2.0.0', '0.0.1']: plugin_data = self.env.get_default_plugin_metadata( version=version, name='multiversion_plugin') Plugin.create(plugin_data) single_plugin_data = self.env.get_default_plugin_metadata( name='single_plugin') Plugin.create(single_plugin_data) newest_plugins = PluginCollection.all_newest() self.assertEqual(len(newest_plugins), 2) single_plugin = filter(lambda p: p.name == 'single_plugin', newest_plugins) multiversion_plugin = filter(lambda p: p.name == 'multiversion_plugin', newest_plugins) self.assertEqual(len(single_plugin), 1) self.assertEqual(len(multiversion_plugin), 1) self.assertEqual(multiversion_plugin[0].version, '2.0.0')
def setUp(self): super(TestPluginBase, self).setUp() self.plugin_metadata = self.env.get_default_plugin_metadata( package_version=self.package_version) self.plugin = Plugin.create(self.plugin_metadata) self.env.create( cluster_kwargs={'mode': 'multinode'}, release_kwargs={ 'version': '2014.2-6.0', 'operating_system': 'Ubuntu'}) self.cluster = self.env.clusters[0] self.attr_plugin = attr_plugin.wrap_plugin(self.plugin) self.env_config = self.env.get_default_plugin_env_config() self.get_config = lambda *args: mock.mock_open( read_data=yaml.dump(self.env_config))() db().flush()
def setUp(self): super(TestPluginBase, self).setUp() self.plugin_metadata = self.env.get_default_plugin_metadata( package_version=self.package_version) self.plugin = Plugin.create(self.plugin_metadata) self.env.create(cluster_kwargs={'mode': 'multinode'}, release_kwargs={ 'version': '2014.2-6.0', 'operating_system': 'Ubuntu' }) self.cluster = self.env.clusters[0] self.attr_plugin = attr_plugin.wrap_plugin(self.plugin) self.env_config = self.env.get_default_plugin_env_config() self.get_config = lambda *args: mock.mock_open(read_data=yaml.dump( self.env_config))() db().flush()
def setUp(self): super(TestPluginBase, self).setUp() self.plugin_metadata = self.env.get_default_plugin_metadata( package_version=self.package_version, roles_metadata={ 'role_x': { 'name': 'Role X', 'description': 'Role X is ...', }, 'role_y': { 'name': 'Role Y', 'description': 'Role Y is ...', 'restrictions': [], 'fault_tolerance': '5%' }, 'role_z': { 'name': 'Role Z', 'description': 'Role Z is ...', 'restrictions': ['settings:some.stuff.value == false'], 'fault_tolerance': '10%' } }) self.plugin = Plugin.create(self.plugin_metadata) self.cluster = self.env.create( cluster_kwargs={'mode': consts.CLUSTER_MODES.multinode}, release_kwargs={ 'version': '2015.1-8.0', 'operating_system': 'Ubuntu', 'modes': [ consts.CLUSTER_MODES.multinode, consts.CLUSTER_MODES.ha_compact ] }) self.plugin_adapter = plugins.wrap_plugin(self.plugin) self.env_config = self.env.get_default_plugin_env_config() self.get_config = lambda *args: mock.mock_open(read_data=yaml.dump( self.env_config))() db().flush()
def setUp(self): super(TestPluginBase, self).setUp() self.plugin_metadata = self.env.get_default_plugin_metadata( package_version=self.package_version, roles_metadata={ 'role_x': { 'name': 'Role X', 'description': 'Role X is ...', }, 'role_y': { 'name': 'Role Y', 'description': 'Role Y is ...', 'restrictions': [], 'fault_tolerance': '5%' }, 'role_z': { 'name': 'Role Z', 'description': 'Role Z is ...', 'restrictions': [ 'settings:some.stuff.value == false' ], 'fault_tolerance': '10%' } } ) self.plugin = Plugin.create(self.plugin_metadata) self.cluster = self.env.create( cluster_kwargs={'mode': consts.CLUSTER_MODES.multinode}, release_kwargs={ 'version': '2015.1-8.0', 'operating_system': 'Ubuntu', 'modes': [consts.CLUSTER_MODES.multinode, consts.CLUSTER_MODES.ha_compact]}) self.plugin_adapter = plugins.wrap_plugin(self.plugin) self.env_config = self.env.get_default_plugin_env_config() self.get_config = lambda *args: mock.mock_open( read_data=yaml.dump(self.env_config))() db().flush()
def create_plugin(self, api=False, cluster=None, **kwargs): plugin_data = self.get_default_plugin_metadata() plugin_data.update(kwargs) if api: resp = self.app.post( reverse("PluginCollectionHandler"), jsonutils.dumps(plugin_data), headers=self.default_headers, expect_errors=False, ) plugin = Plugin.get_by_uid(resp.json_body["id"]) self.plugins.append(plugin) else: plugin = Plugin.create(plugin_data) self.plugins.append(plugin) # Enable plugin for specific cluster if cluster: cluster.plugins.append(plugin) return plugin
def setUp(self): super(TestClusterCompatiblityValidation, self).setUp() self.plugin = Plugin.create(self.env.get_default_plugin_metadata()) self.attr_plugin = attr_plugin.ClusterAttributesPlugin(self.plugin)
def test_graphs_creation(self): metadata_update = { 'name': 'graphs_plugin', 'description': 'testing graphs', 'package_version': '5.0.0', 'graphs': [ { 'type': 'default', 'name': 'default', 'tasks': [ {'id': 'default', 'type': 'puppet'} ] }, { 'type': 'custom', 'name': 'custom', 'tasks': [ {'id': 'custom', 'type': 'puppet'} ] } ]} metadata = self.env.get_default_plugin_metadata() metadata.update(metadata_update) plugin = Plugin.create(metadata) def_graph = DeploymentGraph.get_for_model( plugin, graph_type='default' ) self.assertEqual(def_graph.name, 'default') self.assertEqual( DeploymentGraph.get_tasks(def_graph), [ { 'id': 'default', 'task_name': 'default', 'type': 'puppet', 'version': '1.0.0' } ] ) custom_graph = DeploymentGraph.get_for_model( plugin, graph_type='custom' ) self.assertEqual(custom_graph.name, 'custom') self.assertEqual( DeploymentGraph.get_tasks(custom_graph), [ { 'id': 'custom', 'task_name': 'custom', 'type': 'puppet', 'version': '1.0.0' } ] ) Plugin.update(plugin, metadata) def_graph = DeploymentGraph.get_for_model( plugin, graph_type='default' ) self.assertEqual(def_graph.name, 'default') self.assertEqual( DeploymentGraph.get_tasks(def_graph), [ { 'id': 'default', 'task_name': 'default', 'type': 'puppet', 'version': '1.0.0' } ] ) custom_graph = DeploymentGraph.get_for_model( plugin, graph_type='custom' ) self.assertEqual(custom_graph.name, 'custom') self.assertEqual( DeploymentGraph.get_tasks(custom_graph), [ { 'id': 'custom', 'task_name': 'custom', 'type': 'puppet', 'version': '1.0.0' } ] )
def test_graphs_creation(self): metadata_update = { 'name': 'graphs_plugin', 'description': 'testing graphs', 'package_version': '5.0.0', 'graphs': [{ 'type': 'default', 'name': 'default', 'tasks': [{ 'id': 'default', 'type': 'puppet' }] }, { 'type': 'custom', 'name': 'custom', 'tasks': [{ 'id': 'custom', 'type': 'puppet' }] }] } metadata = self.env.get_default_plugin_metadata() metadata.update(metadata_update) plugin = Plugin.create(metadata) def_graph = DeploymentGraph.get_for_model(plugin, graph_type='default') self.assertEqual(def_graph.name, 'default') self.assertEqual(DeploymentGraph.get_tasks(def_graph), [{ 'id': 'default', 'task_name': 'default', 'type': 'puppet', 'version': '1.0.0' }]) custom_graph = DeploymentGraph.get_for_model(plugin, graph_type='custom') self.assertEqual(custom_graph.name, 'custom') self.assertEqual(DeploymentGraph.get_tasks(custom_graph), [{ 'id': 'custom', 'task_name': 'custom', 'type': 'puppet', 'version': '1.0.0' }]) Plugin.update(plugin, metadata) def_graph = DeploymentGraph.get_for_model(plugin, graph_type='default') self.assertEqual(def_graph.name, 'default') self.assertEqual(DeploymentGraph.get_tasks(def_graph), [{ 'id': 'default', 'task_name': 'default', 'type': 'puppet', 'version': '1.0.0' }]) custom_graph = DeploymentGraph.get_for_model(plugin, graph_type='custom') self.assertEqual(custom_graph.name, 'custom') self.assertEqual(DeploymentGraph.get_tasks(custom_graph), [{ 'id': 'custom', 'task_name': 'custom', 'type': 'puppet', 'version': '1.0.0' }])