diff options
| author | Renuka Apte <renuka.apte@citrix.com> | 2012-05-29 11:45:57 -0700 |
|---|---|---|
| committer | Renuka Apte <renuka.apte@citrix.com> | 2012-06-11 15:39:41 -0700 |
| commit | 9e337dac2960bbe8eaa4fbe3a8e5ca3e5e228936 (patch) | |
| tree | 141ef817aba2c90b990b274e3c718924436d7e44 | |
| parent | b1b09368f07b178416949b045f459bd00ec491a3 (diff) | |
| download | nova-9e337dac2960bbe8eaa4fbe3a8e5ca3e5e228936.tar.gz nova-9e337dac2960bbe8eaa4fbe3a8e5ca3e5e228936.tar.xz nova-9e337dac2960bbe8eaa4fbe3a8e5ca3e5e228936.zip | |
Revert "Fix nova-manage backend_add with sr_uuid"
Fixes bug 988596
Change 77495cfe breaks storage manager, as it makes a
wrong assumption about nova-manage. The sr-uuid must be
generated and provided by the xenapi storage manager.
When the volume service is started, SM volume driver will
create a new SR for everything that does not have an
existing sr_uuid and will populate the db with the result.
It will only introduce the SRs that do have one. The introduce
will work only if the uuid provided is something SM understands.
This partially reverts commit 77495cfed17f12f225e11fbc10e0f8db516dadf2.
Changes in db are left intact.
Change-Id: I8405ac905a15f829f704951b94297f3b6f6c0a29
| -rwxr-xr-x | bin/nova-manage | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/bin/nova-manage b/bin/nova-manage index ce8a6d794..be1159f54 100755 --- a/bin/nova-manage +++ b/bin/nova-manage @@ -1331,26 +1331,11 @@ class StorageManagerCommands(object): # TODO(renukaapte) Add backend_introduce. ctxt = context.get_admin_context() params = dict(map(self._splitfun, args)) - sr_uuid = utils.gen_uuid() - - if flavor_label is None: - print "error: backend needs to be associated with flavor" - sys.exit(2) - - try: - flavors = db.sm_flavor_get(ctxt, flavor_label) - - except exception.NotFound as ex: - print "error: %s" % ex - sys.exit(2) - - config_params = " ".join(['%s=%s' % - (key, params[key]) for key in params]) if 'sr_uuid' in params: - sr_uuid = params['sr_uuid'] try: - backend = db.sm_backend_conf_get_by_sr(ctxt, sr_uuid) + backend = db.sm_backend_conf_get_by_sr(ctxt, + params['sr_uuid']) except exception.DBError, e: _db_error(e) @@ -1361,24 +1346,38 @@ class StorageManagerCommands(object): if c == 'y' or c == 'Y': try: db.sm_backend_conf_update(ctxt, backend['id'], - dict(created=False, - flavor_id=flavors['id'], - sr_type=sr_type, - config_params=config_params)) + dict(created=False)) except exception.DBError, e: _db_error(e) return else: print 'Backend config not found. Would you like to create it?' + print '(WARNING: Creating will destroy all data on backend!!!)' + c = raw_input('Proceed? (y/n) ') + if c != 'y' and c != 'Y': + return print '(WARNING: Creating will destroy all data on backend!!!)' c = raw_input('Proceed? (y/n) ') if c == 'y' or c == 'Y': + if flavor_label is None: + print "error: backend needs to be associated with flavor" + sys.exit(2) + + try: + flavors = db.sm_flavor_get(ctxt, flavor_label) + except exception.NotFound as ex: + print "error: %s" % ex + sys.exit(2) + + config_params = "".join(['%s=%s ' % + (key, params[key]) for key in params]) + try: db.sm_backend_conf_create(ctxt, dict(flavor_id=flavors['id'], - sr_uuid=sr_uuid, + sr_uuid=None, sr_type=sr_type, config_params=config_params)) except exception.DBError, e: |
