def test_validate_invalid_config(self): """ Tests whether an invalid config is validated properly. """ cfg = CloudManConfig() result = cfg.validate() self.assertIsNotNone(result, "Validation should have returned a value since the configuration was invalid!")
def test_validate_valid_config(self): """ Tests whether a valid config is validated properly. """ # cfg = CloudManConfig(self.access_key, self.secret_key, self.cluster_name, self.ami_id, self.instance_type, self.password, cloud_metadata=self.cloud_metadata) cls = TestCloudmanLaunch cfg = CloudManConfig(cls.access_key, cls.secret_key, cls.cluster_name, cls.ami_id, cls.instance_type, cls.password, cloud_metadata=cls.cloud_metadata) result = cfg.validate() self.assertIsNone(result, "Validation did not return null to indicate success!")
def setUpClass(cls): super(TestCloudmanServices, cls).setUpClass() cls.cfg = CloudManConfig(cls.access_key, cls.secret_key, cls.cluster_name, cls.ami_id, cls.instance_type, cls.password, cloud_metadata=cls.cloud_metadata) cls.cmi = CloudManInstance.launch_instance(cls.cfg)
def test_launch_and_terminate(self): cls = TestCloudmanLaunch cfg = CloudManConfig(cls.access_key, cls.secret_key, cls.cluster_name, cls.ami_id, cls.instance_type, cls.password, cloud_metadata=cls.cloud_metadata) cmi = CloudManInstance.launch_instance(cfg) status = cmi.get_status() self.assertNotEqual(status['cluster_status'], 'ERROR', "instance.get_status() returned ERROR. Should return a successful status!") with contextlib.suppress(Exception): # TODO: The terminate method is unpredictable! Needs fix. result = cmi.terminate(delete_cluster=True) self.assertEqual(result['cluster_status'], 'SHUTDOWN', "Cluster should be in status SHUTDOWN after call to terminate!")
def start_cloudman(name, pwd, cm_type, inst_type, ami, ak, sk): """ Start an instance of CloudMan with the provided arguments. Returns a tuple: an instance of ``CloudManConfig`` pointing to the settings used to launch this instance of CloudMan; and an instance of ``CloudManInstance`` pointing to the given instance of CloudMan. """ cloud = None # If left as None, BioBlend will default to Amazon # Define properties for the NeCTAR cloud cloud = Bunch(id='-1', name="NeCTAR", cloud_type='openstack', bucket_default='cloudman-os', region_name='melbourne', region_endpoint='nova.rc.nectar.org.au', ec2_port=8773, ec2_conn_path='/services/Cloud', cidr_range='115.146.92.0/22', is_secure=True, s3_host='swift.rc.nectar.org.au', s3_port=8888, s3_conn_path='/') # Create an instance of the CloudManConfig class and launch a CloudMan instance cmc = CloudManConfig(ak, sk, name, ami, inst_type, pwd, cloud_metadata=cloud, cloudman_type=cm_type, initial_storage_size=2, placement='melbourne-np') print("Configured an instance; waiting to launch and boot...") cmi = CloudManInstance.launch_instance(cmc) print("Done! CloudMan IP is {0}".format(cmi.cloudman_url)) return cmc, cmi