From da58e4b9e0e123eca323b6ee1594e7757f763889 Mon Sep 17 00:00:00 2001 From: Jose Gonzalez Date: Mon, 20 Feb 2023 13:02:24 +0100 Subject: [PATCH] Ticket 10484 Fixed List Operating Systems --- pandora_console/extras/mr/62.sql | 40 +++---- pandora_console/godmode/setup/os.builder.php | 100 ++++++++++++------ pandora_console/godmode/setup/os.list.php | 25 +++-- pandora_console/godmode/setup/os.php | 16 +-- .../images/{HP@svg.svg => HP@os.svg} | 0 .../images/{aix@svg.svg => aix@os.svg} | 0 .../{android@svg.svg => android@os.svg} | 0 .../images/{apple@svg.svg => apple@os.svg} | 0 .../images/{cisco@svg.svg => cisco@os.svg} | 0 .../{cluster@svg.svg => cluster@os.svg} | 0 .../{embedded@svg.svg => embedded@os.svg} | 0 pandora_console/images/example_qr.png | Bin 0 -> 2275 bytes .../{freebsd@svg.svg => freebsd@os.svg} | 0 .../images/{linux@svg.svg => linux@os.svg} | 0 .../{mainframe@svg.svg => mainframe@os.svg} | 0 ...k-server@svg.svg => network-server@os.svg} | 0 .../{other-OS@svg.svg => other-OS@os.svg} | 0 .../{routers@svg.svg => routers@os.svg} | 0 .../{satellite@svg.svg => satellite@os.svg} | 0 .../{solaris@svg.svg => solaris@os.svg} | 0 .../images/{switch@svg.svg => switch@os.svg} | 0 .../images/{vmware@svg.svg => vmware@os.svg} | 0 .../{windows@svg.svg => windows@os.svg} | 0 .../include/styles/agent_manager.css | 2 + .../operation/agentes/estado_agente.php | 2 +- pandora_console/pandoradb_data.sql | 40 +++---- 26 files changed, 136 insertions(+), 89 deletions(-) rename pandora_console/images/{HP@svg.svg => HP@os.svg} (100%) rename pandora_console/images/{aix@svg.svg => aix@os.svg} (100%) rename pandora_console/images/{android@svg.svg => android@os.svg} (100%) rename pandora_console/images/{apple@svg.svg => apple@os.svg} (100%) rename pandora_console/images/{cisco@svg.svg => cisco@os.svg} (100%) rename pandora_console/images/{cluster@svg.svg => cluster@os.svg} (100%) rename pandora_console/images/{embedded@svg.svg => embedded@os.svg} (100%) create mode 100644 pandora_console/images/example_qr.png rename pandora_console/images/{freebsd@svg.svg => freebsd@os.svg} (100%) rename pandora_console/images/{linux@svg.svg => linux@os.svg} (100%) rename pandora_console/images/{mainframe@svg.svg => mainframe@os.svg} (100%) rename pandora_console/images/{network-server@svg.svg => network-server@os.svg} (100%) rename pandora_console/images/{other-OS@svg.svg => other-OS@os.svg} (100%) rename pandora_console/images/{routers@svg.svg => routers@os.svg} (100%) rename pandora_console/images/{satellite@svg.svg => satellite@os.svg} (100%) rename pandora_console/images/{solaris@svg.svg => solaris@os.svg} (100%) rename pandora_console/images/{switch@svg.svg => switch@os.svg} (100%) rename pandora_console/images/{vmware@svg.svg => vmware@os.svg} (100%) rename pandora_console/images/{windows@svg.svg => windows@os.svg} (100%) diff --git a/pandora_console/extras/mr/62.sql b/pandora_console/extras/mr/62.sql index 30760cd6b6..4d21f9bb2a 100644 --- a/pandora_console/extras/mr/62.sql +++ b/pandora_console/extras/mr/62.sql @@ -1,25 +1,25 @@ START TRANSACTION; -UPDATE tconfig_os SET `icon_name` = 'linux@svg.svg' WHERE `id_os` = 1; -UPDATE tconfig_os SET `icon_name` = 'solaris@svg.svg' WHERE `id_os` = 2; -UPDATE tconfig_os SET `icon_name` = 'aix@svg.svg' WHERE `id_os` = 3; -UPDATE tconfig_os SET `icon_name` = 'freebsd@svg.svg' WHERE `id_os` = 4; -UPDATE tconfig_os SET `icon_name` = 'HP@svg.svg' WHERE `id_os` = 5; -UPDATE tconfig_os SET `icon_name` = 'cisco@svg.svg' WHERE `id_os` = 7; -UPDATE tconfig_os SET `icon_name` = 'apple@svg.svg' WHERE `id_os` = 8; -UPDATE tconfig_os SET `icon_name` = 'windows@svg.svg' WHERE `id_os` = 9; -UPDATE tconfig_os SET `icon_name` = 'other-OS@svg.svg' WHERE `id_os` = 10; -UPDATE tconfig_os SET `icon_name` = 'network-server@svg.svg' WHERE `id_os` = 11; -UPDATE tconfig_os SET `icon_name` = 'network-server@svg.svg' WHERE `id_os` = 12; -UPDATE tconfig_os SET `icon_name` = 'network-server@svg.svg' WHERE `id_os` = 13; -UPDATE tconfig_os SET `icon_name` = 'embedded@svg.svg' WHERE `id_os` = 14; -UPDATE tconfig_os SET `icon_name` = 'android@svg.svg' WHERE `id_os` = 15; -UPDATE tconfig_os SET `icon_name` = 'vmware@svg.svg' WHERE `id_os` = 16; -UPDATE tconfig_os SET `icon_name` = 'routers@svg.svg' WHERE `id_os` = 17; -UPDATE tconfig_os SET `icon_name` = 'switch@svg.svg' WHERE `id_os` = 18; -UPDATE tconfig_os SET `icon_name` = 'satellite@svg.svg' WHERE `id_os` = 19; -UPDATE tconfig_os SET `icon_name` = 'mainframe@svg.svg' WHERE `id_os` = 20; -UPDATE tconfig_os SET `icon_name` = 'cluster@svg.svg' WHERE `id_os` = 100; +UPDATE tconfig_os SET `icon_name` = 'linux@os.svg' WHERE `id_os` = 1; +UPDATE tconfig_os SET `icon_name` = 'solaris@os.svg' WHERE `id_os` = 2; +UPDATE tconfig_os SET `icon_name` = 'aix@os.svg' WHERE `id_os` = 3; +UPDATE tconfig_os SET `icon_name` = 'freebsd@os.svg' WHERE `id_os` = 4; +UPDATE tconfig_os SET `icon_name` = 'HP@os.svg' WHERE `id_os` = 5; +UPDATE tconfig_os SET `icon_name` = 'cisco@os.svg' WHERE `id_os` = 7; +UPDATE tconfig_os SET `icon_name` = 'apple@os.svg' WHERE `id_os` = 8; +UPDATE tconfig_os SET `icon_name` = 'windows@os.svg' WHERE `id_os` = 9; +UPDATE tconfig_os SET `icon_name` = 'other-OS@os.svg' WHERE `id_os` = 10; +UPDATE tconfig_os SET `icon_name` = 'network-server@os.svg' WHERE `id_os` = 11; +UPDATE tconfig_os SET `icon_name` = 'network-server@os.svg' WHERE `id_os` = 12; +UPDATE tconfig_os SET `icon_name` = 'network-server@os.svg' WHERE `id_os` = 13; +UPDATE tconfig_os SET `icon_name` = 'embedded@os.svg' WHERE `id_os` = 14; +UPDATE tconfig_os SET `icon_name` = 'android@os.svg' WHERE `id_os` = 15; +UPDATE tconfig_os SET `icon_name` = 'vmware@os.svg' WHERE `id_os` = 16; +UPDATE tconfig_os SET `icon_name` = 'routers@os.svg' WHERE `id_os` = 17; +UPDATE tconfig_os SET `icon_name` = 'switch@os.svg' WHERE `id_os` = 18; +UPDATE tconfig_os SET `icon_name` = 'satellite@os.svg' WHERE `id_os` = 19; +UPDATE tconfig_os SET `icon_name` = 'mainframe@os.svg' WHERE `id_os` = 20; +UPDATE tconfig_os SET `icon_name` = 'cluster@os.svg' WHERE `id_os` = 100; UPDATE tgrupo SET `icon` = 'servers@groups.svg' WHERE `id_grupo` = 2; UPDATE tgrupo SET `icon` = 'firewall@groups.svg' WHERE `id_grupo` = 4; diff --git a/pandora_console/godmode/setup/os.builder.php b/pandora_console/godmode/setup/os.builder.php index 83b79e95a4..ac2026d0e6 100644 --- a/pandora_console/godmode/setup/os.builder.php +++ b/pandora_console/godmode/setup/os.builder.php @@ -1,17 +1,32 @@ '; $table = new stdClass(); $table->width = '100%'; $table->class = 'databox filters'; -$table->style[0] = 'font-weight: bolder;'; +$table->style[0] = 'width: 15%'; $table->data[0][0] = __('Name:'); -$table->data[0][1] = html_print_input_text('name', $name, __('Name'), 20, 30, true); +$table->data[0][1] = html_print_input_text('name', $name, __('Name'), 20, 30, true, false, false, '', 'w250px'); $table->data[1][0] = __('Description'); -$table->data[1][1] = html_print_textarea('description', 5, 10, $description, '', true); -$icons = get_list_os_icons_dir(); +$table->data[1][1] = html_print_textarea('description', 5, 20, $description, '', true, 'w250px'); $table->data[2][0] = __('Icon'); -$table->data[2][1] = html_print_select($icons, 'icon', $icon, 'show_icon_OS();', __('None'), 0, true); -$table->data[2][1] .= ' '.ui_print_os_icon($idOS, false, true).''; + +$iconData = []; +$iconData[] = html_print_select( + $icons, + 'icon', + $icon, + 'show_icon_OS();', + __('None'), + 0, + true +); +$iconData[] = html_print_div( + [ + 'id' => 'icon_image', + 'class' => 'inverse_filter main_menu_icon', + 'style' => 'margin-left: 10px', + 'content' => ui_print_os_icon($idOS, false, true), + ], + true +); + +$table->data[2][1] = html_print_div( + [ + 'style' => 'display: flex;align-items: center;', + 'content' => implode('', $iconData), + ], + true +); html_print_table($table); @@ -47,9 +89,11 @@ html_print_table($table); html_print_input_hidden('id_os', $idOS); html_print_input_hidden('action', $actionHidden); -echo '
'; -html_print_submit_button($textButton, 'update_button', false, $classButton); -echo '
'; +html_print_action_buttons( + html_print_submit_button($textButton, 'update_button', false, $classButton, true), + ['type' => 'form_action'] +); + echo ''; @@ -59,18 +103,10 @@ function get_list_os_icons_dir() $return = []; - $items = scandir($config['homedir'].'/images/os_icons'); + $items = scandir($config['homedir'].'/images/'); foreach ($items as $item) { - if (strstr($item, '_small.png') || strstr($item, '_small.gif') - || strstr($item, '_small.jpg') - ) { - continue; - } - - if (strstr($item, '.png') || strstr($item, '.gif') - || strstr($item, '.jpg') - ) { + if (strstr($item, '@os.svg')) { $return[$item] = $item; } } @@ -86,7 +122,7 @@ function show_icon_OS() { var params = []; params.push("get_image_path=1"); - params.push('img_src=images/os_icons/' + $("#icon").val()); + params.push('img_src=images/' + $("#icon").val()); params.push("page=include/ajax/skins.ajax"); jQuery.ajax ({ data: params.join ("&"), diff --git a/pandora_console/godmode/setup/os.list.php b/pandora_console/godmode/setup/os.list.php index 48a8b9b534..f8ba6a865a 100644 --- a/pandora_console/godmode/setup/os.list.php +++ b/pandora_console/godmode/setup/os.list.php @@ -1,6 +1,6 @@ width = '100%'; +// $table->width = '100%'; +$table->styleTable = 'margin: 10px 10px 0'; $table->class = 'info_table'; $table->head[0] = ''; @@ -102,7 +103,7 @@ if ($osList === false) { $table->data = []; foreach ($osList as $os) { $data = []; - $data[] = ui_print_os_icon($os['id_os'], false, true); + $data[] = html_print_div(['class' => 'main_menu_icon', 'content' => ui_print_os_icon($os['id_os'], false, true)], true); $data[] = $os['id_os']; if ($is_management_allowed === true) { if (is_metaconsole() === true) { @@ -119,11 +120,20 @@ foreach ($osList as $os) { if ($is_management_allowed === true) { $table->cellclass[][4] = 'table_action_buttons'; if ($os['id_os'] > 16) { - if (is_metaconsole()) { - $data[] = ''.html_print_image('images/cross.png', true).''; + if (is_metaconsole() === true) { + $hrefDelete = 'index.php?sec=advanced&sec2=advanced/component_management&tab=os_manage&action=delete&tab2=list&id_os='.$os['id_os']; } else { - $data[] = ''.html_print_image('images/cross.png', true, ['class' => 'invert_filter']).''; + $hrefDelete = 'index.php?sec=gsetup&sec2=godmode/setup/os&action=delete&tab=list&id_os='.$os['id_os']; } + + $data[] = html_print_anchor( + [ + 'href' => $hrefDelete, + 'class' => 'inverse_filter main_menu_icon', + 'content' => html_print_image('images/delete.svg', true), + ], + true + ); } else { // The original icons of pandora don't delete. $data[] = ''; @@ -134,7 +144,6 @@ foreach ($osList as $os) { } if (isset($data) === true) { - ui_pagination($count_osList, ui_get_url_refresh(['message' => false]), $offset); html_print_table($table); ui_pagination($count_osList, ui_get_url_refresh(['message' => false]), $offset, 0, false, 'offset', true, 'pagination-bottom'); } else { diff --git a/pandora_console/godmode/setup/os.php b/pandora_console/godmode/setup/os.php index dafdfe0730..8ced483492 100644 --- a/pandora_console/godmode/setup/os.php +++ b/pandora_console/godmode/setup/os.php @@ -71,7 +71,7 @@ if ($is_management_allowed === true) { case 'edit': $actionHidden = 'update'; $textButton = __('Update'); - $classButton = 'class="sub upd"'; + $classButton = ['icon' => 'wand']; break; case 'save': @@ -93,7 +93,7 @@ if ($is_management_allowed === true) { $tab = 'builder'; $actionHidden = 'save'; $textButton = __('Create'); - $classButton = 'class="sub next"'; + $classButton = ['icon' => 'wand']; } else { $tab = 'list'; $message = 1; @@ -140,7 +140,7 @@ if ($is_management_allowed === true) { $actionHidden = 'update'; $textButton = __('Update'); - $classButton = 'class="sub upd"'; + $classButton = ['icon' => 'wand']; if (is_metaconsole() === true) { header('Location:'.$config['homeurl'].'index.php?sec=advanced&sec2=advanced/component_management&tab=os_manage&tab2='.$tab.'&message='.$message); } else { @@ -175,7 +175,7 @@ if ($is_management_allowed === true) { case 'new': $actionHidden = 'save'; $textButton = __('Create'); - $classButton = 'class="sub next"'; + $classButton = ['icon' => 'next']; break; } } @@ -184,11 +184,11 @@ $buttons = []; $buttons['list'] = [ 'active' => false, 'text' => ''.html_print_image( - 'images/list.png', + 'images/logs@svg.svg', true, [ 'title' => __('List OS'), - 'class' => 'invert_filter', + 'class' => 'invert_filter main_menu_icon', ] ).'', ]; @@ -196,11 +196,11 @@ if ($is_management_allowed === true) { $buttons['builder'] = [ 'active' => false, 'text' => ''.html_print_image( - 'images/builder.png', + 'images/edit.svg', true, [ 'title' => __('Builder OS'), - 'class' => 'invert_filter', + 'class' => 'invert_filter main_menu_icon', ] ).'', ]; diff --git a/pandora_console/images/HP@svg.svg b/pandora_console/images/HP@os.svg similarity index 100% rename from pandora_console/images/HP@svg.svg rename to pandora_console/images/HP@os.svg diff --git a/pandora_console/images/aix@svg.svg b/pandora_console/images/aix@os.svg similarity index 100% rename from pandora_console/images/aix@svg.svg rename to pandora_console/images/aix@os.svg diff --git a/pandora_console/images/android@svg.svg b/pandora_console/images/android@os.svg similarity index 100% rename from pandora_console/images/android@svg.svg rename to pandora_console/images/android@os.svg diff --git a/pandora_console/images/apple@svg.svg b/pandora_console/images/apple@os.svg similarity index 100% rename from pandora_console/images/apple@svg.svg rename to pandora_console/images/apple@os.svg diff --git a/pandora_console/images/cisco@svg.svg b/pandora_console/images/cisco@os.svg similarity index 100% rename from pandora_console/images/cisco@svg.svg rename to pandora_console/images/cisco@os.svg diff --git a/pandora_console/images/cluster@svg.svg b/pandora_console/images/cluster@os.svg similarity index 100% rename from pandora_console/images/cluster@svg.svg rename to pandora_console/images/cluster@os.svg diff --git a/pandora_console/images/embedded@svg.svg b/pandora_console/images/embedded@os.svg similarity index 100% rename from pandora_console/images/embedded@svg.svg rename to pandora_console/images/embedded@os.svg diff --git a/pandora_console/images/example_qr.png b/pandora_console/images/example_qr.png new file mode 100644 index 0000000000000000000000000000000000000000..e20000cb3c1a752d1acf5dc0c68596eaf7029f6e GIT binary patch literal 2275 zcmV<92pso`P)Px-ok>JNRCr$PooiO(N(_WyPs9Efz@oT^lQ7q`ZS_|bbuxkCZ`%EkN~Mzg;Pua+ zKOZj(|K8u<|IYsQ_IC41+xb2xtLCI@S95m#c6RV_|8&nc8}d5AYXI=_(&gl>Gsigt zfJwAcM27*WrP#P{3_wv^O|4KGU9Tf`Fmv>ca?e(!06M4Qp8%lG=ig?c&RP*L0l*@s zD$_na02JDFY0D8!3c4#NRBLzat9y>mbGsEnb=_$S2mmfnqmeuUGXS_+#En9QZokG> z`BZUGxAQtc6b1l@2mp?a^v|RK*FoE3QAU~JWwmah8e`li-B(wNzN-cZ050x!+t*Jo z0t0|w4gjTuI~(iv?YpSfjlx+<`uhDxr+@%p4ub$-Vxus?JdG%9cUKV@26!R{m~ZuX zgd+5|Gf-u$?29&Z+>(kmm%41?Hk2wm-}P>w%K+}d1Ax87M=%Be;)5!*5kbNk#!99O^BZq?Vp9a9k$H&t50%)m6ky{yEX@FGgIjL#P-}Kxa!j9VRXxwW6 zus2Hpa0{f0Yn6t}*)(B*Ugub?V8sdB?b4h%6Jpc^v=Kx*dUV}tzFDb9*+ZM0Iv2*3b+`8(!6pLiI%QA2G~{su1KTQq{R&z zOU^0DI~V0IsN@ z6zbA7o!^bLj``j6V5b0D4!P_wV+&>DWUNBH6&q2_LH0B&M_n=J1_HhtND-|VfgV)s3MXkdKZZ5xf+N#dx_B^UN0{{_C9f2S& z`FD5#;9BmWQ%3Xrk7t0hn?Wn`ry{)0M5h~pE6!7a!(HzNj2|+^48T?=P;q3H=PSh? z0QgW)z!v}rpKO`AgqF%Ki_O;m`aJ-6KuP$y~ryMgMyYZqrt}Os7PCFbmb`~ zH{H?5?l|l2c5nbtn?C@!+NUFLDXbC(*aLG31Dw4Xq$vGrV=i#c0HDlA8z%}dDP21N zrgI;SQ-t64`qP_10l+Qp;2)V*0IldNsz(BV$=ks$48j06YKNo%4SIG8SX~9sJiLP5 zs0q82zH?T}6tg~qlCr;PfB-=Iw{cZ&4FDz`I9Kqv^cDuVSO7l|LJj89b#7D(EuwuSx+< zD|j?erGC3pf|B28>Zr~${zm)puHJDf3HO|z*IAvw0AQ}J1Awaq!T@_H(56jCWi(?4 z{E;Y^=H0`(z&Sf`^y|LU zB0xV)3UIy>MjH}iJRU6?MK+8{b18IQ|8&bobypz&uN7 zN^0DW#Setg+EoFLV;IG$%Gj!L;~MwtI_I3TZf4h<0lSe$;j`;qo49PMq}p}{a1To6S-kRFznk^#WQ zQllLLfX3Iu!vK@8R;Vxxus0^PiIf7i4}?&fR1~#K(PxM4ssd&y=<9c7Jx80+eH_s@ zy|w}bZUj*cKtVJUR{_A@y$XZUzzYB-Vf5n}praG$*0~hXZtkOOw4$t~j7e#HHjds5 zDyx8sHmEUY8{PgM04Ua~#|8j5yyY7PH~^QD`;r2*lFhXjZL&#a;F$*KBd7mosz615 z>qg4f2t_Y+NGmh(6@7|7d*9!n9>F>ug0DU#g zWdN#9JEB$D;|j-8=AhM_Dwc z*DKNr-HR*ADtmRB_JQr8$wMlv^|+SM)q6P?Ymf?NC)U0RW(U*LkY}9RN&H zOjkW00Nn7HltQO&WzlgRO%DpFoM#xi+QKeq@uy;`pb7vkmb$l?3jjn~2m@RU76zDn zDKsenMAkj&PPuna>t9m8z~+N5@Su(%E_x>;V8s0d5`ZUKap7 zpbQKHT#W8&p}VF4H$ql)0;$0iwOyUBqe)byscL?@Hnqvvl^oBFUk#&x2mtn$Qh*r% z93YLNT`_bR;6MY=C|AbOyhWLVD({i{-0Q}(Qu?Mgx<`dj?d74*1X6HRB_W+7062z0 x0Pui!3aLP(EHY!eFu'.__('Filters').'', 'filter_form' ); diff --git a/pandora_console/pandoradb_data.sql b/pandora_console/pandoradb_data.sql index 7d13eb5379..bde4538077 100644 --- a/pandora_console/pandoradb_data.sql +++ b/pandora_console/pandoradb_data.sql @@ -155,26 +155,26 @@ UNLOCK TABLES; LOCK TABLES `tconfig_os` WRITE; INSERT INTO `tconfig_os` (`id_os`, `name`, `description`, `icon_name`, `previous_name`) VALUES -(1,'Linux','Linux: All versions','linux@svg.svg', ''), -(2,'Solaris','Sun Solaris','solaris@svg.svg', ''), -(3,'AIX','IBM AIX','aix@svg.svg', ''), -(4,'BSD','OpenBSD, FreeBSD and Others','freebsd@svg.svg', ''), -(5,'HP-UX','HP-UX Unix OS','HP@svg.svg', ''), -(7,'Cisco','CISCO IOS','cisco@svg.svg', ''), -(8,'MacOS','MAC OS','apple@svg.svg', ''), -(9,'Windows','Microsoft Windows OS','windows@svg.svg', ''), -(10,'Other','Other SO','other-OS@svg.svg', ''), -(11,'Network','Network Agent','network-server@svg.svg', ''), -(12,'Web Server','Web Server/Application','network-server@svg.svg', ''), -(13,'Sensor','Hardware Agent (Sensor)','network-server@svg.svg', ''), -(14,'Embedded','Embedded device running an agent','embedded@svg.svg', ''), -(15,'Android','Android agent','android@svg.svg', ''), -(16, 'VMware', 'VMware Architecture', 'vmware@svg.svg', ''), -(17, 'Router', 'Generic router', 'routers@svg.svg', ''), -(18, 'Switch', 'Generic switch', 'switch@svg.svg', ''), -(19, 'Satellite', 'Satellite agent', 'satellite@svg.svg', ''), -(20, 'Mainframe', 'Mainframe agent', 'mainframe@svg.svg', ''), -(100, 'Cluster', 'Cluster agent', 'cluster@svg.svg', ''); +(1,'Linux','Linux: All versions','linux@os.svg', ''), +(2,'Solaris','Sun Solaris','solaris@os.svg', ''), +(3,'AIX','IBM AIX','aix@os.svg', ''), +(4,'BSD','OpenBSD, FreeBSD and Others','freebsd@os.svg', ''), +(5,'HP-UX','HP-UX Unix OS','HP@os.svg', ''), +(7,'Cisco','CISCO IOS','cisco@os.svg', ''), +(8,'MacOS','MAC OS','apple@os.svg', ''), +(9,'Windows','Microsoft Windows OS','windows@os.svg', ''), +(10,'Other','Other SO','other-OS@os.svg', ''), +(11,'Network','Network Agent','network-server@os.svg', ''), +(12,'Web Server','Web Server/Application','network-server@os.svg', ''), +(13,'Sensor','Hardware Agent (Sensor)','network-server@os.svg', ''), +(14,'Embedded','Embedded device running an agent','embedded@os.svg', ''), +(15,'Android','Android agent','android@os.svg', ''), +(16, 'VMware', 'VMware Architecture', 'vmware@os.svg', ''), +(17, 'Router', 'Generic router', 'routers@os.svg', ''), +(18, 'Switch', 'Generic switch', 'switch@os.svg', ''), +(19, 'Satellite', 'Satellite agent', 'satellite@os.svg', ''), +(20, 'Mainframe', 'Mainframe agent', 'mainframe@os.svg', ''), +(100, 'Cluster', 'Cluster agent', 'cluster@os.svg', ''); UNLOCK TABLES;