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
bin
etc/melange
melange
common
ipam
tests
@ -57,7 +57,7 @@ if __name__ == '__main__':
|
||||
create_options(oparser)
|
||||
(options, args) = config.parse_options(oparser)
|
||||
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)
|
||||
server = wsgi.Server()
|
||||
server.start(app, options.get('port', conf['bind_port']),
|
||||
|
@ -52,7 +52,7 @@ def _load_app_environment():
|
||||
oparser = optparse.OptionParser()
|
||||
config.add_log_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)
|
||||
_configure_db_session(conf)
|
||||
|
||||
|
@ -108,7 +108,7 @@ if __name__ == '__main__':
|
||||
sys.exit(2)
|
||||
|
||||
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)
|
||||
|
||||
command_name = args.pop(0)
|
||||
|
@ -41,6 +41,9 @@ default_cidr = 10.0.0.0/24
|
||||
dns1 = "ns1.example.com"
|
||||
dns2 = "ns2.example.com"
|
||||
|
||||
#Number of days before deallocated IPs are deleted
|
||||
keep_deallocated_ips_for_days = 2
|
||||
|
||||
[composite:melange]
|
||||
use = call:melange.common.wsgi:versioned_urlmap
|
||||
/: versions
|
||||
|
@ -24,9 +24,7 @@ from openstack.common import config as openstack_config
|
||||
parse_options = openstack_config.parse_options
|
||||
add_log_options = openstack_config.add_log_options
|
||||
add_common_options = openstack_config.add_common_options
|
||||
load_paste_config = openstack_config.load_paste_config
|
||||
setup_logging = openstack_config.setup_logging
|
||||
load_paste_app = openstack_config.load_paste_app
|
||||
get_option = openstack_config.get_option
|
||||
|
||||
|
||||
@ -34,6 +32,18 @@ class Config(object):
|
||||
|
||||
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
|
||||
def get(cls, key, default=None):
|
||||
return cls.instance.get(key, default)
|
||||
|
@ -391,7 +391,7 @@ class IpBlock(ModelBase):
|
||||
|
||||
def _deallocated_by_date(self):
|
||||
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):
|
||||
network_id = network_id or self.network_id
|
||||
|
@ -455,7 +455,4 @@ class API(wsgi.Router):
|
||||
|
||||
|
||||
def app_factory(global_conf, **local_conf):
|
||||
conf = global_conf.copy()
|
||||
conf.update(local_conf)
|
||||
config.Config.instance = conf
|
||||
return API()
|
||||
|
@ -41,12 +41,12 @@ def setup():
|
||||
|
||||
|
||||
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)
|
||||
|
||||
|
||||
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)
|
||||
|
||||
|
||||
|
@ -15,7 +15,10 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import datetime
|
||||
|
||||
import melange
|
||||
from melange.common import config
|
||||
from melange.ipam import models
|
||||
from melange import tests
|
||||
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(
|
||||
melange.melange_bin_path('melange-manage')))
|
||||
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():
|
||||
conf_file, conf = config.load_paste_config("melange",
|
||||
{"config_file":
|
||||
test_config_path()}, None)
|
||||
options = {"config_file": test_config_path()}
|
||||
conf = config.Config.load_paste_config("melange", options, None)
|
||||
|
||||
db_api.drop_db(conf)
|
||||
db_api.db_sync(conf)
|
||||
|
@ -28,7 +28,7 @@ class TestExtensions(unittest.TestCase):
|
||||
|
||||
def test_extension_loads_with_melange_xmlns(self):
|
||||
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)
|
||||
test_app = webtest.TestApp(app)
|
||||
|
||||
|
@ -36,7 +36,7 @@ class BaseTestController(tests.BaseTest):
|
||||
|
||||
def setUp(self):
|
||||
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)
|
||||
self.app = unit.TestApp(melange_app)
|
||||
|
||||
|
@ -25,7 +25,7 @@ from melange.tests import unit
|
||||
class TestVersionsController(tests.BaseTest):
|
||||
|
||||
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)
|
||||
self.test_app = webtest.TestApp(melange_app)
|
||||
super(TestVersionsController, self).setUp()
|
||||
|
Loading…
x
Reference in New Issue
Block a user