@ReadPermission
def status(self):
status = {'available': False}
- if not IscsiGatewaysConfig.get_gateways_config()['gateways']:
+ gateways = IscsiGatewaysConfig.get_gateways_config()['gateways']
+ if not gateways:
status['message'] = 'There are no gateways defined'
return status
try:
+ for gateway in gateways.keys():
+ try:
+ IscsiClient.instance(gateway_name=gateway).ping()
+ except RequestException:
+ status['message'] = 'Gateway {} is inaccessible'.format(gateway)
+ return status
config = IscsiClient.instance().get_config()
if config['version'] != IscsiUi.REQUIRED_CEPH_ISCSI_CONFIG_VERSION:
status['message'] = 'Unsupported `ceph-iscsi` config version. Expected {} but ' \
targets = []
for target_iqn in config['targets'].keys():
target = IscsiTarget._config_to_target(target_iqn, config)
+ IscsiTarget._set_info(target)
targets.append(target)
return targets
config = IscsiClient.instance().get_config()
if target_iqn not in config['targets']:
raise cherrypy.HTTPError(404)
- return IscsiTarget._config_to_target(target_iqn, config)
+ target = IscsiTarget._config_to_target(target_iqn, config)
+ IscsiTarget._set_info(target)
+ return target
@iscsi_target_task('delete', {'target_iqn': '{target_iqn}'})
def delete(self, target_iqn):
}
return target
+ @staticmethod
+ def _set_info(target):
+ if not target['portals']:
+ return
+ target_iqn = target['target_iqn']
+ gateway_name = target['portals'][0]['host']
+ target_info = IscsiClient.instance(gateway_name=gateway_name).get_targetinfo(target_iqn)
+ target['info'] = target_info
+
@staticmethod
def _sorted_portals(portals):
portals = portals or []
<context context-type="linenumber">1</context>
</context-group>
</trans-unit>
+ <trans-unit id="99e094878070eebc1b972bac02aaa33b2bf83b35" datatype="html">
+ <source># Sessions</source>
+ <context-group purpose="location">
+ <context context-type="sourcefile">src/app/ceph/block/iscsi-target-list/iscsi-target-list.component.ts</context>
+ <context context-type="linenumber">1</context>
+ </context-group>
+ </trans-unit>
<trans-unit id="9a541ec1a4319fffc16ad3b3ab2c2b6d251a829d" datatype="html">
<source>Hostname</source>
<context-group purpose="location">