Rajaram/Vinkesh| fixed bug in melange-delete-deallocated-ips where it wasnt loading the config file
This commit is contained in:
parent
c760a91ec5
commit
19f34dedb0
@ -57,7 +57,7 @@ if __name__ == '__main__':
|
|||||||
create_options(oparser)
|
create_options(oparser)
|
||||||
(options, args) = config.parse_options(oparser)
|
(options, args) = config.parse_options(oparser)
|
||||||
try:
|
try:
|
||||||
conf, app = config.load_paste_app('melange', options, args)
|
conf, app = config.Config.load_paste_app('melange', options, args)
|
||||||
db_api.configure_db(conf)
|
db_api.configure_db(conf)
|
||||||
server = wsgi.Server()
|
server = wsgi.Server()
|
||||||
server.start(app, options.get('port', conf['bind_port']),
|
server.start(app, options.get('port', conf['bind_port']),
|
||||||
|
@ -52,7 +52,7 @@ def _load_app_environment():
|
|||||||
oparser = optparse.OptionParser()
|
oparser = optparse.OptionParser()
|
||||||
config.add_log_options(oparser)
|
config.add_log_options(oparser)
|
||||||
(options, args) = config.parse_options(oparser)
|
(options, args) = config.parse_options(oparser)
|
||||||
conf_file, conf = config.load_paste_config('melange', options, args)
|
conf = config.Config.load_paste_config('melange', options, args)
|
||||||
config.setup_logging(options=options, conf=conf)
|
config.setup_logging(options=options, conf=conf)
|
||||||
_configure_db_session(conf)
|
_configure_db_session(conf)
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ if __name__ == '__main__':
|
|||||||
sys.exit(2)
|
sys.exit(2)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
conf_file, conf = config.load_paste_config('melange', options, args)
|
conf = config.Config.load_paste_config('melange', options, args)
|
||||||
config.setup_logging(options, conf)
|
config.setup_logging(options, conf)
|
||||||
|
|
||||||
command_name = args.pop(0)
|
command_name = args.pop(0)
|
||||||
|
@ -41,6 +41,9 @@ default_cidr = 10.0.0.0/24
|
|||||||
dns1 = "ns1.example.com"
|
dns1 = "ns1.example.com"
|
||||||
dns2 = "ns2.example.com"
|
dns2 = "ns2.example.com"
|
||||||
|
|
||||||
|
#Number of days before deallocated IPs are deleted
|
||||||
|
keep_deallocated_ips_for_days = 2
|
||||||
|
|
||||||
[composite:melange]
|
[composite:melange]
|
||||||
use = call:melange.common.wsgi:versioned_urlmap
|
use = call:melange.common.wsgi:versioned_urlmap
|
||||||
/: versions
|
/: versions
|
||||||
|
@ -24,9 +24,7 @@ from openstack.common import config as openstack_config
|
|||||||
parse_options = openstack_config.parse_options
|
parse_options = openstack_config.parse_options
|
||||||
add_log_options = openstack_config.add_log_options
|
add_log_options = openstack_config.add_log_options
|
||||||
add_common_options = openstack_config.add_common_options
|
add_common_options = openstack_config.add_common_options
|
||||||
load_paste_config = openstack_config.load_paste_config
|
|
||||||
setup_logging = openstack_config.setup_logging
|
setup_logging = openstack_config.setup_logging
|
||||||
load_paste_app = openstack_config.load_paste_app
|
|
||||||
get_option = openstack_config.get_option
|
get_option = openstack_config.get_option
|
||||||
|
|
||||||
|
|
||||||
@ -34,6 +32,18 @@ class Config(object):
|
|||||||
|
|
||||||
instance = {}
|
instance = {}
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def load_paste_app(cls, *args, **kwargs):
|
||||||
|
conf, app = openstack_config.load_paste_app(*args, **kwargs)
|
||||||
|
cls.instance = conf
|
||||||
|
return conf, app
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def load_paste_config(cls, *args, **kwargs):
|
||||||
|
conf_file, conf = openstack_config.load_paste_config(*args, **kwargs)
|
||||||
|
cls.instance = conf
|
||||||
|
return conf
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get(cls, key, default=None):
|
def get(cls, key, default=None):
|
||||||
return cls.instance.get(key, default)
|
return cls.instance.get(key, default)
|
||||||
|
@ -391,7 +391,7 @@ class IpBlock(ModelBase):
|
|||||||
|
|
||||||
def _deallocated_by_date(self):
|
def _deallocated_by_date(self):
|
||||||
days = config.Config.get('keep_deallocated_ips_for_days', 2)
|
days = config.Config.get('keep_deallocated_ips_for_days', 2)
|
||||||
return utils.utcnow() - datetime.timedelta(days=days)
|
return utils.utcnow() - datetime.timedelta(days=int(days))
|
||||||
|
|
||||||
def subnet(self, cidr, network_id=None, tenant_id=None):
|
def subnet(self, cidr, network_id=None, tenant_id=None):
|
||||||
network_id = network_id or self.network_id
|
network_id = network_id or self.network_id
|
||||||
|
@ -455,7 +455,4 @@ class API(wsgi.Router):
|
|||||||
|
|
||||||
|
|
||||||
def app_factory(global_conf, **local_conf):
|
def app_factory(global_conf, **local_conf):
|
||||||
conf = global_conf.copy()
|
|
||||||
conf.update(local_conf)
|
|
||||||
config.Config.instance = conf
|
|
||||||
return API()
|
return API()
|
||||||
|
@ -41,12 +41,12 @@ def setup():
|
|||||||
|
|
||||||
|
|
||||||
def _configure_db():
|
def _configure_db():
|
||||||
conf_file, conf = config.load_paste_config("melange", {}, None)
|
conf = config.Config.load_paste_config("melange", {}, None)
|
||||||
db_api.configure_db(conf)
|
db_api.configure_db(conf)
|
||||||
|
|
||||||
|
|
||||||
def _db_sync():
|
def _db_sync():
|
||||||
conf_file, conf = config.load_paste_config("melange", {}, None)
|
conf = config.Config.load_paste_config("melange", {}, None)
|
||||||
db_api.db_sync(conf)
|
db_api.db_sync(conf)
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,7 +15,10 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
|
||||||
import melange
|
import melange
|
||||||
|
from melange.common import config
|
||||||
from melange.ipam import models
|
from melange.ipam import models
|
||||||
from melange import tests
|
from melange import tests
|
||||||
from melange.tests.factories import models as factory_models
|
from melange.tests.factories import models as factory_models
|
||||||
@ -389,3 +392,25 @@ class TestDBUpgradeCLI(tests.BaseTest):
|
|||||||
exitcode, out, err = functional.execute("{0} db_upgrade".format(
|
exitcode, out, err = functional.execute("{0} db_upgrade".format(
|
||||||
melange.melange_bin_path('melange-manage')))
|
melange.melange_bin_path('melange-manage')))
|
||||||
self.assertEqual(exitcode, 0)
|
self.assertEqual(exitcode, 0)
|
||||||
|
|
||||||
|
|
||||||
|
class TestDeleteDeallocatedIps(tests.BaseTest):
|
||||||
|
|
||||||
|
def test_deallocated_ips_get_deleted(self):
|
||||||
|
block = factory_models.PublicIpBlockFactory()
|
||||||
|
ip = block.allocate_ip()
|
||||||
|
block.deallocate_ip(ip.address)
|
||||||
|
|
||||||
|
days = config.Config.get('keep_deallocated_ips_for_days')
|
||||||
|
self._push_back_deallocated_date(ip, days)
|
||||||
|
|
||||||
|
exitcode, out, err = functional.execute(
|
||||||
|
melange.melange_bin_path('melange-delete-deallocated-ips'))
|
||||||
|
|
||||||
|
self.assertIsNone(models.IpAddress.get(ip.id))
|
||||||
|
|
||||||
|
def _push_back_deallocated_date(self, ip, days):
|
||||||
|
days_to_subtract = datetime.timedelta(days=int(days))
|
||||||
|
deallocated_ip = models.IpAddress.find(ip.id)
|
||||||
|
new_deallocated_date = deallocated_ip.deallocated_at - days_to_subtract
|
||||||
|
deallocated_ip.update(deallocated_at=(new_deallocated_date))
|
||||||
|
@ -79,9 +79,8 @@ class TestApp(webtest.TestApp):
|
|||||||
|
|
||||||
|
|
||||||
def setup():
|
def setup():
|
||||||
conf_file, conf = config.load_paste_config("melange",
|
options = {"config_file": test_config_path()}
|
||||||
{"config_file":
|
conf = config.Config.load_paste_config("melange", options, None)
|
||||||
test_config_path()}, None)
|
|
||||||
|
|
||||||
db_api.drop_db(conf)
|
db_api.drop_db(conf)
|
||||||
db_api.db_sync(conf)
|
db_api.db_sync(conf)
|
||||||
|
@ -28,7 +28,7 @@ class TestExtensions(unittest.TestCase):
|
|||||||
|
|
||||||
def test_extension_loads_with_melange_xmlns(self):
|
def test_extension_loads_with_melange_xmlns(self):
|
||||||
options = {'config_file': unit.test_config_path()}
|
options = {'config_file': unit.test_config_path()}
|
||||||
conf, app = config.load_paste_app('extensions_app_with_filter',
|
conf, app = config.Config.load_paste_app('extensions_app_with_filter',
|
||||||
options, None)
|
options, None)
|
||||||
test_app = webtest.TestApp(app)
|
test_app = webtest.TestApp(app)
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ class BaseTestController(tests.BaseTest):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(BaseTestController, self).setUp()
|
super(BaseTestController, self).setUp()
|
||||||
conf, melange_app = config.load_paste_app('melange',
|
conf, melange_app = config.Config.load_paste_app('melange',
|
||||||
{"config_file": unit.test_config_path()}, None)
|
{"config_file": unit.test_config_path()}, None)
|
||||||
self.app = unit.TestApp(melange_app)
|
self.app = unit.TestApp(melange_app)
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ from melange.tests import unit
|
|||||||
class TestVersionsController(tests.BaseTest):
|
class TestVersionsController(tests.BaseTest):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
conf, melange_app = config.load_paste_app('versioned_melange',
|
conf, melange_app = config.Config.load_paste_app('versioned_melange',
|
||||||
{"config_file": unit.test_config_path()}, None)
|
{"config_file": unit.test_config_path()}, None)
|
||||||
self.test_app = webtest.TestApp(melange_app)
|
self.test_app = webtest.TestApp(melange_app)
|
||||||
super(TestVersionsController, self).setUp()
|
super(TestVersionsController, self).setUp()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user